13 #include <featureTests.h>
14 #if defined(ROSE_ENABLE_BINARY_ANALYSIS)
15 #include "ROSETTA_macros.h"
17 #include "AstNodeClass.h"
21 DOCUMENTATION_should_never_be_defined;
25 #define DECLARE_LEAF_CLASS(CLASS_WITHOUT_Sg)
27 #define DECLARE_LEAF_CLASS(CLASS_WITHOUT_Sg) \
28 NEW_TERMINAL_MACRO(CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg "Tag"); \
29 CLASS_WITHOUT_Sg.setCppCondition("!defined(DOCUMENTATION)");\
30 CLASS_WITHOUT_Sg.setAutomaticGenerationOfConstructor(false);\
31 CLASS_WITHOUT_Sg.setAutomaticGenerationOfDestructor(false)
35 #define DECLARE_HEADERS(CLASS_WITHOUT_Sg)
37 #define DECLARE_HEADERS(CLASS_WITHOUT_Sg) \
38 CLASS_WITHOUT_Sg.setPredeclarationString("Sg" #CLASS_WITHOUT_Sg "_HEADERS", \
39 ROSE_AUTOMAKE_ABSOLUTE_PATH_TOP_SRCDIR + "//src/ROSETTA/src/binaryInstruction.C")
43 #define DECLARE_OTHERS(CLASS_WITHOUT_Sg)
45 #define DECLARE_OTHERS(CLASS_WITHOUT_Sg) \
46 CLASS_WITHOUT_Sg.setFunctionPrototype("Sg" #CLASS_WITHOUT_Sg "_OTHERS", \
47 ROSE_AUTOMAKE_ABSOLUTE_PATH_TOP_SRCDIR + "//src/ROSETTA/src/binaryInstruction.C")
51 #define IS_SERIALIZABLE()
53 #define IS_SERIALIZABLE(CLASS_WITHOUT_Sg) \
54 CLASS_WITHOUT_Sg.isBoostSerializable(true)
90 #endif // DOCUMENTATION
93 void Grammar::setUpBinaryInstructions() {
94 #endif // !DOCUMENTATION
101 DECLARE_LEAF_CLASS(AsmX86Instruction);
102 IS_SERIALIZABLE(AsmX86Instruction);
104 DECLARE_HEADERS(AsmX86Instruction);
105 #if defined(SgAsmX86Instruction_HEADERS) || defined(DOCUMENTATION)
106 #include <Rose/BinaryAnalysis/BasicTypes.h>
107 #include <Rose/BinaryAnalysis/InstructionEnumsX86.h>
108 #endif // SgAsmX86Instruction_HEADERS
113 #endif // DOCUMENTATION
115 #ifndef DOCUMENTATION
116 AsmX86Instruction.setDataPrototype(
117 "Rose::BinaryAnalysis::X86InstructionKind",
"kind",
"= Rose::BinaryAnalysis::x86_unknown_instruction",
118 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
119 #endif // !DOCUMENTATION
121 #ifndef DOCUMENTATION
122 AsmX86Instruction.setDataPrototype(
123 "Rose::BinaryAnalysis::X86InstructionSize",
"baseSize",
"= Rose::BinaryAnalysis::x86_insnsize_none",
124 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
125 #endif // !DOCUMENTATION
127 #ifndef DOCUMENTATION
128 AsmX86Instruction.setDataPrototype(
129 "Rose::BinaryAnalysis::X86InstructionSize",
"operandSize",
"= Rose::BinaryAnalysis::x86_insnsize_none",
130 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
131 #endif // !DOCUMENTATION
133 #ifndef DOCUMENTATION
134 AsmX86Instruction.setDataPrototype(
135 "Rose::BinaryAnalysis::X86InstructionSize",
"addressSize",
"= Rose::BinaryAnalysis::x86_insnsize_none",
136 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
137 #endif // !DOCUMENTATION
139 #ifndef DOCUMENTATION
140 AsmX86Instruction.setDataPrototype(
141 "bool",
"lockPrefix",
"= false",
142 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
143 #endif // !DOCUMENTATION
145 #ifndef DOCUMENTATION
146 AsmX86Instruction.setDataPrototype(
147 "Rose::BinaryAnalysis::X86RepeatPrefix",
"repeatPrefix",
"= Rose::BinaryAnalysis::x86_repeat_none",
148 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
149 #endif // !DOCUMENTATION
151 #ifndef DOCUMENTATION
152 AsmX86Instruction.setDataPrototype(
153 "Rose::BinaryAnalysis::X86BranchPrediction",
"branchPrediction",
"= Rose::BinaryAnalysis::x86_branch_prediction_none",
154 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
155 #endif // !DOCUMENTATION
157 #ifndef DOCUMENTATION
158 AsmX86Instruction.setDataPrototype(
159 "Rose::BinaryAnalysis::X86SegmentRegister",
"segmentOverride",
"= Rose::BinaryAnalysis::x86_segreg_none",
160 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
161 #endif // !DOCUMENTATION
163 DECLARE_OTHERS(AsmX86Instruction);
164 #if defined(SgAsmX86Instruction_OTHERS) || defined(DOCUMENTATION)
167 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
169 friend class boost::serialization::access;
172 void serialize(S &s,
const unsigned ) {
175 s & BOOST_SERIALIZATION_NVP(p_kind);
176 s & BOOST_SERIALIZATION_NVP(p_baseSize);
177 s & BOOST_SERIALIZATION_NVP(p_operandSize);
178 s & BOOST_SERIALIZATION_NVP(p_addressSize);
179 s & BOOST_SERIALIZATION_NVP(p_lockPrefix);
180 s & BOOST_SERIALIZATION_NVP(p_repeatPrefix);
181 s & BOOST_SERIALIZATION_NVP(p_branchPrediction);
182 s & BOOST_SERIALIZATION_NVP(p_segmentOverride);
185 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
284 rose_addr_t *target, rose_addr_t *ret)
override;
286 rose_addr_t *target, rose_addr_t *ret)
override;
308 std::string
const& mnemonic,
322 #endif // SgAsmX86Instruction_OTHERS
325 #endif // DOCUMENTATION
332 DECLARE_LEAF_CLASS(AsmDwarfVolatileType);
333 IS_SERIALIZABLE(AsmDwarfVolatileType);
337 #endif // DOCUMENTATION
339 DECLARE_OTHERS(AsmDwarfVolatileType);
340 #if defined(SgAsmDwarfVolatileType_OTHERS) || defined(DOCUMENTATION)
343 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
345 friend class boost::serialization::access;
348 void serialize(S &s,
const unsigned ) {
353 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
366 uint64_t
const& offset,
367 uint64_t
const& overall_offset);
377 #endif // SgAsmDwarfVolatileType_OTHERS
380 #endif // DOCUMENTATION
387 DECLARE_LEAF_CLASS(AsmVectorType);
388 IS_SERIALIZABLE(AsmVectorType);
393 #endif // DOCUMENTATION
395 #ifndef DOCUMENTATION
396 AsmVectorType.setDataPrototype(
397 "size_t",
"nElmts",
"= 0",
398 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
399 #endif // !DOCUMENTATION
401 #ifndef DOCUMENTATION
402 AsmVectorType.setDataPrototype(
403 "SgAsmType*",
"elmtType",
"= nullptr",
404 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
405 #endif // !DOCUMENTATION
407 DECLARE_OTHERS(AsmVectorType);
408 #if defined(SgAsmVectorType_OTHERS) || defined(DOCUMENTATION)
411 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
413 friend class boost::serialization::access;
416 void serialize(S &s,
const unsigned ) {
418 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(
SgAsmType);
419 s & BOOST_SERIALIZATION_NVP(p_nElmts);
420 s & BOOST_SERIALIZATION_NVP(p_elmtType);
423 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
447 virtual void check()
const override;
448 virtual std::string
toString()
const override;
449 virtual size_t get_nBits()
const override;
466 #endif // SgAsmVectorType_OTHERS
469 #endif // DOCUMENTATION
476 DECLARE_LEAF_CLASS(AsmUnaryUnsignedExtend);
477 IS_SERIALIZABLE(AsmUnaryUnsignedExtend);
486 #endif // DOCUMENTATION
488 DECLARE_OTHERS(AsmUnaryUnsignedExtend);
489 #if defined(SgAsmUnaryUnsignedExtend_OTHERS) || defined(DOCUMENTATION)
492 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
494 friend class boost::serialization::access;
497 void serialize(S &s,
const unsigned ) {
502 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
524 #endif // SgAsmUnaryUnsignedExtend_OTHERS
527 #endif // DOCUMENTATION
534 DECLARE_LEAF_CLASS(AsmUnaryTruncate);
535 IS_SERIALIZABLE(AsmUnaryTruncate);
544 #endif // DOCUMENTATION
546 DECLARE_OTHERS(AsmUnaryTruncate);
547 #if defined(SgAsmUnaryTruncate_OTHERS) || defined(DOCUMENTATION)
550 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
552 friend class boost::serialization::access;
555 void serialize(S &s,
const unsigned ) {
560 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
582 #endif // SgAsmUnaryTruncate_OTHERS
585 #endif // DOCUMENTATION
592 DECLARE_LEAF_CLASS(AsmUnarySignedExtend);
593 IS_SERIALIZABLE(AsmUnarySignedExtend);
602 #endif // DOCUMENTATION
604 DECLARE_OTHERS(AsmUnarySignedExtend);
605 #if defined(SgAsmUnarySignedExtend_OTHERS) || defined(DOCUMENTATION)
608 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
610 friend class boost::serialization::access;
613 void serialize(S &s,
const unsigned ) {
618 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
640 #endif // SgAsmUnarySignedExtend_OTHERS
643 #endif // DOCUMENTATION
650 DECLARE_LEAF_CLASS(AsmUnaryRrx);
651 IS_SERIALIZABLE(AsmUnaryRrx);
653 DECLARE_HEADERS(AsmUnaryRrx);
654 #if defined(SgAsmUnaryRrx_HEADERS) || defined(DOCUMENTATION)
656 #endif // SgAsmUnaryRrx_HEADERS
660 #endif // DOCUMENTATION
662 DECLARE_OTHERS(AsmUnaryRrx);
663 #if defined(SgAsmUnaryRrx_OTHERS) || defined(DOCUMENTATION)
666 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
668 friend class boost::serialization::access;
671 void serialize(S &s,
const unsigned ) {
676 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
698 #endif // SgAsmUnaryRrx_OTHERS
701 #endif // DOCUMENTATION
708 DECLARE_LEAF_CLASS(AsmUnaryPlus);
709 IS_SERIALIZABLE(AsmUnaryPlus);
714 #endif // DOCUMENTATION
716 DECLARE_OTHERS(AsmUnaryPlus);
717 #if defined(SgAsmUnaryPlus_OTHERS) || defined(DOCUMENTATION)
720 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
722 friend class boost::serialization::access;
725 void serialize(S &s,
const unsigned ) {
730 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
752 #endif // SgAsmUnaryPlus_OTHERS
755 #endif // DOCUMENTATION
762 DECLARE_LEAF_CLASS(AsmUnaryMinus);
763 IS_SERIALIZABLE(AsmUnaryMinus);
768 #endif // DOCUMENTATION
770 DECLARE_OTHERS(AsmUnaryMinus);
771 #if defined(SgAsmUnaryMinus_OTHERS) || defined(DOCUMENTATION)
774 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
776 friend class boost::serialization::access;
779 void serialize(S &s,
const unsigned ) {
784 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
806 #endif // SgAsmUnaryMinus_OTHERS
809 #endif // DOCUMENTATION
816 #ifndef DOCUMENTATION
817 AstNodeClass& AsmUnaryExpression = nonTerminalConstructor(
818 "AsmUnaryExpression",
820 "AsmUnaryExpression",
821 "AsmUnaryExpressionTag",
822 SubclassListBuilder()
826 | AsmUnarySignedExtend
828 | AsmUnaryUnsignedExtend
830 assert(AsmUnaryExpression.associatedGrammar !=
nullptr);
831 AsmUnaryExpression.setCppCondition(
"!defined(DOCUMENTATION)");
832 AsmUnaryExpression.isBoostSerializable(
true);
833 AsmUnaryExpression.setAutomaticGenerationOfConstructor(
false);
834 AsmUnaryExpression.setAutomaticGenerationOfDestructor(
false);
835 #endif // !DOCUMENTATION
840 #endif // DOCUMENTATION
842 #ifndef DOCUMENTATION
843 AsmUnaryExpression.setDataPrototype(
844 "SgAsmExpression*",
"operand",
"= nullptr",
845 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
846 #endif // !DOCUMENTATION
848 DECLARE_OTHERS(AsmUnaryExpression);
849 #if defined(SgAsmUnaryExpression_OTHERS) || defined(DOCUMENTATION)
852 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
854 friend class boost::serialization::access;
857 void serialize(S &s,
const unsigned ) {
860 s & BOOST_SERIALIZATION_NVP(p_operand);
863 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
893 #endif // SgAsmUnaryExpression_OTHERS
896 #endif // DOCUMENTATION
903 DECLARE_LEAF_CLASS(AsmSynthesizedFieldDeclaration);
904 IS_SERIALIZABLE(AsmSynthesizedFieldDeclaration);
906 DECLARE_HEADERS(AsmSynthesizedFieldDeclaration);
907 #if defined(SgAsmSynthesizedFieldDeclaration_HEADERS) || defined(DOCUMENTATION)
909 #endif // SgAsmSynthesizedFieldDeclaration_HEADERS
913 #endif // DOCUMENTATION
915 #ifndef DOCUMENTATION
916 AsmSynthesizedFieldDeclaration.setDataPrototype(
917 "std::string",
"name",
"",
918 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
919 #endif // !DOCUMENTATION
921 #ifndef DOCUMENTATION
922 AsmSynthesizedFieldDeclaration.setDataPrototype(
923 "uint64_t",
"offset",
"= 0",
924 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
925 #endif // !DOCUMENTATION
927 DECLARE_OTHERS(AsmSynthesizedFieldDeclaration);
928 #if defined(SgAsmSynthesizedFieldDeclaration_OTHERS) || defined(DOCUMENTATION)
931 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
933 friend class boost::serialization::access;
936 void serialize(S &s,
const unsigned ) {
939 s & BOOST_SERIALIZATION_NVP(p_name);
940 s & BOOST_SERIALIZATION_NVP(p_offset);
943 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
949 std::string
const&
get_name()
const;
982 #endif // SgAsmSynthesizedFieldDeclaration_OTHERS
985 #endif // DOCUMENTATION
992 DECLARE_LEAF_CLASS(AsmSynthesizedDataStructureDeclaration);
993 IS_SERIALIZABLE(AsmSynthesizedDataStructureDeclaration);
1007 #endif // DOCUMENTATION
1009 DECLARE_OTHERS(AsmSynthesizedDataStructureDeclaration);
1010 #if defined(SgAsmSynthesizedDataStructureDeclaration_OTHERS) || defined(DOCUMENTATION)
1013 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1015 friend class boost::serialization::access;
1018 void serialize(S &s,
const unsigned ) {
1023 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1025 SgAsmSynthesizedDeclarationPtrList p_declarationList;
1030 p_declarationList.push_back(declaration);
1052 #endif // SgAsmSynthesizedDataStructureDeclaration_OTHERS
1053 #ifdef DOCUMENTATION
1055 #endif // DOCUMENTATION
1062 DECLARE_LEAF_CLASS(AsmStringStorage);
1063 IS_SERIALIZABLE(AsmStringStorage);
1065 #ifdef DOCUMENTATION
1068 #endif // DOCUMENTATION
1070 #ifndef DOCUMENTATION
1071 AsmStringStorage.setDataPrototype(
1072 "SgAsmGenericStrtab*",
"strtab",
"= nullptr",
1073 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1074 #endif // !DOCUMENTATION
1076 #ifndef DOCUMENTATION
1077 AsmStringStorage.setDataPrototype(
1078 "std::string",
"string",
"",
1079 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1080 #endif // !DOCUMENTATION
1082 #ifndef DOCUMENTATION
1083 AsmStringStorage.setDataPrototype(
1084 "rose_addr_t",
"offset",
"= 0",
1085 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1086 #endif // !DOCUMENTATION
1088 DECLARE_OTHERS(AsmStringStorage);
1089 #if defined(SgAsmStringStorage_OTHERS) || defined(DOCUMENTATION)
1092 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1094 friend class boost::serialization::access;
1097 void serialize(S &s,
const unsigned ) {
1100 s & BOOST_SERIALIZATION_NVP(p_strtab);
1101 s & BOOST_SERIALIZATION_NVP(p_string);
1102 s & BOOST_SERIALIZATION_NVP(p_offset);
1105 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1133 void dump(FILE *s,
const char *prefix, ssize_t idx)
const;
1142 friend class SgAsmStoredStrtab;
1159 #endif // SgAsmStringStorage_OTHERS
1160 #ifdef DOCUMENTATION
1162 #endif // DOCUMENTATION
1169 DECLARE_LEAF_CLASS(AsmStoredString);
1170 IS_SERIALIZABLE(AsmStoredString);
1172 #ifdef DOCUMENTATION
1175 #endif // DOCUMENTATION
1177 #ifndef DOCUMENTATION
1178 AsmStoredString.setDataPrototype(
1179 "SgAsmStringStorage*",
"storage",
"= nullptr",
1180 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1181 #endif // !DOCUMENTATION
1183 DECLARE_OTHERS(AsmStoredString);
1184 #if defined(SgAsmStoredString_OTHERS) || defined(DOCUMENTATION)
1187 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1189 friend class boost::serialization::access;
1192 void serialize(S &s,
const unsigned ) {
1195 s & BOOST_SERIALIZATION_NVP(p_storage);
1198 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1218 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
1226 virtual std::string
get_string(
bool escape=
false)
const override;
1231 virtual void set_string(
const std::string&)
override;
1236 virtual void set_string(rose_addr_t)
override;
1241 virtual rose_addr_t
get_offset()
const override;
1258 #endif // SgAsmStoredString_OTHERS
1259 #ifdef DOCUMENTATION
1261 #endif // DOCUMENTATION
1268 DECLARE_LEAF_CLASS(AsmStaticData);
1269 IS_SERIALIZABLE(AsmStaticData);
1271 #ifdef DOCUMENTATION
1280 #endif // DOCUMENTATION
1282 #ifndef DOCUMENTATION
1283 AsmStaticData.setDataPrototype(
1284 "SgUnsignedCharList",
"raw_bytes",
"",
1285 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1286 #endif // !DOCUMENTATION
1288 DECLARE_OTHERS(AsmStaticData);
1289 #if defined(SgAsmStaticData_OTHERS) || defined(DOCUMENTATION)
1292 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1294 friend class boost::serialization::access;
1297 void serialize(S &s,
const unsigned ) {
1300 s & BOOST_SERIALIZATION_NVP(p_raw_bytes);
1303 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1340 #endif // SgAsmStaticData_OTHERS
1341 #ifdef DOCUMENTATION
1343 #endif // DOCUMENTATION
1350 DECLARE_LEAF_CLASS(AsmStackExpression);
1351 IS_SERIALIZABLE(AsmStackExpression);
1353 #ifdef DOCUMENTATION
1356 #endif // DOCUMENTATION
1358 #ifndef DOCUMENTATION
1359 AsmStackExpression.setDataPrototype(
1360 "int",
"stack_position",
"= 0",
1361 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1362 #endif // !DOCUMENTATION
1364 DECLARE_OTHERS(AsmStackExpression);
1365 #if defined(SgAsmStackExpression_OTHERS) || defined(DOCUMENTATION)
1368 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1370 friend class boost::serialization::access;
1373 void serialize(S &s,
const unsigned ) {
1376 s & BOOST_SERIALIZATION_NVP(p_stack_position);
1379 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1412 #endif // SgAsmStackExpression_OTHERS
1413 #ifdef DOCUMENTATION
1415 #endif // DOCUMENTATION
1422 DECLARE_LEAF_CLASS(AsmRiscOperation);
1423 IS_SERIALIZABLE(AsmRiscOperation);
1425 #ifdef DOCUMENTATION
1435 #endif // DOCUMENTATION
1437 #ifndef DOCUMENTATION
1438 AsmRiscOperation.setDataPrototype(
1439 "SgAsmRiscOperation::RiscOperator",
"riscOperator",
"= OP_NONE",
1440 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1441 #endif // !DOCUMENTATION
1443 #ifndef DOCUMENTATION
1444 AsmRiscOperation.setDataPrototype(
1445 "SgAsmExprListExp*",
"operands",
"= nullptr",
1446 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1447 #endif // !DOCUMENTATION
1449 DECLARE_OTHERS(AsmRiscOperation);
1450 #if defined(SgAsmRiscOperation_OTHERS) || defined(DOCUMENTATION)
1453 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1455 friend class boost::serialization::access;
1458 void serialize(S &s,
const unsigned ) {
1461 s & BOOST_SERIALIZATION_NVP(p_riscOperator);
1462 s & BOOST_SERIALIZATION_NVP(p_operands);
1465 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1480 OP_filterCallTarget,
1481 OP_filterReturnTarget,
1482 OP_filterIndirectJumpTarget,
1492 OP_leastSignificantSetBit,
1493 OP_mostSignificantSetBit,
1498 OP_shiftRightArithmetic,
1503 OP_isUnsignedLessThan,
1504 OP_isUnsignedLessThanOrEqual,
1505 OP_isUnsignedGreaterThan,
1506 OP_isUnsignedGreaterThanOrEqual,
1507 OP_isSignedLessThan,
1508 OP_isSignedLessThanOrEqual,
1509 OP_isSignedGreaterThan,
1510 OP_isSignedGreaterThanOrEqual,
1522 OP_unsignedMultiply,
1580 #endif // SgAsmRiscOperation_OTHERS
1581 #ifdef DOCUMENTATION
1583 #endif // DOCUMENTATION
1590 DECLARE_LEAF_CLASS(AsmRegisterNames);
1591 IS_SERIALIZABLE(AsmRegisterNames);
1593 #ifdef DOCUMENTATION
1596 #endif // DOCUMENTATION
1598 #ifndef DOCUMENTATION
1599 AsmRegisterNames.setDataPrototype(
1600 "SgAsmRegisterReferenceExpressionPtrList",
"registers",
"",
1601 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1602 #endif // !DOCUMENTATION
1604 #ifndef DOCUMENTATION
1605 AsmRegisterNames.setDataPrototype(
1606 "unsigned",
"mask",
"= 0",
1607 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1608 #endif // !DOCUMENTATION
1610 DECLARE_OTHERS(AsmRegisterNames);
1611 #if defined(SgAsmRegisterNames_OTHERS) || defined(DOCUMENTATION)
1614 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1616 friend class boost::serialization::access;
1619 void serialize(S &s,
const unsigned ) {
1622 s & BOOST_SERIALIZATION_NVP(p_registers);
1623 s & BOOST_SERIALIZATION_NVP(p_mask);
1626 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1635 SgAsmRegisterReferenceExpressionPtrList
const&
get_registers()
const;
1637 void set_registers(SgAsmRegisterReferenceExpressionPtrList
const&);
1667 #endif // SgAsmRegisterNames_OTHERS
1668 #ifdef DOCUMENTATION
1670 #endif // DOCUMENTATION
1677 DECLARE_LEAF_CLASS(AsmPowerpcInstruction);
1678 IS_SERIALIZABLE(AsmPowerpcInstruction);
1680 DECLARE_HEADERS(AsmPowerpcInstruction);
1681 #if defined(SgAsmPowerpcInstruction_HEADERS) || defined(DOCUMENTATION)
1682 #include <Rose/BinaryAnalysis/InstructionEnumsPowerpc.h>
1683 #endif // SgAsmPowerpcInstruction_HEADERS
1685 #ifdef DOCUMENTATION
1688 #endif // DOCUMENTATION
1690 #ifndef DOCUMENTATION
1691 AsmPowerpcInstruction.setDataPrototype(
1692 "Rose::BinaryAnalysis::PowerpcInstructionKind",
"kind",
"= Rose::BinaryAnalysis::powerpc_unknown_instruction",
1693 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1694 #endif // !DOCUMENTATION
1696 DECLARE_OTHERS(AsmPowerpcInstruction);
1697 #if defined(SgAsmPowerpcInstruction_OTHERS) || defined(DOCUMENTATION)
1700 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1702 friend class boost::serialization::access;
1705 void serialize(S &s,
const unsigned ) {
1708 s & BOOST_SERIALIZATION_NVP(p_kind);
1711 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1741 virtual bool isUnknown()
const override;
1744 rose_addr_t *target, rose_addr_t *retva)
override;
1746 rose_addr_t *target, rose_addr_t *retva)
override;
1760 std::string
const& mnemonic,
1771 #endif // SgAsmPowerpcInstruction_OTHERS
1772 #ifdef DOCUMENTATION
1774 #endif // DOCUMENTATION
1781 DECLARE_LEAF_CLASS(AsmPEStringSection);
1782 IS_SERIALIZABLE(AsmPEStringSection);
1784 #ifdef DOCUMENTATION
1787 #endif // DOCUMENTATION
1789 #ifndef DOCUMENTATION
1790 AsmPEStringSection.setDataPrototype(
1791 "SgAsmCoffStrtab*",
"strtab",
"= nullptr",
1792 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1793 #endif // !DOCUMENTATION
1795 DECLARE_OTHERS(AsmPEStringSection);
1796 #if defined(SgAsmPEStringSection_OTHERS) || defined(DOCUMENTATION)
1799 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1801 friend class boost::serialization::access;
1804 void serialize(S &s,
const unsigned ) {
1807 s & BOOST_SERIALIZATION_NVP(p_strtab);
1810 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1824 virtual bool reallocate()
override;
1825 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
1826 virtual void set_size(rose_addr_t newsize)
override;
1827 virtual void unparse(std::ostream&)
const override;
1844 #endif // SgAsmPEStringSection_OTHERS
1845 #ifdef DOCUMENTATION
1847 #endif // DOCUMENTATION
1854 DECLARE_LEAF_CLASS(AsmPESectionTable);
1855 IS_SERIALIZABLE(AsmPESectionTable);
1857 #ifdef DOCUMENTATION
1860 #endif // DOCUMENTATION
1862 DECLARE_OTHERS(AsmPESectionTable);
1863 #if defined(SgAsmPESectionTable_OTHERS) || defined(DOCUMENTATION)
1866 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1868 friend class boost::serialization::access;
1871 void serialize(S &s,
const unsigned ) {
1876 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1886 virtual bool reallocate()
override;
1887 virtual void unparse(std::ostream&)
const override;
1888 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
1905 #endif // SgAsmPESectionTable_OTHERS
1906 #ifdef DOCUMENTATION
1908 #endif // DOCUMENTATION
1915 DECLARE_LEAF_CLASS(AsmPESectionTableEntry);
1916 IS_SERIALIZABLE(AsmPESectionTableEntry);
1918 #ifdef DOCUMENTATION
1921 #endif // DOCUMENTATION
1923 #ifndef DOCUMENTATION
1924 AsmPESectionTableEntry.setDataPrototype(
1925 "std::string",
"name",
"",
1926 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1927 #endif // !DOCUMENTATION
1929 #ifndef DOCUMENTATION
1930 AsmPESectionTableEntry.setDataPrototype(
1931 "rose_addr_t",
"virtual_size",
"= 0",
1932 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1933 #endif // !DOCUMENTATION
1935 #ifndef DOCUMENTATION
1936 AsmPESectionTableEntry.setDataPrototype(
1937 "rose_addr_t",
"rva",
"= 0",
1938 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1939 #endif // !DOCUMENTATION
1941 #ifndef DOCUMENTATION
1942 AsmPESectionTableEntry.setDataPrototype(
1943 "rose_addr_t",
"physical_size",
"= 0",
1944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1945 #endif // !DOCUMENTATION
1947 #ifndef DOCUMENTATION
1948 AsmPESectionTableEntry.setDataPrototype(
1949 "rose_addr_t",
"physical_offset",
"= 0",
1950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1951 #endif // !DOCUMENTATION
1953 #ifndef DOCUMENTATION
1954 AsmPESectionTableEntry.setDataPrototype(
1955 "unsigned",
"coff_line_nums",
"= 0",
1956 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1957 #endif // !DOCUMENTATION
1959 #ifndef DOCUMENTATION
1960 AsmPESectionTableEntry.setDataPrototype(
1961 "unsigned",
"n_relocs",
"= 0",
1962 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1963 #endif // !DOCUMENTATION
1965 #ifndef DOCUMENTATION
1966 AsmPESectionTableEntry.setDataPrototype(
1967 "unsigned",
"n_coff_line_nums",
"= 0",
1968 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1969 #endif // !DOCUMENTATION
1971 #ifndef DOCUMENTATION
1972 AsmPESectionTableEntry.setDataPrototype(
1973 "unsigned",
"flags",
"= 0",
1974 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1975 #endif // !DOCUMENTATION
1977 DECLARE_OTHERS(AsmPESectionTableEntry);
1978 #if defined(SgAsmPESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
1981 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1983 friend class boost::serialization::access;
1986 void serialize(S &s,
const unsigned ) {
1989 s & BOOST_SERIALIZATION_NVP(p_name);
1990 s & BOOST_SERIALIZATION_NVP(p_virtual_size);
1991 s & BOOST_SERIALIZATION_NVP(p_rva);
1992 s & BOOST_SERIALIZATION_NVP(p_physical_size);
1993 s & BOOST_SERIALIZATION_NVP(p_physical_offset);
1994 s & BOOST_SERIALIZATION_NVP(p_coff_line_nums);
1995 s & BOOST_SERIALIZATION_NVP(p_n_relocs);
1996 s & BOOST_SERIALIZATION_NVP(p_n_coff_line_nums);
1997 s & BOOST_SERIALIZATION_NVP(p_flags);
2000 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2011 uint32_t virtual_size;
2013 uint32_t physical_size;
2014 uint32_t physical_offset;
2015 uint32_t coff_line_nums;
2017 uint32_t n_coff_line_nums;
2020 #if !defined(SWIG) && !defined(_MSC_VER)
2021 __attribute__((packed))
2030 enum PESectionFlags {
2031 OF_CODE = 0x00000020,
2032 OF_IDATA = 0x00000040,
2033 OF_UDATA = 0x00000080,
2034 OF_INFO = 0x00000200,
2035 OF_REMOVE = 0x00000800,
2036 OF_COMDAT = 0x00001000,
2037 OF_NO_DEFER_SPEC_EXC= 0x00004000,
2039 OF_GPREL = 0x00008000,
2040 OF_ALIGN_1 = 0x00100000,
2041 OF_ALIGN_2 = 0x00200000,
2042 OF_ALIGN_4 = 0x00300000,
2043 OF_ALIGN_8 = 0x00400000,
2044 OF_ALIGN_16 = 0x00500000,
2045 OF_ALIGN_32 = 0x00600000,
2046 OF_ALIGN_64 = 0x00700000,
2047 OF_ALIGN_128 = 0x00800000,
2048 OF_ALIGN_256 = 0x00900000,
2049 OF_ALIGN_512 = 0x00a00000,
2050 OF_ALIGN_1k = 0x00b00000,
2051 OF_ALIGN_2k = 0x00c00000,
2052 OF_ALIGN_4k = 0x00d00000,
2053 OF_ALIGN_8k = 0x00e00000,
2054 OF_ALIGN_MASK = 0x00f00000,
2055 OF_NRELOC_OVFL = 0x01000000,
2056 OF_DISCARDABLE = 0x02000000,
2057 OF_NO_CACHE = 0x04000000,
2058 OF_NO_PAGING = 0x08000000,
2059 OF_SHARED = 0x10000000,
2060 OF_EXECUTABLE = 0x20000000,
2061 OF_READABLE = 0x40000000,
2062 OF_WRITABLE = 0x80000000
2074 std::string
const&
get_name()
const;
2094 rose_addr_t
const&
get_rva()
const;
2095 void set_rva(rose_addr_t
const&);
2166 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const;
2183 #endif // SgAsmPESectionTableEntry_OTHERS
2184 #ifdef DOCUMENTATION
2186 #endif // DOCUMENTATION
2193 DECLARE_LEAF_CLASS(AsmPERVASizePairList);
2194 IS_SERIALIZABLE(AsmPERVASizePairList);
2196 #ifdef DOCUMENTATION
2202 #endif // DOCUMENTATION
2204 #ifndef DOCUMENTATION
2205 AsmPERVASizePairList.setDataPrototype(
2206 "SgAsmPERVASizePairPtrList",
"pairs",
"",
2207 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2208 #endif // !DOCUMENTATION
2210 DECLARE_OTHERS(AsmPERVASizePairList);
2211 #if defined(SgAsmPERVASizePairList_OTHERS) || defined(DOCUMENTATION)
2214 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2216 friend class boost::serialization::access;
2219 void serialize(S &s,
const unsigned ) {
2222 s & BOOST_SERIALIZATION_NVP(p_pairs);
2225 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2231 SgAsmPERVASizePairPtrList
const&
get_pairs()
const;
2233 void set_pairs(SgAsmPERVASizePairPtrList
const&);
2253 #endif // SgAsmPERVASizePairList_OTHERS
2254 #ifdef DOCUMENTATION
2256 #endif // DOCUMENTATION
2263 DECLARE_LEAF_CLASS(AsmPERVASizePair);
2264 IS_SERIALIZABLE(AsmPERVASizePair);
2266 #ifdef DOCUMENTATION
2269 #endif // DOCUMENTATION
2271 #ifndef DOCUMENTATION
2272 AsmPERVASizePair.setDataPrototype(
2273 "rose_rva_t",
"e_rva",
"= 0",
2274 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2275 #endif // !DOCUMENTATION
2277 #ifndef DOCUMENTATION
2278 AsmPERVASizePair.setDataPrototype(
2279 "rose_addr_t",
"e_size",
"= 0",
2280 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2281 #endif // !DOCUMENTATION
2283 #ifndef DOCUMENTATION
2284 AsmPERVASizePair.setDataPrototype(
2285 "SgAsmGenericSection*",
"section",
"= nullptr",
2286 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2287 #endif // !DOCUMENTATION
2289 DECLARE_OTHERS(AsmPERVASizePair);
2290 #if defined(SgAsmPERVASizePair_OTHERS) || defined(DOCUMENTATION)
2293 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2295 friend class boost::serialization::access;
2298 void serialize(S &s,
const unsigned ) {
2301 s & BOOST_SERIALIZATION_NVP(p_e_rva);
2302 s & BOOST_SERIALIZATION_NVP(p_e_size);
2303 s & BOOST_SERIALIZATION_NVP(p_section);
2306 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2321 #if !defined(SWIG) && !defined(_MSC_VER)
2322 __attribute__((packed))
2395 #endif // SgAsmPERVASizePair_OTHERS
2396 #ifdef DOCUMENTATION
2398 #endif // DOCUMENTATION
2405 DECLARE_LEAF_CLASS(AsmPEImportSection);
2406 IS_SERIALIZABLE(AsmPEImportSection);
2408 #ifdef DOCUMENTATION
2552 #endif // DOCUMENTATION
2554 #ifndef DOCUMENTATION
2555 AsmPEImportSection.setDataPrototype(
2556 "SgAsmPEImportDirectoryList*",
"import_directories",
"= createAndParent<SgAsmPEImportDirectoryList>(this)",
2557 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2558 #endif // !DOCUMENTATION
2560 DECLARE_OTHERS(AsmPEImportSection);
2561 #if defined(SgAsmPEImportSection_OTHERS) || defined(DOCUMENTATION)
2564 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2566 friend class boost::serialization::access;
2569 void serialize(S &s,
const unsigned ) {
2572 s & BOOST_SERIALIZATION_NVP(p_import_directories);
2575 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2589 virtual bool reallocate()
override;
2590 virtual void unparse(std::ostream&)
const override;
2591 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
2598 static bool show_import_mesg();
2599 static void import_mesg_reset() { mesg_nprinted=0; }
2611 static size_t mesg_nprinted;
2628 #endif // SgAsmPEImportSection_OTHERS
2629 #ifdef DOCUMENTATION
2631 #endif // DOCUMENTATION
2638 DECLARE_LEAF_CLASS(AsmPEImportItemList);
2639 IS_SERIALIZABLE(AsmPEImportItemList);
2641 #ifdef DOCUMENTATION
2647 #endif // DOCUMENTATION
2649 #ifndef DOCUMENTATION
2650 AsmPEImportItemList.setDataPrototype(
2651 "SgAsmPEImportItemPtrList",
"vector",
"",
2652 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2653 #endif // !DOCUMENTATION
2655 DECLARE_OTHERS(AsmPEImportItemList);
2656 #if defined(SgAsmPEImportItemList_OTHERS) || defined(DOCUMENTATION)
2659 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2661 friend class boost::serialization::access;
2664 void serialize(S &s,
const unsigned ) {
2667 s & BOOST_SERIALIZATION_NVP(p_vector);
2670 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2676 SgAsmPEImportItemPtrList
const&
get_vector()
const;
2678 void set_vector(SgAsmPEImportItemPtrList
const&);
2697 #endif // SgAsmPEImportItemList_OTHERS
2698 #ifdef DOCUMENTATION
2700 #endif // DOCUMENTATION
2707 DECLARE_LEAF_CLASS(AsmPEImportItem);
2708 IS_SERIALIZABLE(AsmPEImportItem);
2710 #ifdef DOCUMENTATION
2719 #endif // DOCUMENTATION
2721 #ifndef DOCUMENTATION
2722 AsmPEImportItem.setDataPrototype(
2723 "bool",
"by_ordinal",
"= true",
2724 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2725 #endif // !DOCUMENTATION
2727 #ifndef DOCUMENTATION
2728 AsmPEImportItem.setDataPrototype(
2729 "unsigned",
"ordinal",
"= 0",
2730 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2731 #endif // !DOCUMENTATION
2733 #ifndef DOCUMENTATION
2734 AsmPEImportItem.setDataPrototype(
2735 "unsigned",
"hint",
"= 0",
2736 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2737 #endif // !DOCUMENTATION
2739 #ifndef DOCUMENTATION
2740 AsmPEImportItem.setDataPrototype(
2741 "SgAsmGenericString*",
"name",
"= createAndParent<SgAsmBasicString>(this)",
2742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2743 #endif // !DOCUMENTATION
2745 #ifndef DOCUMENTATION
2746 AsmPEImportItem.setDataPrototype(
2747 "rose_rva_t",
"hintname_rva",
"= 0",
2748 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2749 #endif // !DOCUMENTATION
2751 #ifndef DOCUMENTATION
2752 AsmPEImportItem.setDataPrototype(
2753 "size_t",
"hintname_nalloc",
"= 0",
2754 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2755 #endif // !DOCUMENTATION
2757 #ifndef DOCUMENTATION
2758 AsmPEImportItem.setDataPrototype(
2759 "rose_rva_t",
"bound_rva",
"= 0",
2760 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2761 #endif // !DOCUMENTATION
2763 #ifndef DOCUMENTATION
2764 AsmPEImportItem.setDataPrototype(
2765 "bool",
"iat_written",
"= false",
2766 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2767 #endif // !DOCUMENTATION
2769 DECLARE_OTHERS(AsmPEImportItem);
2770 #if defined(SgAsmPEImportItem_OTHERS) || defined(DOCUMENTATION)
2773 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2775 friend class boost::serialization::access;
2778 void serialize(S &s,
const unsigned ) {
2781 s & BOOST_SERIALIZATION_NVP(p_by_ordinal);
2782 s & BOOST_SERIALIZATION_NVP(p_ordinal);
2783 s & BOOST_SERIALIZATION_NVP(p_hint);
2784 s & BOOST_SERIALIZATION_NVP(p_name);
2785 s & BOOST_SERIALIZATION_NVP(p_hintname_rva);
2786 s & BOOST_SERIALIZATION_NVP(p_hintname_nalloc);
2787 s & BOOST_SERIALIZATION_NVP(p_bound_rva);
2788 s & BOOST_SERIALIZATION_NVP(p_iat_written);
2791 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2880 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const;
2913 #endif // SgAsmPEImportItem_OTHERS
2914 #ifdef DOCUMENTATION
2916 #endif // DOCUMENTATION
2923 DECLARE_LEAF_CLASS(AsmPEImportDirectoryList);
2924 IS_SERIALIZABLE(AsmPEImportDirectoryList);
2926 #ifdef DOCUMENTATION
2932 #endif // DOCUMENTATION
2934 #ifndef DOCUMENTATION
2935 AsmPEImportDirectoryList.setDataPrototype(
2936 "SgAsmPEImportDirectoryPtrList",
"vector",
"",
2937 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2938 #endif // !DOCUMENTATION
2940 DECLARE_OTHERS(AsmPEImportDirectoryList);
2941 #if defined(SgAsmPEImportDirectoryList_OTHERS) || defined(DOCUMENTATION)
2944 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2946 friend class boost::serialization::access;
2949 void serialize(S &s,
const unsigned ) {
2952 s & BOOST_SERIALIZATION_NVP(p_vector);
2955 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2963 SgAsmPEImportDirectoryPtrList
const&
get_vector()
const;
2965 void set_vector(SgAsmPEImportDirectoryPtrList
const&);
2984 #endif // SgAsmPEImportDirectoryList_OTHERS
2985 #ifdef DOCUMENTATION
2987 #endif // DOCUMENTATION
2994 DECLARE_LEAF_CLASS(AsmPEImportDirectory);
2995 IS_SERIALIZABLE(AsmPEImportDirectory);
2997 #ifdef DOCUMENTATION
3003 #endif // DOCUMENTATION
3005 #ifndef DOCUMENTATION
3006 AsmPEImportDirectory.setDataPrototype(
3007 "SgAsmGenericString*",
"dll_name",
"= 0",
3008 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3009 #endif // !DOCUMENTATION
3011 #ifndef DOCUMENTATION
3012 AsmPEImportDirectory.setDataPrototype(
3013 "rose_rva_t",
"dll_name_rva",
"= 0",
3014 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3015 #endif // !DOCUMENTATION
3017 #ifndef DOCUMENTATION
3018 AsmPEImportDirectory.setDataPrototype(
3019 "size_t",
"dll_name_nalloc",
"= 0",
3020 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3021 #endif // !DOCUMENTATION
3023 #ifndef DOCUMENTATION
3024 AsmPEImportDirectory.setDataPrototype(
3025 "time_t",
"time",
"= 0",
3026 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3027 #endif // !DOCUMENTATION
3029 #ifndef DOCUMENTATION
3030 AsmPEImportDirectory.setDataPrototype(
3031 "unsigned",
"forwarder_chain",
"= 0",
3032 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3033 #endif // !DOCUMENTATION
3035 #ifndef DOCUMENTATION
3036 AsmPEImportDirectory.setDataPrototype(
3037 "rose_rva_t",
"ilt_rva",
"= 0",
3038 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3039 #endif // !DOCUMENTATION
3041 #ifndef DOCUMENTATION
3042 AsmPEImportDirectory.setDataPrototype(
3043 "size_t",
"ilt_nalloc",
"= 0",
3044 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3045 #endif // !DOCUMENTATION
3047 #ifndef DOCUMENTATION
3048 AsmPEImportDirectory.setDataPrototype(
3049 "rose_rva_t",
"iat_rva",
"= 0",
3050 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3051 #endif // !DOCUMENTATION
3053 #ifndef DOCUMENTATION
3054 AsmPEImportDirectory.setDataPrototype(
3055 "size_t",
"iat_nalloc",
"= 0",
3056 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3057 #endif // !DOCUMENTATION
3059 #ifndef DOCUMENTATION
3060 AsmPEImportDirectory.setDataPrototype(
3061 "SgAsmPEImportItemList*",
"imports",
"= createAndParent<SgAsmPEImportItemList>(this)",
3062 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3063 #endif // !DOCUMENTATION
3065 DECLARE_OTHERS(AsmPEImportDirectory);
3066 #if defined(SgAsmPEImportDirectory_OTHERS) || defined(DOCUMENTATION)
3069 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
3071 friend class boost::serialization::access;
3074 void serialize(S &s,
const unsigned ) {
3077 s & BOOST_SERIALIZATION_NVP(p_dll_name);
3078 s & BOOST_SERIALIZATION_NVP(p_dll_name_rva);
3079 s & BOOST_SERIALIZATION_NVP(p_dll_name_nalloc);
3080 s & BOOST_SERIALIZATION_NVP(p_time);
3081 s & BOOST_SERIALIZATION_NVP(p_forwarder_chain);
3082 s & BOOST_SERIALIZATION_NVP(p_ilt_rva);
3083 s & BOOST_SERIALIZATION_NVP(p_ilt_nalloc);
3084 s & BOOST_SERIALIZATION_NVP(p_iat_rva);
3085 s & BOOST_SERIALIZATION_NVP(p_iat_nalloc);
3086 s & BOOST_SERIALIZATION_NVP(p_imports);
3089 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
3100 uint32_t forwarder_chain;
3101 uint32_t dll_name_rva;
3104 #if !defined(SWIG) && !defined(_MSC_VER)
3105 __attribute__((packed))
3242 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const;
3271 void parse_ilt_iat(
const rose_rva_t &table_start,
bool assume_bound);
3272 void unparse_ilt_iat(std::ostream&,
const rose_rva_t &table_start,
bool assume_bound,
size_t nalloc)
const;
3289 #endif // SgAsmPEImportDirectory_OTHERS
3290 #ifdef DOCUMENTATION
3292 #endif // DOCUMENTATION
3299 DECLARE_LEAF_CLASS(AsmPEFileHeader);
3300 IS_SERIALIZABLE(AsmPEFileHeader);
3302 #ifdef DOCUMENTATION
3307 #endif // DOCUMENTATION
3309 #ifndef DOCUMENTATION
3310 AsmPEFileHeader.setDataPrototype(
3311 "unsigned",
"e_cpu_type",
"= 0",
3312 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3313 #endif // !DOCUMENTATION
3315 #ifndef DOCUMENTATION
3316 AsmPEFileHeader.setDataPrototype(
3317 "unsigned",
"e_nsections",
"= 0",
3318 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3319 #endif // !DOCUMENTATION
3321 #ifndef DOCUMENTATION
3322 AsmPEFileHeader.setDataPrototype(
3323 "unsigned",
"e_time",
"= 0",
3324 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3325 #endif // !DOCUMENTATION
3327 #ifndef DOCUMENTATION
3328 AsmPEFileHeader.setDataPrototype(
3329 "rose_addr_t",
"e_coff_symtab",
"= 0",
3330 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3331 #endif // !DOCUMENTATION
3333 #ifndef DOCUMENTATION
3334 AsmPEFileHeader.setDataPrototype(
3335 "rose_addr_t",
"e_nt_hdr_size",
"= 0",
3336 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3337 #endif // !DOCUMENTATION
3339 #ifndef DOCUMENTATION
3340 AsmPEFileHeader.setDataPrototype(
3341 "unsigned",
"e_coff_nsyms",
"= 0",
3342 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3343 #endif // !DOCUMENTATION
3345 #ifndef DOCUMENTATION
3346 AsmPEFileHeader.setDataPrototype(
3347 "unsigned",
"e_flags",
"= 0",
3348 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3349 #endif // !DOCUMENTATION
3351 #ifndef DOCUMENTATION
3352 AsmPEFileHeader.setDataPrototype(
3353 "unsigned",
"e_opt_magic",
"= 0",
3354 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3355 #endif // !DOCUMENTATION
3357 #ifndef DOCUMENTATION
3358 AsmPEFileHeader.setDataPrototype(
3359 "unsigned",
"e_lmajor",
"= 0",
3360 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3361 #endif // !DOCUMENTATION
3363 #ifndef DOCUMENTATION
3364 AsmPEFileHeader.setDataPrototype(
3365 "unsigned",
"e_lminor",
"= 0",
3366 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3367 #endif // !DOCUMENTATION
3369 #ifndef DOCUMENTATION
3370 AsmPEFileHeader.setDataPrototype(
3371 "unsigned",
"e_code_size",
"= 0",
3372 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3373 #endif // !DOCUMENTATION
3375 #ifndef DOCUMENTATION
3376 AsmPEFileHeader.setDataPrototype(
3377 "unsigned",
"e_data_size",
"= 0",
3378 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3379 #endif // !DOCUMENTATION
3381 #ifndef DOCUMENTATION
3382 AsmPEFileHeader.setDataPrototype(
3383 "unsigned",
"e_bss_size",
"= 0",
3384 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3385 #endif // !DOCUMENTATION
3387 #ifndef DOCUMENTATION
3388 AsmPEFileHeader.setDataPrototype(
3389 "rose_rva_t",
"e_code_rva",
"= 0",
3390 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3391 #endif // !DOCUMENTATION
3393 #ifndef DOCUMENTATION
3394 AsmPEFileHeader.setDataPrototype(
3395 "rose_rva_t",
"e_data_rva",
"= 0",
3396 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3397 #endif // !DOCUMENTATION
3399 #ifndef DOCUMENTATION
3400 AsmPEFileHeader.setDataPrototype(
3401 "unsigned",
"e_section_align",
"= 0",
3402 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3403 #endif // !DOCUMENTATION
3405 #ifndef DOCUMENTATION
3406 AsmPEFileHeader.setDataPrototype(
3407 "unsigned",
"e_file_align",
"= 0",
3408 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3409 #endif // !DOCUMENTATION
3411 #ifndef DOCUMENTATION
3412 AsmPEFileHeader.setDataPrototype(
3413 "unsigned",
"e_os_major",
"= 0",
3414 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3415 #endif // !DOCUMENTATION
3417 #ifndef DOCUMENTATION
3418 AsmPEFileHeader.setDataPrototype(
3419 "unsigned",
"e_os_minor",
"= 0",
3420 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3421 #endif // !DOCUMENTATION
3423 #ifndef DOCUMENTATION
3424 AsmPEFileHeader.setDataPrototype(
3425 "unsigned",
"e_user_major",
"= 0",
3426 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3427 #endif // !DOCUMENTATION
3429 #ifndef DOCUMENTATION
3430 AsmPEFileHeader.setDataPrototype(
3431 "unsigned",
"e_user_minor",
"= 0",
3432 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3433 #endif // !DOCUMENTATION
3435 #ifndef DOCUMENTATION
3436 AsmPEFileHeader.setDataPrototype(
3437 "unsigned",
"e_subsys_major",
"= 0",
3438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3439 #endif // !DOCUMENTATION
3441 #ifndef DOCUMENTATION
3442 AsmPEFileHeader.setDataPrototype(
3443 "unsigned",
"e_subsys_minor",
"= 0",
3444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3445 #endif // !DOCUMENTATION
3447 #ifndef DOCUMENTATION
3448 AsmPEFileHeader.setDataPrototype(
3449 "unsigned",
"e_reserved9",
"= 0",
3450 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3451 #endif // !DOCUMENTATION
3453 #ifndef DOCUMENTATION
3454 AsmPEFileHeader.setDataPrototype(
3455 "unsigned",
"e_image_size",
"= 0",
3456 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3457 #endif // !DOCUMENTATION
3459 #ifndef DOCUMENTATION
3460 AsmPEFileHeader.setDataPrototype(
3461 "unsigned",
"e_header_size",
"= 0",
3462 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3463 #endif // !DOCUMENTATION
3465 #ifndef DOCUMENTATION
3466 AsmPEFileHeader.setDataPrototype(
3467 "unsigned",
"e_file_checksum",
"= 0",
3468 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3469 #endif // !DOCUMENTATION
3471 #ifndef DOCUMENTATION
3472 AsmPEFileHeader.setDataPrototype(
3473 "unsigned",
"e_subsystem",
"= 0",
3474 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3475 #endif // !DOCUMENTATION
3477 #ifndef DOCUMENTATION
3478 AsmPEFileHeader.setDataPrototype(
3479 "unsigned",
"e_dll_flags",
"= 0",
3480 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3481 #endif // !DOCUMENTATION
3483 #ifndef DOCUMENTATION
3484 AsmPEFileHeader.setDataPrototype(
3485 "unsigned",
"e_stack_reserve_size",
"= 0",
3486 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3487 #endif // !DOCUMENTATION
3489 #ifndef DOCUMENTATION
3490 AsmPEFileHeader.setDataPrototype(
3491 "unsigned",
"e_stack_commit_size",
"= 0",
3492 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3493 #endif // !DOCUMENTATION
3495 #ifndef DOCUMENTATION
3496 AsmPEFileHeader.setDataPrototype(
3497 "unsigned",
"e_heap_reserve_size",
"= 0",
3498 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3499 #endif // !DOCUMENTATION
3501 #ifndef DOCUMENTATION
3502 AsmPEFileHeader.setDataPrototype(
3503 "unsigned",
"e_heap_commit_size",
"= 0",
3504 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3505 #endif // !DOCUMENTATION
3507 #ifndef DOCUMENTATION
3508 AsmPEFileHeader.setDataPrototype(
3509 "unsigned",
"e_loader_flags",
"= 0",
3510 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3511 #endif // !DOCUMENTATION
3513 #ifndef DOCUMENTATION
3514 AsmPEFileHeader.setDataPrototype(
3515 "unsigned",
"e_num_rvasize_pairs",
"= 0",
3516 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3517 #endif // !DOCUMENTATION
3519 #ifndef DOCUMENTATION
3520 AsmPEFileHeader.setDataPrototype(
3521 "SgAsmPERVASizePairList*",
"rvasize_pairs",
"= nullptr",
3522 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3523 #endif // !DOCUMENTATION
3525 #ifndef DOCUMENTATION
3526 AsmPEFileHeader.setDataPrototype(
3527 "SgAsmPESectionTable*",
"section_table",
"= NULL",
3528 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3529 #endif // !DOCUMENTATION
3531 #ifndef DOCUMENTATION
3532 AsmPEFileHeader.setDataPrototype(
3533 "SgAsmCoffSymbolTable*",
"coff_symtab",
"= NULL",
3534 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3535 #endif // !DOCUMENTATION
3537 DECLARE_OTHERS(AsmPEFileHeader);
3538 #if defined(SgAsmPEFileHeader_OTHERS) || defined(DOCUMENTATION)
3541 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
3543 friend class boost::serialization::access;
3546 void serialize(S &s,
const unsigned ) {
3549 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
3550 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
3551 s & BOOST_SERIALIZATION_NVP(p_e_time);
3552 s & BOOST_SERIALIZATION_NVP(p_e_coff_symtab);
3553 s & BOOST_SERIALIZATION_NVP(p_e_nt_hdr_size);
3554 s & BOOST_SERIALIZATION_NVP(p_e_coff_nsyms);
3555 s & BOOST_SERIALIZATION_NVP(p_e_flags);
3556 s & BOOST_SERIALIZATION_NVP(p_e_opt_magic);
3557 s & BOOST_SERIALIZATION_NVP(p_e_lmajor);
3558 s & BOOST_SERIALIZATION_NVP(p_e_lminor);
3559 s & BOOST_SERIALIZATION_NVP(p_e_code_size);
3560 s & BOOST_SERIALIZATION_NVP(p_e_data_size);
3561 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
3562 s & BOOST_SERIALIZATION_NVP(p_e_code_rva);
3563 s & BOOST_SERIALIZATION_NVP(p_e_data_rva);
3564 s & BOOST_SERIALIZATION_NVP(p_e_section_align);
3565 s & BOOST_SERIALIZATION_NVP(p_e_file_align);
3566 s & BOOST_SERIALIZATION_NVP(p_e_os_major);
3567 s & BOOST_SERIALIZATION_NVP(p_e_os_minor);
3568 s & BOOST_SERIALIZATION_NVP(p_e_user_major);
3569 s & BOOST_SERIALIZATION_NVP(p_e_user_minor);
3570 s & BOOST_SERIALIZATION_NVP(p_e_subsys_major);
3571 s & BOOST_SERIALIZATION_NVP(p_e_subsys_minor);
3572 s & BOOST_SERIALIZATION_NVP(p_e_reserved9);
3573 s & BOOST_SERIALIZATION_NVP(p_e_image_size);
3574 s & BOOST_SERIALIZATION_NVP(p_e_header_size);
3575 s & BOOST_SERIALIZATION_NVP(p_e_file_checksum);
3576 s & BOOST_SERIALIZATION_NVP(p_e_subsystem);
3577 s & BOOST_SERIALIZATION_NVP(p_e_dll_flags);
3578 s & BOOST_SERIALIZATION_NVP(p_e_stack_reserve_size);
3579 s & BOOST_SERIALIZATION_NVP(p_e_stack_commit_size);
3580 s & BOOST_SERIALIZATION_NVP(p_e_heap_reserve_size);
3581 s & BOOST_SERIALIZATION_NVP(p_e_heap_commit_size);
3582 s & BOOST_SERIALIZATION_NVP(p_e_loader_flags);
3583 s & BOOST_SERIALIZATION_NVP(p_e_num_rvasize_pairs);
3584 s & BOOST_SERIALIZATION_NVP(p_rvasize_pairs);
3585 s & BOOST_SERIALIZATION_NVP(p_section_table);
3586 s & BOOST_SERIALIZATION_NVP(p_coff_symtab);
3589 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
3599 unsigned char e_magic[4];
3600 uint16_t e_cpu_type;
3601 uint16_t e_nsections;
3603 uint32_t e_coff_symtab;
3604 uint32_t e_coff_nsyms;
3605 uint16_t e_nt_hdr_size;
3608 #if !defined(SWIG) && !defined(_MSC_VER)
3609 __attribute__((packed))
3614 uint16_t e_opt_magic;
3617 uint16_t e_code_size;
3618 uint32_t e_data_size;
3619 uint32_t e_bss_size;
3620 uint32_t e_entrypoint_rva;
3621 uint32_t e_code_rva;
3622 uint32_t e_data_rva;
3623 uint32_t e_image_base;
3624 uint32_t e_section_align;
3625 uint32_t e_file_align;
3626 uint16_t e_os_major;
3627 uint16_t e_os_minor;
3628 uint16_t e_user_major;
3629 uint16_t e_user_minor;
3630 uint16_t e_subsys_major;
3631 uint16_t e_subsys_minor;
3632 uint32_t e_reserved9;
3633 uint32_t e_image_size;
3634 uint32_t e_header_size;
3635 uint32_t e_file_checksum;
3636 uint16_t e_subsystem;
3637 uint16_t e_dll_flags;
3638 uint32_t e_stack_reserve_size;
3639 uint32_t e_stack_commit_size;
3640 uint32_t e_heap_reserve_size;
3641 uint32_t e_heap_commit_size;
3642 uint32_t e_loader_flags;
3643 uint32_t e_num_rvasize_pairs;
3645 #if !defined(SWIG) && !defined(_MSC_VER)
3646 __attribute__((packed))
3651 uint16_t e_opt_magic;
3654 uint16_t e_code_size;
3655 uint32_t e_data_size;
3656 uint32_t e_bss_size;
3657 uint32_t e_entrypoint_rva;
3658 uint32_t e_code_rva;
3660 uint64_t e_image_base;
3661 uint32_t e_section_align;
3662 uint32_t e_file_align;
3663 uint16_t e_os_major;
3664 uint16_t e_os_minor;
3665 uint16_t e_user_major;
3666 uint16_t e_user_minor;
3667 uint16_t e_subsys_major;
3668 uint16_t e_subsys_minor;
3669 uint32_t e_reserved9;
3670 uint32_t e_image_size;
3671 uint32_t e_header_size;
3672 uint32_t e_file_checksum;
3673 uint16_t e_subsystem;
3674 uint16_t e_dll_flags;
3675 uint64_t e_stack_reserve_size;
3676 uint64_t e_stack_commit_size;
3677 uint64_t e_heap_reserve_size;
3678 uint64_t e_heap_commit_size;
3679 uint32_t e_loader_flags;
3680 uint32_t e_num_rvasize_pairs;
3682 #if !defined(SWIG) && !defined(_MSC_VER)
3683 __attribute__((packed))
3692 HF_PROGRAM = 0x0000,
3693 HF_EXECUTABLE = 0x0002,
3695 HF_LIBRARY = 0x2000,
3696 HF_RESERVED_MASK = 0xddfd
3701 HF_SPEC_UNKNOWN = 0x0000,
3704 HF_WINCHAR = 0x0003,
3705 HF_OS2CHAR = 0x0005,
3711 DLL_PROC_INIT = 0x0001,
3712 DLL_PROC_TERM = 0x0002,
3713 DLL_THRD_INIT = 0x0004,
3714 DLL_THRD_TERM = 0x0008,
3715 DLL_RESERVED_MASK = 0xfff0
3723 PAIR_EXCEPTIONS = 3,
3724 PAIR_CERTIFICATES = 4,
3725 PAIR_BASERELOCS = 5,
3727 PAIR_ARCHITECTURE = 7,
3730 PAIR_LOADCONFIG = 10,
3731 PAIR_BOUNDIMPORT = 11,
3733 PAIR_DELAYIMPORT = 13,
3734 PAIR_CLRRUNTIME = 14,
3735 PAIR_RESERVED15 = 15
4149 void add_rvasize_pairs();
4153 virtual void unparse(std::ostream&)
const override;
4154 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
4155 void create_table_sections();
4182 #endif // SgAsmPEFileHeader_OTHERS
4183 #ifdef DOCUMENTATION
4185 #endif // DOCUMENTATION
4192 DECLARE_LEAF_CLASS(AsmPEExportSection);
4193 IS_SERIALIZABLE(AsmPEExportSection);
4195 #ifdef DOCUMENTATION
4198 #endif // DOCUMENTATION
4200 #ifndef DOCUMENTATION
4201 AsmPEExportSection.setDataPrototype(
4202 "SgAsmPEExportDirectory*",
"export_dir",
"= nullptr",
4203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4204 #endif // !DOCUMENTATION
4206 #ifndef DOCUMENTATION
4207 AsmPEExportSection.setDataPrototype(
4208 "SgAsmPEExportEntryList*",
"exports",
"= createAndParent<SgAsmPEExportEntryList>(this)",
4209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4210 #endif // !DOCUMENTATION
4212 DECLARE_OTHERS(AsmPEExportSection);
4213 #if defined(SgAsmPEExportSection_OTHERS) || defined(DOCUMENTATION)
4216 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4218 friend class boost::serialization::access;
4221 void serialize(S &s,
const unsigned ) {
4224 s & BOOST_SERIALIZATION_NVP(p_export_dir);
4225 s & BOOST_SERIALIZATION_NVP(p_exports);
4228 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4269 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
4287 #endif // SgAsmPEExportSection_OTHERS
4288 #ifdef DOCUMENTATION
4290 #endif // DOCUMENTATION
4297 #ifndef DOCUMENTATION
4298 AstNodeClass& AsmPESection = nonTerminalConstructor(
4303 SubclassListBuilder()
4304 | AsmPEExportSection
4305 | AsmPEImportSection
4306 | AsmPEStringSection
4308 assert(AsmPESection.associatedGrammar !=
nullptr);
4309 AsmPESection.setCppCondition(
"!defined(DOCUMENTATION)");
4310 AsmPESection.isBoostSerializable(
true);
4311 AsmPESection.setAutomaticGenerationOfConstructor(
false);
4312 AsmPESection.setAutomaticGenerationOfDestructor(
false);
4313 #endif // !DOCUMENTATION
4315 #ifdef DOCUMENTATION
4318 #endif // DOCUMENTATION
4320 #ifndef DOCUMENTATION
4321 AsmPESection.setDataPrototype(
4322 "SgAsmPESectionTableEntry*",
"section_entry",
"= nullptr",
4323 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4324 #endif // !DOCUMENTATION
4326 DECLARE_OTHERS(AsmPESection);
4327 #if defined(SgAsmPESection_OTHERS) || defined(DOCUMENTATION)
4330 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4332 friend class boost::serialization::access;
4335 void serialize(S &s,
const unsigned ) {
4338 s & BOOST_SERIALIZATION_NVP(p_section_entry);
4341 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4361 virtual bool reallocate()
override;
4362 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
4379 #endif // SgAsmPESection_OTHERS
4380 #ifdef DOCUMENTATION
4382 #endif // DOCUMENTATION
4389 DECLARE_LEAF_CLASS(AsmPEExportEntryList);
4390 IS_SERIALIZABLE(AsmPEExportEntryList);
4392 #ifdef DOCUMENTATION
4398 #endif // DOCUMENTATION
4400 #ifndef DOCUMENTATION
4401 AsmPEExportEntryList.setDataPrototype(
4402 "SgAsmPEExportEntryPtrList",
"exports",
"",
4403 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4404 #endif // !DOCUMENTATION
4406 DECLARE_OTHERS(AsmPEExportEntryList);
4407 #if defined(SgAsmPEExportEntryList_OTHERS) || defined(DOCUMENTATION)
4410 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4412 friend class boost::serialization::access;
4415 void serialize(S &s,
const unsigned ) {
4418 s & BOOST_SERIALIZATION_NVP(p_exports);
4421 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4427 SgAsmPEExportEntryPtrList
const&
get_exports()
const;
4429 void set_exports(SgAsmPEExportEntryPtrList
const&);
4448 #endif // SgAsmPEExportEntryList_OTHERS
4449 #ifdef DOCUMENTATION
4451 #endif // DOCUMENTATION
4458 DECLARE_LEAF_CLASS(AsmPEExportEntry);
4459 IS_SERIALIZABLE(AsmPEExportEntry);
4461 #ifdef DOCUMENTATION
4464 #endif // DOCUMENTATION
4466 #ifndef DOCUMENTATION
4467 AsmPEExportEntry.setDataPrototype(
4468 "SgAsmGenericString*",
"name",
"= nullptr",
4469 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4470 #endif // !DOCUMENTATION
4472 #ifndef DOCUMENTATION
4473 AsmPEExportEntry.setDataPrototype(
4474 "unsigned",
"ordinal",
"= 0",
4475 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4476 #endif // !DOCUMENTATION
4478 #ifndef DOCUMENTATION
4479 AsmPEExportEntry.setDataPrototype(
4480 "rose_rva_t",
"export_rva",
"= 0",
4481 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4482 #endif // !DOCUMENTATION
4484 #ifndef DOCUMENTATION
4485 AsmPEExportEntry.setDataPrototype(
4486 "SgAsmGenericString*",
"forwarder",
"= nullptr",
4487 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4488 #endif // !DOCUMENTATION
4490 DECLARE_OTHERS(AsmPEExportEntry);
4491 #if defined(SgAsmPEExportEntry_OTHERS) || defined(DOCUMENTATION)
4494 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4496 friend class boost::serialization::access;
4499 void serialize(S &s,
const unsigned ) {
4502 s & BOOST_SERIALIZATION_NVP(p_name);
4503 s & BOOST_SERIALIZATION_NVP(p_ordinal);
4504 s & BOOST_SERIALIZATION_NVP(p_export_rva);
4505 s & BOOST_SERIALIZATION_NVP(p_forwarder);
4508 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4552 void dump(FILE *f,
const char *prefix,ssize_t idx)
const;
4577 #endif // SgAsmPEExportEntry_OTHERS
4578 #ifdef DOCUMENTATION
4580 #endif // DOCUMENTATION
4587 DECLARE_LEAF_CLASS(AsmPEExportDirectory);
4588 IS_SERIALIZABLE(AsmPEExportDirectory);
4590 #ifdef DOCUMENTATION
4593 #endif // DOCUMENTATION
4595 #ifndef DOCUMENTATION
4596 AsmPEExportDirectory.setDataPrototype(
4597 "unsigned",
"res1",
"= 0",
4598 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4599 #endif // !DOCUMENTATION
4601 #ifndef DOCUMENTATION
4602 AsmPEExportDirectory.setDataPrototype(
4603 "time_t",
"timestamp",
"= 0",
4604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4605 #endif // !DOCUMENTATION
4607 #ifndef DOCUMENTATION
4608 AsmPEExportDirectory.setDataPrototype(
4609 "unsigned",
"vmajor",
"= 0",
4610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4611 #endif // !DOCUMENTATION
4613 #ifndef DOCUMENTATION
4614 AsmPEExportDirectory.setDataPrototype(
4615 "unsigned",
"vminor",
"= 0",
4616 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4617 #endif // !DOCUMENTATION
4619 #ifndef DOCUMENTATION
4620 AsmPEExportDirectory.setDataPrototype(
4621 "rose_rva_t",
"name_rva",
"= 0",
4622 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4623 #endif // !DOCUMENTATION
4625 #ifndef DOCUMENTATION
4626 AsmPEExportDirectory.setDataPrototype(
4627 "unsigned",
"ord_base",
"= 0",
4628 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4629 #endif // !DOCUMENTATION
4631 #ifndef DOCUMENTATION
4632 AsmPEExportDirectory.setDataPrototype(
4633 "size_t",
"expaddr_n",
"= 0",
4634 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4635 #endif // !DOCUMENTATION
4637 #ifndef DOCUMENTATION
4638 AsmPEExportDirectory.setDataPrototype(
4639 "size_t",
"nameptr_n",
"= 0",
4640 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4641 #endif // !DOCUMENTATION
4643 #ifndef DOCUMENTATION
4644 AsmPEExportDirectory.setDataPrototype(
4645 "rose_rva_t",
"expaddr_rva",
"= 0",
4646 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4647 #endif // !DOCUMENTATION
4649 #ifndef DOCUMENTATION
4650 AsmPEExportDirectory.setDataPrototype(
4651 "rose_rva_t",
"nameptr_rva",
"= 0",
4652 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4653 #endif // !DOCUMENTATION
4655 #ifndef DOCUMENTATION
4656 AsmPEExportDirectory.setDataPrototype(
4657 "rose_rva_t",
"ordinals_rva",
"= 0",
4658 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4659 #endif // !DOCUMENTATION
4661 #ifndef DOCUMENTATION
4662 AsmPEExportDirectory.setDataPrototype(
4663 "SgAsmGenericString*",
"name",
"= NULL",
4664 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4665 #endif // !DOCUMENTATION
4667 DECLARE_OTHERS(AsmPEExportDirectory);
4668 #if defined(SgAsmPEExportDirectory_OTHERS) || defined(DOCUMENTATION)
4671 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4673 friend class boost::serialization::access;
4676 void serialize(S &s,
const unsigned ) {
4679 s & BOOST_SERIALIZATION_NVP(p_res1);
4680 s & BOOST_SERIALIZATION_NVP(p_timestamp);
4681 s & BOOST_SERIALIZATION_NVP(p_vmajor);
4682 s & BOOST_SERIALIZATION_NVP(p_vminor);
4683 s & BOOST_SERIALIZATION_NVP(p_name_rva);
4684 s & BOOST_SERIALIZATION_NVP(p_ord_base);
4685 s & BOOST_SERIALIZATION_NVP(p_expaddr_n);
4686 s & BOOST_SERIALIZATION_NVP(p_nameptr_n);
4687 s & BOOST_SERIALIZATION_NVP(p_expaddr_rva);
4688 s & BOOST_SERIALIZATION_NVP(p_nameptr_rva);
4689 s & BOOST_SERIALIZATION_NVP(p_ordinals_rva);
4690 s & BOOST_SERIALIZATION_NVP(p_name);
4693 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4711 uint32_t expaddr_rva;
4712 uint32_t nameptr_rva;
4713 uint32_t ordinals_rva;
4715 #if !defined(SWIG) && !defined(_MSC_VER)
4716 __attribute__((packed))
4854 void dump(FILE *f,
const char *prefix, ssize_t idx)
const;
4871 #endif // SgAsmPEExportDirectory_OTHERS
4872 #ifdef DOCUMENTATION
4874 #endif // DOCUMENTATION
4881 DECLARE_LEAF_CLASS(AsmOperandList);
4882 IS_SERIALIZABLE(AsmOperandList);
4884 #ifdef DOCUMENTATION
4887 #endif // DOCUMENTATION
4889 #ifndef DOCUMENTATION
4890 AsmOperandList.setDataPrototype(
4891 "SgAsmExpressionPtrList",
"operands",
"",
4892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4893 #endif // !DOCUMENTATION
4895 DECLARE_OTHERS(AsmOperandList);
4896 #if defined(SgAsmOperandList_OTHERS) || defined(DOCUMENTATION)
4899 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4901 friend class boost::serialization::access;
4904 void serialize(S &s,
const unsigned ) {
4906 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(
SgAsmNode);
4907 s & BOOST_SERIALIZATION_NVP(p_operands);
4910 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4942 #endif // SgAsmOperandList_OTHERS
4943 #ifdef DOCUMENTATION
4945 #endif // DOCUMENTATION
4952 DECLARE_LEAF_CLASS(AsmNullInstruction);
4953 IS_SERIALIZABLE(AsmNullInstruction);
4955 #ifdef DOCUMENTATION
4957 #endif // DOCUMENTATION
4959 DECLARE_OTHERS(AsmNullInstruction);
4960 #if defined(SgAsmNullInstruction_OTHERS) || defined(DOCUMENTATION)
4963 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4965 friend class boost::serialization::access;
4968 void serialize(S &s,
const unsigned ) {
4973 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4976 enum Kind { null_unknown };
4981 rose_addr_t *target, rose_addr_t *ret)
override;
4983 rose_addr_t *target, rose_addr_t *ret)
override;
4992 virtual bool isUnknown()
const override;
5005 std::string
const& mnemonic);
5015 #endif // SgAsmNullInstruction_OTHERS
5016 #ifdef DOCUMENTATION
5018 #endif // DOCUMENTATION
5025 DECLARE_LEAF_CLASS(AsmNEStringTable);
5026 IS_SERIALIZABLE(AsmNEStringTable);
5028 #ifdef DOCUMENTATION
5030 #endif // DOCUMENTATION
5032 DECLARE_OTHERS(AsmNEStringTable);
5033 #if defined(SgAsmNEStringTable_OTHERS) || defined(DOCUMENTATION)
5036 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5038 friend class boost::serialization::access;
5041 void serialize(S &s,
const unsigned ) {
5046 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5049 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
5050 std::string get_string(rose_addr_t offset);
5067 #endif // SgAsmNEStringTable_OTHERS
5068 #ifdef DOCUMENTATION
5070 #endif // DOCUMENTATION
5077 DECLARE_LEAF_CLASS(AsmNESectionTable);
5078 IS_SERIALIZABLE(AsmNESectionTable);
5080 #ifdef DOCUMENTATION
5082 #endif // DOCUMENTATION
5084 #ifndef DOCUMENTATION
5085 AsmNESectionTable.setDataPrototype(
5086 "unsigned",
"flags",
"= 0",
5087 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5088 #endif // !DOCUMENTATION
5090 #ifndef DOCUMENTATION
5091 AsmNESectionTable.setDataPrototype(
5092 "unsigned",
"sector",
"= 0",
5093 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5094 #endif // !DOCUMENTATION
5096 #ifndef DOCUMENTATION
5097 AsmNESectionTable.setDataPrototype(
5098 "rose_addr_t",
"physical_size",
"= 0",
5099 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5100 #endif // !DOCUMENTATION
5102 #ifndef DOCUMENTATION
5103 AsmNESectionTable.setDataPrototype(
5104 "rose_addr_t",
"virtual_size",
"= 0",
5105 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5106 #endif // !DOCUMENTATION
5108 DECLARE_OTHERS(AsmNESectionTable);
5109 #if defined(SgAsmNESectionTable_OTHERS) || defined(DOCUMENTATION)
5112 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5114 friend class boost::serialization::access;
5117 void serialize(S &s,
const unsigned ) {
5120 s & BOOST_SERIALIZATION_NVP(p_flags);
5121 s & BOOST_SERIALIZATION_NVP(p_sector);
5122 s & BOOST_SERIALIZATION_NVP(p_physical_size);
5123 s & BOOST_SERIALIZATION_NVP(p_virtual_size);
5126 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5129 unsigned const& get_flags()
const;
5130 void set_flags(
unsigned const&);
5133 unsigned const& get_sector()
const;
5134 void set_sector(
unsigned const&);
5137 rose_addr_t
const& get_physical_size()
const;
5138 void set_physical_size(rose_addr_t
const&);
5141 rose_addr_t
const& get_virtual_size()
const;
5142 void set_virtual_size(rose_addr_t
const&);
5145 virtual void unparse(std::ostream&)
const override;
5146 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
5163 #endif // SgAsmNESectionTable_OTHERS
5164 #ifdef DOCUMENTATION
5166 #endif // DOCUMENTATION
5173 DECLARE_LEAF_CLASS(AsmNESectionTableEntry);
5174 IS_SERIALIZABLE(AsmNESectionTableEntry);
5176 #ifdef DOCUMENTATION
5178 #endif // DOCUMENTATION
5180 #ifndef DOCUMENTATION
5181 AsmNESectionTableEntry.setDataPrototype(
5182 "unsigned",
"flags",
"= 0",
5183 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5184 #endif // !DOCUMENTATION
5186 #ifndef DOCUMENTATION
5187 AsmNESectionTableEntry.setDataPrototype(
5188 "unsigned",
"sector",
"= 0",
5189 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5190 #endif // !DOCUMENTATION
5192 #ifndef DOCUMENTATION
5193 AsmNESectionTableEntry.setDataPrototype(
5194 "rose_addr_t",
"physical_size",
"= 0",
5195 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5196 #endif // !DOCUMENTATION
5198 #ifndef DOCUMENTATION
5199 AsmNESectionTableEntry.setDataPrototype(
5200 "rose_addr_t",
"virtual_size",
"= 0",
5201 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5202 #endif // !DOCUMENTATION
5204 DECLARE_OTHERS(AsmNESectionTableEntry);
5205 #if defined(SgAsmNESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
5208 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5210 friend class boost::serialization::access;
5213 void serialize(S &s,
const unsigned ) {
5216 s & BOOST_SERIALIZATION_NVP(p_flags);
5217 s & BOOST_SERIALIZATION_NVP(p_sector);
5218 s & BOOST_SERIALIZATION_NVP(p_physical_size);
5219 s & BOOST_SERIALIZATION_NVP(p_virtual_size);
5222 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5233 uint16_t physical_size;
5235 uint16_t virtual_size;
5240 __attribute__((packed))
5248 enum NESectionFlags {
5249 SF_RESERVED = 0x0e08,
5251 SF_TYPE_MASK = 0x0007,
5257 SF_MOVABLE = 0x0010,
5259 SF_PRELOAD = 0x0040,
5260 SF_NOT_WRITABLE = 0x0080,
5261 SF_RELOCINFO = 0x0100,
5262 SF_DISCARDABLE = 0x1000,
5270 unsigned const& get_flags()
const;
5271 void set_flags(
unsigned const&);
5274 unsigned const& get_sector()
const;
5275 void set_sector(
unsigned const&);
5278 rose_addr_t
const& get_physical_size()
const;
5279 void set_physical_size(rose_addr_t
const&);
5282 rose_addr_t
const& get_virtual_size()
const;
5283 void set_virtual_size(rose_addr_t
const&);
5290 virtual void dump(FILE *f,
const char *prefix, ssize_t idx)
const {dump(f, prefix, idx, NULL);}
5291 void dump(FILE*,
const char *prefix, ssize_t idx,
SgAsmNEFileHeader *fhdr)
const;
5308 #endif // SgAsmNESectionTableEntry_OTHERS
5309 #ifdef DOCUMENTATION
5311 #endif // DOCUMENTATION
5318 DECLARE_LEAF_CLASS(AsmNESection);
5319 IS_SERIALIZABLE(AsmNESection);
5321 #ifdef DOCUMENTATION
5323 #endif // DOCUMENTATION
5325 #ifndef DOCUMENTATION
5326 AsmNESection.setDataPrototype(
5327 "SgAsmNESectionTableEntry*",
"st_entry",
"= nullptr",
5328 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5329 #endif // !DOCUMENTATION
5331 #ifndef DOCUMENTATION
5332 AsmNESection.setDataPrototype(
5333 "SgAsmNERelocTable*",
"reloc_table",
"= nullptr",
5334 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5335 #endif // !DOCUMENTATION
5337 DECLARE_OTHERS(AsmNESection);
5338 #if defined(SgAsmNESection_OTHERS) || defined(DOCUMENTATION)
5341 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5343 friend class boost::serialization::access;
5346 void serialize(S &s,
const unsigned ) {
5349 s & BOOST_SERIALIZATION_NVP(p_st_entry);
5350 s & BOOST_SERIALIZATION_NVP(p_reloc_table);
5353 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5364 virtual void unparse(std::ostream&)
const override;
5365 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
5382 #endif // SgAsmNESection_OTHERS
5383 #ifdef DOCUMENTATION
5385 #endif // DOCUMENTATION
5392 DECLARE_LEAF_CLASS(AsmNERelocTable);
5393 IS_SERIALIZABLE(AsmNERelocTable);
5395 #ifdef DOCUMENTATION
5397 #endif // DOCUMENTATION
5399 #ifndef DOCUMENTATION
5400 AsmNERelocTable.setDataPrototype(
5401 "SgAsmNERelocEntryPtrList",
"entries",
"",
5402 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5403 #endif // !DOCUMENTATION
5405 DECLARE_OTHERS(AsmNERelocTable);
5406 #if defined(SgAsmNERelocTable_OTHERS) || defined(DOCUMENTATION)
5409 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5411 friend class boost::serialization::access;
5414 void serialize(S &s,
const unsigned ) {
5417 s & BOOST_SERIALIZATION_NVP(p_entries);
5420 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5423 SgAsmNERelocEntryPtrList
const& get_entries()
const;
5424 SgAsmNERelocEntryPtrList& get_entries();
5425 void set_entries(SgAsmNERelocEntryPtrList
const&);
5428 virtual void unparse(std::ostream&)
const override;
5429 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
5446 #endif // SgAsmNERelocTable_OTHERS
5447 #ifdef DOCUMENTATION
5449 #endif // DOCUMENTATION
5456 DECLARE_LEAF_CLASS(AsmNERelocEntry);
5457 IS_SERIALIZABLE(AsmNERelocEntry);
5459 #ifdef DOCUMENTATION
5461 #endif // DOCUMENTATION
5463 #ifndef DOCUMENTATION
5464 AsmNERelocEntry.setDataPrototype(
5465 "SgAsmNERelocEntry::NERelocSrcType",
"src_type",
"= SgAsmNERelocEntry::RF_SRCTYPE_8OFF",
5466 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5467 #endif // !DOCUMENTATION
5469 #ifndef DOCUMENTATION
5470 AsmNERelocEntry.setDataPrototype(
5471 "SgAsmNERelocEntry::NERelocModifiers",
"modifier",
"= SgAsmNERelocEntry::RF_MODIFIER_SINGLE",
5472 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5473 #endif // !DOCUMENTATION
5475 #ifndef DOCUMENTATION
5476 AsmNERelocEntry.setDataPrototype(
5477 "SgAsmNERelocEntry::NERelocTgtType",
"tgt_type",
"= SgAsmNERelocEntry::RF_TGTTYPE_IREF",
5478 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5479 #endif // !DOCUMENTATION
5481 #ifndef DOCUMENTATION
5482 AsmNERelocEntry.setDataPrototype(
5483 "SgAsmNERelocEntry::NERelocFlags",
"flags",
"= SgAsmNERelocEntry::RF_ADDITIVE",
5484 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5485 #endif // !DOCUMENTATION
5487 #ifndef DOCUMENTATION
5488 AsmNERelocEntry.setDataPrototype(
5489 "rose_addr_t",
"src_offset",
"= 0",
5490 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5491 #endif // !DOCUMENTATION
5493 #ifndef DOCUMENTATION
5494 AsmNERelocEntry.setDataPrototype(
5495 "SgAsmNERelocEntry::iref_type",
"iref",
"",
5496 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5497 #endif // !DOCUMENTATION
5499 #ifndef DOCUMENTATION
5500 AsmNERelocEntry.setDataPrototype(
5501 "SgAsmNERelocEntry::iord_type",
"iord",
"",
5502 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5503 #endif // !DOCUMENTATION
5505 #ifndef DOCUMENTATION
5506 AsmNERelocEntry.setDataPrototype(
5507 "SgAsmNERelocEntry::iname_type",
"iname",
"",
5508 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5509 #endif // !DOCUMENTATION
5511 #ifndef DOCUMENTATION
5512 AsmNERelocEntry.setDataPrototype(
5513 "SgAsmNERelocEntry::osfixup_type",
"osfixup",
"",
5514 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5515 #endif // !DOCUMENTATION
5517 DECLARE_OTHERS(AsmNERelocEntry);
5518 #if defined(SgAsmNERelocEntry_OTHERS) || defined(DOCUMENTATION)
5521 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5523 friend class boost::serialization::access;
5526 void serialize(S &s,
const unsigned ) {
5529 s & BOOST_SERIALIZATION_NVP(p_src_type);
5530 s & BOOST_SERIALIZATION_NVP(p_modifier);
5531 s & BOOST_SERIALIZATION_NVP(p_tgt_type);
5532 s & BOOST_SERIALIZATION_NVP(p_flags);
5533 s & BOOST_SERIALIZATION_NVP(p_src_offset);
5534 s & BOOST_SERIALIZATION_NVP(p_iref);
5535 s & BOOST_SERIALIZATION_NVP(p_iord);
5536 s & BOOST_SERIALIZATION_NVP(p_iname);
5537 s & BOOST_SERIALIZATION_NVP(p_osfixup);
5540 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5547 enum NERelocSrcType {
5548 RF_SRCTYPE_8OFF = 0,
5549 RF_SRCTYPE_WORDSEG = 2,
5550 RF_SRCTYPE_16PTR = 3,
5551 RF_SRCTYPE_16OFF = 5,
5552 RF_SRCTYPE_32PTR = 6,
5553 RF_SRCTYPE_32OFF = 7,
5554 RF_SRCTYPE_NEARCALL = 8,
5555 RF_SRCTYPE_48PTR = 11,
5556 RF_SRCTYPE_32OFF_b = 13
5559 enum NERelocTgtType {
5560 RF_TGTTYPE_IREF = 0,
5561 RF_TGTTYPE_IORD = 1,
5562 RF_TGTTYPE_INAME = 2,
5563 RF_TGTTYPE_OSFIXUP = 3
5566 enum NERelocModifiers {
5567 RF_MODIFIER_SINGLE = 1,
5568 RF_MODIFIER_MULTI = 3
5576 RF_16SECTION = 0x10,
5586 rose_addr_t tgt_offset;
5588 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5590 void serialize(S &s,
const unsigned ) {
5591 s & BOOST_SERIALIZATION_NVP(sect_idx);
5592 s & BOOST_SERIALIZATION_NVP(res1);
5593 s & BOOST_SERIALIZATION_NVP(tgt_offset);
5598 friend std::ostream & operator<< ( std::ostream & os,
const iref_type & x );
5608 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5610 void serialize(S &s,
const unsigned ) {
5611 s & BOOST_SERIALIZATION_NVP(modref);
5612 s & BOOST_SERIALIZATION_NVP(ordinal);
5613 s & BOOST_SERIALIZATION_NVP(addend);
5618 friend std::ostream & operator<< ( std::ostream & os,
const iord_type & x );
5628 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5630 void serialize(S &s,
const unsigned ) {
5631 s & BOOST_SERIALIZATION_NVP(modref);
5632 s & BOOST_SERIALIZATION_NVP(nm_off);
5633 s & BOOST_SERIALIZATION_NVP(addend);
5638 friend std::ostream & operator<< ( std::ostream & os,
const iname_type & x );
5647 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5649 void serialize(S &s,
const unsigned ) {
5650 s & BOOST_SERIALIZATION_NVP(type);
5651 s & BOOST_SERIALIZATION_NVP(res3);
5656 friend std::ostream & operator<< ( std::ostream & os,
const osfixup_type & x );
5665 SgAsmNERelocEntry::NERelocSrcType
const& get_src_type()
const;
5666 void set_src_type(SgAsmNERelocEntry::NERelocSrcType
const&);
5669 SgAsmNERelocEntry::NERelocModifiers
const& get_modifier()
const;
5670 void set_modifier(SgAsmNERelocEntry::NERelocModifiers
const&);
5673 SgAsmNERelocEntry::NERelocTgtType
const& get_tgt_type()
const;
5674 void set_tgt_type(SgAsmNERelocEntry::NERelocTgtType
const&);
5677 SgAsmNERelocEntry::NERelocFlags
const& get_flags()
const;
5678 void set_flags(SgAsmNERelocEntry::NERelocFlags
const&);
5681 rose_addr_t
const& get_src_offset()
const;
5682 void set_src_offset(rose_addr_t
const&);
5705 void dump(FILE*,
const char *prefix, ssize_t idx)
const;
5722 #endif // SgAsmNERelocEntry_OTHERS
5723 #ifdef DOCUMENTATION
5725 #endif // DOCUMENTATION
5732 DECLARE_LEAF_CLASS(AsmNENameTable);
5733 IS_SERIALIZABLE(AsmNENameTable);
5735 #ifdef DOCUMENTATION
5737 #endif // DOCUMENTATION
5739 #ifndef DOCUMENTATION
5740 AsmNENameTable.setDataPrototype(
5741 "SgStringList",
"names",
"",
5742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5743 #endif // !DOCUMENTATION
5745 #ifndef DOCUMENTATION
5746 AsmNENameTable.setDataPrototype(
5747 "SgUnsignedList",
"ordinals",
"",
5748 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5749 #endif // !DOCUMENTATION
5751 DECLARE_OTHERS(AsmNENameTable);
5752 #if defined(SgAsmNENameTable_OTHERS) || defined(DOCUMENTATION)
5755 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5757 friend class boost::serialization::access;
5760 void serialize(S &s,
const unsigned ) {
5763 s & BOOST_SERIALIZATION_NVP(p_names);
5764 s & BOOST_SERIALIZATION_NVP(p_ordinals);
5767 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5770 SgStringList
const& get_names()
const;
5771 void set_names(SgStringList
const&);
5774 SgUnsignedList
const& get_ordinals()
const;
5775 void set_ordinals(SgUnsignedList
const&);
5778 virtual void unparse(std::ostream&)
const override;
5779 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
5780 std::vector<std::string> get_names_by_ordinal(
unsigned ordinal);
5797 #endif // SgAsmNENameTable_OTHERS
5798 #ifdef DOCUMENTATION
5800 #endif // DOCUMENTATION
5807 DECLARE_LEAF_CLASS(AsmNEModuleTable);
5808 IS_SERIALIZABLE(AsmNEModuleTable);
5810 #ifdef DOCUMENTATION
5812 #endif // DOCUMENTATION
5814 #ifndef DOCUMENTATION
5815 AsmNEModuleTable.setDataPrototype(
5816 "SgAsmNEStringTable*",
"strtab",
"= nullptr",
5817 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5818 #endif // !DOCUMENTATION
5820 #ifndef DOCUMENTATION
5821 AsmNEModuleTable.setDataPrototype(
5822 "SgAddressList",
"name_offsets",
"",
5823 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5824 #endif // !DOCUMENTATION
5826 #ifndef DOCUMENTATION
5827 AsmNEModuleTable.setDataPrototype(
5828 "SgStringList",
"names",
"",
5829 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5830 #endif // !DOCUMENTATION
5832 DECLARE_OTHERS(AsmNEModuleTable);
5833 #if defined(SgAsmNEModuleTable_OTHERS) || defined(DOCUMENTATION)
5836 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5838 friend class boost::serialization::access;
5841 void serialize(S &s,
const unsigned ) {
5844 s & BOOST_SERIALIZATION_NVP(p_strtab);
5845 s & BOOST_SERIALIZATION_NVP(p_name_offsets);
5846 s & BOOST_SERIALIZATION_NVP(p_names);
5849 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5856 SgAddressList
const& get_name_offsets()
const;
5857 void set_name_offsets(SgAddressList
const&);
5860 SgStringList
const& get_names()
const;
5861 void set_names(SgStringList
const&);
5864 virtual void unparse(std::ostream&)
const override;
5865 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
5882 #endif // SgAsmNEModuleTable_OTHERS
5883 #ifdef DOCUMENTATION
5885 #endif // DOCUMENTATION
5892 DECLARE_LEAF_CLASS(AsmNEFileHeader);
5893 IS_SERIALIZABLE(AsmNEFileHeader);
5895 #ifdef DOCUMENTATION
5897 #endif // DOCUMENTATION
5899 #ifndef DOCUMENTATION
5900 AsmNEFileHeader.setDataPrototype(
5901 "unsigned",
"e_linker_major",
"= 0",
5902 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5903 #endif // !DOCUMENTATION
5905 #ifndef DOCUMENTATION
5906 AsmNEFileHeader.setDataPrototype(
5907 "unsigned",
"e_linker_minor",
"= 0",
5908 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5909 #endif // !DOCUMENTATION
5911 #ifndef DOCUMENTATION
5912 AsmNEFileHeader.setDataPrototype(
5913 "unsigned",
"e_checksum",
"= 0",
5914 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5915 #endif // !DOCUMENTATION
5917 #ifndef DOCUMENTATION
5918 AsmNEFileHeader.setDataPrototype(
5919 "unsigned",
"e_flags1",
"= 0",
5920 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5921 #endif // !DOCUMENTATION
5923 #ifndef DOCUMENTATION
5924 AsmNEFileHeader.setDataPrototype(
5925 "unsigned",
"e_autodata_sn",
"= 0",
5926 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5927 #endif // !DOCUMENTATION
5929 #ifndef DOCUMENTATION
5930 AsmNEFileHeader.setDataPrototype(
5931 "unsigned",
"e_bss_size",
"= 0",
5932 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5933 #endif // !DOCUMENTATION
5935 #ifndef DOCUMENTATION
5936 AsmNEFileHeader.setDataPrototype(
5937 "unsigned",
"e_stack_size",
"= 0",
5938 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5939 #endif // !DOCUMENTATION
5941 #ifndef DOCUMENTATION
5942 AsmNEFileHeader.setDataPrototype(
5943 "unsigned",
"e_csip",
"= 0",
5944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5945 #endif // !DOCUMENTATION
5947 #ifndef DOCUMENTATION
5948 AsmNEFileHeader.setDataPrototype(
5949 "unsigned",
"e_sssp",
"= 0",
5950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5951 #endif // !DOCUMENTATION
5953 #ifndef DOCUMENTATION
5954 AsmNEFileHeader.setDataPrototype(
5955 "unsigned",
"e_nsections",
"= 0",
5956 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5957 #endif // !DOCUMENTATION
5959 #ifndef DOCUMENTATION
5960 AsmNEFileHeader.setDataPrototype(
5961 "unsigned",
"e_nmodrefs",
"= 0",
5962 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5963 #endif // !DOCUMENTATION
5965 #ifndef DOCUMENTATION
5966 AsmNEFileHeader.setDataPrototype(
5967 "unsigned",
"e_nnonresnames",
"= 0",
5968 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5969 #endif // !DOCUMENTATION
5971 #ifndef DOCUMENTATION
5972 AsmNEFileHeader.setDataPrototype(
5973 "unsigned",
"e_nmovable_entries",
"= 0",
5974 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5975 #endif // !DOCUMENTATION
5977 #ifndef DOCUMENTATION
5978 AsmNEFileHeader.setDataPrototype(
5979 "unsigned",
"e_sector_align",
"= 0",
5980 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5981 #endif // !DOCUMENTATION
5983 #ifndef DOCUMENTATION
5984 AsmNEFileHeader.setDataPrototype(
5985 "unsigned",
"e_nresources",
"= 0",
5986 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5987 #endif // !DOCUMENTATION
5989 #ifndef DOCUMENTATION
5990 AsmNEFileHeader.setDataPrototype(
5991 "unsigned",
"e_exetype",
"= 0",
5992 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5993 #endif // !DOCUMENTATION
5995 #ifndef DOCUMENTATION
5996 AsmNEFileHeader.setDataPrototype(
5997 "unsigned",
"e_flags2",
"= 0",
5998 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5999 #endif // !DOCUMENTATION
6001 #ifndef DOCUMENTATION
6002 AsmNEFileHeader.setDataPrototype(
6003 "unsigned",
"e_res1",
"= 0",
6004 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6005 #endif // !DOCUMENTATION
6007 #ifndef DOCUMENTATION
6008 AsmNEFileHeader.setDataPrototype(
6009 "unsigned",
"e_winvers",
"= 0",
6010 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6011 #endif // !DOCUMENTATION
6013 #ifndef DOCUMENTATION
6014 AsmNEFileHeader.setDataPrototype(
6015 "rose_addr_t",
"e_entrytab_rfo",
"= 0",
6016 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6017 #endif // !DOCUMENTATION
6019 #ifndef DOCUMENTATION
6020 AsmNEFileHeader.setDataPrototype(
6021 "rose_addr_t",
"e_entrytab_size",
"= 0",
6022 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6023 #endif // !DOCUMENTATION
6025 #ifndef DOCUMENTATION
6026 AsmNEFileHeader.setDataPrototype(
6027 "rose_addr_t",
"e_sectab_rfo",
"= 0",
6028 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6029 #endif // !DOCUMENTATION
6031 #ifndef DOCUMENTATION
6032 AsmNEFileHeader.setDataPrototype(
6033 "rose_addr_t",
"e_rsrctab_rfo",
"= 0",
6034 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6035 #endif // !DOCUMENTATION
6037 #ifndef DOCUMENTATION
6038 AsmNEFileHeader.setDataPrototype(
6039 "rose_addr_t",
"e_resnametab_rfo",
"= 0",
6040 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6041 #endif // !DOCUMENTATION
6043 #ifndef DOCUMENTATION
6044 AsmNEFileHeader.setDataPrototype(
6045 "rose_addr_t",
"e_modreftab_rfo",
"= 0",
6046 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6047 #endif // !DOCUMENTATION
6049 #ifndef DOCUMENTATION
6050 AsmNEFileHeader.setDataPrototype(
6051 "rose_addr_t",
"e_importnametab_rfo",
"= 0",
6052 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6053 #endif // !DOCUMENTATION
6055 #ifndef DOCUMENTATION
6056 AsmNEFileHeader.setDataPrototype(
6057 "rose_addr_t",
"e_nonresnametab_offset",
"= 0",
6058 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6059 #endif // !DOCUMENTATION
6061 #ifndef DOCUMENTATION
6062 AsmNEFileHeader.setDataPrototype(
6063 "rose_addr_t",
"e_fastload_sector",
"= 0",
6064 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6065 #endif // !DOCUMENTATION
6067 #ifndef DOCUMENTATION
6068 AsmNEFileHeader.setDataPrototype(
6069 "rose_addr_t",
"e_fastload_nsectors",
"= 0",
6070 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6071 #endif // !DOCUMENTATION
6073 #ifndef DOCUMENTATION
6074 AsmNEFileHeader.setDataPrototype(
6075 "SgAsmDOSExtendedHeader*",
"dos2_header",
"= nullptr",
6076 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6077 #endif // !DOCUMENTATION
6079 #ifndef DOCUMENTATION
6080 AsmNEFileHeader.setDataPrototype(
6081 "SgAsmNESectionTable*",
"section_table",
"= nullptr",
6082 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6083 #endif // !DOCUMENTATION
6085 #ifndef DOCUMENTATION
6086 AsmNEFileHeader.setDataPrototype(
6087 "SgAsmNENameTable*",
"resname_table",
"= nullptr",
6088 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6089 #endif // !DOCUMENTATION
6091 #ifndef DOCUMENTATION
6092 AsmNEFileHeader.setDataPrototype(
6093 "SgAsmNENameTable*",
"nonresname_table",
"= nullptr",
6094 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6095 #endif // !DOCUMENTATION
6097 #ifndef DOCUMENTATION
6098 AsmNEFileHeader.setDataPrototype(
6099 "SgAsmNEModuleTable*",
"module_table",
"= nullptr",
6100 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6101 #endif // !DOCUMENTATION
6103 #ifndef DOCUMENTATION
6104 AsmNEFileHeader.setDataPrototype(
6105 "SgAsmNEEntryTable*",
"entry_table",
"= nullptr",
6106 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6107 #endif // !DOCUMENTATION
6109 DECLARE_OTHERS(AsmNEFileHeader);
6110 #if defined(SgAsmNEFileHeader_OTHERS) || defined(DOCUMENTATION)
6113 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6115 friend class boost::serialization::access;
6118 void serialize(S &s,
const unsigned ) {
6121 s & BOOST_SERIALIZATION_NVP(p_e_linker_major);
6122 s & BOOST_SERIALIZATION_NVP(p_e_linker_minor);
6123 s & BOOST_SERIALIZATION_NVP(p_e_checksum);
6124 s & BOOST_SERIALIZATION_NVP(p_e_flags1);
6125 s & BOOST_SERIALIZATION_NVP(p_e_autodata_sn);
6126 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
6127 s & BOOST_SERIALIZATION_NVP(p_e_stack_size);
6128 s & BOOST_SERIALIZATION_NVP(p_e_csip);
6129 s & BOOST_SERIALIZATION_NVP(p_e_sssp);
6130 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
6131 s & BOOST_SERIALIZATION_NVP(p_e_nmodrefs);
6132 s & BOOST_SERIALIZATION_NVP(p_e_nnonresnames);
6133 s & BOOST_SERIALIZATION_NVP(p_e_nmovable_entries);
6134 s & BOOST_SERIALIZATION_NVP(p_e_sector_align);
6135 s & BOOST_SERIALIZATION_NVP(p_e_nresources);
6136 s & BOOST_SERIALIZATION_NVP(p_e_exetype);
6137 s & BOOST_SERIALIZATION_NVP(p_e_flags2);
6138 s & BOOST_SERIALIZATION_NVP(p_e_res1);
6139 s & BOOST_SERIALIZATION_NVP(p_e_winvers);
6140 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
6141 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_size);
6142 s & BOOST_SERIALIZATION_NVP(p_e_sectab_rfo);
6143 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
6144 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
6145 s & BOOST_SERIALIZATION_NVP(p_e_modreftab_rfo);
6146 s & BOOST_SERIALIZATION_NVP(p_e_importnametab_rfo);
6147 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
6148 s & BOOST_SERIALIZATION_NVP(p_e_fastload_sector);
6149 s & BOOST_SERIALIZATION_NVP(p_e_fastload_nsectors);
6150 s & BOOST_SERIALIZATION_NVP(p_dos2_header);
6151 s & BOOST_SERIALIZATION_NVP(p_section_table);
6152 s & BOOST_SERIALIZATION_NVP(p_resname_table);
6153 s & BOOST_SERIALIZATION_NVP(p_nonresname_table);
6154 s & BOOST_SERIALIZATION_NVP(p_module_table);
6155 s & BOOST_SERIALIZATION_NVP(p_entry_table);
6158 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6174 unsigned char e_magic[2];
6175 unsigned char e_linker_major;
6176 unsigned char e_linker_minor;
6177 uint16_t e_entrytab_rfo;
6178 uint16_t e_entrytab_size;
6179 uint32_t e_checksum;
6181 uint16_t e_autodata_sn;
6182 uint16_t e_bss_size;
6183 uint16_t e_stack_size;
6186 uint16_t e_nsections;
6187 uint16_t e_nmodrefs;
6188 uint16_t e_nnonresnames;
6189 uint16_t e_sectab_rfo;
6190 uint16_t e_rsrctab_rfo;
6191 uint16_t e_resnametab_rfo;
6192 uint16_t e_modreftab_rfo;
6193 uint16_t e_importnametab_rfo;
6194 uint32_t e_nonresnametab_offset;
6195 uint16_t e_nmovable_entries;
6196 uint16_t e_sector_align;
6197 uint16_t e_nresources;
6198 unsigned char e_exetype;
6199 unsigned char e_flags2;
6200 uint16_t e_fastload_sector;
6201 uint16_t e_fastload_nsectors;
6208 __attribute__((packed))
6222 HF1_RESERVED = 0x57f4,
6223 HF1_NO_DATA = 0x0000,
6224 HF1_SINGLE_DATA = 0x0001,
6225 HF1_MULTIPLE_DATA = 0x0002,
6226 HF1_LOADER_SEGMENT = 0x0800,
6227 HF1_FATAL_ERRORS = 0x2000,
6228 HF1_LIBRARY = 0x8000
6233 HF2_RESERVED = 0xf1,
6234 HF2_PROTECTED_MODE = 0x02,
6243 unsigned const& get_e_linker_major()
const;
6244 void set_e_linker_major(
unsigned const&);
6247 unsigned const& get_e_linker_minor()
const;
6248 void set_e_linker_minor(
unsigned const&);
6251 unsigned const& get_e_checksum()
const;
6252 void set_e_checksum(
unsigned const&);
6255 unsigned const& get_e_flags1()
const;
6256 void set_e_flags1(
unsigned const&);
6259 unsigned const& get_e_autodata_sn()
const;
6260 void set_e_autodata_sn(
unsigned const&);
6263 unsigned const& get_e_bss_size()
const;
6264 void set_e_bss_size(
unsigned const&);
6267 unsigned const& get_e_stack_size()
const;
6268 void set_e_stack_size(
unsigned const&);
6271 unsigned const& get_e_csip()
const;
6272 void set_e_csip(
unsigned const&);
6275 unsigned const& get_e_sssp()
const;
6276 void set_e_sssp(
unsigned const&);
6279 unsigned const& get_e_nsections()
const;
6280 void set_e_nsections(
unsigned const&);
6283 unsigned const& get_e_nmodrefs()
const;
6284 void set_e_nmodrefs(
unsigned const&);
6287 unsigned const& get_e_nnonresnames()
const;
6288 void set_e_nnonresnames(
unsigned const&);
6291 unsigned const& get_e_nmovable_entries()
const;
6292 void set_e_nmovable_entries(
unsigned const&);
6295 unsigned const& get_e_sector_align()
const;
6296 void set_e_sector_align(
unsigned const&);
6299 unsigned const& get_e_nresources()
const;
6300 void set_e_nresources(
unsigned const&);
6303 unsigned const& get_e_exetype()
const;
6304 void set_e_exetype(
unsigned const&);
6307 unsigned const& get_e_flags2()
const;
6308 void set_e_flags2(
unsigned const&);
6311 unsigned const& get_e_res1()
const;
6312 void set_e_res1(
unsigned const&);
6315 unsigned const& get_e_winvers()
const;
6316 void set_e_winvers(
unsigned const&);
6319 rose_addr_t
const& get_e_entrytab_rfo()
const;
6320 void set_e_entrytab_rfo(rose_addr_t
const&);
6323 rose_addr_t
const& get_e_entrytab_size()
const;
6324 void set_e_entrytab_size(rose_addr_t
const&);
6327 rose_addr_t
const& get_e_sectab_rfo()
const;
6328 void set_e_sectab_rfo(rose_addr_t
const&);
6331 rose_addr_t
const& get_e_rsrctab_rfo()
const;
6332 void set_e_rsrctab_rfo(rose_addr_t
const&);
6335 rose_addr_t
const& get_e_resnametab_rfo()
const;
6336 void set_e_resnametab_rfo(rose_addr_t
const&);
6339 rose_addr_t
const& get_e_modreftab_rfo()
const;
6340 void set_e_modreftab_rfo(rose_addr_t
const&);
6343 rose_addr_t
const& get_e_importnametab_rfo()
const;
6344 void set_e_importnametab_rfo(rose_addr_t
const&);
6347 rose_addr_t
const& get_e_nonresnametab_offset()
const;
6348 void set_e_nonresnametab_offset(rose_addr_t
const&);
6351 rose_addr_t
const& get_e_fastload_sector()
const;
6352 void set_e_fastload_sector(rose_addr_t
const&);
6355 rose_addr_t
const& get_e_fastload_nsectors()
const;
6356 void set_e_fastload_nsectors(rose_addr_t
const&);
6389 virtual void unparse(std::ostream&)
const override;
6391 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
6411 #endif // SgAsmNEFileHeader_OTHERS
6412 #ifdef DOCUMENTATION
6414 #endif // DOCUMENTATION
6421 DECLARE_LEAF_CLASS(AsmNEEntryTable);
6422 IS_SERIALIZABLE(AsmNEEntryTable);
6424 #ifdef DOCUMENTATION
6426 #endif // DOCUMENTATION
6428 #ifndef DOCUMENTATION
6429 AsmNEEntryTable.setDataPrototype(
6430 "SgSizeTList",
"bundle_sizes",
"",
6431 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6432 #endif // !DOCUMENTATION
6434 #ifndef DOCUMENTATION
6435 AsmNEEntryTable.setDataPrototype(
6436 "SgAsmNEEntryPointPtrList",
"entries",
"",
6437 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6438 #endif // !DOCUMENTATION
6440 DECLARE_OTHERS(AsmNEEntryTable);
6441 #if defined(SgAsmNEEntryTable_OTHERS) || defined(DOCUMENTATION)
6444 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6446 friend class boost::serialization::access;
6449 void serialize(S &s,
const unsigned ) {
6452 s & BOOST_SERIALIZATION_NVP(p_bundle_sizes);
6453 s & BOOST_SERIALIZATION_NVP(p_entries);
6456 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6459 SgSizeTList
const& get_bundle_sizes()
const;
6460 void set_bundle_sizes(SgSizeTList
const&);
6463 SgAsmNEEntryPointPtrList
const& get_entries()
const;
6464 SgAsmNEEntryPointPtrList& get_entries();
6465 void set_entries(SgAsmNEEntryPointPtrList
const&);
6468 void populate_entries();
6469 virtual void unparse(std::ostream&)
const override;
6470 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
6487 #endif // SgAsmNEEntryTable_OTHERS
6488 #ifdef DOCUMENTATION
6490 #endif // DOCUMENTATION
6497 DECLARE_LEAF_CLASS(AsmNEEntryPoint);
6498 IS_SERIALIZABLE(AsmNEEntryPoint);
6500 #ifdef DOCUMENTATION
6502 #endif // DOCUMENTATION
6504 #ifndef DOCUMENTATION
6505 AsmNEEntryPoint.setDataPrototype(
6506 "SgAsmNEEntryPoint::NEEntryFlags",
"flags",
"= SgAsmNEEntryPoint::EF_ZERO",
6507 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6508 #endif // !DOCUMENTATION
6510 #ifndef DOCUMENTATION
6511 AsmNEEntryPoint.setDataPrototype(
6512 "unsigned",
"int3f",
"= 0",
6513 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6514 #endif // !DOCUMENTATION
6516 #ifndef DOCUMENTATION
6517 AsmNEEntryPoint.setDataPrototype(
6518 "unsigned",
"section_idx",
"= 0",
6519 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6520 #endif // !DOCUMENTATION
6522 #ifndef DOCUMENTATION
6523 AsmNEEntryPoint.setDataPrototype(
6524 "unsigned",
"section_offset",
"= 0",
6525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6526 #endif // !DOCUMENTATION
6528 DECLARE_OTHERS(AsmNEEntryPoint);
6529 #if defined(SgAsmNEEntryPoint_OTHERS) || defined(DOCUMENTATION)
6532 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6534 friend class boost::serialization::access;
6537 void serialize(S &s,
const unsigned ) {
6540 s & BOOST_SERIALIZATION_NVP(p_flags);
6541 s & BOOST_SERIALIZATION_NVP(p_int3f);
6542 s & BOOST_SERIALIZATION_NVP(p_section_idx);
6543 s & BOOST_SERIALIZATION_NVP(p_section_offset);
6546 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6562 SgAsmNEEntryPoint::NEEntryFlags
const& get_flags()
const;
6563 void set_flags(SgAsmNEEntryPoint::NEEntryFlags
const&);
6566 unsigned const& get_int3f()
const;
6567 void set_int3f(
unsigned const&);
6570 unsigned const& get_section_idx()
const;
6571 void set_section_idx(
unsigned const&);
6574 unsigned const& get_section_offset()
const;
6575 void set_section_offset(
unsigned const&);
6580 SgAsmNEEntryPoint(SgAsmNEEntryPoint::NEEntryFlags flags,
unsigned int3f,
unsigned s_idx,
unsigned s_off);
6581 void dump(FILE*,
const char *prefix, ssize_t idx)
const;
6598 #endif // SgAsmNEEntryPoint_OTHERS
6599 #ifdef DOCUMENTATION
6601 #endif // DOCUMENTATION
6608 DECLARE_LEAF_CLASS(AsmMipsInstruction);
6609 IS_SERIALIZABLE(AsmMipsInstruction);
6611 DECLARE_HEADERS(AsmMipsInstruction);
6612 #if defined(SgAsmMipsInstruction_HEADERS) || defined(DOCUMENTATION)
6613 #include <Rose/BinaryAnalysis/InstructionEnumsMips.h>
6614 #endif // SgAsmMipsInstruction_HEADERS
6616 #ifdef DOCUMENTATION
6619 #endif // DOCUMENTATION
6621 #ifndef DOCUMENTATION
6622 AsmMipsInstruction.setDataPrototype(
6623 "Rose::BinaryAnalysis::MipsInstructionKind",
"kind",
"= Rose::BinaryAnalysis::mips_unknown_instruction",
6624 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6625 #endif // !DOCUMENTATION
6627 DECLARE_OTHERS(AsmMipsInstruction);
6628 #if defined(SgAsmMipsInstruction_OTHERS) || defined(DOCUMENTATION)
6631 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6633 friend class boost::serialization::access;
6636 void serialize(S &s,
const unsigned ) {
6639 s & BOOST_SERIALIZATION_NVP(p_kind);
6642 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6659 rose_addr_t *target, rose_addr_t *ret)
override;
6661 rose_addr_t *target, rose_addr_t *ret)
override;
6665 virtual bool isUnknown()
const override;
6679 std::string
const& mnemonic,
6690 #endif // SgAsmMipsInstruction_OTHERS
6691 #ifdef DOCUMENTATION
6693 #endif // DOCUMENTATION
6700 DECLARE_LEAF_CLASS(AsmMemoryReferenceExpression);
6701 IS_SERIALIZABLE(AsmMemoryReferenceExpression);
6703 #ifdef DOCUMENTATION
6706 #endif // DOCUMENTATION
6708 #ifndef DOCUMENTATION
6709 AsmMemoryReferenceExpression.setDataPrototype(
6710 "SgAsmExpression*",
"address",
"= nullptr",
6711 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6712 #endif // !DOCUMENTATION
6714 #ifndef DOCUMENTATION
6715 AsmMemoryReferenceExpression.setDataPrototype(
6716 "SgAsmExpression*",
"segment",
"= nullptr",
6717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6718 #endif // !DOCUMENTATION
6720 DECLARE_OTHERS(AsmMemoryReferenceExpression);
6721 #if defined(SgAsmMemoryReferenceExpression_OTHERS) || defined(DOCUMENTATION)
6724 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6726 friend class boost::serialization::access;
6729 void serialize(S &s,
const unsigned ) {
6732 s & BOOST_SERIALIZATION_NVP(p_address);
6733 s & BOOST_SERIALIZATION_NVP(p_segment);
6736 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6783 #endif // SgAsmMemoryReferenceExpression_OTHERS
6784 #ifdef DOCUMENTATION
6786 #endif // DOCUMENTATION
6793 DECLARE_LEAF_CLASS(AsmM68kInstruction);
6794 IS_SERIALIZABLE(AsmM68kInstruction);
6796 DECLARE_HEADERS(AsmM68kInstruction);
6797 #if defined(SgAsmM68kInstruction_HEADERS) || defined(DOCUMENTATION)
6798 #include <Rose/BinaryAnalysis/InstructionEnumsM68k.h>
6799 #endif // SgAsmM68kInstruction_HEADERS
6801 #ifdef DOCUMENTATION
6803 #endif // DOCUMENTATION
6805 #ifndef DOCUMENTATION
6806 AsmM68kInstruction.setDataPrototype(
6807 "Rose::BinaryAnalysis::M68kInstructionKind",
"kind",
"= Rose::BinaryAnalysis::m68k_unknown_instruction",
6808 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6809 #endif // !DOCUMENTATION
6811 DECLARE_OTHERS(AsmM68kInstruction);
6812 #if defined(SgAsmM68kInstruction_OTHERS) || defined(DOCUMENTATION)
6815 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6817 friend class boost::serialization::access;
6820 void serialize(S &s,
const unsigned ) {
6823 s & BOOST_SERIALIZATION_NVP(p_kind);
6826 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6843 rose_addr_t *target, rose_addr_t *ret)
override;
6845 rose_addr_t *target, rose_addr_t *ret)
override;
6854 virtual bool isUnknown()
const override;
6867 std::string
const& mnemonic,
6878 #endif // SgAsmM68kInstruction_OTHERS
6879 #ifdef DOCUMENTATION
6881 #endif // DOCUMENTATION
6888 DECLARE_LEAF_CLASS(AsmLESectionTable);
6889 IS_SERIALIZABLE(AsmLESectionTable);
6891 #ifdef DOCUMENTATION
6893 #endif // DOCUMENTATION
6895 DECLARE_OTHERS(AsmLESectionTable);
6896 #if defined(SgAsmLESectionTable_OTHERS) || defined(DOCUMENTATION)
6899 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6901 friend class boost::serialization::access;
6904 void serialize(S &s,
const unsigned ) {
6909 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6912 virtual void unparse(std::ostream&)
const override;
6913 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
6930 #endif // SgAsmLESectionTable_OTHERS
6931 #ifdef DOCUMENTATION
6933 #endif // DOCUMENTATION
6940 DECLARE_LEAF_CLASS(AsmLESectionTableEntry);
6941 IS_SERIALIZABLE(AsmLESectionTableEntry);
6943 DECLARE_HEADERS(AsmLESectionTableEntry);
6944 #if defined(SgAsmLESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
6945 #include <Rose/BinaryAnalysis/ByteOrder.h>
6946 #endif // SgAsmLESectionTableEntry_HEADERS
6948 #ifdef DOCUMENTATION
6950 #endif // DOCUMENTATION
6952 #ifndef DOCUMENTATION
6953 AsmLESectionTableEntry.setDataPrototype(
6954 "unsigned",
"flags",
"= 0",
6955 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6956 #endif // !DOCUMENTATION
6958 #ifndef DOCUMENTATION
6959 AsmLESectionTableEntry.setDataPrototype(
6960 "unsigned",
"pagemap_index",
"= 0",
6961 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6962 #endif // !DOCUMENTATION
6964 #ifndef DOCUMENTATION
6965 AsmLESectionTableEntry.setDataPrototype(
6966 "unsigned",
"pagemap_nentries",
"= 0",
6967 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6968 #endif // !DOCUMENTATION
6970 #ifndef DOCUMENTATION
6971 AsmLESectionTableEntry.setDataPrototype(
6972 "unsigned",
"res1",
"= 0",
6973 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6974 #endif // !DOCUMENTATION
6976 #ifndef DOCUMENTATION
6977 AsmLESectionTableEntry.setDataPrototype(
6978 "rose_addr_t",
"mapped_size",
"= 0",
6979 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6980 #endif // !DOCUMENTATION
6982 #ifndef DOCUMENTATION
6983 AsmLESectionTableEntry.setDataPrototype(
6984 "rose_addr_t",
"base_addr",
"= 0",
6985 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6986 #endif // !DOCUMENTATION
6988 DECLARE_OTHERS(AsmLESectionTableEntry);
6989 #if defined(SgAsmLESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
6992 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6994 friend class boost::serialization::access;
6997 void serialize(S &s,
const unsigned ) {
7000 s & BOOST_SERIALIZATION_NVP(p_flags);
7001 s & BOOST_SERIALIZATION_NVP(p_pagemap_index);
7002 s & BOOST_SERIALIZATION_NVP(p_pagemap_nentries);
7003 s & BOOST_SERIALIZATION_NVP(p_res1);
7004 s & BOOST_SERIALIZATION_NVP(p_mapped_size);
7005 s & BOOST_SERIALIZATION_NVP(p_base_addr);
7008 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7018 uint32_t mapped_size;
7021 uint32_t pagemap_index;
7022 uint32_t pagemap_nentries;
7028 __attribute__((packed))
7042 SF_RESERVED = 0xffff0800,
7054 SF_TYPE_MASK = 0x00000300,
7055 SF_TYPE_NORMAL = 0x00000000,
7071 unsigned const& get_flags()
const;
7072 void set_flags(
unsigned const&);
7075 unsigned const& get_pagemap_index()
const;
7076 void set_pagemap_index(
unsigned const&);
7079 unsigned const& get_pagemap_nentries()
const;
7080 void set_pagemap_nentries(
unsigned const&);
7083 unsigned const& get_res1()
const;
7084 void set_res1(
unsigned const&);
7087 rose_addr_t
const& get_mapped_size()
const;
7088 void set_mapped_size(rose_addr_t
const&);
7091 rose_addr_t
const& get_base_addr()
const;
7092 void set_base_addr(rose_addr_t
const&);
7100 virtual void dump(FILE *f,
const char *prefix, ssize_t idx)
const;
7117 #endif // SgAsmLESectionTableEntry_OTHERS
7118 #ifdef DOCUMENTATION
7120 #endif // DOCUMENTATION
7127 DECLARE_LEAF_CLASS(AsmLESection);
7128 IS_SERIALIZABLE(AsmLESection);
7130 #ifdef DOCUMENTATION
7132 #endif // DOCUMENTATION
7134 #ifndef DOCUMENTATION
7135 AsmLESection.setDataPrototype(
7136 "SgAsmLESectionTableEntry*",
"st_entry",
"= NULL",
7137 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7138 #endif // !DOCUMENTATION
7140 DECLARE_OTHERS(AsmLESection);
7141 #if defined(SgAsmLESection_OTHERS) || defined(DOCUMENTATION)
7144 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7146 friend class boost::serialization::access;
7149 void serialize(S &s,
const unsigned ) {
7152 s & BOOST_SERIALIZATION_NVP(p_st_entry);
7155 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7162 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
7179 #endif // SgAsmLESection_OTHERS
7180 #ifdef DOCUMENTATION
7182 #endif // DOCUMENTATION
7189 DECLARE_LEAF_CLASS(AsmLERelocTable);
7190 IS_SERIALIZABLE(AsmLERelocTable);
7192 #ifdef DOCUMENTATION
7194 #endif // DOCUMENTATION
7196 #ifndef DOCUMENTATION
7197 AsmLERelocTable.setDataPrototype(
7198 "SgAsmLERelocEntryPtrList",
"entries",
"",
7199 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7200 #endif // !DOCUMENTATION
7202 DECLARE_OTHERS(AsmLERelocTable);
7203 #if defined(SgAsmLERelocTable_OTHERS) || defined(DOCUMENTATION)
7206 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7208 friend class boost::serialization::access;
7211 void serialize(S &s,
const unsigned ) {
7214 s & BOOST_SERIALIZATION_NVP(p_entries);
7217 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7220 SgAsmLERelocEntryPtrList
const& get_entries()
const;
7221 SgAsmLERelocEntryPtrList& get_entries();
7222 void set_entries(SgAsmLERelocEntryPtrList
const&);
7225 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
7242 #endif // SgAsmLERelocTable_OTHERS
7243 #ifdef DOCUMENTATION
7245 #endif // DOCUMENTATION
7252 DECLARE_LEAF_CLASS(AsmLEPageTable);
7253 IS_SERIALIZABLE(AsmLEPageTable);
7255 #ifdef DOCUMENTATION
7257 #endif // DOCUMENTATION
7259 #ifndef DOCUMENTATION
7260 AsmLEPageTable.setDataPrototype(
7261 "SgAsmLEPageTableEntryPtrList",
"entries",
"",
7262 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7263 #endif // !DOCUMENTATION
7265 DECLARE_OTHERS(AsmLEPageTable);
7266 #if defined(SgAsmLEPageTable_OTHERS) || defined(DOCUMENTATION)
7269 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7271 friend class boost::serialization::access;
7274 void serialize(S &s,
const unsigned ) {
7277 s & BOOST_SERIALIZATION_NVP(p_entries);
7280 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7283 SgAsmLEPageTableEntryPtrList
const& get_entries()
const;
7284 SgAsmLEPageTableEntryPtrList& get_entries();
7285 void set_entries(SgAsmLEPageTableEntryPtrList
const&);
7288 virtual void unparse(std::ostream&)
const override;
7289 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
7307 #endif // SgAsmLEPageTable_OTHERS
7308 #ifdef DOCUMENTATION
7310 #endif // DOCUMENTATION
7317 DECLARE_LEAF_CLASS(AsmLEPageTableEntry);
7318 IS_SERIALIZABLE(AsmLEPageTableEntry);
7320 DECLARE_HEADERS(AsmLEPageTableEntry);
7321 #if defined(SgAsmLEPageTableEntry_HEADERS) || defined(DOCUMENTATION)
7322 #include <Rose/BinaryAnalysis/ByteOrder.h>
7323 #endif // SgAsmLEPageTableEntry_HEADERS
7325 #ifdef DOCUMENTATION
7327 #endif // DOCUMENTATION
7329 #ifndef DOCUMENTATION
7330 AsmLEPageTableEntry.setDataPrototype(
7331 "unsigned",
"pageno",
"= 0",
7332 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7333 #endif // !DOCUMENTATION
7335 #ifndef DOCUMENTATION
7336 AsmLEPageTableEntry.setDataPrototype(
7337 "unsigned",
"flags",
"= 0",
7338 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7339 #endif // !DOCUMENTATION
7341 DECLARE_OTHERS(AsmLEPageTableEntry);
7342 #if defined(SgAsmLEPageTableEntry_OTHERS) || defined(DOCUMENTATION)
7345 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7347 friend class boost::serialization::access;
7350 void serialize(S &s,
const unsigned ) {
7353 s & BOOST_SERIALIZATION_NVP(p_pageno);
7354 s & BOOST_SERIALIZATION_NVP(p_flags);
7357 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7374 unsigned char pageno_lo;
7375 unsigned char flags;
7380 __attribute__((packed))
7392 unsigned const& get_pageno()
const;
7393 void set_pageno(
unsigned const&);
7396 unsigned const& get_flags()
const;
7397 void set_flags(
unsigned const&);
7404 void dump(FILE*,
const char *prefix, ssize_t idx)
const;
7422 #endif // SgAsmLEPageTableEntry_OTHERS
7423 #ifdef DOCUMENTATION
7425 #endif // DOCUMENTATION
7432 DECLARE_LEAF_CLASS(AsmLENameTable);
7433 IS_SERIALIZABLE(AsmLENameTable);
7435 #ifdef DOCUMENTATION
7437 #endif // DOCUMENTATION
7439 #ifndef DOCUMENTATION
7440 AsmLENameTable.setDataPrototype(
7441 "SgStringList",
"names",
"",
7442 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7443 #endif // !DOCUMENTATION
7445 #ifndef DOCUMENTATION
7446 AsmLENameTable.setDataPrototype(
7447 "SgUnsignedList",
"ordinals",
"",
7448 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7449 #endif // !DOCUMENTATION
7451 DECLARE_OTHERS(AsmLENameTable);
7452 #if defined(SgAsmLENameTable_OTHERS) || defined(DOCUMENTATION)
7455 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7457 friend class boost::serialization::access;
7460 void serialize(S &s,
const unsigned ) {
7463 s & BOOST_SERIALIZATION_NVP(p_names);
7464 s & BOOST_SERIALIZATION_NVP(p_ordinals);
7467 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7470 SgStringList
const& get_names()
const;
7471 void set_names(SgStringList
const&);
7474 SgUnsignedList
const& get_ordinals()
const;
7475 void set_ordinals(SgUnsignedList
const&);
7482 virtual void unparse(std::ostream&)
const override;
7483 virtual void dump(FILE*,
const char *prefix, ssize_t idx)
const override;
7500 #endif // SgAsmLENameTable_OTHERS
7501 #ifdef DOCUMENTATION
7503 #endif // DOCUMENTATION
7510 DECLARE_LEAF_CLASS(AsmLEFileHeader);
7511 IS_SERIALIZABLE(AsmLEFileHeader);
7513 DECLARE_HEADERS(AsmLEFileHeader);
7514 #if defined(SgAsmLEFileHeader_HEADERS) || defined(DOCUMENTATION)
7515 #include <Rose/BinaryAnalysis/ByteOrder.h>
7516 #endif // SgAsmLEFileHeader_HEADERS
7518 #ifdef DOCUMENTATION
7520 #endif // DOCUMENTATION
7522 #ifndef DOCUMENTATION
7523 AsmLEFileHeader.setDataPrototype(
7524 "unsigned",
"e_byte_order",
"= 0",
7525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7526 #endif // !DOCUMENTATION
7528 #ifndef DOCUMENTATION
7529 AsmLEFileHeader.setDataPrototype(
7530 "unsigned",
"e_word_order",
"= 0",
7531 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7532 #endif // !DOCUMENTATION
7534 #ifndef DOCUMENTATION
7535 AsmLEFileHeader.setDataPrototype(
7536 "unsigned",
"e_format_level",
"= 0",
7537 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7538 #endif // !DOCUMENTATION
7540 #ifndef DOCUMENTATION
7541 AsmLEFileHeader.setDataPrototype(
7542 "unsigned",
"e_cpu_type",
"= 0",
7543 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7544 #endif // !DOCUMENTATION
7546 #ifndef DOCUMENTATION
7547 AsmLEFileHeader.setDataPrototype(
7548 "unsigned",
"e_os_type",
"= 0",
7549 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7550 #endif // !DOCUMENTATION
7552 #ifndef DOCUMENTATION
7553 AsmLEFileHeader.setDataPrototype(
7554 "unsigned",
"e_module_version",
"= 0",
7555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7556 #endif // !DOCUMENTATION
7558 #ifndef DOCUMENTATION
7559 AsmLEFileHeader.setDataPrototype(
7560 "unsigned",
"e_flags",
"= 0",
7561 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7562 #endif // !DOCUMENTATION
7564 #ifndef DOCUMENTATION
7565 AsmLEFileHeader.setDataPrototype(
7566 "unsigned",
"e_eip_section",
"= 0",
7567 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7568 #endif // !DOCUMENTATION
7570 #ifndef DOCUMENTATION
7571 AsmLEFileHeader.setDataPrototype(
7572 "unsigned",
"e_esp_section",
"= 0",
7573 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7574 #endif // !DOCUMENTATION
7576 #ifndef DOCUMENTATION
7577 AsmLEFileHeader.setDataPrototype(
7578 "unsigned",
"e_last_page_size",
"= 0",
7579 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7580 #endif // !DOCUMENTATION
7582 #ifndef DOCUMENTATION
7583 AsmLEFileHeader.setDataPrototype(
7584 "unsigned",
"e_page_offset_shift",
"= 0",
7585 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7586 #endif // !DOCUMENTATION
7588 #ifndef DOCUMENTATION
7589 AsmLEFileHeader.setDataPrototype(
7590 "unsigned",
"e_fixup_sect_cksum",
"= 0",
7591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7592 #endif // !DOCUMENTATION
7594 #ifndef DOCUMENTATION
7595 AsmLEFileHeader.setDataPrototype(
7596 "unsigned",
"e_loader_sect_cksum",
"= 0",
7597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7598 #endif // !DOCUMENTATION
7600 #ifndef DOCUMENTATION
7601 AsmLEFileHeader.setDataPrototype(
7602 "unsigned",
"e_secttab_nentries",
"= 0",
7603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7604 #endif // !DOCUMENTATION
7606 #ifndef DOCUMENTATION
7607 AsmLEFileHeader.setDataPrototype(
7608 "unsigned",
"e_rsrctab_nentries",
"= 0",
7609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7610 #endif // !DOCUMENTATION
7612 #ifndef DOCUMENTATION
7613 AsmLEFileHeader.setDataPrototype(
7614 "unsigned",
"e_fmtdirtab_nentries",
"= 0",
7615 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7616 #endif // !DOCUMENTATION
7618 #ifndef DOCUMENTATION
7619 AsmLEFileHeader.setDataPrototype(
7620 "unsigned",
"e_import_modtab_nentries",
"= 0",
7621 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7622 #endif // !DOCUMENTATION
7624 #ifndef DOCUMENTATION
7625 AsmLEFileHeader.setDataPrototype(
7626 "unsigned",
"e_preload_npages",
"= 0",
7627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7628 #endif // !DOCUMENTATION
7630 #ifndef DOCUMENTATION
7631 AsmLEFileHeader.setDataPrototype(
7632 "unsigned",
"e_nonresnametab_size",
"= 0",
7633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7634 #endif // !DOCUMENTATION
7636 #ifndef DOCUMENTATION
7637 AsmLEFileHeader.setDataPrototype(
7638 "unsigned",
"e_nonresnametab_cksum",
"= 0",
7639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7640 #endif // !DOCUMENTATION
7642 #ifndef DOCUMENTATION
7643 AsmLEFileHeader.setDataPrototype(
7644 "unsigned",
"e_auto_ds_section",
"= 0",
7645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7646 #endif // !DOCUMENTATION
7648 #ifndef DOCUMENTATION
7649 AsmLEFileHeader.setDataPrototype(
7650 "unsigned",
"e_debug_info_size",
"= 0",
7651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7652 #endif // !DOCUMENTATION
7654 #ifndef DOCUMENTATION
7655 AsmLEFileHeader.setDataPrototype(
7656 "unsigned",
"e_num_instance_preload",
"= 0",
7657 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7658 #endif // !DOCUMENTATION
7660 #ifndef DOCUMENTATION
7661 AsmLEFileHeader.setDataPrototype(
7662 "unsigned",
"e_num_instance_demand",
"= 0",
7663 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7664 #endif // !DOCUMENTATION
7666 #ifndef DOCUMENTATION
7667 AsmLEFileHeader.setDataPrototype(
7668 "unsigned",
"e_heap_size",
"= 0",
7669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7670 #endif // !DOCUMENTATION
7672 #ifndef DOCUMENTATION
7673 AsmLEFileHeader.setDataPrototype(
7674 "rose_addr_t",
"e_npages",
"= 0",
7675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7676 #endif // !DOCUMENTATION
7678 #ifndef DOCUMENTATION
7679 AsmLEFileHeader.setDataPrototype(
7680 "rose_addr_t",
"e_eip",
"= 0",
7681 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7682 #endif // !DOCUMENTATION
7684 #ifndef DOCUMENTATION
7685 AsmLEFileHeader.setDataPrototype(
7686 "rose_addr_t",
"e_esp",
"= 0",
7687 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7688 #endif // !DOCUMENTATION
7690 #ifndef DOCUMENTATION
7691 AsmLEFileHeader.setDataPrototype(
7692 "rose_addr_t",
"e_page_size",
"= 0",
7693 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7694 #endif // !DOCUMENTATION
7696 #ifndef DOCUMENTATION
7697 AsmLEFileHeader.setDataPrototype(
7698 "rose_addr_t",
"e_fixup_sect_size",
"= 0",
7699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7700 #endif // !DOCUMENTATION
7702 #ifndef DOCUMENTATION
7703 AsmLEFileHeader.setDataPrototype(
7704 "rose_addr_t",
"e_loader_sect_size",
"= 0",
7705 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7706 #endif // !DOCUMENTATION
7708 #ifndef DOCUMENTATION
7709 AsmLEFileHeader.setDataPrototype(
7710 "rose_addr_t",
"e_secttab_rfo",
"= 0",
7711 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7712 #endif // !DOCUMENTATION
7714 #ifndef DOCUMENTATION
7715 AsmLEFileHeader.setDataPrototype(
7716 "rose_addr_t",
"e_pagetab_rfo",
"= 0",
7717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7718 #endif // !DOCUMENTATION
7720 #ifndef DOCUMENTATION
7721 AsmLEFileHeader.setDataPrototype(
7722 "rose_addr_t",
"e_iterpages_offset",
"= 0",
7723 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7724 #endif // !DOCUMENTATION
7726 #ifndef DOCUMENTATION
7727 AsmLEFileHeader.setDataPrototype(
7728 "rose_addr_t",
"e_rsrctab_rfo",
"= 0",
7729 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7730 #endif // !DOCUMENTATION
7732 #ifndef DOCUMENTATION
7733 AsmLEFileHeader.setDataPrototype(
7734 "rose_addr_t",
"e_resnametab_rfo",
"= 0",
7735 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7736 #endif // !DOCUMENTATION
7738 #ifndef DOCUMENTATION
7739 AsmLEFileHeader.setDataPrototype(
7740 "rose_addr_t",
"e_entrytab_rfo",
"= 0",
7741 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7742 #endif // !DOCUMENTATION
7744 #ifndef DOCUMENTATION
7745 AsmLEFileHeader.setDataPrototype(
7746 "rose_addr_t",
"e_fmtdirtab_rfo",
"= 0",
7747 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7748 #endif // !DOCUMENTATION
7750 #ifndef DOCUMENTATION
7751 AsmLEFileHeader.setDataPrototype(
7752 "rose_addr_t",
"e_fixup_pagetab_rfo",
"= 0",
7753 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7754 #endif // !DOCUMENTATION
7756 #ifndef DOCUMENTATION
7757 AsmLEFileHeader.setDataPrototype(
7758 "rose_addr_t",
"e_fixup_rectab_rfo",
"= 0",
7759 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7760 #endif // !DOCUMENTATION
7762 #ifndef DOCUMENTATION
7763 AsmLEFileHeader.setDataPrototype(
7764 "rose_addr_t",
"e_import_modtab_rfo",
"= 0",
7765 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7766 #endif // !DOCUMENTATION
7768 #ifndef DOCUMENTATION
7769 AsmLEFileHeader.setDataPrototype(
7770 "rose_addr_t",
"e_import_proctab_rfo",
"= 0",
7771 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7772 #endif // !DOCUMENTATION
7774 #ifndef DOCUMENTATION
7775 AsmLEFileHeader.setDataPrototype(
7776 "rose_addr_t",
"e_ppcksumtab_rfo",
"= 0",
7777 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7778 #endif // !DOCUMENTATION
7780 #ifndef DOCUMENTATION
7781 AsmLEFileHeader.setDataPrototype(
7782 "rose_addr_t",
"e_data_pages_offset",
"= 0",
7783 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7784 #endif // !DOCUMENTATION
7786 #ifndef DOCUMENTATION
7787 AsmLEFileHeader.setDataPrototype(
7788 "rose_addr_t",
"e_nonresnametab_offset",
"= 0",
7789 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7790 #endif // !DOCUMENTATION
7792 #ifndef DOCUMENTATION
7793 AsmLEFileHeader.setDataPrototype(
7794 "rose_addr_t",
"e_debug_info_rfo",
"= 0",
7795 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7796 #endif // !DOCUMENTATION
7798 #ifndef DOCUMENTATION
7799 AsmLEFileHeader.setDataPrototype(
7800 "SgAsmDOSExtendedHeader*",
"dos2_header",
"= nullptr",
7801 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7802 #endif // !DOCUMENTATION
7804 #ifndef DOCUMENTATION
7805 AsmLEFileHeader.setDataPrototype(
7806 "SgAsmLESectionTable*",
"section_table",
"= nullptr",
7807 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7808 #endif // !DOCUMENTATION
7810 #ifndef DOCUMENTATION
7811 AsmLEFileHeader.setDataPrototype(
7812 "SgAsmLEPageTable*",
"page_table",
"= nullptr",
7813 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7814 #endif // !DOCUMENTATION
7816 #ifndef DOCUMENTATION
7817 AsmLEFileHeader.setDataPrototype(
7818 "SgAsmLENameTable*",
"resname_table",
"= nullptr",
7819 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7820 #endif // !DOCUMENTATION
7822 #ifndef DOCUMENTATION
7823 AsmLEFileHeader.setDataPrototype(
7824 "SgAsmLENameTable*",
"nonresname_table",
"= nullptr",
7825 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7826 #endif // !DOCUMENTATION
7828 #ifndef DOCUMENTATION
7829 AsmLEFileHeader.setDataPrototype(
7830 "SgAsmLEEntryTable*",
"entry_table",
"= nullptr",
7831 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7832 #endif // !DOCUMENTATION
7834 #ifndef DOCUMENTATION
7835 AsmLEFileHeader.setDataPrototype(
7836 "SgAsmLERelocTable*",
"reloc_table",
"= nullptr",
7837 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7838 #endif // !DOCUMENTATION
7840 DECLARE_OTHERS(AsmLEFileHeader);
7841 #if defined(SgAsmLEFileHeader_OTHERS) || defined(DOCUMENTATION)
7844 #ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7846 friend class boost::serialization::access;
7849 void serialize(S &s,
const unsigned ) {
7852 s & BOOST_SERIALIZATION_NVP(p_e_byte_order);
7853 s & BOOST_SERIALIZATION_NVP(p_e_word_order);
7854 s & BOOST_SERIALIZATION_NVP(p_e_format_level);
7855 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
7856 s & BOOST_SERIALIZATION_NVP(p_e_os_type);
7857 s & BOOST_SERIALIZATION_NVP(p_e_module_version);
7858 s & BOOST_SERIALIZATION_NVP(p_e_flags);
7859 s & BOOST_SERIALIZATION_NVP(p_e_eip_section);
7860 s & BOOST_SERIALIZATION_NVP(p_e_esp_section);
7861 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
7862 s & BOOST_SERIALIZATION_NVP(p_e_page_offset_shift);
7863 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_cksum);
7864 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_cksum);
7865 s & BOOST_SERIALIZATION_NVP(p_e_secttab_nentries);
7866 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_nentries);
7867 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_nentries);
7868 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_nentries);
7869 s & BOOST_SERIALIZATION_NVP(p_e_preload_npages);
7870 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_size);
7871 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_cksum);
7872 s & BOOST_SERIALIZATION_NVP(p_e_auto_ds_section);
7873 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_size);
7874 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_preload);
7875 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_demand);
7876 s & BOOST_SERIALIZATION_NVP(p_e_heap_size);
7877 s & BOOST_SERIALIZATION_NVP(p_e_npages);
7878 s & BOOST_SERIALIZATION_NVP(p_e_eip);
7879 s & BOOST_SERIALIZATION_NVP(p_e_esp);
7880 s & BOOST_SERIALIZATION_NVP(p_e_page_size);
7881 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_size);
7882 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_size);
7883 s & BOOST_SERIALIZATION_NVP(p_e_secttab_rfo);
7884 s & BOOST_SERIALIZATION_NVP(p_e_pagetab_rfo);
7885 s & BOOST_SERIALIZATION_NVP(p_e_iterpages_offset);
7886 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
7887 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
7888 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
7889 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_rfo);
7890 s & BOOST_SERIALIZATION_NVP(p_e_fixup_pagetab_rfo);
7891 s & BOOST_SERIALIZATION_NVP(p_e_fixup_rectab_rfo);
7892 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_rfo);
7893 s & BOOST_SERIALIZATION_NVP(p_e_import_proctab_rfo);
7894 s & BOOST_SERIALIZATION_NVP(p_e_ppcksumtab_rfo);
7895 s & BOOST_SERIALIZATION_NVP(p_e_data_pages_offset);
7896 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
7897 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_rfo);
7898 s & BOOST_SERIALIZATION_NVP(p_dos2_header);
7899 s & BOOST_SERIALIZATION_NVP(p_section_table);
7900 s & BOOST_SERIALIZATION_NVP(p_page_table);
7901 s & BOOST_SERIALIZATION_NVP(p_resname_table);
7902 s & BOOST_SERIALIZATION_NVP(p_nonresname_table);
7903 s & BOOST_SERIALIZATION_NVP(p_entry_table);
7904 s & BOOST_SERIALIZATION_NVP(p_reloc_table);
7907 #endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7917 unsigned char e_magic[2];
7918 unsigned char e_byte_order;
7919 unsigned char e_word_order;
7920 uint32_t e_format_level;
7921 uint16_t e_cpu_type;
7923 uint32_t e_module_version;
7926 uint32_t e_eip_section;
7928 uint32_t e_esp_section;
7930 uint32_t e_page_size;
7931 uint32_t e_lps_or_shift;
7932 uint32_t e_fixup_sect_size;
7933 uint32_t e_fixup_sect_cksum;
7934 uint32_t e_loader_sect_size;
7935 uint32_t e_loader_sect_cksum;
7936 uint32_t e_secttab_rfo;
7937 uint32_t e_secttab_nentries;
7938 uint32_t e_pagetab_rfo;
7939 uint32_t e_iterpages_offset;
7940 uint32_t e_rsrctab_rfo;
7941 uint32_t e_rsrctab_nentries;
7942 uint32_t e_resnametab_rfo;
7943 uint32_t e_entrytab_rfo;
7944 uint32_t e_fmtdirtab_rfo;
7945 uint32_t e_fmtdirtab_nentries;
7946 uint32_t e_fixup_pagetab_rfo;
7947 uint32_t e_fixup_rectab_rfo;
7948 uint32_t e_import_modtab_rfo;
7949 uint32_t e_import_modtab_nentries;
7950 uint32_t e_import_proctab_rfo;
7951 uint32_t e_ppcksumtab_rfo;
7952 uint32_t e_data_pages_offset;
7953 uint32_t e_preload_npages;
7954 uint32_t e_nonresnametab_offset;
7955 uint32_t e_nonresnametab_size;
7956 uint32_t e_nonresnametab_cksum;
7957 uint32_t e_auto_ds_section;
7958 uint32_t e_debug_info_rfo;
7959 uint32_t e_debug_info_size;
7960 uint32_t e_num_instance_preload;
7961 uint32_t e_num_instance_demand;
7962 uint32_t e_heap_size;
7967 __attribute__((packed))
7975 enum LEFileHeaderFlags {
7976 HF_RESERVED = 0xbffc5ccb,
7977 HF_PROC_LIB_INIT = 0x00000004,
7978 HF_IFIXUPS_APPLIED = 0x00000010,
7979 HF_EFIXUPS_APPLIED = 0x00000020,
7980 HF_PM_WINDOW_NO = 0x00000100,
7981 HF_PM_WINDOW_OK = 0x00000200,
7982 HF_PM_WINDOW_USE = 0x00000300,
7983 HF_NOT_LOADABLE = 0x00002000,
7984 HF_PROC_LIB_TERM = 0x40000000,
7986 HF_MODTYPE_MASK = 0x00038000,
7987 HF_MODTYPE_PROG = 0x00000000,
7988 HF_MODTYPE_LIB = 0x00008000,
7989 HF_MODTYPE_PLIB = 0x00018000,
7990 HF_MODTYPE_PDEV = 0x00020000,
7991 HF_MODTYPE_VDEV = 0x00028000
7998 unsigned const& get_e_byte_order()
const;
7999 void set_e_byte_order(
unsigned const&);
8002 unsigned const& get_e_word_order()
const;
8003 void set_e_word_order(
unsigned const&);
8006 unsigned const& get_e_format_level()
const;
8007 void set_e_format_level(
unsigned const&);
8010 unsigned const& get_e_cpu_type()
const;
8011 void set_e_cpu_type(
unsigned const&);
8014 unsigned const& get_e_os_type()
const;
8015 void set_e_os_type(
unsigned const&);
8018 unsigned const& get_e_module_version()
const;
8019 void set_e_module_version(
unsigned const&);
8022 unsigned const& get_e_flags()
const;
8023 void set_e_flags(
unsigned const&);
8026 unsigned const& get_e_eip_section()
const;
8027 void set_e_eip_section(
unsigned const&);
8030 unsigned const& get_e_esp_section()
const;
8031 void set_e_esp_section(