Skip site navigation (1)Skip section navigation (2)
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>