Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 723 → Rev 724

/kernel/trunk/generic/src/mm/frame.c
133,7 → 133,6
goto loop;
}
 
/* Allocate frames from zone buddy system */
tmp = buddy_system_alloc(zone->buddy_system, order);
160,7 → 159,6
ASSERT(status != NULL);
*status = FRAME_OK;
}
return v;
}
 
179,6 → 177,8
zone_t *z;
zone_t *zone = NULL;
frame_t *frame;
int order;
ASSERT(addr % FRAME_SIZE == 0);
ipl = interrupts_disable();
209,6 → 209,9
ASSERT(zone != NULL);
frame = ADDR2FRAME(zone, addr);
/* remember frame order */
order = frame->buddy_order;
 
ASSERT(frame->refcount);
 
217,8 → 220,8
}
 
/* Update zone information. */
zone->free_count += (1 << frame->buddy_order);
zone->busy_count -= (1 << frame->buddy_order);
zone->free_count += (1 << order);
zone->busy_count -= (1 << order);
spinlock_unlock(&zone->lock);
spinlock_unlock(&zone_head_lock);
321,6 → 324,8
spinlock_initialize(&z->lock, "zone_lock");
z->base = start;
z->base_index = start / FRAME_SIZE;
z->flags = flags;
 
z->free_count = cnt;
348,6 → 353,7
z->frames[i].refcount = 0;
buddy_system_free(z->buddy_system, &z->frames[i].buddy_link);
}
}
return z;
}
400,11 → 406,11
 
frame = list_get_instance(block, frame_t, buddy_link);
zone = (zone_t *) b->data;
ASSERT(IS_BUDDY_ORDER_OK(FRAME_INDEX_ABS(zone, frame), frame->buddy_order));
ASSERT(IS_BUDDY_ORDER_OK(FRAME_INDEX(zone, frame), frame->buddy_order));
is_left = IS_BUDDY_LEFT_BLOCK(zone, frame);
is_right = IS_BUDDY_RIGHT_BLOCK(zone, frame);
is_left = IS_BUDDY_LEFT_BLOCK_ABS(zone, frame);
is_right = IS_BUDDY_RIGHT_BLOCK_ABS(zone, frame);
ASSERT(is_left ^ is_right);