Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 561 → Rev 564

/kernel/trunk/generic/include/align.h
29,6 → 29,18
#ifndef __ALIGN_H__
#define __ALIGN_H__
 
#define ALIGN(s, a) ((s) % (a) ? (((s) / (a)) + 1) * (a) : (s))
/** Align to the nearest higher address.
*
* @param s Address or size to be aligned.
* @param a Size of alignment.
*/
#define ALIGN_UP(s, a) ((s) % (a) ? (((s) / (a)) + 1) * (a) : (s))
 
/** Align to the nearest lower address.
*
* @param s Address or size to be aligned.
* @param a Size of alignment.
*/
#define ALIGN_DOWN(s, a) ((s) & ~((a)-1))
 
#endif
/kernel/trunk/generic/include/mm/frame.h
45,7 → 45,9
#define ADDR2FRAME(zone, addr) (&((zone)->frames[((addr) - (zone)->base) / FRAME_SIZE]))
#define FRAME_INDEX(zone, frame) ((index_t)((frame) - (zone)->frames))
#define FRAME_INDEX_VALID(zone, index) (((index) >= 0) && ((index) < ((zone)->free_count + (zone)->busy_count)))
#define IS_BUDDY_LEFT_BLOCK(zone, frame) ((FRAME_INDEX((zone), (frame)) & ~(((__native) -1)<<((frame)->buddy_order + 1))) == 0)
#define IS_BUDDY_ORDER_OK(index, order) ((~(((__native) -1) << (order)) & (index)) == 0)
#define IS_BUDDY_LEFT_BLOCK(zone, frame) (((FRAME_INDEX((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 0)
#define IS_BUDDY_RIGHT_BLOCK(zone, frame) (((FRAME_INDEX((zone), (frame)) >> (frame)->buddy_order) & 0x1) == 1)
 
#define ZONE_BLACKLIST_SIZE 3