diff options
Diffstat (limited to 'usr/src/uts/intel/sys/vmm_dev.h')
| -rw-r--r-- | usr/src/uts/intel/sys/vmm_dev.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/usr/src/uts/intel/sys/vmm_dev.h b/usr/src/uts/intel/sys/vmm_dev.h index 5333facacf..fc8ccf406e 100644 --- a/usr/src/uts/intel/sys/vmm_dev.h +++ b/usr/src/uts/intel/sys/vmm_dev.h @@ -49,6 +49,7 @@ #include <sys/param.h> #include <sys/cpuset.h> +#include <sys/vmm_data.h> struct vm_create_req { char name[VM_MAX_NAMELEN]; @@ -351,6 +352,23 @@ struct vmm_dirty_tracker { void *vdt_pfns; /* bit vector of dirty bits */ }; +/* Current (arbitrary) max length for vm_data_xfer */ +#define VM_DATA_XFER_LIMIT 8192 + +#define VDX_FLAG_READ_COPYIN (1 << 0) +#define VDX_FLAG_WRITE_COPYOUT (1 << 1) + +#define VDX_FLAGS_VALID (VDX_FLAG_READ_COPYIN | VDX_FLAG_WRITE_COPYOUT) + +struct vm_data_xfer { + int vdx_vcpuid; + uint16_t vdx_class; + uint16_t vdx_version; + uint32_t vdx_flags; + uint32_t vdx_len; + void *vdx_data; +}; + /* * VMM Interface Version * @@ -366,7 +384,7 @@ struct vmm_dirty_tracker { * best-effort activity. Nothing is to be inferred about the magnitude of a * change when the version is modified. It follows no rules like semver. */ -#define VMM_CURRENT_INTERFACE_VERSION 1 +#define VMM_CURRENT_INTERFACE_VERSION 2 #define VMMCTL_IOC_BASE (('V' << 16) | ('M' << 8)) @@ -472,6 +490,9 @@ struct vmm_dirty_tracker { #define VM_TRACK_DIRTY_PAGES (VMM_IOC_BASE | 0x20) #define VM_DESC_FPU_AREA (VMM_IOC_BASE | 0x21) +#define VM_DATA_READ (VMM_IOC_BASE | 0x22) +#define VM_DATA_WRITE (VMM_IOC_BASE | 0x23) + #define VM_DEVMEM_GETOFFSET (VMM_IOC_BASE | 0xff) #define VMM_CTL_DEV "/dev/vmmctl" |
