X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fudev%2Fudev-builtin.c;h=2ea7f4e20228fe9f224e721f3e51e6e70dcb1baf;hp=b632edaae15eabab1b49fa74b7fdd523935da39b;hb=4af113f9971217991cce51b45f15bdce22ee45e2;hpb=0bb91b50100e4633a0e68135854e606653055748 diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index b632edaae..2ea7f4e20 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -31,35 +31,28 @@ static const struct udev_builtin *builtins[] = { [UDEV_BUILTIN_BLKID] = &udev_builtin_blkid, [UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs, [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware, + [UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb, [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, [UDEV_BUILTIN_KMOD] = &udev_builtin_kmod, [UDEV_BUILTIN_PATH_ID] = &udev_builtin_path_id, - [UDEV_BUILTIN_PCI_DB] = &udev_builtin_pci_db, - [UDEV_BUILTIN_USB_DB] = &udev_builtin_usb_db, [UDEV_BUILTIN_USB_ID] = &udev_builtin_usb_id, #ifdef HAVE_ACL [UDEV_BUILTIN_UACCESS] = &udev_builtin_uaccess, #endif }; -int udev_builtin_init(struct udev *udev) +void udev_builtin_init(struct udev *udev) { unsigned int i; - int err = 0; if (initialized) - return 0; + return; - for (i = 0; i < ELEMENTSOF(builtins); i++) { - if (builtins[i]->init) { - err = builtins[i]->init(udev); - if (err < 0) - break; - } - } + for (i = 0; i < ELEMENTSOF(builtins); i++) + if (builtins[i]->init) + builtins[i]->init(udev); initialized = true; - return err; } void udev_builtin_exit(struct udev *udev) @@ -79,13 +72,11 @@ void udev_builtin_exit(struct udev *udev) bool udev_builtin_validate(struct udev *udev) { unsigned int i; - bool change = false; for (i = 0; i < ELEMENTSOF(builtins); i++) - if (builtins[i]->validate) - if (builtins[i]->validate(udev)) - change = true; - return change; + if (builtins[i]->validate && builtins[i]->validate(udev)) + return true; + return false; } void udev_builtin_list(struct udev *udev) @@ -128,6 +119,7 @@ int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const c int argc; char *argv[128]; + /* we need '0' here to reset the internal state */ optind = 0; util_strscpy(arg, sizeof(arg), command); udev_build_argv(udev_device_get_udev(dev), arg, &argc, argv);