[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Technical Reference: Base Operating System and Extensions, Volume 1


elf32_getehdr, elf32_newehdr, elf64_getehdr, elf64_newehdr Subroutine

Purpose

Retrieve class-dependent object file header

Library

cc [flag...] file... -lelf [library]...
#include <libelf.h>

Syntax


Elf32_Ehdr *elf32_getehdr(Elf * elf);
Elf32_Ehdr *elf32_newehdr(Elf * elf);
Elf64_Ehdr *elf64_getehdr(Elf * elf);
Elf64_Ehdr *elf64_newehdr(Elf * elf);

Description

For a 32-bit class file, elf32_getehdr returns a pointer to an ELF header, if one is available for the ELF descriptor elf. If no header exists for the descriptor, elf32_newehdr allocates a clean one, but it otherwise behaves the same as elf32_getehdr. It does not allocate a new header if one exists already. If no header exists (for elf_getehdr), one cannot be created (for elf_newehdr), a system error occurs, the file is not a 32-bit class file, or elf is null, both functions return a null pointer.

The header includes the following members.

   	unsigned char	e_ident[EI_NIDENT];
   	Elf32_Half	e_type;
   	Elf32_Half	e_machine;
   	Elf32_Word	e_version;
   	Elf32_Addr	e_entry;
   	Elf32_Off	e_phoff;
   	Elf32_Off	e_shoff;
   	Elf32_Word	e_flags;
   	Elf32_Half	e_ehsize;
   	Elf32_Half	e_phentsize;
   	Elf32_Half	e_phnum;
   	Elf32_Half	e_shentsize;
   	Elf32_Half	e_shnum;
   	Elf32_Half	e_shstrndx;

elf32_newehdr automatically sets the ELF_F_DIRTY bit [see the elf_flagdata subroutine]. A program may use elf_getident to inspect the identification bytes from a file.

For a 64-bit class file, elf64_getehdr returns a pointer to an ELF header, if one is available for the ELF descriptor elf. If no header exists for the descriptor, elf64_newehdr allocates a clean one, but it otherwise behaves the same as elf64_getehdr. It does not allocate a new header if one exists already. If no header exists (for elf_getehdr), one cannot be created (for elf_newehdr), a system error occurs, the file is not a 64-bit class file, or elf is null, both functions return a null pointer.

The header includes the following members.

   	unsigned char	e_ident[EI_NIDENT];
   	Elf64_Half	e_type;
   	Elf64_Half	e_machine;
   	Elf64_Word	e_version;
   	Elf64_Addr	e_entry;
   	Elf64_Off	e_phoff;
   	Elf64_Off	e_shoff;
   	Elf64_Word	e_flags;
   	Elf64_Half	e_ehsize;
   	Elf64_Half	e_phentsize;
   	Elf64_Half	e_phnum;
   	Elf64_Half	e_shentsize;
   	Elf64_Half	e_shnum;
   	Elf64_Half	e_shstrndx;

elf64_newehdr automatically sets the ELF_F_DIRTY bit [see the elf_flagdata subroutine]. A program may use elf_getident to inspect the identification bytes from a file.

Related Information

The elf_begin (elf_begin Subroutine) subroutine, elf_flagdata (elf_flagdata, elf_flagehdr, elf_flagelf, elf_flagphdr, elf_flagscn, elf_flagshdr Subroutine) subroutine, elf_getident (elf_getident Subroutine) subroutine.

Introduction to ELF Subroutines.


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]