1

在洋红色内核中有一段,其中 struct 不仅有类型和名称,而且还有一个选项。我在参考资料中发现没有任何东西可以解释这种语法。那么 __CPU_ALIGN 作为 struct for 中的参数是什么,我在哪里可以找到它的语法?

结构类型名称???

#if WITH_SMP
/* a global state structure, aligned on cpu cache line to minimize aliasing */
struct mp_state mp __CPU_ALIGN = {
    .hotplug_lock = MUTEX_INITIAL_VALUE(mp.hotplug_lock),
    .ipi_task_lock = SPIN_LOCK_INITIAL_VALUE,
};

我知道 __CPU_ALIGN 本身用于为 CPU 内存大小对齐字节。

4

1 回答 1

0

aligned它是属性的宏简写,是 GCC 扩展。

宏定义如下:

#define __CPU_ALIGN __ALIGNED(CACHE_LINE)

宏 __ALIGNED 依次定义如下:

#define __ALIGNED(x) __attribute__((aligned(x)))

...与 GCC 文档中的语法相匹配。(CACHE_LINE 的值取决于架构。)

于 2017-05-10T12:00:25.990 回答