Subversion Repositories HelenOS-historic

Rev

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

Rev 762 Rev 763
Line 46... Line 46...
46
 
46
 
47
#define FRAME_OK        0   /* frame_alloc return status */
47
#define FRAME_OK        0   /* frame_alloc return status */
48
#define FRAME_NO_MEMORY     1   /* frame_alloc return status */
48
#define FRAME_NO_MEMORY     1   /* frame_alloc return status */
49
#define FRAME_ERROR     2   /* frame_alloc return status */
49
#define FRAME_ERROR     2   /* frame_alloc return status */
50
 
50
 
51
#define FRAME2ADDR(zone, frame)         ((zone)->base + ((frame) - (zone)->frames) * FRAME_SIZE)
51
#define FRAME2ADDR(zone, frame)         ((zone)->base + (((frame) - (zone)->frames) << FRAME_WIDTH))
52
#define ADDR2FRAME(zone, addr)          (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE]))
52
#define ADDR2FRAME(zone, addr)          (&((zone)->frames[(((addr) - (zone)->base) >> FRAME_WIDTH)]))
53
#define FRAME_INDEX(zone, frame)        ((index_t)((frame) - (zone)->frames))
53
#define FRAME_INDEX(zone, frame)        ((index_t)((frame) - (zone)->frames))
54
#define FRAME_INDEX_ABS(zone, frame)        (((index_t)((frame) - (zone)->frames)) + (zone)->base_index)
54
#define FRAME_INDEX_ABS(zone, frame)        (((index_t)((frame) - (zone)->frames)) + (zone)->base_index)
55
#define FRAME_INDEX_VALID(zone, index)      (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count)))
55
#define FRAME_INDEX_VALID(zone, index)      (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count)))
56
#define IS_BUDDY_ORDER_OK(index, order)     ((~(((__native) -1) << (order)) & (index)) == 0)
56
#define IS_BUDDY_ORDER_OK(index, order)     ((~(((__native) -1) << (order)) & (index)) == 0)
57
#define IS_BUDDY_LEFT_BLOCK(zone, frame)    (((FRAME_INDEX((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0)
57
#define IS_BUDDY_LEFT_BLOCK(zone, frame)    (((FRAME_INDEX((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0)