Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/include/vmm_dev.h
Show All 25 Lines | |||||
* SUCH DAMAGE. | * SUCH DAMAGE. | ||||
* | * | ||||
* $FreeBSD$ | * $FreeBSD$ | ||||
*/ | */ | ||||
#ifndef _VMM_DEV_H_ | #ifndef _VMM_DEV_H_ | ||||
#define _VMM_DEV_H_ | #define _VMM_DEV_H_ | ||||
#include <machine/vmm_snapshot.h> | |||||
jhb: These are a lot of nested includes for this header. Certainly <sys/param.h> shouldn't be a… | |||||
Done Inline ActionsRemoved all includes from this header. Replaced 'struct vm_snapshot_req' with 'struct vm_snapshot_meta' since the former had only one member of the latter type. darius.mihaim_gmail.com: Removed all includes from this header. Replaced 'struct vm_snapshot_req' with 'struct… | |||||
#include <sys/_cpuset.h> | |||||
#include <sys/param.h> | |||||
#include <vm/vm.h> | |||||
struct vm_snapshot_meta; | |||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
void vmmdev_init(void); | void vmmdev_init(void); | ||||
int vmmdev_cleanup(void); | int vmmdev_cleanup(void); | ||||
#endif | #endif | ||||
struct vm_memmap { | struct vm_memmap { | ||||
vm_paddr_t gpa; | vm_paddr_t gpa; | ||||
int segid; /* memory segment */ | int segid; /* memory segment */ | ||||
▲ Show 20 Lines • Show All 185 Lines • ▼ Show 20 Lines | |||||
}; | }; | ||||
struct vm_cpu_topology { | struct vm_cpu_topology { | ||||
uint16_t sockets; | uint16_t sockets; | ||||
uint16_t cores; | uint16_t cores; | ||||
uint16_t threads; | uint16_t threads; | ||||
uint16_t maxcpus; | uint16_t maxcpus; | ||||
}; | }; | ||||
/* SAVE-RESTORE facilities for bhyve */ | |||||
#define MAX_VM_OBJS 100 | |||||
struct vm_obj_stat { | |||||
int resident_page_count; | |||||
int shadow_count; | |||||
vm_memattr_t memattr; | |||||
vm_pindex_t size; | |||||
vm_prot_t e_prot; /* object protection (rwx) */ | |||||
vm_offset_t e_start, e_end; /* objects offset */ | |||||
int ref_count; | |||||
}; | |||||
struct vm_vmem_stat { | |||||
struct vm_obj_stat obj_stat[MAX_VM_OBJS]; | |||||
int vm_obj_count; | |||||
}; | |||||
struct vm_snapshot_req { | |||||
struct vm_snapshot_meta meta; | |||||
}; | |||||
enum { | enum { | ||||
/* general routines */ | /* general routines */ | ||||
IOCNUM_ABIVERS = 0, | IOCNUM_ABIVERS = 0, | ||||
IOCNUM_RUN = 1, | IOCNUM_RUN = 1, | ||||
IOCNUM_SET_CAPABILITY = 2, | IOCNUM_SET_CAPABILITY = 2, | ||||
IOCNUM_GET_CAPABILITY = 3, | IOCNUM_GET_CAPABILITY = 3, | ||||
IOCNUM_SUSPEND = 4, | IOCNUM_SUSPEND = 4, | ||||
IOCNUM_REINIT = 5, | IOCNUM_REINIT = 5, | ||||
IOCNUM_VCPU_LOCK_ALL = 6, | |||||
IOCNUM_VCPU_UNLOCK_ALL = 7, | |||||
/* memory apis */ | /* memory apis */ | ||||
IOCNUM_MAP_MEMORY = 10, /* deprecated */ | IOCNUM_MAP_MEMORY = 10, /* deprecated */ | ||||
IOCNUM_GET_MEMORY_SEG = 11, /* deprecated */ | IOCNUM_GET_MEMORY_SEG = 11, /* deprecated */ | ||||
IOCNUM_GET_GPA_PMAP = 12, | IOCNUM_GET_GPA_PMAP = 12, | ||||
IOCNUM_GLA2GPA = 13, | IOCNUM_GLA2GPA = 13, | ||||
IOCNUM_ALLOC_MEMSEG = 14, | IOCNUM_ALLOC_MEMSEG = 14, | ||||
IOCNUM_GET_MEMSEG = 15, | IOCNUM_GET_MEMSEG = 15, | ||||
IOCNUM_MMAP_MEMSEG = 16, | IOCNUM_MMAP_MEMSEG = 16, | ||||
IOCNUM_MMAP_GETNEXT = 17, | IOCNUM_MMAP_GETNEXT = 17, | ||||
IOCNUM_GLA2GPA_NOFAULT = 18, | IOCNUM_GLA2GPA_NOFAULT = 18, | ||||
IOCNUM_GET_VMEM_STAT = 19, | |||||
/* register/state accessors */ | /* register/state accessors */ | ||||
IOCNUM_SET_REGISTER = 20, | IOCNUM_SET_REGISTER = 20, | ||||
IOCNUM_GET_REGISTER = 21, | IOCNUM_GET_REGISTER = 21, | ||||
IOCNUM_SET_SEGMENT_DESCRIPTOR = 22, | IOCNUM_SET_SEGMENT_DESCRIPTOR = 22, | ||||
IOCNUM_GET_SEGMENT_DESCRIPTOR = 23, | IOCNUM_GET_SEGMENT_DESCRIPTOR = 23, | ||||
IOCNUM_SET_REGISTER_SET = 24, | IOCNUM_SET_REGISTER_SET = 24, | ||||
IOCNUM_GET_REGISTER_SET = 25, | IOCNUM_GET_REGISTER_SET = 25, | ||||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | enum { | ||||
IOCNUM_SUSPEND_CPU = 92, | IOCNUM_SUSPEND_CPU = 92, | ||||
IOCNUM_RESUME_CPU = 93, | IOCNUM_RESUME_CPU = 93, | ||||
/* RTC */ | /* RTC */ | ||||
IOCNUM_RTC_READ = 100, | IOCNUM_RTC_READ = 100, | ||||
IOCNUM_RTC_WRITE = 101, | IOCNUM_RTC_WRITE = 101, | ||||
IOCNUM_RTC_SETTIME = 102, | IOCNUM_RTC_SETTIME = 102, | ||||
IOCNUM_RTC_GETTIME = 103, | IOCNUM_RTC_GETTIME = 103, | ||||
/* checkpoint */ | |||||
IOCNUM_SNAPSHOT_REQ = 113, | |||||
IOCNUM_RESTORE_TIME = 115 | |||||
}; | }; | ||||
#define VM_RUN \ | #define VM_RUN \ | ||||
_IOWR('v', IOCNUM_RUN, struct vm_run) | _IOWR('v', IOCNUM_RUN, struct vm_run) | ||||
#define VM_SUSPEND \ | #define VM_SUSPEND \ | ||||
_IOW('v', IOCNUM_SUSPEND, struct vm_suspend) | _IOW('v', IOCNUM_SUSPEND, struct vm_suspend) | ||||
#define VM_REINIT \ | #define VM_REINIT \ | ||||
_IO('v', IOCNUM_REINIT) | _IO('v', IOCNUM_REINIT) | ||||
#define VM_VCPU_LOCK_ALL\ | |||||
_IO('v', IOCNUM_VCPU_LOCK_ALL) | |||||
#define VM_VCPU_UNLOCK_ALL\ | |||||
_IO('v', IOCNUM_VCPU_UNLOCK_ALL) | |||||
#define VM_ALLOC_MEMSEG \ | #define VM_ALLOC_MEMSEG \ | ||||
_IOW('v', IOCNUM_ALLOC_MEMSEG, struct vm_memseg) | _IOW('v', IOCNUM_ALLOC_MEMSEG, struct vm_memseg) | ||||
#define VM_GET_MEMSEG \ | #define VM_GET_MEMSEG \ | ||||
_IOWR('v', IOCNUM_GET_MEMSEG, struct vm_memseg) | _IOWR('v', IOCNUM_GET_MEMSEG, struct vm_memseg) | ||||
#define VM_MMAP_MEMSEG \ | #define VM_MMAP_MEMSEG \ | ||||
_IOW('v', IOCNUM_MMAP_MEMSEG, struct vm_memmap) | _IOW('v', IOCNUM_MMAP_MEMSEG, struct vm_memmap) | ||||
#define VM_MMAP_GETNEXT \ | #define VM_MMAP_GETNEXT \ | ||||
_IOWR('v', IOCNUM_MMAP_GETNEXT, struct vm_memmap) | _IOWR('v', IOCNUM_MMAP_GETNEXT, struct vm_memmap) | ||||
#define VM_GET_VMEM_STAT \ | |||||
_IOWR('v', IOCNUM_GET_VMEM_STAT, struct vm_vmem_stat) | |||||
#define VM_SET_REGISTER \ | #define VM_SET_REGISTER \ | ||||
_IOW('v', IOCNUM_SET_REGISTER, struct vm_register) | _IOW('v', IOCNUM_SET_REGISTER, struct vm_register) | ||||
#define VM_GET_REGISTER \ | #define VM_GET_REGISTER \ | ||||
_IOWR('v', IOCNUM_GET_REGISTER, struct vm_register) | _IOWR('v', IOCNUM_GET_REGISTER, struct vm_register) | ||||
#define VM_SET_SEGMENT_DESCRIPTOR \ | #define VM_SET_SEGMENT_DESCRIPTOR \ | ||||
_IOW('v', IOCNUM_SET_SEGMENT_DESCRIPTOR, struct vm_seg_desc) | _IOW('v', IOCNUM_SET_SEGMENT_DESCRIPTOR, struct vm_seg_desc) | ||||
#define VM_GET_SEGMENT_DESCRIPTOR \ | #define VM_GET_SEGMENT_DESCRIPTOR \ | ||||
_IOWR('v', IOCNUM_GET_SEGMENT_DESCRIPTOR, struct vm_seg_desc) | _IOWR('v', IOCNUM_GET_SEGMENT_DESCRIPTOR, struct vm_seg_desc) | ||||
▲ Show 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | |||||
#define VM_RTC_READ \ | #define VM_RTC_READ \ | ||||
_IOWR('v', IOCNUM_RTC_READ, struct vm_rtc_data) | _IOWR('v', IOCNUM_RTC_READ, struct vm_rtc_data) | ||||
#define VM_RTC_SETTIME \ | #define VM_RTC_SETTIME \ | ||||
_IOW('v', IOCNUM_RTC_SETTIME, struct vm_rtc_time) | _IOW('v', IOCNUM_RTC_SETTIME, struct vm_rtc_time) | ||||
#define VM_RTC_GETTIME \ | #define VM_RTC_GETTIME \ | ||||
_IOR('v', IOCNUM_RTC_GETTIME, struct vm_rtc_time) | _IOR('v', IOCNUM_RTC_GETTIME, struct vm_rtc_time) | ||||
#define VM_RESTART_INSTRUCTION \ | #define VM_RESTART_INSTRUCTION \ | ||||
_IOW('v', IOCNUM_RESTART_INSTRUCTION, int) | _IOW('v', IOCNUM_RESTART_INSTRUCTION, int) | ||||
#define VM_SNAPSHOT_REQ \ | |||||
_IOWR('v', IOCNUM_SNAPSHOT_REQ, struct vm_snapshot_req) | |||||
#define VM_RESTORE_TIME \ | |||||
_IOWR('v', IOCNUM_RESTORE_TIME, int) | |||||
#endif | #endif |
These are a lot of nested includes for this header. Certainly <sys/param.h> shouldn't be a nested include. I wonder if we can get rid of all of these nested includes? It's fine to make certain things in the header conditional as the existing headers do with _SYS_CPUSET_H_ if you need to.