mirror of https://github.com/tailix/mrubyvisor.git
Specify Multiboot 2 header in C
This commit is contained in:
parent
bbd1eeb357
commit
b2b1b3910a
|
@ -20,7 +20,7 @@ CPPFLAGS = \
|
|||
$(MRUBY_FLAGS) \
|
||||
-DKERNAUX_DEBUG \
|
||||
|
||||
OBJS = start.S.o main.c.o libc.c.o logger.c.o panic.c.o
|
||||
OBJS = multiboot2.c.o start.S.o main.c.o libc.c.o logger.c.o panic.c.o
|
||||
|
||||
all: $(MRUBYVISOR)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ SECTIONS
|
|||
|
||||
.text BLOCK(4K) : ALIGN(4K)
|
||||
{
|
||||
*(.multiboot)
|
||||
*(.multiboot2)
|
||||
*(.text)
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
#include <kernaux/multiboot2.h>
|
||||
|
||||
#include <kernaux/macro/packing_start.run>
|
||||
|
||||
__attribute__((
|
||||
section(".multiboot2"),
|
||||
used,
|
||||
aligned(KERNAUX_MULTIBOOT2_HEADER_ALIGN)
|
||||
))
|
||||
const struct {
|
||||
struct KernAux_Multiboot2_Header header;
|
||||
struct KernAux_Multiboot2_HTag_None tag_none;
|
||||
}
|
||||
KERNAUX_PACKED
|
||||
multiboot2 = {
|
||||
.header = {
|
||||
.magic = KERNAUX_MULTIBOOT2_HEADER_MAGIC,
|
||||
.arch = KERNAUX_MULTIBOOT2_HEADER_ARCH_I386,
|
||||
.total_size = sizeof(multiboot2),
|
||||
.checksum = KERNAUX_MULTIBOOT2_HEADER_CHECKSUM(
|
||||
KERNAUX_MULTIBOOT2_HEADER_ARCH_I386,
|
||||
sizeof(multiboot2)
|
||||
),
|
||||
},
|
||||
.tag_none = {
|
||||
.base = {
|
||||
.type = KERNAUX_MULTIBOOT2_HTAG_NONE,
|
||||
.flags = 0,
|
||||
.size = sizeof(multiboot2.tag_none),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
#include <kernaux/macro/packing_end.run>
|
18
src/start.S
18
src/start.S
|
@ -1,21 +1,3 @@
|
|||
.set MULTIBOOT_MAGIC, 0xE85250D6
|
||||
.set MULTIBOOT_ARCH, 0
|
||||
.set MULTIBOOT_LENGTH, 16 + 8
|
||||
.set MULTIBOOT_CHECKSUM, -(MULTIBOOT_MAGIC + MULTIBOOT_ARCH + MULTIBOOT_LENGTH)
|
||||
|
||||
|
||||
|
||||
.section .multiboot
|
||||
.align 4
|
||||
.long MULTIBOOT_MAGIC
|
||||
.long MULTIBOOT_ARCH
|
||||
.long MULTIBOOT_LENGTH
|
||||
.long MULTIBOOT_CHECKSUM
|
||||
.long 0
|
||||
.long 8
|
||||
|
||||
|
||||
|
||||
.section .bss
|
||||
|
||||
.global _kernel_stack_start
|
||||
|
|
Loading…
Reference in New Issue