Home | History | Annotate | Download | only in ext4_utils

Lines Matching refs:reg

66 static void region_list_remove(struct region_list *list, struct region *reg)
68 if (reg->prev)
69 reg->prev->next = reg->next;
71 if (reg->next)
72 reg->next->prev = reg->prev;
74 if (list->first == reg)
75 list->first = reg->next;
77 if (list->last == reg)
78 list->last = reg->prev;
80 reg->next = NULL;
81 reg->prev = NULL;
84 void region_list_append(struct region_list *list, struct region *reg)
87 list->first = reg;
88 list->last = reg;
89 list->iter = reg;
91 reg->prev = NULL;
93 list->last->next = reg;
94 reg->prev = list->last;
95 list->last = reg;
97 reg->next = NULL;
115 static void dump_starting_from(struct region *reg)
117 for (; reg; reg = reg->next) {
118 printf("%p: Blocks %d-%d (%d)\n", reg,
119 reg->block, reg->block + reg->len - 1, reg->len)
135 struct region *reg;
137 for (reg = alloc->list.first; reg; reg = reg->next) {
138 if (reg->len == 1) {
139 fprintf(f, "%d", reg->block);
141 fprintf(f, "%d-%d", reg->block, reg->block + reg->len - 1);
151 struct region *reg;
152 reg = malloc(sizeof(struct region));
153 reg->block = block;
154 reg->len = len;
155 reg->bg = bg_num;
156 reg->next = NULL;
158 region_list_append(&alloc->list, reg);
252 struct region *reg = alloc->list.last->prev;
255 if (reg) {
256 reg->next = NULL;
359 struct region *reg;
406 reg = malloc(sizeof(struct region));
407 reg->block = found_block + bgs[found_bg].first_block;
408 reg->len = found_allocate_len;
409 reg->next = NULL;
410 reg->prev = NULL;
411 reg->bg = found_bg;
412 return reg;
419 struct region *reg;
422 reg = ext4_allocate_best_fit_partial(len);
423 if (reg == NULL)
427 first_reg = reg;
430 prev_reg->next = reg;
431 reg->prev = prev_reg;
434 prev_reg = reg;
435 len -= reg->len;
450 struct region *reg = ext4_allocate_best_fit(len);
452 if (reg == NULL)
456 alloc->list.first = reg;
457 while (reg->next != NULL)
458 reg = reg->next;
459 alloc->list.last = reg;
469 struct region *reg = alloc->list.first;
471 for (i = 0; reg != NULL; reg = reg->next)
480 struct region *reg = alloc->list.first;
482 for (i = 0; reg != NULL; reg = reg->next)
483 i += reg->len;
491 struct region *reg = alloc->list.iter;
494 for (; reg; reg = reg->next) {
495 if (block < reg->len)
496 return reg->block + block;
497 block -= reg->len;
504 struct region *reg = alloc->oob_list.iter;
507 for (; reg; reg = reg->next) {
508 if (block < reg->len)
509 return reg->block + block;
510 block -= reg->len;
549 struct region *reg = alloc->list.iter;
553 while (reg && len >= reg->len) {
554 len -= reg->len;
555 reg = reg->next;
558 if (reg == NULL && len > 0)
564 new->bg = reg->bg;
565 new->block = reg->block + len;
566 new->len = reg->len - len;
567 new->next = reg->next;
568 new->prev = reg;
570 reg->next = new;
571 reg->len = len;
577 return reg;
616 struct region *reg = list->iter;
618 while (reg != NULL && blocks > 0) {
619 if (reg->len > list->partial_iter + blocks) {
624 blocks -= (reg->len - list->partial_iter);
626 reg = reg->next;
648 struct region *reg = ext4_allocate_best_fit(len);
650 if (reg == NULL) {
655 for (; reg; reg = reg->next)
656 region_list_append(&alloc->oob_list, reg);
768 struct region *reg;
770 reg = alloc->list.first;
771 while (reg) {
772 struct region *next = reg->next;
773 free(reg);
774 reg = next;
777 reg = alloc->oob_list.first;
778 while (reg) {
779 struct region *next = reg->next;
780 free(reg);
781 reg = next;
804 struct region *reg;
808 reg = alloc->list.first;
809 while (reg != NULL) {
810 if (reserve_blocks(&bgs[reg->bg], reg->bg, reg->block - bgs[reg->bg].first_block, reg->len) < 0) {
813 reg = reg->next;