--- nono/vm/busio.h 2026/04/29 17:04:35 1.1.1.2 +++ nono/vm/busio.h 2026/04/29 17:05:10 1.1.1.5 @@ -7,13 +7,15 @@ // バスとデバイスとのインタフェース。 // バスに対し、デバイスがどのように接続されているかを記述する。 +#pragma once + #if !defined(SELFTEST) #include "device.h" #endif // バイトデバイスをバイト、ワード、ロングワードポートにミラー配置する共通部 template -class BusIO_B_Base: public T +class BusIO_B_Base : public T { private: inline uint32 Decoder(uint32 addr) { @@ -37,18 +39,18 @@ class BusIO_B_Base: public T // バイトデバイスをバイトのまま配置する。 // NPORT によるミラーを行う以外はこれを使わないのと何も変わらない。 template -class BusIO_B: public BusIO_B_Base { }; +class BusIO_B : public BusIO_B_Base { }; // バイトデバイスをワードにミラー配置する。 template -class BusIO_BB: public BusIO_B_Base { }; +class BusIO_BB : public BusIO_B_Base { }; // バイトデバイスをロングワードにミラー配置する。 template -class BusIO_BBBB: public BusIO_B_Base { }; +class BusIO_BBBB : public BusIO_B_Base { }; // ワードデバイスをワードのまま配置する。 // NPORT によるミラーを行う以外はこれを使わないのと何も変わらない。 template -class BusIO_W: public T +class BusIO_W : public T { private: inline uint32 Decoder(uint32 addr) { @@ -91,12 +93,12 @@ class BusIO_W: public T }; /* XXX: stub -class BusIO_L: public T +class BusIO_L : public T */ // バイトデバイスを偶数アドレスに配置し、奇数アドレスはバスエラー。 template -class BusIO_BE: public T +class BusIO_BE : public T { private: inline uint32 Decoder(uint32 addr) { @@ -137,7 +139,7 @@ class BusIO_BE: public T // バイトデバイスを奇数アドレスに配置し、偶数アドレスはバスエラー。 template -class BusIO_EB: public T +class BusIO_EB : public T { private: inline uint32 Decoder(uint32 addr) { @@ -178,7 +180,7 @@ class BusIO_EB: public T // バイトデバイスを奇数アドレスに配置し、偶数アドレスは非接続。 template -class BusIO_FB: public T +class BusIO_FB : public T { private: inline uint32 Decoder(uint32 addr) { @@ -219,7 +221,7 @@ class BusIO_FB: public T // バイトデバイスをロングワードの先頭に配置し、他は非接続。 template -class BusIO_BFFF: public T +class BusIO_BFFF : public T { private: inline uint32 Decoder(uint32 addr) { @@ -274,7 +276,7 @@ class BusIO_BFFF: public T // ワードデバイスをロングワードにミラー配置する。 template -class BusIO_WW: public T +class BusIO_WW : public T { private: inline uint32 Decoder(uint32 addr) { @@ -293,7 +295,7 @@ class BusIO_WW: public T } uint64 Write8(uint32 addr, uint32 data) override { - PANIC("not implemented\n"); + VMPANIC("not implemented"); return (int64)-1; // XXX 未確認 } uint64 Write16(uint32 addr, uint32 data) override { @@ -311,7 +313,7 @@ class BusIO_WW: public T // ワードデバイスをロングワード先頭に配置し、他は非接続。 template -class BusIO_WF: public T +class BusIO_WF : public T { private: inline uint32 Decoder(uint32 addr) { @@ -339,7 +341,7 @@ class BusIO_WF: public T } uint64 Write8(uint32 addr, uint32 data) override { - PANIC("not implemented\n"); + VMPANIC("not implemented"); return 0; // XXX 未確認 } uint64 Write16(uint32 addr, uint32 data) override {