Rev 537 | Rev 539 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 537 | Rev 538 | ||
---|---|---|---|
Line 39... | Line 39... | ||
39 | #define FRAME_KA 1 /* skip frames conflicting with user address space */ |
39 | #define FRAME_KA 1 /* skip frames conflicting with user address space */ |
40 | #define FRAME_PANIC 2 /* panic on failure */ |
40 | #define FRAME_PANIC 2 /* panic on failure */ |
41 | 41 | ||
42 | #define FRAME2ADDR(zone, frame) ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE) |
42 | #define FRAME2ADDR(zone, frame) ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE) |
43 | #define ADDR2FRAME(zone, addr) (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE])) |
43 | #define ADDR2FRAME(zone, addr) (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE])) |
44 | #define FRAME_INDEX(zone, frame) ((count_t)((frame) - (zone)->frames)) |
44 | #define FRAME_INDEX(zone, frame) ((index_t)((frame) - (zone)->frames)) |
45 | #define FRAME_INDEX_VALID(zone, index) (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count))) |
45 | #define FRAME_INDEX_VALID(zone, index) (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count))) |
46 | #define IS_BUDDY_LEFT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 << ((frame)->buddy_order + 1))) == 0) |
46 | #define IS_BUDDY_LEFT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) & ~(((__native) -1)<<((frame)->buddy_order + 1))) == 0) |
47 | #define IS_BUDDY_RIGHT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) % (1 << ((frame)->buddy_order + 1))) == (1 << (frame)->buddy_order)) |
- | |
48 | 47 | ||
49 | #define ZONE_BLACKLIST_SIZE 3 |
48 | #define ZONE_BLACKLIST_SIZE 3 |
50 | 49 | ||
51 | struct zone { |
50 | struct zone { |
52 | link_t link; /**< link to previous and next zone */ |
51 | link_t link; /**< link to previous and next zone */ |