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;