void mtx_enter(struct mutex *mtx) { if (mtx->mtx_wantipl != IPL_NONE) mtx->mtx_oldipl = _splraise(mtx->mtx_wantipl); MUTEX_ASSERT_UNLOCKED(mtx); mtx->mtx_lock = 1; }
void mtx_enter(struct mutex *mtx) { if (mtx->mtx_wantipl != IPL_NONE) mtx->mtx_oldipl = _splraise(MD_IPLTOPSL(mtx->mtx_wantipl)); MUTEX_ASSERT_UNLOCKED(mtx); mtx->mtx_lock = 1; #ifdef DIAGNOSTIC curcpu()->ci_mutex_level++; #endif }
/* * Initialize interrupt dispatcher. */ void s3c2xx0_intr_init(struct s3c2xx0_intr_dispatch * dispatch_table, int icu_len) { int i; for (i = 0; i < icu_len; ++i) { dispatch_table[i].func = stray_interrupt; dispatch_table[i].cookie = (void *) (i); dispatch_table[i].level = IPL_BIO; } global_intr_mask = ~0; /* no intr is globally blocked. */ _splraise(IPL_SERIAL); enable_interrupts(I32_bit); }
/* * Initialize interrupt dispatcher. */ void s3c2xx0_intr_init(struct s3c2xx0_intr_dispatch * dispatch_table, int icu_len) { int i; for (i = 0; i < icu_len; ++i) { dispatch_table[i].func = stray_interrupt; dispatch_table[i].cookie = (void *) (i); dispatch_table[i].level = IPL_VM; sprintf(dispatch_table[i].name, "irq %d", i); evcnt_attach_dynamic(&dispatch_table[i].ev, EVCNT_TYPE_INTR, NULL, "s3c2xx0", dispatch_table[i].name); } global_intr_mask = ~0; /* no intr is globally blocked. */ _splraise(IPL_VM); enable_interrupts(I32_bit); }