xv6-cs450/elf.h

44 lines
673 B
C
Raw Normal View History

2006-08-29 21:06:37 +02:00
//
// format of an ELF executable file
//
2006-06-12 17:22:12 +02:00
#define ELF_MAGIC 0x464C457FU /* "\x7FELF" in little endian */
struct elfhdr {
2006-07-20 11:07:53 +02:00
uint magic; // must equal ELF_MAGIC
uchar elf[12];
ushort type;
ushort machine;
uint version;
uint entry;
uint phoff;
uint shoff;
uint flags;
ushort ehsize;
ushort phentsize;
ushort phnum;
ushort shentsize;
ushort shnum;
ushort shstrndx;
2006-06-12 17:22:12 +02:00
};
struct proghdr {
2006-07-20 11:07:53 +02:00
uint type;
uint offset;
uint va;
uint pa;
uint filesz;
uint memsz;
uint flags;
uint align;
2006-06-12 17:22:12 +02:00
};
// Values for Proghdr type
2006-06-12 17:22:12 +02:00
#define ELF_PROG_LOAD 1
// Flag bits for Proghdr flags
2006-06-12 17:22:12 +02:00
#define ELF_PROG_FLAG_EXEC 1
#define ELF_PROG_FLAG_WRITE 2
#define ELF_PROG_FLAG_READ 4