Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
google
GitHub Repository: google/crosvm
Path: blob/main/hypervisor/src/gunyah/gunyah_sys.rs
5394 views
1
// Copyright 2023 The ChromiumOS Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
//! Bindings for the Linux Gunyah API.
6
7
#![allow(non_upper_case_globals)]
8
#![allow(non_camel_case_types)]
9
#![allow(non_snake_case)]
10
11
use base::ioctl_io_nr;
12
use base::ioctl_iow_nr;
13
14
// generated with gunyah_sys/bindgen.sh
15
pub mod bindings;
16
pub use bindings::*;
17
18
// These ioctls are commonly defined on all/multiple platforms.
19
ioctl_io_nr!(GH_CREATE_VM, GH_IOCTL_TYPE, 0x0);
20
ioctl_iow_nr!(
21
GH_VM_SET_USER_MEM_REGION,
22
GH_IOCTL_TYPE,
23
0x1,
24
gh_userspace_memory_region
25
);
26
ioctl_iow_nr!(GH_VM_SET_DTB_CONFIG, GH_IOCTL_TYPE, 0x2, gh_vm_dtb_config);
27
ioctl_io_nr!(GH_VM_START, GH_IOCTL_TYPE, 0x3);
28
ioctl_iow_nr!(GH_VM_ADD_FUNCTION, GH_IOCTL_TYPE, 0x4, gh_fn_desc);
29
ioctl_io_nr!(GH_VCPU_RUN, GH_IOCTL_TYPE, 0x5);
30
ioctl_io_nr!(GH_VCPU_MMAP_SIZE, GH_IOCTL_TYPE, 0x6);
31
ioctl_iow_nr!(GH_VM_REMOVE_FUNCTION, GH_IOCTL_TYPE, 0x7, gh_fn_desc);
32
ioctl_iow_nr!(
33
GH_VM_SET_BOOT_CONTEXT,
34
GH_IOCTL_TYPE,
35
0xa,
36
gh_vm_boot_context
37
);
38
39
pub const fn boot_context_reg_id(reg_type: gh_vm_boot_context_reg::Type, reg_idx: u8) -> u32 {
40
((reg_type & 0xff) << GH_VM_BOOT_CONTEXT_REG_SHIFT) | (reg_idx as u32)
41
}
42
// Special bindings for Android Common Kernel
43
pub const GH_ANDROID_IOCTL_TYPE: u8 = 65u8;
44
ioctl_iow_nr!(
45
GH_VM_ANDROID_LEND_USER_MEM,
46
GH_ANDROID_IOCTL_TYPE,
47
0x11,
48
gh_userspace_memory_region
49
);
50
ioctl_iow_nr!(
51
GH_VM_ANDROID_SET_FW_CONFIG,
52
GH_ANDROID_IOCTL_TYPE,
53
0x12,
54
gh_vm_firmware_config
55
);
56
ioctl_iow_nr!(
57
GH_VM_RECLAIM_REGION,
58
GH_ANDROID_IOCTL_TYPE,
59
0x13,
60
gunyah_address_range
61
);
62
ioctl_iow_nr!(
63
GH_VM_ANDROID_MAP_CMA_MEM,
64
GH_ANDROID_IOCTL_TYPE,
65
0x15,
66
gunyah_map_cma_mem_args
67
);
68
ioctl_iow_nr!(
69
GH_VM_ANDROID_SET_AUTH_TYPE,
70
GH_ANDROID_IOCTL_TYPE,
71
0x16,
72
gunyah_auth_desc
73
);
74
75