Re: how to list pci devices from userpace? anything better than /proc/bus/pci/devices?

Martin Mares (mj@ucw.cz)
Wed, 27 Nov 2002 22:54:13 +0100


Hi!

> Red Hat distributions after 7.0 provide `lspci`. You still have
> to parse ASCII. FYI, it's not hard to write a 'C' program
> that directly accessed the PCI bus from its ports at 0xCF8 (index)
> and 0xCFC (data). You need to do 32-bit port accesses and you
> can set iopl(3) from user-space.

Please DON'T do that -- not all machines support this access mechanism
and even on them directly poking the I/O ports would lead to races with
other programs and as well with the kernel.

Either use lspci (which has a nice machine-parseable output mode) or
parse /proc/bus/pci/devices or use the libpci library (part of the
pciutils package).

Have a nice fortnight

-- 
Martin `MJ' Mares   <mj@ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
A LISP programmer knows value of everything, but cost of nothing.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/