#include <ctype.h>
#include <signal.h>
+#include "libsysfs/sysfs/libsysfs.h"
#include "udev.h"
#include "udev_version.h"
-#include "udev_dbus.h"
#include "logging.h"
#include "namedev.h"
-#include "udevdb.h"
-#include "libsysfs/libsysfs.h"
/* global variables */
char **main_argv;
char **main_envp;
#ifdef LOG
-unsigned char logname[42];
+unsigned char logname[LOGNAME_SIZE];
void log_message (int level, const char *format, ...)
{
- va_list args;
-
- if (!udev_log)
- return;
+ va_list args;
va_start(args, format);
- vsyslog(level, format, args);
+ vprintf(format, args);
va_end(args);
+ if (format[strlen(format)-1] != '\n')
+ printf("\n");
}
#endif
-static void sig_handler(int signum)
-{
- switch (signum) {
- case SIGINT:
- case SIGTERM:
- sysbus_disconnect();
- udevdb_exit();
- exit(20 + signum);
- default:
- dbg("unhandled signal");
- }
-}
-
-static inline char *get_action(void)
-{
- char *action;
-
- action = getenv("ACTION");
- return action;
-}
-
-static inline char *get_devpath(void)
-{
- char *devpath;
-
- devpath = getenv("DEVPATH");
- return devpath;
-}
-
-static inline char *get_seqnum(void)
-{
- char *seqnum;
-
- seqnum = getenv("SEQNUM");
- return seqnum;
-}
-
static char *subsystem_blacklist[] = {
"net",
"scsi_host",
"scsi_device",
"usb_host",
"pci_bus",
- "",
+ "pcmcia_socket",
+ ""
};
-static int udev_hotplug(int argc, char **argv)
+static int udev_hotplug(void)
{
- char *action;
char *devpath;
char *subsystem;
int retval = -EINVAL;
int i;
- struct sigaction act;
- action = get_action();
- if (!action) {
- dbg ("no action?");
- goto exit;
- }
-
- devpath = get_devpath();
+ devpath = main_argv[1];
if (!devpath) {
- dbg ("no devpath?");
+ dbg("no devpath?");
goto exit;
}
dbg("looking at '%s'", devpath);
}
/* skip blacklisted subsystems */
- subsystem = argv[1];
+ subsystem = main_argv[1];
i = 0;
while (subsystem_blacklist[i][0] != '\0') {
if (strcmp(subsystem, subsystem_blacklist[i]) == 0) {
i++;
}
- /* connect to the system message bus */
- sysbus_connect();
-
/* initialize our configuration */
udev_init_config();
- /* initialize udev database */
- retval = udevdb_init(UDEVDB_DEFAULT);
- if (retval != 0) {
- dbg("unable to initialize database");
- goto exit_sysbus;
- }
-
- /* set up a default signal handler for now */
- act.sa_handler = sig_handler;
- sigemptyset (&act.sa_mask);
- act.sa_flags = SA_RESTART;
- sigaction(SIGINT, &act, NULL);
- sigaction(SIGTERM, &act, NULL);
-
/* initialize the naming deamon */
namedev_init();
- if (strcmp(action, "add") == 0)
- retval = udev_add_device(devpath, subsystem);
-
- else if (strcmp(action, "remove") == 0)
- retval = udev_remove_device(devpath, subsystem);
-
- else {
- dbg("unknown action '%s'", action);
- retval = -EINVAL;
- }
- udevdb_exit();
-
-exit_sysbus:
- /* disconnect from the system message bus */
- sysbus_disconnect();
+ /* simulate node creation with fake flag */
+ retval = udev_add_device(devpath, subsystem, 1);
exit:
if (retval > 0)
return -retval;
}
-int main(int argc, char **argv, char **envp)
+int main(int argc, char *argv[], char *envp[])
{
main_argv = argv;
main_envp = envp;
- init_logging("udev");
dbg("version %s", UDEV_VERSION);
- return udev_hotplug(argc, argv);
+ return udev_hotplug();
}