diff options
author | David Carlier <devnexen@gmail.com> | 2022-05-22 10:13:23 +0100 |
---|---|---|
committer | David Carlier <devnexen@gmail.com> | 2022-05-22 10:13:23 +0100 |
commit | fce832a033d2aebf7ceace79b56c72628f1d9c0e (patch) | |
tree | 8388c221cc30d5d30d2406b0b1a69b9df141261f /src/unix/bsd/freebsdlike/dragonfly/mod.rs | |
parent | 5add164cd9beadf360dd6fdc738681e73475d14d (diff) | |
download | rust-libc-fce832a033d2aebf7ceace79b56c72628f1d9c0e.tar.gz |
dragonflybsd adding subset of kvm api
Diffstat (limited to 'src/unix/bsd/freebsdlike/dragonfly/mod.rs')
-rw-r--r-- | src/unix/bsd/freebsdlike/dragonfly/mod.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index d56362816a..78f8a580d6 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -34,6 +34,15 @@ pub type pthread_spinlock_t = ::uintptr_t; pub type segsz_t = usize; +pub type vm_prot_t = u8; +pub type vm_maptype_t = u8; +pub type vm_inherit_t = i8; +pub type vm_subsys_t = ::c_int; +pub type vm_eflags_t = ::c_uint; + +pub type vm_map_t = *mut __c_anonymous_vm_map; +pub type vm_map_entry_t = *mut vm_map_entry; + #[cfg_attr(feature = "extra_traits", derive(Debug))] pub enum sem {} impl ::Copy for sem {} @@ -336,6 +345,21 @@ s! { kp_spare: [::c_int; 2], } + pub struct __c_anonymous_vm_map { + _priv: [::uintptr_t; 36], + } + + pub struct vm_map_entry { + _priv: [::uintptr_t; 15], + pub eflags: ::vm_eflags_t, + pub maptype: ::vm_maptype_t, + pub protection: ::vm_prot_t, + pub max_protection: ::vm_prot_t, + pub inheritance: ::vm_inherit_t, + pub wired_count: ::c_int, + pub id: ::vm_subsys_t, + } + pub struct cpuctl_msr_args_t { pub msr: ::c_int, pub data: u64, @@ -1613,6 +1637,20 @@ extern "C" { pub fn freezero(ptr: *mut ::c_void, size: ::size_t); } +#[link(name = "kvm")] +extern "C" { + pub fn kvm_vm_map_entry_first( + kvm: *mut ::kvm_t, + map: vm_map_t, + entry: vm_map_entry_t, + ) -> vm_map_entry_t; + pub fn kvm_vm_map_entry_next( + kvm: *mut ::kvm_t, + map: vm_map_entry_t, + entry: vm_map_entry_t, + ) -> vm_map_entry_t; +} + cfg_if! { if #[cfg(libc_thread_local)] { mod errno; |