owned_wait_queue_bindings/
owned_wait_queue_bindings.rs1#![expect(non_camel_case_types)]
8#![expect(non_upper_case_globals)]
9#![no_std]
10pub use zx_types::zx_status_t;
11pub type Deadline = core::ffi::c_void;
12pub type Thread = core::ffi::c_void;
13pub type SchedulerState_BaseProfile = core::ffi::c_void;
14pub type SchedulerState_WaitQueueInheritedSchedulerState = core::ffi::c_void;
15
16#[derive(PartialEq, Eq, Copy, Clone, Debug, Hash)]
17#[repr(C, align(8))]
18pub struct __BindgenOpaqueArray8<T>(pub T);
19impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray8<[T; N]> {
20 fn default() -> Self {
21 Self([<T as Default>::default(); N])
22 }
23}
24#[repr(C)]
25#[repr(align(8))]
26#[derive(Debug, Copy, Clone)]
27pub struct SchedulerState_EffectiveProfile {
28 pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 32usize]>,
29}
30#[repr(i32)]
31#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
32pub enum ResourceOwnership {
33 Normal = 0,
34 Reader = 1,
35}
36#[repr(u8)]
37#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
38pub enum Interruptible {
39 No = 0,
40 Yes = 1,
41}
42#[repr(u8)]
43#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
44pub enum ForceInheritance {
45 No = 0,
46 Yes = 1,
47}
48#[repr(C)]
49#[repr(align(8))]
50#[derive(Debug, Copy, Clone)]
51pub struct WaitQueueBase {
52 pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 56usize]>,
53}
54pub type Thread_UnblockList = __BindgenOpaqueArray8<[u8; 8usize]>;
55#[repr(C)]
56#[derive(Debug)]
57pub struct OwnedWaitQueue {
58 pub _base: WaitQueueBase,
59 pub _base_1: __BindgenOpaqueArray8<[u8; 16usize]>,
60 pub owner_: *mut Thread,
61 pub inherited_scheduler_state_storage_: *mut SchedulerState_WaitQueueInheritedSchedulerState,
62}
63#[repr(C)]
64#[repr(align(8))]
65#[derive(Debug, Copy, Clone)]
66pub struct OwnedWaitQueue_IWakeRequeueHook {
67 pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 8usize]>,
68}
69#[repr(C)]
70#[derive(Debug, Copy, Clone)]
71pub struct OwnedWaitQueue_BAAOLockingDetails {
72 pub new_owner: *mut Thread,
73 pub stop_point: *const ::core::ffi::c_void,
74}
75#[repr(C)]
76#[derive(Debug, Copy, Clone)]
77pub struct OwnedWaitQueue_WakeThreadsResult {
78 pub woken: u32,
79 pub still_waiting: u32,
80 pub owner: *mut Thread,
81}
82#[repr(i32)]
83#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
84pub enum OwnedWaitQueue_WakeOption {
85 None = 0,
86 AssignOwner = 1,
87}
88pub const OwnedWaitQueue_kOwnedMagic: u32 = 1870098033;
89unsafe extern "C" {
90 pub fn cpp_thread_unblock_list_init(list: *mut u8);
91}
92unsafe extern "C" {
93 pub fn cpp_thread_unblock_list_destroy(list: *mut Thread_UnblockList);
94}
95unsafe extern "C" {
96 pub fn cpp_owned_wait_queue_wake_requeue_hook_allow(
97 hook: *mut OwnedWaitQueue_IWakeRequeueHook,
98 t: *const Thread,
99 ) -> bool;
100}
101unsafe extern "C" {
102 pub fn cpp_owned_wait_queue_wake_requeue_hook_on_wake_or_requeue(
103 hook: *mut OwnedWaitQueue_IWakeRequeueHook,
104 t: *mut Thread,
105 );
106}