Hi Martin,
Stefan Reinauer created a port of pciutils to Mac OS X. I am just forwarding the patch. Please merge it if possible. You can also find the patch at http://www.coresystems.de/~stepan/pciutils-3.1.4.diff
Regards, Carl-Daniel
Index: pciutils-3.1.4/lib/configure =================================================================== --- pciutils-3.1.4/lib/configure +++ pciutils-3.1.4/lib/configure @@ -8,9 +8,9 @@ echo_n() { if [ -n "$BASH" ] then - echo -n "$*" + /bin/echo -n "$*" else - echo "$*\c" + /bin/echo "$*\c" fi }
@@ -124,6 +124,12 @@ echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' echo >>$m 'WITH_LIBS+=-lioperm' ;; + darwin) + echo_n " i386-ports" + echo >>$c '#define PCI_HAVE_PM_INTEL_CONF' + echo >>$c '#define PCI_HAVE_64BIT_ADDRESS' + echo >>$m 'WITH_LIBS+=-framework DirectIO' + ;; *) echo " Unfortunately, your OS is not supported by the PCI Library" exit 1 Index: pciutils-3.1.4/lib/i386-io-darwin.h =================================================================== --- pciutils-3.1.4/lib/i386-io-darwin.h +++ pciutils-3.1.4/lib/i386-io-darwin.h @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2008 coresystems GmbH + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include <DirectIO/darwinio.h> + +/* Compatibility for libpci */ +static int intel_setup_io(struct pci_access *a __attribute__((unused))) +{ + return !iopl(0); +} + +static int intel_cleanup_io(struct pci_access *a __attribute__((unused))) +{ + return 1; +} + Index: pciutils-3.1.4/lib/i386-ports.c =================================================================== --- pciutils-3.1.4/lib/i386-ports.c +++ pciutils-3.1.4/lib/i386-ports.c @@ -22,6 +22,8 @@ #include "i386-io-windows.h" #elif defined(PCI_OS_CYGWIN) #include "i386-io-cygwin.h" +#elif defined(PCI_OS_DARWIN) +#include "i386-io-darwin.h" #else #error Do not know how to access I/O ports on this OS. #endif Index: pciutils-3.1.4/osx/Welcome.rtf =================================================================== --- pciutils-3.1.4/osx/Welcome.rtf +++ pciutils-3.1.4/osx/Welcome.rtf @@ -0,0 +1,20 @@ +{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red128\green128\blue128;} +\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\f0\b\fs26 \cf2 Welcome to PCI Utilities\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl120\slmult1\ql\qnatural\pardirnatural + +\b0 \cf2 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural +\cf2 This package contains the PCI Utilities, version 3.1.4.\ +\ +Copyright (c) 1997--2009 Martin Mares mj@ucw.cz\ +\ +The PCI Utilities package contains a library for portable access to PCI bus configuration registers and several utilities based on this library.\ +\ +You also might want to look at the pciutils web page containing release notes and other news: http://mj.ucw.cz/pciutils.shtml .\ +\ +You will now be guided through the steps necessary to install this software.} \ No newline at end of file Index: pciutils-3.1.4/osx/pciutils.pmdoc/01root.xml =================================================================== --- pciutils-3.1.4/osx/pciutils.pmdoc/01root.xml +++ pciutils-3.1.4/osx/pciutils.pmdoc/01root.xml @@ -0,0 +1,24 @@ +<pkgref spec="1.12" uuid="94522C23-7BEF-4761-8AA3-4FE2E2784DB7"> + <config> + <identifier>com.pciutils.root.pkg</identifier> + <version>1</version> + <description></description> + <post-install type="none"/> + <requireAuthorization/> + <installFrom relative="true" mod="true">../root/</installFrom> + <flags> + <followSymbolicLinks/> + </flags> + <packageStore type="internal"></packageStore> + <mod>parent</mod> + <mod>installFrom.path</mod> + <mod>identifier</mod> + </config> + <contents> + <filter>/CVS$</filter> + <filter>/.svn$</filter> + <filter>/.cvsignore$</filter> + <filter>/.cvspass$</filter> + <filter>/.DS_Store$</filter> + </contents> +</pkgref> Index: pciutils-3.1.4/osx/pciutils.pmdoc/index.xml =================================================================== --- pciutils-3.1.4/osx/pciutils.pmdoc/index.xml +++ pciutils-3.1.4/osx/pciutils.pmdoc/index.xml @@ -0,0 +1,53 @@ +<pkmkdoc spec="1.12"> + <properties> + <title>PCI Utilities</title> + <build>pciutils.pkg</build> + <organization>com.pciutils</organization> + <userSees ui="easy"/> + <min-target os="2"/> + <domain system="true"/> + </properties> + <distribution> + <versions min-spec="1.000000"/><scripts> + function CheckHardwareCompatibility() { + if (system.sysctl('hw.machine') == 'i386') { + return true; + } + + if (system.sysctl('hw.machine') == 'x86_64') { + return true; + } + + return false; + } + </scripts> + </distribution> + <description>The PCI Utilities package contains a library for portable access to PCI bus configuration registers and several utilities based on this library. + </description> + <contents> + <choice title="PCI Utilities" id="choice0" starts_selected="true" starts_enabled="true" starts_hidden="false"> + <pkgref id="com.pciutils.root.pkg"/> + </choice> + </contents> + <resources bg-scale="none" bg-align="bottomleft"> + <locale lang="en"> + <resource relative="true" mod="true" type="license">../COPYING</resource> + <resource relative="true" mod="true" type="welcome">Welcome.rtf</resource> + </locale> + </resources> + <requirements> + <requirement id="java" operator="eq" value="true"> + <argument>CheckHardwareCompatibility()</argument> + <message-title>Unsupported Architecture</message-title> + <message>PCI utilities are only supported on Intel® based Apple systems.</message> + </requirement> + </requirements> + <flags/> + <item type="file">01root.xml</item> + <mod>properties.userDomain</mod> + <mod>properties.systemDomain</mod> + <mod>properties.anywhereDomain</mod> + <mod>properties.title</mod> + <mod>description</mod> + <mod>postinstallActions.actions</mod> +</pkmkdoc>
* Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net [101108 23:16]:
Hi Martin,
Stefan Reinauer created a port of pciutils to Mac OS X. I am just forwarding the patch. Please merge it if possible. You can also find the patch at http://www.coresystems.de/~stepan/pciutils-3.1.4.diff
Martin,
sorry I never got back to you on the feedback you provided when I first sent the patch to you.
Actually I suggest waiting with a merge, as there have been some minor changes in the upcoming version that would require another patch (including the hardware access layer was renamed from DirectIO to DirectHW for potential trademark violation reasons.
Stefan