summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/arch/i386/prefix/select_isapnp.c20
-rw-r--r--src/arch/i386/prefix/select_pci.c19
2 files changed, 39 insertions, 0 deletions
diff --git a/src/arch/i386/prefix/select_isapnp.c b/src/arch/i386/prefix/select_isapnp.c
new file mode 100644
index 000000000..ac1af217c
--- /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 000000000..046c59f42
--- /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 );
+}