[SeaBIOS] [PATCH v2 1/6] boot: change definition of IPL_TYPE_* constants

Paolo Bonzini pbonzini at redhat.com
Wed Oct 17 18:23:43 CEST 2012


We will soon add a PCI class in the low 4 bits.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
---
 src/boot.c | 17 +++++++++--------
 1 file modificato, 9 inserzioni(+), 8 rimozioni(-)

diff --git a/src/boot.c b/src/boot.c
index 3ca7960..b9bcb57 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -285,12 +285,13 @@ struct bootentry_s {
 };
 static struct bootentry_s *BootList;
 
-#define IPL_TYPE_FLOPPY      0x01
-#define IPL_TYPE_HARDDISK    0x02
-#define IPL_TYPE_CDROM       0x03
-#define IPL_TYPE_CBFS        0x20
-#define IPL_TYPE_BEV         0x80
-#define IPL_TYPE_BCV         0x81
+#define IPL_TYPE_FLOPPY      0x10
+#define IPL_TYPE_HARDDISK    0x20
+#define IPL_TYPE_CDROM       0x30
+#define IPL_TYPE_CBFS        0x40
+#define IPL_TYPE_BEV         0x50
+#define IPL_TYPE_BCV         0x60
+#define IPL_TYPE_MASK        0xF0
 
 static void
 bootentry_add(int type, int prio, u32 data, const char *desc)
@@ -491,7 +492,7 @@ boot_prep(void)
     // Map drives and populate BEV list
     struct bootentry_s *pos = BootList;
     while (pos) {
-        switch (pos->type) {
+        switch (pos->type & IPL_TYPE_MASK) {
         case IPL_TYPE_BCV:
             call_bcv(pos->vector.seg, pos->vector.offset);
             add_bev(IPL_TYPE_HARDDISK, 0);
@@ -654,7 +655,7 @@ do_boot(int seq_nr)
 
     // Boot the given BEV type.
     struct bev_s *ie = &BEV[seq_nr];
-    switch (ie->type) {
+    switch (ie->type & IPL_TYPE_MASK) {
     case IPL_TYPE_FLOPPY:
         printf("Booting from Floppy...\n");
         boot_disk(0x00, CheckFloppySig);
-- 
1.7.12.1





More information about the SeaBIOS mailing list