mirror of
https://github.com/systemd/systemd.git
synced 2025-01-26 14:04:03 +03:00
[PATCH] determine device type in udev_init_device()
This commit is contained in:
parent
9ed47a9f21
commit
2a9a19245b
@ -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)
|
||||
|
9
udev.c
9
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");
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user