--- nono/lib/object.h 2026/04/29 17:05:18 1.1.1.10 +++ nono/lib/object.h 2026/04/29 17:05:26 1.1.1.12 @@ -18,14 +18,16 @@ class Logger; // オブジェクト ID -static constexpr int OBJ_BANKRAM(int n) { return OBJ_BANKRAM0 + n; } -static constexpr int OBJ_ETHERNET(int n) { return OBJ_ETHERNET0 + n; } -static constexpr int OBJ_FDD(int n) { return OBJ_FDD0 + n; } -static constexpr int OBJ_HOSTNET(int n) { return OBJ_HOSTNET0 + n; } -static constexpr int OBJ_M88200(int n) { return OBJ_M88200_0 + n; } -static constexpr int OBJ_MPU_MEMDUMP(int n) { return OBJ_MPU_MEMDUMP0 + n; } -static constexpr int OBJ_NEREID_BOARD(int n) { return OBJ_NEREID_BOARD0 + n; } -static constexpr int OBJ_XP_MEMDUMP(int n) { return OBJ_XP_MEMDUMP0 + n; } +static constexpr uint OBJ_BANKRAM(uint n) { return OBJ_BANKRAM0 + n; } +static constexpr uint OBJ_ETHERNET(uint n) { return OBJ_ETHERNET0 + n; } +static constexpr uint OBJ_FDD(uint n) { return OBJ_FDD0 + n; } +static constexpr uint OBJ_GFPIC(uint n) { return OBJ_GFPIC0 + n; } +static constexpr uint OBJ_HOSTNET(uint n) { return OBJ_HOSTNET0 + n; } +static constexpr uint OBJ_M88200(uint n) { return OBJ_M88200_0 + n; } +static constexpr uint OBJ_MPU_MEMDUMP(uint n) { return OBJ_MPU_MEMDUMP0 + n; } +static constexpr uint OBJ_NEREID_BOARD(uint n) { return OBJ_NEREID_BOARD0 + n; } +static constexpr uint OBJ_VIRTIO_BLOCK(uint n) { return OBJ_VIRTIO_BLOCK0 + n; } +static constexpr uint OBJ_XP_MEMDUMP(uint n) { return OBJ_XP_MEMDUMP0 + n; } // ログ表示に指定するラムダ式の便利マクロ。 // fmt 内では __func__ が使えないので代わりに lam_func を使うこと。 @@ -44,16 +46,16 @@ class Object // これは表示名と指示名が同じことが多いための便宜措置。 // 指示名に表示名を使いたくない場合は ClearAlias() してから // AddAlias() すること。 - Object(int objid_); + explicit Object(uint objid_); virtual ~Object(); // ID を返す - int GetId() const { return objid; } + uint GetId() const { return objid; } const char *GetIdStr() const; // ID を文字列で返す - static const char *GetIdStr(int target_id); + static const char *GetIdStr(uint target_id); // オブジェクト名(ログ表示名)を取得する const std::string& GetName() const { return objname; } @@ -65,11 +67,11 @@ class Object // 実体は gMainApp.GetObjects() を呼んでいる。 // 隣のデバイスを参照したい人が全員 mainapp.h を include しなくて済む // ようにするための便宜上のもの。 - static Object *GetObject(int target_id); + static Object *GetObject(uint target_id); // 指定の id を持つオブジェクトを型 T* にして返す版。 template - static T *GetObject(int target_id) { + static T *GetObject(uint target_id) { auto dev = dynamic_cast(GetObject(target_id)); assert(dev); return dev; @@ -97,7 +99,7 @@ class Object } private: - int objid {}; + uint objid {}; // オブジェクト名。 // こちらはログの先頭に追加される。