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
当然無保証。