• Home
  • Raw
  • Download

Lines Matching refs:reg

102 static void region_list_remove(struct region_list *list, struct region *reg)  in region_list_remove()  argument
104 if (reg->prev) in region_list_remove()
105 reg->prev->next = reg->next; in region_list_remove()
107 if (reg->next) in region_list_remove()
108 reg->next->prev = reg->prev; in region_list_remove()
110 if (list->first == reg) in region_list_remove()
111 list->first = reg->next; in region_list_remove()
113 if (list->last == reg) in region_list_remove()
114 list->last = reg->prev; in region_list_remove()
116 reg->next = NULL; in region_list_remove()
117 reg->prev = NULL; in region_list_remove()
120 static void region_list_append(struct region_list *list, struct region *reg) in region_list_append() argument
123 list->first = reg; in region_list_append()
124 list->last = reg; in region_list_append()
125 list->iter = reg; in region_list_append()
127 reg->prev = NULL; in region_list_append()
129 list->last->next = reg; in region_list_append()
130 reg->prev = list->last; in region_list_append()
131 list->last = reg; in region_list_append()
133 reg->next = NULL; in region_list_append()
137 static void dump_starting_from(struct region *reg)
139 for (; reg; reg = reg->next) {
140 printf("%p: Blocks %d-%d (%d)\n", reg,
141 reg->bg * info.blocks_per_group + reg->block,
142 reg->bg * info.blocks_per_group + reg->block + reg->len - 1,
143 reg->len);
160 struct region *reg; in append_region() local
161 reg = malloc(sizeof(struct region)); in append_region()
162 reg->block = block; in append_region()
163 reg->len = len; in append_region()
164 reg->bg = bg_num; in append_region()
165 reg->next = NULL; in append_region()
167 region_list_append(&alloc->list, reg); in append_region()
267 struct region *reg = alloc->list.last->prev; in reduce_allocation() local
270 if (reg) { in reduce_allocation()
271 reg->next = NULL; in reduce_allocation()
363 struct region *reg; in ext4_allocate_contiguous_blocks() local
369 reg = malloc(sizeof(struct region)); in ext4_allocate_contiguous_blocks()
370 reg->block = block; in ext4_allocate_contiguous_blocks()
371 reg->len = len; in ext4_allocate_contiguous_blocks()
372 reg->next = NULL; in ext4_allocate_contiguous_blocks()
373 reg->prev = NULL; in ext4_allocate_contiguous_blocks()
374 reg->bg = i; in ext4_allocate_contiguous_blocks()
375 return reg; in ext4_allocate_contiguous_blocks()
399 struct region *reg; in ext4_allocate_partial() local
411 reg = ext4_allocate_contiguous_blocks(len); in ext4_allocate_partial()
420 reg = malloc(sizeof(struct region)); in ext4_allocate_partial()
421 reg->block = block; in ext4_allocate_partial()
422 reg->len = bg_len; in ext4_allocate_partial()
423 reg->next = NULL; in ext4_allocate_partial()
424 reg->prev = NULL; in ext4_allocate_partial()
425 reg->bg = i; in ext4_allocate_partial()
428 return reg; in ext4_allocate_partial()
438 struct region *reg; in ext4_allocate_multiple_contiguous_blocks() local
441 reg = ext4_allocate_partial(len); in ext4_allocate_multiple_contiguous_blocks()
442 if (reg == NULL) in ext4_allocate_multiple_contiguous_blocks()
446 first_reg = reg; in ext4_allocate_multiple_contiguous_blocks()
449 prev_reg->next = reg; in ext4_allocate_multiple_contiguous_blocks()
450 reg->prev = prev_reg; in ext4_allocate_multiple_contiguous_blocks()
453 prev_reg = reg; in ext4_allocate_multiple_contiguous_blocks()
454 len -= reg->len; in ext4_allocate_multiple_contiguous_blocks()
462 struct region *reg = ext4_allocate_contiguous_blocks(len); in do_allocate() local
464 if (reg == NULL) in do_allocate()
465 reg = ext4_allocate_multiple_contiguous_blocks(len); in do_allocate()
467 return reg; in do_allocate()
480 struct region *reg = do_allocate(len); in allocate_blocks() local
482 if (reg == NULL) in allocate_blocks()
486 alloc->list.first = reg; in allocate_blocks()
487 alloc->list.last = reg; in allocate_blocks()
497 struct region *reg = alloc->list.first; in block_allocation_num_regions() local
499 for (i = 0; reg != NULL; reg = reg->next) in block_allocation_num_regions()
508 struct region *reg = alloc->list.first; in block_allocation_len() local
510 for (i = 0; reg != NULL; reg = reg->next) in block_allocation_len()
511 i += reg->len; in block_allocation_len()
519 struct region *reg = alloc->list.iter; in get_block() local
522 for (; reg; reg = reg->next) { in get_block()
523 if (block < reg->len) in get_block()
524 return reg->block + block; in get_block()
525 block -= reg->len; in get_block()
532 struct region *reg = alloc->oob_list.iter; in get_oob_block() local
535 for (; reg; reg = reg->next) { in get_oob_block()
536 if (block < reg->len) in get_oob_block()
537 return reg->block + block; in get_oob_block()
538 block -= reg->len; in get_oob_block()
577 struct region *reg = alloc->list.iter; in do_split_allocation() local
581 while (reg && len >= reg->len) { in do_split_allocation()
582 len -= reg->len; in do_split_allocation()
583 reg = reg->next; in do_split_allocation()
586 if (reg == NULL && len > 0) in do_split_allocation()
592 new->bg = reg->bg; in do_split_allocation()
593 new->block = reg->block + len; in do_split_allocation()
594 new->len = reg->len - len; in do_split_allocation()
595 new->next = reg->next; in do_split_allocation()
596 new->prev = reg; in do_split_allocation()
598 reg->next = new; in do_split_allocation()
599 reg->len = len; in do_split_allocation()
605 return reg; in do_split_allocation()
644 struct region *reg = list->iter; in advance_list_ptr() local
646 while (reg != NULL && blocks > 0) { in advance_list_ptr()
647 if (reg->len > list->partial_iter + blocks) { in advance_list_ptr()
652 blocks -= (reg->len - list->partial_iter); in advance_list_ptr()
654 reg = reg->next; in advance_list_ptr()
676 struct region *reg = do_allocate(len); in append_oob_allocation() local
678 if (reg == NULL) { in append_oob_allocation()
683 for (; reg; reg = reg->next) in append_oob_allocation()
684 region_list_append(&alloc->oob_list, reg); in append_oob_allocation()
796 struct region *reg; in free_alloc() local
798 reg = alloc->list.first; in free_alloc()
799 while (reg) { in free_alloc()
800 struct region *next = reg->next; in free_alloc()
801 free(reg); in free_alloc()
802 reg = next; in free_alloc()
805 reg = alloc->oob_list.first; in free_alloc()
806 while (reg) { in free_alloc()
807 struct region *next = reg->next; in free_alloc()
808 free(reg); in free_alloc()
809 reg = next; in free_alloc()