123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*
- * File : grub.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Develop Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://openlab.rt-thread.com/license/LICENSE
- *
- * 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
|