OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [posix/] [mm0/] [include/] [lib/] [elf/] [elf.h] - Rev 2

Compare with Previous | Blame | View Log

/*
 * Definitions for Executable Linking Format
 * Based on Portable Formats Specification v1.1
 *
 * Copyright (C) 2008 Bahadir Balban
 */
 
#ifndef __ELF_H__
#define __ELF_H__
 
#include <l4/types.h>
 
/* ELF identification indices */
#define EI_MAG0		0
#define EI_MAG1		1
#define EI_MAG2		2
#define EI_MAG3		3
#define EI_CLASS	4
#define EI_DATA		5
#define EI_VERSION	6
#define EI_PAD		7
 
/* Size of ELF identification field */
#define EI_NIDENT	16
 
/* Values for ELF identification fields */
#define ELFMAG0		0x7f
#define ELFMAG1		'E'
#define ELFMAG2		'L'
#define ELFMAG3		'F'
 
/* Values for the ELF Class field */
#define ELFCLASSNONE	0
#define ELFCLASS32	1
#define ELFCLASS64	2
 
/* Values for the ELF Data field */
#define ELFDATANONE	0
#define ELFDATA2LSB	1
#define ELFDATA2MSB	2
 
 
struct elf_header {
	u8 	e_ident[EI_NIDENT];	/* ELF identification */
	u16	e_type;			/* Object file type */
	u16	e_machine;		/* Machine architecture */
	u32	e_version;		/* Object file version */
	u32	e_entry;		/* Virtual entry address */
	u32	e_phoff;		/* Program header offset */
	u32	e_shoff;		/* Section header offset */
	u32	e_flags;		/* Processor specific flags */
	u16	e_ehsize;		/* ELF header size */
	u16	e_phentsize;		/* Program header entry size */
	u16	e_phnum;		/* Number of program headers */
	u16	e_shentsize;		/* Section header entry size */
	u16	e_shnum;		/* Number of section headers */
	u16	e_shstrndx;		/* Shtable index for strings */
} __attribute__((__packed__));
 
 
int elf_parse_executable(struct tcb *task, struct vm_file *file,
			 struct exec_file_desc *efd);
 
#endif /* __ELF_H__ */
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.