Subversion Repositories HelenOS-historic

Rev

Rev 548 | Rev 623 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 548 Rev 564
Line 43... Line 43...
43
 
43
 
44
#define FRAME2ADDR(zone, frame)         ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE)
44
#define FRAME2ADDR(zone, frame)         ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE)
45
#define ADDR2FRAME(zone, addr)          (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE]))
45
#define ADDR2FRAME(zone, addr)          (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE]))
46
#define FRAME_INDEX(zone, frame)        ((index_t)((frame) - (zone)->frames))
46
#define FRAME_INDEX(zone, frame)        ((index_t)((frame) - (zone)->frames))
47
#define FRAME_INDEX_VALID(zone, index)      (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count)))
47
#define FRAME_INDEX_VALID(zone, index)      (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count)))
-
 
48
#define IS_BUDDY_ORDER_OK(index, order)     ((~(((__native) -1) << (order)) & (index)) == 0)
48
#define IS_BUDDY_LEFT_BLOCK(zone, frame)    ((FRAME_INDEX((zone), (frame)) & ~(((__native) -1)<<((frame)->buddy_order + 1))) == 0)
49
#define IS_BUDDY_LEFT_BLOCK(zone, frame)    (((FRAME_INDEX((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0)
-
 
50
#define IS_BUDDY_RIGHT_BLOCK(zone, frame)   (((FRAME_INDEX((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 1)
49
 
51
 
50
#define ZONE_BLACKLIST_SIZE 3
52
#define ZONE_BLACKLIST_SIZE 3
51
 
53
 
52
struct zone {
54
struct zone {
53
    link_t link;        /**< link to previous and next zone */
55
    link_t link;        /**< link to previous and next zone */