Annotation of qemu/roms/openbios/include/arch/common/elf_boot.h, revision 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.