Lines Matching refs:hole

41 struct hole {  struct
50 static struct hole initholes[64]; argument
88 struct hole *hole; in print_holes() local
92 hole = list_entry(cur, struct hole, list); in print_holes()
94 if((hole->start == 0) && (hole->end == 0) && (hole->size == 0)) in print_holes()
98 hole->start, hole->end, hole->size); in print_holes()
108 struct hole *hole; in refill() local
109 struct hole *prev = NULL; in refill()
114 hole = list_entry(cur, struct hole, list); in refill()
117 prev = hole; in refill()
121 if(hole->end == prev->start) { in refill()
122 hole->size += prev->size; in refill()
123 hole->end = prev->end; in refill()
133 static inline struct hole *rmcache(void) in rmcache()
135 struct hole *ret; in rmcache()
144 ret = list_entry(hole_cache.next, struct hole, list); in rmcache()
155 struct hole *hole; in get_baddr() local
169 hole = list_entry(cur, struct hole, list); in get_baddr()
172 newlen = len + ((hole->end - len) & (align-1)); in get_baddr()
176 if(hole->size > newlen) { in get_baddr()
177 hole->end -= newlen; in get_baddr()
178 hole->size -= newlen; in get_baddr()
179 dvma_entry_use(hole->end) = newlen; in get_baddr()
184 return hole->end; in get_baddr()
185 } else if(hole->size == newlen) { in get_baddr()
186 list_move(&(hole->list), &hole_cache); in get_baddr()
187 dvma_entry_use(hole->start) = newlen; in get_baddr()
192 return hole->start; in get_baddr()
206 struct hole *hole; in free_baddr() local
222 hole = list_entry(cur, struct hole, list); in free_baddr()
224 if(hole->end == baddr) { in free_baddr()
225 hole->end += len; in free_baddr()
226 hole->size += len; in free_baddr()
228 } else if(hole->start == (baddr + len)) { in free_baddr()
229 hole->start = baddr; in free_baddr()
230 hole->size += len; in free_baddr()
236 hole = rmcache(); in free_baddr()
238 hole->start = baddr; in free_baddr()
239 hole->end = baddr + len; in free_baddr()
240 hole->size = len; in free_baddr()
243 list_add(&(hole->list), cur); in free_baddr()
252 struct hole *hole; in dvma_init() local
262 hole = rmcache(); in dvma_init()
263 hole->start = DVMA_START; in dvma_init()
264 hole->end = DVMA_END; in dvma_init()
265 hole->size = DVMA_SIZE; in dvma_init()
267 list_add(&(hole->list), &hole_list); in dvma_init()