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