summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_umtx.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2010-01-09 06:05:31 +0000
committerdavidxu <davidxu@FreeBSD.org>2010-01-09 06:05:31 +0000
commitb4d682588bf80d2a55e8f089f2b053ef767ef8d3 (patch)
treef23f9836599ed7bba36b5b040e15bd28f10787a9 /sys/kern/kern_umtx.c
parentc74318c2e33ba84d1619a726e45a26870b350fcf (diff)
downloadFreeBSD-src-b4d682588bf80d2a55e8f089f2b053ef767ef8d3.zip
FreeBSD-src-b4d682588bf80d2a55e8f089f2b053ef767ef8d3.tar.gz
Add key type TYPE_SEM.
Diffstat (limited to 'sys/kern/kern_umtx.c')
-rw-r--r--sys/kern/kern_umtx.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c
index 2e2af2b..6231340 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);
OpenPOWER on IntegriCloud