TwlSDK の関数はその分野に応じてカテゴリとよばれる分類がされておりネーミングでもそれがわかるように配慮されています。
[A-Z][A-Z0-9]+
| OS | OS システムに関するもの |
|---|---|
| G2,G3,GX... | グラフィクスに関するもの(例外的に数字が含まれる) |
| MI | DMA などメモリのやり取りに関するもの |
| SVC | システムコールに関するもの |
(03/11/13)
※)カテゴリのメインプロセッサとサブプロセッサの区別はなくなり、全て大文字に統一されました
(04/01/18)
関数のネーミングは以下のようになっています。[動詞] や[目的語] は単語毎に先頭一文字を大文字にしてアンダースコアなしに連結します。
例 OS_SetInterruptMask, OS_IsLocked
例 OSi_SetInterruptMaskBase
ただし慣習としてこのルールに則さないものも一部あります。(OS_InterruptHandler とか)
(03/11/13)
オブジェクトを生成初期化する関数の名称を決めるときに Create を使う場合と Init を使う場合の2つの方法が考えられます。この場合は明示的に廃棄のための関数呼び出しを行なわねば成らない場合は Create を使用し、廃棄処理を行なう必要のない場合は Init を使用するという使い分けをしてください。
(03/12/15)
typedef でのネーミングは基本的にはGAMECUBEを踏襲しているので関数と形態が同じになっています。カテゴリ名の後が[動詞]ではないということなどで見分ける必要があります。
例 OSInterruptCallback
例 OSCopyMode
例外としてAPI の動作そのもののコントロールをするための型として上記のような OSCopyModeという形のものもあります。この場合 GXCopy というような関数の動作のコントロールに使用されるのでしょう。同じようなものに GXCopyStatues, GXCopyType というのも考えられます。このような場合にはこの形式は自然なネーミングなので認められていますがあまり濫用しないように注意してください。
(03/11/13)
enum, define, const で定義される定数は以下のような形式となります。
例 OS_INTERRUPT_MAX, OS_INTERRUPT_MAX
(04/01/18)