NetBSD 1.6M に上げたら、また vmware-modules がコンパイルできなくなっ た。NetBSD 1.6H以降用の vmware-modules からの差分。
diff -uarN source/vmmon/include/x86.h make/vmware/source/vmmon/include/x86.h
--- source/vmmon/include/x86.h Sun Oct 20 20:26:03 2002
+++ make/vmware/source/vmmon/include/x86.h Tue Jan 21 05:16:12 2003
@@ -180,9 +180,11 @@
#define MSR_TSC 0x00000010
#endif
#define MSR_MTRR_CAP 0x000000fe
+#if __NetBSD_Version__ <= 106120000
#define MSR_SYSENTER_CS 0x00000174
#define MSR_SYSENTER_ESP 0x00000175
#define MSR_SYSENTER_EIP 0x00000176
+#endif
typedef uint32 CReg;
diff -uarN source/vmmon/netbsd/drv.c make/vmware/source/vmmon/netbsd/drv.c
--- source/vmmon/netbsd/drv.c Tue Sep 24 13:47:58 2002
+++ make/vmware/source/vmmon/netbsd/drv.c Tue Jan 21 05:18:08 2003
@@ -680,6 +680,6 @@
vWarning(vm);
}
- exit1(curproc, 0);
+ exit1((void*)curproc, 0);
/* NOTREACHED */
}
diff -uarN source/vmmon/netbsd/host.c make/vmware/source/vmmon/netbsd/host.c
--- source/vmmon/netbsd/host.c Thu Dec 27 12:49:36 2001
+++ make/vmware/source/vmmon/netbsd/host.c Mon Jan 20 21:52:03 2003
@@ -635,7 +635,11 @@
if (vm->crossvaddr != NULL)
Warning("KernelAddr already allocated\n");
+#if __NetBSD_Version__ <= 106120000
PHOLD(curproc);
+#else
+ PHOLD((struct lwp *)curproc);
+#endif
uvm_vslock(curproc, addr, PAGE_SIZE,
VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE);
@@ -644,7 +648,11 @@
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);
+#if __NetBSD_Version__ <= 106120000
PRELE(curproc);
+#else
+ PRELE((struct lwp *)curproc);
+#endif
vm->crossvaddr = (void *)kvaddr;
vm->crossuaddr = addr;
#ifdef DEBUG
んでもって、
vmware-modules-20030120.tar.gz
当然無保証。