We need to open the pci device O_RDONLY not O_RDWR for this
to work, otherwise the result is:
lspci: obsd_init: /dev/pci open failed
Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/pciutils/Makefile,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile
--- Makefile 30 Sep 2009 05:24:24 -0000 1.10
+++ Makefile 5 Mar 2010 18:36:18 -0000
@@ -5,7 +5,7 @@ NOT_FOR_ARCHS = sparc m68k m88k vax
COMMENT = PCI bus configuration register access tools
DISTNAME = pciutils-3.1.2
-PKGNAME = ${DISTNAME}p0
+PKGNAME = ${DISTNAME}p1
CATEGORIES = sysutils
HOMEPAGE = http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml
Index: patches/patch-Makefile
===================================================================
RCS file: /cvs/ports/sysutils/pciutils/patches/patch-Makefile,v
retrieving revision 1.3
diff -u -p -r1.3 patch-Makefile
--- patches/patch-Makefile 30 Jan 2009 22:22:39 -0000 1.3
+++ patches/patch-Makefile 5 Mar 2010 18:36:18 -0000
@@ -1,16 +1,16 @@
---- Makefile.orig Sun Nov 9 21:28:18 2008
-+++ Makefile Wed Jan 7 13:41:39 2009
+--- Makefile.orig Sun Feb 1 17:49:22 2009
++++ Makefile Fri Mar 5 19:31:55 2010
@@ -1,8 +1,7 @@
# Makefile for The PCI Utilities
- # (c) 1998--2008 Martin Mares <[email protected]>
+ # (c) 1998--2009 Martin Mares <[email protected]>
-OPT=-O2
-CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes
-Wmissing-prototypes
+CFLAGS+= -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes
- VERSION=3.0.3
- DATE=2008-11-09
-@@ -97,7 +96,6 @@
+ VERSION=3.1.2
+ DATE=2009-02-01
+@@ -105,7 +104,6 @@ install: all
$(INSTALL) -c -m 755 update-pciids $(DESTDIR)$(SBINDIR)
$(INSTALL) -c -m 644 $(PCI_IDS) $(DESTDIR)$(IDSDIR)
$(INSTALL) -c -m 644 lspci.8 setpci.8 update-pciids.8
$(DESTDIR)$(MANDIR)/man8
Index: patches/patch-lib_names-net_c
===================================================================
RCS file: /cvs/ports/sysutils/pciutils/patches/patch-lib_names-net_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-lib_names-net_c
--- patches/patch-lib_names-net_c 30 Jan 2009 22:22:39 -0000 1.1
+++ patches/patch-lib_names-net_c 5 Mar 2010 18:36:18 -0000
@@ -1,6 +1,7 @@
---- lib/names-net.c.ori Wed Jan 7 12:50:25 2009
-+++ lib/names-net.c Wed Jan 7 12:52:26 2009
-@@ -194,7 +194,7 @@
+$OpenBSD$
+--- lib/names-net.c.orig Tue Nov 11 00:11:51 2008
++++ lib/names-net.c Fri Mar 5 19:31:55 2010
+@@ -194,7 +194,7 @@ char
resolver_inited = 1;
res_init();
}
@@ -9,7 +10,7 @@
if (res < 0)
{
a->debug("\tfailed, h_errno=%d\n", h_errno);
-@@ -208,7 +208,7 @@
+@@ -208,7 +208,7 @@ char
dns_init_section(&ds, DNS_SEC_ANSWER);
while (dns_parse_rr(&ds) > 0)
{
Index: patches/patch-lib_obsd-device_c
===================================================================
RCS file: /cvs/ports/sysutils/pciutils/patches/patch-lib_obsd-device_c,v
retrieving revision 1.3
diff -u -p -r1.3 patch-lib_obsd-device_c
--- patches/patch-lib_obsd-device_c 30 Dec 2006 14:55:25 -0000 1.3
+++ patches/patch-lib_obsd-device_c 5 Mar 2010 18:36:18 -0000
@@ -1,7 +1,16 @@
$OpenBSD: patch-lib_obsd-device_c,v 1.3 2006/12/30 14:55:25 matthieu Exp $
---- lib/obsd-device.c.orig Sat Sep 9 12:53:01 2006
-+++ lib/obsd-device.c Sat Dec 16 16:13:26 2006
-@@ -58,11 +58,6 @@ static int
+--- lib/obsd-device.c.orig Fri Nov 21 22:00:38 2008
++++ lib/obsd-device.c Fri Mar 5 19:33:29 2010
+@@ -41,7 +41,7 @@ obsd_init(struct pci_access *a)
+ {
+ char *name = pci_get_param(a, "obsd.path");
+
+- a->fd = open(name, O_RDWR, 0);
++ a->fd = open(name, O_RDONLY, 0);
+ if (a->fd < 0)
+ a->error("obsd_init: %s open failed", name);
+ }
+@@ -56,11 +56,6 @@ static int
obsd_read(struct pci_dev *d, int pos, byte *buf, int len)
{
struct pci_io pi;
@@ -12,10 +21,10 @@ $OpenBSD: patch-lib_obsd-device_c,v 1.3
- } u;
if (!(len == 1 || len == 2 || len == 4))
- {
-@@ -86,18 +81,16 @@ obsd_read(struct pci_dev *d, int pos, by
+ return pci_generic_block_read(d, pos, buf, len);
+@@ -81,18 +76,16 @@ obsd_read(struct pci_dev *d, int pos, byte *buf, int l
+ else
d->access->error("obsd_read: ioctl(PCIOCREAD) failed");
- }
}
- u.u32 = pi.pi_data;
-