LIEF: Library to Instrument Executable Formats Version 0.15.0
Loading...
Searching...
No Matches
ART/enums.hpp
1/* Copyright 2017 - 2024 R. Thomas
2 * Copyright 2017 - 2024 Quarkslab
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#ifndef LIEF_ART_ENUMS_H
17#define LIEF_ART_ENUMS_H
18
19namespace LIEF {
20namespace ART {
21
22enum STORAGE_MODES {
23 STORAGE_UNCOMPRESSED = 0,
24 STORAGE_LZ4 = 1,
25 STORAGE_LZ4HC = 2,
26};
27
28namespace ART_17 {
29
30enum IMAGE_METHODS {
31 RESOLUTION_METHOD = 0,
32 IMT_CONFLICT_METHOD = 1,
33 IMT_UNIMPLEMENTED_METHOD = 2,
34 CALLEE_SAVE_METHOD = 3,
35 REFS_ONLY_SAVE_METHOD = 4,
36 REFS_AND_ARGS_SAVE_METHOD = 5,
37};
38
39enum IMAGE_SECTIONS {
40 SECTION_OBJECTS = 0,
41 SECTION_ART_FIELDS = 1,
42 SECTION_ART_METHODS = 2,
43 SECTION_INTERNED_STRINGS = 3,
44 SECTION_IMAGE_BITMAP = 4,
45};
46
47enum IMAGE_ROOTS {
48 DEX_CACHES = 0,
49 CLASS_ROOTS = 1,
50};
51
52
53} // Namespace ART_17
54
55
56namespace ART_29 {
57
58using ART_17::IMAGE_METHODS;
59using ART_17::IMAGE_ROOTS;
60
61enum IMAGE_SECTIONS {
62 SECTION_OBJECTS = 0,
63 SECTION_ART_FIELDS = 1,
64 SECTION_ART_METHODS = 2,
65 SECTION_RUNTIME_METHODS = 3, // New in ART 29
66 SECTION_IMT_CONFLICT_TABLES = 4, // New in ART 29
67 SECTION_DEX_CACHE_ARRAYS = 5, // New in ART 29
68 SECTION_INTERNED_STRINGS = 6,
69 SECTION_CLASS_TABLE = 7, // New in ART 29
70 SECTION_IMAGE_BITMAP = 8,
71};
72
73
74
75} // Namespace ART_29
76
77
78namespace ART_30 {
79
80using ART_29::IMAGE_METHODS;
81using ART_29::IMAGE_ROOTS;
82
83enum IMAGE_SECTIONS {
84 SECTION_OBJECTS = 0,
85 SECTION_ART_FIELDS = 1,
86 SECTION_ART_METHODS = 2,
87 SECTION_RUNTIME_METHODS = 3,
88 SECTION_IM_TABLES = 4, // New in ART 30
89 SECTION_IMT_CONFLICT_TABLES = 5,
90 SECTION_DEX_CACHE_ARRAYS = 6,
91 SECTION_INTERNED_STRINGS = 7,
92 SECTION_CLASS_TABLE = 8,
93 SECTION_IMAGE_BITMAP = 9,
94};
95
96} // Namespace ART_30
97
98namespace ART_44 {
99
100using ART_30::IMAGE_SECTIONS;
101
102enum IMAGE_METHODS {
103 RESOLUTION_METHOD = 0,
104 IMT_CONFLICT_METHOD = 1,
105 IMT_UNIMPLEMENTED_METHOD = 2,
106 SAVE_ALL_CALLEE_SAVES_METHOD = 3, // New in ART 44
107 SAVE_REFS_ONLY_METHOD = 4, // New in ART 44
108 SAVE_REFS_AND_ARGS_METHOD = 5, // New in ART 44
109 SAVE_EVERYTHING_METHOD = 6, // New in ART 44
110};
111
112
113enum IMAGE_ROOTS {
114 DEX_CACHES = 0,
115 CLASS_ROOTS = 1,
116 CLASS_LOADER = 2, // New in ART 44
117};
118
119} // Namespace ART_44
120
121
122namespace ART_46 {
123
124using ART_30::IMAGE_SECTIONS;
125using ART_30::IMAGE_METHODS;
126using ART_30::IMAGE_ROOTS;
127
128
129} // Namespace ART_46
130
131}
132}
133#endif
LIEF namespace.
Definition Abstract/Binary.hpp:32