2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
11 * rx_kmutex.c - mutex and condition variable macros for kernel environment.
13 * Solaris implementation.
16 #include <afsconfig.h>
17 #include "afs/param.h"
21 #if defined(AFS_SUN5_ENV) && defined(KERNEL)
23 #include "rx/rx_kcommon.h"
24 #include "rx_kmutex.h"
25 #include "rx/rx_kernel.h"
28 #include <sys/tiuser.h>
29 #include <sys/t_lock.h>
30 #include <sys/mutex.h>
33 int afs_cv_wait(cv, m, sigok, fileid, line)
37 int afs_cv_wait(cv, m, sigok)
43 int haveGlock = ISAFS_GLOCK();
49 rxdb_droplock(m, osi_ThreadUnique(), fileid, line);
52 if (cv_wait_sig(cv, m) == 0)
58 rxdb_grablock(m, osi_ThreadUnique(), fileid, line);
69 int afs_cv_timedwait(cv, m, t, sigok, fileid, line)
73 int afs_cv_timedwait(cv, m, t, sigok)
80 int haveGlock = ISAFS_GLOCK();
86 rxdb_droplock(m, osi_ThreadUnique(), fileid, line);
89 if (cv_timedwait_sig(cv, m, t) == 0)
92 cv_timedwait(cv, m, t);
95 rxdb_grablock(m, osi_ThreadUnique(), fileid, line);
105 #endif /* SUN5 && KERNEL */