compression_bindings/
compression_bindings.rs1#![expect(non_upper_case_globals)]
8#![no_std]
9pub use compressor_bindings::VmCompressor;
10use page_bindings::vm_page_t;
11pub use zx_types::zx_duration_mono_t;
12
13#[derive(PartialEq, Eq, Copy, Clone, Debug, Hash)]
14#[repr(C, align(8))]
15pub struct __BindgenOpaqueArray8<T>(pub T);
16impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray8<[T; N]> {
17 fn default() -> Self {
18 Self([<T as Default>::default(); N])
19 }
20}
21#[repr(C)]
22#[derive(Debug, Copy, Clone)]
23pub struct VmCompressedStorage_MemoryUsage {
24 pub uncompressed_content_bytes: u64,
25 pub compressed_storage_bytes: u64,
26 pub compressed_storage_used_bytes: u64,
27}
28#[repr(C)]
29#[repr(align(8))]
30#[derive(Debug, Copy, Clone)]
31pub struct VmCompression {
32 pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 280usize]>,
33}
34#[repr(C)]
35#[repr(align(8))]
36#[derive(Debug, Copy, Clone)]
37pub struct VmCompression_CompressorGuard {
38 pub _bindgen_opaque_blob: __BindgenOpaqueArray8<[u8; 24usize]>,
39}
40#[repr(C)]
41pub struct VmCompression_Stats {
42 pub memory_usage: VmCompressedStorage_MemoryUsage,
43 pub compression_time: zx_duration_mono_t,
44 pub decompression_time: zx_duration_mono_t,
45 pub total_page_compression_attempts: u64,
46 pub failed_page_compression_attempts: u64,
47 pub total_page_decompressions: u64,
48 pub compressed_page_evictions: u64,
49 pub pages_decompressed_within_log_seconds: [u64; 8usize],
50}
51pub const VmCompression_kNumLogBuckets: usize = 8;
52#[repr(C)]
53#[derive(Debug, Copy, Clone)]
54pub struct FfiCompressResult {
55 pub tag: u8,
56 pub __bindgen_padding_0: [u8; 3usize],
57 pub ref_: u32,
58 pub fail_page: *mut vm_page_t,
59 pub fail_metadata: u32,
60 pub __bindgen_padding_1: [u8; 4usize],
61}
62unsafe extern "C" {
63 pub fn cpp_vmcompression_destroy(compression: *mut VmCompression);
64}
65unsafe extern "C" {
66 pub fn cpp_vmcompression_free(compression: *mut VmCompression);
67}
68unsafe extern "C" {
69 pub fn cpp_vmcompression_get_ref_counted(compression: *mut VmCompression) -> *mut u32;
70}
71unsafe extern "C" {
72 pub fn cpp_vmcompression_acquire_compressor(guard: *mut u8, compression: *mut VmCompression);
73}
74unsafe extern "C" {
75 pub fn cpp_vmcompression_compressor_guard_destroy(guard: *mut VmCompression_CompressorGuard);
76}
77unsafe extern "C" {
78 pub fn cpp_vmcompression_compressor_guard_get(
79 guard: *mut VmCompression_CompressorGuard,
80 ) -> *mut VmCompressor;
81}
82unsafe extern "C" {
83 pub fn cpp_vmcompression_compress(
84 compression: *mut VmCompression,
85 page_src: *const ::core::ffi::c_void,
86 ) -> FfiCompressResult;
87}
88unsafe extern "C" {
89 pub fn cpp_vmcompression_set_metadata(
90 compression: *mut VmCompression,
91 ref_: u32,
92 metadata: u32,
93 );
94}
95unsafe extern "C" {
96 pub fn cpp_vmcompression_free_reference(compression: *mut VmCompression, ref_: u32);
97}
98unsafe extern "C" {
99 pub fn cpp_vmcompression_get_stats(compression: *const VmCompression) -> VmCompression_Stats;
100}