T-Kernel/SMのデバイス管理機能やデバイスドライバに関連した仕様のうち、T-Kernel本体の最新仕様には含まれないが、T-Kernel仕様書 Ver.1.00.xxのデバイス管理機能の中に記載があり、既存のシステム等でも実装例のあるものについて、本項で説明する。
既存のT-Kernel応用システムのデバイス関連機能や、既存のT-Kernel用デバイスドライバとの相互運用性に配慮を要する場合は、本項で説明する仕様を参考にしていただくのが望ましい。
なお、本項で説明する仕様の詳細、最新情報、その仕様の運用方法などについては、別途確認されたい。
T-Kernel仕様書 Ver.1.00.xxのデバイス属性の定義においては、以下のディスク種別が定義されている。
/* ディスク種別*/ #define TDK_DISK_UNDEF 0x0010 /* その他のディスク */ #define TDK_DISK_RAM 0x0011 /* RAMディスク(主メモリ使用) */ #define TDK_DISK_ROM 0x0012 /* ROMディスク(主メモリ使用) */ #define TDK_DISK_FLA 0x0013 /* Flash ROM、その他のシリコンディスク */ #define TDK_DISK_FD 0x0014 /* フロッピーディスク */ #define TDK_DISK_HD 0x0015 /* ハードディスク */ #define TDK_DISK_CDROM 0x0016 /* CD-ROM */
ディスク情報
T-Kernel仕様書 Ver.1.00.xxのデバイス共通属性の属性データの中で使用するDiskFormatの定義は、以下の通りである。DiskFormatは、属性データのディスク情報(TDN_DISKINFO)で使用するデータ形式DiskInfoの中に含まれている。
typedef enum { DiskFmt_STD = 0, /* 標準(HDなど) */ DiskFmt_2DD = 1, /* 2DD 720KB */ DiskFmt_2HD = 2, /* 2HD 1.44MB */ DiskFmt_CDROM = 4 /* CD-ROM 640MB */ } DiskFormat ;
表示デバイス仕様
T-Kernel仕様書 Ver.1.00.xxのデバイス共通属性の属性データの中で使用するDEV_SPECの定義は、以下の通りである。DEV_SPECは、属性データの表示デバイス仕様(TDN_DISPSPEC)で使用するデータ形式である。
typedef struct { H attr; /* デバイス属性 */ H planes; /* プレーン数 */ H pixbits; /* ピクセルビット数(境界/有効) */ H hpixels; /* 横のピクセル数 */ H vpixels; /* 縦のピクセル数 */ H hres; /* 横の解像度 */ H vres; /* 縦の解像度 */ H color[4]; /* カラー情報 */ H resv[6]; /* 予約 */ } DEV_SPEC;
T-Kernel仕様書 Ver.1.00.xxのデバイス事象通知では、以下の事象タイプが定義されている。
typedef enum tdevttyp { TDE_unknown = 0, /* 未定義 */ TDE_MOUNT = 0x01, /* メディア挿入 */ TDE_EJECT = 0x02, /* メディア排出 */ TDE_ILLMOUNT = 0x03, /* メディア不正挿入 */ TDE_ILLEJECT = 0x04, /* メディア不正排出 */ TDE_REMOUNT = 0x05, /* メディア再挿入 */ TDE_CARDBATLOW = 0x06, /* カードバッテリ残量警告 */ TDE_CARDBATFAIL = 0x07, /* カードバッテリ異常 */ TDE_REQEJECT = 0x08, /* メディア排出要求 */ TDE_PDBUT = 0x11, /* PD ボタン状態の変化 */ TDE_PDMOVE = 0x12, /* PD 位置移動 */ TDE_PDSTATE = 0x13, /* PDの状態変化 */ TDE_PDEXT = 0x14, /* PD 拡張事象 */ TDE_KEYDOWN = 0x21, /* キーダウン */ TDE_KEYUP = 0x22, /* キーアップ */ TDE_KEYMETA = 0x23, /* メタキー状態の変化 */ TDE_POWEROFF = 0x31, /* 電源スイッチオフ */ TDE_POWERLOW = 0x32, /* 電源残量警告 */ TDE_POWERFAIL = 0x33, /* 電源異常 */ TDE_POWERSUS = 0x34, /* 自動サスペンド */ TDE_POWERUPTM = 0x35, /* 時計更新 */ TDE_CKPWON = 0x41 /* 自動電源オン通知 */ } TDEvtTyp;