static void
-udevEventHandleCallback(int watch ATTRIBUTE_UNUSED,
- int fd,
- int events ATTRIBUTE_UNUSED,
- void *data ATTRIBUTE_UNUSED)
+udevEventHandleThread(void *opaque)
{
udevEventDataPtr priv = driver->privateData;
+ int fd = (intptr_t) opaque;
struct udev_device *device = NULL;
virObjectLock(priv);
}
+static void
+udevEventHandleCallback(int watch ATTRIBUTE_UNUSED,
+ int fd,
+ int events ATTRIBUTE_UNUSED,
+ void *data ATTRIBUTE_UNUSED)
+{
+ udevEventDataPtr priv = driver->privateData;
+
+ virObjectLock(priv);
+ if (!udevEventMonitorSanityCheck(priv, fd)) {
+ virObjectUnlock(priv);
+ return;
+ }
+ virObjectUnlock(priv);
+
+ udevEventHandleThread((void *)(intptr_t) fd);
+}
+
+
/* DMI is intel-compatible specific */
#if defined(__x86_64__) || defined(__i386__) || defined(__amd64__)
static void