xv6-cs450/elf.h

43 lines
755 B
C
Raw Normal View History

2006-09-07 16:12:30 +02:00
// Format of an ELF executable file
2006-08-29 21:06:37 +02:00
2006-09-06 19:53:15 +02:00
#define ELF_MAGIC 0x464C457FU // "\x7FELF" in little endian
2006-06-12 17:22:12 +02:00
2006-09-07 16:12:30 +02:00
// File header
struct elfhdr {
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
};
2006-09-07 16:12:30 +02:00
// Program section header
struct proghdr {
uint type;
uint off;
uint vaddr;
uint paddr;
uint filesz;
uint memsz;
uint flags;
uint align;
2006-06-12 17:22:12 +02:00
};
// Values for Proghdr type
2006-09-06 19:53:15 +02:00
#define ELF_PROG_LOAD 1
2006-06-12 17:22:12 +02:00
// Flag bits for Proghdr flags
2006-09-06 19:53:15 +02:00
#define ELF_PROG_FLAG_EXEC 1
#define ELF_PROG_FLAG_WRITE 2
#define ELF_PROG_FLAG_READ 4