/usr/include/efi/protocol/legacyboot.h is in gnu-efi 3.0i-3ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | /*++
Copyright (c) 1999 Intel Corporation
Module Name:
legacyboot
Abstract:
EFI support for legacy boot
Revision History
--*/
#ifndef _LEGACY_BOOT_INCLUDE_
#define _LEGACY_BOOT_INCLUDE_
#define LEGACY_BOOT_PROTOCOL \
{ 0x376e5eb2, 0x30e4, 0x11d3, { 0xba, 0xe5, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
#pragma pack(1)
//
// BBS 1.01 (See Appendix A) IPL and BCV Table Entry Data structure.
// Seg:Off pointers have been converted to EFI pointers in this data structure
// This is the structure that also maps to the EFI device path for the boot selection
//
typedef struct {
UINT16 DeviceType;
UINT16 StatusFlag;
UINT32 Reserved;
VOID *BootHandler; // Not an EFI entry point
CHAR8 *DescString;
} BBS_TABLE_ENTRY;
#pragma pack()
typedef
EFI_STATUS
(EFIAPI *LEGACY_BOOT_CALL) (
IN EFI_DEVICE_PATH *DevicePath
);
//
// BBS support functions
// PnP Call numbers and BiosSelector hidden in implementation
//
typedef enum {
IplRelative,
BcvRelative
} BBS_TYPE;
INTERFACE_DECL(_LEGACY_BOOT_INTERFACE);
//
// == PnP Function 0x60 then BbsVersion == 0x0101 if this call fails then BbsVersion == 0x0000
//
//
// == PnP Function 0x61
//
typedef
EFI_STATUS
(EFIAPI *GET_DEVICE_COUNT) (
IN struct _LEGACY_BOOT_INTERFACE *This,
IN BBS_TYPE *TableType,
OUT UINTN *DeviceCount,
OUT UINTN *MaxCount
);
//
// == PnP Function 0x62
//
typedef
EFI_STATUS
(EFIAPI *GET_PRIORITY_AND_TABLE) (
IN struct _LEGACY_BOOT_INTERFACE *This,
IN BBS_TYPE *TableType,
IN OUT UINTN *PrioritySize, // MaxCount * sizeof(UINT8)
OUT UINTN *Priority,
IN OUT UINTN *TableSize, // MaxCount * sizeof(BBS_TABLE_ENTRY)
OUT BBS_TABLE_ENTRY *TableEntrySize
);
//
// == PnP Function 0x63
//
typedef
EFI_STATUS
(EFIAPI *SET_PRIORITY) (
IN struct _LEGACY_BOOT_INTERFACE *This,
IN BBS_TYPE *TableType,
IN OUT UINTN *PrioritySize,
OUT UINTN *Priority
);
typedef struct _LEGACY_BOOT_INTERFACE {
LEGACY_BOOT_CALL BootIt;
//
// New functions to allow BBS booting to be configured from EFI
//
UINTN BbsVersion; // Currently 0x0101
GET_DEVICE_COUNT GetDeviceCount;
GET_PRIORITY_AND_TABLE GetPriorityAndTable;
SET_PRIORITY SetPriority;
} LEGACY_BOOT_INTERFACE;
EFI_STATUS
PlInitializeLegacyBoot (
VOID
);
#endif
|