vmd/vmm: move vm_run_params into mi header.
authordv <dv@openbsd.org>
Tue, 9 Jul 2024 09:31:37 +0000 (09:31 +0000)
committerdv <dv@openbsd.org>
Tue, 9 Jul 2024 09:31:37 +0000 (09:31 +0000)
To prepare for mi/md splitting vmd, need to fixup the dev/vmm/vmm.h
mi header. Move the vm_run_params struct and clean up the includes
in vmd.

"sure", mlarkin@

17 files changed:
sys/arch/amd64/include/vmmvar.h
sys/dev/vmm/vmm.h
usr.sbin/vmd/fw_cfg.c
usr.sbin/vmd/i8253.c
usr.sbin/vmd/i8259.c
usr.sbin/vmd/i8259.h
usr.sbin/vmd/loadfile_elf.c
usr.sbin/vmd/mc146818.c
usr.sbin/vmd/mmio.h
usr.sbin/vmd/ns8250.c
usr.sbin/vmd/parse.y
usr.sbin/vmd/pci.c
usr.sbin/vmd/virtio.c
usr.sbin/vmd/vm.c
usr.sbin/vmd/vmd.c
usr.sbin/vmd/vmd.h
usr.sbin/vmd/vmm.c

index 8426a5d..50c1f15 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmmvar.h,v 1.101 2024/04/29 14:47:05 dv Exp $ */
+/*     $OpenBSD: vmmvar.h,v 1.102 2024/07/09 09:31:37 dv Exp $ */
 /*
  * Copyright (c) 2014 Mike Larkin <mlarkin@openbsd.org>
  *
 
 #define VMM_HV_SIGNATURE       "OpenBSDVMM58"
 
-#define VMM_MAX_MEM_RANGES     16
-#define VMM_MAX_DISKS_PER_VM   4
-#define VMM_MAX_NAME_LEN       64
-#define VMM_MAX_VCPUS          512
-#define VMM_MAX_VCPUS_PER_VM   64
-#define VMM_MAX_VM_MEM_SIZE    128L * 1024 * 1024 * 1024
-#define VMM_MAX_NICS_PER_VM    4
-
 #define VMM_PCI_MMIO_BAR_BASE  0xF0000000ULL
 #define VMM_PCI_MMIO_BAR_END   0xFFDFFFFFULL           /* 2 MiB below 4 GiB */
 
@@ -474,21 +466,6 @@ struct vm_exit {
        int                             cpl;
 };
 
-struct vm_run_params {
-       /* Input parameters to VMM_IOC_RUN */
-       uint32_t        vrp_vm_id;
-       uint32_t        vrp_vcpu_id;
-       struct vcpu_inject_event        vrp_inject;
-       uint8_t         vrp_intr_pending;       /* Additional intrs pending? */
-
-       /* Input/output parameter to VMM_IOC_RUN */
-       struct vm_exit  *vrp_exit;              /* updated exit data */
-
-       /* Output parameter from VMM_IOC_RUN */
-       uint16_t        vrp_exit_reason;        /* exit reason */
-       uint8_t         vrp_irqready;           /* ready for IRQ on entry */
-};
-
 struct vm_intr_params {
        /* Input parameters to VMM_IOC_INTR */
        uint32_t                vip_vm_id;
@@ -961,7 +938,6 @@ int vcpu_init(struct vcpu *);
 void   vcpu_deinit(struct vcpu *);
 int    vm_rwvmparams(struct vm_rwvmparams_params *, int);
 int    vm_rwregs(struct vm_rwregs_params *, int);
-int    vm_run(struct vm_run_params *);
 int    vcpu_reset_regs(struct vcpu *, struct vcpu_reg_state *);
 
 #endif /* _KERNEL */
index 47f5e12..3ec2d20 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: vmm.h,v 1.4 2024/01/11 17:13:48 jan Exp $ */
+/* $OpenBSD: vmm.h,v 1.5 2024/07/09 09:31:37 dv Exp $ */
 /*
  * Copyright (c) 2014-2023 Mike Larkin <mlarkin@openbsd.org>
  *
 
 #include <uvm/uvm_extern.h>
 
+#include <machine/vmmvar.h>
+
 #ifndef DEV_VMM_H
 #define DEV_VMM_H
 
+#define VMM_MAX_MEM_RANGES     16
+#define VMM_MAX_DISKS_PER_VM   4
+#define VMM_MAX_NAME_LEN       64
+#define VMM_MAX_VCPUS          512
+#define VMM_MAX_VCPUS_PER_VM   64
+#define VMM_MAX_VM_MEM_SIZE    128L * 1024 * 1024 * 1024
+#define VMM_MAX_NICS_PER_VM    4
+
 struct vm_mem_range {
        paddr_t vmr_gpa;
        vaddr_t vmr_va;
@@ -83,6 +93,21 @@ struct vm_sharemem_params {
        struct vm_mem_range     vsp_memranges[VMM_MAX_MEM_RANGES];
 };
 
+struct vm_run_params {
+       /* Input parameters to VMM_IOC_RUN */
+       uint32_t        vrp_vm_id;
+       uint32_t        vrp_vcpu_id;
+       struct vcpu_inject_event        vrp_inject;
+       uint8_t         vrp_intr_pending;       /* Additional intrs pending? */
+
+       /* Input/output parameter to VMM_IOC_RUN */
+       struct vm_exit  *vrp_exit;              /* updated exit data */
+
+       /* Output parameter from VMM_IOC_RUN */
+       uint16_t        vrp_exit_reason;        /* exit reason */
+       uint8_t         vrp_irqready;           /* ready for IRQ on entry */
+};
+
 /* IOCTL definitions */
 #define VMM_IOC_CREATE _IOWR('V', 1, struct vm_create_params) /* Create VM */
 #define VMM_IOC_RUN _IOWR('V', 2, struct vm_run_params) /* Run VCPU */
@@ -202,6 +227,7 @@ int vm_terminate(struct vm_terminate_params *);
 int vm_resetcpu(struct vm_resetcpu_params *);
 int vcpu_must_stop(struct vcpu *);
 int vm_share_mem(struct vm_sharemem_params *, struct proc *);
+int vm_run(struct vm_run_params *);
 
 #ifdef VMM_DEBUG
 void dump_vcpu(struct vcpu *);
index 3e9459b..be84dc1 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: fw_cfg.c,v 1.8 2024/02/04 14:53:12 dv Exp $   */
+/*     $OpenBSD: fw_cfg.c,v 1.9 2024/07/09 09:31:37 dv Exp $   */
 /*
  * Copyright (c) 2018 Claudio Jeker <claudio@openbsd.org>
  *
@@ -17,8 +17,8 @@
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <machine/biosvar.h>   /* bios_memmap_t */
-#include <machine/vmmvar.h>
 #include <dev/pv/virtioreg.h>
+#include <dev/vmm/vmm.h>
 
 #include <stdlib.h>
 #include <string.h>
index 100dd08..ac9855e 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: i8253.c,v 1.39 2024/02/09 14:35:47 dv Exp $ */
+/* $OpenBSD: i8253.c,v 1.40 2024/07/09 09:31:37 dv Exp $ */
 /*
  * Copyright (c) 2016 Mike Larkin <mlarkin@openbsd.org>
  *
@@ -19,8 +19,7 @@
 #include <sys/types.h>
 
 #include <dev/ic/i8253reg.h>
-
-#include <machine/vmmvar.h>
+#include <dev/vmm/vmm.h>
 
 #include <event.h>
 #include <string.h>
index 1895989..2de4848 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: i8259.c,v 1.22 2023/09/01 19:42:26 dv Exp $ */
+/* $OpenBSD: i8259.c,v 1.23 2024/07/09 09:31:37 dv Exp $ */
 /*
  * Copyright (c) 2016 Mike Larkin <mlarkin@openbsd.org>
  *
@@ -20,8 +20,7 @@
 #include <sys/types.h>
 
 #include <dev/isa/isareg.h>
-
-#include <machine/vmmvar.h>
+#include <dev/vmm/vmm.h>
 
 #include <unistd.h>
 #include <pthread.h>
index 47fae8b..0390d82 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: i8259.h,v 1.6 2024/05/18 06:45:00 jsg Exp $ */
+/* $OpenBSD: i8259.h,v 1.7 2024/07/09 09:31:37 dv Exp $ */
 /*
  * Copyright (c) 2016 Mike Larkin <mlarkin@openbsd.org>
  *
@@ -17,8 +17,6 @@
 
 #include <sys/types.h>
 
-#include <machine/vmmvar.h>
-
 #define MASTER                 0
 #define SLAVE                  1
 
index 864344c..166aa04 100644 (file)
@@ -1,5 +1,5 @@
 /* $NetBSD: loadfile.c,v 1.10 2000/12/03 02:53:04 tsutsui Exp $ */
-/* $OpenBSD: loadfile_elf.c,v 1.47 2023/04/25 12:46:13 dv Exp $ */
+/* $OpenBSD: loadfile_elf.c,v 1.48 2024/07/09 09:31:37 dv Exp $ */
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -96,7 +96,8 @@
 #include <err.h>
 #include <stddef.h>
 
-#include <machine/vmmvar.h>
+#include <dev/vmm/vmm.h>
+
 #include <machine/biosvar.h>
 #include <machine/segments.h>
 #include <machine/specialreg.h>
index 78139f6..660c625 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: mc146818.c,v 1.27 2023/10/25 12:44:28 dv Exp $ */
+/* $OpenBSD: mc146818.c,v 1.28 2024/07/09 09:31:37 dv Exp $ */
 /*
  * Copyright (c) 2016 Mike Larkin <mlarkin@openbsd.org>
  *
@@ -19,8 +19,7 @@
 
 #include <dev/ic/mc146818reg.h>
 #include <dev/isa/isareg.h>
-
-#include <machine/vmmvar.h>
+#include <dev/vmm/vmm.h>
 
 #include <event.h>
 #include <stddef.h>
index 8acf97a..b3f3fa4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mmio.h,v 1.1 2022/11/10 11:46:39 dv Exp $     */
+/*     $OpenBSD: mmio.h,v 1.2 2024/07/09 09:31:37 dv Exp $     */
 
 /*
  * Copyright (c) 2022 Dave Voutila <dv@openbsd.org>
@@ -20,7 +20,6 @@
 #define _MMIO_H_
 
 #include <sys/types.h>
-#include <machine/vmmvar.h>
 
 /* Code segment bits  */
 #define CS_L           (1 << 13)
index 425531c..bcb48ef 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ns8250.c,v 1.38 2023/10/25 12:44:28 dv Exp $ */
+/* $OpenBSD: ns8250.c,v 1.39 2024/07/09 09:31:37 dv Exp $ */
 /*
  * Copyright (c) 2016 Mike Larkin <mlarkin@openbsd.org>
  *
@@ -19,8 +19,7 @@
 #include <sys/ttycom.h>
 
 #include <dev/ic/comreg.h>
-
-#include <machine/vmmvar.h>
+#include <dev/vmm/vmm.h>
 
 #include <errno.h>
 #include <event.h>
index 2ee9889..aacfd63 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: parse.y,v 1.68 2023/07/13 18:31:59 dv Exp $   */
+/*     $OpenBSD: parse.y,v 1.69 2024/07/09 09:31:37 dv Exp $   */
 
 /*
  * Copyright (c) 2007-2016 Reyk Floeter <reyk@openbsd.org>
@@ -28,7 +28,7 @@
 #include <sys/socket.h>
 #include <sys/uio.h>
 
-#include <machine/vmmvar.h>
+#include <dev/vmm/vmm.h>
 
 #include <arpa/inet.h>
 #include <net/if.h>
index 5309449..1722baa 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pci.c,v 1.31 2023/02/06 20:33:34 dv Exp $     */
+/*     $OpenBSD: pci.c,v 1.32 2024/07/09 09:31:37 dv Exp $     */
 
 /*
  * Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
@@ -21,7 +21,7 @@
 #include <dev/pci/pcireg.h>
 #include <dev/pci/pcidevs.h>
 #include <dev/pv/virtioreg.h>
-#include <machine/vmmvar.h>
+#include <dev/vmm/vmm.h>
 
 #include <string.h>
 #include <unistd.h>
index 536c773..80d035e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: virtio.c,v 1.113 2024/02/20 21:40:37 dv Exp $ */
+/*     $OpenBSD: virtio.c,v 1.114 2024/07/09 09:31:37 dv Exp $ */
 
 /*
  * Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
 #include <sys/socket.h>
 #include <sys/wait.h>
 
-#include <machine/vmmvar.h>
 #include <dev/pci/pcireg.h>
 #include <dev/pci/pcidevs.h>
 #include <dev/pv/virtioreg.h>
 #include <dev/pci/virtio_pcireg.h>
 #include <dev/pv/vioblkreg.h>
 #include <dev/pv/vioscsireg.h>
+#include <dev/vmm/vmm.h>
 
 #include <net/if.h>
 #include <netinet/in.h>
index 643c784..078e9b5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vm.c,v 1.102 2024/07/08 17:33:45 dv Exp $     */
+/*     $OpenBSD: vm.c,v 1.103 2024/07/09 09:31:37 dv Exp $     */
 
 /*
  * Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
 #include <dev/ic/i8253reg.h>
 #include <dev/isa/isareg.h>
 #include <dev/pci/pcireg.h>
+#include <dev/vmm/vmm.h>
 
 #include <machine/psl.h>
 #include <machine/pte.h>
 #include <machine/specialreg.h>
-#include <machine/vmmvar.h>
 
 #include <net/if.h>
 
index 4662f76..3c053ae 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmd.c,v 1.157 2024/05/18 06:45:00 jsg Exp $   */
+/*     $OpenBSD: vmd.c,v 1.158 2024/07/09 09:31:37 dv Exp $    */
 
 /*
  * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
@@ -40,8 +40,8 @@
 #include <ctype.h>
 #include <grp.h>
 
+#include <dev/vmm/vmm.h>
 #include <machine/specialreg.h>
-#include <machine/vmmvar.h>
 
 #include "proc.h"
 #include "atomicio.h"
index b629454..4f1b05e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmd.h,v 1.125 2024/02/20 21:40:37 dv Exp $    */
+/*     $OpenBSD: vmd.h,v 1.126 2024/07/09 09:31:37 dv Exp $    */
 
 /*
  * Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
@@ -21,8 +21,6 @@
 #include <sys/un.h>
 #include <sys/socket.h>
 
-#include <machine/vmmvar.h>
-
 #include <dev/vmm/vmm.h>
 
 #include <net/if.h>
index dcd9a91..70c94c0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmm.c,v 1.119 2024/02/05 21:58:09 dv Exp $    */
+/*     $OpenBSD: vmm.c,v 1.120 2024/07/09 09:31:37 dv Exp $    */
 
 /*
  * Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
 #include <dev/ic/i8253reg.h>
 #include <dev/isa/isareg.h>
 #include <dev/pci/pcireg.h>
+#include <dev/vmm/vmm.h>
 
 #include <machine/psl.h>
 #include <machine/specialreg.h>
-#include <machine/vmmvar.h>
 
 #include <net/if.h>