summaryrefslogtreecommitdiffstats
path: root/generate_pciclass.pl
diff options
context:
space:
mode:
authorDexter Morgan <dmorgan@mageia.org>2011-06-02 20:49:50 +0000
committerDexter Morgan <dmorgan@mageia.org>2011-06-02 20:49:50 +0000
commitdb5a94788a783a716de6c79e23f2e45093aca398 (patch)
treef0448c53425509d4272a355f120cb7249d4d58e8 /generate_pciclass.pl
downloadldetect-db5a94788a783a716de6c79e23f2e45093aca398.tar
ldetect-db5a94788a783a716de6c79e23f2e45093aca398.tar.gz
ldetect-db5a94788a783a716de6c79e23f2e45093aca398.tar.bz2
ldetect-db5a94788a783a716de6c79e23f2e45093aca398.tar.xz
ldetect-db5a94788a783a716de6c79e23f2e45093aca398.zip
Branch for updatesdistro/mga1
Diffstat (limited to 'generate_pciclass.pl')
-rw-r--r--generate_pciclass.pl28
1 files changed, 28 insertions, 0 deletions
diff --git a/generate_pciclass.pl b/generate_pciclass.pl
new file mode 100644
index 0000000..948431d
--- /dev/null
+++ b/generate_pciclass.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+
+print q(/* This auto-generated from <pci.h>, don't modify! */
+
+static struct {
+ unsigned short id;
+ const char *name;
+} classes[] = {
+);
+
+/^#define PCI_CLASS_(\w+)\s+(0x\w{4})/ and print qq( { $2, "$1" },\n) while <>;
+
+print '
+};
+
+static int nb_classes = sizeof(classes) / sizeof(*classes);
+
+#pragma GCC visibility push(default)
+extern const char *pci_class2text(unsigned long class_id) {
+ int i;
+ for (i = 0; i < nb_classes; i++)
+ if (classes[i].id == class_id) return classes[i].name;
+
+ return pci_class2text(0);
+}
+#pragma GCC visibility pop
+
+';