• Иллюстрированный самоучитель по теории операционных систем

    Сборка программ

    <<define ELFOSABI_HPUX 1 /* HP-UX */
    tdefine ELFOSABI_ARM 97 /* ARM */
    #define ELFOSABI_STANDALONE 255
    /* Самостоятельное (встраиваемое) приложение * /
    #define EI_ABIVERSION 8 /* версия ABI */
    #define EI_PAD 9 /* Индекс байтов выравнивания */
    /* Допустимые значения для e_type (тип объектного файла). */
    #define ETJTONE 0 /* Не указан тип */
    #define ET_REL I /* Перемещаемый файл */
    #define ET_EXEC 2 /* Исполнимый файл */
    #define ET_DYN 3 /* Разделяемьй объектный файл */
    Define ET_CORE 4 /* Образ задачи */
    'define ET_NUM 5 /* Количество определенных типов */
    e ET_LOPROC OxffOO /* Специфичный для процессора */
    ttdefine ET_HIPROC Oxffff /* Специфичный для процессора */
    /* Допустимые значения для e_machine (архитектура). */
    ttdefine EM_NONE 0 /* Не указана машина */
    ttdefine ЕМ_М32 1 /* AT&T WE 32100 */
    ttdefine EM_SPARC 2 /* SUN SPARC */
    ttdefine EM_386 3 /* Intel 80386 */
    ttdefine EM_68K 4 /* Motorola m68k family */
    ttdefine EM_88K 5 /* Motorola m88k family */
    ttdefine EM__486 6 /* Intel 80486 */
    ttdefine EM_860 7 /* Intel 80860 */
    ttdefine EM_MIPS 8 /* MIPS R3000 big-endian */
    ttdefine EM_S370 9 /* Amdahl */
    ttdefine EM_MIPS_RS4_BE 10 /* MIPS R4000 big-endian */
    ttdefine EM RS6000 11 /* RS6000 */
    #define EM_PARISC 15 ttdefine EM_nCUBE 16 Idefine EM VPP500 17
    /* HPPA */
    /* nCUBE */
    /* Fujitsu VPP500 */
    ttdefine EM_SPARC32PLUS 18 /* Sun's "vSplus"
    */ ttdefine EM_960 19 /* Intel 80960 */ ttdefine EM PPC 20 /*. PowerPC */
    ttdefine ttdefine ttdefine ttdefine ttdefine ttdefine ttdefine
    ttdefine ttdefine ttdefine ttdefine ttdefine ttdefine ttdefine ttdefine
    EM_V800 36 /* NEC V800 series */ EM_FR20 37 /* Fujitsu FR20
    */ EM_RH32 38 /* TRW RH32 */ EM_MMA 39 /* Fujitsu MMA
    */ EM^ARM 40 /* ARM */ EM_FAKE_ALPHA 41 /* Digital Alpha J
    EM_SH 42 EM_SPARCV9 43 EMJTRICORE 44 EM_ARC
    45 EM_H8_300 46 EM_H8_300H 47 EM_H8S 48 EM_H8_500 49 EM IA 64 50
    /* Hitachi SH */ /* SPARC v9 64-bit */ /* Siemens Tricore */
    /* Argonaut RISC Core */ /* Hitachi H8/300 */ /* Hitachi H8/300H */
    /* Hitachi H8S */ /* Hitachi H8/500 */ /* Intel Merced */
    <<define EM_MIPS_X 51 /* Stanford MIPS-X */
    <<define EM^COLDFIRE 52 /* Motorola Coldfire */
    <<define EM_68HC12 53 /* Motorola M68HC12 */ ((define EM_NUM 54
    /* Если необходимо вьщелить неофициальное значение для ЕМ_*,
    пожалуйста, выделяйте большие случайные числа (0x8523, Oxa7f2, etc.),
    чтобы уменьшить вероятность пересечения с официальными
    или не-GNU неофициальными значениями. */
    ((define EM_ALPHA 0x9026
    /* Допустимые значения для e_version (версия). */
    Idefine EV_NONE 0 /* Недопустимая версия ELF
    */ #define EV_CURRENT I /* Текущая версия */ (tdefine EV_NUM 2
    /* Элемент таблицы символов. */
    typedef struct f
    Elf32_Word st_name; /* Имя символа (индекс в таблице строк) */
    Elf32_Addr st_value; /* Значение символа */
    Elf32_Word st_size; /* Размер символа */
    unsigned char st_info; /* Тип и привязка символа */
    unsigned char st_other; /* Значение не определено, 0 */
    Elf32_Section st_shndx; /* Индекс секции */) Elf32_Sym;
    '* Секция syminfo, если присутствует,
    содержит дополнительную информацию о каждом динамическом символе. */
    typedef struct I
    Elf32_Half si_boundto;
    /* Прямая привязка, символ, к которому привязан
    */ Elf32_Half si_flags;
    /* Флаги символа */
    > Elf32 Syminfo;
    /* Допустимые значения для si boundto. */
    #define SYMINFO_BT_SELF Oxffff
    /* tdefine SYMINFO_BT_PARENT Oxfffe
    /* ttdefine SYMINFO_BT_LOWRESERVE OxffOO /*
    /* Возможные битовые маски для si_flags #define SYMINFO_FLG_DIRECT 0x0001 /*
    tfdefine SYMINFO_FLG_PASSTHRU 0x0002 /* тора */
    tfdefine SYMINFO_FLG_COPY 0x0004 /* tdefine SYMINFO_FLG_LAZYLOAD 0x0008 /*
    /* Значения версии Syminfo.
    */ #define SYMINFO_NONE 0 ttdefine SYMINFO_CURRENT 1 #define SYMINFO NUM 2
    Символ привязан к себе */ Символ привязан к родителю
    */ Начало зарезервированных записей */
    Прямо привязываемый символ
    */ Промежуточный символ для трансляции
    Символ предназначен для перемещения копированием
    */ Символ привязан к объекту с отложенной загрузкой */
    /* Как извлекать информацию из и включать ее в поле st_info. */
    #define ELF32_ST_BIND(val) (((unsigned char) (val)) " 4) tfdefine ELF32_ST_TYPE(val) ((val) & Oxf)
    ttdefine ELF32_ST_INFO(bind, type) (((bind) " 4) + ((type) & Oxf))
    /* Допустимые значения для подполя STJ3IND поля st_info (привязка символов). */
    
    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.