システム構成情報管理機能は、システム構成に関する各種の情報を保持・管理するための機能である。
システム構成情報の一部は標準定義として定めてあり、その中で最大タスク数やタイマ割込み間隔などの情報を定義するが、それ以外にもアプリケーションやサブシステム、デバイスドライバで任意に定義した情報を追加して利用できる。
システム構成情報の形式は、名称と定義データの組である。
最大16文字の文字列で表される。文字コードはUS-ASCIIを使用する。
使用可能な文字(UB): a~z A~Z 0~9 _
数値(整数)の並びまたは文字列により定義される。
使用可能な文字(UB): 0x00~0x1F,0x7F,0xFF(文字コード)を除く文字
システム構成情報をどの様に保持するかについては規定しないが、一般的にはメモリ(ROM/RAM)に保持する。したがって、あまり大量の情報を保持する目的には使用しない。
システム構成情報は、tk_get_cfn および tk_get_cfs によって取得できる。
なお、システムの実行中にシステム構成情報を追加・変更する機能はない。
システム構成情報を取得するためのAPIとして、tk_get_cfn と tk_get_cfs がある。これらの機能は、アプリケーションやサブシステム、デバイスドライバなどから利用可能であるほか、μT-Kernelの内部でも利用している。
システム構成情報から数値列の情報を取得する。name
の名称で定義されている数値列の情報を、最大 max
個まで取得し val
へ格納する。戻値に定義されている数値列情報の数を返す。戻値 > max
であれば、すべての情報を格納しきれていないことを示す。max
=0を指定することで、val
に格納せずに数値列の数を知ることができる。
name
の名称の情報が定義されていないときは E_NOEXS を返す。name
の名称で定義されている情報が文字列であった場合の動作は不定である。
この機能は、μT-Kernel/OSのシステムコールの呼出可能な保護レベルの制限を受けずに任意の保護レベルから呼び出すことができる。
システム構成情報から文字列の情報を取得する。name
の名称で定義されている文字列の情報を、最大 max
文字まで取得し、buf
へ格納する。格納した文字列が max
文字未満であれば、最後に'\0'を格納する。戻値に定義されている文字列情報の長さ('\0'は含まない)を返す。戻値 > max
であれば、すべての情報を格納しきれていないことを示す。max
=0を指定することで、buf
に格納せずに文字列の長さを知ることができる。
name
の名称で情報が定義されていないときは E_NOEXS を返す。name
の名称で定義されている情報が数値列であった場合の動作は不定である。
この機能は、μT-Kernel/OSのシステムコールの呼出可能な保護レベルの制限を受けずに任意の保護レベルから呼び出すことができる。
下記の定義情報を標準として定める。標準定義の名称はTを前置する。
製品情報
各オブジェクトの最大数
その他
文字列 | 標準定義の名称 | 説明 |
---|---|---|
N | TSysStkSz | デフォルトシステムスタックサイズ(バイト数) |
N | TSVCLimit | システムコールの呼出可能な最も低い保護レベル |
N | TTimPeriod | タイマ割込み間隔(ミリ秒単位) タイマ割込み間隔(マイクロ秒単位) |
ミリ秒単位の時間とマイクロ秒単位の時間を合わせた時間が、実際のタイマ割込み間隔の時間となる。マイクロ秒単位の時間を省略した場合は0とみなされる。
たとえば、タイマ割込み間隔を5ミリ秒とする場合は、"TTimPeriod 5" あるいは "TTimPeriod 0 5000" と記述する。タイマ割込み間隔を1.5ミリ秒(1500マイクロ秒)とする場合は、"TTimPeriod 1 500" あるいは "TTimPeriod 0 1500" と記述する。
デバイス管理
文字列 | 標準定義の名称 | 説明 |
---|---|---|
N | TMaxRegDev | 最大デバイス登録数 |
N | TMaxOpnDev | 最大デバイスオープン数 |
N | TMaxReqDev | 最大デバイスリクエスト数 |
N | TDEvtMbfSz | 事象通知用メッセージバッファのサイズ(バイト数) 事象通知のメッセージ最大長(バイト数) |
TDEvtMbfSz が定義されなかった場合、またはメッセージバッファのサイズに負数が設定された場合は、事象通知用メッセージバッファを使用しない。
上記の数値列情報で複数の数値が定義されるものは、説明の順序と同じ順序で配列に格納される。