From owner-p4-projects@FreeBSD.ORG Thu Apr 14 02:11:47 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E58D716A4D0; Thu, 14 Apr 2005 02:11:45 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8D30A16A4CE for ; Thu, 14 Apr 2005 02:11:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6F11643D5E for ; Thu, 14 Apr 2005 02:11:45 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j3E2BjIW009853 for ; Thu, 14 Apr 2005 02:11:45 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j3E2BjK3009850 for perforce@freebsd.org; Thu, 14 Apr 2005 02:11:45 GMT (envelope-from davidxu@freebsd.org) Date: Thu, 14 Apr 2005 02:11:45 GMT Message-Id: <200504140211.j3E2BjK3009850@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 75116 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2005 02:11:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=75116 Change 75116 by davidxu@davidxu_celeron on 2005/04/14 02:10:51 Create a new thread creating syscall, the syscall create new thread in atomic. Affected files ... .. //depot/projects/davidxu_thread/src/sys/sys/thr.h#4 edit Differences ... ==== //depot/projects/davidxu_thread/src/sys/sys/thr.h#4 (text+ko) ==== @@ -34,13 +34,32 @@ #define THR_SUSPENDED 0x0001 /* Create the system scope thread. */ #define THR_SYSTEM_SCOPE 0x0002 +/* Remember user TID address in kernel, when exits, + write zero to the address and do umtx_wake() + on the address, the pthread_join can use this feature. */ +#define THR_REMBER_TID_ADDRESS 0x0004 +struct thr_param { + void (*start_func)(void *); /* thread entry function. */ + char *stack_base; /* stack base address. */ + size_t stack_size; /* stack size. */ + char *tls_base; /* tls base address. */ + size_t tls_size; /* tls size. */ + int tls_seg; /* which seg is to set for tls. */ + sigset_t sigmask; /* signal mask for new thread. */ + long *child_tid; /* address to store new TID. */ + long parent_tid; /* parent accesses the new TID here. */ + int *user_crit; /* reserved */ + int flags; +}; + /* * See pthread_* */ #ifndef _KERNEL int thr_create(ucontext_t *ctx, long *id, int flags); +int thr_create2(struct thr_param *param, int param_size); int thr_self(long *id); void thr_exit(long *state); int thr_kill(long id, int sig);