mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
Update recent changes in ManageabilityPkg to follow the latest EDK II C Coding Standards Specification (5.3) to use '#pragma once' instead of traditional macro-based include guards in header files. https://tianocore-docs.github.io/edk2-CCodingStandardsSpecification/draft/5_source_files/53_include_files.html#53-include-files Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
90 lines
4.1 KiB
C
90 lines
4.1 KiB
C
/** @file
|
|
|
|
Manageability transport Serial internal used definitions.
|
|
|
|
Copyright (c) 2024, ARM Limited. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
|
|
#pragma once
|
|
|
|
#include <IndustryStandard/IpmiNetFnApp.h>
|
|
#include <Library/ManageabilityTransportIpmiLib.h>
|
|
#include <Library/ManageabilityTransportLib.h>
|
|
#include <IndustryStandard/IpmiSerial.h>
|
|
|
|
#define MANAGEABILITY_TRANSPORT_SERIAL_SIGNATURE SIGNATURE_32 ('M', 'T', 'S', 'E')
|
|
|
|
///
|
|
/// Manageability transport Serial internal data structure.
|
|
///
|
|
typedef struct {
|
|
UINTN Signature;
|
|
MANAGEABILITY_TRANSPORT_TOKEN Token;
|
|
} MANAGEABILITY_TRANSPORT_SERIAL;
|
|
|
|
#define MANAGEABILITY_TRANSPORT_SERIAL_FROM_LINK(a) CR (a, MANAGEABILITY_TRANSPORT_SERIAL, Token, MANAGEABILITY_TRANSPORT_SERIAL_SIGNATURE)
|
|
|
|
///
|
|
/// IPMI Serial Configure
|
|
///
|
|
#define IPMI_SERIAL_RS_ADDRESS FixedPcdGet8 (PcdIpmiSerialResponderAddress)
|
|
#define IPMI_SERIAL_RQ_ADDRESS FixedPcdGet8 (PcdIpmiSerialRequesterAddress)
|
|
#define IPMI_SERIAL_RS_LUN FixedPcdGet8 (PcdIpmiSerialResponderLun)
|
|
#define IPMI_SERIAL_RQ_LUN FixedPcdGet8 (PcdIpmiSerialRequesterLun)
|
|
#define IPMI_SERIAL_RETRY_COUNT FixedPcdGet8 (PcdIpmiSerialRequestRetryCount)
|
|
#define IPMI_SERIAL_REQUEST_RETRY_INTERVAL FixedPcdGet32 (PcdIpmiSerialRequestRetryInterval)
|
|
#define IPMI_SERIAL_RESPONSE_RETRY_INTERVAL FixedPcdGet32 (PcdIpmiSerialRequestRetryInterval)
|
|
|
|
///
|
|
/// Table of special characters
|
|
///
|
|
typedef struct {
|
|
UINT8 Character;
|
|
UINT8 Escape;
|
|
} IPMI_SERIAL_SPECIAL_CHAR;
|
|
|
|
/**
|
|
This service communicates with BMC using Serial protocol.
|
|
|
|
@param[in] TransmitHeader Serial packet header.
|
|
@param[in] TransmitHeaderSize Serial packet header size in byte.
|
|
@param[in] TransmitTrailer Serial packet trailer.
|
|
@param[in] TransmitTrailerSize Serial packet trailer size in byte.
|
|
@param[in] RequestData Command Request Data.
|
|
@param[in] RequestDataSize Size of Command Request Data.
|
|
@param[out] ResponseData Command Response Data. The completion
|
|
code is the first byte of response
|
|
data.
|
|
@param[in, out] ResponseDataSize Size of Command Response Data.
|
|
@param[out] AdditionalStatus Additional status of this transaction.
|
|
|
|
@retval EFI_SUCCESS The command byte stream was
|
|
successfully submit to the device and a
|
|
response was successfully received.
|
|
@retval EFI_NOT_FOUND The command was not successfully sent
|
|
to the device or a response was not
|
|
successfully received from the device.
|
|
@retval EFI_NOT_READY Ipmi Device is not ready for Ipmi
|
|
command access.
|
|
@retval EFI_DEVICE_ERROR Ipmi Device hardware error.
|
|
@retval EFI_TIMEOUT The command time out.
|
|
@retval EFI_UNSUPPORTED The command was not successfully sent to
|
|
the device.
|
|
@retval EFI_OUT_OF_RESOURCES The resource allocation is out of
|
|
resource or data size error.
|
|
**/
|
|
|
|
EFI_STATUS
|
|
EFIAPI
|
|
SerialTransportSendCommand (
|
|
IN MANAGEABILITY_TRANSPORT_HEADER TransmitHeader OPTIONAL,
|
|
IN UINT16 TransmitHeaderSize,
|
|
IN MANAGEABILITY_TRANSPORT_TRAILER TransmitTrailer OPTIONAL,
|
|
IN UINT16 TransmitTrailerSize,
|
|
IN UINT8 *RequestData OPTIONAL,
|
|
IN UINT32 RequestDataSize,
|
|
OUT UINT8 *ResponseData OPTIONAL,
|
|
IN OUT UINT32 *ResponseDataSize OPTIONAL,
|
|
OUT MANAGEABILITY_TRANSPORT_ADDITIONAL_STATUS *AdditionalStatus
|
|
);
|