iris SDK の関数はその分野に応じてカテゴリとよばれる分類がされておりネーミングでもそれがわかるように配慮されています.
[A-Z][A-Z0-9]+
| OS | OS システムに関するもの |
|---|---|
| G2,G3,GX... | グラフィクスに関するもの(例外的に数字が含まれる) |
| MI | DMA などメモリのやり取りに関するもの |
| SVC | システムコールに関するもの |
[A-Z][a-z]+
| Os | OS システムに関するもの |
|---|---|
| Mi | DMA などメモリのやり取りに関するもの |
| Svc | システムコールに関するもの |
(03/11/13)
関数のネーミングは以下のようになっています.[動詞] や[目的語] は単語毎に先頭一文字を大文字にしてアンダースコアなしに連結します.
例 OS_SetInterruptMask, OS_IsLocked
例 OSi_SetInterruptMaskBase
ただし慣習としてこのルールに則さないものも一部あります.(OS_InterruptHandler とか)
(03/11/13)
typedef でのネーミングは基本的にはGAMECUBEを踏襲しているので関数と形態が同じになっています.カテゴリ名の後が[動詞]ではないということなどで見分ける必要があります.
例 OS_InterruptCallback
例 OS_CopyMode
例外としてAPI の動作そのもののコントロールをするための型として上記のような OS_CopyModeという形のものもあります.この場合 GX_Copy というような関数の動作のコントロールに使用されるのでしょう.同じようなものに GX_CopyStatues, GX_CopyType というのも考えられます.このような場合にはこの形式は自然なネーミングなので認められていますがあまり濫用しないように注意してください.
(03/11/13)
enum, define, const で定義される定数は以下のような形式となります.
例 OS_INTERRUPT_MAX, Os_INTERRUPT_MAX
サブプロセッサの場合、カテゴリ名にアルファベットの小文字が含まれていますので注意してください.
(03/11/13)