| /freebsd-src/usr.sbin/bhyve/ |
| H A D | bootrom.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 60 * It is allocated in page-multiple blocks on a first-come first-serve basis, 63 static char *romptr; /* Pointer to userspace-mapped bootrom region. */ 64 static vm_paddr_t gpa_base; /* GPA o 75 uint64_t gpa; global() member 138 vm_paddr_t gpa; bootrom_alloc() local [all...] |
| H A D | basl.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 73 return ((uint8_t *)pp)[0]; in basl_le_dec() 82 return 0; in basl_le_dec() 99 const ACPI_TABLE_HEADER *const header = table->data; in basl_dump_table() 103 data = table->data; in basl_dump_table() 105 data = vm_map_gpa(table->ctx, BHYVE_ACPI_BASE + table->off, in basl_dump_table() 106 table->len); in basl_dump_table() 112 printf("%.4s @ %8x (%s)\n", header->Signature, in basl_dump_table() 113 BHYVE_ACPI_BASE + table->off, mem ? "Memory" : "FwCfg"); in basl_dump_table() [all …]
|
| H A D | mem.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 63 * Per-vCPU cache. Since most accesses from a vCPU will be to 75 if (a->mr_end < b->mr_base) in mmio_rb_range_compare() 76 return (-1); in mmio_rb_range_compare() 77 else if (a->mr_base > b->mr_end) in mmio_rb_range_compare() 79 return (0); in mmio_rb_range_compare() 94 return (0); in mmio_rb_lookup() 111 new->mr_base, new->mr_end, in mmio_rb_add() 112 overlap->mr_base, overlap->mr_end, in mmio_rb_add() [all …]
|
| H A D | gdb.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 4 * Copyright (c) 2017-2018 John H. Baldwin <jhb@FreeBSD.org> 85 #define GDB_BP_INSTR (uint8_t []){0xcc} 90 #define GDB_BP_INSTR (uint8_t []){0x00, 0x00, 0x2 126 uint64_t gpa; global() member 1045 find_breakpoint(uint64_t gpa) find_breakpoint() argument 1061 uint64_t gpa; gdb_cpu_breakpoint() local 1201 uint64_t gpa, gva, val; gdb_read_mem() local 1315 uint64_t gpa, gva, val; gdb_write_mem() local 1480 uint64_t gpa; update_sw_breakpoint() local [all...] |
| /freebsd-src/sys/amd64/vmm/ |
| H A D | vmm.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 109 void *cookie; /* (i) cpu-specific data */ 128 #define vcpu_lock_init(v) mtx_init(&((v)->mtx), "vcpu lock", 0, MTX_SPIN) 129 #define vcpu_lock_destroy(v) mtx_destroy(&((v)->mtx)) 130 #define vcpu_lock(v) mtx_lock_spin(&((v)->mt 141 vm_paddr_t gpa; global() member 758 vm_map_mmio(struct vm * vm,vm_paddr_t gpa,size_t len,vm_paddr_t hpa) vm_map_mmio() argument 769 vm_unmap_mmio(struct vm * vm,vm_paddr_t gpa,size_t len) vm_unmap_mmio() argument 783 vm_mem_allocated(struct vcpu * vcpu,vm_paddr_t gpa) vm_mem_allocated() argument 877 vm_mmap_memseg(struct vm * vm,vm_paddr_t gpa,int segid,vm_ooffset_t first,size_t len,int prot,int flags) vm_mmap_memseg() argument 944 vm_munmap_memseg(struct vm * vm,vm_paddr_t gpa,size_t len) vm_munmap_memseg() argument 962 vm_mmap_getnext(struct vm * vm,vm_paddr_t * gpa,int * segid,vm_ooffset_t * segoff,size_t * len,int * prot,int * flags) vm_mmap_getnext() argument 1042 vm_paddr_t gpa, hpa; vm_iommu_map() local 1089 vm_paddr_t gpa; vm_iommu_unmap() local 1160 _vm_gpa_hold(struct vm * vm,vm_paddr_t gpa,size_t len,int reqprot,void ** cookie) _vm_gpa_hold() argument 1191 vm_gpa_hold(struct vcpu * vcpu,vm_paddr_t gpa,size_t len,int reqprot,void ** cookie) vm_gpa_hold() argument 1207 vm_gpa_hold_global(struct vm * vm,vm_paddr_t gpa,size_t len,int reqprot,void ** cookie) vm_gpa_hold_global() argument 1628 uint64_t gla, gpa, cs_base; vm_handle_inst_emul() local 2782 uint64_t gpa; vm_copy_setup() local [all...] |
| H A D | vmm_instruction_emul.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 68 VIE_OP_TYPE_NONE = 0, 91 #define VIE_OP_F_IMM (1 << 0) /* 16/32-bit immediate operand */ 92 #define VIE_OP_F_IMM8 (1 << 1) /* 8-bit immediate operand */ 93 #define VIE_OP_F_MOFFSET (1 << 2) /* 16/32/64-bi 508 emulate_mov(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite,void * arg) emulate_mov() argument 622 emulate_movx(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * arg) emulate_movx() argument 763 emulate_movs(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,struct vm_guest_paging * paging,mem_region_read_t memread,mem_region_write_t memwrite,void * arg) emulate_movs() argument 945 emulate_stos(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,struct vm_guest_paging * paging __unused,mem_region_read_t memread __unused,mem_region_write_t memwrite,void * arg) emulate_stos() argument 1007 emulate_and(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite,void * arg) emulate_and() argument 1095 emulate_or(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite,void * arg) emulate_or() argument 1183 emulate_cmp(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * arg) emulate_cmp() argument 1275 emulate_test(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * arg) emulate_test() argument 1324 emulate_bextr(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,struct vm_guest_paging * paging,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * arg) emulate_bextr() argument 1401 emulate_add(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * arg) emulate_add() argument 1457 emulate_sub(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * arg) emulate_sub() argument 1657 emulate_group1(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,struct vm_guest_paging * paging __unused,mem_region_read_t memread,mem_region_write_t memwrite,void * memarg) emulate_group1() argument 1685 emulate_bittest(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * memarg) emulate_bittest() argument 1728 emulate_twob_group15(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,mem_region_read_t memread,mem_region_write_t memwrite __unused,void * memarg) emulate_twob_group15() argument 1760 vmm_emulate_instruction(struct vcpu * vcpu,uint64_t gpa,struct vie * vie,struct vm_guest_paging * paging,mem_region_read_t memread,mem_region_write_t memwrite,void * memarg) vmm_emulate_instruction() argument 2066 _vm_gla2gpa(struct vcpu * vcpu,struct vm_guest_paging * paging,uint64_t gla,int prot,uint64_t * gpa,int * guest_fault,bool check_only) _vm_gla2gpa() argument 2267 vm_gla2gpa(struct vcpu * vcpu,struct vm_guest_paging * paging,uint64_t gla,int prot,uint64_t * gpa,int * guest_fault) vm_gla2gpa() argument 2276 vm_gla2gpa_nofault(struct vcpu * vcpu,struct vm_guest_paging * paging,uint64_t gla,int prot,uint64_t * gpa,int * guest_fault) vm_gla2gpa_nofault() argument [all...] |
| H A D | vmm_dev.c | |
| H A D | vmm_mem.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 49 vmm_mmio_alloc(struct vmspace *vmspace, vm_paddr_t gpa, size_t len, in vmm_mem_init() 58 KASSERT(error == 0, ("error %d appending physaddr to sglist", error)); in vmm_mmio_alloc() 60 obj = vm_pager_allocate(OBJT_SG, sg, len, VM_PROT_RW, 0, NULL); in vmm_mmio_alloc() 63 * VT-x ignores the MTRR settings when figuring out the in vmm_mmio_alloc() 76 error = vm_map_find(&vmspace->vm_ma in vmm_mmio_alloc() 56 vmm_mmio_alloc(struct vmspace * vmspace,vm_paddr_t gpa,size_t len,vm_paddr_t hpa) vmm_mmio_alloc() argument 108 vmm_mmio_free(struct vmspace * vmspace,vm_paddr_t gpa,size_t len) vmm_mmio_free() argument [all...] |
| H A D | vmm_lapic.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 45 #define MSI_X86_ADDR_MASK 0xfff00000 46 #define MSI_X86_ADDR_BASE 0xfee00000 47 #define MSI_X86_ADDR_RH 0x00000008 /* Redirection Hint */ 48 #define MSI_X86_ADDR_LOG 0x00000004 /* Destination Mode */ 65 return (0); in lapic_set_intr() 189 lapic_mmio_write(struct vcpu * vcpu,uint64_t gpa,uint64_t wval,int size,void * arg) lapic_mmio_write() argument 211 lapic_mmio_read(struct vcpu * vcpu,uint64_t gpa,uint64_t * rval,int size,void * arg) lapic_mmio_read() argument [all...] |
| /freebsd-src/lib/libvmmapi/ |
| H A D | vmmapi.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 69 #define VM_LOWMEM_LIMIT 0 98 memset(&vmc, 0, sizeof(vmc)); in vm_device_open() 101 return (-1); 112 if (modfind("vmm") < 0) { in vm_open() 114 if (error != 0) in vm_open() 230 vm_mmap_memseg(struct vmctx * ctx,vm_paddr_t gpa,int segid,vm_ooffset_t off,size_t len,int prot) vm_mmap_memseg() argument 277 vm_munmap_memseg(struct vmctx * ctx,vm_paddr_t gpa,size_t len) vm_munmap_memseg() argument 290 vm_mmap_getnext(struct vmctx * ctx,vm_paddr_t * gpa,int * segid,vm_ooffset_t * segoff,size_t * len,int * prot,int * flags) vm_mmap_getnext() argument 391 setup_memory_segment(struct vmctx * ctx,vm_paddr_t gpa,size_t len,char * base) setup_memory_segment() argument 417 vm_paddr_t gpa; vm_setup_memory() local 803 vm_get_gpa_pmap(struct vmctx * ctx,uint64_t gpa,uint64_t * pte,int * num) vm_get_gpa_pmap() argument 824 vm_gla2gpa(struct vcpu * vcpu,struct vm_guest_paging * paging,uint64_t gla,int prot,uint64_t * gpa,int * fault) vm_gla2gpa() argument 845 vm_gla2gpa_nofault(struct vcpu * vcpu,struct vm_guest_paging * paging,uint64_t gla,int prot,uint64_t * gpa,int * fault) vm_gla2gpa_nofault() argument 874 uint64_t gpa, off; vm_copy_setup() local [all...] |
| H A D | vmmapi.h | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 40 * API version for out-of-tree consumers like grub-bhyve for making compile 58 VM_MMAP_SPARSE, /* mappings created on-demand */ 64 #define VM_MEM_F_INCORE 0x0 [all...] |
| /freebsd-src/sys/arm64/vmm/ |
| H A D | vmm.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 86 void *cookie; /* (i) cpu-specific data */ 90 #define vcpu_lock_initialized(v) mtx_initialized(&((v)->mtx)) 91 #define vcpu_lock_init(v) mtx_init(&((v)->mtx), "vcpu lock", 0, MTX_SPIN) 92 #define vcpu_lock_destroy(v) mtx_destroy(&((v)->mt 98 uint64_t gpa; global() member 107 vm_paddr_t gpa; global() member 645 vm_mem_allocated(struct vcpu * vcpu,vm_paddr_t gpa) vm_mem_allocated() argument 736 vm_mmap_memseg(struct vm * vm,vm_paddr_t gpa,int segid,vm_ooffset_t first,size_t len,int prot,int flags) vm_mmap_memseg() argument 803 vm_munmap_memseg(struct vm * vm,vm_paddr_t gpa,size_t len) vm_munmap_memseg() argument 820 vm_mmap_getnext(struct vm * vm,vm_paddr_t * gpa,int * segid,vm_ooffset_t * segoff,size_t * len,int * prot,int * flags) vm_mmap_getnext() argument 899 vm_gla2gpa_nofault(struct vcpu * vcpu,struct vm_guest_paging * paging,uint64_t gla,int prot,uint64_t * gpa,int * is_fault) vm_gla2gpa_nofault() argument 1519 _vm_gpa_hold(struct vm * vm,vm_paddr_t gpa,size_t len,int reqprot,void ** cookie) _vm_gpa_hold() argument 1551 vm_gpa_hold(struct vcpu * vcpu,vm_paddr_t gpa,size_t len,int reqprot,void ** cookie) vm_gpa_hold() argument 1567 vm_gpa_hold_global(struct vm * vm,vm_paddr_t gpa,size_t len,int reqprot,void ** cookie) vm_gpa_hold_global() argument [all...] |
| H A D | vmm_dev.c | |
| /freebsd-src/sys/amd64/vmm/intel/ |
| H A D | vtd.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 49 #define VTD_DRHD_INCLUDE_PCI_ALL(Flags) (((Flags) >> 0) & 0x1) 63 #define VTD_CAP_SAGAW(cap) (((cap) >> 8) & 0x1F) 64 #define VTD_CAP_ND(cap) ((cap) & 0x7) 65 #define VTD_CAP_CM(cap) (((cap) >> 7) & 0x1) 66 #define VTD_CAP_SPS(cap) (((cap) >> 34) & 0xF) 67 #define VTD_CAP_RWBF(cap) (((cap) >> 4) & 0x1) 69 #define VTD_ECAP_DI(ecap) (((ecap) >> 2) & 0x1) 70 #define VTD_ECAP_COHERENCY(ecap) ((ecap) & 0x1) [all …]
|
| /freebsd-src/sys/amd64/vmm/io/ |
| H A D | iommu.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 46 SYSCTL_NODE(_hw_vmm, OID_AUTO, iommu, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, 51 0, "bhyve iommu initialized?"); 54 SYSCTL_INT(_hw_vmm_iommu, OID_AUTO, enable, CTLFLAG_RDTUN, &iommu_enable, 0, 65 return ((*ops->init)()); in IOMMU_INIT() 74 (*ops->cleanup)(); in IOMMU_CLEANUP() 82 return ((*ops->create_domain)(maxaddr)); in IOMMU_CREATE_DOMAIN() 92 (*ops->destroy_domain)(dom); in IOMMU_DESTROY_DOMAIN() 96 IOMMU_CREATE_MAPPING(void *domain, vm_paddr_t gpa, vm_paddr_t hpa, uint64_t len) in IOMMU_CREATE_MAPPING() argument [all …]
|
| H A D | ppt.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 59 * If the MSI-X table is located in the middle of a BAR then that MMIO 60 * region gets split into two segments - one segment above the MSI-X table 61 * and the other segment below the MSI-X table - wit 77 vm_paddr_t gpa; global() member 346 ppt_is_mmio(struct vm * vm,vm_paddr_t gpa) ppt_is_mmio() argument 458 ppt_map_mmio(struct vm * vm,int bus,int slot,int func,vm_paddr_t gpa,size_t len,vm_paddr_t hpa) ppt_map_mmio() argument 491 ppt_unmap_mmio(struct vm * vm,int bus,int slot,int func,vm_paddr_t gpa,size_t len) ppt_unmap_mmio() argument [all...] |
| H A D | vioapic.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 51 #define IOREGSEL 0x00 52 #define IOWIN 0x10 64 int acnt; /* sum of pin asserts (+1) and deasserts (-1) */ 68 #define VIOAPIC_LOCK(vioapic) mtx_lock_spin(&((vioapic)->mtx)) 69 #define VIOAPIC_UNLOCK(vioapic) mtx_unlock_spin(&((vioapic)->mt 392 vioapic_mmio_rw(struct vioapic * vioapic,struct vcpu * vcpu,uint64_t gpa,uint64_t * data,int size,bool doread) vioapic_mmio_rw() argument 430 vioapic_mmio_read(struct vcpu * vcpu,uint64_t gpa,uint64_t * rval,int size,void * arg) vioapic_mmio_read() argument 442 vioapic_mmio_write(struct vcpu * vcpu,uint64_t gpa,uint64_t wval,int size,void * arg) vioapic_mmio_write() argument [all...] |
| /freebsd-src/sys/amd64/include/ |
| H A D | vmm_instruction_emul.h | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 37 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa, 40 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa, 47 * containing 'gpa'. 'mrarg' is an opaque argument that is passed into the 54 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, 62 * Returns 1 if an alignment check exception should be injected and 0 otherwis [all...] |
| H A D | vmm.h | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 114 #define VM_INTINFO_VECTOR(info) ((info) & 0xff) 115 #define VM_INTINFO_DEL_ERRCODE 0x800 116 #define VM_INTINFO_RSVD 0x7ffff000 117 #define VM_INTINFO_VALID 0x80000000 118 #define VM_INTINFO_TYPE 0x70 459 uint64_t gpa; global() member 702 uint64_t gpa; global() member 706 uint64_t gpa; global() member [all...] |
| H A D | vmm_dev.h | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 36 vm_paddr_t gpa; 43 #define VM_MEMMAP_F_WIRED 0x01 44 #define VM_MEMMAP_F_IOMMU 0x02 47 vm_paddr_t gpa; 51 #define VM_MEMSEG_NAME(m) ((m)->nam member 40 vm_paddr_t gpa; global() member 144 vm_paddr_t gpa; global() member 194 uint64_t gpa; /* in */ global() member 213 uint64_t gpa; global() member 255 uint64_t gpa; global() member [all...] |
| /freebsd-src/sys/arm64/include/ |
| H A D | vmm.h | 52 VM_REG_GUEST_X0 = 0, 95 #define VM_INTINFO_VECTOR(info) ((info) & 0xff) 96 #define VM_INTINFO_DEL_ERRCODE 0x800 97 #define VM_INTINFO_RSVD 0x7ffff000 98 #define VM_INTINFO_VALID 0x80000000 99 #define VM_INTINFO_TYPE 0x700 100 #define VM_INTINFO_HWINTR (0 << 8) 105 #define VM_GUEST_BASE_IPA 0x80000000UL /* Guest kernel start ipa */ 126 (SPECNAMELEN - VM_MAX_PREFIXLEN - VM_MAX_SUFFIXLE 253 uint64_t gpa; global() member 335 uint64_t gpa; global() member 339 uint64_t gpa; global() member [all...] |
| /freebsd-src/usr.sbin/bhyve/amd64/ |
| H A D | pci_gvt-d.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 21 #include "pci_gvt-d-opregion.h" 32 #define PCI_VENDOR_INTEL 0x8086 34 #define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */ 35 #define PCIR_ASLS_CTL 0xFC /* Opregion start address register */ 38 0x00100000 /* Graphics Stolen Memory is 1 MB aligned */ 40 #define GVT_D_MAP_GSM 0 50 sc = pi->pi_arg; in gvt_d_probe() 52 vendor = pci_host_read_config(passthru_get_sel(sc), PCIR_VENDOR, 0x02); in gvt_d_probe() [all …]
|
| /freebsd-src/sys/contrib/device-tree/src/arm/samsung/ |
| H A D | s3c64xx-pinctrl.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 4 * - pin control-related definitions 8 * Samsung's S3C64xx SoCs pin banks, pin-mux and pin-config options are 12 #include "s3c64xx-pinctrl.h" 19 gpa: gpa-gpio-bank { label 20 gpio-controller; 21 #gpio-cells = <2>; 22 interrupt-controller; 23 #interrupt-cells = <2>; 26 gpb: gpb-gpio-bank { [all …]
|
| /freebsd-src/sys/dev/hyperv/netvsc/ |
| H A D | hn_nvs.h | 1 /*- 2 * Copyright (c) 2009-2012,2016-2017 Microsoft Corp. 3 * Copyright (c) 2010-2012 Citrix Inc. 55 sndc->hn_cb = cb; in hn_nvs_sendctx_init() 56 sndc->hn_cbarg = cbarg; in hn_nvs_sendctx_init() 79 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa, int gpa_cnt) in hn_nvs_send_rndis_sglist() argument 86 rndis.nvs_chim_sz = 0; in hn_nvs_send_rndis_sglist() 88 return (hn_nvs_send_sglist(chan, gpa, gpa_cnt, in hn_nvs_send_rndis_sglist() 99 struct hn_nvs_sendctx *sndc, struct vmbus_gpa *gpa,
|
| /freebsd-src/sys/amd64/vmm/amd/ |
| H A D | amdvi_hw.c | 1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 63 #define MOD_DEC(a, s, m) (((a) - (s)) % ((m) * (s))) 77 0, NULL); 79 static int amdvi_enable_user = 0; 81 &amdvi_enable_user, 0, NULL); 88 &amdvi_enable_iotlb, 0, NUL 1073 amdvi_set_pt(uint64_t * pt,int level,vm_paddr_t gpa,vm_paddr_t hpa,uint64_t pg_size,bool create) amdvi_set_pt() argument 1131 amdvi_update_mapping(struct amdvi_domain * domain,vm_paddr_t gpa,vm_paddr_t hpa,uint64_t size,bool create) amdvi_update_mapping() argument 1159 amdvi_create_mapping(void * arg,vm_paddr_t gpa,vm_paddr_t hpa,uint64_t len) amdvi_create_mapping() argument 1182 amdvi_remove_mapping(void * arg,vm_paddr_t gpa,uint64_t len) amdvi_remove_mapping() argument [all...] |