linux 2.6.11 在__alloc_bootmem_core中,三句话没看懂:[code]BUG_ON(align & (align-1)); if (align && (bdata->node_boot_start & (align - 1UL)) != 0) offset = (align - (bdata->node_boot_start & (align - 1UL))); preferred = ((preferred + align - 1) & ~(align - 1)) >> PAGE_SHIFT;[/code]这里的align使用没看懂,比如align & (align-1)是咋会事?
by embeddedlwp - 内核源码 - 2011-10-23 12:47:34 阅读(1883) 回复(6)
vertical-align属性 vertical-align属性算是CSS中一个比较不好理解的,记下自己的理解。 vertical-align可以用三个2来总结:两种情况;两个概念;两个属性。 两种情况: vertical-align可以用在display:table-cell 的下面(典型的就是td),这时的有四个可取值baseline|top|middle|bottom。这种情况下比较简单,分别用cell box的baseline、top、middle、bottom对齐这一行的baseline、top、middle、bottom即可。 ...
今决定认真分析一下u-boot的代码,但一开始就被“.balignl 16 0xdeadbeef”这条语句难住了,还好,google了一下,找到了《分析了一下 align 的用法》这篇文章,作者写得很好,看完后,我根据自己的实验结果,做了适当的更改,以让自己看起来更明白,把它记录如下: .align 就是用来对齐的,究竟怎么对齐,有啥情况?下面分析一下 (一) $vim align1.s 在新建的文件编辑以下代码: _start: b reset .byte 0x55 .byte 0...
$objdump -h obj [code] obj: file format elf32-i386 SECTION 0 [.text] : size 000000f7 vma 00000000 lma 00000000 align 2**4 ALLOC, LOAD, READONLY, CODE SECTION 1 [.bss] : size 00000018 vma 00000000 lma 00000000 align 2**2 ALLOC, LOAD, DATA SECTION 2 [.comment] : size 00000024 vma 00000000 lma 00000000 align 2**0 READONLY [/code] 注意到 .text 的 align 为2**4,有什么办法改为 2**2吗?十分感谢。...
在include\linux kernel.h文件中有一个宏定义
#define align(x,a) (((x)+(a)-1)&~(a-1)) 不太清楚这个位运算是做什么的,哪位高手帮助一下,谢谢!:wink:
[ 本帖最后由 _LoveLinux 于 2008-11-6 22:34 编辑 ]
例如vxprint -g racdg -G -F%align
还有vxprint -g racdg -F %dco_name
尤其是%后面的那些保留字在哪里能查到所有保留字?
最近入手了搭载Advance Format的WD1.5TB EARS硬碟,才开始注意Advance Format这东西,花了点时间研读一下WD本身和Anandtech.com上的说明,才搞清楚因应的措施。虽然之前站上已经有些朋友在该款硬碟的讨论串里做了颇详细的说明,不过敝人还是希望能独立出一篇供初次使用的朋友参考,如有错误,也请不吝指教。\r\n\r\n懒的看说明的朋友可以直接跳到红字部份决定何时该使用WD align。\r\n\r\n说明:\r\nAdvanced Format只是WD称呼实体...
Linux中 align宏背后的原理
1. 引子
int a;
int size = 8;
如果让a为(size =8)的整数倍表示成二进制应是什么样子呢?那就是让这个数表示成二进制时的最后三位为0.
而要达到这一目标,只要下面这个数与它进行与运算就可以了:
11111111 11111111 11111111 11111000
而上面这个数实际下就是 ~ (size - 1),可以将该数称为size的对齐掩码size_mask.
可这样做求出的是比a小的那个最大的8的倍数. 如果要求出比a大的...