[PATCH] cleanup the mknod code a bit.

This commit is contained in:
greg@kroah.com 2003-08-04 21:59:50 -07:00 committed by Greg KH
parent 0abf54fc09
commit 1331c889c3
2 changed files with 18 additions and 14 deletions

View File

@ -78,20 +78,27 @@ static int create_node(char *name, char type, int major, int minor, int mode)
int retval = 0;
strncpy(filename, UDEV_ROOT, sizeof(filename));
strncat(filename, name, sizeof(filename));
if (type == 'b') {
mode |= S_IFBLK;
} else if ((type == 'c') || (type == 'u')){
mode |= S_IFCHR;
} else if ( type == 'p') {
mode |= S_IFIFO;
} else {
dbg("unknown node type %c\n", type);
return -1;
}
switch (type) {
case 'b':
mode |= S_IFBLK;
break;
case 'c':
case 'u':
mode |= S_IFCHR;
break;
case 'p':
mode |= S_IFIFO;
break;
default:
dbg("unknown node type %c\n", type);
return -EINVAL;
}
retval = mknod(filename,mode,makedev(major,minor));
if (retval)
dbg("mknod(%s, %#o, %u, %u) failed with error '%s'",
filename, mode, major, minor, strerror(errno));
return retval;
}
struct sysfs_class_device *get_class_dev(char *device_name)

3
udev.h
View File

@ -40,9 +40,6 @@
/* Where udev should create its device nodes, trailing / needed */
#define UDEV_ROOT "/udev/"
/* Binaries that udev calls to do stuff */
#define MKNOD "/bin/mknod"
extern int log_message (int level, const char *format, ...)
__attribute__ ((format (printf, 2, 3)));