Many fine grained locks are used by Rx on the AIX4.1 platform. These
need to be explained.
-It is likely they could be used preference to the afs_rxglobal_lock on
-AFS_GLOBAL_SUNLOCK platforms.
-
***** GLOBAL LOCKS
98. afs_global_lock -- This lock provides a non-preemptive environment
data structures that need synchronization. However, much existing code
is deficient in this regard (e.g. afs_getevent).
-99. afs_rxglobal_lock -- This lock is obtained after the afs_global_lock
-at process level but is obtained independently during packet arrival
-"interrupts" and during fasttimo processing.
-
***** OS LOCKS
100. The vnode lock on SunOS and SGI53 protects the its reference count.
#include <sys/mutex.h>
#endif
-extern struct simplelock afs_rxglobal_lock;
-
/*
* Time related macros
*/
/* #include <sys/unix_defs.h> */
#define getpid() curproc
-extern struct simplelock afs_rxglobal_lock;
/*
* Time related macros
#include <sys/lock.h>
-extern struct simplelock afs_rxglobal_lock;
-
#define M_AFSFID (M_TEMP-1)
#define M_AFSBUFHDR (M_TEMP-2)
#define M_AFSBUFFER (M_TEMP-3)
*/
#include <sys/mutex.h>
extern kmutex_t afs_global_lock;
-extern kmutex_t afs_rxglobal_lock;
#define AFS_GLOCK() mutex_enter(&afs_global_lock);
#define AFS_GUNLOCK() mutex_exit(&afs_global_lock);
#if defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)
kmutex_t afs_global_lock;
-kmutex_t afs_rxglobal_lock;
#endif
#if defined(AFS_SGI_ENV) && !defined(AFS_SGI64_ENV)
/* Linux initialization in osi directory. Should move the others. */
mutex_init(&afs_global_lock, "afs_global_lock", MUTEX_DEFAULT, NULL);
#endif
- /* afs_rxglobal_lock is initialized in rx_Init. */
#endif /* AFS_GLOBAL_SUNLOCK */
#endif /* AFS_HPUX_ENV */
if (!uniprocessor)
rx_sleepLock = alloc_spinlock(LAST_HELD_ORDER - 10, "rx_sleepLock");
#endif /* KERNEL && AFS_HPUX110_ENV */
-#else /* RX_ENABLE_LOCKS */
-#if defined(KERNEL) && defined(AFS_GLOBAL_SUNLOCK) && !defined(AFS_HPUX_ENV) && !defined(AFS_OBSD_ENV)
- mutex_init(&afs_rxglobal_lock, "afs_rxglobal_lock", MUTEX_DEFAULT, NULL);
-#endif /* AFS_GLOBAL_SUNLOCK */
#endif /* RX_ENABLE_LOCKS */
rxi_nCalls = 0;