[PATCH] introduce format char 'k' for kernel-name

Attached is a patch that introduces the format char 'k' to be replaced with
the kernel name. I like to have it in a callout script.

I've moved the build_kernel_name() back to namedev_name_device() since
we don't expect it growing cause of 'sdaj' :)
This commit is contained in:
kay.sievers@vrfy.org 2003-12-22 19:13:19 -08:00 committed by Greg KH
parent 8c5d34e508
commit 3e54036862
2 changed files with 16 additions and 12 deletions

View File

@ -186,17 +186,6 @@ static mode_t get_default_mode(struct sysfs_class_device *class_dev)
return mode;
}
static void build_kernel_number(struct sysfs_class_device *class_dev, struct udevice *udev)
{
char *dig;
dig = class_dev->name + strlen(class_dev->name);
while (isdigit(*(dig-1)))
dig--;
strfieldcpy(udev->kernel_number, dig);
dbg("kernel_number='%s'", udev->kernel_number);
}
static void apply_format(struct udevice *udev, unsigned char *string)
{
char name[NAME_SIZE];
@ -230,6 +219,12 @@ static void apply_format(struct udevice *udev, unsigned char *string)
strcat(pos, udev->bus_id);
dbg("substitute bus_id '%s'", udev->bus_id);
break;
case 'k':
if (strlen(udev->kernel_name) == 0)
break;
strcat(pos, udev->kernel_name);
dbg("substitute kernel name '%s'", udev->kernel_name);
break;
case 'n':
if (strlen(udev->kernel_number) == 0)
break;
@ -728,6 +723,7 @@ int namedev_name_device(struct sysfs_class_device *class_dev, struct udevice *ud
struct sysfs_class_device *class_dev_parent = NULL;
int retval = 0;
struct perm_device *perm;
char *pos;
udev->mode = 0;
@ -743,7 +739,14 @@ int namedev_name_device(struct sysfs_class_device *class_dev, struct udevice *ud
dbg("class_dev->name = '%s'", class_dev->name);
}
build_kernel_number(class_dev, udev);
strfieldcpy(udev->kernel_name, class_dev->name);
/* get kernel number */
pos = class_dev->name + strlen(class_dev->name);
while (isdigit(*(pos-1)))
pos--;
strfieldcpy(udev->kernel_number, pos);
dbg("kernel_number='%s'", udev->kernel_number);
/* rules are looked at in priority order */
retval = do_callout(class_dev, udev, sysfs_device);

1
udev.h
View File

@ -70,6 +70,7 @@ struct udevice {
unsigned char bus_id[SYSFS_NAME_LEN];
unsigned char callout_value[NAME_SIZE];
unsigned char kernel_number[NAME_SIZE];
unsigned char kernel_name[NAME_SIZE];
};