bc.h

来自「EFI BIOS是Intel提出的下一代的BIOS标准。这里上传的Edk源代码是」· C头文件 代码 · 共 571 行 · 第 1/2 页

H
571
字号
  IN EFI_PXE_BASE_CODE_TFTP_OPCODE    Operation,
  IN OUT VOID                         *BufferPtr,
  IN BOOLEAN                          Overwrite,
  IN OUT UINT64                       *BufferSize,
  IN UINTN                            *BlockSize OPTIONAL,
  IN EFI_IP_ADDRESS                   * ServerIp,
  IN UINT8                            *Filename,
  IN EFI_PXE_BASE_CODE_MTFTP_INFO     * Info OPTIONAL,
  IN BOOLEAN                          DontUseBuffer
  )
;

EFI_STATUS
EFIAPI
BcUdpWrite (
  IN EFI_PXE_BASE_CODE_PROTOCOL       *This,
  IN UINT16                           OpFlags,
  IN EFI_IP_ADDRESS                   *DestIp,
  IN EFI_PXE_BASE_CODE_UDP_PORT       *DestPort,
  IN EFI_IP_ADDRESS                   *GatewayIp, OPTIONAL
  IN EFI_IP_ADDRESS                   *SrcIp, OPTIONAL
  IN OUT EFI_PXE_BASE_CODE_UDP_PORT   *SrcPort, OPTIONAL
  IN UINTN                            *HeaderSize, OPTIONAL
  IN VOID                             *HeaderPtr, OPTIONAL
  IN UINTN                            *BufferSize,
  IN VOID                             *BufferPtr
  )
;

EFI_STATUS
EFIAPI
BcUdpRead (
  IN EFI_PXE_BASE_CODE_PROTOCOL       *This,
  IN UINT16                           OpFlags,
  IN OUT EFI_IP_ADDRESS               *DestIp, OPTIONAL
  IN OUT EFI_PXE_BASE_CODE_UDP_PORT   *DestPort, OPTIONAL
  IN OUT EFI_IP_ADDRESS               *SrcIp, OPTIONAL
  IN OUT EFI_PXE_BASE_CODE_UDP_PORT   *SrcPort, OPTIONAL
  IN UINTN                            *HeaderSize, OPTIONAL
  IN VOID                             *HeaderPtr, OPTIONAL
  IN OUT UINTN                        *BufferSize,
  IN VOID                             *BufferPtr
  )
;

EFI_STATUS
EFIAPI
BcTcpWrite (
  IN EFI_PXE_BASE_CODE_PROTOCOL       *This,
  IN UINT16                           OpFlags,
  IN UINT16                           *UrgentPointer,
  IN UINT32                           *SequenceNumber,
  IN UINT32                           *AckNumber,
  IN UINT16                           *HlenResCode,
  IN UINT16                           *Window,
  IN EFI_IP_ADDRESS                   *DestIp,
  IN EFI_PXE_BASE_CODE_TCP_PORT       *DestPort,
  IN EFI_IP_ADDRESS                   *GatewayIp, OPTIONAL
  IN EFI_IP_ADDRESS                   *SrcIp, OPTIONAL
  IN OUT EFI_PXE_BASE_CODE_TCP_PORT   *SrcPort, OPTIONAL
  IN UINTN                            *HeaderSize, OPTIONAL
  IN VOID                             *HeaderPtr, OPTIONAL
  IN UINTN                            *BufferSize,
  IN VOID                             *BufferPtr
  )
;

EFI_STATUS
EFIAPI
BcTcpRead (
  IN EFI_PXE_BASE_CODE_PROTOCOL       *This,
  IN UINT16                           OpFlags,
  IN OUT EFI_IP_ADDRESS               *DestIp, OPTIONAL
  IN OUT EFI_PXE_BASE_CODE_TCP_PORT   *DestPort, OPTIONAL
  IN OUT EFI_IP_ADDRESS               *SrcIp, OPTIONAL
  IN OUT EFI_PXE_BASE_CODE_TCP_PORT   *SrcPort, OPTIONAL
  IN UINTN                            *HeaderSize, OPTIONAL
  IN VOID                             *HeaderPtr, OPTIONAL
  IN OUT UINTN                        *BufferSize,
  IN VOID                             *BufferPtr
  )
;

EFI_STATUS
EFIAPI
BcArp (
  IN EFI_PXE_BASE_CODE_PROTOCOL       * This,
  IN EFI_IP_ADDRESS                   * IpAddr,
  IN EFI_MAC_ADDRESS                  * MacAddr OPTIONAL
  )
;

EFI_STATUS
EFIAPI
BcIpFilter (
  IN EFI_PXE_BASE_CODE_PROTOCOL       *This,
  IN EFI_PXE_BASE_CODE_IP_FILTER      *NewFilter
  )
;

EFI_STATUS
EFIAPI
BcSetParameters (
  IN EFI_PXE_BASE_CODE_PROTOCOL       * This,
  IN BOOLEAN                          *NewAutoArp, OPTIONAL
  IN BOOLEAN                          *NewSendGUID, OPTIONAL
  IN UINT8                            *NewTTL, OPTIONAL
  IN UINT8                            *NewToS, OPTIONAL
  IN BOOLEAN                          *NewMakeCallback OPTIONAL
  )
;

EFI_STATUS
EFIAPI
BcSetStationIP (
  IN EFI_PXE_BASE_CODE_PROTOCOL       * This,
  IN EFI_IP_ADDRESS                   * NewStationIp, OPTIONAL
  IN EFI_IP_ADDRESS                   * NewSubnetMask OPTIONAL
  )
;

EFI_STATUS
EFIAPI
BcSetPackets (
  IN EFI_PXE_BASE_CODE_PROTOCOL       * This,
  BOOLEAN                             *NewDhcpDiscoverValid, OPTIONAL
  BOOLEAN                             *NewDhcpAckReceived, OPTIONAL
  BOOLEAN                             *NewProxyOfferReceived, OPTIONAL
  BOOLEAN                             *NewPxeDiscoverValid, OPTIONAL
  BOOLEAN                             *NewPxeReplyReceived, OPTIONAL
  BOOLEAN                             *NewPxeBisReplyReceived, OPTIONAL
  IN EFI_PXE_BASE_CODE_PACKET         * NewDhcpDiscover, OPTIONAL
  IN EFI_PXE_BASE_CODE_PACKET         * NewDhcpAck, OPTIONAL
  IN EFI_PXE_BASE_CODE_PACKET         * NewProxyOffer, OPTIONAL
  IN EFI_PXE_BASE_CODE_PACKET         * NewPxeDiscover, OPTIONAL
  IN EFI_PXE_BASE_CODE_PACKET         * NewPxeReply, OPTIONAL
  IN EFI_PXE_BASE_CODE_PACKET         * NewPxeBisReply OPTIONAL
  )
;

EFI_STATUS
EFIAPI
LoadFile (
  IN EFI_LOAD_FILE_PROTOCOL           *This,
  IN EFI_DEVICE_PATH_PROTOCOL         *FilePath,
  IN BOOLEAN                          BootPolicy,
  IN OUT UINTN                        *BufferSize,
  IN VOID                             *Buffer
  )
;

EFI_STATUS
PxeBcLibGetSmbiosSystemGuidAndSerialNumber (
  IN  EFI_GUID    *SystemGuid,
  OUT CHAR8       **SystemSerialNumber
  )
;

#ifdef EFI_SIZE_REDUCTION_APPLIED
  #define COMPONENT_NAME_CODE(code)
  #define COMPONENT_NAME            NULL
#else
  #define COMPONENT_NAME_CODE(code) code
  #define COMPONENT_NAME            &gPxeBcComponentName
#endif  


//
// Define SMBIOS tables.
//
#pragma pack(1)
typedef struct {
  UINT8   AnchorString[4];
  UINT8   EntryPointStructureChecksum;
  UINT8   EntryPointLength;
  UINT8   MajorVersion;
  UINT8   MinorVersion;
  UINT16  MaxStructureSize;
  UINT8   EntryPointRevision;
  UINT8   FormattedArea[5];
  UINT8   IntermediateAnchorString[5];
  UINT8   IntermediateChecksum;
  UINT16  TableLength;
  UINT32  TableAddress;
  UINT16  NumberOfSmbiosStructures;
  UINT8   SmbiosBcdRevision;
} SMBIOS_STRUCTURE_TABLE;

//
// Please note that SMBIOS structures can be odd byte aligned since the
//  unformated section of each record is a set of arbitrary size strings.
//
typedef struct {
  UINT8 Type;
  UINT8 Length;
  UINT8 Handle[2];
} SMBIOS_HEADER;

typedef UINT8 SMBIOS_STRING;

typedef struct {
  SMBIOS_HEADER Hdr;
  SMBIOS_STRING Vendor;
  SMBIOS_STRING BiosVersion;
  UINT8         BiosSegment[2];
  SMBIOS_STRING BiosReleaseDate;
  UINT8         BiosSize;
  UINT8         BiosCharacteristics[8];
} SMBIOS_TYPE0;

typedef struct {
  SMBIOS_HEADER Hdr;
  SMBIOS_STRING Manufacturer;
  SMBIOS_STRING ProductName;
  SMBIOS_STRING Version;
  SMBIOS_STRING SerialNumber;

  //
  // always byte copy this data to prevent alignment faults!
  //
  EFI_GUID      Uuid;

  UINT8         WakeUpType;
} SMBIOS_TYPE1;

typedef struct {
  SMBIOS_HEADER Hdr;
  SMBIOS_STRING Manufacturer;
  SMBIOS_STRING ProductName;
  SMBIOS_STRING Version;
  SMBIOS_STRING SerialNumber;
} SMBIOS_TYPE2;

typedef struct {
  SMBIOS_HEADER Hdr;
  SMBIOS_STRING Manufacturer;
  UINT8         Type;
  SMBIOS_STRING Version;
  SMBIOS_STRING SerialNumber;
  SMBIOS_STRING AssetTag;
  UINT8         BootupState;
  UINT8         PowerSupplyState;
  UINT8         ThermalState;
  UINT8         SecurityStatus;
  UINT8         OemDefined[4];
} SMBIOS_TYPE3;

typedef struct {
  SMBIOS_HEADER Hdr;
  UINT8         Socket;
  UINT8         ProcessorType;
  UINT8         ProcessorFamily;
  SMBIOS_STRING ProcessorManufacture;
  UINT8         ProcessorId[8];
  SMBIOS_STRING ProcessorVersion;
  UINT8         Voltage;
  UINT8         ExternalClock[2];
  UINT8         MaxSpeed[2];
  UINT8         CurrentSpeed[2];
  UINT8         Status;
  UINT8         ProcessorUpgrade;
  UINT8         L1CacheHandle[2];
  UINT8         L2CacheHandle[2];
  UINT8         L3CacheHandle[2];
} SMBIOS_TYPE4;

typedef union {
  SMBIOS_HEADER *Hdr;
  SMBIOS_TYPE0  *Type0;
  SMBIOS_TYPE1  *Type1;
  SMBIOS_TYPE2  *Type2;
  SMBIOS_TYPE3  *Type3;
  SMBIOS_TYPE4  *Type4;
  UINT8         *Raw;
} SMBIOS_STRUCTURE_POINTER;
#pragma pack()

#include "ip.h"
#include "dhcp.h"
#include "tftp.h"

#endif /* _BC_H */

/* EOF - bc.h */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?