Subversion Repositories HelenOS-historic

Rev

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