--- nono/vm/ethernet.h 2026/04/29 17:05:18 1.1.1.9 +++ nono/vm/ethernet.h 2026/04/29 17:05:46 1.1.1.14 @@ -15,8 +15,8 @@ // | // +--------+-------+ // v v -// LanceDevice RTL8019Device -// (LUNA, AM7990) (X68000, RTL8019) +// LanceDevice RTL8019ASDevice +// (LUNA, AM7990) (X68000, RTL8019AS) #pragma once @@ -29,19 +29,23 @@ class EthernetDevice : public IODevice { using inherited = IODevice; protected: - EthernetDevice(); + explicit EthernetDevice(uint objid_); public: - virtual ~EthernetDevice() override; + ~EthernetDevice() override; bool Create() override; // 設定から MAC アドレスを取得するヘルパー関数。 // (MAC アドレスを保持するデバイスが呼ぶ) - static bool GetConfigMacAddr(macaddr_t *dst, bool accept_rom); + static bool GetConfigMacAddr(uint n, MacAddr *dst, bool accept_rom); + + // CRC32 を計算する。 + static uint32 CRC32(const uint8 *buf, size_t buflen); + static uint32 CRC32(const MacAddr& mac); protected: // ホストスレッドからの受信通知 - void HostRxCallback(); + void HostRxCallback(uint32); std::unique_ptr hostnet /*{}*/; };