--- nono/vm/rtl8019as.h 2026/04/29 17:05:29 1.1.1.3 +++ nono/vm/rtl8019as.h 2026/04/29 17:05:38 1.1.1.5 @@ -14,7 +14,6 @@ #include "event.h" #include "hostnet.h" #include "message.h" -#include "monitor.h" class InterruptDevice; @@ -238,7 +237,7 @@ struct RTL8019 }; }; -class RTL8019ASDevice : public EthernetDevice +class RTL8019ASDevice : public EthernetDevice, public IHWAddrFilter { using inherited = EthernetDevice; @@ -271,6 +270,8 @@ class RTL8019ASDevice : public EthernetD busdata InterruptAcknowledge(); + int HWAddrFilter(const MacAddr& dstaddr) const override; + private: static inline uint32 Decoder(uint32 addr); @@ -440,8 +441,8 @@ class RTL8019ASDevice : public EthernetD uint16 local_addr {}; // CLDA: 書き込み位置 uint16 next_page_addr {}; // 次パケットの受信開始位置 - macaddr_t par {}; - std::array mar {}; + MacAddr par {}; + uint64 mar {}; std::array error_counter {}; // 9346CR @@ -467,7 +468,7 @@ class RTL8019ASDevice : public EthernetD bool tx_led {}; bool rx_led {}; - Monitor monitor { this }; + Monitor *monitor {}; Event tx_event { this }; Event rx_event { this };