您的位置:首页 > 其它

__atribute__使用:关于_attribute__ ((used,__section__(".xxxx")))的理解

2008-01-16 09:37 633 查看
从etherboot代码中发现有一个__attribute__的使用,#define __pci_driver __attribute__ ((used,__section__(".drivers.pci")))
/* Defined by the linker... */
extern const struct pci_driver pci_drivers[];
extern const struct pci_driver pci_drivers_end[];

这部分代码是etherboot搜索相应网卡驱动用到的。

for(driver = pci_drivers; driver < pci_drivers_end; driver++) {

/*scan driver*/

}

__section__是把相应的结构放到指定的段.drivers.pci中

在 src/arch/i386/core/etherboot.lds中有下面描述

SECTIONS {

......
.drivers.pci : {
pci_drivers = . ;
*(.drivers.pci);
pci_drivers_end = . ;
}

......

}

说明所有的驱动都放在pci_drivers 和pci_drivers_end两个地址之间,这样可以通过上面的for循环一次查找相应的驱动程序。

unused

属性 unused 用于函数和变量,表示该函数或变量可能不使用,这个属性可以避免
编译器产生警告信息。used反之 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐