Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
CTCaer
GitHub Repository: CTCaer/hekate
Path: blob/master/bdk/ianos/elfload/elfarch.h
1476 views
1
/*
2
* Copyright © 2014, Owen Shepherd
3
*
4
* Permission to use, copy, modify, and/or distribute this software for any
5
* purpose with or without fee is hereby granted, provided that the above
6
* copyright notice appear in all copies.
7
*
8
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
* PERFORMANCE OF THIS SOFTWARE.
15
*/
16
17
#ifndef ELFARCH_H
18
#define ELFARCH_H
19
20
#if defined(__i386__)
21
#define EM_THIS EM_386
22
#define EL_ARCH_USES_REL
23
#elif defined(__amd64__)
24
#define EM_THIS EM_AMD64
25
#define EL_ARCH_USES_RELA
26
#elif defined(__arm__)
27
#define EM_THIS EM_ARM
28
#define EL_ARCH_USES_REL
29
#elif defined(__aarch64__)
30
#define EM_THIS EM_AARCH64
31
#define EL_ARCH_USES_RELA
32
#define EL_ARCH_USES_REL
33
#else
34
#error specify your ELF architecture
35
#endif
36
37
#if defined(__LP64__) || defined(__LLP64__)
38
#define ELFSIZE 64
39
#else
40
#define ELFSIZE 32
41
#endif
42
43
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
44
#define ELFDATATHIS ELFDATA2LSB
45
#else
46
#define ELFDATATHIS ELFDATA2MSB
47
#endif
48
49
#endif
50
51