Lines Matching refs:chunk
401 rsm_pollfd_chunk_t *chunk; in _rsm_insert_pollfd_table() local
407 chunk = pollfd_table.buckets[hash]; in _rsm_insert_pollfd_table()
408 while (chunk) { in _rsm_insert_pollfd_table()
409 if (chunk->nfree > 0) in _rsm_insert_pollfd_table()
411 chunk = chunk->next; in _rsm_insert_pollfd_table()
414 if (!chunk) { /* couldn't find a free chunk - allocate a new one */ in _rsm_insert_pollfd_table()
415 chunk = malloc(sizeof (rsm_pollfd_chunk_t)); in _rsm_insert_pollfd_table()
416 if (!chunk) { in _rsm_insert_pollfd_table()
420 chunk->nfree = RSM_POLLFD_PER_CHUNK - 1; in _rsm_insert_pollfd_table()
421 chunk->fdarray[0].fd = segfd; in _rsm_insert_pollfd_table()
422 chunk->fdarray[0].segrnum = segrnum; in _rsm_insert_pollfd_table()
424 chunk->fdarray[i].fd = -1; in _rsm_insert_pollfd_table()
425 chunk->fdarray[i].segrnum = 0; in _rsm_insert_pollfd_table()
428 chunk->next = pollfd_table.buckets[hash]; in _rsm_insert_pollfd_table()
429 pollfd_table.buckets[hash] = chunk; in _rsm_insert_pollfd_table()
432 chunk, hash, segfd, segrnum)); in _rsm_insert_pollfd_table()
435 if (chunk->fdarray[i].fd == -1) { in _rsm_insert_pollfd_table()
436 chunk->fdarray[i].fd = segfd; in _rsm_insert_pollfd_table()
437 chunk->fdarray[i].segrnum = segrnum; in _rsm_insert_pollfd_table()
438 chunk->nfree--; in _rsm_insert_pollfd_table()
444 hash, segfd, segrnum, chunk)); in _rsm_insert_pollfd_table()
462 rsm_pollfd_chunk_t *chunk; in _rsm_lookup_pollfd_table() local
469 chunk = pollfd_table.buckets[RSM_POLLFD_HASH(segfd)]; in _rsm_lookup_pollfd_table()
470 while (chunk) { in _rsm_lookup_pollfd_table()
471 assert(chunk->nfree < RSM_POLLFD_PER_CHUNK); in _rsm_lookup_pollfd_table()
474 if (chunk->fdarray[i].fd == segfd) { in _rsm_lookup_pollfd_table()
478 segfd, chunk->fdarray[i].segrnum)); in _rsm_lookup_pollfd_table()
479 return (chunk->fdarray[i].segrnum); in _rsm_lookup_pollfd_table()
482 chunk = chunk->next; in _rsm_lookup_pollfd_table()
502 rsm_pollfd_chunk_t *chunk; in _rsm_remove_pollfd_table() local
512 prev_chunk = chunk = pollfd_table.buckets[hash]; in _rsm_remove_pollfd_table()
513 while (chunk) { in _rsm_remove_pollfd_table()
514 assert(chunk->nfree < RSM_POLLFD_PER_CHUNK); in _rsm_remove_pollfd_table()
517 if (chunk->fdarray[i].fd == segfd) { in _rsm_remove_pollfd_table()
520 chunk->fdarray[i].fd, in _rsm_remove_pollfd_table()
521 chunk->fdarray[i].segrnum)); in _rsm_remove_pollfd_table()
522 chunk->fdarray[i].fd = -1; in _rsm_remove_pollfd_table()
523 chunk->fdarray[i].segrnum = 0; in _rsm_remove_pollfd_table()
524 chunk->nfree++; in _rsm_remove_pollfd_table()
525 if (chunk->nfree == RSM_POLLFD_PER_CHUNK) { in _rsm_remove_pollfd_table()
527 if (prev_chunk == chunk) { in _rsm_remove_pollfd_table()
529 chunk->next; in _rsm_remove_pollfd_table()
531 prev_chunk->next = chunk->next; in _rsm_remove_pollfd_table()
536 chunk)); in _rsm_remove_pollfd_table()
537 free(chunk); in _rsm_remove_pollfd_table()
543 prev_chunk = chunk; in _rsm_remove_pollfd_table()
544 chunk = chunk->next; in _rsm_remove_pollfd_table()