Date: Sat, 23 Jan 2010 08:45:22 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r202877 - user/kmacy/releng_8_rump/lib/libunet/unet_sys Message-ID: <201001230845.o0N8jM2f052673@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Sat Jan 23 08:45:22 2010 New Revision: 202877 URL: http://svn.freebsd.org/changeset/base/202877 Log: emulate kproc_kthread_add Modified: user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_compat.c user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_kern_intr.c Modified: user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_compat.c ============================================================================== --- user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_compat.c Sat Jan 23 08:43:21 2010 (r202876) +++ user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_compat.c Sat Jan 23 08:45:22 2010 (r202877) @@ -6,7 +6,10 @@ #include <sys/refcount.h> #include <sys/ucred.h> #include <sys/time.h> +#include <sys/proc.h> + +#include <pthread.h> struct malloc_type; vm_offset_t kmem_malloc(void * map, int bytes, int wait); @@ -95,5 +98,20 @@ getmicrotime(struct timeval *tvp) gettimeofday(&tv, NULL); } +int +kproc_kthread_add(void (*start_routine)(void *), void *arg, + struct proc **p, struct thread **td, + int flags, int pages, + char * procname, const char *str, ...) +{ + int error; + pthread_t thread; + pthread_attr_t attr; + *td = malloc(sizeof(struct thread)); + pthread_attr_init(&attr); + + error = pthread_create(&thread, &attr, start_routine, arg); + return (error); +} Modified: user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_kern_intr.c ============================================================================== --- user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_kern_intr.c Sat Jan 23 08:43:21 2010 (r202876) +++ user/kmacy/releng_8_rump/lib/libunet/unet_sys/unet_kern_intr.c Sat Jan 23 08:45:22 2010 (r202877) @@ -361,15 +361,16 @@ ithread_create(const char *name) ithd = malloc(sizeof(struct intr_thread), M_ITHREAD, M_WAITOK | M_ZERO); -#ifdef notyet error = kproc_kthread_add(ithread_loop, ithd, &intrproc, &td, RFSTOPPED | RFHIGHPID, 0, "intr", "%s", name); + + if (error) panic("kproc_create() failed with %d", error); td->td_pflags |= TDP_ITHREAD; ithd->it_thread = td; -#endif + CTR2(KTR_INTR, "%s: created %s", __func__, name); return (ithd); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001230845.o0N8jM2f052673>