summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>2005-02-21 15:01:53 +0100
committerGreg KH <gregkh@suse.de>2005-04-26 23:36:13 -0700
commit2a9a19245bc5ac49e9f1e1f5d073c53f611fa9e2 (patch)
tree7d26213044e76a6bf242aac227e72286b4cf7b52
parent9ed47a9f2186b67c0127049fdb4886284bc8a33d (diff)
[PATCH] determine device type in udev_init_device()
-rw-r--r--namedev.c1
-rw-r--r--udev.c9
-rw-r--r--udev_utils.c5
3 files changed, 7 insertions, 8 deletions
diff --git a/namedev.c b/namedev.c
index 0463d4df0b..a365574435 100644
--- a/namedev.c
+++ b/namedev.c
@@ -201,7 +201,6 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize,
dbg("format=%c, string='%s', tail='%s'",c , string, tail);
attr = get_format_attribute(&tail);
-
switch (c) {
case 'p':
if (strlen(udev->devpath) == 0)
diff --git a/udev.c b/udev.c
index 5dbade3c6f..7854bc74d0 100644
--- a/udev.c
+++ b/udev.c
@@ -152,18 +152,15 @@ int main(int argc, char *argv[], char *envp[])
/* older kernels passed the SUBSYSTEM only as argument */
if (!subsystem && argc == 2)
subsystem = argv[1];
- udev_init_device(&udev, devpath, subsystem);
if (!action) {
dbg("no action");
goto hotplug;
}
-
if (!subsystem) {
dbg("no subsystem");
goto hotplug;
}
-
if (!devpath) {
dbg("no devpath");
goto hotplug;
@@ -173,7 +170,9 @@ int main(int argc, char *argv[], char *envp[])
if (udev_log)
setenv("UDEV_LOG", "1", 1);
- if ((strncmp(devpath, "/block/", 7) == 0) || (strncmp(devpath, "/class/", 7) == 0)) {
+ udev_init_device(&udev, devpath, subsystem);
+
+ if (udev.type == BLOCK || udev.type == CLASS || udev.type == NET) {
if (strcmp(action, "add") == 0) {
/* wait for sysfs and possibly add node */
dbg("udev add");
@@ -221,7 +220,7 @@ int main(int argc, char *argv[], char *envp[])
if (udev_dev_d)
udev_multiplex_directory(&udev, DEVD_DIR, DEVD_SUFFIX);
}
- } else if ((strncmp(devpath, "/devices/", 9) == 0)) {
+ } else if (udev.type == PHYSDEV) {
if (strcmp(action, "add") == 0) {
/* wait for sysfs */
dbg("devices add");
diff --git a/udev_utils.c b/udev_utils.c
index ea4aa25c90..c1e497626e 100644
--- a/udev_utils.c
+++ b/udev_utils.c
@@ -60,6 +60,8 @@ int udev_init_device(struct udevice *udev, const char* devpath, const char *subs
udev->type = NET;
else if (strncmp(udev->devpath, "/class/", 7) == 0)
udev->type = CLASS;
+ else if (strncmp(udev->devpath, "/devices/", 9) == 0)
+ udev->type = PHYSDEV;
udev->mode = 0660;
strcpy(udev->owner, "root");
@@ -293,8 +295,7 @@ static int name_list_add(struct list_head *name_list, const char *name, int sort
}
/* calls function for every file found in specified directory */
-int call_foreach_file(file_fnct_t fnct, const char *dirname,
- const char *suffix, void *data)
+int call_foreach_file(file_fnct_t fnct, const char *dirname, const char *suffix, void *data)
{
struct dirent *ent;
DIR *dir;