Changeset 5d2ab23 in mainline for generic/src/mm/frame.c
- Timestamp:
- 2006-01-17T20:52:33Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 64c44e8
- Parents:
- 77147d6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
generic/src/mm/frame.c
r77147d6 r5d2ab23 134 134 } 135 135 136 137 136 /* Allocate frames from zone buddy system */ 138 137 tmp = buddy_system_alloc(zone->buddy_system, order); … … 161 160 *status = FRAME_OK; 162 161 } 163 164 162 return v; 165 163 } … … 180 178 zone_t *zone = NULL; 181 179 frame_t *frame; 180 int order; 181 182 182 ASSERT(addr % FRAME_SIZE == 0); 183 183 … … 210 210 211 211 frame = ADDR2FRAME(zone, addr); 212 213 /* remember frame order */ 214 order = frame->buddy_order; 212 215 213 216 ASSERT(frame->refcount); … … 218 221 219 222 /* Update zone information. */ 220 zone->free_count += (1 << frame->buddy_order);221 zone->busy_count -= (1 << frame->buddy_order);223 zone->free_count += (1 << order); 224 zone->busy_count -= (1 << order); 222 225 223 226 spinlock_unlock(&zone->lock); … … 322 325 323 326 z->base = start; 327 z->base_index = start / FRAME_SIZE; 328 324 329 z->flags = flags; 325 330 … … 349 354 buddy_system_free(z->buddy_system, &z->frames[i].buddy_link); 350 355 } 356 351 357 } 352 358 return z; … … 401 407 frame = list_get_instance(block, frame_t, buddy_link); 402 408 zone = (zone_t *) b->data; 403 404 ASSERT(IS_BUDDY_ORDER_OK(FRAME_INDEX(zone, frame), frame->buddy_order));405 406 is_left = IS_BUDDY_LEFT_BLOCK (zone, frame);407 is_right = IS_BUDDY_RIGHT_BLOCK (zone, frame);409 ASSERT(IS_BUDDY_ORDER_OK(FRAME_INDEX_ABS(zone, frame), frame->buddy_order)); 410 411 412 is_left = IS_BUDDY_LEFT_BLOCK_ABS(zone, frame); 413 is_right = IS_BUDDY_RIGHT_BLOCK_ABS(zone, frame); 408 414 409 415 ASSERT(is_left ^ is_right);
Note:
See TracChangeset
for help on using the changeset viewer.