システム構成情報管理機能

システム構成情報管理機能は、システム構成に関する各種の情報を保持・管理するための機能である。

システム構成情報の一部は標準定義として定めてあり、その中で最大タスク数やタイマ割込み間隔などの情報を定義するが、それ以外にもアプリケーションやサブシステム、デバイスドライバで任意に定義した情報を追加して利用できる。

システム構成情報の形式は、名称と定義データの組である。

名称

最大16文字の文字列で表される。文字コードはUS-ASCIIを使用する。

使用可能な文字(UB): a~z A~Z 0~9 _

定義データ

数値(整数)の並びまたは文字列により定義される。

使用可能な文字(UB): 0x00~0x1F,0x7F,0xFF(文字コード)を除く文字

例 5. システム構成情報の形式の例

名称定義データ
SysVer3 0
SysNamemicroT-Kernel Version 3.00

システム構成情報をどの様に保持するかについては規定しないが、一般的にはメモリ(ROM/RAM)に保持する。したがって、あまり大量の情報を保持する目的には使用しない。

システム構成情報は、tk_get_cfn および tk_get_cfs によって取得できる。

なお、システムの実行中にシステム構成情報を追加・変更する機能はない。

システム構成情報の取得

システム構成情報を取得するためのAPIとして、tk_get_cfntk_get_cfs がある。これらの機能は、アプリケーションやサブシステム、デバイスドライバなどから利用可能であるほか、μT-Kernelの内部でも利用している。

tk_get_cfn - システム構成情報から数値列取得

C言語インタフェース

#include <tk/tkernel.h>

INT ct = tk_get_cfn(CONST UB *name, W *val, INT max);

パラメータ

CONST UB* name Name名称
W* val Value数値列を格納する配列
INT max Maximum Countval の配列の要素数

リターンパラメータ

INT ct Defined Numeric Information Count定義されている数値情報の個数
またはError Codeエラーコード

エラーコード

E_NOEXS name の名称で情報が定義されていない

利用可能なコンテキスト

タスク部準タスク部タスク独立部
×

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本APIはサポートされる。

TK_SUPPORT_SYSCONF システム構成情報管理機能のサポート

解説

システム構成情報から数値列の情報を取得する。name の名称で定義されている数値列の情報を、最大 max 個まで取得し val へ格納する。戻値に定義されている数値列情報の数を返す。戻値 > max であれば、すべての情報を格納しきれていないことを示す。max=0を指定することで、val に格納せずに数値列の数を知ることができる。

name の名称の情報が定義されていないときは E_NOEXS を返す。name の名称で定義されている情報が文字列であった場合の動作は不定である。

この機能は、μT-Kernel/OSのシステムコールの呼出可能な保護レベルの制限を受けずに任意の保護レベルから呼び出すことができる。

tk_get_cfs - システム構成情報から文字列取得

C言語インタフェース

#include <tk/tkernel.h>

INT rlen = tk_get_cfs(CONST UB *name, UB *buf, INT max);

パラメータ

CONST UB* name Name名称
UB* buf Buffer文字列を格納する配列
INT max Maximum Lengthbuf の最大長(バイト数)

リターンパラメータ

INT rlen Size of Defined Character String Information定義されている文字列情報の長さ(バイト数)
またはError Codeエラーコード

エラーコード

E_NOEXS name の名称で情報が定義されていない

利用可能なコンテキスト

タスク部準タスク部タスク独立部
×

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本APIはサポートされる。

TK_SUPPORT_SYSCONF システム構成情報管理機能のサポート

解説

システム構成情報から文字列の情報を取得する。name の名称で定義されている文字列の情報を、最大 max 文字まで取得し、buf へ格納する。格納した文字列が max 文字未満であれば、最後に'\0'を格納する。戻値に定義されている文字列情報の長さ('\0'は含まない)を返す。戻値 > max であれば、すべての情報を格納しきれていないことを示す。max=0を指定することで、buf に格納せずに文字列の長さを知ることができる。

name の名称で情報が定義されていないときは E_NOEXS を返す。name の名称で定義されている情報が数値列であった場合の動作は不定である。

この機能は、μT-Kernel/OSのシステムコールの呼出可能な保護レベルの制限を受けずに任意の保護レベルから呼び出すことができる。

標準システム構成情報

下記の定義情報を標準として定める。標準定義の名称はTを前置する。

文字列説明
N数値列情報
S文字列情報

上記の数値列情報で複数の数値が定義されるものは、説明の順序と同じ順序で配列に格納される。

例 6. 複数の数値の格納順の例


tk_get_cfn("TDEvtMbfSz", val, 2)

val[0] = 事象通知用メッセージバッファのサイズ
val[1] = 事象通知のメッセージ最大長