Hi, The kernel doesn't store any information about 'correct' drivers. It calls the init functions of all drivers that you choose to include while building. The driver then interfaces with PCI (or any other bus) module to claim and initialize the appropriate devices. Generic IDE driver initialization (ide_init()) is done from device_init(). In turn, ide_init() calls the init function of one or more configured h/w drivers. init_scsi() is called from do_initcalls() to initialize the generic SCSI driver. H/w sepecific SCSI drivers are initialized through init_this_scsi_driver() calls (also called from do_initcalls()). Hope this helps, Ravi. --- anurekh saxena <anurekh@calsoftinc.com> wrote: > hi, > i was going through the PCI interface in the Linux > 2.4 kernel and got very > confused about how the drivers fit into the whole > scene. I understand that > the kernel maintains a table starting with the bus > and all the devices and > bridges connected to it ,but during boot time when > are the drivers(example > IDE,SCSI etc) loaded . I mean does the kernel call > each drivers startup > routine to see if its the correct driver, or is this > information stored > somewhere . > regards > anurekh > __________________________________________________ Do You Yahoo!? Check out Yahoo! Shopping and Yahoo! Auctions for all of your unique holiday gifts! Buy at http://shopping.yahoo.com or bid at http://auctions.yahoo.com -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/