udevinfo symlink reverse query
PATCH 1/1 udevinfo symlink reverse query
Thanks to Olaf Hering <[email protected]> for this patch. It's possible now to feed the -n option of udevinfo with a symlink.
I've also added a 'all' attribute, but no more text, it's all in the included man page :)
thanks,
Kay
===== udevdb.c 1.23 vs edited =====
udevdb.c +19 -2
@@ -27,6 +27,7 @@#define _KLIBC_HAS_ARCH_SIG_ATOMIC_T#include <stdlib.h> #include <stdio.h> +#include <string.h> #include <fcntl.h> #include <string.h> #include <sys/stat.h>
@@ -178,13 +179,29 @@static int find_device_by_name (char *path,struct udevice *dev) { +int l, i, j;if (strncmp (dev->name, find_name,sizeof (dev->name)) ==0 ) { -memcpy (find_dev, dev,sizeof (*find_dev)); -strfieldcpy (find_path, path); +memcpy (find_dev, dev,sizeof (struct udevice )); +strnfieldcpy (find_path, path,NAME_SIZE ); find_found =1 ;/* stop search */ return 1 ; } +/* look for matching symlink*/ + l =strlen (dev->symlink); +if (!l) +return 0 ; + i = j =0 ; +do { + j =strcspn (&dev->symlink[i]," " ); +if (j &&strncmp (&dev->symlink[i], find_name, j) ==0 ) { +memcpy (find_dev, dev,sizeof (struct udevice )); +strnfieldcpy (find_path, path,NAME_SIZE ); + find_found =1 ; +return 1 ; + } + i = i + j +1 ; + }while (i < l);return 0 ; }
===== udevinfo.8 1.5 vs edited =====
udevinfo.8 +2 -2
@@ -28,13 +28,13 @@ .RB Needs " -p " or " -n " specified. .br Valid types are: -.BR name ", " symlink ", " mode " ," owner " , " group " or " path. +.BR name ", " symlink ", " mode " ," owner " , " group " , " path " or " all. .TP .BI -p " sysfs_path" Specify the sysfs path of the device to query. .TP .BI -n " name" -Specify the name of the node for the device to query. +Specify the name of the node or the symlink for the device to query. .TP .B -a Print all
===== udevinfo.c 1.14 vs edited =====
udevinfo.c +14 -2
@@ -122,7 +122,8 @@SYMLINK ,MODE ,OWNER , - GROUP +GROUP , + ALL };static int print_device_chain (const char *path)
@@ -258,6 +259,11 @@break ; } +if (strcmp (optarg,"all" ) ==0 ) { + query =ALL ; +break ; + } +printf ("unknown query type\n" );exit (1 );
@@ -366,6 +372,10 @@strfieldcpy (result, path);break ; +case ALL : +print_record (path, &dev); + goto exit; +default : goto exit; }
@@ -406,8 +416,10 @@" 'owner' of node\n" " 'group' of node\n" " 'path' sysfs device path\n" +" 'all' all values\n" +"\n" " -p PATH sysfs device path used for query or chain\n" -" -n NAME node name used for query\n" +" -n NAME node/symlink name used for query\n" "\n" " -r print udev root\n" " -a print all SYSFS_attributes along the device chain\n"
Greg KH
AppliedQuoted 5 lines · Kay Sievers
Thanks to Olaf Hering <[email protected]> for this patch. It's possible now to feed the -n option of udevinfo with a symlink.
I've also added a 'all' attribute, but no more text, it's all in the included man page :)
Applied, thanks.
greg k-h
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id56&alloc_id438&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel