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 vm_cow_pages_bindings::VmCowPages;
11use vm_object_bindings::VmObject;
12use zx_types::zx_status_t;
13
14#[derive(PartialEq, Eq, Copy, Clone, Debug, Hash)]
15#[repr(C, align(8))]
16pub struct __BindgenOpaqueArray8<T>(pub T);
17impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray8<[T; N]> {
18    fn default() -> Self {
19        Self([<T as Default>::default(); N])
20    }
21}
22#[repr(C)]
23#[repr(align(8))]
24#[derive(Debug, Copy, Clone)]
25pub struct VmObjectPaged {
26    pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 200usize]>,
27}
28pub type VmObjectPaged_ReferenceListNodeState = __BindgenOpaqueArray8<[u8; 16usize]>;
29#[repr(C)]
30#[derive(Debug, Copy, Clone)]
31pub struct VmObjectPaged_ReferenceListTraits {
32    pub __bindgen_padding_0: u8,
33    pub _address: u8,
34}
35pub type VmObjectPaged_ReferenceList = __BindgenOpaqueArray8<[u8; 8usize]>;
36pub const VmObjectPaged_kAlwaysPinned: u32 = 32;
37unsafe extern "C" {
38    pub fn cpp_vm_object_paged_create(
39        pmm_alloc_flags: u32,
40        options: u32,
41        size: u64,
42        out_status: *mut zx_status_t,
43    ) -> *mut VmObjectPaged;
44}
45unsafe extern "C" {
46    pub fn cpp_vm_object_paged_create_contiguous(
47        pmm_alloc_flags: u32,
48        size: u64,
49        alignment_log2: u8,
50        out_status: *mut zx_status_t,
51    ) -> *mut VmObjectPaged;
52}
53unsafe extern "C" {
54    pub fn cpp_vm_object_paged_as_vm_object(vmo: *mut VmObjectPaged) -> *mut VmObject;
55}
56unsafe extern "C" {
57    pub fn cpp_vm_object_paged_debug_get_cow_pages(vmo: *mut VmObjectPaged) -> *mut VmCowPages;
58}
59unsafe extern "C" {
60    pub fn cpp_vm_object_paged_debug_get_page(
61        vmo: *mut VmObjectPaged,
62        offset: u64,
63    ) -> *mut ::core::ffi::c_void;
64}