Skip to main content

event_bindings/
event_bindings.rs

1// Copyright 2026 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// This file is automatically generated by //zircon/kernel/kernel:_kernel_bindgen_crate.event-bindings.bindgen.
6
7#![expect(non_camel_case_types)]
8#![expect(non_upper_case_globals)]
9#![no_std]
10pub use zx_types::{zx_instant_mono_t, zx_status_t};
11pub type Deadline = core::ffi::c_void;
12pub type Interruptible = bool;
13pub type OwnedWaitQueue = core::ffi::c_void;
14
15#[derive(PartialEq, Eq, Copy, Clone, Debug, Hash)]
16#[repr(C, align(8))]
17pub struct __BindgenOpaqueArray8<T>(pub T);
18impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray8<[T; N]> {
19    fn default() -> Self {
20        Self([<T as Default>::default(); N])
21    }
22}
23#[repr(C)]
24#[repr(align(8))]
25#[derive(Debug, Copy, Clone)]
26pub struct Event {
27    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 72usize]>,
28}
29pub const Event_Flags_NONE: Event_Flags = 0;
30pub const Event_Flags_AUTOUNSIGNAL: Event_Flags = 1;
31pub type Event_Flags = u32;
32#[repr(C)]
33#[repr(align(8))]
34#[derive(Debug, Copy, Clone)]
35pub struct AutounsignalEvent {
36    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 72usize]>,
37}
38unsafe extern "C" {
39    pub fn cpp_event_init(event: *mut Event, initial: bool);
40}
41unsafe extern "C" {
42    pub fn cpp_event_destroy(event: *mut Event);
43}
44unsafe extern "C" {
45    pub fn cpp_event_signal(event: *mut Event, wait_result: zx_status_t);
46}
47unsafe extern "C" {
48    pub fn cpp_event_signal_etc(
49        event: *mut Event,
50        wait_result: zx_status_t,
51        queue_to_own: *mut OwnedWaitQueue,
52    );
53}
54unsafe extern "C" {
55    pub fn cpp_event_unsignal(event: *mut Event) -> zx_status_t;
56}
57unsafe extern "C" {
58    pub fn cpp_event_wait(event: *mut Event, deadline: zx_instant_mono_t) -> zx_status_t;
59}
60unsafe extern "C" {
61    pub fn cpp_event_wait_deadline(event: *mut Event, deadline: *const Deadline) -> zx_status_t;
62}
63unsafe extern "C" {
64    pub fn cpp_event_wait_mask(
65        event: *mut Event,
66        deadline: *const Deadline,
67        signal_mask: u32,
68    ) -> zx_status_t;
69}
70unsafe extern "C" {
71    pub fn cpp_event_wait_infinite(event: *mut Event) -> zx_status_t;
72}
73unsafe extern "C" {
74    pub fn cpp_event_wait_interruptible(
75        event: *mut Event,
76        deadline: zx_instant_mono_t,
77        interruptible: Interruptible,
78    ) -> zx_status_t;
79}
80unsafe extern "C" {
81    pub fn cpp_event_is_signaled(event: *const Event) -> bool;
82}
83unsafe extern "C" {
84    pub fn cpp_autounsignal_event_init(event: *mut AutounsignalEvent, initial: bool);
85}
86unsafe extern "C" {
87    pub fn cpp_autounsignal_event_destroy(event: *mut AutounsignalEvent);
88}
89unsafe extern "C" {
90    pub fn cpp_autounsignal_event_as_event(event: *mut AutounsignalEvent) -> *mut Event;
91}
92unsafe extern "C" {
93    pub fn cpp_autounsignal_event_as_event_const(event: *const AutounsignalEvent) -> *const Event;
94}