From 2c3b3fef3604899e982112cab8accfc1fdcec8c7 Mon Sep 17 00:00:00 2001 From: David Xu Date: Sat, 9 Jan 2010 06:05:31 +0000 Subject: [PATCH] Add key type TYPE_SEM. --- sys/kern/kern_umtx.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 2e2af2bc1cc5..62313403c68a 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -59,12 +59,13 @@ __FBSDID("$FreeBSD$"); #endif #define TYPE_SIMPLE_WAIT 0 -#define TYPE_CV 1 -#define TYPE_SIMPLE_LOCK 2 -#define TYPE_NORMAL_UMUTEX 3 -#define TYPE_PI_UMUTEX 4 -#define TYPE_PP_UMUTEX 5 -#define TYPE_RWLOCK 6 +#define TYPE_CV (TYPE_SIMPLE_WAIT+1) +#define TYPE_SEM (TYPE_CV+1) +#define TYPE_SIMPLE_LOCK (TYPE_SEM+1) +#define TYPE_NORMAL_UMUTEX (TYPE_SIMPLE_LOCK+1) +#define TYPE_PI_UMUTEX (TYPE_NORMAL_UMUTEX+1) +#define TYPE_PP_UMUTEX (TYPE_PI_UMUTEX+1) +#define TYPE_RWLOCK (TYPE_PP_UMUTEX+1) #define _UMUTEX_TRY 1 #define _UMUTEX_WAIT 2 @@ -2770,7 +2771,7 @@ do_sem_wait(struct thread *td, struct _usem *sem, struct timespec *timeout) uq = td->td_umtxq; flags = fuword32(&sem->_flags); - error = umtx_key_get(sem, TYPE_CV, GET_SHARE(flags), &uq->uq_key); + error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &uq->uq_key); if (error != 0) return (error); umtxq_lock(&uq->uq_key); @@ -2845,7 +2846,7 @@ do_sem_wake(struct thread *td, struct _usem *sem) uint32_t flags; flags = fuword32(&sem->_flags); - if ((error = umtx_key_get(sem, TYPE_CV, GET_SHARE(flags), &key)) != 0) + if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) return (error); umtxq_lock(&key); umtxq_busy(&key);