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;