typedef signed char B; /* 符号付き 8ビット整数 */ typedef signed short H; /* 符号付き 16ビット整数 */ typedef signed long W; /* 符号付き 32ビット整数 */ typedef signed long long D; /* 符号付き 64ビット整数 */ typedef unsigned char UB; /* 符号無し 8ビット整数 */ typedef unsigned short UH; /* 符号無し 16ビット整数 */ typedef unsigned long UW; /* 符号無し 32ビット整数 */ typedef unsigned long long UD; /* 符号無し 64ビット整数 */ typedef char VB; /* 型が一定しない 8ビットのデータ */ typedef short VH; /* 型が一定しない 16ビットのデータ */ typedef long VW; /* 型が一定しない 32ビットのデータ */ typedef long long VD; /* 型が一定しない 64ビットのデータ */ typedef void *VP; /* 型が一定しないデータへのポインタ */ typedef volatile B _B; /* volatile 宣言付 */ typedef volatile H _H; typedef volatile W _W; typedef volatile D _D; typedef volatile UB _UB; typedef volatile UH _UH; typedef volatile UW _UW; typedef volatile UD _UD; typedef signed int INT; /* プロセッサのビット幅の符号付き整数 */ typedef unsigned int UINT; /* プロセッサのビット幅の符号無し整数 */ typedef INT SZ; /* サイズ一般 */ typedef INT ID; /* ID一般 */ typedef W MSEC; /* 時間一般(ミリ秒) */ typedef void (*FP)(); /* 関数アドレス一般 */ typedef INT (*FUNCP)(); /* 関数アドレス一般 */ #define LOCAL static /* ローカルシンボル定義 */ #define EXPORT /* グローバルシンボル定義 */ #define IMPORT extern /* グローバルシンボル参照 */ /* * ブール値 * TRUE = 1 と定義するが、0 以外はすべて真(TRUE)である。 * したがって、if ( bool == TRUE ) の様な判定をしてはいけない。 * if ( bool ) の様に判定すること。 */ typedef INT BOOL; #define TRUE 1 /* 真 */ #define FALSE 0 /* 偽 */ /* * TRON 文字コード */ typedef UH TC; /* TRON 文字コード */ #define TNULL ((TC)0) /* TRON コード文字列の終端 */
![]() |
|
![]() | 関連するサービスプロファイル |
|---|---|
64ビットの型 D, UD, VD は、以下のサービスプロファイルが有効に設定されている場合に限り利用可能であることが保証される。 |
![]() | 補足事項 |
|---|---|
|
![]() | T-Kernel 2.0との差異 |
|---|---|
サイズを表現するための整数型として、μT-Kernel 2.0 では新たに SZ 型を導入する。 'SZ'は SiZe の意味である。'SZ' は、メモリ範囲を表現するために十分なビット幅を持った符号付き整数型として定義されなければならない。前述の定義例では INT として定義されているが、16ビットのプロセッサ環境で32KB以上のメモリ空間を扱う場合には、より大きなビット幅を持つ W による定義が適切である。 |
![]() | μT-Kernel 1.0との差異 |
|---|---|
前述の通り、μT-Kernel 2.0では新たに SZ 型が導入された。 さらに、T-Kernel 2.0仕様に基づく以下の変更が加えられている。
|
パラメータの意味を明確にするため、出現頻度の高いデータ型や特殊な意味を持つデータ型に対して、以下のような名称を使用する。
typedef INT FN; /* 機能コード */
typedef INT RNO; /* ランデブ番号 */
typedef UW ATR; /* オブジェクト/ハンドラ属性 */
typedef INT ER; /* エラーコード */
typedef INT PRI; /* 優先度 */
typedef W TMO; /* ミリ秒単位のタイムアウト指定 */
typedef D TMO_U; /* 64ビットでマイクロ秒単位のタイムアウト指定 */
typedef UW RELTIM; /* ミリ秒単位の相対時間 */
typedef UD RELTIM_U; /* 64ビットでマイクロ秒単位の相対時間 */
typedef struct systim { /* ミリ秒単位のシステム時刻 */
W hi; /* 上位32ビット */
UW lo; /* 下位32ビット */
} SYSTIM;
typedef D SYSTIM_U; /* 64ビットでマイクロ秒単位のシステム時刻 */
/*
* 共通定数
*/
#define NULL 0 /* 無効ポインタ */
#define TA_NULL 0 /* 特別な属性を指定しない */
#define TMO_POL 0 /* ポーリング */
#define TMO_FEVR (-1) /* 永久待ち */![]() |
|
![]() | 関連するサービスプロファイル |
|---|---|
マイクロ秒単位の時間および時刻に関連する型 TMO_U, RELTIM_U, SYSTIM_U は、以下のサービスプロファイルが有効に設定されている場合に限り利用可能であることが保証される。 |
![]() | μT-Kernel 1.0との差異 |
|---|---|
T-Kernel 2.0仕様に基づき、64ビットでマイクロ秒単位のタイムアウト指定を示すTMO_U、64ビットでマイクロ秒単位の相対時間を示すRELTIM_U、64ビットでマイクロ秒単位のシステム時刻を示すSYSTIM_Uを追加した。RELTIM_UはRELTIMに合わせて符号無し、SYSTIM_UはSYSTIMに合わせて符号付きである。また、SYSTIMは32ビットのメンバを2つ合わせた構造体であるが、SYSTIM_Uは64ビットデータの利便性を直接活かす形で、構造体ではない通常の64ビット整数となっている。 |
![]() | 補足事項 |
|---|---|
マイクロ秒(μsec)を意味するパラメータやデータタイプには最後に"_u"(uはμの意味) または"_U"を付け、それ以外の64ビット整数を意味するパラメータやデータタイプには最後に"_d"(dは double integer の意味)または"_D"を付ける方針としている。TMO_U, RELTIM_U, SYSTIM_Uはこの方針によるデータタイプ名である。 |