Lines Matching refs:chunk
574 struct dasd_mchunk *chunk; in dasd_init_chunklist() local
577 chunk = (struct dasd_mchunk *) mem; in dasd_init_chunklist()
578 chunk->size = size - sizeof(struct dasd_mchunk); in dasd_init_chunklist()
579 list_add(&chunk->list, chunk_list); in dasd_init_chunklist()
585 struct dasd_mchunk *chunk, *tmp; in dasd_alloc_chunk() local
588 list_for_each_entry(chunk, chunk_list, list) { in dasd_alloc_chunk()
589 if (chunk->size < size) in dasd_alloc_chunk()
591 if (chunk->size > size + sizeof(struct dasd_mchunk)) { in dasd_alloc_chunk()
592 char *endaddr = (char *) (chunk + 1) + chunk->size; in dasd_alloc_chunk()
595 chunk->size -= size + sizeof(struct dasd_mchunk); in dasd_alloc_chunk()
596 chunk = tmp; in dasd_alloc_chunk()
598 list_del(&chunk->list); in dasd_alloc_chunk()
599 return (void *) (chunk + 1); in dasd_alloc_chunk()
607 struct dasd_mchunk *chunk, *tmp; in dasd_free_chunk() local
610 chunk = (struct dasd_mchunk *) in dasd_free_chunk()
615 if (list_entry(p, struct dasd_mchunk, list) > chunk) in dasd_free_chunk()
622 if ((char *) (chunk + 1) + chunk->size == (char *) tmp) { in dasd_free_chunk()
624 chunk->size += tmp->size + sizeof(struct dasd_mchunk); in dasd_free_chunk()
630 if ((char *) (tmp + 1) + tmp->size == (char *) chunk) { in dasd_free_chunk()
631 tmp->size += chunk->size + sizeof(struct dasd_mchunk); in dasd_free_chunk()
635 __list_add(&chunk->list, left, left->next); in dasd_free_chunk()