当我阅读tty_io.c时,我看到了这个定义。这个__releases()是什么意思?
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);
}发布于 2013-09-05 11:46:34
它是一个预处理宏,最终生成一个附加于函数的属性,以向编译器或其他工具提供有关它的详细信息。
下面是compiler.h中对linux内核的定义(很明显,这就是您所看到的):
# define __releases(x) __attribute__((context(x,1,0)))它在ifdef __CHECKER__内部,根据到这个维基百科页面的说法,这意味着静态分析器“稀疏”使用它。
发布于 2013-09-05 11:51:06
显然 __releases和__acquires是Linux编译器.h头中定义的两个宏,它们与稀疏静态检查器一起使用,用于计数已释放和获得的锁(以确保它们是平衡的)。
发布于 2013-09-05 11:50:49
稀疏使用的预处理宏
稀疏是一种用于查找Linux内核中可能的编码错误的计算机软件工具。
如果您查看wiki页面,您会发现在linux的某个头文件中,__releases被__attribute__ GCC扩展名所取代。
https://stackoverflow.com/questions/18635425
复制相似问题