Rev 816 | Rev 822 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 816 | Rev 820 | ||
|---|---|---|---|
| Line 72... | Line 72... | ||
| 72 | static inline pfn_t ADDR2PFN(__address addr) |
72 | static inline pfn_t ADDR2PFN(__address addr) |
| 73 | { |
73 | { |
| 74 | return (pfn_t)(addr >> FRAME_WIDTH); |
74 | return (pfn_t)(addr >> FRAME_WIDTH); |
| 75 | } |
75 | } |
| 76 | 76 | ||
| 77 | static inline pfn_t SIZE2PFN(__address size) |
77 | static inline count_t SIZE2FRAMES(size_t size) |
| 78 | { |
78 | { |
| 79 | if (!size) |
79 | if (!size) |
| 80 | return 0; |
80 | return 0; |
| 81 | return (pfn_t)((size-1) >> FRAME_WIDTH)+1; |
81 | return (count_t)((size-1) >> FRAME_WIDTH)+1; |
| 82 | } |
82 | } |
| 83 | 83 | ||
| 84 | #define IS_BUDDY_ORDER_OK(index, order) ((~(((__native) -1) << (order)) & (index)) == 0) |
84 | #define IS_BUDDY_ORDER_OK(index, order) ((~(((__native) -1) << (order)) & (index)) == 0) |
| 85 | #define IS_BUDDY_LEFT_BLOCK(zone, frame) (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0) |
85 | #define IS_BUDDY_LEFT_BLOCK(zone, frame) (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0) |
| 86 | #define IS_BUDDY_RIGHT_BLOCK(zone, frame) (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 1) |
86 | #define IS_BUDDY_RIGHT_BLOCK(zone, frame) (((frame_index((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 1) |
| Line 93... | Line 93... | ||
| 93 | 93 | ||
| 94 | extern void frame_init(void); |
94 | extern void frame_init(void); |
| 95 | __address frame_alloc_generic(__u8 order, int flags, int * status, int *pzone); |
95 | __address frame_alloc_generic(__u8 order, int flags, int * status, int *pzone); |
| 96 | extern void frame_free(__address addr); |
96 | extern void frame_free(__address addr); |
| 97 | 97 | ||
| 98 | extern void zone_create(pfn_t start, pfn_t count, pfn_t confframe, int flags); |
98 | extern void zone_create(pfn_t start, count_t count, pfn_t confframe, int flags); |
| 99 | 99 | ||
| 100 | void * frame_get_parent(pfn_t frame, int hint); |
100 | void * frame_get_parent(pfn_t frame, int hint); |
| 101 | void frame_set_parent(pfn_t frame, void *data, int hint); |
101 | void frame_set_parent(pfn_t frame, void *data, int hint); |
| 102 | void frame_mark_unavailable(pfn_t start, pfn_t count); |
102 | void frame_mark_unavailable(pfn_t start, count_t count); |
| 103 | __address zone_conf_size(pfn_t start, pfn_t count); |
103 | __address zone_conf_size(pfn_t start, count_t count); |
| 104 | 104 | ||
| 105 | /* |
105 | /* |
| 106 | * Console functions |
106 | * Console functions |
| 107 | */ |
107 | */ |
| 108 | extern void zone_print_list(void); |
108 | extern void zone_print_list(void); |