--- nono/vm/virtio_net.cpp 2026/04/29 17:05:42 1.1.1.5 +++ nono/vm/virtio_net.cpp 2026/04/29 17:05:46 1.1.1.6 @@ -63,7 +63,7 @@ VirtIONetDevice::~VirtIONetDevice() { // EthernetDevice と同じ…。 if ((bool)hostnet) { - hostnet->SetRxCallback(NULL); + hostnet->ResetRxCallback(); } } @@ -77,14 +77,15 @@ VirtIONetDevice::Create() // EthernetDevice とほぼ同じ…。 try { - hostnet.reset(new HostNetDevice(this, 0)); + hostnet.reset(new HostNetDevice(this, 0, "VirtIO Network")); } catch (...) { } if ((bool)hostnet == false) { warnx("Failed to initialize HostNetDevice at %s", __method__); return false; } - hostnet->SetRxCallback(ToDeviceCallback(&VirtIONetDevice::HostRxCallback)); + auto func = ToDeviceCallback(&VirtIONetDevice::HostRxCallback); + hostnet->SetRxCallback(func, 0); return true; } @@ -209,7 +210,7 @@ VirtIONetDevice::ProcessDesc(VirtIOReq& // これは Host スレッドから呼ばれる void -VirtIONetDevice::HostRxCallback() +VirtIONetDevice::HostRxCallback(uint32 dummy) { // スレッドを超えるためにメッセージを投げる scheduler->SendMessage(MessageID::HOSTNET_RX(0));