1. 程式人生 > >Linux驅動開發雜記(0x05)

Linux驅動開發雜記(0x05)

/*
 * The PCI interface treats multi-function devices as independent
 * devices.  The slot/function address of each device is encoded
 * in a single byte as follows:
 *
 *	7:3 = slot
 *	2:0 = function
 */
#define PCI_DEVFN(slot, func)	((((slot) & 0x1f) << 3) | ((func) & 0x07))
#define PCI_SLOT(devfn)		(((devfn) >> 3) & 0x1f)
#define PCI_FUNC(devfn) ((devfn) & 0x07)
struct pci_dev *dev

BusNumber    = dev->bus->number;
SlotNumber   = PCI_SLOT(dev->devfn);
FuncNumber = PCI_FUNC(dev->devfn);