Skip to main content

wait_queue_bindings/
wait_queue_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.wait-queue-bindings.bindgen.
6
7#![expect(non_camel_case_types)]
8#![expect(non_upper_case_globals)]
9#![no_std]
10pub use zx_types::{
11    zx_duration_mono_t as SchedDuration, zx_instant_mono_t,
12    zx_instant_mono_t as WaitQueueCollection_PrimaryKey, zx_status_t,
13};
14pub type Deadline = core::ffi::c_void;
15pub type Thread = core::ffi::c_void;
16pub type Timer = core::ffi::c_void;
17
18#[derive(PartialEq, Eq, Copy, Clone, Debug, Hash)]
19#[repr(C, align(8))]
20pub struct __BindgenOpaqueArray8<T>(pub T);
21impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray8<[T; N]> {
22    fn default() -> Self {
23        Self([<T as Default>::default(); N])
24    }
25}
26#[repr(C)]
27#[repr(align(8))]
28#[derive(Debug, Copy, Clone)]
29pub struct SchedulerState_EffectiveProfile {
30    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 32usize]>,
31}
32#[repr(C)]
33#[repr(align(8))]
34#[derive(Debug, Copy, Clone)]
35pub struct SchedulerState_WaitQueueInheritedSchedulerState {
36    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 64usize]>,
37}
38#[repr(i32)]
39#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
40pub enum ResourceOwnership {
41    Normal = 0,
42    Reader = 1,
43}
44#[repr(u8)]
45#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
46pub enum Interruptible {
47    No = 0,
48    Yes = 1,
49}
50#[repr(u8)]
51#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
52pub enum ForceInheritance {
53    No = 0,
54    Yes = 1,
55}
56#[repr(C)]
57#[derive(Debug)]
58pub struct WaitQueueCollection {
59    pub threads_: WaitQueueCollection_BlockedThreadTree,
60}
61#[repr(C)]
62pub struct WaitQueueCollection_ThreadState {
63    pub blocking_wait_queue_: *mut WaitQueueBase,
64    pub blocked_threads_tree_node_: __BindgenOpaqueArray8<[u8; 32usize]>,
65    pub blocked_threads_tree_sort_key_: WaitQueueCollection_PrimaryKey,
66    pub subtree_min_deadline_: SchedDuration,
67    pub blocked_status_: zx_status_t,
68    pub interruptible_: Interruptible,
69    pub __bindgen_padding_0: [u8; 3usize],
70    pub inherited_scheduler_state_storage_: SchedulerState_WaitQueueInheritedSchedulerState,
71}
72pub type WaitQueueCollection_BlockedThreadTree = __BindgenOpaqueArray8<[u8; 32usize]>;
73#[repr(C)]
74pub struct WaitQueueBase {
75    pub __bindgen_padding_0: [u8; 16usize],
76    pub magic_: u32,
77    pub __bindgen_padding_1: [u8; 4usize],
78    pub collection_: WaitQueueCollection,
79}
80#[repr(C)]
81pub struct WaitQueue {
82    pub _base: WaitQueueBase,
83}
84pub const WaitQueue_kMagic: u32 = 2002872692;