diff --git a/src/afs/afs.h b/src/afs/afs.h index 6bf4f0e1f6..93bb776610 100644 --- a/src/afs/afs.h +++ b/src/afs/afs.h @@ -1559,4 +1559,32 @@ struct afssysa { extern int Afs_syscall(struct afssysa *uap, rval_t *rvp); #endif /* AFS_SUN5_ENV */ +/* The event hash table, and array */ + +typedef struct afs_event { + struct afs_event *next; /* next in hash chain */ + char *event; /* lwp event: an address */ + int refcount; /* Is it in use? */ + int seq; /* Sequence number: this is incremented + * by wakeup calls; wait will not return until + * it changes */ +#if defined(AFS_AIX_ENV) + tid_t cond; +#elif defined(AFS_DARWIN_ENV) +# ifdef AFS_DARWIN80_ENV + lck_mtx_t *lck; + thread_t owner; +# endif + /* no cond member */ +#elif defined(AFS_FBSD_ENV) || defined(AFS_OBSD_ENV) + int cond; /* "all this gluck should probably be replaced by CVs" */ +#elif defined(AFS_LINUX_ENV) || defined(AFS_LINUX24_ENV) + wait_queue_head_t cond; +#elif defined(AFS_NBSD_ENV) || defined(AFS_SOLARIS_ENV) || defined(AFS_SGI_ENV) + kcondvar_t cond; /* Currently associated condition variable */ +#endif +} afs_event_t; + +extern afs_event_t *afs_evhasht[AFS_EVHASHSIZE]; /* Hash table for events */ + #endif /* _AFS_H_ */ diff --git a/src/afs/afs_osi.h b/src/afs/afs_osi.h index 153017e6a5..6cea472e60 100644 --- a/src/afs/afs_osi.h +++ b/src/afs/afs_osi.h @@ -17,10 +17,6 @@ #include #endif -#ifdef AFS_SGI_ENV -#include "sys/sema.h" /* for kcondvar_t */ -#endif - #ifdef AFS_NBSD_ENV #include #endif @@ -133,31 +129,7 @@ struct afs_osi_WaitHandle { * DFBSD and SUNOS have no osi_sleep, and HPUX has its own hack for this stuff */ #define AFS_EVHASHSIZE 128 /* size of afs_evhasht, must be power of 2 */ -typedef struct afs_event { - struct afs_event *next; /* next in hash chain */ - char *event; /* lwp event: an address */ - int refcount; /* Is it in use? */ - int seq; /* Sequence number: this is incremented - * by wakeup calls; wait will not return until - * it changes */ -#if defined(AFS_AIX_ENV) - tid_t cond; -#elif defined(AFS_DARWIN_ENV) -#ifdef AFS_DARWIN80_ENV - lck_mtx_t *lck; - thread_t owner; -#endif - /* no cond member */ -#elif defined(AFS_FBSD_ENV) || defined(AFS_OBSD_ENV) - int cond; /* "all this gluck should probably be replaced by CVs" */ -#elif defined(AFS_LINUX_ENV) || defined(AFS_LINUX24_ENV) - wait_queue_head_t cond; -#elif defined(AFS_NBSD_ENV) || defined(AFS_SOLARIS_ENV) || defined(AFS_SGI_ENV) - kcondvar_t cond; /* Currently associated condition variable */ -#endif -} afs_event_t; -extern afs_event_t *afs_evhasht[AFS_EVHASHSIZE]; /* Hash table for events */ -extern void shutdown_osisleep(void); + /* diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h index dee3695803..04f13ad092 100644 --- a/src/afs/afs_prototypes.h +++ b/src/afs/afs_prototypes.h @@ -550,6 +550,7 @@ extern void afs_osi_RxkRegister(void); extern void afs_osi_Invisible(void); extern void shutdown_osi(void); extern void shutdown_osinet(void); +extern void shutdown_osisleep(void); extern int afs_osi_suser(void *credp); extern void afs_osi_TraverseProcTable(void); #if defined(KERNEL) && !defined(UKERNEL)