diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2008-10-05 08:06:08 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2008-10-05 08:06:08 +0000 |
commit | 2357263216d68562e2ccabff7e43bafcbccc4f7b (patch) | |
tree | 536a03784436b0faf3bd9602a4b25cd40cfcf9d4 | |
parent | 7557065b3463e7dcda5964f1c37ea447dd4b32a2 (diff) |
provide a pciutils style pci.ids file for libpciaccess.
ok todd@ deraadt@
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | lib/libpciaccess/Makefile.bsd-wrapper | 4 | ||||
-rw-r--r-- | share/pciids/Makefile | 19 | ||||
-rw-r--r-- | share/pciids/pcidevs2pciids.pl | 56 |
4 files changed, 80 insertions, 2 deletions
@@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.26 2008/06/12 21:58:28 matthieu Exp $ +# $OpenBSD: Makefile,v 1.27 2008/10/05 08:06:06 matthieu Exp $ .include <bsd.own.mk> LOCALAPPD=/usr/local/lib/X11/app-defaults @@ -15,6 +15,7 @@ SUBDIR= proto data/bitmaps lib app data/xkbdata ${XSERVER} driver util doc .ifndef NOFONTS SUBDIR+= font .endif +SUBDIR+= share/pciids SUBDIR+= distrib/notes NOOBJ= diff --git a/lib/libpciaccess/Makefile.bsd-wrapper b/lib/libpciaccess/Makefile.bsd-wrapper index a0b842eb9..806283395 100644 --- a/lib/libpciaccess/Makefile.bsd-wrapper +++ b/lib/libpciaccess/Makefile.bsd-wrapper @@ -1,5 +1,7 @@ -# $OpenBSD: Makefile.bsd-wrapper,v 1.2 2008/06/15 04:56:00 matthieu Exp $ +# $OpenBSD: Makefile.bsd-wrapper,v 1.3 2008/10/05 08:06:06 matthieu Exp $ SHARED_LIBS= pciaccess 0.10 +CONFIGURE_ARGS+= --with-pciids-path=${X11BASE}/share + .include <bsd.xorg.mk> diff --git a/share/pciids/Makefile b/share/pciids/Makefile new file mode 100644 index 000000000..d40dd6c35 --- /dev/null +++ b/share/pciids/Makefile @@ -0,0 +1,19 @@ +# $OpenBSD: Makefile,v 1.1 2008/10/05 08:06:07 matthieu Exp $ + +.include <bsd.own.mk> + +all: pci.ids + +install: + ${INSTALL_DATA} -c pci.ids ${X11BASE}/share/ + +pci.ids: ${BSDSRCDIR}/sys/dev/pci/pcidevs + perl ${.CURDIR}/pcidevs2pciids.pl < ${BSDSRCDIR}/sys/dev/pci/pcidevs \ + > pci.ids + +clean: + rm -f pci.ids + +.include <bsd.xorg.mk> + + diff --git a/share/pciids/pcidevs2pciids.pl b/share/pciids/pcidevs2pciids.pl new file mode 100644 index 000000000..f03ea1b55 --- /dev/null +++ b/share/pciids/pcidevs2pciids.pl @@ -0,0 +1,56 @@ +#! /usr/bin/perl -w +# +# Produces a pciutils style pci.ids file from BSD pcidevs input +# +# Copyright (c) 2008 Matthieu Herrb <matthieu@herrb.eu> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +while (<>) { + chop; + if (/^\$OpenBSD:/) { + $rcsid = $_; + } + if (/^vendor/) { + ($dummy,$label,$id,$name) = split(/\s+/, $_, 4); + $id = oct($id); + $vendor_id{$label} = $id; + $vendor_name{$id} = $name; + } + if (/^product/) { + ($dummy,$vlabel,$dummy,$id,$name) = split(/\s+/, $_, 5); + $id = oct($id); + $v = $vendor_id{$vlabel}; + $name{$v,$id} = $name; + push @{$product{$v}},$id; + } +} + +print "# THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.\n"; +print "#\n"; +print "# generated from:\n"; +print "#\t $rcsid\n"; +print "\n"; + +sub numerically { + $a <=> $b +} + +foreach $v (sort numerically keys %vendor_name) { + printf("%04x $vendor_name{$v}\n", $v); + next if (!defined($product{$v})); + foreach $p (sort numerically @{$product{$v}}) { + printf("\t%04x $name{$v,$p}\n", $p); + } + +} |