aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/file
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/file')
-rw-r--r--usr.bin/file/Magdir/alpha21
-rw-r--r--usr.bin/file/Magdir/amanda7
-rw-r--r--usr.bin/file/Magdir/amigaos10
-rw-r--r--usr.bin/file/Magdir/asterix17
-rw-r--r--usr.bin/file/Magdir/digital41
-rw-r--r--usr.bin/file/Magdir/island9
-rw-r--r--usr.bin/file/Magdir/mach38
-rw-r--r--usr.bin/file/Magdir/osf110
-rw-r--r--usr.bin/file/Magdir/sniffer63
-rw-r--r--usr.bin/file/Magdir/xenix72
-rw-r--r--usr.bin/file/internat.c72
-rw-r--r--usr.bin/file/readelf.c318
-rw-r--r--usr.bin/file/readelf.h167
13 files changed, 0 insertions, 845 deletions
diff --git a/usr.bin/file/Magdir/alpha b/usr.bin/file/Magdir/alpha
deleted file mode 100644
index 42e19176c98a..000000000000
--- a/usr.bin/file/Magdir/alpha
+++ /dev/null
@@ -1,21 +0,0 @@
-#------------------------------------------------------------------------------
-# alpha architecture description
-#
-
-0 leshort 0603 COFF format alpha
->22 leshort&030000 !020000 executable
->24 leshort 0410 pure
->24 leshort 0413 paged
->22 leshort&020000 !0 dynamically linked
->16 lelong !0 not stripped
->16 lelong 0 stripped
->22 leshort&030000 020000 shared library
->24 leshort 0407 object
->27 byte x - version %d
->26 byte x .%d
->28 byte x -%d
-
-# Basic recognition of OSF/1 core dumps - Mike Bremford <mike@opac.bl.uk>
-#
-0 string Core\001 COFF format core dump (OSF/1)
->24 string >\0 generated by '%s'
diff --git a/usr.bin/file/Magdir/amanda b/usr.bin/file/Magdir/amanda
deleted file mode 100644
index 57c4359fc169..000000000000
--- a/usr.bin/file/Magdir/amanda
+++ /dev/null
@@ -1,7 +0,0 @@
-#------------------------------------------------------------------------------
-# amanda: file(1) magic for amanda file format
-#
-0 string AMANDA:\ TAPESTART\ DATE AMANDA dump header file,
->23 string X
->>25 string >\ Unused %s
->23 string >\ DATE %s
diff --git a/usr.bin/file/Magdir/amigaos b/usr.bin/file/Magdir/amigaos
deleted file mode 100644
index 6073936e17bd..000000000000
--- a/usr.bin/file/Magdir/amigaos
+++ /dev/null
@@ -1,10 +0,0 @@
-#------------------------------------------------------------------------------
-# amigaos: file(1) magic for AmigaOS binary formats:
-
-#
-# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
-# Some formats are still missing: AmigaOS special IFF's, e.g.: FORM....CTLG
-# (the others should be seperate, anyway)
-#
-0 belong 0x000003f3 AmigaOS loadseg()ble executable/binary
-0 belong 0x000003e7 AmigaOS object/library data
diff --git a/usr.bin/file/Magdir/asterix b/usr.bin/file/Magdir/asterix
deleted file mode 100644
index d89504a2407f..000000000000
--- a/usr.bin/file/Magdir/asterix
+++ /dev/null
@@ -1,17 +0,0 @@
-
-#------------------------------------------------------------------------------
-# asterix: file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
-# strings as "long" - we assume they're just strings:
-# From: guy@netapp.com (Guy Harris)
-#
-0 string *STA Aster*x
->7 string WORD Words Document
->7 string GRAP Graphic
->7 string SPRE Spreadsheet
->7 string MACR Macro
-0 string 2278 Aster*x Version 2
->29 byte 0x36 Words Document
->29 byte 0x35 Graphic
->29 byte 0x32 Spreadsheet
->29 byte 0x38 Macro
-
diff --git a/usr.bin/file/Magdir/digital b/usr.bin/file/Magdir/digital
deleted file mode 100644
index f4ebbff985bd..000000000000
--- a/usr.bin/file/Magdir/digital
+++ /dev/null
@@ -1,41 +0,0 @@
-# Digital UNIX - Info
-#
-0 string ^!<arch>\n_______64E Alpha archive
->22 string X -- out of date
-#
-# Alpha COFF Based Executables
-# The stripped stuff really needs to be an 8 byte (64 bit) compare,
-# but this works
-0 leshort 0x183 COFF format alpha
->22 leshort&020000 &010000 sharable library,
->22 leshort&020000 ^010000 dynamically linked,
->24 leshort 0410 pure
->24 leshort 0413 demand paged
->8 lelong >0 executable or object module, not stripped
->8 lelong 0
->>12 lelong 0 executable or object module, stripped
->>12 lelong >0 executable or object module, not stripped
->27 byte >0 - version %d.
->26 byte >0 %d-
->28 leshort >0 %d
-#
-# The next is incomplete, we could tell more about this format,
-# but its not worth it.
-0 leshort 0x188 Alpha compressed COFF
-0 leshort 0x18f Alpha u-code object
-#
-#
-# Some other interesting Digital formats,
-0 string \377\377\177 ddis/ddif
-0 string \377\377\174 ddis/dots archive
-0 string \377\377\176 ddis/dtif table data
-0 string \033c\033 LN03 output
-0 long 04553207 X image
-#
-0 string !<PDF>!\n profiling data file
-#
-# Locale data tables (MIPS and Alpha).
-#
-0 short 0x0501 locale data table
->6 short 0x24 for MIPS
->6 short 0x40 for Alpha
diff --git a/usr.bin/file/Magdir/island b/usr.bin/file/Magdir/island
deleted file mode 100644
index 9903cddf9217..000000000000
--- a/usr.bin/file/Magdir/island
+++ /dev/null
@@ -1,9 +0,0 @@
-
-#------------------------------------------------------------------------------
-# island: file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
-# "/etc/magic":
-# From: guy@netapp.com (Guy Harris)
-#
-4 string pgscriptver IslandWrite document
-13 string DrawFile IslandDraw document
-
diff --git a/usr.bin/file/Magdir/mach b/usr.bin/file/Magdir/mach
deleted file mode 100644
index 308325ee4e4e..000000000000
--- a/usr.bin/file/Magdir/mach
+++ /dev/null
@@ -1,38 +0,0 @@
-#------------------------------------------------------------------------------
-# mach file description
-#
-0 belong 0xcafebabe mach-o fat file
->4 belong 1 with 1 architecture
->4 belong >1
->>4 belong x with %ld architectures
-#
-0 belong 0xfeedface mach-o
->12 belong 1 object
->12 belong 2 executable
->12 belong 3 shared library
->12 belong 4 core
->12 belong 5 preload executable
->12 belong >5
->>12 belong x filetype=%ld
->4 belong <0
->>4 belong x architecture=%ld
->4 belong 1 vax
->4 belong 2 romp
->4 belong 3 architecture=3
->4 belong 4 ns32032
->4 belong 5 ns32332
->4 belong 6 for m68k architecture
->4 belong 7 i386
->4 belong 8 mips
->4 belong 9 ns32532
->4 belong 10 architecture=10
->4 belong 11 hp pa-risc
->4 belong 12 acorn
->4 belong 13 m88k
->4 belong 14 sparc
->4 belong 15 i860-big
->4 belong 16 i860
->4 belong 17 rs6000
->4 belong 18 powerPC
->4 belong >18
->>4 belong x architecture=%ld
diff --git a/usr.bin/file/Magdir/osf1 b/usr.bin/file/Magdir/osf1
deleted file mode 100644
index d2868c3dd7d4..000000000000
--- a/usr.bin/file/Magdir/osf1
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# Mach magic number info
-#
-0 long 0xefbe OSF/Rose object
-# I386 magic number info
-#
-0 short 0565 i386 COFF object
-#
-0 string Core Alpha Digital UNIX core file
->24 string >\0 \b, generated from '%s'
diff --git a/usr.bin/file/Magdir/sniffer b/usr.bin/file/Magdir/sniffer
deleted file mode 100644
index 861ec8c85dd3..000000000000
--- a/usr.bin/file/Magdir/sniffer
+++ /dev/null
@@ -1,63 +0,0 @@
-
-#------------------------------------------------------------------------------
-# sniffer: file(1) magic for packet captured files
-#
-# From: guy@netapp.com (Guy Harris)
-#
-# Microsoft NetMon (packet capture/display program) capture files.
-#
-0 string RTSS NetMon capture file
->4 byte x - version %d
->5 byte x \b.%d
-#
-# Network General Sniffer capture files (the Sniffer software does,
-# after all, run under MS-DOS...).
-#
-0 string TRSNIFF\ data\ \ \ \ \032 Sniffer capture file
->23 leshort x - version %d
->25 leshort x \b.%d
->33 byte x (Format %d,
->32 byte 0 Token ring)
->32 byte 1 Ethernet)
->32 byte 2 ARCnet)
->32 byte 3 StarLAN)
->32 byte 4 PC Network broadband)
->32 byte 5 LocalTalk)
->32 byte 6 Znet)
-#
-# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
-# the main program that uses that format, but there's also "tcpview",
-# and there may be others in the future.)
-#
-0 ubelong 0xa1b2c3d4 tcpdump capture file (big-endian)
->4 beshort x - version %d
->6 beshort x \b.%d
->20 belong 0 (No link-layer encapsulation
->20 belong 1 (Ethernet
->20 belong 2 (3Mb Ethernet
->20 belong 3 (AX.25
->20 belong 4 (ProNet
->20 belong 5 (Chaos
->20 belong 6 (IEEE 802.x network
->20 belong 7 (ARCnet
->20 belong 8 (SLIP
->20 belong 9 (PPP
->20 belong 10 (FDDI
->20 belong 11 (RFC 1483 ATM
->16 belong x \b, capture length %d)
-0 ulelong 0xa1b2c3d4 tcpdump capture file (little-endian)
->4 leshort x - version %d
->6 leshort x \b.%d
->20 lelong 0 (No link-layer encapsulation
->20 lelong 1 (Ethernet
->20 lelong 2 (3Mb Ethernet
->20 lelong 3 (AX.25
->20 lelong 4 (ProNet
->20 lelong 5 (Chaos
->20 lelong 6 (IEEE 802.x network
->20 lelong 7 (ARCnet
->20 lelong 8 (SLIP
->20 lelong 9 (PPP
->20 lelong 10 (FDDI
->20 lelong 11 (RFC 1483 ATM
->16 lelong x \b, capture length %d)
diff --git a/usr.bin/file/Magdir/xenix b/usr.bin/file/Magdir/xenix
deleted file mode 100644
index 1acadec62a01..000000000000
--- a/usr.bin/file/Magdir/xenix
+++ /dev/null
@@ -1,72 +0,0 @@
-
-#------------------------------------------------------------------------------
-# xenix: file(1) magic for Microsoft Xenix
-#
-# "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
-# model" lifted from "magic.xenix", with comment "derived empirically;
-# treat as folklore until proven"
-#
-# "small model", "large model", "huge model" stuff lifted from XXX
-#
-# XXX - "x.out" collides with PDP-11 archives
-#
-0 string core core file (Xenix)
-0 byte 0x80 8086 relocatable (Microsoft)
-0 leshort 0xff65 x.out
->2 string __.SYMDEF randomized
->0 byte x archive
-0 leshort 0x206 Microsoft a.out
->8 leshort 1 Middle model
->0x1e leshort &0x10 overlay
->0x1e leshort &0x2 separate
->0x1e leshort &0x4 pure
->0x1e leshort &0x800 segmented
->0x1e leshort &0x400 standalone
->0x1e leshort &0x8 fixed-stack
->0x1c byte &0x80 byte-swapped
->0x1c byte &0x40 word-swapped
->0x10 lelong >0 not-stripped
->0x1e leshort ^0xc000 pre-SysV
->0x1e leshort &0x4000 V2.3
->0x1e leshort &0x8000 V3.0
->0x1c byte &0x4 86
->0x1c byte &0xb 186
->0x1c byte &0x9 286
->0x1c byte &0xa 386
->0x1f byte <0x040 small model
->0x1f byte =0x048 large model
->0x1f byte =0x049 huge model
->0x1e leshort &0x1 executable
->0x1e leshort ^0x1 object file
->0x1e leshort &0x40 Large Text
->0x1e leshort &0x20 Large Data
->0x1e leshort &0x120 Huge Objects Enabled
->0x10 lelong >0 not stripped
-
-0 leshort 0x140 old Microsoft 8086 x.out
->0x3 byte &0x4 separate
->0x3 byte &0x2 pure
->0 byte &0x1 executable
->0 byte ^0x1 relocatable
->0x14 lelong >0 not stripped
-
-0 lelong 0x206 b.out
->0x1e leshort &0x10 overlay
->0x1e leshort &0x2 separate
->0x1e leshort &0x4 pure
->0x1e leshort &0x800 segmented
->0x1e leshort &0x400 standalone
->0x1e leshort &0x1 executable
->0x1e leshort ^0x1 object file
->0x1e leshort &0x4000 V2.3
->0x1e leshort &0x8000 V3.0
->0x1c byte &0x4 86
->0x1c byte &0xb 186
->0x1c byte &0x9 286
->0x1c byte &0x29 286
->0x1c byte &0xa 386
->0x1e leshort &0x4 Large Text
->0x1e leshort &0x2 Large Data
->0x1e leshort &0x102 Huge Objects Enabled
-
-0 leshort 0x580 XENIX 8086 relocatable or 80286 small model
diff --git a/usr.bin/file/internat.c b/usr.bin/file/internat.c
deleted file mode 100644
index 59a508a4f75c..000000000000
--- a/usr.bin/file/internat.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include "file.h"
-
-#include <string.h>
-
-#define F 0
-#define T 1
-
-/*
- * List of characters that look "reasonable" in international
- * language texts. That's almost all characters :), except a
- * few in the control range of ASCII (all the known international
- * charactersets share the bottom half with ASCII).
- */
-static char maybe_internat[256] = {
- F, F, F, F, F, F, F, F, T, T, T, T, T, T, F, F, /* 0x0X */
- F, F, F, F, F, F, F, F, F, F, F, T, F, F, F, F, /* 0x1X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x2X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x3X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x4X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x5X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x6X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, F, /* 0x7X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x8X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0x9X */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0xaX */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0xbX */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0xcX */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0xdX */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, /* 0xeX */
- T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T /* 0xfX */
-};
-
-/* Maximal length of a line we consider "reasonable". */
-#define MAXLINELEN 300
-
-int
-internatmagic(buf, nbytes)
- unsigned char *buf;
- int nbytes;
-{
- int i;
- unsigned char *cp;
-
- nbytes--;
-
- /* First, look whether there are "unreasonable" characters. */
- for (i = 0, cp = buf; i < nbytes; i++, cp++)
- if (!maybe_internat[*cp])
- return 0;
-
- /*
- * Now, look whether the file consists of lines of
- * "reasonable" length.
- */
-
- for (i = 0; i < nbytes;) {
- cp = memchr(buf, '\n', nbytes - i);
- if (cp == NULL) {
- /* Don't fail if we hit the end of buffer. */
- if (i + MAXLINELEN >= nbytes)
- break;
- else
- return 0;
- }
- if (cp - buf > MAXLINELEN)
- return 0;
- i += (cp - buf + 1);
- buf = cp + 1;
- }
- ckfputs("International language text", stdout);
- return 1;
-}
diff --git a/usr.bin/file/readelf.c b/usr.bin/file/readelf.c
deleted file mode 100644
index 2ae533b2bea7..000000000000
--- a/usr.bin/file/readelf.c
+++ /dev/null
@@ -1,318 +0,0 @@
-
-#ifdef BUILTIN_ELF
-#include <sys/types.h>
-#include <string.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "readelf.h"
-#include "file.h"
-
-static void doshn __P((int, off_t, int, size_t, char *));
-static void dophn_exec __P((int, off_t, int, size_t, char *));
-static void dophn_core __P((int, off_t, int, size_t, char *));
-
-static void
-doshn(fd, off, num, size, buf)
- int fd;
- off_t off;
- int num;
- size_t size;
- char *buf;
-{
- /*
- * This works for both 32-bit and 64-bit ELF formats,
- * because it looks only at the "sh_type" field, which is
- * always 32 bits, and is preceded only by the "sh_name"
- * field which is also always 32 bits, and because it uses
- * the shdr size from the ELF header rather than using
- * the size of an "Elf32_Shdr".
- */
- Elf32_Shdr *sh = (Elf32_Shdr *) buf;
-
- if (lseek(fd, off, SEEK_SET) == -1)
- error("lseek failed (%s).\n", strerror(errno));
-
- for ( ; num; num--) {
- if (read(fd, buf, size) == -1)
- error("read failed (%s).\n", strerror(errno));
- if (sh->sh_type == SHT_SYMTAB) {
- (void) printf (", not stripped");
- return;
- }
- }
- (void) printf (", stripped");
-}
-
-/*
- * Look through the program headers of an executable image, searching
- * for a PT_INTERP section; if one is found, it's dynamically linked,
- * otherwise it's statically linked.
- */
-static void
-dophn_exec(fd, off, num, size, buf)
- int fd;
- off_t off;
- int num;
- size_t size;
- char *buf;
-{
- /* I am not sure if this works for 64 bit elf formats */
- Elf32_Phdr *ph = (Elf32_Phdr *) buf;
-
- if (lseek(fd, off, SEEK_SET) == -1)
- error("lseek failed (%s).\n", strerror(errno));
-
- for ( ; num; num--) {
- if (read(fd, buf, size) == -1)
- error("read failed (%s).\n", strerror(errno));
- if (ph->p_type == PT_INTERP) {
- /*
- * Has an interpreter - must be a dynamically-linked
- * executable.
- */
- printf(", dynamically linked");
- return;
- }
- }
- printf(", statically linked");
-}
-
-size_t prpsoffsets[] = {
- 100, /* SunOS 5.x */
- 32, /* Linux */
-};
-
-#define NOFFSETS (sizeof prpsoffsets / sizeof prpsoffsets[0])
-
-/*
- * Look through the program headers of an executable image, searching
- * for a PT_NOTE section of type NT_PRPSINFO, with a name "CORE"; if one
- * is found, try looking in various places in its contents for a 16-character
- * string containing only printable characters - if found, that string
- * should be the name of the program that dropped core.
- * Note: right after that 16-character string is, at least in SunOS 5.x
- * (and possibly other SVR4-flavored systems) and Linux, a longer string
- * (80 characters, in 5.x, probably other SVR4-flavored systems, and Linux)
- * containing the start of the command line for that program.
- */
-static void
-dophn_core(fd, off, num, size, buf)
- int fd;
- off_t off;
- int num;
- size_t size;
- char *buf;
-{
- /*
- * This doesn't work for 64-bit ELF, as the "p_offset" field is
- * 64 bits in 64-bit ELF.
- */
- /*
- * This doesn't work for 64-bit ELF, as the "p_offset" field is
- * 64 bits in 64-bit ELF.
- */
- Elf32_Phdr *ph = (Elf32_Phdr *) buf;
- Elf32_Nhdr *nh;
- size_t offset, noffset, reloffset;
- unsigned char c;
- int i, j;
- char nbuf[BUFSIZ];
- int bufsize;
-
- for ( ; num; num--) {
- if (lseek(fd, off, SEEK_SET) == -1)
- error("lseek failed (%s).\n", strerror(errno));
- if (read(fd, buf, size) == -1)
- error("read failed (%s).\n", strerror(errno));
- off += size;
- if (ph->p_type != PT_NOTE)
- continue;
- if (lseek(fd, ph->p_offset, SEEK_SET) == -1)
- error("lseek failed (%s).\n", strerror(errno));
- bufsize = read(fd, nbuf, BUFSIZ);
- if (bufsize == -1)
- error("read failed (%s).\n", strerror(errno));
- offset = 0;
- for (;;) {
- if (offset >= bufsize)
- break;
- nh = (Elf32_Nhdr *)&nbuf[offset];
- offset += sizeof *nh;
-
- /*
- * If this note isn't an NT_PRPSINFO note, it's
- * not what we're looking for.
- */
- if (nh->n_type != NT_PRPSINFO) {
- offset += nh->n_namesz;
- offset = ((offset + 3)/4)*4;
- offset += nh->n_descsz;
- offset = ((offset + 3)/4)*4;
- continue;
- }
-
- /*
- * Make sure this note has the name "CORE".
- */
- if (offset + nh->n_namesz >= bufsize) {
- /*
- * We're past the end of the buffer.
- */
- break;
- }
- if (nh->n_namesz != 5
- || strcmp(&nbuf[offset], "CORE") != 0)
- continue;
- offset += nh->n_namesz;
- offset = ((offset + 3)/4)*4;
-
- /*
- * Extract the program name. We assume it to be
- * 16 characters (that's what it is in SunOS 5.x
- * and Linux).
- *
- * Unfortunately, it's at a different offset in
- * SunOS 5.x and Linux, so try multiple offsets.
- * If the characters aren't all printable, reject
- * it.
- */
- for (i = 0; i < NOFFSETS; i++) {
- reloffset = prpsoffsets[i];
- noffset = offset + reloffset;
- for (j = 0; j < 16;
- j++, noffset++, reloffset++) {
- /*
- * Make sure we're not past the end
- * of the buffer; if we are, just
- * give up.
- */
- if (noffset >= bufsize)
- return;
-
- /*
- * Make sure we're not past the
- * end of the contents; if we
- * are, this obviously isn't
- * the right offset.
- */
- if (reloffset >= nh->n_descsz)
- goto tryanother;
-
- c = nbuf[noffset];
- if (c != '\0' && !isprint(c))
- goto tryanother;
- }
-
- /*
- * Well, that worked.
- */
- printf(", from '%.16s'",
- &nbuf[offset + prpsoffsets[i]]);
- return;
-
- tryanother:
- ;
- }
- offset += nh->n_descsz;
- offset = ((offset + 3)/4)*4;
- }
- }
-}
-
-void
-tryelf(fd, buf, nbytes)
- int fd;
- char *buf;
- int nbytes;
-{
- union {
- int32 l;
- char c[sizeof (int32)];
- } u;
-
- /*
- * ELF executables have multiple section headers in arbitrary
- * file locations and thus file(1) cannot determine it from easily.
- * Instead we traverse thru all section headers until a symbol table
- * one is found or else the binary is stripped.
- */
- if (buf[EI_MAG0] != ELFMAG0 || buf[EI_MAG1] != ELFMAG1
- || buf[EI_MAG2] != ELFMAG2 || buf[EI_MAG3] != ELFMAG3)
- return;
-
-
- if (buf[4] == ELFCLASS32) {
- Elf32_Ehdr elfhdr;
- if (nbytes <= sizeof (Elf32_Ehdr))
- return;
-
-
- u.l = 1;
- (void) memcpy(&elfhdr, buf, sizeof elfhdr);
- /*
- * If the system byteorder does not equal the
- * object byteorder then don't test.
- * XXX - we could conceivably fix up the "dophn_XXX()" and
- * "doshn()" routines to extract stuff in the right
- * byte order....
- */
- if ((u.c[sizeof(long) - 1] + 1) == elfhdr.e_ident[5]) {
- if (elfhdr.e_type == ET_CORE)
- dophn_core(fd, elfhdr.e_phoff, elfhdr.e_phnum,
- elfhdr.e_phentsize, buf);
- else {
- if (elfhdr.e_type == ET_EXEC) {
- dophn_exec(fd, elfhdr.e_phoff,
- elfhdr.e_phnum,
- elfhdr.e_phentsize, buf);
- }
- doshn(fd, elfhdr.e_shoff, elfhdr.e_shnum,
- elfhdr.e_shentsize, buf);
- }
- }
- return;
- }
-
- if (buf[4] == ELFCLASS64) {
- Elf64_Ehdr elfhdr;
- if (nbytes <= sizeof (Elf64_Ehdr))
- return;
-
-
- u.l = 1;
- (void) memcpy(&elfhdr, buf, sizeof elfhdr);
-
- /*
- * If the system byteorder does not equal the
- * object byteorder then don't test.
- * XXX - we could conceivably fix up the "dophn_XXX()" and
- * "doshn()" routines to extract stuff in the right
- * byte order....
- */
- if ((u.c[sizeof(long) - 1] + 1) == elfhdr.e_ident[5]) {
-#ifdef notyet
- if (elfhdr.e_type == ET_CORE)
- dophn_core(fd, elfhdr.e_phoff, elfhdr.e_phnum,
- elfhdr.e_phentsize, buf);
- else
-#endif
- {
-#ifdef notyet
- if (elfhdr.e_type == ET_EXEC) {
- dophn_exec(fd, elfhdr.e_phoff,
- elfhdr.e_phnum,
- elfhdr.e_phentsize, buf);
- }
-#endif
- doshn(fd, elfhdr.e_shoff, elfhdr.e_shnum,
- elfhdr.e_shentsize, buf);
- }
- }
- return;
- }
-}
-#endif
diff --git a/usr.bin/file/readelf.h b/usr.bin/file/readelf.h
deleted file mode 100644
index 853eed600f95..000000000000
--- a/usr.bin/file/readelf.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * readelf.h
- * @(#)$Id: readelf.h,v 1.1.1.1 1997/03/18 17:58:55 mpp Exp $
- *
- * Provide elf data structures for non-elf machines, allowing file
- * non-elf hosts to determine if an elf binary is stripped.
- * Note: cobbled from the linux header file, with modifications
- */
-#ifndef __fake_elf_h__
-#define __fake_elf_h__
-
-typedef unsigned int Elf32_Addr;
-typedef unsigned short Elf32_Half;
-typedef unsigned int Elf32_Off;
-typedef unsigned int Elf32_Word;
-typedef unsigned char Elf32_Char;
-
-/* XXX: We need 64 bit numbers here */
-typedef u_quad_t Elf64_Addr;
-typedef unsigned short Elf64_Half;
-typedef u_quad_t Elf64_Off;
-typedef unsigned int Elf64_Word;
-typedef unsigned char Elf64_Char;
-
-#define EI_NIDENT 16
-
-typedef struct {
- Elf32_Char e_ident[EI_NIDENT];
- Elf32_Half e_type;
- Elf32_Half e_machine;
- Elf32_Word e_version;
- Elf32_Addr e_entry; /* Entry point */
- 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_Ehdr;
-
-typedef struct {
- Elf64_Char e_ident[EI_NIDENT];
- Elf64_Half e_type;
- Elf64_Half e_machine;
- Elf64_Word e_version;
- Elf64_Addr e_entry; /* Entry point */
- 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_Ehdr;
-
-/* e_type */
-#define ET_EXEC 2
-#define ET_CORE 4
-
-/* sh_type */
-#define SHT_SYMTAB 2
-#define SHT_NOTE 7
-
-/* elf type */
-#define ELFDATANONE 0 /* e_ident[EI_DATA] */
-#define ELFDATA2LSB 1
-#define ELFDATA2MSB 2
-
-/* elf class */
-#define ELFCLASSNONE 0
-#define ELFCLASS32 1
-#define ELFCLASS64 2
-
-/* magic number */
-#define EI_MAG0 0 /* e_ident[] indexes */
-#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
-
-#define ELFMAG0 0x7f /* EI_MAG */
-#define ELFMAG1 'E'
-#define ELFMAG2 'L'
-#define ELFMAG3 'F'
-#define ELFMAG "\177ELF"
-
-typedef struct {
- Elf32_Word p_type;
- Elf32_Off p_offset;
- Elf32_Addr p_vaddr;
- Elf32_Addr p_paddr;
- Elf32_Word p_filesz;
- Elf32_Word p_memsz;
- Elf32_Word p_flags;
- Elf32_Word p_align;
-} Elf32_Phdr;
-
-#define PT_NULL 0 /* p_type */
-#define PT_LOAD 1
-#define PT_DYNAMIC 2
-#define PT_INTERP 3
-#define PT_NOTE 4
-#define PT_SHLIB 5
-#define PT_PHDR 6
-#define PT_NUM 7
-
-typedef struct {
- Elf32_Word sh_name;
- Elf32_Word sh_type;
- Elf32_Word sh_flags;
- Elf32_Addr sh_addr;
- Elf32_Off sh_offset;
- Elf32_Word sh_size;
- Elf32_Word sh_link;
- Elf32_Word sh_info;
- Elf32_Word sh_addralign;
- Elf32_Word sh_entsize;
-} Elf32_Shdr;
-
-typedef struct {
- Elf64_Word sh_name;
- Elf64_Word sh_type;
- Elf64_Off sh_flags;
- Elf64_Addr sh_addr;
- Elf64_Off sh_offset;
- Elf64_Off sh_size;
- Elf64_Word sh_link;
- Elf64_Word sh_info;
- Elf64_Off sh_addralign;
- Elf64_Off sh_entsize;
-} Elf64_Shdr;
-
-/* Notes used in ET_CORE */
-#define NT_PRSTATUS 1
-#define NT_PRFPREG 2
-#define NT_PRPSINFO 3
-#define NT_TASKSTRUCT 4
-
-/* Note header in a PT_NOTE section */
-typedef struct elf_note {
- Elf32_Word n_namesz; /* Name size */
- Elf32_Word n_descsz; /* Content size */
- Elf32_Word n_type; /* Content type */
-} Elf32_Nhdr;
-
-typedef struct {
- Elf64_Word n_namesz;
- Elf64_Word n_descsz;
- Elf64_Word n_type;
-} Elf64_Nhdr;
-
-#define NT_PRSTATUS 1
-#define NT_PRFPREG 2
-#define NT_PRPSINFO 3
-#define NT_PRXREG 4
-#define NT_PLATFORM 5
-#define NT_AUXV 6
-
-#endif