- Update to 2.2.6.

- Teach about support for PCI domains in FreeBSD >= 700053.
- Stop including pcivar.h from the kernel source on FreeBSD => 430000,
  if this was ever necessary it no longer is since the introduction
  of pciio.h.
- Catch up with FreeBSD returning ENODEV for non-existing devices.
- Fix on big-endian archs.

PR:		116827
Approved by:	maintainer, netchild
This commit is contained in:
Marius Strobl 2007-10-05 22:57:36 +00:00
parent d7d8901ea5
commit 3c968bc46a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=200968
5 changed files with 123 additions and 29 deletions

View File

@ -6,7 +6,7 @@
#
PORTNAME= pciutils
PORTVERSION= 2.2.3
PORTVERSION= 2.2.6
CATEGORIES= sysutils
MASTER_SITES= ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/ \
ftp://ftp.kernel.org/pub/software/utils/pciutils/ \
@ -20,18 +20,6 @@ MAKE_ENV= LANG=C
MAN8= lspci.8 setpci.8 update-pciids.8
pre-configure:
@${ECHO_MSG} ""
@${ECHO_MSG} " W A R N I N G"
@${ECHO_MSG} "************************************************"
@${ECHO_MSG} "* pciutils requires that you have your kernel *"
@${ECHO_MSG} "* sources installed. If your kernel sources *"
@${ECHO_MSG} "* are somewhere other than /usr/src/sys, you *"
@${ECHO_MSG} "* may set the FREEBSD_SYS variable to the *"
@${ECHO_MSG} "* correct path. *"
@${ECHO_MSG} "************************************************"
@${ECHO_MSG} ""
do-install:
@${INSTALL_MAN} ${WRKSRC}/lspci.8 ${PREFIX}/man/man8
@${INSTALL_MAN} ${WRKSRC}/setpci.8 ${PREFIX}/man/man8

View File

@ -1,3 +1,3 @@
MD5 (pciutils-2.2.3.tar.gz) = 39747279aad46e7a6a3e1ea636d055b4
SHA256 (pciutils-2.2.3.tar.gz) = e501df7734738d0625a3765498e1c4625a2fbaf408c86599eca2070c57bc4d4b
SIZE (pciutils-2.2.3.tar.gz) = 1121334
MD5 (pciutils-2.2.6.tar.gz) = e26593ab38ef9ae4457826be9e35aff8
SHA256 (pciutils-2.2.6.tar.gz) = 30019fa23996429d3bedaa1b30e32b9ddcd2eaa4fe39ec015d533af6afc0ee6b
SIZE (pciutils-2.2.6.tar.gz) = 226049

View File

@ -1,24 +1,17 @@
--- Makefile.orig Fri May 5 21:46:32 2006
+++ Makefile Mon Nov 27 22:12:24 2006
@@ -1,19 +1,16 @@
@@ -1,13 +1,11 @@
# Makefile for The PCI Utilities
# (c) 1998--2006 Martin Mares <mj@ucw.cz>
# (c) 1998--2007 Martin Mares <mj@ucw.cz>
-OPT=-O2
-CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -Winline
+CFLAGS+= -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -Winline
-CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes
+CFLAGS+=-Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes
VERSION=2.2.3
DATE=2006-05-05
VERSION=2.2.6
DATE=2007-06-20
-PREFIX=/usr/local
SBINDIR=$(PREFIX)/sbin
SHAREDIR=$(PREFIX)/share
IDSDIR=$(SHAREDIR)
MANDIR:=$(shell if [ -d $(PREFIX)/share/man ] ; then echo $(PREFIX)/share/man ; else echo $(PREFIX)/man ; fi)
-INSTALL=install
-DIRINSTALL=install -d
+DIRINSTALL=$(INSTALL) -d
PCILIB=lib/libpci.a
PCIINC=lib/config.h lib/header.h lib/pci.h lib/types.h lib/sysdep.h

View File

@ -0,0 +1,99 @@
--- lib/fbsd-device.c.orig Tue Jul 20 07:01:31 1999
+++ lib/fbsd-device.c Tue Apr 12 10:49:09 2005
@@ -7,7 +7,9 @@
* Can be freely distributed and used under the terms of the GNU GPL.
*/
+#include <errno.h>
#include <fcntl.h>
+#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <osreldate.h>
@@ -19,13 +21,8 @@
# endif
#endif
-#if __FreeBSD_version < 500000
-# include <pci/pcivar.h>
-#else
-# include <dev/pci/pcivar.h>
-#endif
-
#if __FreeBSD_version < 430000
+# include <pci/pcivar.h>
# include <pci/pci_ioctl.h>
#else
# include <sys/pciio.h>
@@ -84,6 +81,9 @@
if (pos >= 256)
return 0;
+#if __FreeBSD_version >= 700053
+ pi.pi_sel.pc_domain = d->domain;
+#endif
pi.pi_sel.pc_bus = d->bus;
pi.pi_sel.pc_dev = d->dev;
pi.pi_sel.pc_func = d->func;
@@ -92,7 +92,13 @@
pi.pi_width = len;
if (ioctl(d->access->fd, PCIOCREAD, &pi) < 0)
- d->access->error("fbsd_read: ioctl(PCIOCREAD) failed");
+ {
+ if (errno == ENODEV)
+ {
+ return 0;
+ }
+ d->access->error("fbsd_read: ioctl(PCIOCREAD) failed: %s", strerror(errno));
+ }
switch (len)
{
@@ -100,10 +106,10 @@
buf[0] = (u8) pi.pi_data;
break;
case 2:
- ((u16 *) buf)[0] = (u16) pi.pi_data;
+ ((u16 *) buf)[0] = cpu_to_le16((u16) pi.pi_data);
break;
case 4:
- ((u32 *) buf)[0] = (u32) pi.pi_data;
+ ((u32 *) buf)[0] = cpu_to_le32((u32) pi.pi_data);
break;
}
return 1;
@@ -122,6 +128,9 @@
if (pos >= 256)
return 0;
+#if __FreeBSD_version >= 700053
+ pi.pi_sel.pc_domain = d->domain;
+#endif
pi.pi_sel.pc_bus = d->bus;
pi.pi_sel.pc_dev = d->dev;
pi.pi_sel.pc_func = d->func;
@@ -135,16 +144,20 @@
pi.pi_data = buf[0];
break;
case 2:
- pi.pi_data = ((u16 *) buf)[0];
+ pi.pi_data = le16_to_cpu(((u16 *) buf)[0]);
break;
case 4:
- pi.pi_data = ((u32 *) buf)[0];
+ pi.pi_data = le32_to_cpu(((u32 *) buf)[0]);
break;
}
if (ioctl(d->access->fd, PCIOCWRITE, &pi) < 0)
{
- d->access->error("fbsd_write: ioctl(PCIOCWRITE) failed");
+ if (errno == ENODEV)
+ {
+ return 0;
+ }
+ d->access->error("fbsd_write: ioctl(PCIOCWRITE) failed: %s", strerror(errno));
}
return 1;

View File

@ -0,0 +1,14 @@
--- lspci.c.orig Fri Mar 30 11:56:35 2007
+++ lspci.c Tue Oct 2 13:24:51 2007
@@ -58,8 +58,9 @@
* This increases our memory footprint, but only slightly since we don't
* use alloca() much.
*/
-
-#ifdef __GNUC__
+#if defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__DragonFly__)
+/* alloca() is defined in stdlib.h */
+#elif defined(__GNUC__) && !defined(PCI_OS_WINDOWS)
#include <alloca.h>
#else
#undef alloca