一、PCI总线注册
1、pci总线注册对应构造函数
static int __init pci_driver_init(void)
{
return bus_register(&pci_bus_type);
}
postcore_initcall(pci_driver_init);
#define postcore_initcall(fn) __define_initcall("2",fn)
#define __define_initcall(level,fn) \
static initcall_t __initcall_##fn __attribute_used__ \
__attribute__((__section__(".initcall" level ".init"))) = fn
start_kernel -->rest_init() -->kernel_init() --> do_basic_setup() -->do_initcalls()----》遍历.initcall" level ".init,执行.initcall" level ".init对应的fn,最终pci_driver_init被执行
2、执行注册
pci总线的ops结构体:
struct bus_type pci_bus_type = {
.name = "pci",
.match = pci_bus_match,
.hotplug = pci_hotplug,
.suspend = pci_device_suspend,
.resume