首页 > 代码库 > [原]__ASSEMBLY__的用途

[原]__ASSEMBLY__的用途

在Linux Kernel中有些constant需要被C code 跟 assembler共同使用

在用constant的時候,不能單方面給0x1000UL因為assembler無法看這東西。

但是C compiler卻可以。所以使用這個gcc feature.

讓C compiler看到的constant是0x1000UL.

而assembler看起來是0x1000.

6/* Some constant macros are used in both assembler and
7* C code. Therefore we cannot annotate them always with
8* ‘UL‘ and other type specifiers unilaterally. We
9* use the following macros to deal with this.
10*
11* Similarly, _AT() will cast an expression with a type in C, but
12* leave it unchanged in asm.
13*/

ref.

[1] http://code.woboq.org/linux/linux/include/uapi/linux/const.h.html