@@ -25,6 +25,43 @@ pub var system_table: *tables.SystemTable = undefined;
25
25
/// A handle to an event structure.
26
26
pub const Event = * opaque {};
27
27
28
+ pub const EventType = packed struct (u32 ) {
29
+ lo_context : u8 = 0 ,
30
+ /// If an event of this type is not already in the signaled state, then
31
+ /// the event’s NotificationFunction will be queued at the event’s NotifyTpl
32
+ /// whenever the event is being waited on via EFI_BOOT_SERVICES.WaitForEvent()
33
+ /// or EFI_BOOT_SERVICES.CheckEvent() .
34
+ wait : bool = false ,
35
+ /// The event’s NotifyFunction is queued whenever the event is signaled.
36
+ signal : bool = false ,
37
+ hi_context : u20 = 0 ,
38
+ /// The event is allocated from runtime memory. If an event is to be signaled
39
+ /// after the call to EFI_BOOT_SERVICES.ExitBootServices() the event’s data
40
+ /// structure and notification function need to be allocated from runtime
41
+ /// memory.
42
+ runtime : bool = false ,
43
+ timer : bool = false ,
44
+
45
+ /// This event should not be combined with any other event types. This event
46
+ /// type is functionally equivalent to the EFI_EVENT_GROUP_EXIT_BOOT_SERVICES
47
+ /// event group.
48
+ pub const signal_exit_boot_services = Type {
49
+ .signal = true ,
50
+ .lo_context = 1 ,
51
+ };
52
+
53
+ /// The event is to be notified by the system when SetVirtualAddressMap()
54
+ /// is performed. This event type is a composite of EVT_NOTIFY_SIGNAL,
55
+ /// EVT_RUNTIME, and EVT_RUNTIME_CONTEXT and should not be combined with
56
+ /// any other event types.
57
+ pub const signal_virtual_address_change = Type {
58
+ .runtime = true ,
59
+ .hi_context = 0x20000 ,
60
+ .signal = true ,
61
+ .lo_context = 2 ,
62
+ };
63
+ };
64
+
28
65
/// The calling convention used for all external functions part of the UEFI API.
29
66
pub const cc : std.builtin.CallingConvention = switch (@import ("builtin" ).target .cpu .arch ) {
30
67
.x86_64 = > .{ .x86_64_win = .{} },
0 commit comments