From owner-p4-projects@FreeBSD.ORG Thu Apr 28 22:46:53 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1356216A4D0; Thu, 28 Apr 2005 22:46:53 +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 C46DA16A4CE for ; Thu, 28 Apr 2005 22:46:52 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 84F1F43D55 for ; Thu, 28 Apr 2005 22:46:52 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j3SMkq16085172 for ; Thu, 28 Apr 2005 22:46:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j3SMkq36085169 for perforce@freebsd.org; Thu, 28 Apr 2005 22:46:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 28 Apr 2005 22:46:52 GMT Message-Id: <200504282246.j3SMkq36085169@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 76163 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, 28 Apr 2005 22:46:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=76163 Change 76163 by rwatson@rwatson_paprika on 2005/04/28 22:46:32 Slight POSIX semaphore cleanups before larger cleanup. Affected files ... .. //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#23 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/kern/uipc_sem.c#23 (text+ko) ==== @@ -54,13 +54,11 @@ #include #include #include +#include #include #include -#ifdef MAC -#include + #include -#endif - #include #include #include @@ -68,7 +66,7 @@ static int sem_count_proc(struct proc *p); static struct ksem *sem_lookup_byname(const char *name); static int sem_create(struct thread *td, const char *name, -struct ksem **ksret, mode_t mode, unsigned int value); + struct ksem **ksret, mode_t mode, unsigned int value); static void sem_free(struct ksem *ksnew, int checkrefs); static int sem_perm(struct thread *td, struct ksem *ks); static void sem_enter(struct proc *p, struct ksem *ks); @@ -109,32 +107,6 @@ SEM_FREE((ksem)); \ } while (0) -#ifndef MAC -struct kuser { - pid_t ku_pid; - LIST_ENTRY(kuser) ku_next; -}; - -struct ksem { - LIST_ENTRY(ksem) ks_entry; /* global list entry */ - int ks_onlist; /* boolean if on a list (ks_entry) */ - char *ks_name; /* if named, this is the name */ - int ks_ref; /* number of references */ - mode_t ks_mode; /* protection bits */ - uid_t ks_uid; /* creator uid */ - gid_t ks_gid; /* creator gid */ - unsigned int ks_value; /* current value */ - struct cv ks_cv; /* waiters sleep here */ - int ks_waiters; /* number of waiters */ - LIST_HEAD(, kuser) ks_users; /* pids using this sem */ - struct mtx ks_mtx; /* mutex protecting this semaphore */ - int ks_unlinked; /* Whether the named sem is unlinked */ -}; -#else -struct kuser; -struct ksem; -#endif - /* * available semaphores go here, this includes sem_init and any semaphores * created via sem_open that have not yet been unlinked. @@ -150,9 +122,6 @@ static eventhandler_tag sem_exit_tag, sem_exec_tag, sem_fork_tag; -#ifndef SEM_DEBUG -#define SEM_DEBUG -#endif #ifdef SEM_DEBUG #define DP(x) printf x #else @@ -163,6 +132,7 @@ void sem_ref(struct ksem *ks) { + mtx_assert(&sem_lock, MA_OWNED); ks->ks_ref++; DP(("sem_ref: ks = %p, ref = %d\n", ks, ks->ks_ref)); @@ -924,7 +894,9 @@ val = ks->ks_value; mtx_unlock(&ks->ks_mtx); error = copyout(&val, uap->val, sizeof(val)); +#ifdef MAC err_getvalue: +#endif mtx_lock(&sem_lock); REF_DOWN(ks); mtx_unlock(&sem_lock);