forked from nodejs/node
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnumToString.cpp
More file actions
128 lines (115 loc) · 6.05 KB
/
Copy pathEnumToString.cpp
File metadata and controls
128 lines (115 loc) · 6.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/* Copyright 2017 - 2025 R. Thomas
* Copyright 2017 - 2025 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "LIEF/ART/enums.hpp"
#include "LIEF/ART/EnumToString.hpp"
#include <map>
namespace LIEF {
namespace ART {
const char* to_string(STORAGE_MODES e) {
const std::map<STORAGE_MODES, const char*> enumStrings {
{ STORAGE_MODES::STORAGE_UNCOMPRESSED, "UNCOMPRESSED" },
{ STORAGE_MODES::STORAGE_LZ4, "LZ4" },
{ STORAGE_MODES::STORAGE_LZ4HC, "LZ4HC" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_17::IMAGE_SECTIONS e) {
const std::map<ART_17::IMAGE_SECTIONS, const char*> enumStrings {
{ ART_17::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS" },
{ ART_17::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS" },
{ ART_17::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS" },
{ ART_17::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS" },
{ ART_17::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_29::IMAGE_SECTIONS e) {
const std::map<ART_29::IMAGE_SECTIONS, const char*> enumStrings {
{ ART_29::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS" },
{ ART_29::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS" },
{ ART_29::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS" },
{ ART_29::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS" },
{ ART_29::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES" },
{ ART_29::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS" },
{ ART_29::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS" },
{ ART_29::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE" },
{ ART_29::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_30::IMAGE_SECTIONS e) {
const std::map<ART_30::IMAGE_SECTIONS, const char*> enumStrings {
{ ART_30::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS" },
{ ART_30::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS" },
{ ART_30::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS" },
{ ART_30::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS" },
{ ART_30::IMAGE_SECTIONS::SECTION_IM_TABLES, "IM_TABLES" },
{ ART_30::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES" },
{ ART_30::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS" },
{ ART_30::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS" },
{ ART_30::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE" },
{ ART_30::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_17::IMAGE_METHODS e) {
const std::map<ART_17::IMAGE_METHODS, const char*> enumStrings {
{ ART_17::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD" },
{ ART_17::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD" },
{ ART_17::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD, "IMT_UNIMPLEMENTED_METHOD" },
{ ART_17::IMAGE_METHODS::CALLEE_SAVE_METHOD, "CALLEE_SAVE_METHOD" },
{ ART_17::IMAGE_METHODS::REFS_ONLY_SAVE_METHOD, "REFS_ONLY_SAVE_METHOD" },
{ ART_17::IMAGE_METHODS::REFS_AND_ARGS_SAVE_METHOD, "REFS_AND_ARGS_SAVE_METHOD" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_44::IMAGE_METHODS e) {
const std::map<ART_44::IMAGE_METHODS, const char*> enumStrings {
{ ART_44::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD" },
{ ART_44::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD" },
{ ART_44::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD, "IMT_UNIMPLEMENTED_METHOD" },
{ ART_44::IMAGE_METHODS::SAVE_ALL_CALLEE_SAVES_METHOD, "SAVE_ALL_CALLEE_SAVES_METHOD" },
{ ART_44::IMAGE_METHODS::SAVE_REFS_ONLY_METHOD, "SAVE_REFS_ONLY_METHOD" },
{ ART_44::IMAGE_METHODS::SAVE_REFS_AND_ARGS_METHOD, "SAVE_REFS_AND_ARGS_METHOD" },
{ ART_44::IMAGE_METHODS::SAVE_EVERYTHING_METHOD, "SAVE_EVERYTHING_METHOD" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_17::IMAGE_ROOTS e) {
const std::map<ART_17::IMAGE_ROOTS, const char*> enumStrings {
{ ART_17::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES" },
{ ART_17::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_44::IMAGE_ROOTS e) {
const std::map<ART_44::IMAGE_ROOTS, const char*> enumStrings {
{ ART_44::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES" },
{ ART_44::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS" },
{ ART_44::IMAGE_ROOTS::CLASS_LOADER, "CLASS_LOADER" },
};
auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
} // namespace ART
} // namespace LIEF