Changeset View
Changeset View
Standalone View
Standalone View
sys/boot/efi/include/efiprot.h
Show All 25 Lines | |||||
Revision History | Revision History | ||||
--*/ | --*/ | ||||
// | // | ||||
// Device Path protocol | // Device Path protocol | ||||
// | // | ||||
#define DEVICE_PATH_PROTOCOL \ | #define DEVICE_PATH_PROTOCOL \ | ||||
{ 0x9576e91, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } | { 0x9576e91, 0x6d3f, 0x11d2, \ | ||||
{ 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } } | |||||
// | // | ||||
// Block IO protocol | // Block IO protocol | ||||
// | // | ||||
#define BLOCK_IO_PROTOCOL \ | #define BLOCK_IO_PROTOCOL \ | ||||
{ 0x964e5b21, 0x6459, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } | { 0x964e5b21, 0x6459, 0x11d2, \ | ||||
{ 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } } | |||||
#define EFI_BLOCK_IO_INTERFACE_REVISION 0x00010000 | #define EFI_BLOCK_IO_INTERFACE_REVISION 0x00010000 | ||||
INTERFACE_DECL(_EFI_BLOCK_IO); | INTERFACE_DECL(_EFI_BLOCK_IO); | ||||
typedef | typedef | ||||
EFI_STATUS | EFI_STATUS | ||||
(EFIAPI *EFI_BLOCK_RESET) ( | (EFIAPI *EFI_BLOCK_RESET) ( | ||||
IN struct _EFI_BLOCK_IO *This, | IN struct _EFI_BLOCK_IO *This, | ||||
▲ Show 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | |||||
// | // | ||||
// Disk Block IO protocol | // Disk Block IO protocol | ||||
// | // | ||||
#define DISK_IO_PROTOCOL \ | #define DISK_IO_PROTOCOL \ | ||||
{ 0xce345171, 0xba0b, 0x11d2, 0x8e, 0x4f, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } | { 0xce345171, 0xba0b, 0x11d2, \ | ||||
{ 0x8e, 0x4f, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } } | |||||
#define EFI_DISK_IO_INTERFACE_REVISION 0x00010000 | #define EFI_DISK_IO_INTERFACE_REVISION 0x00010000 | ||||
INTERFACE_DECL(_EFI_DISK_IO); | INTERFACE_DECL(_EFI_DISK_IO); | ||||
typedef | typedef | ||||
EFI_STATUS | EFI_STATUS | ||||
(EFIAPI *EFI_DISK_READ) ( | (EFIAPI *EFI_DISK_READ) ( | ||||
IN struct _EFI_DISK_IO *This, | IN struct _EFI_DISK_IO *This, | ||||
Show All 22 Lines | |||||
} EFI_DISK_IO; | } EFI_DISK_IO; | ||||
// | // | ||||
// Simple file system protocol | // Simple file system protocol | ||||
// | // | ||||
#define SIMPLE_FILE_SYSTEM_PROTOCOL \ | #define SIMPLE_FILE_SYSTEM_PROTOCOL \ | ||||
{ 0x964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } | { 0x964e5b22, 0x6459, 0x11d2, \ | ||||
{ 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } } | |||||
INTERFACE_DECL(_EFI_FILE_IO_INTERFACE); | INTERFACE_DECL(_EFI_FILE_IO_INTERFACE); | ||||
INTERFACE_DECL(_EFI_FILE_HANDLE); | INTERFACE_DECL(_EFI_FILE_HANDLE); | ||||
typedef | typedef | ||||
EFI_STATUS | EFI_STATUS | ||||
(EFIAPI *EFI_VOLUME_OPEN) ( | (EFIAPI *EFI_VOLUME_OPEN) ( | ||||
IN struct _EFI_FILE_IO_INTERFACE *This, | IN struct _EFI_FILE_IO_INTERFACE *This, | ||||
▲ Show 20 Lines • Show All 118 Lines • ▼ Show 20 Lines | typedef struct _EFI_FILE_HANDLE { | ||||
EFI_FILE_FLUSH Flush; | EFI_FILE_FLUSH Flush; | ||||
} EFI_FILE, *EFI_FILE_HANDLE; | } EFI_FILE, *EFI_FILE_HANDLE; | ||||
// | // | ||||
// File information types | // File information types | ||||
// | // | ||||
#define EFI_FILE_INFO_ID \ | #define EFI_FILE_INFO_ID \ | ||||
{ 0x9576e92, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } | { 0x9576e92, 0x6d3f, 0x11d2, \ | ||||
{ 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } } | |||||
typedef struct { | typedef struct { | ||||
UINT64 Size; | UINT64 Size; | ||||
UINT64 FileSize; | UINT64 FileSize; | ||||
UINT64 PhysicalSize; | UINT64 PhysicalSize; | ||||
EFI_TIME CreateTime; | EFI_TIME CreateTime; | ||||
EFI_TIME LastAccessTime; | EFI_TIME LastAccessTime; | ||||
EFI_TIME ModificationTime; | EFI_TIME ModificationTime; | ||||
UINT64 Attribute; | UINT64 Attribute; | ||||
CHAR16 FileName[1]; | CHAR16 FileName[1]; | ||||
} EFI_FILE_INFO; | } EFI_FILE_INFO; | ||||
// | // | ||||
// The FileName field of the EFI_FILE_INFO data structure is variable length. | // The FileName field of the EFI_FILE_INFO data structure is variable length. | ||||
// Whenever code needs to know the size of the EFI_FILE_INFO data structure, it needs to | // Whenever code needs to know the size of the EFI_FILE_INFO data structure, it needs to | ||||
// be the size of the data structure without the FileName field. The following macro | // be the size of the data structure without the FileName field. The following macro | ||||
// computes this size correctly no matter how big the FileName array is declared. | // computes this size correctly no matter how big the FileName array is declared. | ||||
// This is required to make the EFI_FILE_INFO data structure ANSI compilant. | // This is required to make the EFI_FILE_INFO data structure ANSI compilant. | ||||
// | // | ||||
#define SIZE_OF_EFI_FILE_INFO EFI_FIELD_OFFSET(EFI_FILE_INFO,FileName) | #define SIZE_OF_EFI_FILE_INFO EFI_FIELD_OFFSET(EFI_FILE_INFO,FileName) | ||||
#define EFI_FILE_SYSTEM_INFO_ID \ | #define EFI_FILE_SYSTEM_INFO_ID \ | ||||
{ 0x9576e93, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } | { 0x9576e93, 0x6d3f, 0x11d2, \ | ||||
{ 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } } | |||||
typedef struct { | typedef struct { | ||||
UINT64 Size; | UINT64 Size; | ||||
BOOLEAN ReadOnly; | BOOLEAN ReadOnly; | ||||
UINT64 VolumeSize; | UINT64 VolumeSize; | ||||
UINT64 FreeSpace; | UINT64 FreeSpace; | ||||
UINT32 BlockSize; | UINT32 BlockSize; | ||||
CHAR16 VolumeLabel[1]; | CHAR16 VolumeLabel[1]; | ||||
} EFI_FILE_SYSTEM_INFO; | } EFI_FILE_SYSTEM_INFO; | ||||
// | // | ||||
// The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length. | // The VolumeLabel field of the EFI_FILE_SYSTEM_INFO data structure is variable length. | ||||
// Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs | // Whenever code needs to know the size of the EFI_FILE_SYSTEM_INFO data structure, it needs | ||||
// to be the size of the data structure without the VolumeLable field. The following macro | // to be the size of the data structure without the VolumeLable field. The following macro | ||||
// computes this size correctly no matter how big the VolumeLable array is declared. | // computes this size correctly no matter how big the VolumeLable array is declared. | ||||
// This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant. | // This is required to make the EFI_FILE_SYSTEM_INFO data structure ANSI compilant. | ||||
// | // | ||||
#define SIZE_OF_EFI_FILE_SYSTEM_INFO EFI_FIELD_OFFSET(EFI_FILE_SYSTEM_INFO,VolumeLabel) | #define SIZE_OF_EFI_FILE_SYSTEM_INFO EFI_FIELD_OFFSET(EFI_FILE_SYSTEM_INFO,VolumeLabel) | ||||
#define EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID \ | #define EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID \ | ||||
{ 0xDB47D7D3,0xFE81, 0x11d3, 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } | { 0xDB47D7D3,0xFE81, 0x11d3, \ | ||||
{ 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } } | |||||
typedef struct { | typedef struct { | ||||
CHAR16 VolumeLabel[1]; | CHAR16 VolumeLabel[1]; | ||||
} EFI_FILE_SYSTEM_VOLUME_LABEL_INFO; | } EFI_FILE_SYSTEM_VOLUME_LABEL_INFO; | ||||
#define SIZE_OF_EFI_FILE_SYSTEM_VOLUME_LABEL_INFO EFI_FIELD_OFFSET(EFI_FILE_SYSTEM_VOLUME_LABEL_INFO,VolumeLabel) | #define SIZE_OF_EFI_FILE_SYSTEM_VOLUME_LABEL_INFO EFI_FIELD_OFFSET(EFI_FILE_SYSTEM_VOLUME_LABEL_INFO,VolumeLabel) | ||||
// | // | ||||
// Load file protocol | // Load file protocol | ||||
// | // | ||||
#define LOAD_FILE_PROTOCOL \ | #define LOAD_FILE_PROTOCOL \ | ||||
{ 0x56EC3091, 0x954C, 0x11d2, 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B } | { 0x56EC3091, 0x954C, 0x11d2, \ | ||||
{ 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B } } | |||||
INTERFACE_DECL(_EFI_LOAD_FILE_INTERFACE); | INTERFACE_DECL(_EFI_LOAD_FILE_INTERFACE); | ||||
typedef | typedef | ||||
EFI_STATUS | EFI_STATUS | ||||
(EFIAPI *EFI_LOAD_FILE) ( | (EFIAPI *EFI_LOAD_FILE) ( | ||||
IN struct _EFI_LOAD_FILE_INTERFACE *This, | IN struct _EFI_LOAD_FILE_INTERFACE *This, | ||||
IN EFI_DEVICE_PATH *FilePath, | IN EFI_DEVICE_PATH *FilePath, | ||||
IN BOOLEAN BootPolicy, | IN BOOLEAN BootPolicy, | ||||
IN OUT UINTN *BufferSize, | IN OUT UINTN *BufferSize, | ||||
IN VOID *Buffer OPTIONAL | IN VOID *Buffer OPTIONAL | ||||
); | ); | ||||
typedef struct _EFI_LOAD_FILE_INTERFACE { | typedef struct _EFI_LOAD_FILE_INTERFACE { | ||||
EFI_LOAD_FILE LoadFile; | EFI_LOAD_FILE LoadFile; | ||||
} EFI_LOAD_FILE_INTERFACE; | } EFI_LOAD_FILE_INTERFACE; | ||||
// | // | ||||
// Device IO protocol | // Device IO protocol | ||||
// | // | ||||
#define DEVICE_IO_PROTOCOL \ | #define DEVICE_IO_PROTOCOL \ | ||||
{ 0xaf6ac311, 0x84c3, 0x11d2, 0x8e, 0x3c, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } | { 0xaf6ac311, 0x84c3, 0x11d2, \ | ||||
{ 0x8e, 0x3c, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } } | |||||
INTERFACE_DECL(_EFI_DEVICE_IO_INTERFACE); | INTERFACE_DECL(_EFI_DEVICE_IO_INTERFACE); | ||||
typedef enum { | typedef enum { | ||||
IO_UINT8, | IO_UINT8, | ||||
IO_UINT16, | IO_UINT16, | ||||
IO_UINT32, | IO_UINT32, | ||||
IO_UINT64, | IO_UINT64, | ||||
▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | |||||
} EFI_DEVICE_IO_INTERFACE; | } EFI_DEVICE_IO_INTERFACE; | ||||
// | // | ||||
// Unicode Collation protocol | // Unicode Collation protocol | ||||
// | // | ||||
#define UNICODE_COLLATION_PROTOCOL \ | #define UNICODE_COLLATION_PROTOCOL \ | ||||
{ 0x1d85cd7f, 0xf43d, 0x11d2, 0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } | { 0x1d85cd7f, 0xf43d, 0x11d2, \ | ||||
{ 0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } } | |||||
#define UNICODE_BYTE_ORDER_MARK (CHAR16)(0xfeff) | #define UNICODE_BYTE_ORDER_MARK (CHAR16)(0xfeff) | ||||
INTERFACE_DECL(_EFI_UNICODE_COLLATION_INTERFACE); | INTERFACE_DECL(_EFI_UNICODE_COLLATION_INTERFACE); | ||||
typedef | typedef | ||||
INTN | INTN | ||||
(EFIAPI *EFI_UNICODE_COLLATION_STRICOLL) ( | (EFIAPI *EFI_UNICODE_COLLATION_STRICOLL) ( | ||||
▲ Show 20 Lines • Show All 62 Lines • Show Last 20 Lines |