在 include/linux/kernel.h 中有代码如下
:
#define ALIGN(x,a) __ALIGN_MASK((x),(typeof(x))(a)-1)
#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
这种对齐方式适合:
- 向上增长的方向
- 不适合向下分配空间使用。
用图表示如下:
【1】如果地址是0x3000 0001、0x3000 0002 ... 、0x3000 0010 ,最终都会对齐到0x3000 0010