summaryrefslogtreecommitdiffstats
path: root/src/usr/ipmi/ipmimsg.H
diff options
context:
space:
mode:
authorAndrew Jeffery <andrewrj@au1.ibm.com>2018-09-28 14:48:58 +0930
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-10-10 13:39:41 -0500
commit5fc457309f2c6bad2bf1464a4cc7756692ede3b8 (patch)
treef7a1190a397d8fe77cd232548f5e8615c0dedab4 /src/usr/ipmi/ipmimsg.H
parent1b481183921d9877a5693219249bb9c4cd8ccf69 (diff)
downloadtalos-hostboot-5fc457309f2c6bad2bf1464a4cc7756692ede3b8.tar.gz
talos-hostboot-5fc457309f2c6bad2bf1464a4cc7756692ede3b8.zip
ipmi: Split into ipmibase and ipmiext modules
Split the IPMI module into base and ext portions, with the BT interface, device driver and resource provider in the base portion, and all remaining IPMI functionality in the ext portion. The split is in preparation for moving the base functionality in the hostboot base image. Change-Id: Iec864f96240d79f4fadd5519d2ef46437d07c1fd Signed-off-by: Andrew Jeffery <andrewrj@au1.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66792 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/ipmi/ipmimsg.H')
-rw-r--r--src/usr/ipmi/ipmimsg.H133
1 files changed, 0 insertions, 133 deletions
diff --git a/src/usr/ipmi/ipmimsg.H b/src/usr/ipmi/ipmimsg.H
deleted file mode 100644
index b7f6d966e..000000000
--- a/src/usr/ipmi/ipmimsg.H
+++ /dev/null
@@ -1,133 +0,0 @@
-/* IBM_PROLOG_BEGIN_TAG */
-/* This is an automatically generated prolog. */
-/* */
-/* $Source: src/usr/ipmi/ipmimsg.H $ */
-/* */
-/* OpenPOWER HostBoot Project */
-/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
-/* [+] International Business Machines Corp. */
-/* */
-/* */
-/* Licensed under the Apache License, Version 2.0 (the "License"); */
-/* you may not use this file except in compliance with the License. */
-/* You may obtain a copy of the License at */
-/* */
-/* http://www.apache.org/licenses/LICENSE-2.0 */
-/* */
-/* Unless required by applicable law or agreed to in writing, software */
-/* distributed under the License is distributed on an "AS IS" BASIS, */
-/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
-/* implied. See the License for the specific language governing */
-/* permissions and limitations under the License. */
-/* */
-/* IBM_PROLOG_END_TAG */
-#ifndef __IPMI_IPMIMSG_H
-#define __IPMI_IPMIMSG_H
-
-#include <time.h>
-#include <map>
-#include <list>
-#include <sys/msg.h>
-#include <errl/errlentry.H>
-#include <ipmi/ipmiif.H>
-
-namespace IPMI
-{
- typedef std::list<msg_t*> send_q_t;
- typedef std::list<msg_t*> timeout_q_t;
- typedef std::map<uint8_t, msg_t*> respond_q_t;
- typedef std::map<uint8_t, msg_q_t> event_q_t;
-
- // IPMI message base class. A thing which expects to be sent down a
- // msg_q (so has a msg_t) and defines operations performed by a generic
- // IPMI resource manager. Details are left to the subclasses.
- class Message
- {
- public:
- ///
- /// @brief static factory
- /// @param[in] i_cmd, the network functon & command
- /// @param[in] i_len, the length of the data
- /// @param[in] i_data, the data (allocated space)
- /// @param[in] i_type, synchronous or async
- ///
- /// @return a pointer to a new'd Message object
- ///
- static Message* factory(const command_t& i_cmd = no_command(),
- const uint8_t i_len = 0,
- uint8_t* i_data = NULL,
- const message_type i_type = TYPE_SYNC);
-
- ///
- /// @brief Message ctor
- /// @param[in] i_cmd, the network functon & command
- /// @param[in] i_len, the length of the data
- /// @param[in] i_data, the data (allocated space)
- ///
- Message(const command_t& i_cmd = no_command(),
- const uint8_t i_len = 0,
- uint8_t* i_data = NULL);
-
- ///
- /// @brief Message dtor
- ///
- virtual ~Message(void)
- {
- // Do NOT delete[] iv_data here. For synchronous messages
- // the caller wants this data and expects to delete[] it
- // itself. For async messages it is deleted in the dtor
- msg_free(iv_msg);
- }
-
- ///
- /// @brief the header size of a message for the underlying transport
- /// @param void
- /// @return size_t, the header size
- ///
- virtual size_t header_size(void) = 0;
-
- ///
- /// @brief transmit a message.
- /// @return true iff there was no transmission error
- ///
- virtual bool xmit(void) = 0;
-
- ///
- /// @brief complete the processing when a response arrives
- /// @return void
- ///
- virtual void response(msg_q_t i_msgQ) = 0;
-
- ///
- /// @brief receive a message.
- /// @return Error from operation
- /// @note fills our iv_key with the proper information
- ///
- virtual errlHndl_t recv(void) = 0;
-
- msg_t* iv_msg; // Pointer back to our msg_q msg_t
- uint8_t iv_key; // key used by the respond queue
-
- // Note: Some of these might turn out to be transport specific
- // if so, we'll just move them down in to the subclasses
- uint8_t iv_len; // Length
- uint8_t iv_netfun; // Network Function
- uint8_t& iv_seq; // Sequence number, reference to iv_key
- uint8_t iv_cmd; // Command
- uint8_t iv_cc; // Completion Code
- uint8_t iv_state; // Driver things, like EAGAIN
- errlHndl_t iv_errl; // Pointer to the errlHandl_t if needed
- uint8_t* iv_data; // Pointer to the message data
- timespec_t iv_timeout; // Absolute time of when I timeout
-
- private:
- // Disallow copying this class. Should suffice for disabling copy for
- // all subclasses too.
- Message& operator=(const Message&);
- Message(const Message&);
- };
-
-}; // end namespace IPMI
-
-#endif
OpenPOWER on IntegriCloud