summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--udev_lib.c48
-rw-r--r--udev_lib.h1
-rw-r--r--udevinfo.c16
3 files changed, 22 insertions, 43 deletions
diff --git a/udev_lib.c b/udev_lib.c
index a3fab9632d..d745c9bd86 100644
--- a/udev_lib.c
+++ b/udev_lib.c
@@ -36,41 +36,31 @@
#include "list.h"
-#define BLOCK_PATH "/block/"
-#define CLASS_PATH "/class/"
-#define NET_PATH "/class/net/"
-
-char get_device_type(const char *path, const char *subsystem)
+void udev_set_values(struct udevice *udev, const char* devpath,
+ const char *subsystem, const char* action)
{
- if (strcmp(subsystem, "block") == 0)
- return 'b';
-
- if (strcmp(subsystem, "net") == 0)
- return 'n';
+ memset(udev, 0x00, sizeof(struct udevice));
+ if (devpath)
+ strfieldcpy(udev->devpath, devpath);
+ if (subsystem)
+ strfieldcpy(udev->subsystem, subsystem);
+ if (action)
+ strfieldcpy(udev->action, action);
- if (strncmp(path, BLOCK_PATH, strlen(BLOCK_PATH)) == 0 &&
- strlen(path) > strlen(BLOCK_PATH))
- return 'b';
+ if (strcmp(udev->subsystem, "block") == 0)
+ udev->type = 'b';
- if (strncmp(path, NET_PATH, strlen(NET_PATH)) == 0 &&
- strlen(path) > strlen(NET_PATH))
- return 'n';
+ if (strcmp(udev->subsystem, "net") == 0)
+ udev->type = 'n';
- if (strncmp(path, CLASS_PATH, strlen(CLASS_PATH)) == 0 &&
- strlen(path) > strlen(CLASS_PATH))
- return 'c';
+ if (strncmp(udev->devpath, "/block/", 7) == 0)
+ udev->type = 'b';
- return '\0';
-}
+ if (strncmp(udev->devpath, "/class/net/", 11) == 0)
+ udev->type = 'n';
-void udev_set_values(struct udevice *udev, const char* devpath,
- const char *subsystem, const char* action)
-{
- memset(udev, 0x00, sizeof(struct udevice));
- strfieldcpy(udev->devpath, devpath);
- strfieldcpy(udev->subsystem, subsystem);
- strfieldcpy(udev->action, action);
- udev->type = get_device_type(devpath, subsystem);
+ if (strncmp(udev->devpath, "/class/", 7) == 0)
+ udev->type = 'c';
}
int kernel_release_satisfactory(int version, int patchlevel, int sublevel)
diff --git a/udev_lib.h b/udev_lib.h
index 80dc49cd54..b9b0fda678 100644
--- a/udev_lib.h
+++ b/udev_lib.h
@@ -76,7 +76,6 @@ do { \
# define asmlinkage /* nothing */
#endif
-extern char get_device_type(const char *path, const char *subsystem);
extern void udev_set_values(struct udevice *udev, const char* devpath,
const char *subsystem, const char* action);
extern int kernel_release_satisfactory(int version, int patchlevel, int sublevel);
diff --git a/udevinfo.c b/udevinfo.c
index 097c91c21b..013068541e 100644
--- a/udevinfo.c
+++ b/udevinfo.c
@@ -125,10 +125,6 @@ static int print_device_chain(const char *path)
struct sysfs_device *sysfs_dev;
struct sysfs_device *sysfs_dev_parent;
int retval = 0;
- char type;
-
- type = get_device_type(path, "");
- dbg("device type is %c", type);
/* get the class dev */
class_dev = sysfs_open_class_device_path(path);
@@ -144,16 +140,10 @@ static int print_device_chain(const char *path)
"to match the device for which the node will be created.\n"
"\n");
- if (type == 'b' || type =='c') {
- /* read the 'dev' file for major/minor*/
- attr = sysfs_get_classdev_attr(class_dev, "dev");
- if (attr == NULL) {
- printf("couldn't get the \"dev\" file\n");
- retval = -1;
- goto exit;
- }
+ /* look for the 'dev' file */
+ attr = sysfs_get_classdev_attr(class_dev, "dev");
+ if (attr == NULL)
printf("device '%s' has major:minor %s", class_dev->path, attr->value);
- }
/* open sysfs class device directory and print all attributes */
printf(" looking at class device '%s':\n", class_dev->path);