Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 537 → Rev 538

/kernel/trunk/generic/include/mm/frame.h
41,10 → 41,9
 
#define FRAME2ADDR(zone, frame) ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE)
#define ADDR2FRAME(zone, addr) (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE]))
#define FRAME_INDEX(zone, frame) ((count_t)((frame) - (zone)->frames))
#define FRAME_INDEX(zone, frame) ((index_t)((frame) - (zone)->frames))
#define FRAME_INDEX_VALID(zone, index) (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count)))
#define IS_BUDDY_LEFT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 << ((frame)->buddy_order + 1))) == 0)
#define IS_BUDDY_RIGHT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 << ((frame)->buddy_order + 1))) == (1 << (frame)->buddy_order))
#define IS_BUDDY_LEFT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) & ~(((__native) -1)<<((frame)->buddy_order + 1))) == 0)
 
#define ZONE_BLACKLIST_SIZE 3
 
/kernel/trunk/generic/src/mm/frame.c
388,10 → 388,8
*/
 
is_left = IS_BUDDY_LEFT_BLOCK(zone, frame);
is_right = IS_BUDDY_RIGHT_BLOCK(zone, frame);
is_right = !is_left;
ASSERT((is_left || is_right) && (!is_left || !is_right));
/*
* test left buddy
*/
/kernel/trunk/arch/sparc64/src/mm/frame.c
29,15 → 29,8
#include <arch/mm/frame.h>
#include <mm/frame.h>
#include <config.h>
#include <panic.h>
 
void frame_arch_init(void)
{
zone_t *z;
z = zone_create(0, config.memory_size, 0);
if (!z) {
panic("Can't allocate zone (%dB).\n", config.memory_size);
}
zone_attach(z);
zone_create_in_region(0, config.memory_size & ~(FRAME_SIZE - 1));
}