Annotation of qemu/roms/openbios/include/arch/common/elf_boot.h, revision 1.1.1.1

1.1       root        1: #ifndef ELF_BOOT_H
                      2: #define ELF_BOOT_H
                      3: 
                      4: 
                      5: /* This defines the structure of a table of parameters useful for ELF
                      6:  * bootable images.  These parameters are all passed and generated
                      7:  * by the bootloader to the booted image.  For simplicity and
                      8:  * consistency the Elf Note format is reused.
                      9:  *
                     10:  * All of the information must be Position Independent Data.
                     11:  * That is it must be safe to relocate the whole ELF boot parameter
                     12:  * block without changing the meaning or correctnes of the data.
                     13:  * Additionally it must be safe to permute the order of the ELF notes
                     14:  * to any possible permutation without changing the meaning or correctness
                     15:  * of the data.
                     16:  *
                     17:  */
                     18: 
                     19: #define ELF_BHDR_MAGIC         0x0E1FB007
                     20: 
                     21: #ifndef __ASSEMBLY__
                     22: typedef uint16_t Elf_Half;
                     23: typedef uint32_t Elf_Word;
                     24: 
                     25: /*
                     26:  * Elf boot notes...
                     27:  */
                     28: 
                     29: typedef struct Elf_Bhdr
                     30: {
                     31:        Elf_Word b_signature; /* "0x0E1FB007" */
                     32:        Elf_Word b_size;
                     33:        Elf_Half b_checksum;
                     34:        Elf_Half b_records;
                     35: } Elf_Bhdr;
                     36: 
                     37: /*
                     38:  * ELF Notes.
                     39:  */
                     40: 
                     41: typedef struct Elf_Nhdr
                     42: {
                     43:        Elf_Word n_namesz;              /* Length of the note's name.  */
                     44:        Elf_Word n_descsz;              /* Length of the note's descriptor.  */
                     45:        Elf_Word n_type;                /* Type of the note.  */
                     46: } Elf_Nhdr;
                     47: 
                     48: #endif /* __ASSEMBLY__ */
                     49: 
                     50: /* Standardized Elf image notes for booting... The name for all of these is ELFBoot */
                     51: #define ELF_NOTE_BOOT          "ELFBoot"
                     52: 
                     53: #define EIN_PROGRAM_NAME       0x00000001
                     54: /* The program in this ELF file */
                     55: #define EIN_PROGRAM_VERSION    0x00000002
                     56: /* The version of the program in this ELF file */
                     57: #define EIN_PROGRAM_CHECKSUM   0x00000003
                     58: /* ip style checksum of the memory image. */
                     59: 
                     60: 
                     61: /* Linux image notes for booting... The name for all of these is Linux */
                     62: 
                     63: #define LIN_COMMAND_LINE       0x00000001
                     64: /* The command line to pass to the loaded kernel. */
                     65: #define LIN_ROOT_DEV           0x00000002
                     66: /* The root dev to pass to the loaded kernel. */
                     67: #define LIN_RAMDISK_FLAGS      0x00000003
                     68: /* Various old ramdisk flags */
                     69: #define LIN_INITRD_START       0x00000004
                     70: /* Start of the ramdisk in bytes */
                     71: #define LIN_INITRD_SIZE                0x00000005
                     72: /* Size of the ramdisk in bytes */
                     73: 
                     74: /* Notes that are passed to a loaded image */
                     75: /* For the standard elf boot notes n_namesz must be zero */
                     76: #define EBN_FIRMWARE_TYPE      0x00000001
                     77: /* ASCIZ name of the platform firmware. */
                     78: #define EBN_BOOTLOADER_NAME    0x00000002
                     79: /* This specifies just the ASCIZ name of the bootloader */
                     80: #define EBN_BOOTLOADER_VERSION 0x00000003
                     81: /* This specifies the version of the bootloader as an ASCIZ string */
                     82: #define EBN_COMMAND_LINE       0x00000004
                     83: /* This specifies a command line that can be set by user interaction,
                     84:  * and is provided as a free form ASCIZ string to the loaded image.
                     85:  */
                     86: #define EBN_NOP                        0x00000005
                     87: /* A note nop note has no meaning, useful for inserting explicit padding */
                     88: #define EBN_LOADED_IMAGE       0x00000006
                     89: /* An ASCIZ string naming the loaded image */
                     90: 
                     91: 
                     92: /* Etherboot specific notes */
                     93: #define EB_PARAM_NOTE          "Etherboot"
                     94: #define EB_IA64_SYSTAB         0x00000001
                     95: #define EB_IA64_MEMMAP         0x00000002
                     96: #define EB_IA64_FPSWA          0x00000003
                     97: #define EB_IA64_CONINFO                0x00000004
                     98: #define EB_BOOTP_DATA          0x00000005
                     99: #define EB_HEADER              0x00000006
                    100: #define EB_IA64_IMAGE_HANDLE   0x00000007
                    101: #define EB_I386_MEMMAP         0x00000008
                    102: 
                    103: extern const struct elf_image_note elf_image_notes;
                    104: 
                    105: #endif /* ELF_BOOT_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.