"power" 1 つに固定。
    nowait モードは意味を持たず、無視される。
通常は、メモリ内容を保持するための最低限の電源が 供給されているが、ハードディスクにメモリ内容を保存 して電源を完全にオフするハイバーネーション状態も サスペンド状態に含まれる。
サスペンド状態への移行要因により以下を定義する。
    なし。
    OS 核に組み込まれて内部的に起動される。
以下の属性データをサポートする。
| R | 読み込みのみ可 | 
| W | 書き込みのみ可 | 
| RW | 読み込み / 書き込み可 | 
/* power データ番号 */
typedef enum {
    /* 共通属性 */
    DN_PWEVENT    = DN_EVENT,
    /* 個別属性 */
    DN_PWSTATE    = -100,
    DN_PWMODE     = -101,
    DN_PWREQUEST  = -102,
} PowerDataNo;
DN_PWEVENT :
 data: ID事象通知用メッセージバッファID を設定、または取り出す。
DN_PWSTATE :
 
 data:   PowerState[0]:  全体の状態
 PowerState[1]:  バッテリユニット 1 の状態
 PowerState[2]:  バッテリユニット 2 の状態
typedef struct {
    UW  charge:8;       /* バッテリー残り容量   */
                        /* 0〜100(%), 255:不明  */
    BatKnd  batkind:8;  /* バッテリーの種類 */
    PowCon  battery:2;  /* バッテリー接続状態   */
    PowCon  extpw:2;    /* 外部(AC)電源状態 */
    UW  subbat:1;       /* 副電池異常のとき 1   */
    UW  reserve:11;     /* 予約:常に0       */
} PowerState;
typedef enum {
    BK_none = 0,        /* バッテリなし     */
    BK_DRY  = 1,        /* 乾電池       */
    BK_NiCd = 2,        /* ニッカド電池     */
    BK_NiMH = 3,        /* ニッケル水素電池 */
    BK_unknown = 255    /* 不明         */
} BatKnd;
typedef enum {
    PC_DISCONNECT   = 0,    /* 切断中 / 未使用  */
    PC_CONNECT  = 1,        /* 接続中 / 供給中  */
    PC_CHARGE   = 2,        /* 充電中       */
    PC_unknown  = 3         /* 不明         */
} PowCon;
     現在の電源状態を取り出す。PowerState[0] のみが
     取り出される。バッテリユニット数 > 1 のときは、
     要求したデータサイズを超えない範囲で、
     PowerState[0],[1],[2] が取り出される。
     電源の供給状態に応じて以下の値となる。
charge | batkind | battery | extpw | |
|---|---|---|---|---|
| AC のみ | 0 | BK_none | PC_DISCONNECT | PC_CONNECT | 
| AC + バッテリ | 0〜100 | BK_xxx | PC_CHARGE | PC_CONNECT | 
| 100 | BK_xxx | PC_CONNECT | PC_CONNECT | |
| バッテリのみ | 0〜100 | BK_xxx | PC_CONNECT | PC_DISCONNECT | 
| 不明 | 255 | BK_unknown | PC_unknown | PC_unknown | 
DN_PWMODE :
 
data:
typedef struct {
    UW  exist:1;    /* 電源管理機能の有無   */
    UW  enable:1;   /* 電源管理対応     */
    UW  idle:1;     /* 低消費電力モード */
    UW  standby:1;  /* 自動スタンバイ   */
    UW  suspend:1;  /* 自動サスペンド   */
    UW  ringrsm:1;  /* リングレジューム */
    UW  rsv1:2;     /* 予備: 常に0      */
    UW  inhibit:1;  /* 使用禁止         */
    UW  reserve:23; /* 予備: 常に0      */
} PowerMode;
        現在の電源制御モードを設定、または取り出す。
     exist | 電源制御機能の有無、または利用の可否。 0 : 無(利用不可)、1 : 有(利用可)。  | 
enable | 電源制御機能への対応。 0 : 対応しない、1 : 対応する。  | 
idle   | アイドル(無負荷)時の低消費電力状態への移行。 0 : 禁止、1 : 許可  | 
standby | 自動スタンバイ状態への移行。 0 : 禁止、1 : 許可  | 
suspend | 自動サスペンド状態への移行。 0 : 禁止、1 : 許可  | 
ringrsm | リングレジューム機能。 0 : 禁止、1 : 許可  | 
inhibit | 電源管理機能の使用を完全に禁止。 0 : 使用許可、1 : 使用禁止  | 
DN_PWREQUEST :
 
data:
typedef enum {
    PW_SUSREJECT    = 0,    /* サスペンド要求拒否   */
    PW_SUSREQ       = 1,    /* サスペンド要求   */
} PowRequest;
        電源制御要求を行う。
     PW_SUSREJECT :
      DE_POWEROFF, DE_POWERSUS の事象通知によるサスペンド
            要求を拒否する。事象通知がなかった時は何もしない。
      PW_SUSREQ :
            なし
OPEN | 特に何もしない。 ハードウェアの初期化は起動時に行われる。  | 
CLOSE, CLOSEALL | 特に何もしない。 | 
ABORT | 特に何もしない(待ちに入ることはないため) | 
READ / WRITE | (上記参照) | 
SUSPEND / RESUME | 特に何もしない。 ただし、サスンペンド中の動作は事象検出の動作は行われない。  | 
以下の事象を通知する。
typedef struct {
    DevEvtKind  kind;      /* 事象種別     */
    ID         devid;      /* デバイス ID  */
    PowerState  stat;      /* 電源状態     */
} PowerEvt;
kind:   DE_POWEROFF     0x31    電源スイッチオフ(強制サスペンド)
        DE_POWERLOW     0x32    電源残量警告
        DE_POWERFAIL    0x33    電源異常(緊急サスペンド)
        DE_POWERSUS     0x34    自動サスペンド
        DE_POWERUPTM    0x35    時計更新
DE_POWEROFF :
 stat: 無効(不明状態)
DE_POWERLOW :
 stat: 有効
DE_POWERFAIL :
 stat: 無効(不明状態)
DE_POWERSUS :
 stat: 無効(不明状態)
DE_POWERUPTM :
 stat: 無効(不明状態)
デバイスドライバ共通仕様を参照のこと。
DE_POWERUPTM ( システム時計の更新要求 ) の事象に関しては、
     安全のため、必ず周期的に発生するようにしている。
     システムの電源管理機能に関する全体の構成を以下に示す。 通常のサスペンド処理は、(1)〜(8) の経路で行われる。
