summaryrefslogtreecommitdiff
path: root/src/libmach/elf.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmach/elf.h')
-rw-r--r--src/libmach/elf.h182
1 files changed, 0 insertions, 182 deletions
diff --git a/src/libmach/elf.h b/src/libmach/elf.h
deleted file mode 100644
index 8dbc983f0..000000000
--- a/src/libmach/elf.h
+++ /dev/null
@@ -1,182 +0,0 @@
-// Inferno libmach/elf.h
-// http://code.google.com/p/inferno-os/source/browse/utils/libmach/elf.h
-//
-// Copyright © 1994-1999 Lucent Technologies Inc.
-// Power PC support Copyright © 1995-2004 C H Forsyth (forsyth@terzarima.net).
-// Portions Copyright © 1997-1999 Vita Nuova Limited.
-// Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com).
-// Revisions Copyright © 2000-2004 Lucent Technologies Inc. and others.
-// Portions Copyright © 2009 The Go Authors. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-/*
- * Definitions needed for accessing ELF headers.
- * 32-bit and 64-bit structs differ.
- */
-typedef struct {
- uchar ident[16]; /* ident bytes */
- ushort type; /* file type */
- ushort machine; /* target machine */
- int version; /* file version */
- uint32 elfentry; /* start address */
- uint32 phoff; /* phdr file offset */
- uint32 shoff; /* shdr file offset */
- int flags; /* file flags */
- ushort ehsize; /* sizeof ehdr */
- ushort phentsize; /* sizeof phdr */
- ushort phnum; /* number phdrs */
- ushort shentsize; /* sizeof shdr */
- ushort shnum; /* number shdrs */
- ushort shstrndx; /* shdr string index */
-} Ehdr32;
-
-typedef struct {
- uchar ident[16]; /* ident bytes */
- ushort type; /* file type */
- ushort machine; /* target machine */
- int version; /* file version */
- uvlong elfentry; /* start address */
- uvlong phoff; /* phdr file offset */
- uvlong shoff; /* shdr file offset */
- int flags; /* file flags */
- ushort ehsize; /* sizeof ehdr */
- ushort phentsize; /* sizeof phdr */
- ushort phnum; /* number phdrs */
- ushort shentsize; /* sizeof shdr */
- ushort shnum; /* number shdrs */
- ushort shstrndx; /* shdr string index */
-} Ehdr64;
-
-typedef struct {
- int type; /* entry type */
- uint32 offset; /* file offset */
- uint32 vaddr; /* virtual address */
- uint32 paddr; /* physical address */
- int filesz; /* file size */
- uint32 memsz; /* memory size */
- int flags; /* entry flags */
- int align; /* memory/file alignment */
-} Phdr32;
-
-typedef struct {
- int type; /* entry type */
- int flags; /* entry flags */
- uvlong offset; /* file offset */
- uvlong vaddr; /* virtual address */
- uvlong paddr; /* physical address */
- uvlong filesz; /* file size */
- uvlong memsz; /* memory size */
- uvlong align; /* memory/file alignment */
-} Phdr64;
-
-typedef struct {
- uint32 name; /* section name */
- uint32 type; /* SHT_... */
- uint32 flags; /* SHF_... */
- uint32 addr; /* virtual address */
- uint32 offset; /* file offset */
- uint32 size; /* section size */
- uint32 link; /* misc info */
- uint32 info; /* misc info */
- uint32 addralign; /* memory alignment */
- uint32 entsize; /* entry size if table */
-} Shdr32;
-
-typedef struct {
- uint32 name; /* section name */
- uint32 type; /* SHT_... */
- uvlong flags; /* SHF_... */
- uvlong addr; /* virtual address */
- uvlong offset; /* file offset */
- uvlong size; /* section size */
- uint32 link; /* misc info */
- uint32 info; /* misc info */
- uvlong addralign; /* memory alignment */
- uvlong entsize; /* entry size if table */
-} Shdr64;
-
-enum {
- /* Ehdr codes */
- MAG0 = 0, /* ident[] indexes */
- MAG1 = 1,
- MAG2 = 2,
- MAG3 = 3,
- CLASS = 4,
- DATA = 5,
- VERSION = 6,
-
- ELFCLASSNONE = 0, /* ident[CLASS] */
- ELFCLASS32 = 1,
- ELFCLASS64 = 2,
- ELFCLASSNUM = 3,
-
- ELFDATANONE = 0, /* ident[DATA] */
- ELFDATA2LSB = 1,
- ELFDATA2MSB = 2,
- ELFDATANUM = 3,
-
- NOETYPE = 0, /* type */
- REL = 1,
- EXEC = 2,
- DYN = 3,
- CORE = 4,
-
- NONE = 0, /* machine */
- M32 = 1, /* AT&T WE 32100 */
- SPARC = 2, /* Sun SPARC */
- I386 = 3, /* Intel 80386 */
- M68K = 4, /* Motorola 68000 */
- M88K = 5, /* Motorola 88000 */
- I486 = 6, /* Intel 80486 */
- I860 = 7, /* Intel i860 */
- MIPS = 8, /* Mips R2000 */
- S370 = 9, /* Amdhal */
- SPARC64 = 18, /* Sun SPARC v9 */
- POWER = 20, /* PowerPC */
- ARM = 40, /* ARM */
- AMD64 = 62, /* Amd64 */
-
- NO_VERSION = 0, /* version, ident[VERSION] */
- CURRENT = 1,
-
- /* Phdr Codes */
- NOPTYPE = 0, /* type */
- LOAD = 1,
- DYNAMIC = 2,
- INTERP = 3,
- NOTE = 4,
- SHLIB = 5,
- PHDR = 6,
-
- R = 0x4, /* flags */
- W = 0x2,
- X = 0x1,
-
- /* Shdr Codes */
- Progbits = 1, /* section types */
- Strtab = 3,
- Nobits = 8,
-
- Swrite = 1, /* section attributes */
- Salloc = 2,
- Sexec = 4,
-};
-
-#define ELF_MAG ((0x7f<<24) | ('E'<<16) | ('L'<<8) | 'F')