1 /** @file 2 Ppi for Ipmi of SMS. 3 4 Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php. 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef _IPMI_PPI_H_ 16 #define _IPMI_PPI_H_ 17 18 typedef struct _PEI_IPMI_PPI PEI_IPMI_PPI; 19 20 #define PEI_IPMI_PPI_GUID \ 21 { \ 22 0xa9731431, 0xd968, 0x4277, 0xb7, 0x52, 0xa3, 0xa9, 0xa6, 0xae, 0x18, 0x98 \ 23 } 24 25 /** 26 This service enables submitting commands via Ipmi. 27 28 @param[in] This This point for PEI_IPMI_PPI structure. 29 @param[in] NetFunction Net function of the command. 30 @param[in] Command IPMI Command. 31 @param[in] RequestData Command Request Data. 32 @param[in] RequestDataSize Size of Command Request Data. 33 @param[out] ResponseData Command Response Data. The completion code is the first byte of response data. 34 @param[in, out] ResponseDataSize Size of Command Response Data. 35 36 @retval EFI_SUCCESS The command byte stream was successfully submit to the device and a response was successfully received. 37 @retval EFI_NOT_FOUND The command was not successfully sent to the device or a response was not successfully received from the device. 38 @retval EFI_NOT_READY Ipmi Device is not ready for Ipmi command access. 39 @retval EFI_DEVICE_ERROR Ipmi Device hardware error. 40 @retval EFI_TIMEOUT The command time out. 41 @retval EFI_UNSUPPORTED The command was not successfully sent to the device. 42 @retval EFI_OUT_OF_RESOURCES The resource allcation is out of resource or data size error. 43 **/ 44 typedef 45 EFI_STATUS 46 (EFIAPI *PEI_IPMI_SUBMIT_COMMAND) ( 47 IN PEI_IPMI_PPI *This, 48 IN UINT8 NetFunction, 49 IN UINT8 Command, 50 IN UINT8 *RequestData, 51 IN UINT32 RequestDataSize, 52 OUT UINT8 *ResponseData, 53 IN OUT UINT32 *ResponseDataSize 54 ); 55 56 // 57 // IPMI PPI 58 // 59 struct _PEI_IPMI_PPI { 60 PEI_IPMI_SUBMIT_COMMAND IpmiSubmitCommand; 61 }; 62 63 extern EFI_GUID gPeiIpmiPpiGuid; 64 65 #endif 66