#include <afsconfig.h>
#include "../afs/param.h"
-RCSID("$Header: /tmp/cvstemp/openafs/src/afs/LINUX/osi_misc.c,v 1.7 2001/09/11 15:47:37 hartmans Exp $");
+RCSID("$Header: /tmp/cvstemp/openafs/src/afs/LINUX/osi_misc.c,v 1.8 2002/01/28 00:53:20 hartmans Exp $");
#include "../afs/sysincludes.h"
#include "../afs/afsincludes.h"
return;
}
+
+struct task_struct *rxk_ListenerTask;
+
+void osi_linux_mask() {
+ spin_lock_irq(¤t->sigmask_lock);
+ sigfillset(¤t->blocked);
+ recalc_sigpending(current);
+ spin_unlock_irq(¤t->sigmask_lock);
+}
+
+void osi_linux_unmask() {
+ spin_lock_irq(&rxk_ListenerTask->sigmask_lock);
+ sigemptyset(&rxk_ListenerTask->blocked);
+ recalc_sigpending(rxk_ListenerTask);
+ spin_unlock_irq(&rxk_ListenerTask->sigmask_lock);
+}
+
+void osi_linux_rxkreg() {
+ rxk_ListenerTask = current;
+}
#include <afsconfig.h>
#include "../afs/param.h"
-RCSID("$Header: /tmp/cvstemp/openafs/src/afs/afs_call.c,v 1.9 2002/01/22 20:29:43 hartmans Exp $");
+RCSID("$Header: /tmp/cvstemp/openafs/src/afs/afs_call.c,v 1.10 2002/01/28 00:53:19 hartmans Exp $");
#include "../afs/sysincludes.h" /* Standard vendor system headers */
#include "../afs/afsincludes.h" /* Afs-based standard headers */
afs_osi_Invisible();
afs_RX_Running = 2;
afs_osi_Wakeup(&afs_RX_Running);
+#ifndef UKERNEL
+ afs_osi_RxkRegister();
+#endif
rxk_Listener();
}
#ifdef AFS_SGI_ENV
afs_int32 *kmsg = afs_osi_Alloc(kmsgLen);
char *cellname = afs_osi_Alloc(cellLen);
+#ifndef UKERNEL
+ afs_osi_MaskSignals();
+#endif
AFS_COPYIN((afs_int32 *)parm2, cellname, cellLen, code);
AFS_COPYIN((afs_int32 *)parm3, kmsg, kmsgLen, code);
if (!code) {
afs_osi_Sleep(&afs_termState);
#if defined(RXK_LISTENER_ENV)
afs_warn("RxListener... ");
+#ifndef UKERNEL
+ afs_osi_UnmaskRxkSignals();
+#endif
/* cancel rx listener */
osi_StopListener(); /* This closes rx_socket. */
while (afs_termState == AFSOP_STOP_RXK_LISTENER)