opnsense-src/sys/riscv/include
Mark Johnston c76c2a19ae vmm: Consolidate code which manages guest memory regions
On all three platforms supported by vmm, we have mostly duplicated code
to manage guest physical memory regions.  Deduplicate much of this code
and move it into sys/dev/vmm/vmm_mem.c.

To avoid exporting struct vm outside of machdep vmm.c, add a new
struct vm_mem to contain the memory segment descriptors, and add a
vm_mem() accessor, akin to vm_vmspace().  This way vmm_mem.c can
implement its routines without needing to see the layout of struct vm.

The handling of the per-VM vmspace is also duplicated but will be moved
to vmm_mem.c in a follow-up patch.

On amd64, move the ppt_is_mmio() check out of vm_mem_allocated() to keep
the code MI, as PPT is only implemented on amd64.  There are only a
couple of callers, so this is not unreasonable.

No functional change intended.

Reviewed by:	jhb
Differential Revision:	https://reviews.freebsd.org/D48270
2025-02-18 16:00:07 +00:00
..
_align.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
_bus.h _bus.h: Use standard licnese text 2023-11-13 12:25:30 -07:00
_inttypes.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
_limits.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
_stdint.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_types.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
asm.h riscv: T-HEAD early locore workaround 2024-11-25 17:08:04 -04:00
atomic.h atomics: Constify loads: riscv: Convert missed atomic_load_acq_64() 2025-01-20 16:49:45 +01:00
bus.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bus_dma.h Deprecate contigfree(9) in favour of free(9) 2024-07-26 10:45:01 +00:00
bus_dma_impl.h busdma: tidy bus_dma_run_filter() functions 2023-12-06 19:11:39 -04:00
clock.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
counter.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cpu.h riscv: T-HEAD early locore workaround 2024-11-25 17:08:04 -04:00
cpufunc.h riscv vmm: implement SBI RFNC extension. 2025-01-21 10:35:19 +00:00
db_machdep.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dump.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
efi.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
elf.h riscv/vmm: Initial import. 2024-10-31 20:24:12 +00:00
encoding.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
endian.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
exec.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
float.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
floatingpoint.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
fpe.h riscv: add FPE code. 2024-06-25 12:35:35 +01:00
frame.h riscv: Fix and generalise saving TP (PCPU pointer) whilst in userspace 2025-02-04 17:28:42 +00:00
gdb_machdep.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
ieeefp.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
ifunc.h riscv: Add machine/ifunc.h corresponding to rtld-elf's resolver interface 2024-08-22 20:36:45 +01:00
in_cksum.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
intr.h intrng: fix INTR_ROOT_* constants 2024-12-16 15:11:52 -04:00
kdb.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
machdep.h riscv: drop l1pt argument from pmap_bootstrap() 2024-06-20 15:33:19 -03:00
md_var.h riscv/vmm: Initial import. 2024-10-31 20:24:12 +00:00
memdev.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
metadata.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
minidump.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ofw_machdep.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
param.h pci: cleanup __PCI_REROUTE_INTERRUPTS 2025-01-23 16:30:31 -04:00
pcb.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pcpu.h riscv: enable cpufreq_dt driver 2025-01-10 15:16:06 -04:00
pcpu_aux.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pmap.h riscv: drop l1pt argument from pmap_bootstrap() 2024-06-20 15:33:19 -03:00
pmc_mdep.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
proc.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
procctl.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
profile.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
psl.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
pte.h riscv: T-HEAD PBMT support 2024-11-25 17:08:04 -04:00
ptrace.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
reg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
reloc.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
resource.h Retire non-NEW_PCIB code and remove config option 2024-07-18 18:55:12 +01:00
riscvreg.h riscv/vmm: Initial import. 2024-10-31 20:24:12 +00:00
runq.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sbi.h riscv: T-HEAD early locore workaround 2024-11-25 17:08:04 -04:00
sdt_machdep.h sdt: Implement SDT probes using hot-patching 2024-06-19 16:57:41 -04:00
setjmp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sf_buf.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sigframe.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
signal.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
smp.h riscv: Convert local interrupt controller to a newbus PIC 2024-01-24 23:49:54 +00:00
stack.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
stdarg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sysarch.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
thead.h riscv: T-HEAD PBMT support 2024-11-25 17:08:04 -04:00
tls.h Add <machine/tls.h> header to hold MD constants and helpers for TLS. 2021-12-09 13:17:13 -08:00
trap.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
ucontext.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vdso.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vm.h riscv: Svpbmt extension support 2024-07-31 12:28:13 -03:00
vmm.h vmm: Consolidate code which manages guest memory regions 2025-02-18 16:00:07 +00:00
vmm_dev.h riscv/vmm: Fix the build after a97f683fe3 2024-11-05 04:23:49 +00:00
vmm_instruction_emul.h riscv/vmm: Initial import. 2024-10-31 20:24:12 +00:00
vmm_snapshot.h riscv/vmm: Initial import. 2024-10-31 20:24:12 +00:00
vmparam.h riscv: rework page table bootstrap 2024-06-20 15:33:19 -03:00