📄 pci.h
字号:
#ifndef _COMPAT_PCI_H#define _COMPAT_PCI_H#include_next <linux/pci.h>#include <linux/version.h>#ifndef PCI_FUNC#define PCI_FUNC(devfn) ((devfn)&7)#define PCI_SLOT(devfn) ((devfn)>>3)#define PCI_DEVFN(dev,fn) (((dev)<<3)|((fn)&7))#endif#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,1,0))extern struct pci_dev *pci_devices;extern struct pci_bus pci_root;#endif#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,1,93))#include <linux/bios32.h>#include <linux/types.h>extern struct pci_dev *pci_find_slot(u_int bus, u_int devfn);extern struct pci_dev *pci_find_class(u_int class, struct pci_dev *from);#define pci_fn(x, sz, t) \ static inline int pci_##x##_config_##sz(struct pci_dev *d, u8 w, t v) \ { return pcibios_##x##_config_##sz(d->bus->number, d->devfn, w, v); }pci_fn(read, byte, u8 *)pci_fn(read, word, u16 *)pci_fn(read, dword, u32 *)pci_fn(write, byte, u8)pci_fn(write, word, u16)pci_fn(write, dword, u32)#endif#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,3,24))#define pci_enable_device __pci_enable_deviceextern int pci_enable_device(struct pci_dev *dev);extern int pci_set_power_state(struct pci_dev *dev, int state);#endif#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,3,40))#define pci_for_each_dev(p) for (p = pci_devices; p; p = p->next)#endif#ifndef pci_resource_start#define pci_resource_start(dev, i) \ (((dev)->base_address[i] & PCI_BASE_ADDRESS_SPACE) ? \ ((dev)->base_address[i] & PCI_BASE_ADDRESS_IO_MASK) : \ ((dev)->base_address[i] & PCI_BASE_ADDRESS_MEM_MASK))#define pci_resource_flags(dev, i) \ (dev->base_address[i] & IORESOURCE_IO)#endifextern u32 pci_irq_mask;#endif /* _COMPAT_PCI_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -