123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # Multiboot2 Header definition.
- # The assembly code uses the GNU Assembly (GAS) flavor with Intel noprefix
- # syntax.
- # Symbol from main.rs
- .EXTERN start
- .code32
- .align 8
- .section .multiboot2_header
- mb2_header_start:
- .long 0xe85250d6 # magic number
- .long 0 # architecture 0 (protected mode i386)
- .long mb2_header_end - mb2_header_start # header length
- # checksum
- .long 0x100000000 - (0xe85250d6 + 0 + (mb2_header_end - mb2_header_start))
- # OPTIONAL MULTIBOOT2 TAGS (additional to required END TAG)
- # ------------------------------------------------------------------------------------
- .align 8
- .Lmb2_header_tag_information_request_start:
- .word 1 # type (16bit)
- .word 0 # flags (16bit)
- .long .Lmb2_header_tag_information_request_end - .Lmb2_header_tag_information_request_start # size (32bit)
- .long 1
- .long 2
- .long 3
- .long 4
- .long 5
- .long 6
- .long 7
- .long 8
- .long 9
- .long 10
- .long 11
- .long 12
- # .long 13 GRUB reports: not supported
- .long 14
- .long 15
- .long 16
- .long 17
- .long 18
- .long 19
- .long 20
- .long 21
- .long
- .Lmb2_header_tag_information_request_end:
- .align 8
- .Lmb2_header_tag_module_alignment_start:
- .word 7 # type (16bit)
- .word 0 # flags (16bit)
- .long .Lmb2_header_tag_module_alignment_end - .Lmb2_header_tag_module_alignment_start # size (32bit)
- .long start
- .Lmb2_header_tag_module_alignment_end:
- # ------------------------------------------------------------------------------------
- # REQUIRED END TAG
- .align 8
- .Lmb2_header_tag_end_start:
- .word 0 # type (16bit)
- .word 0 # flags (16bit)
- .long .Lmb2_header_tag_end_end - .Lmb2_header_tag_end_start # size (32bit)
- .Lmb2_header_tag_end_end:
- mb2_header_end:
|