diff options
author | Brian Horton <brianh@linux.ibm.com> | 2014-10-31 16:18:55 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-12-13 10:28:12 -0600 |
commit | bdf9a8c834ee8c608f4462e146a2f957c08919c2 (patch) | |
tree | 687845f32fe66fd288905649424dfe0f47b24275 /src/usr/ipmi/ipmifru.H | |
parent | 6442105c625774bfac33a57fe6b76c18bcb5665b (diff) | |
download | talos-hostboot-bdf9a8c834ee8c608f4462e146a2f957c08919c2.tar.gz talos-hostboot-bdf9a8c834ee8c608f4462e146a2f957c08919c2.zip |
IPMI interface for fru write data command
Change-Id: I3c0c4c7c14521f1b64af37d62e57a5947602ed11
RTC: 116453
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14393
Reviewed-by: Brian Silver <bsilver@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: WILLIAM G. HOFFA <wghoffa@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/ipmi/ipmifru.H')
-rw-r--r-- | src/usr/ipmi/ipmifru.H | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/usr/ipmi/ipmifru.H b/src/usr/ipmi/ipmifru.H new file mode 100644 index 000000000..47e0459da --- /dev/null +++ b/src/usr/ipmi/ipmifru.H @@ -0,0 +1,108 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/ipmi/ipmifru.H $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2014 */ +/* [+] 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_IPMIFRU_H +#define __IPMI_IMPIFRU_H + +/** + * @file ipmifru.H + * @brief IPMI FRU inventory declariation + */ + +#include <stdint.h> +#include <ipmi/ipmiif.H> +#include "ipmibt.H" + +/** + * + * + */ +namespace IPMIFRU +{ + void writeData(uint8_t i_deviceId, uint8_t *i_data, + uint32_t i_dataSize, uint32_t i_offset = 0); + + enum msg_type + { + MSG_WRITE_FRU_DATA, // async message - no reply + + // Used to check range. Leave as last. + MSG_LAST_TYPE = MSG_WRITE_FRU_DATA, + }; +} + + +class IpmiFRU +{ + public: + + /** + * Thread start routine for the resource provider + * @param[in] void*, unused + */ + static void* start(void* unused); + + /** + * Default constructor + */ + IpmiFRU(void); + + /** + * Destructor + */ + ~IpmiFRU(void); + + /** + * @brief Get the message queue associated with this FRU + * @param[in] void + * @return, a msg_q_t which is the message queue + */ + inline msg_q_t msgQueue(void) const + { return iv_msgQ; } + + private: + + /** + * Entry point for the fru ipmi thread + */ + void execute(void); + + /** + * @brief Handle a message with fru inventory data; msg is async + * @param[in] i_msg + */ + void sendWriteFruData(msg_t *i_msg); + + /** + * ipmi fru msg queue + */ + msg_q_t iv_msgQ; + + // Disallow copying this class. + IpmiFRU& operator=(const IpmiFRU&); + IpmiFRU(const IpmiFRU&); +}; + +#endif |