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

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];
1.1.1.3 ! root       25:        abi_ulong rev;          /* version (as above) */
        !            26:        abi_ulong entry;        /* Offset of first executable instruction
        !            27:                                    with text segment from beginning of file */
        !            28:        abi_ulong data_start;   /* Offset of data segment from beginning of
        !            29:                                    file */
        !            30:        abi_ulong data_end;     /* Offset of end of data segment
        !            31:                                    from beginning of file */
        !            32:        abi_ulong bss_end;      /* Offset of end of bss segment from beginning
        !            33:                                    of file */
1.1       root       34: 
                     35:        /* (It is assumed that data_end through bss_end forms the bss segment.) */
                     36: 
1.1.1.3 ! root       37:        abi_ulong stack_size;   /* Size of stack, in bytes */
        !            38:        abi_ulong reloc_start;  /* Offset of relocation records from
        !            39:                                    beginning of file */
        !            40:        abi_ulong reloc_count;  /* Number of relocation records */
        !            41:        abi_ulong flags;
        !            42:        abi_ulong build_date;   /* When the program/library was built */
        !            43:        abi_ulong filler[5];    /* Reservered, set to zero */
1.1       root       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.