}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
+ int ret=1;
struct afs_event *evp;
evp = afs_getevent(event);
if (evp->refcount > 1) {
evp->seq++;
e_wakeup(&evp->cond);
+ ret=0;
}
relevent(evp);
+ return ret;
}
}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
struct afs_event *evp;
-
+ int ret=1;
+
evp = afs_getevent(event);
if (evp->refcount > 1) {
evp->seq++;
#else
thread_wakeup((event_t)event);
#endif
+ ret=0;
}
relevent(evp);
+ return ret;
}
}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
+ int ret=1;
struct afs_event *evp;
-
+
evp = afs_getevent(event);
if (evp->refcount > 1) {
evp->seq++;
thread_wakeup((vm_offset_t)(&evp->cond));
+ ret=0;
}
relevent(evp);
+ return ret;
}
}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
+ int ret=1;
struct afs_event *evp;
evp = afs_getevent(event);
if (evp->refcount > 1) {
evp->seq++;
wakeup(event);
+ ret=0;
}
relevent(evp);
+ return ret;
}
*/
#define afs_osi_Sleep(x) sleep((caddr_t) x,PZERO-2)
-#define afs_osi_Wakeup(x) wakeup((caddr_t) x)
#define osi_NullHandle(x) ((x)->proc == (caddr_t) 0)
extern caddr_t kmem_alloc();
afs_osi_Sleep(event);
return 0;
}
+
+int afs_osi_Wakeup(void *event)
+{
+ wakeup((caddr_t) event);
+ return 0;
+}
}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
+ int ret=1;
struct afs_event *evp;
evp = afs_getevent(event);
if (evp->refcount > 1) {
evp->seq++;
cv_broadcast(&evp->cond);
+ ret=0;
}
relevent(evp);
+ return ret;
}
}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
+ int ret=2;
struct afs_event *evp;
evp = afs_getevent(event);
if (!evp) /* No sleepers */
- return;
+ return 1;
if (evp->refcount > 1) {
evp->seq++;
wake_up(&evp->cond);
+ ret=0;
}
relevent(evp);
+ return ret;
}
}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
+ int ret=1;
struct afs_event *evp;
evp = afs_getevent(event);
if (evp->refcount > 1) {
evp->seq++;
thread_wakeup((vm_offset_t)(&evp->cond));
+ ret=0;
}
relevent(evp);
+ return ret;
}
}
-void afs_osi_Wakeup(void *event)
+int afs_osi_Wakeup(void *event)
{
+ int ret=1;
struct afs_event *evp;
evp = afs_getevent(event);
if (evp->refcount > 1) {
evp->seq++;
cv_broadcast(&evp->cond);
+ ret=0;
}
relevent(evp);
+ return 0;
}
abase += tlen;
length -= tlen;
adc->validPos = abase;
-#ifdef AFS_AIX_ENV
if (afs_osi_Wakeup(&adc->validPos) == 0)
afs_Trace4(afs_iclSetp, CM_TRACE_DCACHEWAKE,
ICL_TYPE_STRING, __FILE__,
ICL_TYPE_INT32, __LINE__,
ICL_TYPE_POINTER, adc,
ICL_TYPE_INT32, adc->dflags);
-#else
- afs_osi_Wakeup(&adc->validPos);
-#endif
}
} while (moredata);
osi_FreeLargeSpace(tbuffer);
tdc->validPos = Position; /* which is AFS_CHUNKBASE(abyte) */
if (tdc->mflags & DFFetchReq) {
tdc->mflags &= ~DFFetchReq;
-#ifdef AFS_AIX_ENV
if (afs_osi_Wakeup(&tdc->validPos) == 0)
afs_Trace4(afs_iclSetp, CM_TRACE_DCACHEWAKE,
ICL_TYPE_STRING, __FILE__,
ICL_TYPE_INT32, __LINE__,
ICL_TYPE_POINTER, tdc,
ICL_TYPE_INT32, tdc->dflags);
-#else
- afs_osi_Wakeup(&tdc->validPos);
-#endif
}
tsmall = (struct tlocal1 *) osi_AllocLargeSpace(sizeof(struct tlocal1));
setVcacheStatus = 0;
#endif /* AFS_NOSTATS */
tdc->dflags &= ~DFFetching;
-#ifdef AFS_AIX_ENV
if (afs_osi_Wakeup(&tdc->validPos) == 0)
afs_Trace4(afs_iclSetp, CM_TRACE_DCACHEWAKE,
ICL_TYPE_STRING, __FILE__,
ICL_TYPE_INT32, __LINE__,
ICL_TYPE_POINTER, tdc,
ICL_TYPE_INT32, tdc->dflags);
-#else
- afs_osi_Wakeup(&tdc->validPos);
-#endif
if (avc->execsOrWriters == 0) tdc->f.states &= ~DWriting;
/* now, if code != 0, we have an error and should punt.
extern void afs_osi_CancelWait(struct afs_osi_WaitHandle *achandle);
extern int afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok);
#ifndef afs_osi_Wakeup
-extern void afs_osi_Wakeup(void *event);
+extern int afs_osi_Wakeup(void *event);
#endif
#ifndef afs_osi_Sleep
extern void afs_osi_Sleep(void *event);
#define OSI_NULLSOCKET ((osi_socket) 0)
#if (!defined(AFS_GLOBAL_SUNLOCK) && !defined(RX_ENABLE_LOCKS))
-#define RX_KERNEL_TRACE 1
-#ifdef RX_KERNEL_TRACE
#include "../afs/icl.h"
#include "../afs/afs_trace.h"
-#ifdef AFS_AIX_ENV
+#endif
#define osi_rxSleep(a) afs_Trace2(afs_iclSetp, CM_TRACE_RXSLEEP, \
ICL_TYPE_STRING, __FILE__, ICL_TYPE_INT32, __LINE__); afs_osi_Sleep(a)
#define osi_rxWakeup(a) if (afs_osi_Wakeup(a) == 0) afs_Trace2(afs_iclSetp, \
CM_TRACE_RXWAKE, ICL_TYPE_STRING, __FILE__, ICL_TYPE_INT32, __LINE__)
-#else
-#define osi_rxSleep(a) afs_osi_Sleep(a)
-#define osi_rxWakeup(a) afs_osi_Wakeup(a)
-#endif
-#else /* RX_KERNEL_TRACE */
-#define osi_rxSleep(a) afs_osi_Sleep(a)
-#define osi_rxWakeup(a) afs_osi_Wakeup(a)
-#endif /* RX_KERNEL_TRACE */
-#else /* AFS_GLOBAL_SUNLOCK || RX_ENABLE_LOCKS */
-#define osi_rxSleep(a) afs_osi_Sleep(a)
-#define osi_rxWakeup(a) afs_osi_Wakeup(a)
-#endif
extern int osi_utoa(char *buf, size_t len, unsigned long val);
#define osi_Assert(e) (void)((e) || (osi_AssertFailK(#e, __FILE__, __LINE__), 0))