From owner-p4-projects@FreeBSD.ORG Mon Dec 4 16:44:54 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0A93816A5D1; Mon, 4 Dec 2006 16:44:54 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BF8DB16A590 for ; Mon, 4 Dec 2006 16:44:53 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id BBAAB43CBD for ; Mon, 4 Dec 2006 16:39:09 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kB4GdhdW059225 for ; Mon, 4 Dec 2006 16:39:43 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kB4Gdgoo059222 for perforce@freebsd.org; Mon, 4 Dec 2006 16:39:42 GMT (envelope-from millert@freebsd.org) Date: Mon, 4 Dec 2006 16:39:42 GMT Message-Id: <200612041639.kB4Gdgoo059222@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 111025 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Dec 2006 16:44:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=111025 Change 111025 by millert@millert_g5tower on 2006/12/04 16:38:58 Export the posix sem/shm subsystem locks. Use struct definitions in the header files instead of duplicating them in the .c files. Affected files ... .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/posix_sem.c#6 edit .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/posix_shm.c#6 edit .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/sys/posix_sem.h#4 edit .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/sys/posix_shm.h#4 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/posix_sem.c#6 (text+ko) ==== @@ -65,6 +65,7 @@ #include #include #include +#include #include #include @@ -90,30 +91,7 @@ #define f_ops f_fglob->fg_ops #define f_offset f_fglob->fg_offset #define f_data f_fglob->fg_data -#define PSEMNAMLEN 31 /* maximum name segment length we bother with */ - -struct pseminfo { - unsigned int psem_flags; - unsigned int psem_usecount; - mode_t psem_mode; - uid_t psem_uid; - gid_t psem_gid; - char psem_name[PSEMNAMLEN + 1]; /* segment name */ - semaphore_t psem_semobject; - struct proc * sem_proc; - struct label * psem_label; -}; -#define PSEMINFO_NULL (struct pseminfo *)0 -#define PSEM_NONE 1 -#define PSEM_DEFINED 2 -#define PSEM_ALLOCATED 4 -#define PSEM_MAPPED 8 -#define PSEM_INUSE 0x10 -#define PSEM_REMOVED 0x20 -#define PSEM_INCREATE 0x40 -#define PSEM_INDELETE 0x80 - struct psemcache { LIST_ENTRY(psemcache) psem_hash; /* hash chain */ struct pseminfo *pseminfo; /* vnode the name refers to */ @@ -183,10 +161,7 @@ static lck_grp_t *psx_sem_subsys_lck_grp; static lck_grp_attr_t *psx_sem_subsys_lck_grp_attr; static lck_attr_t *psx_sem_subsys_lck_attr; -static lck_mtx_t psx_sem_subsys_mutex; - -#define PSEM_SUBSYS_LOCK() lck_mtx_lock(& psx_sem_subsys_mutex) -#define PSEM_SUBSYS_UNLOCK() lck_mtx_unlock(& psx_sem_subsys_mutex) + lck_mtx_t psx_sem_subsys_mutex; static int psem_cache_add(struct pseminfo *psemp, struct psemname *pnp, struct psemcache *pcp); ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/posix_shm.c#6 (text+ko) ==== @@ -67,6 +67,7 @@ #include #include #include +#include #include @@ -93,35 +94,7 @@ #define f_ops f_fglob->fg_ops #define f_offset f_fglob->fg_offset #define f_data f_fglob->fg_data -#define PSHMNAMLEN 31 /* maximum name segment length we bother with */ - -struct pshminfo { - unsigned int pshm_flags; - unsigned int pshm_usecount; - off_t pshm_length; - mode_t pshm_mode; - uid_t pshm_uid; - gid_t pshm_gid; - char pshm_name[PSHMNAMLEN + 1]; /* segment name */ - void * pshm_memobject; -#if DIAGNOSTIC - unsigned int pshm_readcount; - unsigned int pshm_writecount; - struct proc * pshm_proc; -#endif /* DIAGNOSTIC */ - struct label* pshm_label; -}; -#define PSHMINFO_NULL (struct pshminfo *)0 -#define PSHM_NONE 1 -#define PSHM_DEFINED 2 -#define PSHM_ALLOCATED 4 -#define PSHM_MAPPED 8 -#define PSHM_INUSE 0x10 -#define PSHM_REMOVED 0x20 -#define PSHM_INCREATE 0x40 -#define PSHM_INDELETE 0x80 - struct pshmcache { LIST_ENTRY(pshmcache) pshm_hash; /* hash chain */ struct pshminfo *pshminfo; /* vnode the name refers to */ @@ -193,10 +166,7 @@ static lck_grp_t *psx_shm_subsys_lck_grp; static lck_grp_attr_t *psx_shm_subsys_lck_grp_attr; static lck_attr_t *psx_shm_subsys_lck_attr; -static lck_mtx_t psx_shm_subsys_mutex; - -#define PSHM_SUBSYS_LOCK() lck_mtx_lock(& psx_shm_subsys_mutex) -#define PSHM_SUBSYS_UNLOCK() lck_mtx_unlock(& psx_shm_subsys_mutex) + lck_mtx_t psx_shm_subsys_mutex; /* Initialize the mutex governing access to the posix shm subsystem */ ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/sys/posix_sem.h#4 (text+ko) ==== @@ -76,4 +76,10 @@ #define PSEM_INCREATE 0x40 #define PSEM_INDELETE 0x80 +#ifdef KERNEL +extern lck_mtx_t psx_sem_subsys_mutex; +#define PSEM_SUBSYS_LOCK() lck_mtx_lock(& psx_sem_subsys_mutex) +#define PSEM_SUBSYS_UNLOCK() lck_mtx_unlock(& psx_sem_subsys_mutex) +#endif + #endif ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/sys/posix_shm.h#4 (text+ko) ==== @@ -80,4 +80,10 @@ #define PSHM_INCREATE 0x40 #define PSHM_INDELETE 0x80 +#ifdef KERNEL +extern lck_mtx_t psx_shm_subsys_mutex; +#define PSHM_SUBSYS_LOCK() lck_mtx_lock(& psx_shm_subsys_mutex) +#define PSHM_SUBSYS_UNLOCK() lck_mtx_unlock(& psx_shm_subsys_mutex) +#endif /* KERNEL */ + #endif