この節では,TOPPERSソフトウェアのAPIの構成要素の名称に関するネーミングコンベンションについて 述べる.このネーミングコンベンションは,モジュール間のインタフェースに関わる名称に適用すること を想定しているが,モジュール内部の名称に適用してもよい.
2.13.1 モ ジュール識 別名
異なるモジュールのAPIの構成要素の名称が衝突することを避けるために,各モジュールに対して,それ を識別するためのモジュール識別名を定める.モジュール識別名は,英文字と数字で構成し,2〜8文字程 度の長さとする.
カーネルのモジュール識別名は"kernel",システムインタフェースレイヤのモジュール識別名は"sil"とす る.
APIの構成要素の名称には,モジュール識別名を含めることを原則とするが,カーネルのAPIなど,頻繁に 使用されて衝突のおそれが少ない場合には,モジュール識別名を含めない名称を使用する.
以下では,モジュール識別名の英文字を英小文字としたものをwww,英大文字としたものをWWWと表 記する.
2.13.2 デ ータ 型名
各サイズの整数型など,データの意味を定めない基本データ型の名称は,英小文字,数字,"_"で構成す る.データ型であることを明示するために,末尾が"_t"である名称とする.
複合データ型やデータの意味を定めるデータ型の名称は,英大文字,数字,""で構成する.データ型であ ることを明示するために,先頭が"T"または末尾が"_T"である名称とする場合もある.
データ型の種類毎に,次のネーミングコンベンションを定める.
(A) パケットのデータ型
T_CYYY acre_yyyに渡すパケットのデータ型 T_DYYY def_yyyに渡すパケットのデータ型 T_RYYY ref_yyyに渡すパケットのデータ型
T_WWW_CYYY www_acre_yyyに渡すパケットのデータ型 T_WWW_DYYY www_def_yyyに渡すパケットのデータ型 T_WWW_RYYY www_ref_yyyに渡すパケットのデータ型
2.13.3 関 数名
関数の名称は,英小文字,数字,"_"で構成する.
関数の種類毎に,次のネーミングコンベンションを定める.
(A) サービスコール
サービスコールは,xxx_yyyまたはwww_xxx_yyyの名称とする.ここで,xxxは操作の方法,yyyは操作 の対象を表す.xxx_yyyまたはwww_xxx_yyyから派生したサービスコールは,それぞれzxxx_yyyまた はwww_zxxx_yyyの名称とする.ここでzは,派生したことを表す文字である.派生したことを表す文字 を2つ付加する場合には,zzxxx_yyyまたはwww_zzxxx_yyyの名称となる.
非タスクコンテキストから呼び出せるサービスコールは,サービスコールの名称に"i"を付加し
た,ixxx_yyy,izxxx_yyy,www_ixxx_yyy,www_izxxx_yyyといった名称で呼び出すこともできる
【NGKI0562】.
【補足説明】
サービスコールの名称を構成する省略名(xxx,yyy,z)の元になった英語については,「5.10 省略名の 元になった英語」の節を参照すること.
【μITRON4.0仕様,μITRON4.0/PX仕様との関係】
「2.5.2 タスクコンテキストと非タスクコンテキスト」の節で述べた通り,非タスクコンテキストからもタ スクコンテキストと同じ名称のサービスコールを呼び出すこととしたが,過去との互換性のために,"i"を 付加した名称で呼び出すこともできるものとした.
(B) コールバック
コールバックの名称は,サービスコールのネーミングコンベンションに従う.
2.13.4 変数名
変数(const修飾子のついたものを含む)の名称は,英小文字,数字,"_"で構成する.データ型が異なる 変数には,異なる名称を付けることを原則とする.
変数の名称に関して,次のガイドラインを設ける.
〜id 〜ID(オブジェクトのID番号,ID型)
〜no 〜番号(オブジェクト番号)
〜atr 〜属性(オブジェクト属性,ATR型)
〜stat 〜状態(オブジェクト状態,STAT型)
〜mode 〜モード(サービスコールの動作モード,MODE型)
〜pri 〜優先度(優先度,PRI型)
〜sz 〜サイズ(単位はバイト数,size_t型またはuint_t型)
〜cnt 〜の個数(単位は個数,uint_t型)
〜ptn 〜パターン
〜tim 〜時刻,〜時間
〜cd 〜コード i〜 〜の初期値
max〜 〜の最大値
min〜 〜の最小値
left〜 〜の残り
また,ポインタ変数(関数ポインタを除く)の名称に関して,次のガイドラインを設ける.
p_〜 ポインタ
pp_〜 ポインタを入れる領域へのポインタ pk_〜 パケットへのポインタ
ppk_〜 パケットへのポインタを入れる領域へのポインタ 変数の種類毎に,次のネーミングコンベンションを定める.
(A) パケットへのポインタ
pk_cyyy acre_yyyに渡すパケットへのポインタ pk_dyyy def_yyyに渡すパケットへのポインタ pk_ryyy ref_yyyに渡すパケットへのポインタ
pk_www_cyyy www_acre_yyyに渡すパケットへのポインタ pk_www_dyyy www_def_yyyに渡すパケットへのポインタ pk_www_ryyy www_ref_yyyに渡すパケットへのポインタ
2.13.5 定 数名
定数(C言語プリプロセッサのマクロ定義によるもの)の名称は,英大文字,数字,"_"で構成する.
定数の種類毎に,次のネーミングコンベンションを定める.
(A) メインエラーコード
メインエラーコードは,先頭が"E_"である名称とする.
(B) 機能コード
TFN_XXX_YYY xxx_yyyの機能コード
TFN_WWW_XXX_YYY www_xxx_yyyの機能コード (C) その他の定数
その他の定数は,先頭がTUU_またはTUU_WWW_である名称とする.ここでUUは,定数の種類または データ型を表す.同じパラメータまたはリターンパラメータに用いられる定数の名称については,UUを同 一にすることを原則とする.
また,定数の名称に関して,次のガイドラインを設ける.
TA_〜 オブジェクトの属性値
TSZ_〜 〜のサイズ
TBIT_〜 〜のビット数
TMAX_〜 〜の最大値 TMIN_〜 〜の最小値
2.13.6 マクロ 名
マクロ(C言語プリプロセッサのマクロ定義によるもの)の名称は,それが表す構成要素のネーミングコ ンベンションに従う.すなわち,関数を表すマクロは関数のネーミングコンベンションに,定数を表すマ クロは定数のネーミングコンベンションに従う.ただし,簡単な関数を表すマクロや,副作用があるなど の理由でマクロであることを明示したい場合には,英大文字,数字,"_"で構成する場合もある.
マクロの種類毎に,次のネーミングコンベンションを定める.
(A) 構成マクロ
構成マクロの名称は,英大文字,数字,"_"で構成し,次のガイドラインを設ける.
TSZ_〜 〜のサイズ
TBIT_〜 〜のビット数
TMAX_〜 〜の最大値 TMIN_〜 〜の最小値
2.13.7 静的 API名
静的APIの名称は,英大文字,数字,"_"で構成し,対応するサービスコールの名称中の英小文字を英大文 字で置き換えたものとする.対応するサービスコールがない場合には,サービスコールのネーミングコン ベンションに従って定めた名称中の英小文字を英大文字で置き換えたものとする.
2.13.8 ファイル 名
ファイルの名称は,英小文字,数字,"_","."で構成する.英大文字と英小文字を区別しないファイルシス テムに対応するために,英大文字は使用しない.また,"-"も使用しない.
ファイルの種類毎に,次のネーミングコンベンションを定める.
(A) ヘッダファイル
モジュールを用いるために必要な定義を含むヘッダファイルは,そのモジュールのモジュール識別名の末 尾に".h"を付加した名前(すなわち,www.h)とする.
2.13.9 モ ジュール 内部 の 名称 の衝突回 避
モジュール内部の名称が,他のモジュール内部の名称と衝突することを避けるために,次のガイドライン を設ける.
モジュール内部に閉じて使われる関数や変数などの名称で,オブジェクトファイルのシンボル表に登録さ れて外部から参照できる名称は,C言語レベルで,先頭が_www_または_WWW_である名称とする.例え ば,カーネルの内部シンボルは,C言語レベルで,先頭が"kernel"または"KERNEL"である名称とする.
また,モジュールを用いるために必要な定義を含むヘッダファイル中に用いる名称で,それをインクルー ドする他のモジュールで使用する名称と衝突する可能性のある名称は,"TOPPERS_"で始まる名称とす る.