/** * pmap_common_init * * Initialize common elements of pmaps. */ void pmap_common_init(pmap_t pmap) { usimple_lock_init(&pmap->lock, 0); ledger_reference(pmap->ledger); pmap->ref_count = 1; pmap->nx_enabled = 0; }
/* * Routine: lck_spin_init */ void lck_spin_init( lck_spin_t *lck, lck_grp_t *grp, __unused lck_attr_t *attr) { usimple_lock_init((usimple_lock_t) lck, 0); lck_grp_reference(grp); lck_grp_lckcnt_incr(grp, LCK_TYPE_SPIN); }
void osi_Init(void) { static int once = 0; if (once++ > 0) /* just in case */ return; #if defined(AFS_HPUX_ENV) osi_InitGlock(); #else /* AFS_HPUX_ENV */ #if defined(AFS_GLOBAL_SUNLOCK) #if defined(AFS_SGI62_ENV) mutex_init(&afs_global_lock, MUTEX_DEFAULT, "afs_global_lock"); #elif defined(AFS_OSF_ENV) usimple_lock_init(&afs_global_lock); afs_global_owner = (thread_t) 0; #elif defined(AFS_FBSD50_ENV) #if defined(AFS_FBSD80_ENV) && defined(WITNESS) /* "lock_initalized" (sic) can panic, checks a flag bit * is unset _before_ init */ memset(&afs_global_mtx, 0, sizeof(struct mtx)); #endif mtx_init(&afs_global_mtx, "AFS global lock", NULL, MTX_DEF); #elif defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) #if !defined(AFS_DARWIN80_ENV) lockinit(&afs_global_lock, PLOCK, "afs global lock", 0, 0); #endif afs_global_owner = 0; #elif defined(AFS_AIX41_ENV) lock_alloc((void *)&afs_global_lock, LOCK_ALLOC_PIN, 1, 1); simple_lock_init((void *)&afs_global_lock); #elif !defined(AFS_LINUX22_ENV) /* Linux initialization in osi directory. Should move the others. */ mutex_init(&afs_global_lock, "afs_global_lock", MUTEX_DEFAULT, NULL); #endif #endif /* AFS_GLOBAL_SUNLOCK */ #endif /* AFS_HPUX_ENV */ if (!afs_osicred_initialized) { #if defined(AFS_DARWIN80_ENV) afs_osi_ctxtp_initialized = 0; afs_osi_ctxtp = NULL; /* initialized in afs_Daemon since it has a proc reference that cannot be changed */ #endif #if defined(AFS_XBSD_ENV) /* Can't just invent one, must use crget() because of mutex */ afs_osi_credp = crdup(osi_curcred()); #else memset(&afs_osi_cred, 0, sizeof(struct AFS_UCRED)); #if defined(AFS_LINUX26_ENV) afs_osi_cred.cr_group_info = groups_alloc(0); #endif #if defined(AFS_DARWIN80_ENV) afs_osi_cred.cr_ref = 1; /* kauth_cred_get_ref needs 1 existing ref */ #else crhold(&afs_osi_cred); /* don't let it evaporate */ #endif afs_osi_credp = &afs_osi_cred; #endif afs_osicred_initialized = 1; } #ifdef AFS_SGI64_ENV osi_flid.fl_pid = osi_flid.fl_sysid = 0; #endif init_et_to_sys_error(); }