Skip to main content

page_source_bindings/
page_source_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-source-bindings.bindgen.
6
7#![expect(non_camel_case_types)]
8#![expect(non_upper_case_globals)]
9#![no_std]
10pub use zx_types::zx_status_t;
11
12#[derive(PartialEq, Eq, Copy, Clone, Debug, Hash)]
13#[repr(C, align(8))]
14pub struct __BindgenOpaqueArray8<T>(pub T);
15impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray8<[T; N]> {
16    fn default() -> Self {
17        Self([<T as Default>::default(); N])
18    }
19}
20#[repr(u32)]
21#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
22pub enum page_request_type {
23    READ = 0,
24    DIRTY = 1,
25    WRITEBACK = 2,
26    COUNT = 3,
27}
28#[repr(C)]
29#[derive(Debug, Copy, Clone)]
30pub struct PageSourceProperties {
31    pub is_user_pager: bool,
32    pub supports_request_type: [bool; 3usize],
33}
34unsafe extern "C" {
35    pub fn cpp_page_source_free(src: *mut PageSource);
36}
37#[repr(C)]
38#[repr(align(8))]
39#[derive(Debug, Copy, Clone)]
40pub struct PageSource {
41    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 176usize]>,
42}
43pub const PageSource_ContinuationType_NotContinuation: PageSource_ContinuationType = 0;
44pub const PageSource_ContinuationType_SameRequest: PageSource_ContinuationType = 1;
45pub const PageSource_ContinuationType_SameSource: PageSource_ContinuationType = 2;
46pub type PageSource_ContinuationType = ::core::ffi::c_int;
47#[repr(C)]
48#[repr(align(8))]
49#[derive(Debug, Copy, Clone)]
50pub struct PageRequest {
51    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 216usize]>,
52}
53#[repr(C)]
54#[repr(align(8))]
55#[derive(Debug, Copy, Clone)]
56pub struct MultiPageRequest {
57    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 256usize]>,
58}
59unsafe extern "C" {
60    pub fn cpp_multi_page_request_construct(req: *mut MultiPageRequest);
61}
62unsafe extern "C" {
63    pub fn cpp_multi_page_request_destroy(req: *mut MultiPageRequest);
64}
65unsafe extern "C" {
66    pub fn cpp_multi_page_request_cancel_requests(req: *mut MultiPageRequest);
67}
68unsafe extern "C" {
69    pub fn cpp_multi_page_request_wait(
70        req: *mut MultiPageRequest,
71        suspendable: bool,
72    ) -> zx_status_t;
73}
74unsafe extern "C" {
75    pub fn cpp_page_request_get_type(request: *const PageRequest) -> u32;
76}
77unsafe extern "C" {
78    pub fn cpp_page_request_get_offset(request: *const PageRequest) -> u64;
79}
80unsafe extern "C" {
81    pub fn cpp_page_request_get_len(request: *const PageRequest) -> u64;
82}
83unsafe extern "C" {
84    pub fn cpp_page_request_provider_node(request: *mut PageRequest) -> *mut ::core::ffi::c_void;
85}
86unsafe extern "C" {
87    pub fn cpp_page_source_get_ref_counted(src: *mut PageSource) -> *mut ::core::ffi::c_void;
88}
89unsafe extern "C" {
90    pub fn cpp_page_source_on_pages_failed(
91        page_source: *mut PageSource,
92        offset: u64,
93        len: u64,
94        error_status: zx_status_t,
95    );
96}
97unsafe extern "C" {
98    pub fn cpp_page_source_is_valid_external_failure_code(error_status: zx_status_t) -> bool;
99}
100unsafe extern "C" {
101    pub fn cpp_page_source_is_valid_internal_failure_code(status: zx_status_t) -> bool;
102}
103unsafe extern "C" {
104    pub fn cpp_page_source_paged_vmo_lock_is_held(page_source: *mut PageSource) -> bool;
105}