return;
}
+void
+afs_osi_Visible(void)
+{
+ return;
+}
+
int
osi_GetTime(struct timeval *tv)
{
#endif /* RXK_LISTENER_ENV */
afs_osi_Invisible();
afs_RXCallBackServer();
+ afs_osi_Visible();
}
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
afs_osi_RxkRegister();
#endif /* !UKERNEL */
rxk_Listener();
+ afs_osi_Visible();
}
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
afs_osi_Wakeup(&afs_initState);
afs_osi_Invisible();
afs_Daemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
} else if (parm == AFSOP_START_CS) {
afs_osi_Invisible();
afs_CheckServerDaemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
else
#endif /* AFS_AIX32_ENV */
afs_BackgroundDaemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
/* start the bkg daemon */
afs_osi_Invisible();
afs_CacheTruncateDaemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
afs_osi_Sleep(&afs_initState);
afs_osi_Invisible();
afs_rxevent_daemon();
+ afs_osi_Visible();
#ifdef AFS_SGI_ENV
AFS_GUNLOCK();
exit(CLD_EXITED, 0);
AFS_STATCNT(osi_Invisible);
}
+void
+afs_osi_Visible(void)
+{
+#if defined(AFS_SUN5_ENV)
+ curproc->p_flag &= ~SSYS;
+#elif defined(AFS_DARWIN80_ENV)
+#elif defined(AFS_DARWIN_ENV)
+ /* maybe call init_process instead? */
+ current_proc()->p_flag &= ~P_SYSTEM;
+#elif defined(AFS_XBSD_ENV)
+ curproc->p_flag &= ~P_SYSTEM;
+#endif
+}
#if !defined(AFS_LINUX20_ENV) && !defined(AFS_XBSD_ENV)
/* set the real time */
/* afs_osi.c */
extern afs_lock_t afs_ftf;
extern void afs_osi_Invisible(void);
+extern void afs_osi_Visible(void);
extern void afs_osi_RxkRegister(void);
extern void afs_osi_MaskSignals(void);
extern void afs_osi_UnmaskRxkSignals(void);
/* #define AFSOP_STOP_COMPLETE 215 defined in osi.h */
/* #define AFSOP_STOP_RXK_LISTENER 217 defined in osi.h */
#define AFSOP_STOP_AFSDB 218 /* Stop AFSDB handler */
+#define AFSOP_STOP_NETIF 219 /* Stop Netif poller */
/* Main afs syscall entry; this number may vary per system (i.e. defined in afs/param.h) */
#ifndef AFS_SYSCALL
uint_t mtu;
uint64_t flags;
+ if (afs_termState == AFSOP_STOP_NETIF) {
+ afs_warn("NetIfPoller... ");
+ rw_destroy(&afsifinfo_lock);
+ ddi_taskq_destroy(afs_taskq);
+ afs_termState = AFSOP_STOP_COMPLETE;
+ osi_rxWakeup(&afs_termState);
+ return;
+ }
/* Get our permissions */
cr = CRED();
#ifdef RXK_LISTENER_ENV
afs_termState = AFSOP_STOP_RXK_LISTENER;
#else
+#ifdef AFS_SUN510_ENV
+ afs_termState = AFSOP_STOP_NETIF;
+#else
afs_termState = AFSOP_STOP_COMPLETE;
#endif
+#endif
osi_rxWakeup(&afs_termState);
return;
}
AFS_GLOCK();
#endif /* RX_ENABLE_LOCKS */
if (afs_termState == AFSOP_STOP_RXK_LISTENER) {
+#ifdef AFS_SUN510_ENV
+ afs_termState = AFSOP_STOP_NETIF;
+#else
afs_termState = AFSOP_STOP_COMPLETE;
+#endif
osi_rxWakeup(&afs_termState);
}
rxk_ListenerPid = 0;