diff --git a/src/arch/i386/prefix/select_isapnp.c b/src/arch/i386/prefix/select_isapnp.c new file mode 100644 index 00000000..ac1af217 --- /dev/null +++ b/src/arch/i386/prefix/select_isapnp.c @@ -0,0 +1,20 @@ +#include "isapnp.h" +#include "registers.h" + +/* + * Register a device as the default ISAPnP boot device. This code is + * called by the ISAPnP ROM prefix. + * + * Do not move this code to drivers/bus/isapnp.c, because it is + * i386-specific, and don't merge it with select_pci.c, because that + * would cause linker symbol pollution. + * + */ +void i386_select_isapnp_device ( struct i386_all_regs *regs ) { + /* + * PnP BIOS passes card select number in %bx and read port + * address in %dx. + * + */ + select_isapnp_device ( regs->dx, regs->bx ); +} diff --git a/src/arch/i386/prefix/select_pci.c b/src/arch/i386/prefix/select_pci.c new file mode 100644 index 00000000..046c59f4 --- /dev/null +++ b/src/arch/i386/prefix/select_pci.c @@ -0,0 +1,19 @@ +#include "pci.h" +#include "registers.h" + +/* + * Register a device as the default PCI boot device. This code is + * called by the PCI ROM prefix. + * + * Do not move this code to drivers/bus/pci.c, because it is + * i386-specific, and don't merge it with select_isapnp.c, because + * that would cause linker symbol pollution. + * + */ +void i386_select_pci_device ( struct i386_all_regs *regs ) { + /* + * PCI BIOS passes busdevfn in %ax + * + */ + select_pci_device ( regs->ax ); +}