洋红色内核中具有三个选项的 C 结构

标签 c struct magenta

在 magenta 内核中有一个段落,其中 struct 不仅有一个类型和名称,还有一个选项。我在引用资料中找不到任何内容来解释该语法。那么什么是 __CPU_ALIGN 作为 struct for 中的参数,我在哪里可以找到它的语法?

struct type name ???

#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 内存大小对齐字节。

最佳答案

它是 aligned attribute 的宏简写, 这是一个 GCC 扩展。

宏定义如下:

#define __CPU_ALIGN __ALIGNED(CACHE_LINE)

宏 __ALIGNED 依次定义如下:

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

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

关于洋红色内核中具有三个选项的 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43891648/

相关文章:

c - Mac OS X 的类似 readelf 的工具?

c - 如何知道 C 函数中局部声明/循环的行号

c - 将结构数组作为参数传递给 C 中的函数

c - C 中的加载结构

swift - 这个结构中使用的init方法令人困惑?

tensorflow - 洋红色构建目标的预期输出和预期构建路径行为是什么?

c - 从c中的sqlite数据库中选择多个项目

python - 使用 "pip install magenta"的 Magenta 安装即使在新环境中也有错误

无法安装我的驱动程序