この章の目次にもどる
前頁:1.9 時計管理にもどる
次頁:第2章 ディスプレイプリミティブにすすむ

1.10 システム管理機能

システム管理機能では、下記のような機能を提供している。

1.10.1 データ / 定数の定義

□ OSバージョン

システム管理機能として OS バージョンの取得機能が用意されている。

typedef struct {
    UH  maker;      /* メーカー */
    UH  id;         /* 形式番号 */
    UH  spver;      /* 仕様書バージョン */
    UH  prver;      /* 製品バージョン */
    UH  prno[4];    /* 製品管理情報 */
    UH  cpu;        /* CPU 情報 */
    UH  var;        /* バリエーション記述子 */
} T_VER;

1.10.2 システムコール

def_exc
 
例外処理ハンドラ定義

【形式】

ERR def_exc(W exckind, FP exchdr)

【パラメータ】

W   exckind 例外要因(インプリメント依存)
FP  exchdr  例外処理ハンドラ開始アドレス
            NULL    例外処理ハンドラの定義解除

【リターン値】

= 0    正常
< 0    エラー(エラーコード)

【解説】

指定した例外要因に対応する自タスクの例外処理ハンドラを定義する。

同じ要因に対する例外処理ハンドラがすでに定義されている場合には、 後から定義した例外処理ハンドラが有効となる。

例外要因の内容はインプリメントに依存する。

【エラーコード】

ER_ADR  : アドレス(exc_hdr)のアクセスは許されていない。
ER_CTX  : コンテキストエラー(使用不可のシステムコールを発行した)。
ER_PAR  : パラメータが不正である(exc_vecで定義した例外要因が不正)。
ret_exc
 
例外処理ハンドラ終了

【形式】

VOID    ret_exc(W ret)

【パラメータ】

W   ret リターン指定
= 0
例外が発生した位置から実行を再開し、本システムコールからは戻らない。 再開が不可能な種類の例外の場合には、プロセスは異常終了する。
≠ 0
例外が発生した位置からは再開せずに、本システムコールから戻って、その まま実行を続行する。 この場合、通常はハンドラの最後で longjmp () により制御 を他へ移行す ることになる。

【リターン値】

リターンしない (ret = 0 の時)
=0   正常 (ret≠ 0 の時)

【解説】

例外処理ハンドラを終了する。

例外処理ハンドラの最後には必ず本システムコールを実行しなくてはいけない。 また、本システムコールは例外処理ハンドラ内でのみ発行することができ、 それ以外の部分で発行された時はシステムエラーとなる。

【エラーコード】

発生しない。

get_ver
 
バージョンの取得

【形式】

ERR get_ver(T_VER* version)

【パラメータ】

T_VER*  version バージョンの格納領域

【リターン値】

=0    正常
<0    エラー(エラーコード)

【解説】

OS のバージョンを取り出す。

T_VERTRON 体系で共通の以下の構造体である。

    typedef struct {
        UH  maker;      -- メーカー
        UH  id;         -- 形式番号
        UH  spver;      -- 仕様書バージョン
        UH  prver;      -- 製品バージョン
        UH  prno[4];    -- 製品管理情報
        UH  cpu;        -- CPU 情報
        UH  var;        -- バリエーション記述子
    } T_VER;

【エラーコード】

ER_ADR  : アドレス(version)のアクセスは許されていない。
get_cnf
 
コンフィグレーション情報の取得

【形式】

WERR    get_cnf(TC* name, VP value, W len)

【パラメータ】

TC* name    コンフィグレーション項目名

VP  value   コンフィグレーション情報の格納領域

W   len     コンフィグレーション情報の格納領域のバイトサイズ

【リターン値】

= 0    正常(W の数値情報)
> 0    正常(TC 文字列情報:文字数)
< 0    エラー(エラーコード)

【解説】

指定した項目名のシステムのコンフィグレーション情報を取り出す。

コンフィグレーション情報は W の数値または TC 文字列であり、 関数値により区別される。

関数値 = 0 :
W の数値情報
関数値 > 0 :
TC 文字列情報
関数値は文字数で、文字列の最後には 0 が格納される。
格納領域が不足するときは格納領域のサイズ分のみ格納される。

コンフィグレーション情報の項目名はインプリメントに依存する。

【エラーコード】

ER_ADR      : アドレス(name)のアクセスは許されていない。
ER_NOEXS    : 項目名(name)は存在していない。
ER_PAR      : パラメータが不正である。

この章の目次にもどる
前頁:1.9 時計管理にもどる
次頁:第2章 ディスプレイプリミティブにすすむ