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 */ |