Annotation of qemu/linux-user/flat.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (C) 2002-2003  David McCullough <[email protected]>
        !             3:  * Copyright (C) 1998       Kenneth Albanowski <[email protected]>
        !             4:  *                          The Silver Hammer Group, Ltd.
        !             5:  *
        !             6:  * This file provides the definitions and structures needed to
        !             7:  * support uClinux flat-format executables.
        !             8:  */
        !             9: 
        !            10: #define        FLAT_VERSION                    0x00000004L
        !            11: 
        !            12: #ifdef CONFIG_BINFMT_SHARED_FLAT
        !            13: #define        MAX_SHARED_LIBS                 (4)
        !            14: #else
        !            15: #define        MAX_SHARED_LIBS                 (1)
        !            16: #endif
        !            17: 
        !            18: /*
        !            19:  * To make everything easier to port and manage cross platform
        !            20:  * development,  all fields are in network byte order.
        !            21:  */
        !            22: 
        !            23: struct flat_hdr {
        !            24:        char magic[4];
        !            25:        unsigned long rev;          /* version (as above) */
        !            26:        unsigned long entry;        /* Offset of first executable instruction
        !            27:                                       with text segment from beginning of file */
        !            28:        unsigned long data_start;   /* Offset of data segment from beginning of
        !            29:                                       file */
        !            30:        unsigned long data_end;     /* Offset of end of data segment
        !            31:                                       from beginning of file */
        !            32:        unsigned long bss_end;      /* Offset of end of bss segment from beginning
        !            33:                                       of file */
        !            34: 
        !            35:        /* (It is assumed that data_end through bss_end forms the bss segment.) */
        !            36: 
        !            37:        unsigned long stack_size;   /* Size of stack, in bytes */
        !            38:        unsigned long reloc_start;  /* Offset of relocation records from
        !            39:                                       beginning of file */
        !            40:        unsigned long reloc_count;  /* Number of relocation records */
        !            41:        unsigned long flags;       
        !            42:        unsigned long build_date;   /* When the program/library was built */
        !            43:        unsigned long filler[5];    /* Reservered, set to zero */
        !            44: };
        !            45: 
        !            46: #define FLAT_FLAG_RAM    0x0001 /* load program entirely into RAM */
        !            47: #define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */
        !            48: #define FLAT_FLAG_GZIP   0x0004 /* all but the header is compressed */
        !            49: #define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */
        !            50: #define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */
        !            51: 
        !            52: 
        !            53: /*
        !            54:  * While it would be nice to keep this header clean,  users of older
        !            55:  * tools still need this support in the kernel.  So this section is
        !            56:  * purely for compatibility with old tool chains.
        !            57:  *
        !            58:  * DO NOT make changes or enhancements to the old format please,  just work
        !            59:  *        with the format above,  except to fix bugs with old format support.
        !            60:  */
        !            61: 
        !            62: #define        OLD_FLAT_VERSION                        0x00000002L
        !            63: #define OLD_FLAT_RELOC_TYPE_TEXT       0
        !            64: #define OLD_FLAT_RELOC_TYPE_DATA       1
        !            65: #define OLD_FLAT_RELOC_TYPE_BSS                2
        !            66: 
        !            67: #      define OLD_FLAT_FLAG_RAM    0x1 /* load program entirely into RAM */

unix.superglobalmegacorp.com

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