当前位置: 技术问答>linux和unix
读PCI时有段代码不懂,请高手解释一下
来源: 互联网 发布时间:2016-11-07
本文导语: #define PCI_OP_READ(size,type,len) int pci_bus_read_config_##size (struct pci_bus *bus, unsigned int devfn, int pos, type *value) { int res; unsigned long flags; u32 data = 0; if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_...
#define PCI_OP_READ(size,type,len)
int pci_bus_read_config_##size
(struct pci_bus *bus, unsigned int devfn, int pos, type *value)
{
int res;
unsigned long flags;
u32 data = 0;
if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER;
spin_lock_irqsave(&pci_lock, flags);
res = bus->ops->read(bus, devfn, pos, len, &data);
*value = (type)data;
spin_unlock_irqrestore(&pci_lock, flags);
return res;
}
对于pci_bus_read_config_##size和PCI_##size##_BAD预处理器是怎么展开的?
多谢!
int pci_bus_read_config_##size
(struct pci_bus *bus, unsigned int devfn, int pos, type *value)
{
int res;
unsigned long flags;
u32 data = 0;
if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER;
spin_lock_irqsave(&pci_lock, flags);
res = bus->ops->read(bus, devfn, pos, len, &data);
*value = (type)data;
spin_unlock_irqrestore(&pci_lock, flags);
return res;
}
对于pci_bus_read_config_##size和PCI_##size##_BAD预处理器是怎么展开的?
多谢!
|
##是一个预处理运算符,作用是将两个独立的字符串连接成一个字符串
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。