Skip to main content

vm_object_paged_bindings/
vm_object_paged_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.vm-object-paged-bindings.bindgen.
6
7#![expect(non_camel_case_types)]
8#![expect(non_upper_case_globals)]
9#![no_std]
10use page_bindings::vm_page_t;
11use vm_cow_pages_bindings::VmCowPages;
12use vm_object_bindings::VmObject;
13use zx_types::zx_status_t;
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 VmObjectPaged {
27    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 200usize]>,
28}
29pub type VmObjectPaged_ReferenceListNodeState = __BindgenOpaqueArray8<[u8; 16usize]>;
30#[repr(C)]
31#[derive(Debug, Copy, Clone)]
32pub struct VmObjectPaged_ReferenceListTraits {
33    pub __bindgen_padding_0: u8,
34    pub _address: u8,
35}
36pub type VmObjectPaged_ReferenceList = __BindgenOpaqueArray8<[u8; 8usize]>;
37pub const VmObjectPaged_kResizable: u32 = 2;
38pub const VmObjectPaged_kContiguous: u32 = 4;
39pub const VmObjectPaged_kSlice: u32 = 8;
40pub const VmObjectPaged_kDiscardable: u32 = 16;
41pub const VmObjectPaged_kAlwaysPinned: u32 = 32;
42pub const VmObjectPaged_kReference: u32 = 64;
43pub const VmObjectPaged_kCanBlockOnPageRequests: u32 = 2147483648;
44unsafe extern "C" {
45    pub fn cpp_vm_object_paged_create(
46        pmm_alloc_flags: u32,
47        options: u32,
48        size: u64,
49        out_status: *mut zx_status_t,
50    ) -> *mut VmObjectPaged;
51}
52unsafe extern "C" {
53    pub fn cpp_vm_object_paged_create_contiguous(
54        pmm_alloc_flags: u32,
55        size: u64,
56        alignment_log2: u8,
57        out_status: *mut zx_status_t,
58    ) -> *mut VmObjectPaged;
59}
60unsafe extern "C" {
61    pub fn cpp_vm_object_paged_as_vm_object(vmo: *mut VmObjectPaged) -> *mut VmObject;
62}
63unsafe extern "C" {
64    pub fn cpp_vm_object_as_vm_object_paged(vmo: *mut VmObject) -> *mut VmObjectPaged;
65}
66unsafe extern "C" {
67    pub fn cpp_vm_object_paged_debug_get_cow_pages(vmo: *mut VmObjectPaged) -> *mut VmCowPages;
68}
69unsafe extern "C" {
70    pub fn cpp_vm_object_paged_debug_get_page(
71        vmo: *mut VmObjectPaged,
72        offset: u64,
73    ) -> *mut vm_page_t;
74}