refpolicy
構成要素を洗い直してみる。
- サポートプログラム
- supportディレクトリ以下。普通の人は気にしない
- Makefile
- モジュール
- ソースコードレベルのモジュールのようだ。
- ifファイル、teファイル, fcファイルの組み合わせのことをそう呼ぶ。
- policy/module以下に配置
- ソースコードレベルのモジュールのようだ。
- マクロ
- 以下参照
マクロ
マクロには3通りあるらしい。
- 1) interface (インターフェース)
各アプリのifファイルの「interface」で定義。
- 2) template(テンプレート)
各アプリのifファイルの「template」で定義
- 3) support(サポート)
policy/supportディレクトリ以下の、.sptファイルで定義
が、interfaceとtemplateの違いについては、どこにも記述がない!
困った。例を当たって推測してみるしかない。
- interfaceの定義
name_of_interface(domain)
のように、マクロの引数が、ドメイン名か、タイプであるもの。
かつ、name_of_interfaceの中で、依存関係の記述がある。
- templateの定義
templateは、
name_of_template(domain_prefx)
のように、マクロの引数が、タイプから_tを除いたものであるもの。
こういうマクロは、マクロ内で色々タイプの宣言が行われたりする。
また、interfaceの定義にマッチしないものもtemplateになってる。
domain_transマクロはその例。引数はドメイン名だが、依存関係が特にない。
- サポートマクロの定義
原則として、引数にドメイン/タイプが入らないものなようだ。
が、can_execマクロみたいなやつがまざったりしている。
にしても、ドキュメントが生成されるようになったとはいえ、
すさまじい数のマクロだ。どのマクロを使えばいいかは、
とてもじゃないけどわからんなぁ。