aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-09-26 01:54:45 -0400
committerGitHub <noreply@github.com>2019-09-26 01:54:45 -0400
commit68bb3945708c43109c48bda3664176307d45b62c (patch)
treeafb9731e10cef9d192560b52cd9ae2cf179775c4 /lib/std/os/uefi/protocols/absolute_pointer_protocol.zig
parent6128bc728d1e1024a178c16c2149f5b1a167a013 (diff)
parent4637e8f9699af9c3c6cf4df50ef5bb67c7a318a4 (diff)
downloadzig-68bb3945708c43109c48bda3664176307d45b62c.tar.gz
zig-68bb3945708c43109c48bda3664176307d45b62c.zip
Merge pull request #3315 from ziglang/mv-std-lib
Move std/ to lib/std/
Diffstat (limited to 'lib/std/os/uefi/protocols/absolute_pointer_protocol.zig')
-rw-r--r--lib/std/os/uefi/protocols/absolute_pointer_protocol.zig53
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig b/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig
new file mode 100644
index 0000000000..df5a930319
--- /dev/null
+++ b/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig
@@ -0,0 +1,53 @@
+const uefi = @import("std").os.uefi;
+const Event = uefi.Event;
+const Guid = uefi.Guid;
+
+/// UEFI Specification, Version 2.8, 12.7
+pub const AbsolutePointerProtocol = extern struct {
+ _reset: extern fn (*const AbsolutePointerProtocol, bool) usize,
+ _get_state: extern fn (*const AbsolutePointerProtocol, *AbsolutePointerState) usize,
+ wait_for_input: Event,
+ mode: *AbsolutePointerMode,
+
+ pub fn reset(self: *const AbsolutePointerProtocol, verify: bool) usize {
+ return self._reset(self, verify);
+ }
+
+ pub fn getState(self: *const AbsolutePointerProtocol, state: *AbsolutePointerState) usize {
+ return self._get_state(self, state);
+ }
+
+ pub const guid align(8) = Guid{
+ .time_low = 0x8d59d32b,
+ .time_mid = 0xc655,
+ .time_high_and_version = 0x4ae9,
+ .clock_seq_high_and_reserved = 0x9b,
+ .clock_seq_low = 0x15,
+ .node = [_]u8{ 0xf2, 0x59, 0x04, 0x99, 0x2a, 0x43 },
+ };
+};
+
+pub const AbsolutePointerMode = extern struct {
+ absolute_min_x: u64,
+ absolute_min_y: u64,
+ absolute_min_z: u64,
+ absolute_max_x: u64,
+ absolute_max_y: u64,
+ absolute_max_z: u64,
+ attributes: packed struct {
+ supports_alt_active: bool,
+ supports_pressure_as_z: bool,
+ _pad1: u30,
+ },
+};
+
+pub const AbsolutePointerState = extern struct {
+ current_x: u64 = undefined,
+ current_y: u64 = undefined,
+ current_z: u64 = undefined,
+ active_buttons: packed struct {
+ touch_active: bool,
+ alt_active: bool,
+ _pad1: u30,
+ } = undefined,
+};