Added Simple File System Protocol and File Protocol
This commit is contained in:
parent
87104a93b6
commit
bbabf877a7
2 changed files with 187 additions and 1 deletions
185
efi.h
185
efi.h
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
#include "guid.h"
|
#include "guid.h"
|
||||||
#include "efi_types.h"
|
#include "efi_types.h"
|
||||||
#include "efilib.h"
|
|
||||||
|
|
||||||
// Variable-size array
|
// Variable-size array
|
||||||
#define ANYSIZE_ARRAY 1
|
#define ANYSIZE_ARRAY 1
|
||||||
|
@ -57,6 +56,30 @@
|
||||||
#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x0000000000000080
|
#define EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH 0x0000000000000080
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// Simple File System Protocol revisions
|
||||||
|
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION 0x00010000
|
||||||
|
//
|
||||||
|
|
||||||
|
// File Protocol revisions
|
||||||
|
#define EFI_FILE_PROTOCOL_REVISION 0x00010000
|
||||||
|
#define EFI_FILE_PROTOCOL_REVISION2 0x00020000
|
||||||
|
#define EFI_FILE_PROTOCOL_LATEST_REVISION EFI_FILE_PROTOCOL_REVISION2
|
||||||
|
//
|
||||||
|
|
||||||
|
// File Protocol modes and attributes
|
||||||
|
#define EFI_FILE_MODE_READ 0x0000000000000001
|
||||||
|
#define EFI_FILE_MODE_WRITE 0x0000000000000002
|
||||||
|
#define EFI_FILE_MODE_CREATE 0x8000000000000000
|
||||||
|
|
||||||
|
#define EFI_FILE_READ_ONLY 0x0000000000000001
|
||||||
|
#define EFI_FILE_HIDDEN 0x0000000000000002
|
||||||
|
#define EFI_FILE_SYSTEM 0x0000000000000004
|
||||||
|
#define EFI_FILE_RESERVED 0x0000000000000008
|
||||||
|
#define EFI_FILE_DIRECTORY 0x0000000000000010
|
||||||
|
#define EFI_FILE_ARCHIVE 0x0000000000000020
|
||||||
|
#define EFI_FILE_VALID_ATTR 0x0000000000000037
|
||||||
|
//
|
||||||
|
|
||||||
// Memory Attributes
|
// Memory Attributes
|
||||||
#define EFI_MEMORY_UC 0x0000000000000001
|
#define EFI_MEMORY_UC 0x0000000000000001
|
||||||
#define EFI_MEMORY_WC 0x0000000000000002
|
#define EFI_MEMORY_WC 0x0000000000000002
|
||||||
|
@ -126,6 +149,12 @@ typedef struct EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;
|
||||||
// EFI Device Path Protocol;
|
// EFI Device Path Protocol;
|
||||||
typedef struct EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL;
|
typedef struct EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL;
|
||||||
|
|
||||||
|
// EFI Simple File System Protocol
|
||||||
|
typedef struct EFI_SIMPLE_FILE_SYSTEM_PROTOCOL EFI_SIMPLE_FILE_SYSTEM_PROTOCOL;
|
||||||
|
|
||||||
|
// EFI File Protocol
|
||||||
|
typedef struct EFI_FILE_PROTOCOL EFI_FILE_PROTOCOL;
|
||||||
|
|
||||||
// EFI Runtime Services
|
// EFI Runtime Services
|
||||||
typedef struct EFI_RUNTIME_SERVICES EFI_RUNTIME_SERVICES;
|
typedef struct EFI_RUNTIME_SERVICES EFI_RUNTIME_SERVICES;
|
||||||
|
|
||||||
|
@ -182,6 +211,14 @@ typedef struct {
|
||||||
CHAR16 UnicodeChar;
|
CHAR16 UnicodeChar;
|
||||||
} EFI_INPUT_KEY;
|
} EFI_INPUT_KEY;
|
||||||
|
|
||||||
|
// EFI File I/O Token
|
||||||
|
typedef struct {
|
||||||
|
EFI_EVENT Event;
|
||||||
|
EFI_STATUS Status;
|
||||||
|
UINTN BufferSize;
|
||||||
|
VOID *Buffer;
|
||||||
|
} EFI_FILE_IO_TOKEN;
|
||||||
|
|
||||||
// EFI Time
|
// EFI Time
|
||||||
typedef struct {
|
typedef struct {
|
||||||
UINT16 Year;
|
UINT16 Year;
|
||||||
|
@ -450,6 +487,124 @@ EFI_STATUS
|
||||||
IN BOOLEAN Visible
|
IN BOOLEAN Visible
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// EFI Simple File System Protocol
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME)(
|
||||||
|
IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This,
|
||||||
|
OUT EFI_FILE_PROTOCOL **Root
|
||||||
|
);
|
||||||
|
|
||||||
|
// EFI File Protocol
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_OPEN)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
OUT EFI_FILE_PROTOCOL **NewHandle,
|
||||||
|
IN CHAR16 *FileName,
|
||||||
|
IN UINT64 OpenMode,
|
||||||
|
IN UINT64 Attributes
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_CLOSE)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_DELETE)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_READ)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN OUT UINTN *BufferSize,
|
||||||
|
OUT VOID *Buffer
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_WRITE)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN OUT UINTN *BufferSize,
|
||||||
|
IN VOID *Buffer
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_OPEN_EX)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
OUT EFI_FILE_PROTOCOL **NewHandle,
|
||||||
|
IN CHAR16 *FileName,
|
||||||
|
IN UINT64 OpenMode,
|
||||||
|
IN UINT64 Attributes,
|
||||||
|
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_READ_EX)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_WRITE_EX)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_FLUSH_EX)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN OUT EFI_FILE_IO_TOKEN *Token
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_SET_POSITION)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN UINT64 Position
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_GET_POSITION)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
OUT UINT64 Position
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_GET_INFO)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN EFI_GUID *InformationType,
|
||||||
|
IN OUT UINTN *BufferSize,
|
||||||
|
OUT VOID *Buffer
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_SET_INFO)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This,
|
||||||
|
IN EFI_GUID *InformationType,
|
||||||
|
IN UINTN BufferSize,
|
||||||
|
IN VOID *Buffer
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_FILE_FLUSH)(
|
||||||
|
IN EFI_FILE_PROTOCOL *This
|
||||||
|
);
|
||||||
|
|
||||||
// EFI Runtime Services
|
// EFI Runtime Services
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
|
@ -954,6 +1109,34 @@ typedef struct EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL {
|
||||||
SIMPLE_TEXT_OUTPUT_MODE *Mode;
|
SIMPLE_TEXT_OUTPUT_MODE *Mode;
|
||||||
} EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;
|
} EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;
|
||||||
|
|
||||||
|
// EFI Simple File System Protocol
|
||||||
|
typedef struct EFI_SIMPLE_FILE_SYSTEM_PROTOCOL {
|
||||||
|
UINT64 Revision;
|
||||||
|
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_OPEN_VOLUME OpenVolume;
|
||||||
|
} EFI_SIMPLE_FILE_SYSTEM_PROTOCOL;
|
||||||
|
|
||||||
|
// EFI File Protocol
|
||||||
|
typedef struct EFI_FILE_PROTOCOL {
|
||||||
|
UINT64 Revision;
|
||||||
|
|
||||||
|
EFI_FILE_OPEN Open;
|
||||||
|
EFI_FILE_CLOSE Close;
|
||||||
|
EFI_FILE_DELETE Delete;
|
||||||
|
EFI_FILE_READ Read;
|
||||||
|
EFI_FILE_WRITE Write;
|
||||||
|
EFI_FILE_GET_POSITION GetPosition;
|
||||||
|
EFI_FILE_SET_POSITION SetPosition;
|
||||||
|
EFI_FILE_GET_INFO GetInfo;
|
||||||
|
EFI_FILE_SET_INFO SetInfo;
|
||||||
|
EFI_FILE_FLUSH Flush;
|
||||||
|
|
||||||
|
// Added for revision 2
|
||||||
|
EFI_FILE_OPEN_EX OpenEx;
|
||||||
|
EFI_FILE_READ_EX ReadEx;
|
||||||
|
EFI_FILE_WRITE_EX WriteEx;
|
||||||
|
EFI_FILE_FLUSH_EX FlushEx;
|
||||||
|
} EFI_FILE_PROTOCOL;
|
||||||
|
|
||||||
// EFI Runtime Services
|
// EFI Runtime Services
|
||||||
typedef struct EFI_RUNTIME_SERVICES {
|
typedef struct EFI_RUNTIME_SERVICES {
|
||||||
EFI_TABLE_HEADER Hdr;
|
EFI_TABLE_HEADER Hdr;
|
||||||
|
|
3
guid.h
3
guid.h
|
@ -9,6 +9,9 @@
|
||||||
#define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID {0x387477c1,0x69c7,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}}
|
#define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID {0x387477c1,0x69c7,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}}
|
||||||
#define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID {0x387477c2,0x69c7,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}}
|
#define EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID {0x387477c2,0x69c7,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}}
|
||||||
|
|
||||||
|
// Simple File System Protocol
|
||||||
|
#define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID {0x0964e5b22,0x6459,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}}
|
||||||
|
|
||||||
// Boot Services
|
// Boot Services
|
||||||
#define EFI_HII_PACKAGE_LIST_PROTOCOL_GUID {0x6a1ee763,0xd47a,0x43b4, {0xaa,0xbe,0xef,0x1d,0xe2,0xab,0x56,0xfc}}
|
#define EFI_HII_PACKAGE_LIST_PROTOCOL_GUID {0x6a1ee763,0xd47a,0x43b4, {0xaa,0xbe,0xef,0x1d,0xe2,0xab,0x56,0xfc}}
|
||||||
#define EFI_DEVICE_PATH_PROTOCOL_GUID {0x09576e91,0x6d3f,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}}
|
#define EFI_DEVICE_PATH_PROTOCOL_GUID {0x09576e91,0x6d3f,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue