]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/Legacy16.h
Update revision reference tag.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / Legacy16.h
index 6ccb51d600a9b9a48e4ffd23fc557f193101daa6..1d74ddc58243aa9098811cedddcf6a9fc67c72f4 100644 (file)
@@ -16,7 +16,8 @@
   Module Name:  FrameworkLegacy16.h\r
 \r
   @par Revision Reference:\r
-  These definitions are from Compatibility Support Module Spec Version 0.96.\r
+  These definitions are from Compatibility Support Module Spec \r
+  Version 0.97.\r
 \r
 **/\r
 \r
 \r
 #include <Base.h>\r
 \r
-//\r
-// All structures defined in this header file are packed on byte boundary\r
-//\r
 #pragma pack(1)\r
 \r
-typedef UINT8 SERIAL_MODE;\r
-typedef UINT8 PARALLEL_MODE;\r
+typedef UINT8                       SERIAL_MODE;\r
+typedef UINT8                       PARALLEL_MODE;\r
 \r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 // EFI_COMPATIBILITY16_TABLE is located at a 16-byte boundary starting with the\r
 // signature "$EFI"\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-#define EFI_COMPATIBILITY16_TABLE_SIGNATURE EFI_SIGNATURE_32 ('I', 'F', 'E', '$')\r
-\r
+//\r
+#define EFI_COMPATIBILITY16_TABLE_SIGNATURE SIGNATURE_32 ('I', 'F', 'E', '$')\r
 typedef struct {\r
-  UINT32  Signature;      // "$EFI"\r
-  UINT8   TableChecksum;\r
-  UINT8   TableLength;\r
-  UINT8   EfiMajorRevision;\r
-  UINT8   EfiMinorRevision;\r
-  UINT8   TableMajorRevision;\r
-  UINT8   TableMinorRevision;\r
-  UINT16  Reserved;\r
-  UINT16  Compatibility16CallSegment;\r
-  UINT16  Compatibility16CallOffset;\r
-  UINT16  PnPInstallationCheckSegment;\r
-  UINT16  PnPInstallationCheckOffset;\r
-  UINT32  EfiSystemTable; // The physical address of EFI_SYSTEM_TABLE\r
-  UINT32  OemIdStringPointer;\r
-  UINT32  AcpiRsdPtrPointer;\r
-  UINT16  OemRevision;\r
-  UINT32  E820Pointer;\r
-  UINT32  E820Length;\r
-  UINT32  IrqRoutingTablePointer;\r
-  UINT32  IrqRoutingTableLength;\r
-  UINT32  MpTablePtr;\r
-  UINT32  MpTableLength;\r
-  UINT16  OemIntSegment;\r
-  UINT16  OemIntOffset;\r
-  UINT16  Oem32Segment;\r
-  UINT16  Oem32Offset;\r
-  UINT16  Oem16Segment;\r
-  UINT16  Oem16Offset;\r
-  UINT16  TpmSegment;\r
-  UINT16  TpmOffset;\r
-  UINT32  IbvPointer;\r
-  UINT32  PciExpressBase;\r
-  UINT8   LastPciBus;\r
+  UINT32                            Signature;\r
+  UINT8                             TableChecksum;\r
+  UINT8                             TableLength;\r
+  UINT8                             EfiMajorRevision;\r
+  UINT8                             EfiMinorRevision;\r
+  UINT8                             TableMajorRevision;\r
+  UINT8                             TableMinorRevision;\r
+  UINT16                            Reserved;\r
+  UINT16                            Compatibility16CallSegment;\r
+  UINT16                            Compatibility16CallOffset;\r
+  UINT16                            PnPInstallationCheckSegment;\r
+  UINT16                            PnPInstallationCheckOffset;\r
+  UINT32                            EfiSystemTable; // The physical address of EFI_SYSTEM_TABLE\r
+  UINT32                            OemIdStringPointer;\r
+  UINT32                            AcpiRsdPtrPointer;\r
+  UINT16                            OemRevision;\r
+  UINT32                            E820Pointer;\r
+  UINT32                            E820Length;\r
+  UINT32                            IrqRoutingTablePointer;\r
+  UINT32                            IrqRoutingTableLength;\r
+  UINT32                            MpTablePtr;\r
+  UINT32                            MpTableLength;\r
+  UINT16                            OemIntSegment;\r
+  UINT16                            OemIntOffset;\r
+  UINT16                            Oem32Segment;\r
+  UINT16                            Oem32Offset;\r
+  UINT16                            Oem16Segment;\r
+  UINT16                            Oem16Offset;\r
+  UINT16                            TpmSegment;\r
+  UINT16                            TpmOffset;\r
+  UINT32                            IbvPointer;\r
+  UINT32                            PciExpressBase;\r
+  UINT8                             LastPciBus;\r
 } EFI_COMPATIBILITY16_TABLE;\r
 \r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 // Functions provided by the CSM binary\r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 typedef enum {\r
   Legacy16InitializeYourself    = 0x0000,\r
   Legacy16UpdateBbs             = 0x0001,\r
@@ -91,34 +87,34 @@ typedef enum {
   Legacy16InstallPciHandler     = 0x0008\r
 } EFI_COMPATIBILITY_FUNCTIONS;\r
 \r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 // EFI_TO_COMPATIBILITY16_INIT_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 typedef struct {\r
-  UINT32  BiosLessThan1MB;\r
-  UINT32  HiPmmMemory;\r
-  UINT32  HiPmmMemorySizeInBytes;\r
-  UINT16  ReverseThunkCallSegment;\r
-  UINT16  ReverseThunkCallOffset;\r
-  UINT32  NumberE820Entries;\r
-  UINT32  OsMemoryAbove1Mb;\r
-  UINT32  ThunkStart;\r
-  UINT32  ThunkSizeInBytes;\r
-  UINT32  LowPmmMemory;\r
-  UINT32  LowPmmMemorySizeInBytes;\r
+  UINT32                            BiosLessThan1MB;\r
+  UINT32                            HiPmmMemory;\r
+  UINT32                            HiPmmMemorySizeInBytes;\r
+  UINT16                            ReverseThunkCallSegment;\r
+  UINT16                            ReverseThunkCallOffset;\r
+  UINT32                            NumberE820Entries;\r
+  UINT32                            OsMemoryAbove1Mb;\r
+  UINT32                            ThunkStart;\r
+  UINT32                            ThunkSizeInBytes;\r
+  UINT32                            LowPmmMemory;\r
+  UINT32                            LowPmmMemorySizeInBytes;\r
 } EFI_TO_COMPATIBILITY16_INIT_TABLE;\r
 \r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 // EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 \r
 //\r
 // DEVICE_PRODUCER_SERIAL & its modes\r
 //\r
 typedef struct {\r
-  UINT16      Address;\r
-  UINT8       Irq;\r
-  SERIAL_MODE Mode;\r
+  UINT16                            Address;\r
+  UINT8                             Irq;\r
+  SERIAL_MODE                       Mode;\r
 } DEVICE_PRODUCER_SERIAL;\r
 \r
 #define DEVICE_SERIAL_MODE_NORMAL               0x00\r
@@ -131,10 +127,10 @@ typedef struct {
 // DEVICE_PRODUCER_PARALLEL & its modes\r
 //\r
 typedef struct {\r
-  UINT16        Address;\r
-  UINT8         Irq;\r
-  UINT8         Dma;\r
-  PARALLEL_MODE Mode;\r
+  UINT16                            Address;\r
+  UINT8                             Irq;\r
+  UINT8                             Dma;\r
+  PARALLEL_MODE                     Mode;\r
 } DEVICE_PRODUCER_PARALLEL;\r
 \r
 #define DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY   0x00\r
@@ -146,52 +142,52 @@ typedef struct {
 // DEVICE_PRODUCER_FLOPPY\r
 //\r
 typedef struct {\r
-  UINT16  Address;\r
-  UINT8   Irq;\r
-  UINT8   Dma;\r
-  UINT8   NumberOfFloppy;\r
+  UINT16                            Address;\r
+  UINT8                             Irq;\r
+  UINT8                             Dma;\r
+  UINT8                             NumberOfFloppy;\r
 } DEVICE_PRODUCER_FLOPPY;\r
 \r
 //\r
 // LEGACY_DEVICE_FLAGS\r
 //\r
 typedef struct {\r
-  UINT32  A20Kybd : 1;\r
-  UINT32  A20Port90 : 1;\r
-  UINT32  Reserved : 30;\r
+  UINT32                            A20Kybd : 1;\r
+  UINT32                            A20Port90 : 1;\r
+  UINT32                            Reserved : 30;\r
 } LEGACY_DEVICE_FLAGS;\r
 \r
 //\r
 // DEVICE_PRODUCER_DATA_HEADER\r
 //\r
 typedef struct {\r
-  DEVICE_PRODUCER_SERIAL    Serial[4];\r
-  DEVICE_PRODUCER_PARALLEL  Parallel[3];\r
-  DEVICE_PRODUCER_FLOPPY    Floppy;\r
-  UINT8                     MousePresent;\r
-  LEGACY_DEVICE_FLAGS       Flags;\r
+  DEVICE_PRODUCER_SERIAL            Serial[4];\r
+  DEVICE_PRODUCER_PARALLEL          Parallel[3];\r
+  DEVICE_PRODUCER_FLOPPY            Floppy;\r
+  UINT8                             MousePresent;\r
+  LEGACY_DEVICE_FLAGS               Flags;\r
 } DEVICE_PRODUCER_DATA_HEADER;\r
 \r
 //\r
 // ATAPI_IDENTIFY\r
 //\r
 typedef struct {\r
-  UINT16  Raw[256];\r
+  UINT16                            Raw[256];\r
 } ATAPI_IDENTIFY;\r
 \r
 //\r
 // HDD_INFO & its status\r
 //\r
 typedef struct {\r
-  UINT16          Status;\r
-  UINT32          Bus;\r
-  UINT32          Device;\r
-  UINT32          Function;\r
-  UINT16          CommandBaseAddress;\r
-  UINT16          ControlBaseAddress;\r
-  UINT16          BusMasterAddress;\r
-  UINT8           HddIrq;\r
-  ATAPI_IDENTIFY  IdentifyDrive[2];\r
+  UINT16                            Status;\r
+  UINT32                            Bus;\r
+  UINT32                            Device;\r
+  UINT32                            Function;\r
+  UINT16                            CommandBaseAddress;\r
+  UINT16                            ControlBaseAddress;\r
+  UINT16                            BusMasterAddress;\r
+  UINT8                             HddIrq;\r
+  ATAPI_IDENTIFY                    IdentifyDrive[2];\r
 } HDD_INFO;\r
 \r
 #define HDD_PRIMARY               0x01\r
@@ -207,52 +203,52 @@ typedef struct {
 // BBS_STATUS_FLAGS\r
 //\r
 typedef struct {\r
-  UINT16  OldPosition : 4;\r
-  UINT16  Reserved1 : 4;\r
-  UINT16  Enabled : 1;\r
-  UINT16  Failed : 1;\r
-  UINT16  MediaPresent : 2;\r
-  UINT16  Reserved2 : 4;\r
+  UINT16                            OldPosition : 4;\r
+  UINT16                            Reserved1 : 4;\r
+  UINT16                            Enabled : 1;\r
+  UINT16                            Failed : 1;\r
+  UINT16                            MediaPresent : 2;\r
+  UINT16                            Reserved2 : 4;\r
 } BBS_STATUS_FLAGS;\r
 \r
 //\r
 // BBS_TABLE, device type values & boot priority values\r
 //\r
 typedef struct {\r
-  UINT16            BootPriority;\r
-  UINT32            Bus;\r
-  UINT32            Device;\r
-  UINT32            Function;\r
-  UINT8             Class;\r
-  UINT8             SubClass;\r
-  UINT16            MfgStringOffset;\r
-  UINT16            MfgStringSegment;\r
-  UINT16            DeviceType;\r
-  BBS_STATUS_FLAGS  StatusFlags;\r
-  UINT16            BootHandlerOffset;\r
-  UINT16            BootHandlerSegment;\r
-  UINT16            DescStringOffset;\r
-  UINT16            DescStringSegment;\r
-  UINT32            InitPerReserved;\r
-  UINT32            AdditionalIrq13Handler;\r
-  UINT32            AdditionalIrq18Handler;\r
-  UINT32            AdditionalIrq19Handler;\r
-  UINT32            AdditionalIrq40Handler;\r
-  UINT8             AssignedDriveNumber;\r
-  UINT32            AdditionalIrq41Handler;\r
-  UINT32            AdditionalIrq46Handler;\r
-  UINT32            IBV1;\r
-  UINT32            IBV2;\r
+  UINT16                            BootPriority;\r
+  UINT32                            Bus;\r
+  UINT32                            Device;\r
+  UINT32                            Function;\r
+  UINT8                             Class;\r
+  UINT8                             SubClass;\r
+  UINT16                            MfgStringOffset;\r
+  UINT16                            MfgStringSegment;\r
+  UINT16                            DeviceType;\r
+  BBS_STATUS_FLAGS                  StatusFlags;\r
+  UINT16                            BootHandlerOffset;\r
+  UINT16                            BootHandlerSegment;\r
+  UINT16                            DescStringOffset;\r
+  UINT16                            DescStringSegment;\r
+  UINT32                            InitPerReserved;\r
+  UINT32                            AdditionalIrq13Handler;\r
+  UINT32                            AdditionalIrq18Handler;\r
+  UINT32                            AdditionalIrq19Handler;\r
+  UINT32                            AdditionalIrq40Handler;\r
+  UINT8                             AssignedDriveNumber;\r
+  UINT32                            AdditionalIrq41Handler;\r
+  UINT32                            AdditionalIrq46Handler;\r
+  UINT32                            IBV1;\r
+  UINT32                            IBV2;\r
 } BBS_TABLE;\r
 \r
-#define BBS_FLOPPY        0x01\r
-#define BBS_HARDDISK      0x02\r
-#define BBS_CDROM         0x03\r
-#define BBS_PCMCIA        0x04\r
-#define BBS_USB           0x05\r
-#define BBS_EMBED_NETWORK 0x06\r
-#define BBS_BEV_DEVICE    0x80\r
-#define BBS_UNKNOWN       0xff\r
+#define BBS_FLOPPY              0x01\r
+#define BBS_HARDDISK            0x02\r
+#define BBS_CDROM               0x03\r
+#define BBS_PCMCIA              0x04\r
+#define BBS_USB                 0x05\r
+#define BBS_EMBED_NETWORK       0x06\r
+#define BBS_BEV_DEVICE          0x80\r
+#define BBS_UNKNOWN             0xff\r
 \r
 #define BBS_DO_NOT_BOOT_FROM    0xFFFC\r
 #define BBS_LOWEST_PRIORITY     0xFFFD\r
@@ -263,10 +259,10 @@ typedef struct {
 // SMM_ATTRIBUTES & relating type, port and data size constants\r
 //\r
 typedef struct {\r
-  UINT16  Type : 3;\r
-  UINT16  PortGranularity : 3;\r
-  UINT16  DataGranularity : 3;\r
-  UINT16  Reserved : 7;\r
+  UINT16                            Type : 3;\r
+  UINT16                            PortGranularity : 3;\r
+  UINT16                            DataGranularity : 3;\r
+  UINT16                            Reserved : 7;\r
 } SMM_ATTRIBUTES;\r
 \r
 #define STANDARD_IO       0x00\r
@@ -286,8 +282,8 @@ typedef struct {
 // SMM_FUNCTION & relating constants\r
 //\r
 typedef struct {\r
-  UINT16  Function : 15;\r
-  UINT16  Owner : 1;\r
+  UINT16                            Function : 15;\r
+  UINT16                            Owner : 1;\r
 } SMM_FUNCTION;\r
 \r
 #define INT15_D042        0x0000\r
@@ -304,41 +300,41 @@ typedef struct {
 // properly to reflect that assumption.\r
 //\r
 typedef struct {\r
-  SMM_ATTRIBUTES  SmmAttributes;\r
-  SMM_FUNCTION    SmmFunction;\r
-  UINT8           SmmPort;\r
-  UINT8           SmmData;\r
+  SMM_ATTRIBUTES                    SmmAttributes;\r
+  SMM_FUNCTION                      SmmFunction;\r
+  UINT8                             SmmPort;\r
+  UINT8                             SmmData;\r
 } SMM_ENTRY;\r
 \r
 //\r
 // SMM_TABLE\r
 //\r
 typedef struct {\r
-  UINT16    NumSmmEntries;\r
-  SMM_ENTRY SmmEntry;\r
+  UINT16                            NumSmmEntries;\r
+  SMM_ENTRY                         SmmEntry;\r
 } SMM_TABLE;\r
 \r
 //\r
 // UDC_ATTRIBUTES\r
 //\r
 typedef struct {\r
-  UINT8 DirectoryServiceValidity : 1;\r
-  UINT8 RabcaUsedFlag : 1;\r
-  UINT8 ExecuteHddDiagnosticsFlag : 1;\r
-  UINT8 Reserved : 5;\r
+  UINT8                             DirectoryServiceValidity : 1;\r
+  UINT8                             RabcaUsedFlag : 1;\r
+  UINT8                             ExecuteHddDiagnosticsFlag : 1;\r
+  UINT8                             Reserved : 5;\r
 } UDC_ATTRIBUTES;\r
 \r
 //\r
 // UD_TABLE\r
 //\r
 typedef struct {\r
-  UDC_ATTRIBUTES  Attributes;\r
-  UINT8           DeviceNumber;\r
-  UINT8           BbsTableEntryNumberForParentDevice;\r
-  UINT8           BbsTableEntryNumberForBoot;\r
-  UINT8           BbsTableEntryNumberForHddDiag;\r
-  UINT8           BeerData[128];\r
-  UINT8           ServiceAreaData[64];\r
+  UDC_ATTRIBUTES                    Attributes;\r
+  UINT8                             DeviceNumber;\r
+  UINT8                             BbsTableEntryNumberForParentDevice;\r
+  UINT8                             BbsTableEntryNumberForBoot;\r
+  UINT8                             BbsTableEntryNumberForHddDiag;\r
+  UINT8                             BeerData[128];\r
+  UINT8                             ServiceAreaData[64];\r
 } UD_TABLE;\r
 \r
 //\r
@@ -349,61 +345,55 @@ typedef struct {
 #define MAX_IDE_CONTROLLER          8\r
 \r
 typedef struct {\r
-  UINT16                      MajorVersion;\r
-  UINT16                      MinorVersion;\r
-  UINT32                      AcpiTable;   // 4 GB range\r
-  UINT32                      SmbiosTable; // 4 GB range\r
-  UINT32                      SmbiosTableLength;\r
-\r
+  UINT16                            MajorVersion;\r
+  UINT16                            MinorVersion;\r
+  UINT32                            AcpiTable;   // 4 GB range\r
+  UINT32                            SmbiosTable; // 4 GB range\r
+  UINT32                            SmbiosTableLength;\r
   //\r
   // Legacy SIO state\r
   //\r
-  DEVICE_PRODUCER_DATA_HEADER SioData;\r
-\r
-  UINT16                      DevicePathType;\r
-  UINT16                      PciIrqMask;\r
-  UINT32                      NumberE820Entries;\r
-\r
+  DEVICE_PRODUCER_DATA_HEADER       SioData;\r
+  UINT16                            DevicePathType;\r
+  UINT16                            PciIrqMask;\r
+  UINT32                            NumberE820Entries;\r
   //\r
   // Controller & Drive Identify[2] per controller information\r
   //\r
-  HDD_INFO                    HddInfo[MAX_IDE_CONTROLLER];\r
-\r
-  UINT32                      NumberBbsEntries;\r
-  UINT32                      BbsTable;\r
-  UINT32                      SmmTable;\r
-  UINT32                      OsMemoryAbove1Mb;\r
-  UINT32                      UnconventionalDeviceTable;\r
+  HDD_INFO                          HddInfo[MAX_IDE_CONTROLLER];\r
+  UINT32                            NumberBbsEntries;\r
+  UINT32                            BbsTable;\r
+  UINT32                            SmmTable;\r
+  UINT32                            OsMemoryAbove1Mb;\r
+  UINT32                            UnconventionalDeviceTable;\r
 } EFI_TO_COMPATIBILITY16_BOOT_TABLE;\r
 \r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 // EFI_LEGACY_INSTALL_PCI_HANDLER\r
-///////////////////////////////////////////////////////////////////////////////\r
+//\r
 typedef struct {\r
-  UINT8   PciBus;\r
-  UINT8   PciDeviceFun;\r
-  UINT8   PciSegment;\r
-  UINT8   PciClass;\r
-  UINT8   PciSubclass;\r
-  UINT8   PciInterface;\r
-\r
+  UINT8                             PciBus;\r
+  UINT8                             PciDeviceFun;\r
+  UINT8                             PciSegment;\r
+  UINT8                             PciClass;\r
+  UINT8                             PciSubclass;\r
+  UINT8                             PciInterface;\r
   //\r
   // Primary section\r
   //\r
-  UINT8   PrimaryIrq;\r
-  UINT8   PrimaryReserved;\r
-  UINT16  PrimaryControl;\r
-  UINT16  PrimaryBase;\r
-  UINT16  PrimaryBusMaster;\r
-\r
+  UINT8                             PrimaryIrq;\r
+  UINT8                             PrimaryReserved;\r
+  UINT16                            PrimaryControl;\r
+  UINT16                            PrimaryBase;\r
+  UINT16                            PrimaryBusMaster;\r
   //\r
   // Secondary Section\r
   //\r
-  UINT8   SecondaryIrq;\r
-  UINT8   SecondaryReserved;\r
-  UINT16  SecondaryControl;\r
-  UINT16  SecondaryBase;\r
-  UINT16  SecondaryBusMaster;\r
+  UINT8                             SecondaryIrq;\r
+  UINT8                             SecondaryReserved;\r
+  UINT16                            SecondaryControl;\r
+  UINT16                            SecondaryBase;\r
+  UINT16                            SecondaryBusMaster;\r
 } EFI_LEGACY_INSTALL_PCI_HANDLER;\r
 \r
 //\r