MIT 6.828 - 1.2 __acquires() 和 __releases()

Posted nlp-in-shell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MIT 6.828 - 1.2 __acquires() 和 __releases()相关的知识,希望对你有一定的参考价值。

在对 dup / dup2 的源码分析中,我遇到了一对 annotation ,即 __acquires__releases

static int do_dup2(struct files_struct *files,
    struct file *file, unsigned fd, unsigned flags)
__releases(&files->file_lock) // <- 这个东西
{
    // ... omitted
}

经查阅,此为内核代码静态分析工具 Sparse 的 annotation 。Sparse 通过 gcc 的扩展属性 __attribute__ 以及自己定义的 __context__ 来对代码进行静态检查 。

其他可见 内核文档一篇博客

以上是关于MIT 6.828 - 1.2 __acquires() 和 __releases()的主要内容,如果未能解决你的问题,请参考以下文章

1673_MIT 6.828 Homework xv6 lazy page allocation要求翻译

MIT-6.828 Lab 2实验报告

MIT-6.828 Lab3实验报

《MIT 6.828 Lab1: Booting a PC》实验报告

MIT 6.828 JOS????????????10. Lab 1 Part 3: The kernel

MIT 6.828 学习笔记5 Lab3实验报告