SOLID独自の型
SOLID-OSでは、以下の独自の型およびエラーコードを使用します。
SOLID-OS独自の定義は、solid_type.h にあります。
#include "solid_type.h"
エラーコード
-
SOLID_ERR_OK
-
SOLID_ERR_PAR
-
SOLID_ERR_MACV
-
SOLID_ERR_NOMEM
-
SOLID_ERR_NORES
-
SOLID_ERR_NOTFOUND
-
SOLID_ERR_NOTSUPPORTED
-
SOLID_ERR_EBADF
-
SOLID_ERR_NOTUSED
-
SOLID_ERR_ALREADYUSED
-
SOLID_ERR_OUTOFBOUND
-
SOLID_ERR_BADSEQUENCE
-
SOLID_ERR_UNKNOWNDEVICE
-
SOLID_ERR_BUSY
-
SOLID_ERR_TIMEOUT
-
SOLID_ERR_INVALIDACCESS
-
SOLID_ERR_NOTREADY
定数
名前
値
説明
SOLID_ERR_OK
0
正常終了
SOLID_ERR_PAR
-17
パラメータエラー
SOLID_ERR_MACV
-26
メモリアクセス違反
SOLID_ERR_NOMEM
-33
メモリ不足
SOLID_ERR_NORES
-35
リソース不足
SOLID_ERR_NOTFOUND
-1000
操作対象が見つからない
SOLID_ERR_NOTSUPPORTED
-1001
対象の環境では非サポート
SOLID_ERR_EBADF
-1002
書き込み/読み込み属性と要求が不整合
SOLID_ERR_INVALIDCONTENT
-1003
データ構造が想定通りでない、壊れている
SOLID_ERR_NOTUSED
-1004
操作する対象は使われていない(無効である)
SOLID_ERR_ALREADYUSED
-1005
(確保しようとしたものは)既に使用中である
SOLID_ERR_OUTOFBOUND
-1006
(引数が大きすぎる/小さすぎるため)範囲外をアクセスしようとした
SOLID_ERR_BADSEQUENCE
-1007
処理中のシーケンスで異常が発生した
SOLID_ERR_UNKNOWNDEVICE
-1008
不明なデバイスである
SOLID_ERR_BUSY
-1009
(前の作業がまだ実行中のため)ビジー中 (後で再度試せば成功する可能性がある)
SOLID_ERR_TIMEOUT
-1010
処理がタイムアウトした。(処理は失敗している可能性が高い)
SOLID_ERR_INVALIDACCESS
-1011
アクセス方法に不整合がある
SOLID_ERR_NOTREADY
-1012
(初期化等が終了しておらず)処理ができない
SOLID_ADDRESS
-
typedef uint32_t SOLID_ADDRESS
説明
SOLIDで使用する論理アドレスの型 (AARCH32時はuint32_t, AARCH64時はuint64_t)
定義
typedef uint32_t SOLID_ADDRESS;
SOLID_PHYADDRESS
-
typedef uint32_t SOLID_PHYADDRESS
説明
SOLIDで使用する物理アドレスの型 (AARCH32時はuint32_t, LPAE使用時およびAARCH64時はuint64_t)
定義
typedef uint32_t SOLID_PHYADDRESS;
SOLID_REGISTER
-
typedef uint32_t SOLID_REGISTER
説明
SOLIDで使用するレジスタの型 (AARCH32時はuint32_t, AARCH64時はuint64_t)
定義
typedef uint32_t SOLID_REGISTER;
SOLID_CPU_CONTEXT
-
typedef struct _SOLID_CPU_CONTEXT_ SOLID_CPU_CONTEXT
-
struct _SOLID_CPU_CONTEXT_
説明
SOLIDで使用するコンテキスト情報(割り込みやタイマで使用)
定義
/* AARCH32時 */ typedef struct _SOLID_CPU_CONTEXT_ { SOLID_REGISTER rarm[16]; SOLID_REGISTER cpsr; struct _SOLID_CPU_CONTEXT_* pNest; SOLID_FPU_CONTEXT* pFPU; } SOLID_CPU_CONTEXT; /* AARCH64時 */ typedef struct _SOLID_CPU_CONTEXT_ { SOLID_REGISTER xarm[31]; SOLID_REGISTER sp; SOLID_REGISTER pc; SOLID_REGISTER32 pstate; SOLID_REGISTER32 spsel; struct _SOLID_CPU_CONTEXT_* pNest; SOLID_FPU_CONTEXT* pFPU; } SOLID_CPU_CONTEXT;
メンバー
-
SOLID_REGISTER rarm[16]
-
SOLID_REGISTER cpsr
汎用レジスタ r0-r15, cpsrレジスタ(AARCH32時)
-
SOLID_REGISTER xarm[31]
-
SOLID_REGISTER sp
-
SOLID_REGISTER pc
-
SOLID_REGISTER32 pstate
-
SOLID_REGISTER32 spsel
汎用レジスタ r0-r30, sp, pc, pstate, spselレジスタS (AARCH64時)
-
struct _SOLID_CPU_CONTEXT_ *pNest
多重割り込みの場合、その割り込み元のコンテキスト情報へのポインタ
-
SOLID_FPU_CONTEXT *pFPU
FPUのレジスタ情報へのポインタ
-
SOLID_REGISTER rarm[16]