Index: sys/cddl/compat/opensolaris/sys/mutex.h =================================================================== RCS file: /zoo/cvsup/FreeBSD-CVS/src/sys/cddl/compat/opensolaris/sys/mutex.h,v retrieving revision 1.7 diff -u -p -r1.7 mutex.h --- sys/cddl/compat/opensolaris/sys/mutex.h 29 May 2009 01:49:27 -0000 1.7 +++ sys/cddl/compat/opensolaris/sys/mutex.h 19 Aug 2009 20:48:20 -0000 @@ -32,9 +32,9 @@ #ifdef _KERNEL #include -#include #include #include_next +#include #include typedef enum { Index: sys/cddl/compat/opensolaris/sys/proc.h =================================================================== RCS file: /zoo/cvsup/FreeBSD-CVS/src/sys/cddl/compat/opensolaris/sys/proc.h,v retrieving revision 1.6 diff -u -p -r1.6 proc.h --- sys/cddl/compat/opensolaris/sys/proc.h 17 Nov 2008 20:49:29 -0000 1.6 +++ sys/cddl/compat/opensolaris/sys/proc.h 19 Aug 2009 20:57:56 -0000 @@ -34,13 +34,16 @@ #include_next #include #include +#include +#include +#include #include #ifdef _KERNEL #define CPU curcpu -#define minclsyspri 0 -#define maxclsyspri 0 +#define minclsyspri PRIBIO +#define maxclsyspri PVM #define max_ncpus mp_ncpus #define boot_max_ncpus mp_ncpus @@ -58,6 +61,7 @@ static __inline kthread_t * thread_create(caddr_t stk, size_t stksize, void (*proc)(void *), void *arg, size_t len, proc_t *pp, int state, pri_t pri) { + struct thread *td; proc_t *p; int error; @@ -70,7 +74,15 @@ thread_create(caddr_t stk, size_t stksiz error = kproc_create(proc, arg, &p, 0, stksize / PAGE_SIZE, "solthread %p", proc); - return (error == 0 ? FIRST_THREAD_IN_PROC(p) : NULL); + if (error != 0) + td = NULL; + else { + td = FIRST_THREAD_IN_PROC(p); + thread_lock(td); + sched_prio(td, pri); + thread_unlock(td); + } + return (td); } #define thread_exit() kproc_exit(0)