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
|
//! Hikari EFI Block I/O Protocol
const efi = @import("../efi.zig");
const types = @import("../types/types.zig");
const block = @import("../types/block.zig");
pub const BlockIoProtocol = extern struct {
revision: u64,
media: *block.BlockIoMedia,
reset: *const fn (
self: *BlockIoProtocol,
extended_verification: bool,
) callconv(efi.akiba) types.Status,
read_blocks: *const fn (
self: *BlockIoProtocol,
media_id: u32,
lba: types.Lba,
buffer_size: usize,
buffer: [*]u8,
) callconv(efi.akiba) types.Status,
write_blocks: *const fn (
self: *BlockIoProtocol,
media_id: u32,
lba: types.Lba,
buffer_size: usize,
buffer: [*]const u8,
) callconv(efi.akiba) types.Status,
flush_blocks: *const fn (
self: *BlockIoProtocol,
) callconv(efi.akiba) types.Status,
};
pub const block_io_protocol_revision1: u64 = 0x00010000;
pub const block_io_protocol_revision2: u64 = 0x00020001;
pub const block_io_protocol_revision3: u64 = 0x0002001F;
|