authorgravatar for 1915+kivikakk@users.noreply.github.comAsherah Connor <1915+kivikakk@users.noreply.github.com> 2021-01-14 13:46:22+11:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2021-01-13 21:46:22-05:00
log2b0e3ee228e01473cf880f719db9bde5b8f34d25
treee430acc18105ffec929cb5b95eff9afe84941137
parentec1541de26137cf5d1e353023adbf92e1be8ef16
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

std.os.uefi.protocols.FileProtocol: fix and expose get_position, set_position (#7762)


1 files changed, 13 insertions(+), 3 deletions(-)

lib/std/os/uefi/protocols/file_protocol.zig+13-3
...@@ -16,7 +16,7 @@ pub const FileProtocol = extern struct {...@@ -16,7 +16,7 @@ pub const FileProtocol = extern struct {
16 _read: fn (*const FileProtocol, *usize, [*]u8) callconv(.C) Status,16 _read: fn (*const FileProtocol, *usize, [*]u8) callconv(.C) Status,
17 _write: fn (*const FileProtocol, *usize, [*]const u8) callconv(.C) Status,17 _write: fn (*const FileProtocol, *usize, [*]const u8) callconv(.C) Status,
18 _get_position: fn (*const FileProtocol, *u64) callconv(.C) Status,18 _get_position: fn (*const FileProtocol, *u64) callconv(.C) Status,
19 _set_position: fn (*const FileProtocol, *const u64) callconv(.C) Status,19 _set_position: fn (*const FileProtocol, u64) callconv(.C) Status,
20 _get_info: fn (*const FileProtocol, *align(8) const Guid, *const usize, [*]u8) callconv(.C) Status,20 _get_info: fn (*const FileProtocol, *align(8) const Guid, *const usize, [*]u8) callconv(.C) Status,
21 _set_info: fn (*const FileProtocol, *align(8) const Guid, usize, [*]const u8) callconv(.C) Status,21 _set_info: fn (*const FileProtocol, *align(8) const Guid, usize, [*]const u8) callconv(.C) Status,
22 _flush: fn (*const FileProtocol) callconv(.C) Status,22 _flush: fn (*const FileProtocol) callconv(.C) Status,
...@@ -41,11 +41,19 @@ pub const FileProtocol = extern struct {...@@ -41,11 +41,19 @@ pub const FileProtocol = extern struct {
41 return self._write(self, buffer_size, buffer);41 return self._write(self, buffer_size, buffer);
42 }42 }
4343
44 pub fn get_info(self: *const FileProtocol, information_type: *align(8) Guid, buffer_size: *usize, buffer: [*]u8) Status {44 pub fn getPosition(self: *const FileProtocol, position: *u64) Status {
45 return self._get_position(self, position);
46 }
47
48 pub fn setPosition(self: *const FileProtocol, position: u64) Status {
49 return self._set_position(self, position);
50 }
51
52 pub fn getInfo(self: *const FileProtocol, information_type: *align(8) Guid, buffer_size: *usize, buffer: [*]u8) Status {
45 return self._get_info(self, information_type, buffer_size, buffer);53 return self._get_info(self, information_type, buffer_size, buffer);
46 }54 }
4755
48 pub fn set_info(self: *const FileProtocol, information_type: *align(8) Guid, buffer_size: usize, buffer: [*]const u8) Status {56 pub fn setInfo(self: *const FileProtocol, information_type: *align(8) Guid, buffer_size: usize, buffer: [*]const u8) Status {
49 return self._set_info(self, information_type, buffer_size, buffer);57 return self._set_info(self, information_type, buffer_size, buffer);
50 }58 }
5159
...@@ -73,6 +81,8 @@ pub const FileProtocol = extern struct {...@@ -73,6 +81,8 @@ pub const FileProtocol = extern struct {
73 pub const efi_file_directory: u64 = 0x0000000000000010;81 pub const efi_file_directory: u64 = 0x0000000000000010;
74 pub const efi_file_archive: u64 = 0x0000000000000020;82 pub const efi_file_archive: u64 = 0x0000000000000020;
75 pub const efi_file_valid_attr: u64 = 0x0000000000000037;83 pub const efi_file_valid_attr: u64 = 0x0000000000000037;
84
85 pub const efi_file_position_end_of_file: u64 = 0xffffffffffffffff;
76};86};
7787
78pub const FileInfo = extern struct {88pub const FileInfo = extern struct {