Date: Wed, 8 Jul 2015 12:39:47 GMT From: mihai@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r288086 - soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm Message-ID: <201507081239.t68Cdl1Z012583@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mihai Date: Wed Jul 8 12:39:47 2015 New Revision: 288086 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=288086 Log: soc2015: mihai: bhyve: lib: libvmmapiarm: clean-up unused functions Deleted: soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi_freebsd.c Modified: soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/Makefile soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.c soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.h Modified: soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/Makefile ============================================================================== --- soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/Makefile Wed Jul 8 09:54:17 2015 (r288085) +++ soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/Makefile Wed Jul 8 12:39:47 2015 (r288086) @@ -1,7 +1,7 @@ # $FreeBSD: head/lib/libvmmapi/Makefile 245678 2013-01-20 03:42:49Z neel $ LIB= vmmapiarm -SRCS= vmmapi.c vmmapi_freebsd.c +SRCS= vmmapi.c INCS= vmmapi.h WARNS?= 2 Modified: soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.c ============================================================================== --- soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.c Wed Jul 8 09:54:17 2015 (r288085) +++ soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.c Wed Jul 8 12:39:47 2015 (r288086) @@ -22,12 +22,11 @@ struct vmctx { int fd; - uint32_t lowmem_limit; + uint32_t mem_limit; enum vm_mmap_style vms; - size_t lowmem; - char *lowmem_addr; - size_t highmem; - char *highmem_addr; + size_t mem_size; + uint64_t mem_base; + char *mem_addr; char *name; }; @@ -68,7 +67,7 @@ assert(vm != NULL); vm->fd = -1; - vm->lowmem_limit = 3 * GB; + vm->mem_limit = 2 * GB; vm->name = (char *)(vm + 1); strcpy(vm->name, name); @@ -94,7 +93,7 @@ } int -vm_get_memory_seg(struct vmctx *ctx, vm_paddr_t gpa, size_t *ret_len) +vm_get_memory_seg(struct vmctx *ctx, uint64_t gpa, size_t *ret_len) { int error; struct vm_memory_segment seg; @@ -107,21 +106,21 @@ } uint32_t -vm_get_lowmem_limit(struct vmctx *ctx) +vm_get_mem_limit(struct vmctx *ctx) { - return (ctx->lowmem_limit); + return (ctx->mem_limit); } void -vm_set_lowmem_limit(struct vmctx *ctx, uint32_t limit) +vm_set_mem_limit(struct vmctx *ctx, uint32_t limit) { - ctx->lowmem_limit = limit; + ctx->mem_limit = limit; } static int -setup_memory_segment(struct vmctx *ctx, vm_paddr_t gpa, size_t len, char **addr) +setup_memory_segment(struct vmctx *ctx, uint64_t gpa, size_t len, char **addr) { int error; struct vm_memory_segment seg; @@ -142,7 +141,7 @@ } int -vm_setup_memory(struct vmctx *ctx, size_t memsize, enum vm_mmap_style vms) +vm_setup_memory(struct vmctx *ctx, uint64_t membase, size_t memsize, enum vm_mmap_style vms) { char **addr; int error; @@ -151,28 +150,14 @@ assert(vms == VM_MMAP_NONE || vms == VM_MMAP_ALL); ctx->vms = vms; - /* - * If 'memsize' cannot fit entirely in the 'lowmem' segment then - * create another 'highmem' segment above 4GB for the remainder. - */ - if (memsize > ctx->lowmem_limit) { - ctx->lowmem = ctx->lowmem_limit; - ctx->highmem = memsize - ctx->lowmem; - } else { - ctx->lowmem = memsize; - ctx->highmem = 0; - } + ctx->mem_base = membase; - if (ctx->lowmem > 0) { - addr = (vms == VM_MMAP_ALL) ? &ctx->lowmem_addr : NULL; - error = setup_memory_segment(ctx, 0, ctx->lowmem, addr); - if (error) - return (error); - } + assert(memsize <= ctx->mem_limit); + ctx->mem_size = memsize; - if (ctx->highmem > 0) { - addr = (vms == VM_MMAP_ALL) ? &ctx->highmem_addr : NULL; - error = setup_memory_segment(ctx, 4*GB, ctx->highmem, addr); + if (ctx->mem_size > 0) { + addr = (vms == VM_MMAP_ALL) ? &ctx->mem_addr : NULL; + error = setup_memory_segment(ctx, ctx->mem_base, ctx->mem_size, addr); if (error) return (error); } @@ -181,22 +166,13 @@ } void * -vm_map_gpa(struct vmctx *ctx, vm_paddr_t gaddr, size_t len) +vm_map_gpa(struct vmctx *ctx, uint64_t gaddr, size_t len) { /* XXX VM_MMAP_SPARSE not implemented yet */ assert(ctx->vms == VM_MMAP_ALL); - if (gaddr < ctx->lowmem && gaddr + len <= ctx->lowmem) - return ((void *)(ctx->lowmem_addr + gaddr)); - - if (gaddr >= 4*GB) { - gaddr -= 4*GB; - if (gaddr < ctx->highmem && gaddr + len <= ctx->highmem) - return ((void *)(ctx->highmem_addr + gaddr)); - } - - return (NULL); + return ((void *)(ctx->mem_addr + gaddr)); } @@ -311,49 +287,6 @@ return (ioctl(ctx->fd, VM_SET_CAPABILITY, &vmcap)); } -int -vm_assign_pptdev(struct vmctx *ctx, int bus, int slot, int func) -{ - struct vm_pptdev pptdev; - - bzero(&pptdev, sizeof(pptdev)); - pptdev.bus = bus; - pptdev.slot = slot; - pptdev.func = func; - - return (ioctl(ctx->fd, VM_BIND_PPTDEV, &pptdev)); -} - -int -vm_unassign_pptdev(struct vmctx *ctx, int bus, int slot, int func) -{ - struct vm_pptdev pptdev; - - bzero(&pptdev, sizeof(pptdev)); - pptdev.bus = bus; - pptdev.slot = slot; - pptdev.func = func; - - return (ioctl(ctx->fd, VM_UNBIND_PPTDEV, &pptdev)); -} - -int -vm_map_pptdev_mmio(struct vmctx *ctx, int bus, int slot, int func, - vm_paddr_t gpa, size_t len, vm_paddr_t hpa) -{ - struct vm_pptdev_mmio pptmmio; - - bzero(&pptmmio, sizeof(pptmmio)); - pptmmio.bus = bus; - pptmmio.slot = slot; - pptmmio.func = func; - pptmmio.gpa = gpa; - pptmmio.len = len; - pptmmio.hpa = hpa; - - return (ioctl(ctx->fd, VM_MAP_PPTDEV_MMIO, &pptmmio)); -} - uint64_t * vm_get_stats(struct vmctx *ctx, int vcpu, struct timeval *ret_tv, int *ret_entries) Modified: soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.h ============================================================================== --- soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.h Wed Jul 8 09:54:17 2015 (r288085) +++ soc2015/mihai/bhyve-on-arm-head/lib/libvmmapiarm/vmmapi.h Wed Jul 8 12:39:47 2015 (r288086) @@ -31,10 +31,6 @@ struct vmctx; -#if defined(__amd64__) -enum x2apic_state; -#endif - /* * Different styles of mapping the memory assigned to a VM into the address * space of the controlling process. @@ -48,11 +44,11 @@ int vm_create(const char *name); struct vmctx *vm_open(const char *name); void vm_destroy(struct vmctx *ctx); -int vm_get_memory_seg(struct vmctx *ctx, vm_paddr_t gpa, size_t *ret_len); -int vm_setup_memory(struct vmctx *ctx, size_t len, enum vm_mmap_style s); -void *vm_map_gpa(struct vmctx *ctx, vm_paddr_t gaddr, size_t len); -uint32_t vm_get_lowmem_limit(struct vmctx *ctx); -void vm_set_lowmem_limit(struct vmctx *ctx, uint32_t limit); +int vm_get_memory_seg(struct vmctx *ctx, uint64_t gpa, size_t *ret_len); +int vm_setup_memory(struct vmctx *ctx, uint64_t membase, size_t len, enum vm_mmap_style s); +void *vm_map_gpa(struct vmctx *ctx, uint64_t gaddr, size_t len); +uint32_t vm_get_mem_limit(struct vmctx *ctx); +void vm_set_mem_limit(struct vmctx *ctx, uint32_t limit); int vm_set_register(struct vmctx *ctx, int vcpu, int reg, uint64_t val); int vm_get_register(struct vmctx *ctx, int vcpu, int reg, uint64_t *retval); int vm_run(struct vmctx *ctx, int vcpu, uint64_t rip, @@ -62,10 +58,6 @@ int *retval); int vm_set_capability(struct vmctx *ctx, int vcpu, enum vm_cap_type cap, int val); -int vm_assign_pptdev(struct vmctx *ctx, int bus, int slot, int func); -int vm_unassign_pptdev(struct vmctx *ctx, int bus, int slot, int func); -int vm_map_pptdev_mmio(struct vmctx *ctx, int bus, int slot, int func, - vm_paddr_t gpa, size_t len, vm_paddr_t hpa); /* * Return a pointer to the statistics buffer. Note that this is not MT-safe. @@ -76,11 +68,4 @@ /* Reset vcpu register state */ int vcpu_reset(struct vmctx *ctx, int vcpu); - -/* - * FreeBSD specific APIs - */ -int vm_setup_freebsd_registers(struct vmctx *ctx, int vcpu, - uint64_t pc, uint64_t sp); -void vm_setup_freebsd_gdt(uint64_t *gdtr); #endif /* _VMMAPI_H_ */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201507081239.t68Cdl1Z012583>