summaryrefslogtreecommitdiff
path: root/udev_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'udev_lib.c')
-rw-r--r--udev_lib.c48
1 files changed, 19 insertions, 29 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)