C 这是什么语法?(tty_写入_解锁)

C 这是什么语法?(tty_写入_解锁),c,function,syntax,C,Function,Syntax,当我读tty_io.c时,我看到了这个定义。这是什么意思 它是一个预处理器宏,最终生成附加到函数的某个属性,以向编译器或其他工具提供有关该函数的详细信息 以下是linux内核的定义(这显然是您正在查看的): 它位于ifdef\uuuuu CHECKER\uuuu\uuuuu\uuuu\ucode>内部,根据这一点,这意味着它由静态分析器“稀疏”使用 稀疏是一种计算机软件工具,旨在查找Linux内核中可能的编码错误 如果您查看wiki页面,您将看到linux头文件中的某个地方,\uuuu rele

当我读tty_io.c时,我看到了这个定义。这是什么意思


它是一个预处理器宏,最终生成附加到函数的某个属性,以向编译器或其他工具提供有关该函数的详细信息

以下是linux内核的定义(这显然是您正在查看的):


它位于
ifdef\uuuuu CHECKER\uuuu\uuuuu\uuuu\ucode>内部,根据这一点,这意味着它由静态分析器“稀疏”使用

稀疏是一种计算机软件工具,旨在查找Linux内核中可能的编码错误


如果您查看wiki页面,您将看到linux头文件中的某个地方,
\uuuu releases
替换为
\uuu attribute\uuuuu
GCC扩展。

\uuuu releases
\uu acquireds
是Linux编译器.h头中定义的两个宏,与静态检查器一起使用,以统计释放和获取的锁数(以确保它们是平衡的).

快速的谷歌搜索找到了答案:
void tty_write_unlock(struct tty_struct *tty)
    __releases(&tty->atomic_write_lock)
{
    mutex_unlock(&tty->atomic_write_lock);
    wake_up_interruptible_poll(&tty->write_wait, POLLOUT);
}
# define __releases(x)  __attribute__((context(x,1,0)))