Skip to main content

page_queues_bindings/
page_queues_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/vm:_kernel_bindgen_crate.page-queues-bindings.bindgen.
6
7#![expect(non_camel_case_types)]
8#![expect(non_upper_case_globals)]
9#![no_std]
10pub use event_bindings::{AutounsignalEvent, Event};
11use page_bindings::vm_page_t;
12pub use zx_types::{zx_duration_mono_t, zx_instant_mono_t, zx_paddr_t};
13pub type Thread = core::ffi::c_void;
14pub type VmCowPages = *const core::ffi::c_void;
15pub type VmDebugCompressor = core::ffi::c_void;
16pub type VmPageDoublyLinkedList = usize;
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#[derive(Debug, Copy, Clone)]
28pub struct PageQueuesVmoBacklink {
29    pub cow: *mut VmCowPages,
30    pub page: *mut vm_page_t,
31    pub offset: u64,
32}
33#[repr(C)]
34#[derive(Debug)]
35pub struct PageQueues {
36    pub storage_: __BindgenOpaqueArray8<[u8; 592usize]>,
37}
38#[repr(i32)]
39#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
40pub enum PageQueues_AgeReason {
41    Timeout = 0,
42    ActiveRatio = 1,
43    Manual = 2,
44}
45#[repr(C)]
46#[derive(Debug, Copy, Clone)]
47pub struct PageQueues_ReclaimCounts {
48    pub total: usize,
49    pub newest: usize,
50    pub oldest: usize,
51}
52#[repr(C)]
53#[derive(Debug, Copy, Clone)]
54pub struct PageQueues_Counts {
55    pub reclaim: __BindgenOpaqueArray8<[u8; 64usize]>,
56    pub reclaim_isolate: usize,
57    pub pager_backed_dirty: usize,
58    pub anonymous: usize,
59    pub wired: usize,
60    pub anonymous_zero_fork: usize,
61    pub failed_reclaim: usize,
62    pub high_priority: usize,
63}
64#[repr(C)]
65#[derive(Debug, Copy, Clone)]
66pub struct PageQueues_ActiveInactiveCounts {
67    pub active: usize,
68    pub inactive: usize,
69}
70#[repr(i32)]
71#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
72pub enum PageQueues_LruAction {
73    None = 0,
74    EvictOnly = 1,
75    CompressOnly = 2,
76    EvictAndCompress = 3,
77}
78pub const PageQueues_kNumReclaim: usize = 8;
79pub const PageQueues_kNumActiveQueues: usize = 2;
80pub const PageQueues_kActiveInactiveErrorMargin: usize = 512;
81pub const PageQueues_kNumOldestQueues: usize = 2;
82pub const PageQueues_kIsolateQueueDontNeed: usize = 0;
83pub const PageQueues_kIsolateQueueStandard: usize = 1;
84pub const PageQueues_kNumIsolateQueues: usize = 2;
85pub const PageQueues_kDefaultMinMruRotateTime: zx_duration_mono_t = 5000000000;
86pub const PageQueues_kDefaultMaxMruRotateTime: zx_duration_mono_t = 5000000000;
87pub const PageQueues_kDefaultActiveRatioMultiplier: u64 = 0;