SYMBOL_NAME(init_task_union)+8192 疑问?
arch/i386/kernel/process.c, line 22~24:union task_union init_task_union__attribute__((__section__(".data.init_task"))) =
{ INIT_TASK(init_task_union.task) };include/linux/linkage.h, line 21:#define SYMBOL_NAME(X) Xarch/i386/kernel/head.S, line 330~332:ENTRY(stack_start)
.long SYMBOL_NAME(init_task_union)+8192
.long __KERNEL_DS对于C编译器来讲,直接将union变量与8192相加,是不允许的。这里这样写,是因为当前在.S文件里吧?C里,要得到地址就得加&;汇编里,变量本身就是表示一块内存开始位置的标记。是不? 是的,汇编没有左右值之分,符号即地址。
至少对at&t语法是这样的,不知道其它家的要求是啥样的。 回复 2# nswcfd
噢,我又要辍学了{:yct68:} 。 干活。。 加班。。
页:
[1]