いくつかのケースがあります:
- 一般に公開されているヘッダー (つまり、libc が引き継いで
/usr/include/linux
の下に置くもの) 、標準はどの記号を定義する必要があるかを指定し、システムに固有のその他の記号はアンダースコアと大文字または2つのアンダースコアで始まる必要があります。それが__KERNEL__
の理由です 特に、カーネルと libc の両方に含まれるヘッダーで使用され、一部の宣言が異なるためです。 - 内部コードでは、規則は通常その記号
__something
ですsomething
の主力製品です 一部の管理を除き、多くの場合ロックします。それが__d_lookup
のような理由です .システム コールの同様の規則は、sys_something
です。 カーネルとの間のコンテキスト スイッチを処理し、do_something
を呼び出すシステム コール エントリ ポイントです。 実際の仕事をする _t
suffix は、typedef の標準ライブラリ規則です。例えば。size_t
、ptrdiff_t
、foff_t
など。カーネル コードは、内部型についてもこの規則に従います。