diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 5c6e9dc2d..0e90d1f56 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -952,8 +952,8 @@ dm_run(int argc, char *argv[]) } vmname = argv[0]; - if (strnlen(vmname, MAX_VM_OS_NAME_LEN) >= MAX_VM_OS_NAME_LEN) { - pr_err("vmname size exceed %u\n", MAX_VM_OS_NAME_LEN); + if (strnlen(vmname, MAX_VMNAME_LEN) >= MAX_VMNAME_LEN) { + pr_err("vmname size exceed %u\n", MAX_VMNAME_LEN); exit(1); } diff --git a/devicemodel/hw/platform/ioc.c b/devicemodel/hw/platform/ioc.c index 067c52b6c..5d1133759 100644 --- a/devicemodel/hw/platform/ioc.c +++ b/devicemodel/hw/platform/ioc.c @@ -65,6 +65,7 @@ #include #include +#include "dm.h" #include "ioc.h" #include "vmmapi.h" #include "monitor.h" @@ -100,7 +101,7 @@ typedef void* (*ioc_work)(void *arg); * IOC mediator and virtual UART communication channel path, * comes from DM command line parameters. */ -static char virtual_uart_path[32 + MAX_VM_OS_NAME_LEN]; +static char virtual_uart_path[32 + MAX_VMNAME_LEN]; /* * To activate CBC signal channel(/dev/cbc-signals). diff --git a/devicemodel/include/dm.h b/devicemodel/include/dm.h index 6dec932bc..c9e4f987a 100644 --- a/devicemodel/include/dm.h +++ b/devicemodel/include/dm.h @@ -34,6 +34,8 @@ #include "vmm.h" #include "dm_string.h" +#define MAX_VMNAME_LEN 128U + struct vmctx; extern int guest_ncpus; extern char *guest_uuid_str; diff --git a/hypervisor/include/arch/x86/vm_config.h b/hypervisor/include/arch/x86/vm_config.h index 526ff1ec2..b181c48d7 100644 --- a/hypervisor/include/arch/x86/vm_config.h +++ b/hypervisor/include/arch/x86/vm_config.h @@ -16,6 +16,7 @@ #define PLUG_CPU(n) (1U << (n)) #define MAX_VUART_NUM_PER_VM 2U +#define MAX_VM_OS_NAME_LEN 32U /* * PRE_LAUNCHED_VM is launched by ACRN hypervisor, with LAPIC_PT; diff --git a/hypervisor/include/public/acrn_common.h b/hypervisor/include/public/acrn_common.h index 373e353d2..43aee8fc7 100644 --- a/hypervisor/include/public/acrn_common.h +++ b/hypervisor/include/public/acrn_common.h @@ -366,7 +366,6 @@ struct acrn_create_vm { uint8_t reserved2[16]; } __aligned(8); -#define MAX_VM_OS_NAME_LEN 32U /** * @brief Info to create a VCPU diff --git a/tools/acrn-manager/acrn_mngr.h b/tools/acrn-manager/acrn_mngr.h index 259bd7d3d..24c5dc69f 100644 --- a/tools/acrn-manager/acrn_mngr.h +++ b/tools/acrn-manager/acrn_mngr.h @@ -3,11 +3,19 @@ * SPDX-License-Identifier: BSD-3-Clause */ +/* +***************************************************** +NOTE: Any changes to this file may require rebuilding +IOC daemon (cbc_lifecycle) as they share this common +header file. +***************************************************** +*/ + #ifndef ACRN_MANAGER_H #define ACRN_MANAGER_H #include -#include +#include "dm.h" #define MNGR_MSG_MAGIC 0x67736d206d6d76 /* that is char[8] "mngr msg", on X86 */ #define PATH_LEN 128 @@ -43,7 +51,7 @@ struct mngr_msg { /* req of ACRND_TIMER */ struct req_acrnd_timer { - char name[MAX_VM_OS_NAME_LEN]; + char name[MAX_VMNAME_LEN]; time_t t; } acrnd_timer; @@ -67,7 +75,7 @@ struct mngr_msg { /* req of RTC_TIMER */ struct req_rtc_timer { - char vmname[MAX_VM_OS_NAME_LEN]; + char vmname[MAX_VMNAME_LEN]; time_t t; } rtc_timer; diff --git a/tools/acrn-manager/acrn_vm_ops.c b/tools/acrn-manager/acrn_vm_ops.c index 8cbb1beed..7e7dd2651 100644 --- a/tools/acrn-manager/acrn_vm_ops.c +++ b/tools/acrn-manager/acrn_vm_ops.c @@ -355,7 +355,7 @@ int list_vm() int start_vm(const char *vmname) { - char cmd[PATH_LEN + sizeof(ACRN_CONF_PATH_ADD) * 2 + MAX_VM_OS_NAME_LEN * 2]; + char cmd[PATH_LEN + sizeof(ACRN_CONF_PATH_ADD) * 2 + MAX_VMNAME_LEN * 2]; if (snprintf(cmd, sizeof(cmd), "bash %s/%s.sh $(cat %s/%s.args)", ACRN_CONF_PATH_ADD, vmname, ACRN_CONF_PATH_ADD, vmname) >= sizeof(cmd)) { diff --git a/tools/acrn-manager/acrnctl.c b/tools/acrn-manager/acrnctl.c index d88ce2183..ffb8cda59 100644 --- a/tools/acrn-manager/acrnctl.c +++ b/tools/acrn-manager/acrnctl.c @@ -89,8 +89,8 @@ static int check_name(const char *name) if (!strcmp(name, "nothing")) return -1; - if (strnlen(name, MAX_VM_OS_NAME_LEN) >= MAX_VM_OS_NAME_LEN) { - printf("(%s) size exceed MAX_VM_OS_NAME_LEN:%u\n", name, MAX_VM_OS_NAME_LEN); + if (strnlen(name, MAX_VMNAME_LEN) >= MAX_VMNAME_LEN) { + printf("(%s) size exceed MAX_VMNAME_LEN:%u\n", name, MAX_VMNAME_LEN); return -1; } diff --git a/tools/acrn-manager/acrnctl.h b/tools/acrn-manager/acrnctl.h index 3b773b3c2..3de7c92de 100644 --- a/tools/acrn-manager/acrnctl.h +++ b/tools/acrn-manager/acrnctl.h @@ -7,7 +7,6 @@ #define _ACRNCTL_H_ #include -#include #include "acrn_mngr.h" enum vm_state { @@ -30,7 +29,7 @@ struct vmmngr_struct *vmmngr_find(const char *vmname); /* Per-vm vm managerment struct */ struct vmmngr_struct { - char name[MAX_VM_OS_NAME_LEN]; + char name[MAX_VMNAME_LEN]; unsigned long state; unsigned long state_tmp; unsigned long update; /* update count, remove a vm if no update for it */ diff --git a/tools/acrn-manager/acrnd.c b/tools/acrn-manager/acrnd.c index 41dcd68ad..dea131f35 100644 --- a/tools/acrn-manager/acrnd.c +++ b/tools/acrn-manager/acrnd.c @@ -30,7 +30,7 @@ /* acrnd worker timer */ struct work_arg { - char name[MAX_VM_OS_NAME_LEN]; + char name[MAX_VMNAME_LEN]; }; struct acrnd_work { @@ -360,7 +360,7 @@ static void handle_timer_req(struct mngr_msg *msg, int client_fd, void *param) } strncpy(arg.name, msg->data.acrnd_timer.name, sizeof(arg.name) - 1); - if (sizeof(arg.name) - 1 < strnlen(msg->data.acrnd_timer.name, MAX_VM_OS_NAME_LEN)) { + if (sizeof(arg.name) - 1 < strnlen(msg->data.acrnd_timer.name, MAX_VMNAME_LEN)) { perror("timer name was truncated\n"); goto reply_ack; }