pci-database: pciid (NEW) - script that displays pciid in pci-data...
glen
glen at pld-linux.org
Thu Dec 21 19:04:58 CET 2006
Author: glen Date: Thu Dec 21 18:04:58 2006 GMT
Module: pci-database Tag: HEAD
---- Log message:
- script that displays pciid in pci-database format from modinfo of module alias
---- Files affected:
pci-database:
pciid (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: pci-database/pciid
diff -u /dev/null pci-database/pciid:1.1
--- /dev/null Thu Dec 21 19:04:58 2006
+++ pci-database/pciid Thu Dec 21 19:04:53 2006
@@ -0,0 +1,45 @@
+#!/bin/awk -f
+function m(s, r) {
+ if (match(s, r)) {
+ return substr(s, RSTART, RLENGTH)
+ }
+ return "";
+}
+
+BEGIN {
+ if (ARGC == 1) {
+ print "Usage:\npciid module"
+ exit 1
+ }
+ module = ARGV[1];
+
+ # modinfo -F alias nvidia | $0
+ cmd = sprintf("modinfo -F alias %s", module);
+ while (cmd | getline) {
+ v = d = "";
+
+ l = $1;
+ # l = pci:v00008086d00002668sv*sd*bc*sc*i*
+
+ vd = m($1, "pci:v[0-9A-F*]*d[0-9A-F*]*s");
+ # vd = pci:v00008086d00002668s
+
+ v = m(vd, "v[0-9A-F]*")
+ # v = v00008086
+
+ if (v) {
+ v = tolower(m(v, "[0-9A-F][0-9A-F][0-9A-F][0-9A-F]$"));
+ }
+
+ d = m(vd, "d[0-9A-F]*")
+
+ # d = d00000371
+ if (d) {
+ d = tolower(m(d, "[0-9A-F][0-9A-F][0-9A-F][0-9A-F]$"));
+ }
+
+ if (v && d) {
+ printf("%s%s\n", v, d);
+ }
+ }
+}
================================================================
More information about the pld-cvs-commit
mailing list