1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2006-10-09 Bernard the grub related definitions
- * (multiboot)
- */
- #ifndef __GRUB_H__
- #define __GRUB_H__
- /* the magic number for the multiboot header. */
- #define MULTIBOOT_HEADER_MAGIC 0x1BADB002
- /* the flags for the multiboot header. */
- #define MULTIBOOT_HEADER_FLAGS 0x00000003
- /* the magic number passed by a multiboot-compliant boot loader. */
- #define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002
- #ifndef __ASM__
- /* the multiboot header. */
- typedef struct multiboot_header
- {
- unsigned long magic;
- unsigned long flags;
- unsigned long checksum;
- unsigned long header_addr;
- unsigned long load_addr;
- unsigned long load_end_addr;
- unsigned long bss_end_addr;
- unsigned long entry_addr;
- } multiboot_header_t;
- /* the section header table for elf. */
- typedef struct elf_section_header_table
- {
- unsigned long num;
- unsigned long size;
- unsigned long addr;
- unsigned long shndx;
- } elf_section_header_table_t;
- /* the multiboot information. */
- typedef struct multiboot_info
- {
- unsigned long flags;
- unsigned long mem_lower;
- unsigned long mem_upper;
- unsigned long boot_device;
- unsigned long cmdline;
- unsigned long mods_count;
- unsigned long mods_addr;
- union
- {
- aout_symbol_table_t aout_sym;
- elf_section_header_table_t elf_sec;
- } u;
- unsigned long mmap_length;
- unsigned long mmap_addr;
- } multiboot_info_t;
- /* the module structure. */
- typedef struct module
- {
- unsigned long mod_start;
- unsigned long mod_end;
- unsigned long string;
- unsigned long reserved;
- } module_t;
- /* the memory map. be careful that the offset 0 is base_addr_low
- but no size. */
- typedef struct memory_map
- {
- unsigned long size;
- unsigned long base_addr_low;
- unsigned long base_addr_high;
- unsigned long length_low;
- unsigned long length_high;
- unsigned long type;
- } memory_map_t;
- #endif
- #endif
|