Index: memobj-r0drv-freebsd.c =================================================================== --- memobj-r0drv-freebsd.c (revision 19283) +++ memobj-r0drv-freebsd.c (working copy) @@ -617,7 +617,11 @@ { vm_page_t Page = PHYS_TO_VM_PAGE(vtophys(AddrToMap)); +#if __FreeBSD_version >= 800009 + pmap_enter(pPhysicalMap, AddrR3Dst, VM_PROT_NONE, Page, ProtectionFlags, TRUE); +#else pmap_enter(pPhysicalMap, AddrR3Dst, Page, ProtectionFlags, TRUE); +#endif AddrToMap += PAGE_SIZE; AddrR3Dst += PAGE_SIZE; } Index: thread2-r0drv-freebsd.c =================================================================== --- thread2-r0drv-freebsd.c (revision 19283) +++ thread2-r0drv-freebsd.c (working copy) @@ -111,7 +111,11 @@ rc = rtThreadMain(pThreadInt, (RTNATIVETHREAD)Self, &pThreadInt->szName[0]); +#if __FreeBSD_version >= 800002 + kproc_exit(rc); +#else kthread_exit(rc); +#endif } @@ -120,7 +124,11 @@ int rc; struct proc *pProc; +#if __FreeBSD_version >= 800002 + rc = kproc_create(rtThreadNativeMain, pThreadInt, &pProc, RFHIGHPID, 0, "%s", pThreadInt->szName); +#else rc = kthread_create(rtThreadNativeMain, pThreadInt, &pProc, RFHIGHPID, 0, "%s", pThreadInt->szName); +#endif if (!rc) { *pNativeThread = (RTNATIVETHREAD)FIRST_THREAD_IN_PROC(pProc);