Lines Matching refs:chunk
573 struct dasd_mchunk *chunk; in dasd_init_chunklist() local
576 chunk = (struct dasd_mchunk *) mem; in dasd_init_chunklist()
577 chunk->size = size - sizeof(struct dasd_mchunk); in dasd_init_chunklist()
578 list_add(&chunk->list, chunk_list); in dasd_init_chunklist()
584 struct dasd_mchunk *chunk, *tmp; in dasd_alloc_chunk() local
587 list_for_each_entry(chunk, chunk_list, list) { in dasd_alloc_chunk()
588 if (chunk->size < size) in dasd_alloc_chunk()
590 if (chunk->size > size + sizeof(struct dasd_mchunk)) { in dasd_alloc_chunk()
591 char *endaddr = (char *) (chunk + 1) + chunk->size; in dasd_alloc_chunk()
594 chunk->size -= size + sizeof(struct dasd_mchunk); in dasd_alloc_chunk()
595 chunk = tmp; in dasd_alloc_chunk()
597 list_del(&chunk->list); in dasd_alloc_chunk()
598 return (void *) (chunk + 1); in dasd_alloc_chunk()
606 struct dasd_mchunk *chunk, *tmp; in dasd_free_chunk() local
609 chunk = (struct dasd_mchunk *) in dasd_free_chunk()
614 if (list_entry(p, struct dasd_mchunk, list) > chunk) in dasd_free_chunk()
621 if ((char *) (chunk + 1) + chunk->size == (char *) tmp) { in dasd_free_chunk()
623 chunk->size += tmp->size + sizeof(struct dasd_mchunk); in dasd_free_chunk()
629 if ((char *) (tmp + 1) + tmp->size == (char *) chunk) { in dasd_free_chunk()
630 tmp->size += chunk->size + sizeof(struct dasd_mchunk); in dasd_free_chunk()
634 __list_add(&chunk->list, left, left->next); in dasd_free_chunk()