mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-19 12:12:16 +00:00
hv: dm: Use new VM management ioctls
IC_CREATE_VM -> ACRN_IOCTL_CREATE_VM IC_DESTROY_VM -> ACRN_IOCTL_DESTROY_VM IC_START_VM -> ACRN_IOCTL_START_VM IC_PAUSE_VM -> ACRN_IOCTL_PAUSE_VM IC_RESET_VM -> ACRN_IOCTL_RESET_VM struct acrn_create_vm -> struct acrn_vm_creation Tracked-On: #6282 Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
This commit is contained in:
parent
7efe18a84b
commit
f476ca55ab
@ -165,12 +165,12 @@ struct vmctx *
|
||||
vm_create(const char *name, uint64_t req_buf, int *vcpu_num)
|
||||
{
|
||||
struct vmctx *ctx;
|
||||
struct acrn_create_vm create_vm;
|
||||
struct acrn_vm_creation create_vm;
|
||||
int error, retry = 10;
|
||||
uuid_t vm_uuid;
|
||||
struct stat tmp_st;
|
||||
|
||||
memset(&create_vm, 0, sizeof(struct acrn_create_vm));
|
||||
memset(&create_vm, 0, sizeof(struct acrn_vm_creation));
|
||||
ctx = calloc(1, sizeof(struct vmctx) + strnlen(name, PATH_MAX) + 1);
|
||||
if ((ctx == NULL) || (devfd != -1))
|
||||
goto err;
|
||||
@ -230,9 +230,9 @@ vm_create(const char *name, uint64_t req_buf, int *vcpu_num)
|
||||
create_vm.vm_flag |= GUEST_FLAG_IO_COMPLETION_POLLING;
|
||||
}
|
||||
|
||||
create_vm.req_buf = req_buf;
|
||||
create_vm.ioreq_buf = req_buf;
|
||||
while (retry > 0) {
|
||||
error = ioctl(ctx->fd, IC_CREATE_VM, &create_vm);
|
||||
error = ioctl(ctx->fd, ACRN_IOCTL_CREATE_VM, &create_vm);
|
||||
if (error == 0)
|
||||
break;
|
||||
usleep(500000);
|
||||
@ -311,7 +311,7 @@ vm_destroy(struct vmctx *ctx)
|
||||
if (!ctx)
|
||||
return;
|
||||
|
||||
ioctl(ctx->fd, IC_DESTROY_VM, NULL);
|
||||
ioctl(ctx->fd, ACRN_IOCTL_DESTROY_VM, NULL);
|
||||
close(ctx->fd);
|
||||
free(ctx);
|
||||
devfd = -1;
|
||||
@ -468,7 +468,7 @@ vm_run(struct vmctx *ctx)
|
||||
{
|
||||
int error;
|
||||
|
||||
error = ioctl(ctx->fd, IC_START_VM, &ctx->vmid);
|
||||
error = ioctl(ctx->fd, ACRN_IOCTL_START_VM, &ctx->vmid);
|
||||
|
||||
return error;
|
||||
}
|
||||
@ -476,13 +476,13 @@ vm_run(struct vmctx *ctx)
|
||||
void
|
||||
vm_pause(struct vmctx *ctx)
|
||||
{
|
||||
ioctl(ctx->fd, IC_PAUSE_VM, &ctx->vmid);
|
||||
ioctl(ctx->fd, ACRN_IOCTL_PAUSE_VM, &ctx->vmid);
|
||||
}
|
||||
|
||||
void
|
||||
vm_reset(struct vmctx *ctx)
|
||||
{
|
||||
ioctl(ctx->fd, IC_RESET_VM, &ctx->vmid);
|
||||
ioctl(ctx->fd, ACRN_IOCTL_RESET_VM, &ctx->vmid);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -72,13 +72,18 @@
|
||||
#define ACRN_IOCTL_GET_PLATFORM_INFO \
|
||||
_IOR(ACRN_IOCTL_TYPE, 0x03, struct acrn_platform_info)
|
||||
|
||||
/* VM management */
|
||||
#define IC_ID_VM_BASE 0x10UL
|
||||
#define IC_CREATE_VM _IC_ID(IC_ID, IC_ID_VM_BASE + 0x00)
|
||||
#define IC_DESTROY_VM _IC_ID(IC_ID, IC_ID_VM_BASE + 0x01)
|
||||
#define IC_START_VM _IC_ID(IC_ID, IC_ID_VM_BASE + 0x02)
|
||||
#define IC_PAUSE_VM _IC_ID(IC_ID, IC_ID_VM_BASE + 0x03)
|
||||
#define IC_RESET_VM _IC_ID(IC_ID, IC_ID_VM_BASE + 0x05)
|
||||
#define ACRN_IOCTL_CREATE_VM \
|
||||
_IOWR(ACRN_IOCTL_TYPE, 0x10, struct acrn_vm_creation)
|
||||
#define ACRN_IOCTL_DESTROY_VM \
|
||||
_IO(ACRN_IOCTL_TYPE, 0x11)
|
||||
#define ACRN_IOCTL_START_VM \
|
||||
_IO(ACRN_IOCTL_TYPE, 0x12)
|
||||
#define ACRN_IOCTL_PAUSE_VM \
|
||||
_IO(ACRN_IOCTL_TYPE, 0x13)
|
||||
#define ACRN_IOCTL_RESET_VM \
|
||||
_IO(ACRN_IOCTL_TYPE, 0x15)
|
||||
|
||||
#define IC_SET_VCPU_REGS _IC_ID(IC_ID, IC_ID_VM_BASE + 0x06)
|
||||
|
||||
/* IRQ and Interrupts */
|
||||
|
@ -110,7 +110,7 @@ struct acrn_vm *parse_target_vm(struct acrn_vm *sos_vm, uint64_t hcall_id, uint6
|
||||
{
|
||||
struct acrn_vm *target_vm = NULL;
|
||||
uint16_t vm_id = ACRN_INVALID_VMID;
|
||||
struct acrn_create_vm cv;
|
||||
struct acrn_vm_creation cv;
|
||||
struct set_regions regions;
|
||||
uint16_t relative_vm_id;
|
||||
|
||||
|
@ -241,7 +241,7 @@ int32_t hcall_get_platform_info(struct acrn_vcpu *vcpu, __unused struct acrn_vm
|
||||
* @param vcpu Pointer to vCPU that initiates the hypercall
|
||||
* @param target_vm Pointer to target VM data structure
|
||||
* @param param1 guest physical memory address. This gpa points to
|
||||
* struct acrn_create_vm
|
||||
* struct acrn_vm_creation
|
||||
*
|
||||
* @pre is_sos_vm(vcpu->vm)
|
||||
* @pre get_vm_config(target_vm->vm_id) != NULL
|
||||
@ -253,7 +253,7 @@ int32_t hcall_create_vm(struct acrn_vcpu *vcpu, struct acrn_vm *target_vm, uint6
|
||||
uint16_t vmid = target_vm->vm_id;
|
||||
int32_t ret = -1;
|
||||
struct acrn_vm *tgt_vm = NULL;
|
||||
struct acrn_create_vm cv;
|
||||
struct acrn_vm_creation cv;
|
||||
struct acrn_vm_config* vm_config = NULL;
|
||||
|
||||
if (copy_from_gpa(vm, &cv, param1, sizeof(cv)) == 0) {
|
||||
|
@ -79,7 +79,7 @@ int32_t hcall_get_platform_info(struct acrn_vcpu *vcpu, struct acrn_vm *target_v
|
||||
* @param vcpu Pointer to vCPU that initiates the hypercall
|
||||
* @param target_vm Pointer to target VM data structure
|
||||
* @param param1 guest physical memory address. This gpa points to
|
||||
* struct acrn_create_vm
|
||||
* struct acrn_vm_creation
|
||||
* @param param2 not used
|
||||
*
|
||||
* @pre is_sos_vm(vcpu->vm)
|
||||
|
@ -339,7 +339,7 @@ union vhm_request_buffer {
|
||||
/**
|
||||
* @brief Info to create a VM, the parameter for HC_CREATE_VM hypercall
|
||||
*/
|
||||
struct acrn_create_vm {
|
||||
struct acrn_vm_creation {
|
||||
/** created vmid return to VHM. Keep it first field */
|
||||
uint16_t vmid;
|
||||
|
||||
@ -360,7 +360,7 @@ struct acrn_create_vm {
|
||||
*/
|
||||
uint64_t vm_flag;
|
||||
|
||||
uint64_t req_buf;
|
||||
uint64_t ioreq_buf;
|
||||
|
||||
/**
|
||||
* The least significant set bit is the PCPU # the VCPU 0 maps to;
|
||||
@ -368,9 +368,6 @@ struct acrn_create_vm {
|
||||
* and so on...
|
||||
*/
|
||||
uint64_t cpu_affinity;
|
||||
|
||||
/** Reserved for future use*/
|
||||
uint8_t reserved2[8];
|
||||
} __aligned(8);
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user