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); |