EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

IntelFrameworkPkg/Include/Protocol/LegacyBios.h

Go to the documentation of this file.
00001 
00027 #ifndef _EFI_LEGACY_BIOS_H_
00028 #define _EFI_LEGACY_BIOS_H_
00029 
00033 #pragma pack(1)
00034 
00035 typedef UINT8                       SERIAL_MODE;
00036 typedef UINT8                       PARALLEL_MODE;
00037 
00038 #define EFI_COMPATIBILITY16_TABLE_SIGNATURE SIGNATURE_32 ('I', 'F', 'E', '$')
00039 
00048 typedef struct {
00053   UINT32                            Signature;
00054   
00058   UINT8                             TableChecksum;
00059   
00063   UINT8                             TableLength;
00064   
00068   UINT8                             EfiMajorRevision;
00069   
00073   UINT8                             EfiMinorRevision;
00074   
00078   UINT8                             TableMajorRevision;
00079   
00083   UINT8                             TableMinorRevision;
00084   
00088   UINT16                            Reserved;
00089   
00093   UINT16                            Compatibility16CallSegment;
00094   
00098   UINT16                            Compatibility16CallOffset;
00099   
00104   UINT16                            PnPInstallationCheckSegment;
00105   
00110   UINT16                            PnPInstallationCheckOffset;
00111   
00116   UINT32                            EfiSystemTable; 
00117   
00121   UINT32                            OemIdStringPointer;
00122   
00129   UINT32                            AcpiRsdPtrPointer;
00130   
00134   UINT16                            OemRevision;
00135   
00141   UINT32                            E820Pointer;
00142   
00146   UINT32                            E820Length;
00147   
00153   UINT32                            IrqRoutingTablePointer;
00154   
00158   UINT32                            IrqRoutingTableLength;
00159   
00165   UINT32                            MpTablePtr;
00166   
00170   UINT32                            MpTableLength;
00171   
00175   UINT16                            OemIntSegment;
00176   
00180   UINT16                            OemIntOffset;
00181   
00185   UINT16                            Oem32Segment;
00186   
00190   UINT16                            Oem32Offset;
00191   
00195   UINT16                            Oem16Segment;
00196   
00200   UINT16                            Oem16Offset;
00201   
00205   UINT16                            TpmSegment;
00206   
00210   UINT16                            TpmOffset;
00211   
00215   UINT32                            IbvPointer;
00216   
00225   UINT32                            PciExpressBase;
00226   
00230   UINT8                             LastPciBus;
00231 } EFI_COMPATIBILITY16_TABLE;
00232 
00242 typedef enum {
00251   Legacy16InitializeYourself    = 0x0000,
00252   
00261   Legacy16UpdateBbs             = 0x0001,
00262   
00272   Legacy16PrepareToBoot         = 0x0002,
00273   
00281   Legacy16Boot                  = 0x0003,
00282   
00292   Legacy16RetrieveLastBootDevice = 0x0004,
00293   
00303   Legacy16DispatchOprom         = 0x0005,
00304   
00320   Legacy16GetTableAddress       = 0x0006,
00321   
00333   Legacy16SetKeyboardLeds       = 0x0007,
00334   
00344   Legacy16InstallPciHandler     = 0x0008
00345 } EFI_COMPATIBILITY_FUNCTIONS;
00346 
00347 
00351 typedef struct {
00352   UINT16  PnPInstallationCheckSegment;  
00353   UINT16  PnPInstallationCheckOffset;   
00354   UINT16  OpromSegment;                 
00355   UINT8   PciBus;                       
00356   UINT8   PciDeviceFunction;            
00357   UINT8   NumberBbsEntries;             
00358 
00359 
00360   UINT32  BbsTablePointer;              
00361   UINT16  RuntimeSegment;               
00362 
00363 
00364 
00365 
00366 
00367 } EFI_DISPATCH_OPROM_TABLE;
00368 
00372 typedef struct {
00376   UINT32                            BiosLessThan1MB;
00377   
00381   UINT32                            HiPmmMemory;
00382   
00386   UINT32                            HiPmmMemorySizeInBytes;
00387   
00391   UINT16                            ReverseThunkCallSegment;
00392   
00396   UINT16                            ReverseThunkCallOffset;
00397   
00401   UINT32                            NumberE820Entries;
00402   
00406   UINT32                            OsMemoryAbove1Mb;
00407   
00411   UINT32                            ThunkStart;
00412   
00416   UINT32                            ThunkSizeInBytes;
00417   
00421   UINT32                            LowPmmMemory;
00422   
00426   UINT32                            LowPmmMemorySizeInBytes;
00427 } EFI_TO_COMPATIBILITY16_INIT_TABLE;
00428 
00432 typedef struct {
00433   UINT16                            Address;    
00434   UINT8                             Irq;        
00435   SERIAL_MODE                       Mode;       
00436 } DEVICE_PRODUCER_SERIAL;
00437 
00441 #define DEVICE_SERIAL_MODE_NORMAL               0x00
00442 #define DEVICE_SERIAL_MODE_IRDA                 0x01
00443 #define DEVICE_SERIAL_MODE_ASK_IR               0x02
00444 #define DEVICE_SERIAL_MODE_DUPLEX_HALF          0x00
00445 #define DEVICE_SERIAL_MODE_DUPLEX_FULL          0x10
00446 
00447 
00451 typedef struct {
00452   UINT16                            Address;  
00453   UINT8                             Irq;      
00454   UINT8                             Dma;      
00455   PARALLEL_MODE                     Mode;     
00456 } DEVICE_PRODUCER_PARALLEL;
00457 
00461 #define DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY   0x00
00462 #define DEVICE_PARALLEL_MODE_MODE_BIDIRECTIONAL 0x01
00463 #define DEVICE_PARALLEL_MODE_MODE_EPP           0x02
00464 #define DEVICE_PARALLEL_MODE_MODE_ECP           0x03
00465 
00466 
00470 typedef struct {
00471   UINT16                            Address;          
00472   UINT8                             Irq;              
00473   UINT8                             Dma;              
00474   UINT8                             NumberOfFloppy;   
00475 } DEVICE_PRODUCER_FLOPPY;
00476 
00480 typedef struct {
00481   UINT32                            A20Kybd : 1;      
00482   UINT32                            A20Port90 : 1;    
00483   UINT32                            Reserved : 30;    
00484 } LEGACY_DEVICE_FLAGS;
00485 
00489 typedef struct {
00490   DEVICE_PRODUCER_SERIAL            Serial[4];      
00491   DEVICE_PRODUCER_PARALLEL          Parallel[3];    
00492   DEVICE_PRODUCER_FLOPPY            Floppy;         
00493   UINT8                             MousePresent;   
00494   LEGACY_DEVICE_FLAGS               Flags;          
00495 } DEVICE_PRODUCER_DATA_HEADER;
00496 
00500 typedef struct {
00501   UINT16                            Raw[256];     
00502 } ATAPI_IDENTIFY;
00503 
00507 typedef struct {
00513   UINT16                            Status;   
00514   
00518   UINT32                            Bus;
00519   
00523   UINT32                            Device;
00524   
00528   UINT32                            Function;
00529   
00533   UINT16                            CommandBaseAddress;
00534   
00538   UINT16                            ControlBaseAddress;
00539   
00543   UINT16                            BusMasterAddress;
00544   
00545   UINT8                             HddIrq;
00546   
00550   ATAPI_IDENTIFY                    IdentifyDrive[2];
00551 } HDD_INFO;
00552 
00556 #define HDD_PRIMARY               0x01
00557 #define HDD_SECONDARY             0x02
00558 #define HDD_MASTER_ATAPI_CDROM    0x04
00559 #define HDD_SLAVE_ATAPI_CDROM     0x08
00560 #define HDD_MASTER_IDE            0x20
00561 #define HDD_SLAVE_IDE             0x40
00562 #define HDD_MASTER_ATAPI_ZIPDISK  0x10
00563 #define HDD_SLAVE_ATAPI_ZIPDISK   0x80
00564 
00568 typedef struct {
00569   UINT16                            OldPosition : 4;    
00570   UINT16                            Reserved1 : 4;      
00571   UINT16                            Enabled : 1;        
00572   UINT16                            Failed : 1;         
00573 
00574   
00582   UINT16                            MediaPresent : 2;
00583   UINT16                            Reserved2 : 4;      
00584 } BBS_STATUS_FLAGS;
00585 
00589 typedef struct {
00593   UINT16                            BootPriority;
00594   
00598   UINT32                            Bus;
00599   
00603   UINT32                            Device;
00604   
00608   UINT32                            Function;
00609   
00613   UINT8                             Class;
00614   
00618   UINT8                             SubClass;
00619   
00623   UINT16                            MfgStringOffset;
00624   
00628   UINT16                            MfgStringSegment;
00629   
00633   UINT16                            DeviceType;
00634   
00638   BBS_STATUS_FLAGS                  StatusFlags;
00639   
00644   UINT16                            BootHandlerOffset;
00645   
00650   UINT16                            BootHandlerSegment;
00651   
00655   UINT16                            DescStringOffset;
00656 
00660   UINT16                            DescStringSegment;
00661   
00665   UINT32                            InitPerReserved;
00666   
00672   UINT32                            AdditionalIrq13Handler;
00673   
00679   UINT32                            AdditionalIrq18Handler;
00680   
00686   UINT32                            AdditionalIrq19Handler;
00687   
00693   UINT32                            AdditionalIrq40Handler;
00694   UINT8                             AssignedDriveNumber;
00695   UINT32                            AdditionalIrq41Handler;
00696   UINT32                            AdditionalIrq46Handler;
00697   UINT32                            IBV1;
00698   UINT32                            IBV2;
00699 } BBS_TABLE;
00700 
00704 #define BBS_FLOPPY              0x01
00705 #define BBS_HARDDISK            0x02
00706 #define BBS_CDROM               0x03
00707 #define BBS_PCMCIA              0x04
00708 #define BBS_USB                 0x05
00709 #define BBS_EMBED_NETWORK       0x06
00710 #define BBS_BEV_DEVICE          0x80
00711 #define BBS_UNKNOWN             0xff
00712 
00713 
00717 #define BBS_DO_NOT_BOOT_FROM    0xFFFC
00718 #define BBS_LOWEST_PRIORITY     0xFFFD
00719 #define BBS_UNPRIORITIZED_ENTRY 0xFFFE
00720 #define BBS_IGNORE_ENTRY        0xFFFF
00721 
00722 
00726 typedef struct {
00731   UINT16                            Type : 3;
00732   
00736   UINT16                            PortGranularity : 3;
00737   
00741   UINT16                            DataGranularity : 3;
00742   
00746   UINT16                            Reserved : 7;
00747 } SMM_ATTRIBUTES;
00748 
00752 #define STANDARD_IO       0x00
00753 #define STANDARD_MEMORY   0x01
00754 
00755 
00759 #define PORT_SIZE_8       0x00
00760 #define PORT_SIZE_16      0x01
00761 #define PORT_SIZE_32      0x02
00762 #define PORT_SIZE_64      0x03
00763 
00764 
00768 #define DATA_SIZE_8       0x00
00769 #define DATA_SIZE_16      0x01
00770 #define DATA_SIZE_32      0x02
00771 #define DATA_SIZE_64      0x03
00772 
00773 
00777 typedef struct {
00778   UINT16                            Function : 15;
00779   UINT16                            Owner : 1;
00780 } SMM_FUNCTION;
00781 
00785 #define INT15_D042        0x0000
00786 #define GET_USB_BOOT_INFO 0x0001
00787 #define DMI_PNP_50_57     0x0002
00788 
00789 
00793 #define STANDARD_OWNER    0x0
00794 #define OEM_OWNER         0x1
00795 
00796 
00801 typedef struct {
00806   SMM_ATTRIBUTES                    SmmAttributes;
00807   
00811   SMM_FUNCTION                      SmmFunction;
00812   
00816   UINT8                             SmmPort;
00817   
00821   UINT8                             SmmData;
00822 } SMM_ENTRY;
00823 
00827 typedef struct {
00828   UINT16                            NumSmmEntries;    
00829   SMM_ENTRY                         SmmEntry;         
00830 } SMM_TABLE;
00831 
00835 typedef struct {
00839   UINT8                             DirectoryServiceValidity : 1;
00840   
00845   UINT8                             RabcaUsedFlag : 1;
00846   
00850   UINT8                             ExecuteHddDiagnosticsFlag : 1;
00851   
00855   UINT8                             Reserved : 5;
00856 } UDC_ATTRIBUTES;
00857 
00861 typedef struct {
00866   UDC_ATTRIBUTES                    Attributes;
00867   
00872   UINT8                             DeviceNumber;
00873   
00879   UINT8                             BbsTableEntryNumberForParentDevice;
00880   
00884   UINT8                             BbsTableEntryNumberForBoot;
00885   
00889   UINT8                             BbsTableEntryNumberForHddDiag;
00890   
00894   UINT8                             BeerData[128];
00895   
00899   UINT8                             ServiceAreaData[64];
00900 } UD_TABLE;
00901 
00902 #define EFI_TO_LEGACY_MAJOR_VERSION 0x02
00903 #define EFI_TO_LEGACY_MINOR_VERSION 0x00
00904 #define MAX_IDE_CONTROLLER          8
00905 
00909 typedef struct {
00910   UINT16                            MajorVersion;                 
00911   UINT16                            MinorVersion;                 
00912   UINT32                            AcpiTable;                    
00913   UINT32                            SmbiosTable;                  
00914   UINT32                            SmbiosTableLength;
00915   //
00916   // Legacy SIO state
00917   //
00918   DEVICE_PRODUCER_DATA_HEADER       SioData;                      
00919   UINT16                            DevicePathType;               
00920   UINT16                            PciIrqMask;                   
00921   UINT32                            NumberE820Entries;            
00922 
00923   //
00924   // Controller & Drive Identify[2] per controller information
00925   //
00926   HDD_INFO                          HddInfo[MAX_IDE_CONTROLLER];  
00927   UINT32                            NumberBbsEntries;             
00928   UINT32                            BbsTable;                     
00929   UINT32                            SmmTable;                     
00930   UINT32                            OsMemoryAbove1Mb;             
00931 
00932 
00933   UINT32                            UnconventionalDeviceTable;    
00934 
00935 } EFI_TO_COMPATIBILITY16_BOOT_TABLE;
00936 
00940 typedef struct {
00941   UINT8                             PciBus;             
00942   UINT8                             PciDeviceFun;       
00943   UINT8                             PciSegment;         
00944   UINT8                             PciClass;           
00945   UINT8                             PciSubclass;        
00946   UINT8                             PciInterface;       
00947   //
00948   // Primary section
00949   //
00950   UINT8                             PrimaryIrq;         
00951   UINT8                             PrimaryReserved;    
00952   UINT16                            PrimaryControl;     
00953   UINT16                            PrimaryBase;        
00954   UINT16                            PrimaryBusMaster;   
00955   //
00956   // Secondary Section
00957   //
00958   UINT8                             SecondaryIrq;       
00959   UINT8                             SecondaryReserved;  
00960   UINT16                            SecondaryControl;   
00961   UINT16                            SecondaryBase;      
00962   UINT16                            SecondaryBusMaster; 
00963 } EFI_LEGACY_INSTALL_PCI_HANDLER;
00964 
00965 //
00966 // Restore default pack value
00967 //
00968 #pragma pack()
00969 
00970 #define EFI_LEGACY_BIOS_PROTOCOL_GUID \
00971   { \
00972     0xdb9a1e3d, 0x45cb, 0x4abb, {0x85, 0x3b, 0xe5, 0x38, 0x7f, 0xdb, 0x2e, 0x2d } \
00973   }
00974 
00975 typedef struct _EFI_LEGACY_BIOS_PROTOCOL EFI_LEGACY_BIOS_PROTOCOL;
00976 
00980 #define NO_ROM            0x00
00981 #define ROM_FOUND         0x01
00982 #define VALID_LEGACY_ROM  0x02
00983 #define ROM_WITH_CONFIG   0x04     ///< Not defined in the Framework CSM Specification.
00984 
00991 #define EFI_SEGMENT(_Adr)     (UINT16) ((UINT16) (((UINTN) (_Adr)) >> 4) & 0xf000)
00992 #define EFI_OFFSET(_Adr)      (UINT16) (((UINT16) ((UINTN) (_Adr))) & 0xffff)
00993 
00994 
00995 #define CARRY_FLAG            0x01
00996 
01000 typedef struct {
01001   UINT32 CF:1;
01002   UINT32 Reserved1:1;
01003   UINT32 PF:1;
01004   UINT32 Reserved2:1;
01005   UINT32 AF:1;
01006   UINT32 Reserved3:1;
01007   UINT32 ZF:1;
01008   UINT32 SF:1;
01009   UINT32 TF:1;
01010   UINT32 IF:1;
01011   UINT32 DF:1;
01012   UINT32 OF:1;
01013   UINT32 IOPL:2;
01014   UINT32 NT:1;
01015   UINT32 Reserved4:2;
01016   UINT32 VM:1;
01017   UINT32 Reserved5:14;
01018 } EFI_EFLAGS_REG;
01019 
01023 typedef struct {
01024     UINT32           EAX;
01025     UINT32           EBX;
01026     UINT32           ECX;
01027     UINT32           EDX;
01028     UINT32           ESI;
01029     UINT32           EDI;
01030     EFI_EFLAGS_REG   EFlags;
01031     UINT16           ES;
01032     UINT16           CS;
01033     UINT16           SS;
01034     UINT16           DS;
01035     UINT16           FS;
01036     UINT16           GS;
01037     UINT32           EBP;
01038     UINT32           ESP;
01039 } EFI_DWORD_REGS;
01040 
01044 typedef struct {
01045   UINT16     CF:1;
01046   UINT16     Reserved1:1;
01047   UINT16     PF:1;
01048   UINT16     Reserved2:1;
01049   UINT16     AF:1;
01050   UINT16     Reserved3:1;
01051   UINT16     ZF:1;
01052   UINT16     SF:1;
01053   UINT16     TF:1;
01054   UINT16     IF:1;
01055   UINT16     DF:1;
01056   UINT16     OF:1;
01057   UINT16     IOPL:2;
01058   UINT16     NT:1;
01059   UINT16     Reserved4:1;
01060 } EFI_FLAGS_REG;
01061 
01065 typedef struct {
01066     UINT16           AX;
01067     UINT16           ReservedAX;
01068     UINT16           BX;
01069     UINT16           ReservedBX;
01070     UINT16           CX;
01071     UINT16           ReservedCX;
01072     UINT16           DX;
01073     UINT16           ReservedDX;
01074     UINT16           SI;
01075     UINT16           ReservedSI;
01076     UINT16           DI;
01077     UINT16           ReservedDI;
01078     EFI_FLAGS_REG    Flags;
01079     UINT16           ReservedFlags;
01080     UINT16           ES;
01081     UINT16           CS;
01082     UINT16           SS;
01083     UINT16           DS;
01084     UINT16           FS;
01085     UINT16           GS;
01086     UINT16           BP;
01087     UINT16           ReservedBP;
01088     UINT16           SP;
01089     UINT16           ReservedSP;
01090 } EFI_WORD_REGS;
01091 
01095 typedef struct {
01096     UINT8   AL, AH;
01097     UINT16  ReservedAX;
01098     UINT8   BL, BH;
01099     UINT16  ReservedBX;
01100     UINT8   CL, CH;
01101     UINT16  ReservedCX;
01102     UINT8   DL, DH;
01103     UINT16  ReservedDX;
01104 } EFI_BYTE_REGS;
01105 
01109 typedef union {
01110   EFI_DWORD_REGS  E;
01111   EFI_WORD_REGS   X;
01112   EFI_BYTE_REGS   H;
01113 } EFI_IA32_REGISTER_SET;
01114 
01128 typedef
01129 BOOLEAN
01130 (EFIAPI *EFI_LEGACY_BIOS_INT86)(
01131   IN     EFI_LEGACY_BIOS_PROTOCOL  *This,
01132   IN     UINT8                     BiosInt,
01133   IN OUT EFI_IA32_REGISTER_SET     *Regs
01134   );
01135 
01151 typedef
01152 BOOLEAN
01153 (EFIAPI *EFI_LEGACY_BIOS_FARCALL86)(
01154   IN EFI_LEGACY_BIOS_PROTOCOL  *This,
01155   IN UINT16                    Segment,
01156   IN UINT16                    Offset,
01157   IN EFI_IA32_REGISTER_SET     *Regs,
01158   IN VOID                      *Stack,
01159   IN UINTN                     StackSize
01160   );
01161 
01179 typedef
01180 EFI_STATUS
01181 (EFIAPI *EFI_LEGACY_BIOS_CHECK_ROM)(
01182   IN  EFI_LEGACY_BIOS_PROTOCOL  *This,
01183   IN  EFI_HANDLE                PciHandle,
01184   OUT VOID                      **RomImage, OPTIONAL
01185   OUT UINTN                     *RomSize, OPTIONAL
01186   OUT UINTN                     *Flags
01187   );
01188 
01216 typedef
01217 EFI_STATUS
01218 (EFIAPI *EFI_LEGACY_BIOS_INSTALL_ROM)(
01219   IN  EFI_LEGACY_BIOS_PROTOCOL  *This,
01220   IN  EFI_HANDLE                PciHandle,
01221   IN  VOID                      **RomImage,
01222   OUT UINTN                     *Flags,
01223   OUT UINT8                     *DiskStart, OPTIONAL
01224   OUT UINT8                     *DiskEnd, OPTIONAL
01225   OUT VOID                      **RomShadowAddress, OPTIONAL
01226   OUT UINT32                    *ShadowedRomSize OPTIONAL
01227   );
01228 
01260 typedef
01261 EFI_STATUS
01262 (EFIAPI *EFI_LEGACY_BIOS_BOOT)(
01263   IN EFI_LEGACY_BIOS_PROTOCOL  *This,
01264   IN BBS_BBS_DEVICE_PATH       *BootOption,
01265   IN UINT32                    LoadOptionsSize,
01266   IN VOID                      *LoadOptions
01267   );
01268 
01285 typedef
01286 EFI_STATUS
01287 (EFIAPI *EFI_LEGACY_BIOS_UPDATE_KEYBOARD_LED_STATUS)(
01288   IN EFI_LEGACY_BIOS_PROTOCOL  *This,
01289   IN UINT8                     Leds
01290   );
01291 
01304 typedef
01305 EFI_STATUS
01306 (EFIAPI *EFI_LEGACY_BIOS_GET_BBS_INFO)(
01307   IN     EFI_LEGACY_BIOS_PROTOCOL  *This,
01308   OUT    UINT16                    *HddCount,
01309   OUT    HDD_INFO                  **HddInfo,
01310   OUT    UINT16                    *BbsCount,
01311   IN OUT BBS_TABLE                 **BbsTable
01312   );
01313 
01325 typedef
01326 EFI_STATUS
01327 (EFIAPI *EFI_LEGACY_BIOS_PREPARE_TO_BOOT_EFI)(
01328   IN  EFI_LEGACY_BIOS_PROTOCOL  *This,
01329   OUT UINT16                    *BbsCount,
01330   OUT BBS_TABLE                 **BbsTable
01331   );
01332 
01349 typedef
01350 EFI_STATUS
01351 (EFIAPI *EFI_LEGACY_BIOS_BOOT_UNCONVENTIONAL_DEVICE)(
01352   IN EFI_LEGACY_BIOS_PROTOCOL  *This,
01353   IN UDC_ATTRIBUTES            Attributes,
01354   IN UINTN                     BbsEntry,
01355   IN VOID                      *BeerData,
01356   IN VOID                      *ServiceAreaData
01357   );
01358 
01370 typedef
01371 EFI_STATUS
01372 (EFIAPI *EFI_LEGACY_BIOS_SHADOW_ALL_LEGACY_OPROMS)(
01373   IN EFI_LEGACY_BIOS_PROTOCOL  *This
01374   );
01375 
01394 typedef
01395 EFI_STATUS
01396 (EFIAPI *EFI_LEGACY_BIOS_GET_LEGACY_REGION)(
01397   IN  EFI_LEGACY_BIOS_PROTOCOL  *This,
01398   IN  UINTN                     LegacyMemorySize,
01399   IN  UINTN                     Region,
01400   IN  UINTN                     Alignment,
01401   OUT VOID                      **LegacyMemoryAddress
01402   );
01403 
01418 typedef
01419 EFI_STATUS
01420 (EFIAPI *EFI_LEGACY_BIOS_COPY_LEGACY_REGION)(
01421   IN EFI_LEGACY_BIOS_PROTOCOL  *This,
01422   IN UINTN                     LegacyMemorySize,
01423   IN VOID                      *LegacyMemoryAddress,
01424   IN VOID                      *LegacyMemorySourceAddress
01425   );
01426 
01433 struct _EFI_LEGACY_BIOS_PROTOCOL {
01437   EFI_LEGACY_BIOS_INT86                       Int86;
01438   
01442   EFI_LEGACY_BIOS_FARCALL86                   FarCall86;
01443   
01447   EFI_LEGACY_BIOS_CHECK_ROM                   CheckPciRom;
01448   
01452   EFI_LEGACY_BIOS_INSTALL_ROM                 InstallPciRom;
01453   
01457   EFI_LEGACY_BIOS_BOOT                        LegacyBoot;
01458   
01462   EFI_LEGACY_BIOS_UPDATE_KEYBOARD_LED_STATUS  UpdateKeyboardLedStatus;
01463   
01467   EFI_LEGACY_BIOS_GET_BBS_INFO                GetBbsInfo;
01468   
01472   EFI_LEGACY_BIOS_SHADOW_ALL_LEGACY_OPROMS    ShadowAllLegacyOproms;
01473   
01478   EFI_LEGACY_BIOS_PREPARE_TO_BOOT_EFI         PrepareToBootEfi;
01479   
01483   EFI_LEGACY_BIOS_GET_LEGACY_REGION           GetLegacyRegion;
01484   
01488   EFI_LEGACY_BIOS_COPY_LEGACY_REGION          CopyLegacyRegion;
01489   
01493   EFI_LEGACY_BIOS_BOOT_UNCONVENTIONAL_DEVICE  BootUnconventionalDevice;
01494 };
01495 
01496 extern EFI_GUID gEfiLegacyBiosProtocolGuid;
01497 
01498 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines