#include "udev.h"
#include "udev_version.h"
#include "namedev.h"
+#include "udevdb.h"
#include "libsysfs/libsysfs.h"
return device;
}
-int main(int argc, char *argv[])
+char **main_argv;
+char **main_envp;
+
+int main(int argc, char **argv, char **envp)
{
char *action;
char *device;
char *subsystem;
int retval = -EINVAL;
+ main_argv = argv;
+ main_envp = envp;
+
if (argc != 2) {
dbg ("unknown number of arguments");
goto exit;
goto exit;
}
+ /* initialize udev database */
+ retval = udevdb_init(UDEVDB_DEFAULT);
+ if (retval != 0) {
+ dbg("Unable to initialize database.");
+ goto exit;
+ }
+
/* initialize the naming deamon */
namedev_init();
if (strcmp(action, "add") == 0)
- return udev_add_device(device, argv[1]);
+ retval = udev_add_device(device, argv[1]);
- if (strcmp(action, "remove") == 0)
- return udev_remove_device(device, argv[1]);
+ else if (strcmp(action, "remove") == 0)
+ retval = udev_remove_device(device, argv[1]);
- dbg("Unknown action: %s", action);
- retval = -EINVAL;
+ else {
+ dbg("Unknown action: %s", action);
+ retval = -EINVAL;
+ }
+ udevdb_exit();
exit:
return retval;