efi_loader: Initial EFI_DEVICE_PATH_UTILITIES_PROTOCOL
Not complete, but enough for Shell.efi and SCT.efi. We'll implement the rest as needed or once we have SCT running properly so there is a way to validate the interface against the conformance test suite. Initial skeleton written by Leif, and then implementation by Rob. Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> [Fill initial skeleton] Signed-off-by: Rob Clark <robdclark@gmail.com> [Rebase on v2018.03-rc1] Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
committed by
Alexander Graf
parent
8396e3fd63
commit
e70f8dfa2c
@@ -587,6 +587,35 @@ struct efi_device_path_to_text_protocol
|
||||
bool allow_shortcuts);
|
||||
};
|
||||
|
||||
#define EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID \
|
||||
EFI_GUID(0x0379be4e, 0xd706, 0x437d, \
|
||||
0xb0, 0x37, 0xed, 0xb8, 0x2f, 0xb7, 0x72, 0xa4)
|
||||
|
||||
struct efi_device_path_utilities_protocol {
|
||||
efi_uintn_t (EFIAPI *get_device_path_size)(
|
||||
const struct efi_device_path *device_path);
|
||||
struct efi_device_path *(EFIAPI *duplicate_device_path)(
|
||||
const struct efi_device_path *device_path);
|
||||
struct efi_device_path *(EFIAPI *append_device_path)(
|
||||
const struct efi_device_path *src1,
|
||||
const struct efi_device_path *src2);
|
||||
struct efi_device_path *(EFIAPI *append_device_node)(
|
||||
const struct efi_device_path *device_path,
|
||||
const struct efi_device_path *device_node);
|
||||
struct efi_device_path *(EFIAPI *append_device_path_instance)(
|
||||
const struct efi_device_path *device_path,
|
||||
const struct efi_device_path *device_path_instance);
|
||||
struct efi_device_path *(EFIAPI *get_next_device_path_instance)(
|
||||
struct efi_device_path **device_path_instance,
|
||||
efi_uintn_t *device_path_instance_size);
|
||||
bool (EFIAPI *is_device_path_multi_instance)(
|
||||
const struct efi_device_path *device_path);
|
||||
struct efi_device_path *(EFIAPI *create_device_node)(
|
||||
uint8_t node_type,
|
||||
uint8_t node_sub_type,
|
||||
uint16_t node_length);
|
||||
};
|
||||
|
||||
#define EFI_GOP_GUID \
|
||||
EFI_GUID(0x9042a9de, 0x23dc, 0x4a38, \
|
||||
0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a)
|
||||
|
||||
@@ -83,6 +83,9 @@ extern struct efi_simple_text_output_protocol efi_con_out;
|
||||
extern struct efi_simple_input_interface efi_con_in;
|
||||
extern struct efi_console_control_protocol efi_console_control;
|
||||
extern const struct efi_device_path_to_text_protocol efi_device_path_to_text;
|
||||
/* implementation of the EFI_DEVICE_PATH_UTILITIES_PROTOCOL */
|
||||
extern const struct efi_device_path_utilities_protocol
|
||||
efi_device_path_utilities;
|
||||
|
||||
uint16_t *efi_dp_str(struct efi_device_path *dp);
|
||||
|
||||
@@ -97,6 +100,7 @@ extern const efi_guid_t efi_guid_loaded_image;
|
||||
extern const efi_guid_t efi_guid_device_path_to_text_protocol;
|
||||
extern const efi_guid_t efi_simple_file_system_protocol_guid;
|
||||
extern const efi_guid_t efi_file_info_guid;
|
||||
extern const efi_guid_t efi_guid_device_path_utilities_protocol;
|
||||
|
||||
extern unsigned int __efi_runtime_start, __efi_runtime_stop;
|
||||
extern unsigned int __efi_runtime_rel_start, __efi_runtime_rel_stop;
|
||||
|
||||
Reference in New Issue
Block a user