--- nono/host/hostnet.h 2026/04/29 17:05:47 1.1.1.7 +++ nono/host/hostnet.h 2026/04/29 17:06:02 1.1.1.9 @@ -15,13 +15,9 @@ #include "netdriver.h" #include "spscqueue.h" -// パケット -class NetPacket : public std::array +// パケット。 +class NetPacket { - // ジャンボフレームでないイーサネットフレームは最大 1518バイトだが - // このパケットバッファの長さは 1519 バイト以上必要。 - // vm/lance が 1518 バイトを越えたことを検出するのに使っている。 - public: NetPacket() { Clear(); @@ -30,32 +26,63 @@ class NetPacket : public std::array buf {}; }; // MAC アドレスフィルタ。 @@ -140,7 +167,7 @@ class HostNetDevice : public HostDevice void SetMCastFilter(uint64 filter); // ドライバ名を返す。 - const std::string GetDriverName(); + const std::string& GetDriverName(); // 統計情報を返す (ステータスパネルから呼ばれる) uint64 GetTXPkts() const { return stat.tx_pkts; } @@ -152,6 +179,9 @@ class HostNetDevice : public HostDevice // コンパイル済みのドライバ名一覧を返す static std::vector GetDrivers(); + // libslirp のバージョン文字列を返す + static const char *GetSlirpVersion(); + // デバッグ用。 static std::vector DumpHex(const void *, size_t); static std::vector DumpFrame(const void *, size_t); @@ -169,7 +199,7 @@ class HostNetDevice : public HostDevice // 外部への書き出し(パケットを送信) void Write() override; - DECLARE_MONITOR_CALLBACK(MonitorUpdate); + DECLARE_MONITOR_SCREEN(MonitorScreen); // デバッグ用 (下請け) static std::vector DumpARP(const void *, size_t);