chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
builtin: firmware - move 'firmware' tool to builtins
[elogind.git]
/
udev
/
udev-builtin.c
diff --git
a/udev/udev-builtin.c
b/udev/udev-builtin.c
index 36821702c1b3193f20424fa756150efc6d696cbc..cf62d57e23283b07e244abe624cb1f9046c9db9e 100644
(file)
--- a/
udev/udev-builtin.c
+++ b/
udev/udev-builtin.c
@@
-26,13
+26,34
@@
#include "udev.h"
static const struct udev_builtin *builtins[] = {
#include "udev.h"
static const struct udev_builtin *builtins[] = {
- [UDEV_BUILTIN_PATH_ID] = &udev_builtin_path_id,
- [UDEV_BUILTIN_USB_ID] = &udev_builtin_usb_id,
- [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
+ [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
+ [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
[UDEV_BUILTIN_KMOD] = &udev_builtin_kmod,
[UDEV_BUILTIN_KMOD] = &udev_builtin_kmod,
+ [UDEV_BUILTIN_PATH_ID] = &udev_builtin_path_id,
+ [UDEV_BUILTIN_USB_ID] = &udev_builtin_usb_id,
};
};
+int udev_builtin_init(struct udev *udev)
+{
+ unsigned int i;
+
+ for (i = 0; i < ARRAY_SIZE(builtins); i++)
+ if (builtins[i]->init)
+ builtins[i]->init(udev);
+ return 0;
+}
+
+int udev_builtin_exit(struct udev *udev)
+{
+ unsigned int i;
+
+ for (i = 0; i < ARRAY_SIZE(builtins); i++)
+ if (builtins[i]->exit)
+ builtins[i]->exit(udev);
+ return 0;
+}
+
int udev_builtin_list(struct udev *udev)
{
unsigned int i;
int udev_builtin_list(struct udev *udev)
{
unsigned int i;
@@
-70,10
+91,17
@@
enum udev_builtin_cmd udev_builtin_lookup(const char *command)
int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const char *command, bool test)
{
int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const char *command, bool test)
{
- return builtins[cmd]->cmd(dev, command, test);
+ char arg[UTIL_PATH_SIZE];
+ int argc;
+ char *argv[128];
+
+ optind = 0;
+ util_strscpy(arg, sizeof(arg), command);
+ udev_build_argv(udev_device_get_udev(dev), arg, &argc, argv);
+ return builtins[cmd]->cmd(dev, argc, argv, test);
}
}
-int udev_builtin_add_property(struct udev_device *dev, bool test, const char *key, const char *val
, ...
)
+int udev_builtin_add_property(struct udev_device *dev, bool test, const char *key, const char *val)
{
struct udev_list_entry *entry;
{
struct udev_list_entry *entry;