Lines Matching refs:lhp

1270 	umem_log_header_t *lhp;  in umem_log_init()  local
1283 lhp = vmem_xalloc(umem_log_arena, lhsize, 64, P2NPHASE(lhsize, 64), 0, in umem_log_init()
1285 if (lhp == NULL) in umem_log_init()
1288 bzero(lhp, lhsize); in umem_log_init()
1290 (void) mutex_init(&lhp->lh_lock, USYNC_THREAD, NULL); in umem_log_init()
1291 lhp->lh_nchunks = nchunks; in umem_log_init()
1292 lhp->lh_chunksize = P2ROUNDUP(logsize / nchunks, PAGESIZE); in umem_log_init()
1293 if (lhp->lh_chunksize == 0) in umem_log_init()
1294 lhp->lh_chunksize = PAGESIZE; in umem_log_init()
1296 lhp->lh_base = vmem_alloc(umem_log_arena, in umem_log_init()
1297 lhp->lh_chunksize * nchunks, VM_NOSLEEP); in umem_log_init()
1298 if (lhp->lh_base == NULL) in umem_log_init()
1301 lhp->lh_free = vmem_alloc(umem_log_arena, in umem_log_init()
1303 if (lhp->lh_free == NULL) in umem_log_init()
1306 bzero(lhp->lh_base, lhp->lh_chunksize * nchunks); in umem_log_init()
1309 umem_cpu_log_header_t *clhp = &lhp->lh_cpu[i]; in umem_log_init()
1315 lhp->lh_free[i] = i; in umem_log_init()
1317 lhp->lh_head = umem_max_ncpus; in umem_log_init()
1318 lhp->lh_tail = 0; in umem_log_init()
1320 return (lhp); in umem_log_init()
1323 if (lhp != NULL) { in umem_log_init()
1324 if (lhp->lh_base != NULL) in umem_log_init()
1325 vmem_free(umem_log_arena, lhp->lh_base, in umem_log_init()
1326 lhp->lh_chunksize * nchunks); in umem_log_init()
1328 vmem_xfree(umem_log_arena, lhp, lhsize); in umem_log_init()
1334 umem_log_enter(umem_log_header_t *lhp, void *data, size_t size) in umem_log_enter() argument
1338 &lhp->lh_cpu[CPU(umem_cpu_mask)->cpu_number]; in umem_log_enter()
1340 if (lhp == NULL || umem_logging == 0) in umem_log_enter()
1346 (void) mutex_lock(&lhp->lh_lock); in umem_log_enter()
1347 lhp->lh_hits++; in umem_log_enter()
1348 lhp->lh_free[lhp->lh_tail] = clhp->clh_chunk; in umem_log_enter()
1349 lhp->lh_tail = (lhp->lh_tail + 1) % lhp->lh_nchunks; in umem_log_enter()
1350 clhp->clh_chunk = lhp->lh_free[lhp->lh_head]; in umem_log_enter()
1351 lhp->lh_head = (lhp->lh_head + 1) % lhp->lh_nchunks; in umem_log_enter()
1352 clhp->clh_current = lhp->lh_base + in umem_log_enter()
1353 clhp->clh_chunk * lhp->lh_chunksize; in umem_log_enter()
1354 clhp->clh_avail = lhp->lh_chunksize; in umem_log_enter()
1355 if (size > lhp->lh_chunksize) in umem_log_enter()
1356 size = lhp->lh_chunksize; in umem_log_enter()
1357 (void) mutex_unlock(&lhp->lh_lock); in umem_log_enter()