付録

参考とすべきデバイスドライバ関連の仕様

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 */

デバイスの属性データ

TDN_DISKINFO

ディスク情報

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 ;
TDN_DISPSPEC

表示デバイス仕様

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;