:: commit 132ff2fdbe0f06262f8c233c56fa8b0a1c177e52

mintsuki <mintsuki@protonmail.com> — 2020-09-18 22:15

parents: 6591a9c32f

Fix bug where identifier is not set for SMP tag

diff --git a/limine.bin b/limine.bin
index 8ae96e1c..bbd0e83a 100644
Binary files a/limine.bin and b/limine.bin differ
diff --git a/stage2/protos/stivale2.c b/stage2/protos/stivale2.c
index 329dd8b7..791dacb7 100644
--- a/stage2/protos/stivale2.c
+++ b/stage2/protos/stivale2.c
@@ -326,6 +326,7 @@ void stivale2_load(char *cmdline, int boot_drive) {
     struct stivale2_header_tag_smp *smp_hdr_tag = get_tag(&stivale2_hdr, STIVALE2_HEADER_TAG_SMP_ID);
     if (smp_hdr_tag != NULL) {
         struct stivale2_struct_tag_smp *tag = balloc(sizeof(struct stivale2_struct_tag_smp));
+        tag->tag.identifier = STIVALE2_STRUCT_TAG_SMP_ID;
 
         init_smp((size_t*)&tag->cpu_count, bits == 64, level5pg && level5pg_requested,
                  pagemap, smp_hdr_tag->flags & 1);
@@ -334,6 +335,16 @@ void stivale2_load(char *cmdline, int boot_drive) {
     }
     }
 
+    print("Generated tags:\n");
+    struct stivale2_tag *taglist = (void*)(size_t)stivale2_struct.tags;
+    for (size_t i = 0; ; i++) {
+        print("Tag #%u  ID: %X\n", i, taglist->identifier);
+        if (taglist->next)
+            taglist = (void*)(size_t)taglist->next;
+        else
+            break;
+    }
+
     stivale_spinup(bits, level5pg && level5pg_requested, pagemap,
                    entry_point, &stivale2_struct, stivale2_hdr.stack);
 }
tab: 248 wrap: offon