efi_loader: correct EFI_BLOCK_IO_PROTOCOL definitions
Add the revision constants. Depending on the revision additional fields are needed in the media descriptor. Use efi_uintn_t for number of bytes to read or write. 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
64e4db0f11
commit
4f94865b30
@@ -424,18 +424,26 @@ struct efi_block_io_media
|
||||
u32 io_align;
|
||||
u8 pad2[4];
|
||||
u64 last_block;
|
||||
/* Added in revision 2 of the protocol */
|
||||
u64 lowest_aligned_lba;
|
||||
u32 logical_blocks_per_physical_block;
|
||||
/* Added in revision 3 of the protocol */
|
||||
u32 optimal_transfer_length_granualarity;
|
||||
};
|
||||
|
||||
#define EFI_BLOCK_IO_PROTOCOL_REVISION2 0x00020001
|
||||
#define EFI_BLOCK_IO_PROTOCOL_REVISION3 0x0002001f
|
||||
|
||||
struct efi_block_io {
|
||||
u64 revision;
|
||||
struct efi_block_io_media *media;
|
||||
efi_status_t (EFIAPI *reset)(struct efi_block_io *this,
|
||||
char extended_verification);
|
||||
efi_status_t (EFIAPI *read_blocks)(struct efi_block_io *this,
|
||||
u32 media_id, u64 lba, unsigned long buffer_size,
|
||||
u32 media_id, u64 lba, efi_uintn_t buffer_size,
|
||||
void *buffer);
|
||||
efi_status_t (EFIAPI *write_blocks)(struct efi_block_io *this,
|
||||
u32 media_id, u64 lba, unsigned long buffer_size,
|
||||
u32 media_id, u64 lba, efi_uintn_t buffer_size,
|
||||
void *buffer);
|
||||
efi_status_t (EFIAPI *flush_blocks)(struct efi_block_io *this);
|
||||
};
|
||||
|
Reference in New Issue
Block a user