netsurfed
2017-Jul-04 02:52 UTC
[libvirt-users] node device lifecycle callback can't resive event
Hi all, I registe node device lifecycle event callback function after connect qemu. In the callback function, I printf the event and detail. When I plug a USB into host, and then pull out, but there is nothing happen. The callback was not called. Could you tell me Why? And what dose node device mean? I want to auto-hotplug usb devices by using libvirt. Bellow the call of libvirt: // node device lifecycle callback function void nodeDeviceEventLifecycleCallback(virConnectPtr conn, virNodeDevicePtr dev, int event, int detail, void * opaque) { printf("event = %d, detail= %d\n", event, detail); } // registe node device lifecycle event int registeNodeDevEvent() { int ret = virEventRegisterDefaultImpl(); if (ret) { return -1;} ret = virConnectNodeDeviceEventRegisterAny(vmh_conn, NULL, VIR_NODE_DEVICE_EVENT_ID_LIFECYCLE, VIR_NODE_DEVICE_EVENT_CALLBACK(nodeDeviceEventLifecycleCallback), NULL, NULL); if (-1 == ret) { return ret;} } Below some information about my hypervisor: root@ubuntu-05:/datapool/zhuohf# virsh -v 3.4.0 root@ubuntu-05:/datapool/zhuohf# qemu-x86_64 -version qemu-x86_64 version 2.9.0 Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers