/*1* Copyright © 2014, Owen Shepherd2*3* Permission to use, copy, modify, and/or distribute this software for any4* purpose with or without fee is hereby granted, provided that the above5* copyright notice appear in all copies.6*7* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH8* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY9* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,10* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM11* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR12* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR13* PERFORMANCE OF THIS SOFTWARE.14*/1516#ifndef ELFARCH_H17#define ELFARCH_H1819#if defined(__i386__)20#define EM_THIS EM_38621#define EL_ARCH_USES_REL22#elif defined(__amd64__)23#define EM_THIS EM_AMD6424#define EL_ARCH_USES_RELA25#elif defined(__arm__)26#define EM_THIS EM_ARM27#define EL_ARCH_USES_REL28#elif defined(__aarch64__)29#define EM_THIS EM_AARCH6430#define EL_ARCH_USES_RELA31#define EL_ARCH_USES_REL32#else33#error specify your ELF architecture34#endif3536#if defined(__LP64__) || defined(__LLP64__)37#define ELFSIZE 6438#else39#define ELFSIZE 3240#endif4142#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__43#define ELFDATATHIS ELFDATA2LSB44#else45#define ELFDATATHIS ELFDATA2MSB46#endif4748#endif495051