vm_object_paged_bindings/
vm_object_paged_bindings.rs1#![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}