pkgsrc/emulators/vmware-module/patches/patch-ad
obache 8427aa0d23 Fixed build problem on NetBSD 3.x (PR 36632) and NetBSD 2.x (PR 25474).
Almost of patches are inspired by emulators/vmware-module3.
2007-07-31 14:44:02 +00:00

45 lines
1.2 KiB
Text

$NetBSD: patch-ad,v 1.5 2007/07/31 14:44:03 obache Exp $
--- source/vmmon/netbsd/host.c.orig 2003-02-16 21:28:36.000000000 +0900
+++ source/vmmon/netbsd/host.c
@@ -60,6 +60,13 @@ lyaev Exp $
extern vm_map_t kernel_map;
#endif
+/* use curproc for pre-nathanw-sa world, curlwp post */
+#if __NetBSD_Version__ >= 106130000
+#define CURLWP curlwp /* new world order */
+#else
+#define CURLWP curproc /* old world order */
+#endif
+
#include "x86.h"
#include "vm_types.h"
#include "vm_assert.h"
@@ -272,7 +279,7 @@ HostIF_InitFP(VMDriver *vm)
if (!(val & mask)) {
val = val | mask;
- outb(val,0xA1);
+ outb(0xA1,val);
}
#endif
}
@@ -635,7 +642,7 @@ HostIF_UserToDriverPtr(VMDriver *vm, voi
if (vm->crossvaddr != NULL)
Warning("KernelAddr already allocated\n");
- PHOLD(curproc);
+ PHOLD(CURLWP);
uvm_vslock(curproc, addr, PAGE_SIZE,
VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE);
@@ -644,7 +651,7 @@ HostIF_UserToDriverPtr(VMDriver *vm, voi
pmap_extract(vm_map_pmap(&curproc->p_vmspace->vm_map), uaddr, &paddr);
pmap_kenter_pa(kvaddr, paddr,
VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE);
- PRELE(curproc);
+ PRELE(CURLWP);
vm->crossvaddr = (void *)kvaddr;
vm->crossuaddr = addr;
#ifdef DEBUG