ROSE 0.11.145.365
binaryInstruction.C
1
2// THIS FILE IS MACHINE GENERATED -- DO NOT MODIFY
4//
5// This file was generated with ROSE's "rosebud" tool by reading node definitions written in a
6// C++-like language and emitting this ROSETTA input.
7//
9// DO NOT MODIFY THIS FILE MANUALLY!
11
12
13#include <featureTests.h>
14#if defined(ROSE_ENABLE_BINARY_ANALYSIS)
15#include "ROSETTA_macros.h"
16#include "grammar.h"
17#include "AstNodeClass.h"
18
19//#undef DOCUMENTATION -- commented out so IDEs can't figure it out
20#ifdef DOCUMENTATION
21DOCUMENTATION_should_never_be_defined;
22#endif
23
24#ifdef DOCUMENTATION
25#define DECLARE_LEAF_CLASS(CLASS_WITHOUT_Sg) /*void*/
26#define DECLARE_LEAF_CLASS2(CLASS_WITHOUT_Sg, TAG) /*void*/
27#else
28#define DECLARE_LEAF_CLASS(CLASS_WITHOUT_Sg) \
29 NEW_TERMINAL_MACRO(CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg "Tag"); \
30 CLASS_WITHOUT_Sg.setCppCondition("!defined(DOCUMENTATION)");\
31 CLASS_WITHOUT_Sg.setAutomaticGenerationOfConstructor(false);\
32 CLASS_WITHOUT_Sg.setAutomaticGenerationOfDestructor(false)
33#define DECLARE_LEAF_CLASS2(CLASS_WITHOUT_Sg, TAG) \
34 NEW_TERMINAL_MACRO(CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg, #TAG); \
35 CLASS_WITHOUT_Sg.setCppCondition("!defined(DOCUMENTATION)");\
36 CLASS_WITHOUT_Sg.setAutomaticGenerationOfConstructor(false);\
37 CLASS_WITHOUT_Sg.setAutomaticGenerationOfDestructor(false)
38#endif
39
40#ifdef DOCUMENTATION
41#define DECLARE_HEADERS(CLASS_WITHOUT_Sg) /*void*/
42#else
43#define DECLARE_HEADERS(CLASS_WITHOUT_Sg) \
44 CLASS_WITHOUT_Sg.setPredeclarationString("Sg" #CLASS_WITHOUT_Sg "_HEADERS", \
45 ROSE_AUTOMAKE_ABSOLUTE_PATH_TOP_SRCDIR + "/src/ROSETTA/src/binaryInstruction.C")
46#endif
47
48#ifdef DOCUMENTATION
49#define DECLARE_OTHERS(CLASS_WITHOUT_Sg) /*void*/
50#else
51#define DECLARE_OTHERS(CLASS_WITHOUT_Sg) \
52 CLASS_WITHOUT_Sg.setFunctionPrototype("Sg" #CLASS_WITHOUT_Sg "_OTHERS", \
53 ROSE_AUTOMAKE_ABSOLUTE_PATH_TOP_SRCDIR + "/src/ROSETTA/src/binaryInstruction.C")
54#endif
55
56#ifdef DOCUMENTATION
57#define IS_SERIALIZABLE() /*void*/
58#else
59#define IS_SERIALIZABLE(CLASS_WITHOUT_Sg) \
60 CLASS_WITHOUT_Sg.isBoostSerializable(true)
61#endif
62
63
64// Since ROSETTA builds classes from the leaves up to the base, and C++ builds classes from the
65// base down to the leaves, we need to make sure that doxygen sees the base classes before the derived classes. So
66// just list all the non-leaf classes here.
67#ifdef DOCUMENTATION
71class SgAsmCilNode;
75class SgAsmElfSection;
77class SgAsmExpression;
85class SgAsmJvmNode;
86class SgAsmNode;
87class SgAsmPESection;
89class SgAsmScalarType;
90class SgAsmStatement;
92class SgAsmType;
95class SgNode;
96#endif // DOCUMENTATION
97
98#ifndef DOCUMENTATION
99void Grammar::setUpBinaryInstructions() {
100#endif // !DOCUMENTATION
101
102
104// SgAsmX86Instruction -- MACHINE GENERATED; DO NOT MODIFY --
106
107DECLARE_LEAF_CLASS(AsmX86Instruction);
108IS_SERIALIZABLE(AsmX86Instruction);
109
110#ifndef DOCUMENTATION
111AsmX86Instruction.useSmallHeader(true);
112#endif // !DOCUMENTATION
113
114DECLARE_HEADERS(AsmX86Instruction);
115#if defined(SgAsmX86Instruction_HEADERS) || defined(DOCUMENTATION)
116#include <Rose/BinaryAnalysis/BasicTypes.h>
117#include <Rose/BinaryAnalysis/InstructionEnumsX86.h>
118#endif // SgAsmX86Instruction_HEADERS
119
120#ifdef DOCUMENTATION
123#endif // DOCUMENTATION
124
125#ifndef DOCUMENTATION
126 AsmX86Instruction.setDataPrototype(
127 "Rose::BinaryAnalysis::X86InstructionKind", "kind", "= Rose::BinaryAnalysis::x86_unknown_instruction",
128 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
129#endif // !DOCUMENTATION
130
131#ifndef DOCUMENTATION
132 AsmX86Instruction.setDataPrototype(
133 "Rose::BinaryAnalysis::X86InstructionSize", "baseSize", "= Rose::BinaryAnalysis::x86_insnsize_none",
134 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
135#endif // !DOCUMENTATION
136
137#ifndef DOCUMENTATION
138 AsmX86Instruction.setDataPrototype(
139 "Rose::BinaryAnalysis::X86InstructionSize", "operandSize", "= Rose::BinaryAnalysis::x86_insnsize_none",
140 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
141#endif // !DOCUMENTATION
142
143#ifndef DOCUMENTATION
144 AsmX86Instruction.setDataPrototype(
145 "Rose::BinaryAnalysis::X86InstructionSize", "addressSize", "= Rose::BinaryAnalysis::x86_insnsize_none",
146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
147#endif // !DOCUMENTATION
148
149#ifndef DOCUMENTATION
150 AsmX86Instruction.setDataPrototype(
151 "bool", "lockPrefix", "= false",
152 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
153#endif // !DOCUMENTATION
154
155#ifndef DOCUMENTATION
156 AsmX86Instruction.setDataPrototype(
157 "Rose::BinaryAnalysis::X86RepeatPrefix", "repeatPrefix", "= Rose::BinaryAnalysis::x86_repeat_none",
158 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
159#endif // !DOCUMENTATION
160
161#ifndef DOCUMENTATION
162 AsmX86Instruction.setDataPrototype(
163 "Rose::BinaryAnalysis::X86BranchPrediction", "branchPrediction", "= Rose::BinaryAnalysis::x86_branch_prediction_none",
164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
165#endif // !DOCUMENTATION
166
167#ifndef DOCUMENTATION
168 AsmX86Instruction.setDataPrototype(
169 "Rose::BinaryAnalysis::X86SegmentRegister", "segmentOverride", "= Rose::BinaryAnalysis::x86_segreg_none",
170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
171#endif // !DOCUMENTATION
172
173 DECLARE_OTHERS(AsmX86Instruction);
174#if defined(SgAsmX86Instruction_OTHERS) || defined(DOCUMENTATION)
175
176 //----------------------- Boost serialization for SgAsmX86Instruction -----------------------
177#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
178private:
179 friend class boost::serialization::access;
180
181 template<class S>
182 void serialize(S &s, const unsigned /*version*/) {
183 debugSerializationBegin("SgAsmX86Instruction");
184 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
185 s & BOOST_SERIALIZATION_NVP(p_kind);
186 s & BOOST_SERIALIZATION_NVP(p_baseSize);
187 s & BOOST_SERIALIZATION_NVP(p_operandSize);
188 s & BOOST_SERIALIZATION_NVP(p_addressSize);
189 s & BOOST_SERIALIZATION_NVP(p_lockPrefix);
190 s & BOOST_SERIALIZATION_NVP(p_repeatPrefix);
191 s & BOOST_SERIALIZATION_NVP(p_branchPrediction);
192 s & BOOST_SERIALIZATION_NVP(p_segmentOverride);
193 debugSerializationEnd("SgAsmX86Instruction");
194 }
195#endif // ROSE_ENABLE_BOOST_SERIALIZATION
196public:
197public:
208public:
212 Rose::BinaryAnalysis::X86InstructionSize const& get_baseSize() const;
213 void set_baseSize(Rose::BinaryAnalysis::X86InstructionSize const&);
216public:
220 Rose::BinaryAnalysis::X86InstructionSize const& get_operandSize() const;
221 void set_operandSize(Rose::BinaryAnalysis::X86InstructionSize const&);
224public:
228 Rose::BinaryAnalysis::X86InstructionSize const& get_addressSize() const;
229 void set_addressSize(Rose::BinaryAnalysis::X86InstructionSize const&);
232public:
238 bool const& get_lockPrefix() const;
239 void set_lockPrefix(bool const&);
242public:
246 Rose::BinaryAnalysis::X86RepeatPrefix const& get_repeatPrefix() const;
247 void set_repeatPrefix(Rose::BinaryAnalysis::X86RepeatPrefix const&);
250public:
254 Rose::BinaryAnalysis::X86BranchPrediction const& get_branchPrediction() const;
255 void set_branchPrediction(Rose::BinaryAnalysis::X86BranchPrediction const&);
258public:
265 Rose::BinaryAnalysis::X86SegmentRegister const& get_segmentOverride() const;
266 void set_segmentOverride(Rose::BinaryAnalysis::X86SegmentRegister const&);
268public:
272 static Rose::BinaryAnalysis::X86InstructionSize instructionSizeForWidth(size_t);
273
277 static size_t widthForInstructionSize(Rose::BinaryAnalysis::X86InstructionSize);
278
283 static Rose::BinaryAnalysis::RegisterDictionaryPtr registersForInstructionSize(Rose::BinaryAnalysis::X86InstructionSize);
284
290
291 // Overrides are documented in the base class
292 virtual unsigned get_anyKind() const override;
293public:
296
297public:
300
301public:
304 uint8_t const& architectureId,
306 Rose::BinaryAnalysis::X86InstructionSize const& baseSize,
307 Rose::BinaryAnalysis::X86InstructionSize const& operandSize,
308 Rose::BinaryAnalysis::X86InstructionSize const& addressSize);
309
310protected:
318#endif // SgAsmX86Instruction_OTHERS
319#ifdef DOCUMENTATION
320};
321#endif // DOCUMENTATION
322
323
325// SgAsmVoidType -- MACHINE GENERATED; DO NOT MODIFY --
327
328DECLARE_LEAF_CLASS(AsmVoidType);
329IS_SERIALIZABLE(AsmVoidType);
330
331#ifndef DOCUMENTATION
332AsmVoidType.useSmallHeader(true);
333#endif // !DOCUMENTATION
334
335#ifdef DOCUMENTATION
338#endif // DOCUMENTATION
339
340 DECLARE_OTHERS(AsmVoidType);
341#if defined(SgAsmVoidType_OTHERS) || defined(DOCUMENTATION)
342
343 //----------------------- Boost serialization for SgAsmVoidType -----------------------
344#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
345private:
346 friend class boost::serialization::access;
347
348 template<class S>
349 void serialize(S &s, const unsigned /*version*/) {
350 debugSerializationBegin("SgAsmVoidType");
351 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
352 debugSerializationEnd("SgAsmVoidType");
353 }
354#endif // ROSE_ENABLE_BOOST_SERIALIZATION
355public:
356 static SgAsmVoidType* instance();
357
358 virtual std::string toString() const override;
359 virtual size_t get_nBits() const override;
360public:
362 virtual ~SgAsmVoidType();
363
364public:
367
368protected:
376#endif // SgAsmVoidType_OTHERS
377#ifdef DOCUMENTATION
378};
379#endif // DOCUMENTATION
380
381
383// SgAsmVectorType -- MACHINE GENERATED; DO NOT MODIFY --
385
386DECLARE_LEAF_CLASS(AsmVectorType);
387IS_SERIALIZABLE(AsmVectorType);
388
389#ifndef DOCUMENTATION
390AsmVectorType.useSmallHeader(true);
391#endif // !DOCUMENTATION
392
393#ifdef DOCUMENTATION
396#endif // DOCUMENTATION
397
398#ifndef DOCUMENTATION
399 AsmVectorType.setDataPrototype(
400 "size_t", "nElmts", "= 0",
401 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
402#endif // !DOCUMENTATION
403
404#ifndef DOCUMENTATION
405 AsmVectorType.setDataPrototype(
406 "SgAsmType*", "elmtType", "= nullptr",
407 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
408#endif // !DOCUMENTATION
409
410 DECLARE_OTHERS(AsmVectorType);
411#if defined(SgAsmVectorType_OTHERS) || defined(DOCUMENTATION)
412
413 //----------------------- Boost serialization for SgAsmVectorType -----------------------
414#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
415private:
416 friend class boost::serialization::access;
417
418 template<class S>
419 void serialize(S &s, const unsigned /*version*/) {
420 debugSerializationBegin("SgAsmVectorType");
421 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
422 s & BOOST_SERIALIZATION_NVP(p_nElmts);
423 s & BOOST_SERIALIZATION_NVP(p_elmtType);
424 debugSerializationEnd("SgAsmVectorType");
425 }
426#endif // ROSE_ENABLE_BOOST_SERIALIZATION
427public:
428public:
434public:
439public:
441 SgAsmVectorType(size_t nElmts, SgAsmType *elmtType);
442
444 size_t get_nElmts() const;
445
448
449 // Overrides documented in base class
450 virtual void check() const override;
451 virtual std::string toString() const override;
452 virtual size_t get_nBits() const override;
453public:
456
457public:
460
461protected:
469#endif // SgAsmVectorType_OTHERS
470#ifdef DOCUMENTATION
471};
472#endif // DOCUMENTATION
473
474
476// SgAsmUserInstruction -- MACHINE GENERATED; DO NOT MODIFY --
478
479DECLARE_LEAF_CLASS(AsmUserInstruction);
480IS_SERIALIZABLE(AsmUserInstruction);
481
482#ifndef DOCUMENTATION
483AsmUserInstruction.useSmallHeader(true);
484#endif // !DOCUMENTATION
485
486#ifdef DOCUMENTATION
493#endif // DOCUMENTATION
494
495#ifndef DOCUMENTATION
496 AsmUserInstruction.setDataPrototype(
497 "unsigned", "kind", "= 0",
498 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
499#endif // !DOCUMENTATION
500
501 DECLARE_OTHERS(AsmUserInstruction);
502#if defined(SgAsmUserInstruction_OTHERS) || defined(DOCUMENTATION)
503
504 //----------------------- Boost serialization for SgAsmUserInstruction -----------------------
505#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
506private:
507 friend class boost::serialization::access;
508
509 template<class S>
510 void serialize(S &s, const unsigned /*version*/) {
511 debugSerializationBegin("SgAsmUserInstruction");
512 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
513 s & BOOST_SERIALIZATION_NVP(p_kind);
514 debugSerializationEnd("SgAsmUserInstruction");
515 }
516#endif // ROSE_ENABLE_BOOST_SERIALIZATION
517public:
518public:
524 unsigned const& get_kind() const;
525 void set_kind(unsigned const&);
527public:
528 // Overrides are documented in the base class
529 virtual unsigned get_anyKind() const override;
530public:
533
534public:
537
538public:
541 uint8_t const& architectureId,
542 unsigned const& kind);
543
544protected:
552#endif // SgAsmUserInstruction_OTHERS
553#ifdef DOCUMENTATION
554};
555#endif // DOCUMENTATION
556
557
559// SgAsmUnaryUnsignedExtend -- MACHINE GENERATED; DO NOT MODIFY --
561
562DECLARE_LEAF_CLASS(AsmUnaryUnsignedExtend);
563IS_SERIALIZABLE(AsmUnaryUnsignedExtend);
564
565#ifndef DOCUMENTATION
566AsmUnaryUnsignedExtend.useSmallHeader(true);
567#endif // !DOCUMENTATION
568
569#ifdef DOCUMENTATION
576#endif // DOCUMENTATION
577
578 DECLARE_OTHERS(AsmUnaryUnsignedExtend);
579#if defined(SgAsmUnaryUnsignedExtend_OTHERS) || defined(DOCUMENTATION)
580
581 //----------------------- Boost serialization for SgAsmUnaryUnsignedExtend -----------------------
582#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
583private:
584 friend class boost::serialization::access;
585
586 template<class S>
587 void serialize(S &s, const unsigned /*version*/) {
588 debugSerializationBegin("SgAsmUnaryUnsignedExtend");
589 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
590 debugSerializationEnd("SgAsmUnaryUnsignedExtend");
591 }
592#endif // ROSE_ENABLE_BOOST_SERIALIZATION
593
594public:
597
598public:
601
602public:
604 explicit SgAsmUnaryUnsignedExtend(SgAsmExpression* const& operand);
605
606protected:
614#endif // SgAsmUnaryUnsignedExtend_OTHERS
615#ifdef DOCUMENTATION
616};
617#endif // DOCUMENTATION
618
619
621// SgAsmUnaryTruncate -- MACHINE GENERATED; DO NOT MODIFY --
623
624DECLARE_LEAF_CLASS(AsmUnaryTruncate);
625IS_SERIALIZABLE(AsmUnaryTruncate);
626
627#ifndef DOCUMENTATION
628AsmUnaryTruncate.useSmallHeader(true);
629#endif // !DOCUMENTATION
630
631#ifdef DOCUMENTATION
638#endif // DOCUMENTATION
639
640 DECLARE_OTHERS(AsmUnaryTruncate);
641#if defined(SgAsmUnaryTruncate_OTHERS) || defined(DOCUMENTATION)
642
643 //----------------------- Boost serialization for SgAsmUnaryTruncate -----------------------
644#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
645private:
646 friend class boost::serialization::access;
647
648 template<class S>
649 void serialize(S &s, const unsigned /*version*/) {
650 debugSerializationBegin("SgAsmUnaryTruncate");
651 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
652 debugSerializationEnd("SgAsmUnaryTruncate");
653 }
654#endif // ROSE_ENABLE_BOOST_SERIALIZATION
655
656public:
659
660public:
663
664public:
666 explicit SgAsmUnaryTruncate(SgAsmExpression* const& operand);
667
668protected:
676#endif // SgAsmUnaryTruncate_OTHERS
677#ifdef DOCUMENTATION
678};
679#endif // DOCUMENTATION
680
681
683// SgAsmUnarySignedExtend -- MACHINE GENERATED; DO NOT MODIFY --
685
686DECLARE_LEAF_CLASS(AsmUnarySignedExtend);
687IS_SERIALIZABLE(AsmUnarySignedExtend);
688
689#ifndef DOCUMENTATION
690AsmUnarySignedExtend.useSmallHeader(true);
691#endif // !DOCUMENTATION
692
693#ifdef DOCUMENTATION
700#endif // DOCUMENTATION
701
702 DECLARE_OTHERS(AsmUnarySignedExtend);
703#if defined(SgAsmUnarySignedExtend_OTHERS) || defined(DOCUMENTATION)
704
705 //----------------------- Boost serialization for SgAsmUnarySignedExtend -----------------------
706#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
707private:
708 friend class boost::serialization::access;
709
710 template<class S>
711 void serialize(S &s, const unsigned /*version*/) {
712 debugSerializationBegin("SgAsmUnarySignedExtend");
713 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
714 debugSerializationEnd("SgAsmUnarySignedExtend");
715 }
716#endif // ROSE_ENABLE_BOOST_SERIALIZATION
717
718public:
721
722public:
725
726public:
728 explicit SgAsmUnarySignedExtend(SgAsmExpression* const& operand);
729
730protected:
738#endif // SgAsmUnarySignedExtend_OTHERS
739#ifdef DOCUMENTATION
740};
741#endif // DOCUMENTATION
742
743
745// SgAsmUnaryRrx -- MACHINE GENERATED; DO NOT MODIFY --
747
748DECLARE_LEAF_CLASS(AsmUnaryRrx);
749IS_SERIALIZABLE(AsmUnaryRrx);
750
751#ifndef DOCUMENTATION
752AsmUnaryRrx.useSmallHeader(true);
753#endif // !DOCUMENTATION
754
755DECLARE_HEADERS(AsmUnaryRrx);
756#if defined(SgAsmUnaryRrx_HEADERS) || defined(DOCUMENTATION)
757// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
758#endif // SgAsmUnaryRrx_HEADERS
759
760#ifdef DOCUMENTATION
762#endif // DOCUMENTATION
763
764 DECLARE_OTHERS(AsmUnaryRrx);
765#if defined(SgAsmUnaryRrx_OTHERS) || defined(DOCUMENTATION)
766
767 //----------------------- Boost serialization for SgAsmUnaryRrx -----------------------
768#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
769private:
770 friend class boost::serialization::access;
771
772 template<class S>
773 void serialize(S &s, const unsigned /*version*/) {
774 debugSerializationBegin("SgAsmUnaryRrx");
775 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
776 debugSerializationEnd("SgAsmUnaryRrx");
777 }
778#endif // ROSE_ENABLE_BOOST_SERIALIZATION
779
780public:
782 virtual ~SgAsmUnaryRrx();
783
784public:
787
788public:
790 explicit SgAsmUnaryRrx(SgAsmExpression* const& operand);
791
792protected:
800#endif // SgAsmUnaryRrx_OTHERS
801#ifdef DOCUMENTATION
802};
803#endif // DOCUMENTATION
804
805
807// SgAsmUnaryPlus -- MACHINE GENERATED; DO NOT MODIFY --
809
810DECLARE_LEAF_CLASS(AsmUnaryPlus);
811IS_SERIALIZABLE(AsmUnaryPlus);
812
813#ifndef DOCUMENTATION
814AsmUnaryPlus.useSmallHeader(true);
815#endif // !DOCUMENTATION
816
817#ifdef DOCUMENTATION
820#endif // DOCUMENTATION
821
822 DECLARE_OTHERS(AsmUnaryPlus);
823#if defined(SgAsmUnaryPlus_OTHERS) || defined(DOCUMENTATION)
824
825 //----------------------- Boost serialization for SgAsmUnaryPlus -----------------------
826#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
827private:
828 friend class boost::serialization::access;
829
830 template<class S>
831 void serialize(S &s, const unsigned /*version*/) {
832 debugSerializationBegin("SgAsmUnaryPlus");
833 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
834 debugSerializationEnd("SgAsmUnaryPlus");
835 }
836#endif // ROSE_ENABLE_BOOST_SERIALIZATION
837
838public:
841
842public:
845
846public:
848 explicit SgAsmUnaryPlus(SgAsmExpression* const& operand);
849
850protected:
858#endif // SgAsmUnaryPlus_OTHERS
859#ifdef DOCUMENTATION
860};
861#endif // DOCUMENTATION
862
863
865// SgAsmUnaryMinus -- MACHINE GENERATED; DO NOT MODIFY --
867
868DECLARE_LEAF_CLASS(AsmUnaryMinus);
869IS_SERIALIZABLE(AsmUnaryMinus);
870
871#ifndef DOCUMENTATION
872AsmUnaryMinus.useSmallHeader(true);
873#endif // !DOCUMENTATION
874
875#ifdef DOCUMENTATION
878#endif // DOCUMENTATION
879
880 DECLARE_OTHERS(AsmUnaryMinus);
881#if defined(SgAsmUnaryMinus_OTHERS) || defined(DOCUMENTATION)
882
883 //----------------------- Boost serialization for SgAsmUnaryMinus -----------------------
884#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
885private:
886 friend class boost::serialization::access;
887
888 template<class S>
889 void serialize(S &s, const unsigned /*version*/) {
890 debugSerializationBegin("SgAsmUnaryMinus");
891 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
892 debugSerializationEnd("SgAsmUnaryMinus");
893 }
894#endif // ROSE_ENABLE_BOOST_SERIALIZATION
895
896public:
899
900public:
903
904public:
906 explicit SgAsmUnaryMinus(SgAsmExpression* const& operand);
907
908protected:
916#endif // SgAsmUnaryMinus_OTHERS
917#ifdef DOCUMENTATION
918};
919#endif // DOCUMENTATION
920
921
923// SgAsmUnaryExpression -- MACHINE GENERATED; DO NOT MODIFY --
925
926#ifndef DOCUMENTATION
927AstNodeClass& AsmUnaryExpression = nonTerminalConstructor(
928 "AsmUnaryExpression",
929 *this,
930 "AsmUnaryExpression",
931 "AsmUnaryExpressionTag",
932 SubclassListBuilder()
933 | AsmUnaryMinus
934 | AsmUnaryPlus
935 | AsmUnaryRrx
936 | AsmUnarySignedExtend
937 | AsmUnaryTruncate
938 | AsmUnaryUnsignedExtend
939 , false);
940assert(AsmUnaryExpression.associatedGrammar != nullptr);
941AsmUnaryExpression.setCppCondition("!defined(DOCUMENTATION)");
942AsmUnaryExpression.isBoostSerializable(true);
943AsmUnaryExpression.setAutomaticGenerationOfConstructor(false);
944AsmUnaryExpression.setAutomaticGenerationOfDestructor(false);
945#endif // !DOCUMENTATION
946
947#ifndef DOCUMENTATION
948AsmUnaryExpression.useSmallHeader(true);
949#endif // !DOCUMENTATION
950
951#ifdef DOCUMENTATION
954#endif // DOCUMENTATION
955
956#ifndef DOCUMENTATION
957 AsmUnaryExpression.setDataPrototype(
958 "SgAsmExpression*", "operand", "= nullptr",
959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
960#endif // !DOCUMENTATION
961
962 DECLARE_OTHERS(AsmUnaryExpression);
963#if defined(SgAsmUnaryExpression_OTHERS) || defined(DOCUMENTATION)
964
965 //----------------------- Boost serialization for SgAsmUnaryExpression -----------------------
966#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
967private:
968 friend class boost::serialization::access;
969
970 template<class S>
971 void serialize(S &s, const unsigned /*version*/) {
972 debugSerializationBegin("SgAsmUnaryExpression");
973 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
974 s & BOOST_SERIALIZATION_NVP(p_operand);
975 debugSerializationEnd("SgAsmUnaryExpression");
976 }
977#endif // ROSE_ENABLE_BOOST_SERIALIZATION
978public:
979public:
987public:
990
991protected:
994
995protected:
997 explicit SgAsmUnaryExpression(SgAsmExpression* const& operand);
998
999protected:
1007#endif // SgAsmUnaryExpression_OTHERS
1008#ifdef DOCUMENTATION
1009};
1010#endif // DOCUMENTATION
1011
1012
1014// SgAsmSynthesizedFieldDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
1016
1017DECLARE_LEAF_CLASS(AsmSynthesizedFieldDeclaration);
1018IS_SERIALIZABLE(AsmSynthesizedFieldDeclaration);
1019
1020#ifndef DOCUMENTATION
1021AsmSynthesizedFieldDeclaration.useSmallHeader(true);
1022#endif // !DOCUMENTATION
1023
1024DECLARE_HEADERS(AsmSynthesizedFieldDeclaration);
1025#if defined(SgAsmSynthesizedFieldDeclaration_HEADERS) || defined(DOCUMENTATION)
1026// FIXME[Robb P Matzke 2017-02-13]: what is this?
1027#endif // SgAsmSynthesizedFieldDeclaration_HEADERS
1028
1029#ifdef DOCUMENTATION
1031#endif // DOCUMENTATION
1032
1033#ifndef DOCUMENTATION
1034 AsmSynthesizedFieldDeclaration.setDataPrototype(
1035 "std::string", "name", "",
1036 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1037#endif // !DOCUMENTATION
1038
1039#ifndef DOCUMENTATION
1040 AsmSynthesizedFieldDeclaration.setDataPrototype(
1041 "uint64_t", "offset", "= 0",
1042 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1043#endif // !DOCUMENTATION
1044
1045 DECLARE_OTHERS(AsmSynthesizedFieldDeclaration);
1046#if defined(SgAsmSynthesizedFieldDeclaration_OTHERS) || defined(DOCUMENTATION)
1047
1048 //----------------------- Boost serialization for SgAsmSynthesizedFieldDeclaration -----------------------
1049#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1050private:
1051 friend class boost::serialization::access;
1052
1053 template<class S>
1054 void serialize(S &s, const unsigned /*version*/) {
1055 debugSerializationBegin("SgAsmSynthesizedFieldDeclaration");
1056 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
1057 s & BOOST_SERIALIZATION_NVP(p_name);
1058 s & BOOST_SERIALIZATION_NVP(p_offset);
1059 debugSerializationEnd("SgAsmSynthesizedFieldDeclaration");
1060 }
1061#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1062public:
1063public:
1067 std::string const& get_name() const;
1068 void set_name(std::string const&);
1070 // FIXME[Robb P Matzke 2017-02-13]: Is this bytes, bits, or what?
1071 // Not clear if we want to store the offset explicitly
1072public:
1076 uint64_t const& get_offset() const;
1077 void set_offset(uint64_t const&);
1080public:
1083
1084public:
1087
1088public:
1091
1092protected:
1100#endif // SgAsmSynthesizedFieldDeclaration_OTHERS
1101#ifdef DOCUMENTATION
1102};
1103#endif // DOCUMENTATION
1104
1105
1107// SgAsmSynthesizedDataStructureDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
1109
1110DECLARE_LEAF_CLASS(AsmSynthesizedDataStructureDeclaration);
1111IS_SERIALIZABLE(AsmSynthesizedDataStructureDeclaration);
1112
1113#ifndef DOCUMENTATION
1114AsmSynthesizedDataStructureDeclaration.useSmallHeader(true);
1115#endif // !DOCUMENTATION
1116
1117DECLARE_HEADERS(AsmSynthesizedDataStructureDeclaration);
1118#if defined(SgAsmSynthesizedDataStructureDeclaration_HEADERS) || defined(DOCUMENTATION)
1119#include <sageContainer.h>
1120#endif // SgAsmSynthesizedDataStructureDeclaration_HEADERS
1121
1122#ifdef DOCUMENTATION
1134#endif // DOCUMENTATION
1135
1136 DECLARE_OTHERS(AsmSynthesizedDataStructureDeclaration);
1137#if defined(SgAsmSynthesizedDataStructureDeclaration_OTHERS) || defined(DOCUMENTATION)
1138
1139 //----------------------- Boost serialization for SgAsmSynthesizedDataStructureDeclaration -----------------------
1140#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1141private:
1142 friend class boost::serialization::access;
1143
1144 template<class S>
1145 void serialize(S &s, const unsigned /*version*/) {
1146 debugSerializationBegin("SgAsmSynthesizedDataStructureDeclaration");
1147 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
1148 debugSerializationEnd("SgAsmSynthesizedDataStructureDeclaration");
1149 }
1150#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1151protected:
1152 SgAsmSynthesizedDeclarationPtrList p_declarationList;
1153
1154public:
1157 p_declarationList.push_back(declaration);
1158 }
1159
1161 // Deprecated 2023-11
1163public:
1164 void append_declaration(SgAsmSynthesizedDeclaration*) ROSE_DEPRECATED("use appendDeclaration");
1165public:
1168
1169public:
1172
1173public:
1176
1177protected:
1184 void initializeProperties();
1185#endif // SgAsmSynthesizedDataStructureDeclaration_OTHERS
1186#ifdef DOCUMENTATION
1187};
1188#endif // DOCUMENTATION
1189
1190
1192// SgAsmStringStorage -- MACHINE GENERATED; DO NOT MODIFY --
1194
1195DECLARE_LEAF_CLASS(AsmStringStorage);
1196IS_SERIALIZABLE(AsmStringStorage);
1197
1198#ifndef DOCUMENTATION
1199AsmStringStorage.useSmallHeader(true);
1200#endif // !DOCUMENTATION
1201
1202DECLARE_HEADERS(AsmStringStorage);
1203#if defined(SgAsmStringStorage_HEADERS) || defined(DOCUMENTATION)
1204#include <Rose/BinaryAnalysis/Address.h>
1205#endif // SgAsmStringStorage_HEADERS
1206
1207#ifdef DOCUMENTATION
1210#endif // DOCUMENTATION
1211
1212#ifndef DOCUMENTATION
1213 AsmStringStorage.setDataPrototype(
1214 "SgAsmGenericStrtab*", "strtab", "= nullptr",
1215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1216#endif // !DOCUMENTATION
1217
1218#ifndef DOCUMENTATION
1219 AsmStringStorage.setDataPrototype(
1220 "std::string", "string", "",
1221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1222#endif // !DOCUMENTATION
1223
1224#ifndef DOCUMENTATION
1225 AsmStringStorage.setDataPrototype(
1226 "Rose::BinaryAnalysis::Address", "offset", "= 0",
1227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1228#endif // !DOCUMENTATION
1229
1230 DECLARE_OTHERS(AsmStringStorage);
1231#if defined(SgAsmStringStorage_OTHERS) || defined(DOCUMENTATION)
1232
1233 //----------------------- Boost serialization for SgAsmStringStorage -----------------------
1234#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1235private:
1236 friend class boost::serialization::access;
1237
1238 template<class S>
1239 void serialize(S &s, const unsigned /*version*/) {
1240 debugSerializationBegin("SgAsmStringStorage");
1241 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
1242 s & BOOST_SERIALIZATION_NVP(p_strtab);
1243 s & BOOST_SERIALIZATION_NVP(p_string);
1244 s & BOOST_SERIALIZATION_NVP(p_offset);
1245 debugSerializationEnd("SgAsmStringStorage");
1246 }
1247#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1248public:
1249public:
1257public:
1261 std::string const& get_string() const;
1262 void set_string(std::string const&);
1265public:
1272public:
1273 SgAsmStringStorage(SgAsmGenericStrtab *strtab, const std::string &string, Rose::BinaryAnalysis::Address offset);
1274
1275 void dump(FILE *s, const char *prefix, ssize_t idx) const;
1276
1277 /* Accessors. The set_* accessors are private because we don't want anyone messing with them. These data members are
1278 * used to control string allocation in ELF string tables and must only be modified by allocators in closely related
1279 * classes. For instance, to change the value of the string one should call SgAsmGenericString::set_string()
1280 * instead. */
1281
1282 private:
1283 friend class SgAsmStoredString; /*allowed to set private data members*/
1284 friend class SgAsmStoredStrtab; /*allowed to set private data members*/
1285public:
1288
1289public:
1292
1293protected:
1301#endif // SgAsmStringStorage_OTHERS
1302#ifdef DOCUMENTATION
1303};
1304#endif // DOCUMENTATION
1305
1306
1308// SgAsmStoredString -- MACHINE GENERATED; DO NOT MODIFY --
1310
1311DECLARE_LEAF_CLASS(AsmStoredString);
1312IS_SERIALIZABLE(AsmStoredString);
1313
1314#ifndef DOCUMENTATION
1315AsmStoredString.useSmallHeader(true);
1316#endif // !DOCUMENTATION
1317
1318DECLARE_HEADERS(AsmStoredString);
1319#if defined(SgAsmStoredString_HEADERS) || defined(DOCUMENTATION)
1320#include <Rose/BinaryAnalysis/Address.h>
1321#endif // SgAsmStoredString_HEADERS
1322
1323#ifdef DOCUMENTATION
1326#endif // DOCUMENTATION
1327
1328#ifndef DOCUMENTATION
1329 AsmStoredString.setDataPrototype(
1330 "SgAsmStringStorage*", "storage", "= nullptr",
1331 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1332#endif // !DOCUMENTATION
1333
1334 DECLARE_OTHERS(AsmStoredString);
1335#if defined(SgAsmStoredString_OTHERS) || defined(DOCUMENTATION)
1336
1337 //----------------------- Boost serialization for SgAsmStoredString -----------------------
1338#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1339private:
1340 friend class boost::serialization::access;
1341
1342 template<class S>
1343 void serialize(S &s, const unsigned /*version*/) {
1344 debugSerializationBegin("SgAsmStoredString");
1345 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericString);
1346 s & BOOST_SERIALIZATION_NVP(p_storage);
1347 debugSerializationEnd("SgAsmStoredString");
1348 }
1349#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1350public:
1351public:
1358public:
1361
1364
1367
1369 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
1370
1375
1377 virtual std::string get_string(bool escape=false) const override;
1378
1382 virtual void set_string(const std::string&) override;
1383
1388
1393public:
1396
1397public:
1400
1401protected:
1409#endif // SgAsmStoredString_OTHERS
1410#ifdef DOCUMENTATION
1411};
1412#endif // DOCUMENTATION
1413
1414
1416// SgAsmStaticData -- MACHINE GENERATED; DO NOT MODIFY --
1418
1419DECLARE_LEAF_CLASS(AsmStaticData);
1420IS_SERIALIZABLE(AsmStaticData);
1421
1422#ifndef DOCUMENTATION
1423AsmStaticData.useSmallHeader(true);
1424#endif // !DOCUMENTATION
1425
1426DECLARE_HEADERS(AsmStaticData);
1427#if defined(SgAsmStaticData_HEADERS) || defined(DOCUMENTATION)
1428#include <sageContainer.h>
1429#endif // SgAsmStaticData_HEADERS
1430
1431#ifdef DOCUMENTATION
1440#endif // DOCUMENTATION
1441
1442#ifndef DOCUMENTATION
1443 AsmStaticData.setDataPrototype(
1444 "SgUnsignedCharList", "rawBytes", "",
1445 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1446#endif // !DOCUMENTATION
1447
1448 DECLARE_OTHERS(AsmStaticData);
1449#if defined(SgAsmStaticData_OTHERS) || defined(DOCUMENTATION)
1450
1451 //----------------------- Boost serialization for SgAsmStaticData -----------------------
1452#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1453private:
1454 friend class boost::serialization::access;
1455
1456 template<class S>
1457 void serialize(S &s, const unsigned /*version*/) {
1458 debugSerializationBegin("SgAsmStaticData");
1459 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
1460 s & BOOST_SERIALIZATION_NVP(p_rawBytes);
1461 debugSerializationEnd("SgAsmStaticData");
1462 }
1463#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1464public:
1465public:
1472 SgUnsignedCharList const& get_rawBytes() const;
1473 void set_rawBytes(SgUnsignedCharList const&);
1475public:
1479 size_t get_size() const;
1480
1482 // Deprecated 2023-11
1484public:
1485 const SgUnsignedCharList& get_raw_bytes() const ROSE_DEPRECATED("use get_rawBytes");
1486 void set_raw_bytes(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_rawBytes");
1487public:
1489 virtual ~SgAsmStaticData();
1490
1491public:
1494
1495public:
1497 explicit SgAsmStaticData(Rose::BinaryAnalysis::Address const& address);
1498
1499protected:
1506 void initializeProperties();
1507#endif // SgAsmStaticData_OTHERS
1508#ifdef DOCUMENTATION
1509};
1510#endif // DOCUMENTATION
1511
1512
1514// SgAsmStackExpression -- MACHINE GENERATED; DO NOT MODIFY --
1516
1517DECLARE_LEAF_CLASS(AsmStackExpression);
1518IS_SERIALIZABLE(AsmStackExpression);
1519
1520#ifndef DOCUMENTATION
1521AsmStackExpression.useSmallHeader(true);
1522#endif // !DOCUMENTATION
1523
1524#ifdef DOCUMENTATION
1527#endif // DOCUMENTATION
1528
1529#ifndef DOCUMENTATION
1530 AsmStackExpression.setDataPrototype(
1531 "int", "stackPosition", "= 0",
1532 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1533#endif // !DOCUMENTATION
1534
1535 DECLARE_OTHERS(AsmStackExpression);
1536#if defined(SgAsmStackExpression_OTHERS) || defined(DOCUMENTATION)
1537
1538 //----------------------- Boost serialization for SgAsmStackExpression -----------------------
1539#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1540private:
1541 friend class boost::serialization::access;
1542
1543 template<class S>
1544 void serialize(S &s, const unsigned /*version*/) {
1545 debugSerializationBegin("SgAsmStackExpression");
1546 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1547 s & BOOST_SERIALIZATION_NVP(p_stackPosition);
1548 debugSerializationEnd("SgAsmStackExpression");
1549 }
1550#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1551public:
1552public:
1559 int const& get_stackPosition() const;
1560 void set_stackPosition(int const&);
1563 // Deprecated 2023-11
1565public:
1566 int get_stack_position() const ROSE_DEPRECATED("use get_stackPosition");
1567 void set_stack_position(int) ROSE_DEPRECATED("use set_stackPosition");
1568public:
1570 virtual ~SgAsmStackExpression();
1571
1572public:
1575
1576public:
1578 explicit SgAsmStackExpression(int const& stackPosition);
1579
1580protected:
1587 void initializeProperties();
1588#endif // SgAsmStackExpression_OTHERS
1589#ifdef DOCUMENTATION
1590};
1591#endif // DOCUMENTATION
1592
1593
1595// SgAsmRiscOperation -- MACHINE GENERATED; DO NOT MODIFY --
1597
1598DECLARE_LEAF_CLASS(AsmRiscOperation);
1599IS_SERIALIZABLE(AsmRiscOperation);
1600
1601#ifndef DOCUMENTATION
1602AsmRiscOperation.useSmallHeader(true);
1603#endif // !DOCUMENTATION
1604
1605DECLARE_HEADERS(AsmRiscOperation);
1606#if defined(SgAsmRiscOperation_HEADERS) || defined(DOCUMENTATION)
1607#ifdef ROSE_SgAsmRiscOperation_IMPL
1608#include <SgAsmExprListExp.h>
1609#endif
1610#endif // SgAsmRiscOperation_HEADERS
1611
1612#ifdef DOCUMENTATION
1622#endif // DOCUMENTATION
1623
1624#ifndef DOCUMENTATION
1625 AsmRiscOperation.setDataPrototype(
1626 "SgAsmRiscOperation::RiscOperator", "riscOperator", "= OP_NONE",
1627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1628#endif // !DOCUMENTATION
1629
1630#ifndef DOCUMENTATION
1631 AsmRiscOperation.setDataPrototype(
1632 "SgAsmExprListExp*", "operands", "= nullptr",
1633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1634#endif // !DOCUMENTATION
1635
1636 DECLARE_OTHERS(AsmRiscOperation);
1637#if defined(SgAsmRiscOperation_OTHERS) || defined(DOCUMENTATION)
1638
1639 //----------------------- Boost serialization for SgAsmRiscOperation -----------------------
1640#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1641private:
1642 friend class boost::serialization::access;
1643
1644 template<class S>
1645 void serialize(S &s, const unsigned /*version*/) {
1646 debugSerializationBegin("SgAsmRiscOperation");
1647 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1648 s & BOOST_SERIALIZATION_NVP(p_riscOperator);
1649 s & BOOST_SERIALIZATION_NVP(p_operands);
1650 debugSerializationEnd("SgAsmRiscOperation");
1651 }
1652#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1654 // Local types
1656public:
1663 OP_NONE,
1664 OP_bottom,
1665 OP_undefined,
1666 OP_unspecified,
1667 OP_filterCallTarget,
1668 OP_filterReturnTarget,
1669 OP_filterIndirectJumpTarget,
1670 OP_hlt,
1671 OP_cpuid,
1672 OP_rdtsc,
1673 OP_and_,
1674 OP_or_,
1675 OP_xor_,
1676 OP_invert,
1677 OP_extract,
1678 OP_concat,
1679 OP_leastSignificantSetBit,
1680 OP_mostSignificantSetBit,
1681 OP_rotateLeft,
1682 OP_rotateRight,
1683 OP_shiftLeft,
1684 OP_shiftRight,
1685 OP_shiftRightArithmetic,
1686 OP_equalToZero,
1687 OP_ite,
1688 OP_isEqual,
1689 OP_isNotEqual,
1690 OP_isUnsignedLessThan,
1691 OP_isUnsignedLessThanOrEqual,
1692 OP_isUnsignedGreaterThan,
1693 OP_isUnsignedGreaterThanOrEqual,
1694 OP_isSignedLessThan,
1695 OP_isSignedLessThanOrEqual,
1696 OP_isSignedGreaterThan,
1697 OP_isSignedGreaterThanOrEqual,
1698 OP_unsignedExtend,
1699 OP_signExtend,
1702 OP_subtract,
1703 OP_negate,
1704 OP_signedDivide,
1705 OP_signedModulo,
1706 OP_signedMultiply,
1707 OP_unsignedDivide,
1708 OP_unsignedModulo,
1709 OP_unsignedMultiply,
1710 OP_interrupt,
1711 OP_readRegister,
1712 OP_peekRegister,
1713 OP_writeRegister,
1715 OP_peekMemory,
1717 OP_N_OPERATORS // MUST BE LAST!
1719
1721 // Properties
1723public:
1724 // Note that the qualification for the type is necessary only for ROSETTA. Remove it when ROSETTA finally goes away.
1725public:
1736public:
1747public:
1750
1751public:
1754
1755public:
1758
1759protected:
1767#endif // SgAsmRiscOperation_OTHERS
1768#ifdef DOCUMENTATION
1769};
1770#endif // DOCUMENTATION
1771
1772
1774// SgAsmRegisterNames -- MACHINE GENERATED; DO NOT MODIFY --
1776
1777DECLARE_LEAF_CLASS(AsmRegisterNames);
1778IS_SERIALIZABLE(AsmRegisterNames);
1779
1780#ifndef DOCUMENTATION
1781AsmRegisterNames.useSmallHeader(true);
1782#endif // !DOCUMENTATION
1783
1784DECLARE_HEADERS(AsmRegisterNames);
1785#if defined(SgAsmRegisterNames_HEADERS) || defined(DOCUMENTATION)
1786#include <sageContainer.h>
1787#endif // SgAsmRegisterNames_HEADERS
1788
1789#ifdef DOCUMENTATION
1792#endif // DOCUMENTATION
1793
1794#ifndef DOCUMENTATION
1795 AsmRegisterNames.setDataPrototype(
1796 "SgAsmRegisterReferenceExpressionPtrList", "registers", "",
1797 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1798#endif // !DOCUMENTATION
1799
1800#ifndef DOCUMENTATION
1801 AsmRegisterNames.setDataPrototype(
1802 "unsigned", "mask", "= 0",
1803 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1804#endif // !DOCUMENTATION
1805
1806 DECLARE_OTHERS(AsmRegisterNames);
1807#if defined(SgAsmRegisterNames_OTHERS) || defined(DOCUMENTATION)
1808
1809 //----------------------- Boost serialization for SgAsmRegisterNames -----------------------
1810#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1811private:
1812 friend class boost::serialization::access;
1813
1814 template<class S>
1815 void serialize(S &s, const unsigned /*version*/) {
1816 debugSerializationBegin("SgAsmRegisterNames");
1817 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1818 s & BOOST_SERIALIZATION_NVP(p_registers);
1819 s & BOOST_SERIALIZATION_NVP(p_mask);
1820 debugSerializationEnd("SgAsmRegisterNames");
1821 }
1822#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1823public:
1824public:
1831 SgAsmRegisterReferenceExpressionPtrList const& get_registers() const;
1832 SgAsmRegisterReferenceExpressionPtrList& get_registers();
1833 void set_registers(SgAsmRegisterReferenceExpressionPtrList const&);
1836public:
1843 unsigned const& get_mask() const;
1844 void set_mask(unsigned const&);
1847public:
1850
1851public:
1854
1855protected:
1863#endif // SgAsmRegisterNames_OTHERS
1864#ifdef DOCUMENTATION
1865};
1866#endif // DOCUMENTATION
1867
1868
1870// SgAsmPowerpcInstruction -- MACHINE GENERATED; DO NOT MODIFY --
1872
1873DECLARE_LEAF_CLASS(AsmPowerpcInstruction);
1874IS_SERIALIZABLE(AsmPowerpcInstruction);
1875
1876#ifndef DOCUMENTATION
1877AsmPowerpcInstruction.useSmallHeader(true);
1878#endif // !DOCUMENTATION
1879
1880DECLARE_HEADERS(AsmPowerpcInstruction);
1881#if defined(SgAsmPowerpcInstruction_HEADERS) || defined(DOCUMENTATION)
1882#include <Rose/BinaryAnalysis/InstructionEnumsPowerpc.h>
1883#endif // SgAsmPowerpcInstruction_HEADERS
1884
1885#ifdef DOCUMENTATION
1888#endif // DOCUMENTATION
1889
1890#ifndef DOCUMENTATION
1891 AsmPowerpcInstruction.setDataPrototype(
1892 "Rose::BinaryAnalysis::PowerpcInstructionKind", "kind", "= Rose::BinaryAnalysis::powerpc_unknown_instruction",
1893 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1894#endif // !DOCUMENTATION
1895
1896 DECLARE_OTHERS(AsmPowerpcInstruction);
1897#if defined(SgAsmPowerpcInstruction_OTHERS) || defined(DOCUMENTATION)
1898
1899 //----------------------- Boost serialization for SgAsmPowerpcInstruction -----------------------
1900#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1901private:
1902 friend class boost::serialization::access;
1903
1904 template<class S>
1905 void serialize(S &s, const unsigned /*version*/) {
1906 debugSerializationBegin("SgAsmPowerpcInstruction");
1907 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
1908 s & BOOST_SERIALIZATION_NVP(p_kind);
1909 debugSerializationEnd("SgAsmPowerpcInstruction");
1910 }
1911#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1912public:
1913public:
1920 Rose::BinaryAnalysis::PowerpcInstructionKind const& get_kind() const;
1921 void set_kind(Rose::BinaryAnalysis::PowerpcInstructionKind const&);
1923public:
1929 std::string conditionalBranchDescription() const;
1930
1936
1937 // Overrides are documented in the base class
1938 virtual unsigned get_anyKind() const override;
1939public:
1942
1943public:
1946
1947public:
1950 uint8_t const& architectureId,
1951 Rose::BinaryAnalysis::PowerpcInstructionKind const& kind);
1952
1953protected:
1961#endif // SgAsmPowerpcInstruction_OTHERS
1962#ifdef DOCUMENTATION
1963};
1964#endif // DOCUMENTATION
1965
1966
1968// SgAsmPointerType -- MACHINE GENERATED; DO NOT MODIFY --
1970
1971DECLARE_LEAF_CLASS(AsmPointerType);
1972IS_SERIALIZABLE(AsmPointerType);
1973
1974#ifndef DOCUMENTATION
1975AsmPointerType.useSmallHeader(true);
1976#endif // !DOCUMENTATION
1977
1978#ifdef DOCUMENTATION
1981#endif // DOCUMENTATION
1982
1983#ifndef DOCUMENTATION
1984 AsmPointerType.setDataPrototype(
1985 "SgAsmType *", "subtype", "",
1986 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1987#endif // !DOCUMENTATION
1988
1989 DECLARE_OTHERS(AsmPointerType);
1990#if defined(SgAsmPointerType_OTHERS) || defined(DOCUMENTATION)
1991
1992 //----------------------- Boost serialization for SgAsmPointerType -----------------------
1993#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1994private:
1995 friend class boost::serialization::access;
1996
1997 template<class S>
1998 void serialize(S &s, const unsigned /*version*/) {
1999 debugSerializationBegin("SgAsmPointerType");
2000 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
2001 s & BOOST_SERIALIZATION_NVP(p_subtype);
2002 debugSerializationEnd("SgAsmPointerType");
2003 }
2004#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2005public:
2006public:
2007 SgAsmType * const& get_subtype() const;
2008 void set_subtype(SgAsmType * const&);
2009public:
2012
2015
2016 virtual void check() const override;
2017 virtual std::string toString() const override;
2018public:
2021
2022public:
2025
2026protected:
2034#endif // SgAsmPointerType_OTHERS
2035#ifdef DOCUMENTATION
2036};
2037#endif // DOCUMENTATION
2038
2039
2041// SgAsmPEStringSection -- MACHINE GENERATED; DO NOT MODIFY --
2043
2044DECLARE_LEAF_CLASS(AsmPEStringSection);
2045IS_SERIALIZABLE(AsmPEStringSection);
2046
2047#ifndef DOCUMENTATION
2048AsmPEStringSection.useSmallHeader(true);
2049#endif // !DOCUMENTATION
2050
2051DECLARE_HEADERS(AsmPEStringSection);
2052#if defined(SgAsmPEStringSection_HEADERS) || defined(DOCUMENTATION)
2053#include <Rose/BinaryAnalysis/Address.h>
2054#endif // SgAsmPEStringSection_HEADERS
2055
2056#ifdef DOCUMENTATION
2059#endif // DOCUMENTATION
2060
2061#ifndef DOCUMENTATION
2062 AsmPEStringSection.setDataPrototype(
2063 "SgAsmCoffStrtab*", "strtab", "= nullptr",
2064 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2065#endif // !DOCUMENTATION
2066
2067 DECLARE_OTHERS(AsmPEStringSection);
2068#if defined(SgAsmPEStringSection_OTHERS) || defined(DOCUMENTATION)
2069
2070 //----------------------- Boost serialization for SgAsmPEStringSection -----------------------
2071#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2072private:
2073 friend class boost::serialization::access;
2074
2075 template<class S>
2076 void serialize(S &s, const unsigned /*version*/) {
2077 debugSerializationBegin("SgAsmPEStringSection");
2078 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
2079 s & BOOST_SERIALIZATION_NVP(p_strtab);
2080 debugSerializationEnd("SgAsmPEStringSection");
2081 }
2082#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2083public:
2084public:
2093public:
2095 virtual SgAsmPEStringSection* parse() override;
2096 virtual bool reallocate() override;
2097 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2098 virtual void set_size(Rose::BinaryAnalysis::Address newsize) override;
2099 virtual void unparse(std::ostream&) const override;
2100public:
2103
2104public:
2107
2108protected:
2116#endif // SgAsmPEStringSection_OTHERS
2117#ifdef DOCUMENTATION
2118};
2119#endif // DOCUMENTATION
2120
2121
2123// SgAsmPESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
2125
2126DECLARE_LEAF_CLASS(AsmPESectionTableEntry);
2127IS_SERIALIZABLE(AsmPESectionTableEntry);
2128
2129#ifndef DOCUMENTATION
2130AsmPESectionTableEntry.useSmallHeader(true);
2131#endif // !DOCUMENTATION
2132
2133DECLARE_HEADERS(AsmPESectionTableEntry);
2134#if defined(SgAsmPESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
2135#include <Rose/BinaryAnalysis/Address.h>
2136#endif // SgAsmPESectionTableEntry_HEADERS
2137
2138#ifdef DOCUMENTATION
2141#endif // DOCUMENTATION
2142
2143#ifndef DOCUMENTATION
2144 AsmPESectionTableEntry.setDataPrototype(
2145 "std::string", "name", "",
2146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2147#endif // !DOCUMENTATION
2148
2149#ifndef DOCUMENTATION
2150 AsmPESectionTableEntry.setDataPrototype(
2151 "Rose::BinaryAnalysis::Address", "virtual_size", "= 0",
2152 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2153#endif // !DOCUMENTATION
2154
2155#ifndef DOCUMENTATION
2156 AsmPESectionTableEntry.setDataPrototype(
2157 "Rose::BinaryAnalysis::Address", "rva", "= 0",
2158 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2159#endif // !DOCUMENTATION
2160
2161#ifndef DOCUMENTATION
2162 AsmPESectionTableEntry.setDataPrototype(
2163 "Rose::BinaryAnalysis::Address", "physical_size", "= 0",
2164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2165#endif // !DOCUMENTATION
2166
2167#ifndef DOCUMENTATION
2168 AsmPESectionTableEntry.setDataPrototype(
2169 "Rose::BinaryAnalysis::Address", "physical_offset", "= 0",
2170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2171#endif // !DOCUMENTATION
2172
2173#ifndef DOCUMENTATION
2174 AsmPESectionTableEntry.setDataPrototype(
2175 "unsigned", "coff_line_nums", "= 0",
2176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2177#endif // !DOCUMENTATION
2178
2179#ifndef DOCUMENTATION
2180 AsmPESectionTableEntry.setDataPrototype(
2181 "unsigned", "n_relocs", "= 0",
2182 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2183#endif // !DOCUMENTATION
2184
2185#ifndef DOCUMENTATION
2186 AsmPESectionTableEntry.setDataPrototype(
2187 "unsigned", "n_coff_line_nums", "= 0",
2188 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2189#endif // !DOCUMENTATION
2190
2191#ifndef DOCUMENTATION
2192 AsmPESectionTableEntry.setDataPrototype(
2193 "unsigned", "flags", "= 0",
2194 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2195#endif // !DOCUMENTATION
2196
2197 DECLARE_OTHERS(AsmPESectionTableEntry);
2198#if defined(SgAsmPESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
2199
2200 //----------------------- Boost serialization for SgAsmPESectionTableEntry -----------------------
2201#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2202private:
2203 friend class boost::serialization::access;
2204
2205 template<class S>
2206 void serialize(S &s, const unsigned /*version*/) {
2207 debugSerializationBegin("SgAsmPESectionTableEntry");
2208 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2209 s & BOOST_SERIALIZATION_NVP(p_name);
2210 s & BOOST_SERIALIZATION_NVP(p_virtual_size);
2211 s & BOOST_SERIALIZATION_NVP(p_rva);
2212 s & BOOST_SERIALIZATION_NVP(p_physical_size);
2213 s & BOOST_SERIALIZATION_NVP(p_physical_offset);
2214 s & BOOST_SERIALIZATION_NVP(p_coff_line_nums);
2215 s & BOOST_SERIALIZATION_NVP(p_n_relocs);
2216 s & BOOST_SERIALIZATION_NVP(p_n_coff_line_nums);
2217 s & BOOST_SERIALIZATION_NVP(p_flags);
2218 debugSerializationEnd("SgAsmPESectionTableEntry");
2219 }
2220#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2222 // Local types
2224public:
2225#ifdef _MSC_VER
2226# pragma pack (1)
2227#endif
2228 /* File format of a section table entry. All fields are little endian. Sections are ordered by RVA. */
2230 char name[8]; /* NUL-padded */
2231 uint32_t virtual_size; /* virtual memory size, >= physical_size and difference is zero filled */
2232 uint32_t rva; /* relative virt addr wrt Image Base; multiple of section_align; dense space */
2233 uint32_t physical_size; /* bytes of initialized data on disk; multiple of file_align & <= virtual_size*/
2234 uint32_t physical_offset; /* location of initialized data on disk; multiple of file_align */
2235 uint32_t coff_line_nums; /* file offset of COFF line number info or zero */
2236 uint32_t n_relocs; /* number of relocation entries; should be zero for executables */
2237 uint32_t n_coff_line_nums; /* number of COFF line number entries */
2238 uint32_t flags; /* PESectionFlags bits: code, data, caching, paging, shared, permissions, etc.*/
2239 }
2240#if !defined(SWIG) && !defined(_MSC_VER)
2241 __attribute__((packed))
2242#endif
2243 ;
2244#ifdef _MSC_VER
2245# pragma pack ()
2246#endif
2247
2248 /* These come from the windows PE documentation and
2249 * http://en.wikibooks.org/wiki/X86_Disassembly/Windows_Executable_Files */
2250 enum PESectionFlags {
2251 OF_CODE = 0x00000020, /* section contains code */
2252 OF_IDATA = 0x00000040, /* initialized data */
2253 OF_UDATA = 0x00000080, /* uninitialized data */
2254 OF_INFO = 0x00000200, /* comments or some other type of info */
2255 OF_REMOVE = 0x00000800, /* section will not become part of image */
2256 OF_COMDAT = 0x00001000, /* section contains comdat */
2257 OF_NO_DEFER_SPEC_EXC= 0x00004000, /* reset speculative exception handling bits in the TLB entires for
2258 * this section */
2259 OF_GPREL = 0x00008000, /* section content can be access relative to GP */
2260 OF_ALIGN_1 = 0x00100000, /* no alignment */
2261 OF_ALIGN_2 = 0x00200000, /* 2-byte alignment */
2262 OF_ALIGN_4 = 0x00300000, /* 4-byte alignment */
2263 OF_ALIGN_8 = 0x00400000, /* 8-byte alignment */
2264 OF_ALIGN_16 = 0x00500000, /* 16-byte alignment (default if not other alignment specified) */
2265 OF_ALIGN_32 = 0x00600000, /* 32-byte alignment */
2266 OF_ALIGN_64 = 0x00700000, /* 64-byte alignment */
2267 OF_ALIGN_128 = 0x00800000, /* 128-byte alignment */
2268 OF_ALIGN_256 = 0x00900000, /* 256-byte alignment */
2269 OF_ALIGN_512 = 0x00a00000, /* 512-byte alignment */
2270 OF_ALIGN_1k = 0x00b00000, /* 1024-byte alignment */
2271 OF_ALIGN_2k = 0x00c00000, /* 2048-byte alignment */
2272 OF_ALIGN_4k = 0x00d00000, /* 4096-byte alignment */
2273 OF_ALIGN_8k = 0x00e00000, /* 8192-byte alignment */
2274 OF_ALIGN_MASK = 0x00f00000, /* mask for alignment value */
2275 OF_NRELOC_OVFL = 0x01000000, /* section contains extended relocations */
2276 OF_DISCARDABLE = 0x02000000, /* can be discarded */
2277 OF_NO_CACHE = 0x04000000, /* section must not be cached */
2278 OF_NO_PAGING = 0x08000000, /* section is not pageable */
2279 OF_SHARED = 0x10000000, /* section is shared */
2280 OF_EXECUTABLE = 0x20000000, /* execute permission */
2281 OF_READABLE = 0x40000000, /* read permission */
2282 OF_WRITABLE = 0x80000000 /* write permission */
2283 };
2284
2286 // Properties
2288public:
2289public:
2295 std::string const& get_name() const;
2296 void set_name(std::string const&);
2299public:
2309public:
2319public:
2329public:
2339public:
2345 unsigned const& get_coff_line_nums() const;
2346 void set_coff_line_nums(unsigned const&);
2349public:
2355 unsigned const& get_n_relocs() const;
2356 void set_n_relocs(unsigned const&);
2359public:
2365 unsigned const& get_n_coff_line_nums() const;
2366 void set_n_coff_line_nums(unsigned const&);
2369public:
2375 unsigned const& get_flags() const;
2376 void set_flags(unsigned const&);
2379 // Functions
2381public:
2383
2387 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
2388
2390 // Deprecated 2023-11
2392public:
2393 void update_from_section(SgAsmPESection*) ROSE_DEPRECATED("use updateFromSection");
2394public:
2396 virtual ~SgAsmPESectionTableEntry();
2397
2398public:
2401
2402protected:
2409 void initializeProperties();
2410#endif // SgAsmPESectionTableEntry_OTHERS
2411#ifdef DOCUMENTATION
2412};
2413#endif // DOCUMENTATION
2414
2415
2417// SgAsmPESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
2419
2420DECLARE_LEAF_CLASS(AsmPESectionTable);
2421IS_SERIALIZABLE(AsmPESectionTable);
2422
2423#ifndef DOCUMENTATION
2424AsmPESectionTable.useSmallHeader(true);
2425#endif // !DOCUMENTATION
2426
2427#ifdef DOCUMENTATION
2430#endif // DOCUMENTATION
2431
2432 DECLARE_OTHERS(AsmPESectionTable);
2433#if defined(SgAsmPESectionTable_OTHERS) || defined(DOCUMENTATION)
2434
2435 //----------------------- Boost serialization for SgAsmPESectionTable -----------------------
2436#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2437private:
2438 friend class boost::serialization::access;
2439
2440 template<class S>
2441 void serialize(S &s, const unsigned /*version*/) {
2442 debugSerializationBegin("SgAsmPESectionTable");
2443 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
2444 debugSerializationEnd("SgAsmPESectionTable");
2445 }
2446#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2447public:
2449 virtual SgAsmPESectionTable* parse() override;
2450
2456 virtual bool reallocate() override;
2457 virtual void unparse(std::ostream&) const override;
2458 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2459
2461 // Deprecated 2023-11
2463public:
2464 void add_section(SgAsmPESection*) ROSE_DEPRECATED("use addSection");
2465public:
2467 virtual ~SgAsmPESectionTable();
2468
2469public:
2472
2473protected:
2480 void initializeProperties();
2481#endif // SgAsmPESectionTable_OTHERS
2482#ifdef DOCUMENTATION
2483};
2484#endif // DOCUMENTATION
2485
2486
2488// SgAsmPERVASizePairList -- MACHINE GENERATED; DO NOT MODIFY --
2490
2491DECLARE_LEAF_CLASS(AsmPERVASizePairList);
2492IS_SERIALIZABLE(AsmPERVASizePairList);
2493
2494#ifndef DOCUMENTATION
2495AsmPERVASizePairList.useSmallHeader(true);
2496#endif // !DOCUMENTATION
2497
2498DECLARE_HEADERS(AsmPERVASizePairList);
2499#if defined(SgAsmPERVASizePairList_HEADERS) || defined(DOCUMENTATION)
2500#include <sageContainer.h>
2501#endif // SgAsmPERVASizePairList_HEADERS
2502
2503#ifdef DOCUMENTATION
2509#endif // DOCUMENTATION
2510
2511#ifndef DOCUMENTATION
2512 AsmPERVASizePairList.setDataPrototype(
2513 "SgAsmPERVASizePairPtrList", "pairs", "",
2514 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2515#endif // !DOCUMENTATION
2516
2517 DECLARE_OTHERS(AsmPERVASizePairList);
2518#if defined(SgAsmPERVASizePairList_OTHERS) || defined(DOCUMENTATION)
2519
2520 //----------------------- Boost serialization for SgAsmPERVASizePairList -----------------------
2521#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2522private:
2523 friend class boost::serialization::access;
2524
2525 template<class S>
2526 void serialize(S &s, const unsigned /*version*/) {
2527 debugSerializationBegin("SgAsmPERVASizePairList");
2528 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2529 s & BOOST_SERIALIZATION_NVP(p_pairs);
2530 debugSerializationEnd("SgAsmPERVASizePairList");
2531 }
2532#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2533public:
2534public:
2538 SgAsmPERVASizePairPtrList const& get_pairs() const;
2539 SgAsmPERVASizePairPtrList& get_pairs();
2540 void set_pairs(SgAsmPERVASizePairPtrList const&);
2542public:
2543 explicit SgAsmPERVASizePairList(SgAsmPEFileHeader *parent);
2544public:
2547
2548public:
2551
2552protected:
2560#endif // SgAsmPERVASizePairList_OTHERS
2561#ifdef DOCUMENTATION
2562};
2563#endif // DOCUMENTATION
2564
2565
2567// SgAsmPERVASizePair -- MACHINE GENERATED; DO NOT MODIFY --
2569
2570DECLARE_LEAF_CLASS(AsmPERVASizePair);
2571IS_SERIALIZABLE(AsmPERVASizePair);
2572
2573#ifndef DOCUMENTATION
2574AsmPERVASizePair.useSmallHeader(true);
2575#endif // !DOCUMENTATION
2576
2577DECLARE_HEADERS(AsmPERVASizePair);
2578#if defined(SgAsmPERVASizePair_HEADERS) || defined(DOCUMENTATION)
2579#include <Rose/BinaryAnalysis/Address.h>
2580#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
2581#endif // SgAsmPERVASizePair_HEADERS
2582
2583#ifdef DOCUMENTATION
2586#endif // DOCUMENTATION
2587
2588#ifndef DOCUMENTATION
2589 AsmPERVASizePair.setDataPrototype(
2590 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_rva", "",
2591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2592#endif // !DOCUMENTATION
2593
2594#ifndef DOCUMENTATION
2595 AsmPERVASizePair.setDataPrototype(
2596 "Rose::BinaryAnalysis::Address", "e_size", "= 0",
2597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2598#endif // !DOCUMENTATION
2599
2600#ifndef DOCUMENTATION
2601 AsmPERVASizePair.setDataPrototype(
2602 "SgAsmGenericSection*", "section", "= nullptr",
2603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2604#endif // !DOCUMENTATION
2605
2606 DECLARE_OTHERS(AsmPERVASizePair);
2607#if defined(SgAsmPERVASizePair_OTHERS) || defined(DOCUMENTATION)
2608
2609 //----------------------- Boost serialization for SgAsmPERVASizePair -----------------------
2610#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2611private:
2612 friend class boost::serialization::access;
2613
2614 template<class S>
2615 void serialize(S &s, const unsigned /*version*/) {
2616 debugSerializationBegin("SgAsmPERVASizePair");
2617 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2618 s & BOOST_SERIALIZATION_NVP(p_e_rva);
2619 s & BOOST_SERIALIZATION_NVP(p_e_size);
2620 s & BOOST_SERIALIZATION_NVP(p_section);
2621 debugSerializationEnd("SgAsmPERVASizePair");
2622 }
2623#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2625 // Local types
2627public:
2628#ifdef _MSC_VER
2629# pragma pack (1)
2630#endif
2635 uint32_t e_rva;
2636 uint32_t e_size;
2637 }
2638#if !defined(SWIG) && !defined(_MSC_VER)
2639 __attribute__((packed))
2640#endif
2641 ;
2642#ifdef _MSC_VER
2643# pragma pack ()
2644#endif
2645
2647 // Properties
2649public:
2650public:
2661public:
2671public:
2679 // Functions
2681public:
2684
2690
2695
2696 void *encode(SgAsmPERVASizePair::RVASizePair_disk *disk) const;
2697public:
2700
2701public:
2704
2705protected:
2713#endif // SgAsmPERVASizePair_OTHERS
2714#ifdef DOCUMENTATION
2715};
2716#endif // DOCUMENTATION
2717
2718
2720// SgAsmPEImportSection -- MACHINE GENERATED; DO NOT MODIFY --
2722
2723DECLARE_LEAF_CLASS(AsmPEImportSection);
2724IS_SERIALIZABLE(AsmPEImportSection);
2725
2726#ifndef DOCUMENTATION
2727AsmPEImportSection.useSmallHeader(true);
2728#endif // !DOCUMENTATION
2729
2730DECLARE_HEADERS(AsmPEImportSection);
2731#if defined(SgAsmPEImportSection_HEADERS) || defined(DOCUMENTATION)
2732#include <Rose/BinaryAnalysis/Address.h>
2733#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
2734
2735#ifdef ROSE_SgAsmPEImportSection_IMPL
2736#include <SgAsmPEImportDirectoryList.h>
2737#endif
2738#endif // SgAsmPEImportSection_HEADERS
2739
2740#ifdef DOCUMENTATION
2884#endif // DOCUMENTATION
2885
2886#ifndef DOCUMENTATION
2887 AsmPEImportSection.setDataPrototype(
2888 "SgAsmPEImportDirectoryList*", "importDirectories", "= createAndParent<SgAsmPEImportDirectoryList>(this)",
2889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2890#endif // !DOCUMENTATION
2891
2892 DECLARE_OTHERS(AsmPEImportSection);
2893#if defined(SgAsmPEImportSection_OTHERS) || defined(DOCUMENTATION)
2894
2895 //----------------------- Boost serialization for SgAsmPEImportSection -----------------------
2896#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2897private:
2898 friend class boost::serialization::access;
2899
2900 template<class S>
2901 void serialize(S &s, const unsigned /*version*/) {
2902 debugSerializationBegin("SgAsmPEImportSection");
2903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
2904 s & BOOST_SERIALIZATION_NVP(p_importDirectories);
2905 debugSerializationEnd("SgAsmPEImportSection");
2906 }
2907#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2908public:
2909public:
2918public:
2920 virtual SgAsmPEImportSection *parse() override;
2921 virtual bool reallocate() override;
2922 virtual void unparse(std::ostream&) const override;
2923 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2924
2927
2930 static bool showImportMessage();
2931 static void importMessageReset();
2932
2941
2942private:
2943 static size_t mesg_nprinted; //counter for import_mesg()
2944
2946 // Deprecated 2023-11
2948public:
2949 SgAsmPEImportDirectoryList* get_import_directories() const ROSE_DEPRECATED("use get_importDirectories");
2950 void set_import_directories(SgAsmPEImportDirectoryList*) ROSE_DEPRECATED("use set_importDirectories");
2951 void add_import_directory(SgAsmPEImportDirectory*) ROSE_DEPRECATED("use addImportDirectory");
2952 void remove_import_directory(SgAsmPEImportDirectory*) ROSE_DEPRECATED("use removeImportDirectory");
2953 static bool show_import_mesg() ROSE_DEPRECATED("use showImportMessage");
2954 static void import_mesg_reset() ROSE_DEPRECATED("use importMessageReset");
2955 size_t reallocate_iats(Rose::BinaryAnalysis::RelativeVirtualAddress) ROSE_DEPRECATED("use reallocateIats");
2956public:
2959
2960public:
2963
2964protected:
2972#endif // SgAsmPEImportSection_OTHERS
2973#ifdef DOCUMENTATION
2974};
2975#endif // DOCUMENTATION
2976
2977
2979// SgAsmPEImportItemList -- MACHINE GENERATED; DO NOT MODIFY --
2981
2982DECLARE_LEAF_CLASS(AsmPEImportItemList);
2983IS_SERIALIZABLE(AsmPEImportItemList);
2984
2985#ifndef DOCUMENTATION
2986AsmPEImportItemList.useSmallHeader(true);
2987#endif // !DOCUMENTATION
2988
2989DECLARE_HEADERS(AsmPEImportItemList);
2990#if defined(SgAsmPEImportItemList_HEADERS) || defined(DOCUMENTATION)
2991#include <sageContainer.h>
2992#endif // SgAsmPEImportItemList_HEADERS
2993
2994#ifdef DOCUMENTATION
3000#endif // DOCUMENTATION
3001
3002#ifndef DOCUMENTATION
3003 AsmPEImportItemList.setDataPrototype(
3004 "SgAsmPEImportItemPtrList", "vector", "",
3005 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3006#endif // !DOCUMENTATION
3007
3008 DECLARE_OTHERS(AsmPEImportItemList);
3009#if defined(SgAsmPEImportItemList_OTHERS) || defined(DOCUMENTATION)
3010
3011 //----------------------- Boost serialization for SgAsmPEImportItemList -----------------------
3012#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3013private:
3014 friend class boost::serialization::access;
3015
3016 template<class S>
3017 void serialize(S &s, const unsigned /*version*/) {
3018 debugSerializationBegin("SgAsmPEImportItemList");
3019 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3020 s & BOOST_SERIALIZATION_NVP(p_vector);
3021 debugSerializationEnd("SgAsmPEImportItemList");
3022 }
3023#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3024public:
3025public:
3029 SgAsmPEImportItemPtrList const& get_vector() const;
3030 SgAsmPEImportItemPtrList& get_vector();
3031 void set_vector(SgAsmPEImportItemPtrList const&);
3034public:
3037
3038public:
3041
3042protected:
3050#endif // SgAsmPEImportItemList_OTHERS
3051#ifdef DOCUMENTATION
3052};
3053#endif // DOCUMENTATION
3054
3055
3057// SgAsmPEImportItem -- MACHINE GENERATED; DO NOT MODIFY --
3059
3060DECLARE_LEAF_CLASS(AsmPEImportItem);
3061IS_SERIALIZABLE(AsmPEImportItem);
3062
3063#ifndef DOCUMENTATION
3064AsmPEImportItem.useSmallHeader(true);
3065#endif // !DOCUMENTATION
3066
3067DECLARE_HEADERS(AsmPEImportItem);
3068#if defined(SgAsmPEImportItem_HEADERS) || defined(DOCUMENTATION)
3069#include <Rose/BinaryAnalysis/Address.h>
3070#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3071
3072#ifdef ROSE_SgAsmPEImportItem_IMPL
3073#include <SgAsmBasicString.h>
3074#endif
3075#endif // SgAsmPEImportItem_HEADERS
3076
3077#ifdef DOCUMENTATION
3086#endif // DOCUMENTATION
3087
3088#ifndef DOCUMENTATION
3089 AsmPEImportItem.setDataPrototype(
3090 "bool", "by_ordinal", "= true",
3091 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3092#endif // !DOCUMENTATION
3093
3094#ifndef DOCUMENTATION
3095 AsmPEImportItem.setDataPrototype(
3096 "unsigned", "ordinal", "= 0",
3097 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3098#endif // !DOCUMENTATION
3099
3100#ifndef DOCUMENTATION
3101 AsmPEImportItem.setDataPrototype(
3102 "unsigned", "hint", "= 0",
3103 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3104#endif // !DOCUMENTATION
3105
3106#ifndef DOCUMENTATION
3107 AsmPEImportItem.setDataPrototype(
3108 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
3109 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3110#endif // !DOCUMENTATION
3111
3112#ifndef DOCUMENTATION
3113 AsmPEImportItem.setDataPrototype(
3114 "Rose::BinaryAnalysis::RelativeVirtualAddress", "hintname_rva", "",
3115 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3116#endif // !DOCUMENTATION
3117
3118#ifndef DOCUMENTATION
3119 AsmPEImportItem.setDataPrototype(
3120 "size_t", "hintname_nalloc", "= 0",
3121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3122#endif // !DOCUMENTATION
3123
3124#ifndef DOCUMENTATION
3125 AsmPEImportItem.setDataPrototype(
3126 "Rose::BinaryAnalysis::RelativeVirtualAddress", "bound_rva", "",
3127 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3128#endif // !DOCUMENTATION
3129
3130#ifndef DOCUMENTATION
3131 AsmPEImportItem.setDataPrototype(
3132 "bool", "iat_written", "= false",
3133 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3134#endif // !DOCUMENTATION
3135
3136 DECLARE_OTHERS(AsmPEImportItem);
3137#if defined(SgAsmPEImportItem_OTHERS) || defined(DOCUMENTATION)
3138
3139 //----------------------- Boost serialization for SgAsmPEImportItem -----------------------
3140#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3141private:
3142 friend class boost::serialization::access;
3143
3144 template<class S>
3145 void serialize(S &s, const unsigned /*version*/) {
3146 debugSerializationBegin("SgAsmPEImportItem");
3147 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3148 s & BOOST_SERIALIZATION_NVP(p_by_ordinal);
3149 s & BOOST_SERIALIZATION_NVP(p_ordinal);
3150 s & BOOST_SERIALIZATION_NVP(p_hint);
3151 s & BOOST_SERIALIZATION_NVP(p_name);
3152 s & BOOST_SERIALIZATION_NVP(p_hintname_rva);
3153 s & BOOST_SERIALIZATION_NVP(p_hintname_nalloc);
3154 s & BOOST_SERIALIZATION_NVP(p_bound_rva);
3155 s & BOOST_SERIALIZATION_NVP(p_iat_written);
3156 debugSerializationEnd("SgAsmPEImportItem");
3157 }
3158#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3159public:
3160public:
3166 bool const& get_by_ordinal() const;
3167 void set_by_ordinal(bool const&);
3170public:
3176 unsigned const& get_ordinal() const;
3177 void set_ordinal(unsigned const&);
3180public:
3186 unsigned const& get_hint() const;
3187 void set_hint(unsigned const&);
3190public:
3200public:
3211public:
3217 size_t const& get_hintname_nalloc() const;
3218 void set_hintname_nalloc(size_t const&);
3221public:
3232public:
3238 bool const& get_iat_written() const;
3239 void set_iat_written(bool const&);
3241public:
3242 explicit SgAsmPEImportItem(SgAsmPEImportItemList *parent);
3244 SgAsmPEImportItem(SgAsmPEImportDirectory*, const std::string &name, unsigned hint=0);
3245 SgAsmPEImportItem(SgAsmPEImportDirectory*, const unsigned ordinal);
3246
3247 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
3248
3254 size_t hintNameRequiredSize() const;
3255
3261
3262private:
3263 void initFromParent(SgAsmPEImportItemList *parent);
3264
3266 // Deprecated 2023-11
3268public:
3269 size_t hintname_required_size() const ROSE_DEPRECATED("use hintNameRequiredSize");
3270 Rose::BinaryAnalysis::Address get_iat_entry_va() const ROSE_DEPRECATED("use get_iatEntryVa");
3271public:
3274
3275public:
3278
3279protected:
3287#endif // SgAsmPEImportItem_OTHERS
3288#ifdef DOCUMENTATION
3289};
3290#endif // DOCUMENTATION
3291
3292
3294// SgAsmPEImportDirectoryList -- MACHINE GENERATED; DO NOT MODIFY --
3296
3297DECLARE_LEAF_CLASS(AsmPEImportDirectoryList);
3298IS_SERIALIZABLE(AsmPEImportDirectoryList);
3299
3300#ifndef DOCUMENTATION
3301AsmPEImportDirectoryList.useSmallHeader(true);
3302#endif // !DOCUMENTATION
3303
3304DECLARE_HEADERS(AsmPEImportDirectoryList);
3305#if defined(SgAsmPEImportDirectoryList_HEADERS) || defined(DOCUMENTATION)
3306#include <sageContainer.h>
3307#endif // SgAsmPEImportDirectoryList_HEADERS
3308
3309#ifdef DOCUMENTATION
3315#endif // DOCUMENTATION
3316
3317#ifndef DOCUMENTATION
3318 AsmPEImportDirectoryList.setDataPrototype(
3319 "SgAsmPEImportDirectoryPtrList", "vector", "",
3320 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3321#endif // !DOCUMENTATION
3322
3323 DECLARE_OTHERS(AsmPEImportDirectoryList);
3324#if defined(SgAsmPEImportDirectoryList_OTHERS) || defined(DOCUMENTATION)
3325
3326 //----------------------- Boost serialization for SgAsmPEImportDirectoryList -----------------------
3327#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3328private:
3329 friend class boost::serialization::access;
3330
3331 template<class S>
3332 void serialize(S &s, const unsigned /*version*/) {
3333 debugSerializationBegin("SgAsmPEImportDirectoryList");
3334 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3335 s & BOOST_SERIALIZATION_NVP(p_vector);
3336 debugSerializationEnd("SgAsmPEImportDirectoryList");
3337 }
3338#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3339public:
3340public:
3346 SgAsmPEImportDirectoryPtrList const& get_vector() const;
3347 SgAsmPEImportDirectoryPtrList& get_vector();
3348 void set_vector(SgAsmPEImportDirectoryPtrList const&);
3351public:
3354
3355public:
3358
3359protected:
3367#endif // SgAsmPEImportDirectoryList_OTHERS
3368#ifdef DOCUMENTATION
3369};
3370#endif // DOCUMENTATION
3371
3372
3374// SgAsmPEImportDirectory -- MACHINE GENERATED; DO NOT MODIFY --
3376
3377DECLARE_LEAF_CLASS(AsmPEImportDirectory);
3378IS_SERIALIZABLE(AsmPEImportDirectory);
3379
3380#ifndef DOCUMENTATION
3381AsmPEImportDirectory.useSmallHeader(true);
3382#endif // !DOCUMENTATION
3383
3384DECLARE_HEADERS(AsmPEImportDirectory);
3385#if defined(SgAsmPEImportDirectory_HEADERS) || defined(DOCUMENTATION)
3386#include <Rose/BinaryAnalysis/Address.h>
3387#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
3388#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3389#include <sageContainer.h>
3390
3391#ifdef ROSE_SgAsmPEImportDirectory_IMPL
3392#include <SgAsmGenericString.h>
3393#include <SgAsmPEImportItemList.h>
3394#endif
3395#endif // SgAsmPEImportDirectory_HEADERS
3396
3397#ifdef DOCUMENTATION
3403#endif // DOCUMENTATION
3404
3405#ifndef DOCUMENTATION
3406 AsmPEImportDirectory.setDataPrototype(
3407 "SgAsmGenericString*", "dllName", "= nullptr",
3408 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3409#endif // !DOCUMENTATION
3410
3411#ifndef DOCUMENTATION
3412 AsmPEImportDirectory.setDataPrototype(
3413 "Rose::BinaryAnalysis::RelativeVirtualAddress", "dllNameRva", "",
3414 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3415#endif // !DOCUMENTATION
3416
3417#ifndef DOCUMENTATION
3418 AsmPEImportDirectory.setDataPrototype(
3419 "size_t", "dll_name_nalloc", "= 0",
3420 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3421#endif // !DOCUMENTATION
3422
3423#ifndef DOCUMENTATION
3424 AsmPEImportDirectory.setDataPrototype(
3425 "time_t", "time", "= 0",
3426 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3427#endif // !DOCUMENTATION
3428
3429#ifndef DOCUMENTATION
3430 AsmPEImportDirectory.setDataPrototype(
3431 "unsigned", "forwarder_chain", "= 0",
3432 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3433#endif // !DOCUMENTATION
3434
3435#ifndef DOCUMENTATION
3436 AsmPEImportDirectory.setDataPrototype(
3437 "Rose::BinaryAnalysis::RelativeVirtualAddress", "ilt_rva", "",
3438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3439#endif // !DOCUMENTATION
3440
3441#ifndef DOCUMENTATION
3442 AsmPEImportDirectory.setDataPrototype(
3443 "size_t", "ilt_nalloc", "= 0",
3444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3445#endif // !DOCUMENTATION
3446
3447#ifndef DOCUMENTATION
3448 AsmPEImportDirectory.setDataPrototype(
3449 "Rose::BinaryAnalysis::RelativeVirtualAddress", "iat_rva", "",
3450 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3451#endif // !DOCUMENTATION
3452
3453#ifndef DOCUMENTATION
3454 AsmPEImportDirectory.setDataPrototype(
3455 "size_t", "iat_nalloc", "= 0",
3456 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3457#endif // !DOCUMENTATION
3458
3459#ifndef DOCUMENTATION
3460 AsmPEImportDirectory.setDataPrototype(
3461 "SgAsmPEImportItemList*", "imports", "= createAndParent<SgAsmPEImportItemList>(this)",
3462 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3463#endif // !DOCUMENTATION
3464
3465 DECLARE_OTHERS(AsmPEImportDirectory);
3466#if defined(SgAsmPEImportDirectory_OTHERS) || defined(DOCUMENTATION)
3467
3468 //----------------------- Boost serialization for SgAsmPEImportDirectory -----------------------
3469#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3470private:
3471 friend class boost::serialization::access;
3472
3473 template<class S>
3474 void serialize(S &s, const unsigned /*version*/) {
3475 debugSerializationBegin("SgAsmPEImportDirectory");
3476 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3477 s & BOOST_SERIALIZATION_NVP(p_dllName);
3478 s & BOOST_SERIALIZATION_NVP(p_dllNameRva);
3479 s & BOOST_SERIALIZATION_NVP(p_dll_name_nalloc);
3480 s & BOOST_SERIALIZATION_NVP(p_time);
3481 s & BOOST_SERIALIZATION_NVP(p_forwarder_chain);
3482 s & BOOST_SERIALIZATION_NVP(p_ilt_rva);
3483 s & BOOST_SERIALIZATION_NVP(p_ilt_nalloc);
3484 s & BOOST_SERIALIZATION_NVP(p_iat_rva);
3485 s & BOOST_SERIALIZATION_NVP(p_iat_nalloc);
3486 s & BOOST_SERIALIZATION_NVP(p_imports);
3487 debugSerializationEnd("SgAsmPEImportDirectory");
3488 }
3489#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3491 // Local types
3493public:
3494#ifdef _MSC_VER
3495# pragma pack (1)
3496#endif
3498 uint32_t ilt_rva; /* 0x00 Import Lookup Table RVA */
3499 uint32_t time; /* 0x04 Zero until the image is bound, then time stamp of the DLL */
3500 uint32_t forwarder_chain; /* 0x08 Index of the first forwarder chain */
3501 uint32_t dll_name_rva; /* 0x0c address of NUL-terminated DLL name */
3502 uint32_t iat_rva; /* 0x10 Import Address Table (Thunk Table) RVA */
3503 } /* 0x14 */
3504#if !defined(SWIG) && !defined(_MSC_VER)
3505 __attribute__((packed))
3506#endif
3507 ;
3508#ifdef _MSC_VER
3509# pragma pack ()
3510#endif
3511
3513 // Properties
3515public:
3516public:
3526public:
3537public:
3543 size_t const& get_dll_name_nalloc() const;
3544 void set_dll_name_nalloc(size_t const&);
3547public:
3553 time_t const& get_time() const;
3554 void set_time(time_t const&);
3557public:
3563 unsigned const& get_forwarder_chain() const;
3564 void set_forwarder_chain(unsigned const&);
3567public:
3578public:
3584 size_t const& get_ilt_nalloc() const;
3585 void set_ilt_nalloc(size_t const&);
3588public:
3599public:
3605 size_t const& get_iat_nalloc() const;
3606 void set_iat_nalloc(size_t const&);
3609public:
3619 // Functions
3621public:
3622 explicit SgAsmPEImportDirectory(SgAsmPEImportSection *isec, const std::string &dll_name="");
3623
3630
3639
3642 virtual void unparse(std::ostream&, const SgAsmPEImportSection*, size_t idx) const;
3643 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
3644
3650 size_t iatRequiredSize() const;
3651
3656 int findImportItem(const SgAsmPEImportItem *item, int hint=0) const;
3657
3670
3671private:
3672 void parse_ilt_iat(const Rose::BinaryAnalysis::RelativeVirtualAddress &table_start, bool assume_bound);
3673 void unparse_ilt_iat(std::ostream&,const Rose::BinaryAnalysis::RelativeVirtualAddress &table_start, bool assume_bound,
3674 size_t nalloc) const;
3675
3677 // Deprecated 2023-11
3679public:
3680 SgAsmGenericString* get_dll_name() const ROSE_DEPRECATED("use get_dllName");
3681 void set_dll_name(SgAsmGenericString*) ROSE_DEPRECATED("use set_dllName");
3682 const Rose::BinaryAnalysis::RelativeVirtualAddress& get_dll_name_rva() const ROSE_DEPRECATED("use get_dllNameRva");
3683 Rose::BinaryAnalysis::RelativeVirtualAddress& get_dll_name_rva() ROSE_DEPRECATED("use get_dllNameRva");
3684 void set_dll_name_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use set_dllNameRva");
3685 size_t iat_required_size() const ROSE_DEPRECATED("use iatRequiredSize");
3686 int find_import_item(const SgAsmPEImportItem*, int=0) const ROSE_DEPRECATED("use findImportItem");
3687 size_t hintname_table_extent(Rose::BinaryAnalysis::AddressIntervalSet&) const ROSE_DEPRECATED("use hintNameTableExtent");
3688public:
3691
3692public:
3695
3696protected:
3704#endif // SgAsmPEImportDirectory_OTHERS
3705#ifdef DOCUMENTATION
3706};
3707#endif // DOCUMENTATION
3708
3709
3711// SgAsmPEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
3713
3714DECLARE_LEAF_CLASS(AsmPEFileHeader);
3715IS_SERIALIZABLE(AsmPEFileHeader);
3716
3717#ifndef DOCUMENTATION
3718AsmPEFileHeader.useSmallHeader(true);
3719#endif // !DOCUMENTATION
3720
3721DECLARE_HEADERS(AsmPEFileHeader);
3722#if defined(SgAsmPEFileHeader_HEADERS) || defined(DOCUMENTATION)
3723#include <Rose/BinaryAnalysis/Address.h>
3724#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3725
3726#ifdef ROSE_SgAsmPEFileHeader_IMPL
3727#include <SgAsmCoffSymbolTable.h>
3728#include <SgAsmPERVASizePairList.h>
3729#include <SgAsmPESectionTable.h>
3730#endif
3731#endif // SgAsmPEFileHeader_HEADERS
3732
3733#ifdef DOCUMENTATION
3738#endif // DOCUMENTATION
3739
3740#ifndef DOCUMENTATION
3741 AsmPEFileHeader.setDataPrototype(
3742 "unsigned", "e_cpu_type", "= 0",
3743 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3744#endif // !DOCUMENTATION
3745
3746#ifndef DOCUMENTATION
3747 AsmPEFileHeader.setDataPrototype(
3748 "unsigned", "e_nsections", "= 0",
3749 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3750#endif // !DOCUMENTATION
3751
3752#ifndef DOCUMENTATION
3753 AsmPEFileHeader.setDataPrototype(
3754 "unsigned", "e_time", "= 0",
3755 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3756#endif // !DOCUMENTATION
3757
3758#ifndef DOCUMENTATION
3759 AsmPEFileHeader.setDataPrototype(
3760 "Rose::BinaryAnalysis::Address", "e_coff_symtab", "= 0",
3761 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3762#endif // !DOCUMENTATION
3763
3764#ifndef DOCUMENTATION
3765 AsmPEFileHeader.setDataPrototype(
3766 "Rose::BinaryAnalysis::Address", "e_nt_hdr_size", "= 0",
3767 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3768#endif // !DOCUMENTATION
3769
3770#ifndef DOCUMENTATION
3771 AsmPEFileHeader.setDataPrototype(
3772 "unsigned", "e_coff_nsyms", "= 0",
3773 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3774#endif // !DOCUMENTATION
3775
3776#ifndef DOCUMENTATION
3777 AsmPEFileHeader.setDataPrototype(
3778 "unsigned", "e_flags", "= 0",
3779 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3780#endif // !DOCUMENTATION
3781
3782#ifndef DOCUMENTATION
3783 AsmPEFileHeader.setDataPrototype(
3784 "unsigned", "e_opt_magic", "= 0",
3785 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3786#endif // !DOCUMENTATION
3787
3788#ifndef DOCUMENTATION
3789 AsmPEFileHeader.setDataPrototype(
3790 "unsigned", "e_lmajor", "= 0",
3791 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3792#endif // !DOCUMENTATION
3793
3794#ifndef DOCUMENTATION
3795 AsmPEFileHeader.setDataPrototype(
3796 "unsigned", "e_lminor", "= 0",
3797 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3798#endif // !DOCUMENTATION
3799
3800#ifndef DOCUMENTATION
3801 AsmPEFileHeader.setDataPrototype(
3802 "unsigned", "e_code_size", "= 0",
3803 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3804#endif // !DOCUMENTATION
3805
3806#ifndef DOCUMENTATION
3807 AsmPEFileHeader.setDataPrototype(
3808 "unsigned", "e_data_size", "= 0",
3809 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3810#endif // !DOCUMENTATION
3811
3812#ifndef DOCUMENTATION
3813 AsmPEFileHeader.setDataPrototype(
3814 "unsigned", "e_bss_size", "= 0",
3815 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3816#endif // !DOCUMENTATION
3817
3818#ifndef DOCUMENTATION
3819 AsmPEFileHeader.setDataPrototype(
3820 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_code_rva", "",
3821 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3822#endif // !DOCUMENTATION
3823
3824#ifndef DOCUMENTATION
3825 AsmPEFileHeader.setDataPrototype(
3826 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_data_rva", "",
3827 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3828#endif // !DOCUMENTATION
3829
3830#ifndef DOCUMENTATION
3831 AsmPEFileHeader.setDataPrototype(
3832 "unsigned", "e_section_align", "= 0",
3833 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3834#endif // !DOCUMENTATION
3835
3836#ifndef DOCUMENTATION
3837 AsmPEFileHeader.setDataPrototype(
3838 "unsigned", "e_file_align", "= 0",
3839 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3840#endif // !DOCUMENTATION
3841
3842#ifndef DOCUMENTATION
3843 AsmPEFileHeader.setDataPrototype(
3844 "unsigned", "e_os_major", "= 0",
3845 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3846#endif // !DOCUMENTATION
3847
3848#ifndef DOCUMENTATION
3849 AsmPEFileHeader.setDataPrototype(
3850 "unsigned", "e_os_minor", "= 0",
3851 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3852#endif // !DOCUMENTATION
3853
3854#ifndef DOCUMENTATION
3855 AsmPEFileHeader.setDataPrototype(
3856 "unsigned", "e_user_major", "= 0",
3857 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3858#endif // !DOCUMENTATION
3859
3860#ifndef DOCUMENTATION
3861 AsmPEFileHeader.setDataPrototype(
3862 "unsigned", "e_user_minor", "= 0",
3863 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3864#endif // !DOCUMENTATION
3865
3866#ifndef DOCUMENTATION
3867 AsmPEFileHeader.setDataPrototype(
3868 "unsigned", "e_subsys_major", "= 0",
3869 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3870#endif // !DOCUMENTATION
3871
3872#ifndef DOCUMENTATION
3873 AsmPEFileHeader.setDataPrototype(
3874 "unsigned", "e_subsys_minor", "= 0",
3875 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3876#endif // !DOCUMENTATION
3877
3878#ifndef DOCUMENTATION
3879 AsmPEFileHeader.setDataPrototype(
3880 "unsigned", "e_reserved9", "= 0",
3881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3882#endif // !DOCUMENTATION
3883
3884#ifndef DOCUMENTATION
3885 AsmPEFileHeader.setDataPrototype(
3886 "unsigned", "e_image_size", "= 0",
3887 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3888#endif // !DOCUMENTATION
3889
3890#ifndef DOCUMENTATION
3891 AsmPEFileHeader.setDataPrototype(
3892 "unsigned", "e_header_size", "= 0",
3893 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3894#endif // !DOCUMENTATION
3895
3896#ifndef DOCUMENTATION
3897 AsmPEFileHeader.setDataPrototype(
3898 "unsigned", "e_file_checksum", "= 0",
3899 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3900#endif // !DOCUMENTATION
3901
3902#ifndef DOCUMENTATION
3903 AsmPEFileHeader.setDataPrototype(
3904 "unsigned", "e_subsystem", "= 0",
3905 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3906#endif // !DOCUMENTATION
3907
3908#ifndef DOCUMENTATION
3909 AsmPEFileHeader.setDataPrototype(
3910 "unsigned", "e_dll_flags", "= 0",
3911 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3912#endif // !DOCUMENTATION
3913
3914#ifndef DOCUMENTATION
3915 AsmPEFileHeader.setDataPrototype(
3916 "unsigned", "e_stack_reserve_size", "= 0",
3917 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3918#endif // !DOCUMENTATION
3919
3920#ifndef DOCUMENTATION
3921 AsmPEFileHeader.setDataPrototype(
3922 "unsigned", "e_stack_commit_size", "= 0",
3923 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3924#endif // !DOCUMENTATION
3925
3926#ifndef DOCUMENTATION
3927 AsmPEFileHeader.setDataPrototype(
3928 "unsigned", "e_heap_reserve_size", "= 0",
3929 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3930#endif // !DOCUMENTATION
3931
3932#ifndef DOCUMENTATION
3933 AsmPEFileHeader.setDataPrototype(
3934 "unsigned", "e_heap_commit_size", "= 0",
3935 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3936#endif // !DOCUMENTATION
3937
3938#ifndef DOCUMENTATION
3939 AsmPEFileHeader.setDataPrototype(
3940 "unsigned", "e_loader_flags", "= 0",
3941 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3942#endif // !DOCUMENTATION
3943
3944#ifndef DOCUMENTATION
3945 AsmPEFileHeader.setDataPrototype(
3946 "unsigned", "e_num_rvasize_pairs", "= 0",
3947 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3948#endif // !DOCUMENTATION
3949
3950#ifndef DOCUMENTATION
3951 AsmPEFileHeader.setDataPrototype(
3952 "SgAsmPERVASizePairList*", "rvaSizePairs", "= nullptr",
3953 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3954#endif // !DOCUMENTATION
3955
3956#ifndef DOCUMENTATION
3957 AsmPEFileHeader.setDataPrototype(
3958 "SgAsmPESectionTable*", "sectionTable", "= nullptr",
3959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3960#endif // !DOCUMENTATION
3961
3962#ifndef DOCUMENTATION
3963 AsmPEFileHeader.setDataPrototype(
3964 "SgAsmCoffSymbolTable*", "coffSymbolTable", "= nullptr",
3965 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3966#endif // !DOCUMENTATION
3967
3968 DECLARE_OTHERS(AsmPEFileHeader);
3969#if defined(SgAsmPEFileHeader_OTHERS) || defined(DOCUMENTATION)
3970
3971 //----------------------- Boost serialization for SgAsmPEFileHeader -----------------------
3972#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3973private:
3974 friend class boost::serialization::access;
3975
3976 template<class S>
3977 void serialize(S &s, const unsigned /*version*/) {
3978 debugSerializationBegin("SgAsmPEFileHeader");
3979 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
3980 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
3981 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
3982 s & BOOST_SERIALIZATION_NVP(p_e_time);
3983 s & BOOST_SERIALIZATION_NVP(p_e_coff_symtab);
3984 s & BOOST_SERIALIZATION_NVP(p_e_nt_hdr_size);
3985 s & BOOST_SERIALIZATION_NVP(p_e_coff_nsyms);
3986 s & BOOST_SERIALIZATION_NVP(p_e_flags);
3987 s & BOOST_SERIALIZATION_NVP(p_e_opt_magic);
3988 s & BOOST_SERIALIZATION_NVP(p_e_lmajor);
3989 s & BOOST_SERIALIZATION_NVP(p_e_lminor);
3990 s & BOOST_SERIALIZATION_NVP(p_e_code_size);
3991 s & BOOST_SERIALIZATION_NVP(p_e_data_size);
3992 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
3993 s & BOOST_SERIALIZATION_NVP(p_e_code_rva);
3994 s & BOOST_SERIALIZATION_NVP(p_e_data_rva);
3995 s & BOOST_SERIALIZATION_NVP(p_e_section_align);
3996 s & BOOST_SERIALIZATION_NVP(p_e_file_align);
3997 s & BOOST_SERIALIZATION_NVP(p_e_os_major);
3998 s & BOOST_SERIALIZATION_NVP(p_e_os_minor);
3999 s & BOOST_SERIALIZATION_NVP(p_e_user_major);
4000 s & BOOST_SERIALIZATION_NVP(p_e_user_minor);
4001 s & BOOST_SERIALIZATION_NVP(p_e_subsys_major);
4002 s & BOOST_SERIALIZATION_NVP(p_e_subsys_minor);
4003 s & BOOST_SERIALIZATION_NVP(p_e_reserved9);
4004 s & BOOST_SERIALIZATION_NVP(p_e_image_size);
4005 s & BOOST_SERIALIZATION_NVP(p_e_header_size);
4006 s & BOOST_SERIALIZATION_NVP(p_e_file_checksum);
4007 s & BOOST_SERIALIZATION_NVP(p_e_subsystem);
4008 s & BOOST_SERIALIZATION_NVP(p_e_dll_flags);
4009 s & BOOST_SERIALIZATION_NVP(p_e_stack_reserve_size);
4010 s & BOOST_SERIALIZATION_NVP(p_e_stack_commit_size);
4011 s & BOOST_SERIALIZATION_NVP(p_e_heap_reserve_size);
4012 s & BOOST_SERIALIZATION_NVP(p_e_heap_commit_size);
4013 s & BOOST_SERIALIZATION_NVP(p_e_loader_flags);
4014 s & BOOST_SERIALIZATION_NVP(p_e_num_rvasize_pairs);
4015 s & BOOST_SERIALIZATION_NVP(p_rvaSizePairs);
4016 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
4017 s & BOOST_SERIALIZATION_NVP(p_coffSymbolTable);
4018 debugSerializationEnd("SgAsmPEFileHeader");
4019 }
4020#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4022 // Local types
4024public:
4025#ifdef _MSC_VER
4026# pragma pack (1)
4027#endif
4028 /* File format of a PE File Header. All fields are little endian. */
4030 unsigned char e_magic[4]; /* 0x00 magic number "PE\0\0" */
4031 uint16_t e_cpu_type; /* 0x04 e.g., 0x014c = Intel 386 */
4032 uint16_t e_nsections; /* 0x06 number of sections defined in the Section Table */
4033 uint32_t e_time; /* 0x08 time and date file was created or modified by the linker */
4034 uint32_t e_coff_symtab; /* 0x0c offset to COFF symbol table */
4035 uint32_t e_coff_nsyms; /* 0x10 number of symbols in COFF symbol table */
4036 uint16_t e_nt_hdr_size; /* 0x14 num remaining bytes in the header following the 'flags' field */
4037 uint16_t e_flags; /* 0x16 Bit flags: exe file, program/library image, fixed address, etc. */
4038 } /* 0x18 */
4039#if !defined(SWIG) && !defined(_MSC_VER)
4040 __attribute__((packed))
4041#endif
4042 ;
4043
4045 uint16_t e_opt_magic; /* 0x18 magic number */
4046 uint16_t e_lmajor; /* 0x1a linker version */
4047 uint16_t e_lminor; /* 0x1c */
4048 uint16_t e_code_size; /* 0x1e Size of .text or sum of all code sections */
4049 uint32_t e_data_size; /* 0x20 Sum size of initialized data */
4050 uint32_t e_bss_size; /* 0x24 Sum size of uninitialized data */
4051 uint32_t e_entrypoint_rva; /* 0x28 RVA="relative virtual address"; relative to 'image_base', below */
4052 uint32_t e_code_rva; /* 0x2c Addr relative to image base for code section when memory mapped */
4053 uint32_t e_data_rva; /* 0x30 Address relative to image base for data section */
4054 uint32_t e_image_base; /* 0x34 Virt base of image (first byte of file, DOS header). 64k aligned */
4055 uint32_t e_section_align; /* 0x38 Alignment of sections in memory. Power of two 512<=x<=256M */
4056 uint32_t e_file_align; /* 0x3c Alignment factor (in bytes) for image pages */
4057 uint16_t e_os_major; /* 0x40 OS version number required to run this image */
4058 uint16_t e_os_minor; /* 0x42 */
4059 uint16_t e_user_major; /* 0x44 User-specified for differentiating between image revs */
4060 uint16_t e_user_minor; /* 0x46 */
4061 uint16_t e_subsys_major; /* 0x48 Subsystem version number */
4062 uint16_t e_subsys_minor; /* 0x4a */
4063 uint32_t e_reserved9; /* 0x4c */
4064 uint32_t e_image_size; /* 0x50 Virtual size of the image inc. all headers; section_align */
4065 uint32_t e_header_size; /* 0x54 Total header size (DOS Header + PE Header + Section table */
4066 uint32_t e_file_checksum; /* 0x58 Checksum for entire file; Set to zero by the linker */
4067 uint16_t e_subsystem; /* 0x5c Native, WindowsGUI, WindowsCharacter, OS/2 Character, etc. */
4068 uint16_t e_dll_flags; /* 0x5e Bit flags for library init/terminate per process or thread */
4069 uint32_t e_stack_reserve_size;/*0x60 Virtual mem reserved for stack; non-committed pages are guards */
4070 uint32_t e_stack_commit_size;/* 0x64 Size of valid stack; other pages are guards; <=stack_reserve_size*/
4071 uint32_t e_heap_reserve_size;/* 0x68 Size (bytes) of local heap to reserve */
4072 uint32_t e_heap_commit_size; /* 0x6c Size (bytes) of valid local heap */
4073 uint32_t e_loader_flags; /* 0x70 Reserved, must be zero */
4074 uint32_t e_num_rvasize_pairs;/* 0x74 Num RVASizePair entries that follow this member; part of header */
4075 } /* 0x78 */
4076#if !defined(SWIG) && !defined(_MSC_VER)
4077 __attribute__((packed))
4078#endif
4079 ;
4080
4082 uint16_t e_opt_magic; /* 0x18 */
4083 uint16_t e_lmajor; /* 0x1a */
4084 uint16_t e_lminor; /* 0x1c */
4085 uint16_t e_code_size; /* 0x1e */
4086 uint32_t e_data_size; /* 0x20 */
4087 uint32_t e_bss_size; /* 0x24 */
4088 uint32_t e_entrypoint_rva; /* 0x28 */
4089 uint32_t e_code_rva; /* 0x2c */
4090 // uint32_t e_data_rva; /* Not present in PE32+ */
4091 uint64_t e_image_base; /* 0x30 */
4092 uint32_t e_section_align; /* 0x38 */
4093 uint32_t e_file_align; /* 0x3c */
4094 uint16_t e_os_major; /* 0x40 */
4095 uint16_t e_os_minor; /* 0x42 */
4096 uint16_t e_user_major; /* 0x44 */
4097 uint16_t e_user_minor; /* 0x46 */
4098 uint16_t e_subsys_major; /* 0x48 */
4099 uint16_t e_subsys_minor; /* 0x4a */
4100 uint32_t e_reserved9; /* 0x4c */
4101 uint32_t e_image_size; /* 0x50 */
4102 uint32_t e_header_size; /* 0x54 */
4103 uint32_t e_file_checksum; /* 0x58 */
4104 uint16_t e_subsystem; /* 0x5c */
4105 uint16_t e_dll_flags; /* 0x5e */
4106 uint64_t e_stack_reserve_size;/*0x60 */
4107 uint64_t e_stack_commit_size;/* 0x68 */
4108 uint64_t e_heap_reserve_size;/* 0x70 */
4109 uint64_t e_heap_commit_size; /* 0x78 */
4110 uint32_t e_loader_flags; /* 0x80 */
4111 uint32_t e_num_rvasize_pairs;/* 0x84 */
4112 } /* 0x88 */
4113#if !defined(SWIG) && !defined(_MSC_VER)
4114 __attribute__((packed))
4115#endif
4116 ;
4117#ifdef _MSC_VER
4118# pragma pack ()
4119#endif
4120
4121 /* Bit flags for the PE header 'flags' member */
4122 enum HeaderFlags {
4123 HF_PROGRAM = 0x0000, /* Program image (no non-reserved bits set) */
4124 HF_EXECUTABLE = 0x0002, /* Clear indicates can't load: link errors or incrementally linked */
4125 HF_FIXED = 0x0200, /* Image *must* be loaded at image_base address or error */
4126 HF_LIBRARY = 0x2000, /* Library image */
4127 HF_RESERVED_MASK = 0xddfd /* Reserved bits */
4128 };
4129
4130 /* Values for the PE header 'subsystem' member */
4131 enum Subsystem {
4132 HF_SPEC_UNKNOWN = 0x0000, /* Specified as 'unknown' in the file */
4133 HF_NATIVE = 0x0001, /* Native */
4134 HF_WINGUI = 0x0002, /* Windows GUI */
4135 HF_WINCHAR = 0x0003, /* Windows character */
4136 HF_OS2CHAR = 0x0005, /* OS/2 character */
4137 HF_POSIX = 0x0007 /* POSIX character */
4138 };
4139
4140 /* Bit flags for the PE header 'dll_flags' member */
4141 enum DLLFlags {
4142 DLL_PROC_INIT = 0x0001, /* Per-process library initialization */
4143 DLL_PROC_TERM = 0x0002, /* Per-process library termination */
4144 DLL_THRD_INIT = 0x0004, /* Per-thread library initialization */
4145 DLL_THRD_TERM = 0x0008, /* Per-thread library termination */
4146 DLL_RESERVED_MASK = 0xfff0 /* Reserved bits */
4147 };
4148
4150 enum PairPurpose { // Values are important
4151 PAIR_EXPORTS = 0,
4152 PAIR_IMPORTS = 1,
4153 PAIR_RESOURCES = 2,
4154 PAIR_EXCEPTIONS = 3,
4155 PAIR_CERTIFICATES = 4,
4156 PAIR_BASERELOCS = 5,
4157 PAIR_DEBUG = 6,
4158 PAIR_ARCHITECTURE = 7,
4159 PAIR_GLOBALPTR = 8,
4160 PAIR_TLS = 9, // Thread local storage
4161 PAIR_LOADCONFIG = 10,
4162 PAIR_BOUNDIMPORT = 11,
4163 PAIR_IAT = 12, // Import address table
4164 PAIR_DELAYIMPORT = 13, // Delay import descriptor
4165 PAIR_CLRRUNTIME = 14, // CLR(?) runtime header
4166 PAIR_RESERVED15 = 15 // Reserved (always zero according to specification)
4167 };
4168
4170 // Properties
4172public:
4173public:
4179 unsigned const& get_e_cpu_type() const;
4180 void set_e_cpu_type(unsigned const&);
4183public:
4189 unsigned const& get_e_nsections() const;
4190 void set_e_nsections(unsigned const&);
4193public:
4199 unsigned const& get_e_time() const;
4200 void set_e_time(unsigned const&);
4203public:
4213public:
4223public:
4229 unsigned const& get_e_coff_nsyms() const;
4230 void set_e_coff_nsyms(unsigned const&);
4233public:
4239 unsigned const& get_e_flags() const;
4240 void set_e_flags(unsigned const&);
4243public:
4249 unsigned const& get_e_opt_magic() const;
4250 void set_e_opt_magic(unsigned const&);
4253public:
4259 unsigned const& get_e_lmajor() const;
4260 void set_e_lmajor(unsigned const&);
4263public:
4269 unsigned const& get_e_lminor() const;
4270 void set_e_lminor(unsigned const&);
4273public:
4279 unsigned const& get_e_code_size() const;
4280 void set_e_code_size(unsigned const&);
4283public:
4289 unsigned const& get_e_data_size() const;
4290 void set_e_data_size(unsigned const&);
4293public:
4299 unsigned const& get_e_bss_size() const;
4300 void set_e_bss_size(unsigned const&);
4303public:
4314public:
4325public:
4331 unsigned const& get_e_section_align() const;
4332 void set_e_section_align(unsigned const&);
4335public:
4341 unsigned const& get_e_file_align() const;
4342 void set_e_file_align(unsigned const&);
4345public:
4351 unsigned const& get_e_os_major() const;
4352 void set_e_os_major(unsigned const&);
4355public:
4361 unsigned const& get_e_os_minor() const;
4362 void set_e_os_minor(unsigned const&);
4365public:
4371 unsigned const& get_e_user_major() const;
4372 void set_e_user_major(unsigned const&);
4375public:
4381 unsigned const& get_e_user_minor() const;
4382 void set_e_user_minor(unsigned const&);
4385public:
4391 unsigned const& get_e_subsys_major() const;
4392 void set_e_subsys_major(unsigned const&);
4395public:
4401 unsigned const& get_e_subsys_minor() const;
4402 void set_e_subsys_minor(unsigned const&);
4405public:
4411 unsigned const& get_e_reserved9() const;
4412 void set_e_reserved9(unsigned const&);
4415public:
4421 unsigned const& get_e_image_size() const;
4422 void set_e_image_size(unsigned const&);
4425public:
4431 unsigned const& get_e_header_size() const;
4432 void set_e_header_size(unsigned const&);
4435public:
4441 unsigned const& get_e_file_checksum() const;
4442 void set_e_file_checksum(unsigned const&);
4445public:
4451 unsigned const& get_e_subsystem() const;
4452 void set_e_subsystem(unsigned const&);
4455public:
4461 unsigned const& get_e_dll_flags() const;
4462 void set_e_dll_flags(unsigned const&);
4465public:
4471 unsigned const& get_e_stack_reserve_size() const;
4472 void set_e_stack_reserve_size(unsigned const&);
4475public:
4481 unsigned const& get_e_stack_commit_size() const;
4482 void set_e_stack_commit_size(unsigned const&);
4485public:
4491 unsigned const& get_e_heap_reserve_size() const;
4492 void set_e_heap_reserve_size(unsigned const&);
4495public:
4501 unsigned const& get_e_heap_commit_size() const;
4502 void set_e_heap_commit_size(unsigned const&);
4505public:
4511 unsigned const& get_e_loader_flags() const;
4512 void set_e_loader_flags(unsigned const&);
4515public:
4521 unsigned const& get_e_num_rvasize_pairs() const;
4522 void set_e_num_rvasize_pairs(unsigned const&);
4525public:
4535public:
4545public:
4555 // Functions
4557public:
4559
4560 virtual const char* formatName() const override;
4561
4567 static bool isPe(SgAsmGenericFile*);
4568
4575 std::string rvaSizePairName(PairPurpose, const char **short_name);
4576
4579
4582
4583 void addRvaSizePairs();
4584
4585 virtual SgAsmPEFileHeader *parse() override;
4586 virtual bool reallocate() override;
4587 virtual void unparse(std::ostream&) const override;
4588 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4589 void createTableSections();
4590
4591 /* Loader memory maps */
4592 Rose::BinaryAnalysis::MemoryMap::Ptr get_loaderMap() const;
4593 void set_loaderMap(const Rose::BinaryAnalysis::MemoryMap::Ptr&);
4594
4595private:
4596 void *encode(SgAsmPEFileHeader::PEFileHeader_disk*) const;
4597 void *encode(SgAsmPEFileHeader::PE32OptHeader_disk*) const;
4598 void *encode(SgAsmPEFileHeader::PE64OptHeader_disk*) const;
4600
4602 // Deprecated 2023-11
4604public:
4605 SgAsmPERVASizePairList* get_rvasize_pairs() const ROSE_DEPRECATED("use get_rvaSizePairs");
4606 void set_rvasize_pairs(SgAsmPERVASizePairList*) ROSE_DEPRECATED("use set_rvaSizePairs");
4607 SgAsmPESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
4608 void set_section_table(SgAsmPESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
4609 SgAsmCoffSymbolTable* get_coff_symtab() const ROSE_DEPRECATED("use get_coffSymbolTable");
4610 void set_coff_symtab(SgAsmCoffSymbolTable*) ROSE_DEPRECATED("use set_coffSymbolTable");
4611 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
4612 static bool is_PE (SgAsmGenericFile*) ROSE_DEPRECATED("use isPe");
4613 std::string rvasize_pair_name(PairPurpose, const char**) ROSE_DEPRECATED("use rvaSizePairName");
4614 void set_rvasize_pair(PairPurpose, SgAsmPESection*) ROSE_DEPRECATED("use set_rvaSizePair");
4615 void update_rvasize_pairs() ROSE_DEPRECATED("use updateRvaSizePairs");
4616 void add_rvasize_pairs() ROSE_DEPRECATED("use addRvaSizePairs");
4617 void create_table_sections() ROSE_DEPRECATED("use createTableSections");
4618 Rose::BinaryAnalysis::MemoryMap::Ptr get_loader_map() const ROSE_DEPRECATED("use get_loaderMap");
4619 void set_loader_map(const Rose::BinaryAnalysis::MemoryMap::Ptr&) ROSE_DEPRECATED("use set_loaderMap");
4620public:
4623
4624public:
4627
4628protected:
4636#endif // SgAsmPEFileHeader_OTHERS
4637#ifdef DOCUMENTATION
4638};
4639#endif // DOCUMENTATION
4640
4641
4643// SgAsmPEExportSection -- MACHINE GENERATED; DO NOT MODIFY --
4645
4646DECLARE_LEAF_CLASS(AsmPEExportSection);
4647IS_SERIALIZABLE(AsmPEExportSection);
4648
4649#ifndef DOCUMENTATION
4650AsmPEExportSection.useSmallHeader(true);
4651#endif // !DOCUMENTATION
4652
4653DECLARE_HEADERS(AsmPEExportSection);
4654#if defined(SgAsmPEExportSection_HEADERS) || defined(DOCUMENTATION)
4655#ifdef ROSE_SgAsmPEExportSection_IMPL
4656#include <SgAsmPEExportDirectory.h>
4657#include <SgAsmPEExportEntryList.h>
4658#endif
4659#endif // SgAsmPEExportSection_HEADERS
4660
4661#ifdef DOCUMENTATION
4664#endif // DOCUMENTATION
4665
4666#ifndef DOCUMENTATION
4667 AsmPEExportSection.setDataPrototype(
4668 "SgAsmPEExportDirectory*", "exportDirectory", "= nullptr",
4669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4670#endif // !DOCUMENTATION
4671
4672#ifndef DOCUMENTATION
4673 AsmPEExportSection.setDataPrototype(
4674 "SgAsmPEExportEntryList*", "exports", "= createAndParent<SgAsmPEExportEntryList>(this)",
4675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4676#endif // !DOCUMENTATION
4677
4678 DECLARE_OTHERS(AsmPEExportSection);
4679#if defined(SgAsmPEExportSection_OTHERS) || defined(DOCUMENTATION)
4680
4681 //----------------------- Boost serialization for SgAsmPEExportSection -----------------------
4682#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
4683private:
4684 friend class boost::serialization::access;
4685
4686 template<class S>
4687 void serialize(S &s, const unsigned /*version*/) {
4688 debugSerializationBegin("SgAsmPEExportSection");
4689 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
4690 s & BOOST_SERIALIZATION_NVP(p_exportDirectory);
4691 s & BOOST_SERIALIZATION_NVP(p_exports);
4692 debugSerializationEnd("SgAsmPEExportSection");
4693 }
4694#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4695public:
4696public:
4706public:
4715public:
4721 typedef uint32_t ExportAddress_disk;
4722
4726 typedef uint32_t ExportNamePtr_disk;
4727
4731 typedef uint16_t ExportOrdinal_disk;
4732
4734 virtual SgAsmPEExportSection *parse() override;
4735 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4736 void addEntry(SgAsmPEExportEntry*);
4737
4739 // Deprecated 2023-11
4741public:
4742 SgAsmPEExportDirectory* get_export_dir() const ROSE_DEPRECATED("use get_exportDirectory");
4743 void set_export_dir(SgAsmPEExportDirectory*) ROSE_DEPRECATED("use set_exportDirectory");
4744 void add_entry(SgAsmPEExportEntry*) ROSE_DEPRECATED("use addEntry");
4745public:
4748
4749public:
4752
4753protected:
4761#endif // SgAsmPEExportSection_OTHERS
4762#ifdef DOCUMENTATION
4763};
4764#endif // DOCUMENTATION
4765
4766
4768// SgAsmPESection -- MACHINE GENERATED; DO NOT MODIFY --
4770
4771#ifndef DOCUMENTATION
4772AstNodeClass& AsmPESection = nonTerminalConstructor(
4773 "AsmPESection",
4774 *this,
4775 "AsmPESection",
4776 "AsmPESectionTag",
4777 SubclassListBuilder()
4778 | AsmPEExportSection
4779 | AsmPEImportSection
4780 | AsmPEStringSection
4781 , true);
4782assert(AsmPESection.associatedGrammar != nullptr);
4783AsmPESection.setCppCondition("!defined(DOCUMENTATION)");
4784AsmPESection.isBoostSerializable(true);
4785AsmPESection.setAutomaticGenerationOfConstructor(false);
4786AsmPESection.setAutomaticGenerationOfDestructor(false);
4787#endif // !DOCUMENTATION
4788
4789#ifndef DOCUMENTATION
4790AsmPESection.useSmallHeader(true);
4791#endif // !DOCUMENTATION
4792
4793DECLARE_HEADERS(AsmPESection);
4794#if defined(SgAsmPESection_HEADERS) || defined(DOCUMENTATION)
4795#ifdef ROSE_SgAsmPESection_IMPL
4796#include <SgAsmPESectionTableEntry.h>
4797#endif
4798#endif // SgAsmPESection_HEADERS
4799
4800#ifdef DOCUMENTATION
4803#endif // DOCUMENTATION
4804
4805#ifndef DOCUMENTATION
4806 AsmPESection.setDataPrototype(
4807 "SgAsmPESectionTableEntry*", "section_entry", "= nullptr",
4808 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4809#endif // !DOCUMENTATION
4810
4811 DECLARE_OTHERS(AsmPESection);
4812#if defined(SgAsmPESection_OTHERS) || defined(DOCUMENTATION)
4813
4814 //----------------------- Boost serialization for SgAsmPESection -----------------------
4815#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
4816private:
4817 friend class boost::serialization::access;
4818
4819 template<class S>
4820 void serialize(S &s, const unsigned /*version*/) {
4821 debugSerializationBegin("SgAsmPESection");
4822 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
4823 s & BOOST_SERIALIZATION_NVP(p_section_entry);
4824 debugSerializationEnd("SgAsmPESection");
4825 }
4826#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4827public:
4828public:
4837public:
4839
4846 virtual bool reallocate() override;
4847 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4848
4850 // Deprecated 2023-11
4852public:
4853 SgAsmPESection *init_from_section_table(SgAsmPESectionTableEntry*, int) ROSE_DEPRECATED("use initFromSectionTable");
4854public:
4857
4858public:
4861
4862protected:
4870#endif // SgAsmPESection_OTHERS
4871#ifdef DOCUMENTATION
4872};
4873#endif // DOCUMENTATION
4874
4875
4877// SgAsmPEExportEntryList -- MACHINE GENERATED; DO NOT MODIFY --
4879
4880DECLARE_LEAF_CLASS(AsmPEExportEntryList);
4881IS_SERIALIZABLE(AsmPEExportEntryList);
4882
4883#ifndef DOCUMENTATION
4884AsmPEExportEntryList.useSmallHeader(true);
4885#endif // !DOCUMENTATION
4886
4887DECLARE_HEADERS(AsmPEExportEntryList);
4888#if defined(SgAsmPEExportEntryList_HEADERS) || defined(DOCUMENTATION)
4889#include <sageContainer.h>
4890#endif // SgAsmPEExportEntryList_HEADERS
4891
4892#ifdef DOCUMENTATION
4898#endif // DOCUMENTATION
4899
4900#ifndef DOCUMENTATION
4901 AsmPEExportEntryList.setDataPrototype(
4902 "SgAsmPEExportEntryPtrList", "exports", "",
4903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4904#endif // !DOCUMENTATION
4905
4906 DECLARE_OTHERS(AsmPEExportEntryList);
4907#if defined(SgAsmPEExportEntryList_OTHERS) || defined(DOCUMENTATION)
4908
4909 //----------------------- Boost serialization for SgAsmPEExportEntryList -----------------------
4910#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
4911private:
4912 friend class boost::serialization::access;
4913
4914 template<class S>
4915 void serialize(S &s, const unsigned /*version*/) {
4916 debugSerializationBegin("SgAsmPEExportEntryList");
4917 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
4918 s & BOOST_SERIALIZATION_NVP(p_exports);
4919 debugSerializationEnd("SgAsmPEExportEntryList");
4920 }
4921#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4922public:
4923public:
4927 SgAsmPEExportEntryPtrList const& get_exports() const;
4928 SgAsmPEExportEntryPtrList& get_exports();
4929 void set_exports(SgAsmPEExportEntryPtrList const&);
4932public:
4935
4936public:
4939
4940protected:
4948#endif // SgAsmPEExportEntryList_OTHERS
4949#ifdef DOCUMENTATION
4950};
4951#endif // DOCUMENTATION
4952
4953
4955// SgAsmPEExportEntry -- MACHINE GENERATED; DO NOT MODIFY --
4957
4958DECLARE_LEAF_CLASS(AsmPEExportEntry);
4959IS_SERIALIZABLE(AsmPEExportEntry);
4960
4961#ifndef DOCUMENTATION
4962AsmPEExportEntry.useSmallHeader(true);
4963#endif // !DOCUMENTATION
4964
4965DECLARE_HEADERS(AsmPEExportEntry);
4966#if defined(SgAsmPEExportEntry_HEADERS) || defined(DOCUMENTATION)
4967#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
4968#include <Sawyer/Result.h>
4969#endif // SgAsmPEExportEntry_HEADERS
4970
4971#ifdef DOCUMENTATION
4974#endif // DOCUMENTATION
4975
4976#ifndef DOCUMENTATION
4977 AsmPEExportEntry.setDataPrototype(
4978 "SgAsmGenericString*", "name", "= nullptr",
4979 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4980#endif // !DOCUMENTATION
4981
4982#ifndef DOCUMENTATION
4983 AsmPEExportEntry.setDataPrototype(
4984 "unsigned", "ordinal", "= 0",
4985 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4986#endif // !DOCUMENTATION
4987
4988#ifndef DOCUMENTATION
4989 AsmPEExportEntry.setDataPrototype(
4990 "Rose::BinaryAnalysis::RelativeVirtualAddress", "exportRva", "",
4991 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4992#endif // !DOCUMENTATION
4993
4994#ifndef DOCUMENTATION
4995 AsmPEExportEntry.setDataPrototype(
4996 "SgAsmGenericString*", "forwarder", "= nullptr",
4997 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4998#endif // !DOCUMENTATION
4999
5000 DECLARE_OTHERS(AsmPEExportEntry);
5001#if defined(SgAsmPEExportEntry_OTHERS) || defined(DOCUMENTATION)
5002
5003 //----------------------- Boost serialization for SgAsmPEExportEntry -----------------------
5004#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5005private:
5006 friend class boost::serialization::access;
5007
5008 template<class S>
5009 void serialize(S &s, const unsigned /*version*/) {
5010 debugSerializationBegin("SgAsmPEExportEntry");
5011 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5012 s & BOOST_SERIALIZATION_NVP(p_name);
5013 s & BOOST_SERIALIZATION_NVP(p_ordinal);
5014 s & BOOST_SERIALIZATION_NVP(p_exportRva);
5015 s & BOOST_SERIALIZATION_NVP(p_forwarder);
5016 debugSerializationEnd("SgAsmPEExportEntry");
5017 }
5018#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5019public:
5020public:
5029public:
5035 unsigned const& get_ordinal() const;
5036 void set_ordinal(unsigned const&);
5039public:
5050public:
5060public:
5062 SgAsmGenericString *forwarder);
5063 void dump(FILE *f,const char *prefix,ssize_t idx) const;
5064 /* Accessors. Override ROSETTA because we adjust parents. */
5065
5071 Sawyer::Result<unsigned /*ordinal*/, std::string /*reason*/> biasedOrdinal() const;
5072
5074 // Deprecated 2023-11
5076public:
5077 const Rose::BinaryAnalysis::RelativeVirtualAddress& get_export_rva() const ROSE_DEPRECATED("use get_exportRva");
5078 void set_export_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use set_exportRva");
5079public:
5082
5083public:
5086
5087protected:
5095#endif // SgAsmPEExportEntry_OTHERS
5096#ifdef DOCUMENTATION
5097};
5098#endif // DOCUMENTATION
5099
5100
5102// SgAsmPEExportDirectory -- MACHINE GENERATED; DO NOT MODIFY --
5104
5105DECLARE_LEAF_CLASS(AsmPEExportDirectory);
5106IS_SERIALIZABLE(AsmPEExportDirectory);
5107
5108#ifndef DOCUMENTATION
5109AsmPEExportDirectory.useSmallHeader(true);
5110#endif // !DOCUMENTATION
5111
5112DECLARE_HEADERS(AsmPEExportDirectory);
5113#if defined(SgAsmPEExportDirectory_HEADERS) || defined(DOCUMENTATION)
5114#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
5115
5116#ifdef ROSE_SgAsmPEExportDirectory_IMPL
5117#include <SgAsmGenericString.h>
5118#endif
5119#endif // SgAsmPEExportDirectory_HEADERS
5120
5121#ifdef DOCUMENTATION
5124#endif // DOCUMENTATION
5125
5126#ifndef DOCUMENTATION
5127 AsmPEExportDirectory.setDataPrototype(
5128 "unsigned", "res1", "= 0",
5129 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5130#endif // !DOCUMENTATION
5131
5132#ifndef DOCUMENTATION
5133 AsmPEExportDirectory.setDataPrototype(
5134 "time_t", "timestamp", "= 0",
5135 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5136#endif // !DOCUMENTATION
5137
5138#ifndef DOCUMENTATION
5139 AsmPEExportDirectory.setDataPrototype(
5140 "unsigned", "vmajor", "= 0",
5141 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5142#endif // !DOCUMENTATION
5143
5144#ifndef DOCUMENTATION
5145 AsmPEExportDirectory.setDataPrototype(
5146 "unsigned", "vminor", "= 0",
5147 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5148#endif // !DOCUMENTATION
5149
5150#ifndef DOCUMENTATION
5151 AsmPEExportDirectory.setDataPrototype(
5152 "Rose::BinaryAnalysis::RelativeVirtualAddress", "name_rva", "",
5153 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5154#endif // !DOCUMENTATION
5155
5156#ifndef DOCUMENTATION
5157 AsmPEExportDirectory.setDataPrototype(
5158 "unsigned", "ord_base", "= 0",
5159 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5160#endif // !DOCUMENTATION
5161
5162#ifndef DOCUMENTATION
5163 AsmPEExportDirectory.setDataPrototype(
5164 "size_t", "expaddr_n", "= 0",
5165 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5166#endif // !DOCUMENTATION
5167
5168#ifndef DOCUMENTATION
5169 AsmPEExportDirectory.setDataPrototype(
5170 "size_t", "nameptr_n", "= 0",
5171 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5172#endif // !DOCUMENTATION
5173
5174#ifndef DOCUMENTATION
5175 AsmPEExportDirectory.setDataPrototype(
5176 "Rose::BinaryAnalysis::RelativeVirtualAddress", "expaddr_rva", "",
5177 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5178#endif // !DOCUMENTATION
5179
5180#ifndef DOCUMENTATION
5181 AsmPEExportDirectory.setDataPrototype(
5182 "Rose::BinaryAnalysis::RelativeVirtualAddress", "nameptr_rva", "",
5183 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5184#endif // !DOCUMENTATION
5185
5186#ifndef DOCUMENTATION
5187 AsmPEExportDirectory.setDataPrototype(
5188 "Rose::BinaryAnalysis::RelativeVirtualAddress", "ordinals_rva", "",
5189 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5190#endif // !DOCUMENTATION
5191
5192#ifndef DOCUMENTATION
5193 AsmPEExportDirectory.setDataPrototype(
5194 "SgAsmGenericString*", "name", "= NULL",
5195 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5196#endif // !DOCUMENTATION
5197
5198 DECLARE_OTHERS(AsmPEExportDirectory);
5199#if defined(SgAsmPEExportDirectory_OTHERS) || defined(DOCUMENTATION)
5200
5201 //----------------------- Boost serialization for SgAsmPEExportDirectory -----------------------
5202#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5203private:
5204 friend class boost::serialization::access;
5205
5206 template<class S>
5207 void serialize(S &s, const unsigned /*version*/) {
5208 debugSerializationBegin("SgAsmPEExportDirectory");
5209 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5210 s & BOOST_SERIALIZATION_NVP(p_res1);
5211 s & BOOST_SERIALIZATION_NVP(p_timestamp);
5212 s & BOOST_SERIALIZATION_NVP(p_vmajor);
5213 s & BOOST_SERIALIZATION_NVP(p_vminor);
5214 s & BOOST_SERIALIZATION_NVP(p_name_rva);
5215 s & BOOST_SERIALIZATION_NVP(p_ord_base);
5216 s & BOOST_SERIALIZATION_NVP(p_expaddr_n);
5217 s & BOOST_SERIALIZATION_NVP(p_nameptr_n);
5218 s & BOOST_SERIALIZATION_NVP(p_expaddr_rva);
5219 s & BOOST_SERIALIZATION_NVP(p_nameptr_rva);
5220 s & BOOST_SERIALIZATION_NVP(p_ordinals_rva);
5221 s & BOOST_SERIALIZATION_NVP(p_name);
5222 debugSerializationEnd("SgAsmPEExportDirectory");
5223 }
5224#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5226 // Local types
5228public:
5229#ifdef _MSC_VER
5230# pragma pack (1)
5231#endif
5232 /* An Export Section begins with the Export Directory */
5234 uint32_t res1; /* 0x00 Reserved, must be zero */
5235 uint32_t timestamp; /* 0x04 Time that export data was created */
5236 uint16_t vmajor; /* 0x08 Major version number (user defined) */
5237 uint16_t vminor; /* 0x0a Minor version number (user defined) */
5238 uint32_t name_rva; /* 0x0c Location of name of DLL */
5239 uint32_t ord_base; /* 0x10 Starting ordinal for exports in this image (usually 1) */
5240 uint32_t expaddr_n; /* 0x14 Number of entries in the export address table */
5241 uint32_t nameptr_n; /* 0x18 Number of entries in the name pointer table and ordinal table */
5242 uint32_t expaddr_rva; /* 0x1c Location of Export Address Table */
5243 uint32_t nameptr_rva; /* 0x20 Location of Export Name Pointer Table */
5244 uint32_t ordinals_rva; /* 0x24 Location of Ordinal Table */
5245 } /* 0x28 */
5246#if !defined(SWIG) && !defined(_MSC_VER)
5247 __attribute__((packed))
5248#endif
5249 ;
5250#ifdef _MSC_VER
5251# pragma pack ()
5252#endif
5253
5255 // Properties
5257public:
5258public:
5264 unsigned const& get_res1() const;
5265 void set_res1(unsigned const&);
5268public:
5274 time_t const& get_timestamp() const;
5275 void set_timestamp(time_t const&);
5278public:
5284 unsigned const& get_vmajor() const;
5285 void set_vmajor(unsigned const&);
5288public:
5294 unsigned const& get_vminor() const;
5295 void set_vminor(unsigned const&);
5298public:
5309public:
5315 unsigned const& get_ord_base() const;
5316 void set_ord_base(unsigned const&);
5319public:
5325 size_t const& get_expaddr_n() const;
5326 void set_expaddr_n(size_t const&);
5329public:
5335 size_t const& get_nameptr_n() const;
5336 void set_nameptr_n(size_t const&);
5339public:
5350public:
5361public:
5372public:
5382 // Functions
5384public:
5386 void dump(FILE *f, const char *prefix, ssize_t idx) const;
5387public:
5390
5391public:
5394
5395protected:
5403#endif // SgAsmPEExportDirectory_OTHERS
5404#ifdef DOCUMENTATION
5405};
5406#endif // DOCUMENTATION
5407
5408
5410// SgAsmOperandList -- MACHINE GENERATED; DO NOT MODIFY --
5412
5413DECLARE_LEAF_CLASS(AsmOperandList);
5414IS_SERIALIZABLE(AsmOperandList);
5415
5416#ifndef DOCUMENTATION
5417AsmOperandList.useSmallHeader(true);
5418#endif // !DOCUMENTATION
5419
5420DECLARE_HEADERS(AsmOperandList);
5421#if defined(SgAsmOperandList_HEADERS) || defined(DOCUMENTATION)
5422#include <sageContainer.h>
5423#endif // SgAsmOperandList_HEADERS
5424
5425#ifdef DOCUMENTATION
5428#endif // DOCUMENTATION
5429
5430#ifndef DOCUMENTATION
5431 AsmOperandList.setDataPrototype(
5432 "SgAsmExpressionPtrList", "operands", "",
5433 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5434#endif // !DOCUMENTATION
5435
5436 DECLARE_OTHERS(AsmOperandList);
5437#if defined(SgAsmOperandList_OTHERS) || defined(DOCUMENTATION)
5438
5439 //----------------------- Boost serialization for SgAsmOperandList -----------------------
5440#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5441private:
5442 friend class boost::serialization::access;
5443
5444 template<class S>
5445 void serialize(S &s, const unsigned /*version*/) {
5446 debugSerializationBegin("SgAsmOperandList");
5447 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
5448 s & BOOST_SERIALIZATION_NVP(p_operands);
5449 debugSerializationEnd("SgAsmOperandList");
5450 }
5451#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5452public:
5453public:
5460 SgAsmExpressionPtrList const& get_operands() const;
5461 SgAsmExpressionPtrList& get_operands();
5462 void set_operands(SgAsmExpressionPtrList const&);
5464public:
5467
5469 // Deprecated 2023-11
5471public:
5472 void append_operand(SgAsmExpression*) ROSE_DEPRECATED("use appendOperand");
5473public:
5476
5477public:
5480
5481protected:
5489#endif // SgAsmOperandList_OTHERS
5490#ifdef DOCUMENTATION
5491};
5492#endif // DOCUMENTATION
5493
5494
5496// SgAsmNullInstruction -- MACHINE GENERATED; DO NOT MODIFY --
5498
5499DECLARE_LEAF_CLASS(AsmNullInstruction);
5500IS_SERIALIZABLE(AsmNullInstruction);
5501
5502#ifndef DOCUMENTATION
5503AsmNullInstruction.useSmallHeader(true);
5504#endif // !DOCUMENTATION
5505
5506#ifdef DOCUMENTATION
5508#endif // DOCUMENTATION
5509
5510 DECLARE_OTHERS(AsmNullInstruction);
5511#if defined(SgAsmNullInstruction_OTHERS) || defined(DOCUMENTATION)
5512
5513 //----------------------- Boost serialization for SgAsmNullInstruction -----------------------
5514#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5515private:
5516 friend class boost::serialization::access;
5517
5518 template<class S>
5519 void serialize(S &s, const unsigned /*version*/) {
5520 debugSerializationBegin("SgAsmNullInstruction");
5521 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
5522 debugSerializationEnd("SgAsmNullInstruction");
5523 }
5524#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5525public:
5526 // there's only one kind of null instruction
5527 enum Kind { null_unknown };
5528
5529public: // overrides
5530 virtual unsigned get_anyKind() const override;
5531public:
5534
5535public:
5538
5539public:
5542 uint8_t const& architectureId);
5543
5544protected:
5552#endif // SgAsmNullInstruction_OTHERS
5553#ifdef DOCUMENTATION
5554};
5555#endif // DOCUMENTATION
5556
5557
5559// SgAsmNEStringTable -- MACHINE GENERATED; DO NOT MODIFY --
5561
5562DECLARE_LEAF_CLASS(AsmNEStringTable);
5563IS_SERIALIZABLE(AsmNEStringTable);
5564
5565#ifndef DOCUMENTATION
5566AsmNEStringTable.useSmallHeader(true);
5567#endif // !DOCUMENTATION
5568
5569DECLARE_HEADERS(AsmNEStringTable);
5570#if defined(SgAsmNEStringTable_HEADERS) || defined(DOCUMENTATION)
5571#include <Rose/BinaryAnalysis/Address.h>
5572#endif // SgAsmNEStringTable_HEADERS
5573
5574#ifdef DOCUMENTATION
5576#endif // DOCUMENTATION
5577
5578 DECLARE_OTHERS(AsmNEStringTable);
5579#if defined(SgAsmNEStringTable_OTHERS) || defined(DOCUMENTATION)
5580
5581 //----------------------- Boost serialization for SgAsmNEStringTable -----------------------
5582#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5583private:
5584 friend class boost::serialization::access;
5585
5586 template<class S>
5587 void serialize(S &s, const unsigned /*version*/) {
5588 debugSerializationBegin("SgAsmNEStringTable");
5589 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5590 debugSerializationEnd("SgAsmNEStringTable");
5591 }
5592#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5593public:
5595 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5596 std::string get_string(Rose::BinaryAnalysis::Address offset);
5597public:
5600
5601public:
5604
5605protected:
5613#endif // SgAsmNEStringTable_OTHERS
5614#ifdef DOCUMENTATION
5615};
5616#endif // DOCUMENTATION
5617
5618
5620// SgAsmNESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
5622
5623DECLARE_LEAF_CLASS(AsmNESectionTableEntry);
5624IS_SERIALIZABLE(AsmNESectionTableEntry);
5625
5626#ifndef DOCUMENTATION
5627AsmNESectionTableEntry.useSmallHeader(true);
5628#endif // !DOCUMENTATION
5629
5630DECLARE_HEADERS(AsmNESectionTableEntry);
5631#if defined(SgAsmNESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
5632#include <Rose/BinaryAnalysis/Address.h>
5633#endif // SgAsmNESectionTableEntry_HEADERS
5634
5635#ifdef DOCUMENTATION
5637#endif // DOCUMENTATION
5638
5639#ifndef DOCUMENTATION
5640 AsmNESectionTableEntry.setDataPrototype(
5641 "unsigned", "flags", "= 0",
5642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5643#endif // !DOCUMENTATION
5644
5645#ifndef DOCUMENTATION
5646 AsmNESectionTableEntry.setDataPrototype(
5647 "unsigned", "sector", "= 0",
5648 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5649#endif // !DOCUMENTATION
5650
5651#ifndef DOCUMENTATION
5652 AsmNESectionTableEntry.setDataPrototype(
5653 "Rose::BinaryAnalysis::Address", "physicalSize", "= 0",
5654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5655#endif // !DOCUMENTATION
5656
5657#ifndef DOCUMENTATION
5658 AsmNESectionTableEntry.setDataPrototype(
5659 "Rose::BinaryAnalysis::Address", "virtualSize", "= 0",
5660 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5661#endif // !DOCUMENTATION
5662
5663 DECLARE_OTHERS(AsmNESectionTableEntry);
5664#if defined(SgAsmNESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
5665
5666 //----------------------- Boost serialization for SgAsmNESectionTableEntry -----------------------
5667#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5668private:
5669 friend class boost::serialization::access;
5670
5671 template<class S>
5672 void serialize(S &s, const unsigned /*version*/) {
5673 debugSerializationBegin("SgAsmNESectionTableEntry");
5674 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5675 s & BOOST_SERIALIZATION_NVP(p_flags);
5676 s & BOOST_SERIALIZATION_NVP(p_sector);
5677 s & BOOST_SERIALIZATION_NVP(p_physicalSize);
5678 s & BOOST_SERIALIZATION_NVP(p_virtualSize);
5679 debugSerializationEnd("SgAsmNESectionTableEntry");
5680 }
5681#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5683 // Local types
5685public:
5686#ifdef _MSC_VER
5687# pragma pack (1)
5688#endif
5689 /* File format of a section table entry. All fields are little endian. */
5691 uint16_t sector; /* 0x00 File offset (sector size defined in hdr); zero means no file data */
5692 uint16_t physical_size; /* 0x02 Length of segment in file; zero means 64k if sector is non-zero */
5693 uint16_t flags; /* 0x04 Segment bit flags */
5694 uint16_t virtual_size; /* 0x06 Total size of segment when mapped to memory; zero means 64k */
5695 } /* 0x08 */
5696// DQ (3/7/2013): Adding support to restrict visability to SWIG.
5697#ifndef SWIG
5698#ifndef _MSC_VER
5699 __attribute__((packed))
5700#endif
5701#endif
5702 ;
5703#ifdef _MSC_VER
5704# pragma pack ()
5705#endif
5706
5707 enum NESectionFlags {
5708 SF_RESERVED = 0x0e08, /* these bits are reserved */
5709
5710 SF_TYPE_MASK = 0x0007, /* segment-type field */
5711 SF_CODE = 0x0000, /* code-segment type */
5712 SF_DATA = 0x0001, /* data-segment (otherwise segment is code) */
5713 SF_ALLOC = 0x0002, /* loader allocates memory */
5714 SF_LOAD = 0x0004, /* load the segment */
5715
5716 SF_MOVABLE = 0x0010, /* segment is not fixed */
5717 SF_PURE = 0x0020, /* segment is pure, or sharable; otherwise impure or non-sharable */
5718 SF_PRELOAD = 0x0040, /* segment will be preloaded; read-only if this is a data segment */
5719 SF_NOT_WRITABLE = 0x0080, /* code segment is execute only; data segment is read-only */
5720 SF_RELOCINFO = 0x0100, /* segment has relocation records */
5721 SF_DISCARDABLE = 0x1000, /* discardable */
5722 SF_DISCARD = 0xf000 /* discard priority */
5723 };
5724
5726 // Properties
5728public:
5729public:
5730 unsigned const& get_flags() const;
5731 void set_flags(unsigned const&);
5732
5733public:
5734 unsigned const& get_sector() const;
5735 void set_sector(unsigned const&);
5736
5737public:
5738 Rose::BinaryAnalysis::Address const& get_physicalSize() const;
5739 void set_physicalSize(Rose::BinaryAnalysis::Address const&);
5740
5741public:
5742 Rose::BinaryAnalysis::Address const& get_virtualSize() const;
5743 void set_virtualSize(Rose::BinaryAnalysis::Address const&);
5745 // Functions
5747public:
5750 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const {dump(f, prefix, idx, NULL);}
5751 void dump(FILE*, const char *prefix, ssize_t idx, SgAsmNEFileHeader *fhdr) const;
5752
5754 // Deprecated 2023-11
5756public:
5757 Rose::BinaryAnalysis::Address get_physical_size() const ROSE_DEPRECATED("use get_physicalSize");
5758 void set_physical_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_physicalSize");
5759 Rose::BinaryAnalysis::Address get_virtual_size() const ROSE_DEPRECATED("use get_virtualSize");
5760 void set_virtual_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_virtualSize");
5761public:
5764
5765public:
5768
5769protected:
5777#endif // SgAsmNESectionTableEntry_OTHERS
5778#ifdef DOCUMENTATION
5779};
5780#endif // DOCUMENTATION
5781
5782
5784// SgAsmNESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
5786
5787DECLARE_LEAF_CLASS(AsmNESectionTable);
5788IS_SERIALIZABLE(AsmNESectionTable);
5789
5790#ifndef DOCUMENTATION
5791AsmNESectionTable.useSmallHeader(true);
5792#endif // !DOCUMENTATION
5793
5794DECLARE_HEADERS(AsmNESectionTable);
5795#if defined(SgAsmNESectionTable_HEADERS) || defined(DOCUMENTATION)
5796#include <Rose/BinaryAnalysis/Address.h>
5797#endif // SgAsmNESectionTable_HEADERS
5798
5799#ifdef DOCUMENTATION
5801#endif // DOCUMENTATION
5802
5803#ifndef DOCUMENTATION
5804 AsmNESectionTable.setDataPrototype(
5805 "unsigned", "flags", "= 0",
5806 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5807#endif // !DOCUMENTATION
5808
5809#ifndef DOCUMENTATION
5810 AsmNESectionTable.setDataPrototype(
5811 "unsigned", "sector", "= 0",
5812 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5813#endif // !DOCUMENTATION
5814
5815#ifndef DOCUMENTATION
5816 AsmNESectionTable.setDataPrototype(
5817 "Rose::BinaryAnalysis::Address", "physicalSize", "= 0",
5818 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5819#endif // !DOCUMENTATION
5820
5821#ifndef DOCUMENTATION
5822 AsmNESectionTable.setDataPrototype(
5823 "Rose::BinaryAnalysis::Address", "virtualSize", "= 0",
5824 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5825#endif // !DOCUMENTATION
5826
5827 DECLARE_OTHERS(AsmNESectionTable);
5828#if defined(SgAsmNESectionTable_OTHERS) || defined(DOCUMENTATION)
5829
5830 //----------------------- Boost serialization for SgAsmNESectionTable -----------------------
5831#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5832private:
5833 friend class boost::serialization::access;
5834
5835 template<class S>
5836 void serialize(S &s, const unsigned /*version*/) {
5837 debugSerializationBegin("SgAsmNESectionTable");
5838 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5839 s & BOOST_SERIALIZATION_NVP(p_flags);
5840 s & BOOST_SERIALIZATION_NVP(p_sector);
5841 s & BOOST_SERIALIZATION_NVP(p_physicalSize);
5842 s & BOOST_SERIALIZATION_NVP(p_virtualSize);
5843 debugSerializationEnd("SgAsmNESectionTable");
5844 }
5845#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5846public:
5847public:
5848 unsigned const& get_flags() const;
5849 void set_flags(unsigned const&);
5850
5851public:
5852 unsigned const& get_sector() const;
5853 void set_sector(unsigned const&);
5854
5855public:
5856 Rose::BinaryAnalysis::Address const& get_physicalSize() const;
5857 void set_physicalSize(Rose::BinaryAnalysis::Address const&);
5858
5859public:
5860 Rose::BinaryAnalysis::Address const& get_virtualSize() const;
5861 void set_virtualSize(Rose::BinaryAnalysis::Address const&);
5862public:
5864 virtual void unparse(std::ostream&) const override;
5865 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5866
5868 // Deprecated 2023-11
5870public:
5871 Rose::BinaryAnalysis::Address get_physical_size() const ROSE_DEPRECATED("use get_physicalSize");
5872 void set_physical_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_physicalSize");
5873 Rose::BinaryAnalysis::Address get_virtual_size() const ROSE_DEPRECATED("use get_virtualSize");
5874 void set_virtual_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_virtualSize");
5875public:
5878
5879public:
5882
5883protected:
5891#endif // SgAsmNESectionTable_OTHERS
5892#ifdef DOCUMENTATION
5893};
5894#endif // DOCUMENTATION
5895
5896
5898// SgAsmNESection -- MACHINE GENERATED; DO NOT MODIFY --
5900
5901DECLARE_LEAF_CLASS(AsmNESection);
5902IS_SERIALIZABLE(AsmNESection);
5903
5904#ifndef DOCUMENTATION
5905AsmNESection.useSmallHeader(true);
5906#endif // !DOCUMENTATION
5907
5908DECLARE_HEADERS(AsmNESection);
5909#if defined(SgAsmNESection_HEADERS) || defined(DOCUMENTATION)
5910#ifdef ROSE_SgAsmNESection_IMPL
5911#include <SgAsmNESectionTableEntry.h>
5912#include <SgAsmNERelocTable.h>
5913#endif
5914#endif // SgAsmNESection_HEADERS
5915
5916#ifdef DOCUMENTATION
5918#endif // DOCUMENTATION
5919
5920#ifndef DOCUMENTATION
5921 AsmNESection.setDataPrototype(
5922 "SgAsmNESectionTableEntry*", "sectionTableEntry", "= nullptr",
5923 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5924#endif // !DOCUMENTATION
5925
5926#ifndef DOCUMENTATION
5927 AsmNESection.setDataPrototype(
5928 "SgAsmNERelocTable*", "relocationTable", "= nullptr",
5929 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5930#endif // !DOCUMENTATION
5931
5932 DECLARE_OTHERS(AsmNESection);
5933#if defined(SgAsmNESection_OTHERS) || defined(DOCUMENTATION)
5934
5935 //----------------------- Boost serialization for SgAsmNESection -----------------------
5936#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5937private:
5938 friend class boost::serialization::access;
5939
5940 template<class S>
5941 void serialize(S &s, const unsigned /*version*/) {
5942 debugSerializationBegin("SgAsmNESection");
5943 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5944 s & BOOST_SERIALIZATION_NVP(p_sectionTableEntry);
5945 s & BOOST_SERIALIZATION_NVP(p_relocationTable);
5946 debugSerializationEnd("SgAsmNESection");
5947 }
5948#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5949public:
5950public:
5951 SgAsmNESectionTableEntry* const& get_sectionTableEntry() const;
5952 void set_sectionTableEntry(SgAsmNESectionTableEntry* const&);
5953
5954public:
5955 SgAsmNERelocTable* const& get_relocationTable() const;
5956 void set_relocationTable(SgAsmNERelocTable* const&);
5957public:
5958 explicit SgAsmNESection(SgAsmNEFileHeader *fhdr);
5959 virtual void unparse(std::ostream&) const override;
5960 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5961
5963 // Deprecated 2023-11
5965public:
5966 SgAsmNESectionTableEntry* get_st_entry() const ROSE_DEPRECATED("use get_sectionTableEntry");
5967 void set_st_entry(SgAsmNESectionTableEntry*) ROSE_DEPRECATED("use set_sectionTableEntry");
5968 SgAsmNERelocTable* get_reloc_table() const ROSE_DEPRECATED("use get_relocationTable");
5969 void set_reloc_table(SgAsmNERelocTable*) ROSE_DEPRECATED("use set_relocationTable");
5970public:
5972 virtual ~SgAsmNESection();
5973
5974public:
5977
5978protected:
5986#endif // SgAsmNESection_OTHERS
5987#ifdef DOCUMENTATION
5988};
5989#endif // DOCUMENTATION
5990
5991
5993// SgAsmNERelocTable -- MACHINE GENERATED; DO NOT MODIFY --
5995
5996DECLARE_LEAF_CLASS(AsmNERelocTable);
5997IS_SERIALIZABLE(AsmNERelocTable);
5998
5999#ifndef DOCUMENTATION
6000AsmNERelocTable.useSmallHeader(true);
6001#endif // !DOCUMENTATION
6002
6003#ifdef DOCUMENTATION
6005#endif // DOCUMENTATION
6006
6007#ifndef DOCUMENTATION
6008 AsmNERelocTable.setDataPrototype(
6009 "SgAsmNERelocEntryPtrList", "entries", "",
6010 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6011#endif // !DOCUMENTATION
6012
6013 DECLARE_OTHERS(AsmNERelocTable);
6014#if defined(SgAsmNERelocTable_OTHERS) || defined(DOCUMENTATION)
6015
6016 //----------------------- Boost serialization for SgAsmNERelocTable -----------------------
6017#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6018private:
6019 friend class boost::serialization::access;
6020
6021 template<class S>
6022 void serialize(S &s, const unsigned /*version*/) {
6023 debugSerializationBegin("SgAsmNERelocTable");
6024 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6025 s & BOOST_SERIALIZATION_NVP(p_entries);
6026 debugSerializationEnd("SgAsmNERelocTable");
6027 }
6028#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6029public:
6030public:
6031 SgAsmNERelocEntryPtrList const& get_entries() const;
6032 SgAsmNERelocEntryPtrList& get_entries();
6033 void set_entries(SgAsmNERelocEntryPtrList const&);
6034public:
6035 explicit SgAsmNERelocTable(SgAsmNEFileHeader *fhdr, SgAsmNESection *section);
6036 virtual void unparse(std::ostream&) const override;
6037 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6038public:
6041
6042public:
6045
6046protected:
6054#endif // SgAsmNERelocTable_OTHERS
6055#ifdef DOCUMENTATION
6056};
6057#endif // DOCUMENTATION
6058
6059
6061// SgAsmNERelocEntry -- MACHINE GENERATED; DO NOT MODIFY --
6063
6064DECLARE_LEAF_CLASS(AsmNERelocEntry);
6065IS_SERIALIZABLE(AsmNERelocEntry);
6066
6067#ifndef DOCUMENTATION
6068AsmNERelocEntry.useSmallHeader(true);
6069#endif // !DOCUMENTATION
6070
6071DECLARE_HEADERS(AsmNERelocEntry);
6072#if defined(SgAsmNERelocEntry_HEADERS) || defined(DOCUMENTATION)
6073#include <Rose/BinaryAnalysis/Address.h>
6074#endif // SgAsmNERelocEntry_HEADERS
6075
6076#ifdef DOCUMENTATION
6078#endif // DOCUMENTATION
6079
6080#ifndef DOCUMENTATION
6081 AsmNERelocEntry.setDataPrototype(
6082 "SgAsmNERelocEntry::NERelocSrcType", "src_type", "= SgAsmNERelocEntry::RF_SRCTYPE_8OFF",
6083 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6084#endif // !DOCUMENTATION
6085
6086#ifndef DOCUMENTATION
6087 AsmNERelocEntry.setDataPrototype(
6088 "SgAsmNERelocEntry::NERelocModifiers", "modifier", "= SgAsmNERelocEntry::RF_MODIFIER_SINGLE",
6089 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6090#endif // !DOCUMENTATION
6091
6092#ifndef DOCUMENTATION
6093 AsmNERelocEntry.setDataPrototype(
6094 "SgAsmNERelocEntry::NERelocTgtType", "tgt_type", "= SgAsmNERelocEntry::RF_TGTTYPE_IREF",
6095 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6096#endif // !DOCUMENTATION
6097
6098#ifndef DOCUMENTATION
6099 AsmNERelocEntry.setDataPrototype(
6100 "SgAsmNERelocEntry::NERelocFlags", "flags", "= SgAsmNERelocEntry::RF_ADDITIVE",
6101 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6102#endif // !DOCUMENTATION
6103
6104#ifndef DOCUMENTATION
6105 AsmNERelocEntry.setDataPrototype(
6106 "Rose::BinaryAnalysis::Address", "src_offset", "= 0",
6107 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6108#endif // !DOCUMENTATION
6109
6110#ifndef DOCUMENTATION
6111 AsmNERelocEntry.setDataPrototype(
6112 "SgAsmNERelocEntry::iref_type", "iref", "",
6113 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6114#endif // !DOCUMENTATION
6115
6116#ifndef DOCUMENTATION
6117 AsmNERelocEntry.setDataPrototype(
6118 "SgAsmNERelocEntry::iord_type", "iord", "",
6119 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6120#endif // !DOCUMENTATION
6121
6122#ifndef DOCUMENTATION
6123 AsmNERelocEntry.setDataPrototype(
6124 "SgAsmNERelocEntry::iname_type", "iname", "",
6125 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6126#endif // !DOCUMENTATION
6127
6128#ifndef DOCUMENTATION
6129 AsmNERelocEntry.setDataPrototype(
6130 "SgAsmNERelocEntry::osfixup_type", "osfixup", "",
6131 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6132#endif // !DOCUMENTATION
6133
6134 DECLARE_OTHERS(AsmNERelocEntry);
6135#if defined(SgAsmNERelocEntry_OTHERS) || defined(DOCUMENTATION)
6136
6137 //----------------------- Boost serialization for SgAsmNERelocEntry -----------------------
6138#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6139private:
6140 friend class boost::serialization::access;
6141
6142 template<class S>
6143 void serialize(S &s, const unsigned /*version*/) {
6144 debugSerializationBegin("SgAsmNERelocEntry");
6145 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
6146 s & BOOST_SERIALIZATION_NVP(p_src_type);
6147 s & BOOST_SERIALIZATION_NVP(p_modifier);
6148 s & BOOST_SERIALIZATION_NVP(p_tgt_type);
6149 s & BOOST_SERIALIZATION_NVP(p_flags);
6150 s & BOOST_SERIALIZATION_NVP(p_src_offset);
6151 s & BOOST_SERIALIZATION_NVP(p_iref);
6152 s & BOOST_SERIALIZATION_NVP(p_iord);
6153 s & BOOST_SERIALIZATION_NVP(p_iname);
6154 s & BOOST_SERIALIZATION_NVP(p_osfixup);
6155 debugSerializationEnd("SgAsmNERelocEntry");
6156 }
6157#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6159 // Local types
6161public:
6162 /* NERelocEntry_disk -- variable size with multiple levels of 'union'. It's easier to just parse it in NERelocEntry::ctor()
6163 * than defining it here as a struct. */
6164 enum NERelocSrcType {
6165 RF_SRCTYPE_8OFF = 0, /* Byte offset */
6166 RF_SRCTYPE_WORDSEG = 2, /* Word segment, 16-bit selector */
6167 RF_SRCTYPE_16PTR = 3, /* 16-bit far pointer */
6168 RF_SRCTYPE_16OFF = 5, /* 16-bit offset */
6169 RF_SRCTYPE_32PTR = 6, /* 32-bit far pointer */
6170 RF_SRCTYPE_32OFF = 7, /* 32-bit offset */
6171 RF_SRCTYPE_NEARCALL = 8, /* near call or jump, WORD/DWROD based on section attribute */
6172 RF_SRCTYPE_48PTR = 11, /* 48-bit pointer */
6173 RF_SRCTYPE_32OFF_b = 13 /* 32-bit offset (not sure how this differs from case 7) */
6174 };
6175
6176 enum NERelocTgtType {
6177 RF_TGTTYPE_IREF = 0, /* Internal reference */
6178 RF_TGTTYPE_IORD = 1, /* Imported (extern) ordinal */
6179 RF_TGTTYPE_INAME = 2, /* Imported (extern) name */
6180 RF_TGTTYPE_OSFIXUP = 3 /* Operating system fixup */
6181 };
6182
6183 enum NERelocModifiers {
6184 RF_MODIFIER_SINGLE = 1,
6185 RF_MODIFIER_MULTI = 3
6186 };
6187
6188 enum NERelocFlags {
6189 RF_ADDITIVE = 0x01, /* add target to source rather than replace source with target */
6190 RF_RESERVED = 0x02, /* reserved bits */
6191 RF_2EXTRA = 0x04, /* relocation info has size with new two bytes at end */
6192 RF_32ADD = 0x08, /* addition with 32-bits rather than 16 */
6193 RF_16SECTION = 0x10, /* 16-bit object number & module name rather than 8-bit */
6194 RF_8ORDINAL = 0x20 /* Ordinal is 8-bits rather than 16 */
6195 };
6196
6197 // DQ (8/7/2008): At only (I hope) the risk of using more memory that required, break the union so that we can better support
6198 // this in ROSETTA. One solution might be to implement a common base class of unsigned, unsigned, Rose::BinaryAnalysis::Address;
6199 // and then use member functions to access the data in the base class.
6200 struct iref_type { /*tgt_type==0x00: internal reference*/
6201 unsigned sect_idx; /* section index (1-origin) */
6202 unsigned res1; /* reserved */
6204
6205#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6206 template<class S>
6207 void serialize(S &s, const unsigned /*version*/) {
6208 s & BOOST_SERIALIZATION_NVP(sect_idx);
6209 s & BOOST_SERIALIZATION_NVP(res1);
6210 s & BOOST_SERIALIZATION_NVP(tgt_offset);
6211 }
6212#endif
6213
6214 // Added to support RTI support in ROSE
6215 friend std::ostream & operator<< ( std::ostream & os, const iref_type & x );
6216
6217 iref_type();
6218 };
6219
6220 struct iord_type { /*tgt_type==0x01: imported ordinal*/
6221 unsigned modref; /* 1-based index into import module table */
6222 unsigned ordinal;
6223 Rose::BinaryAnalysis::Address addend; /* value to add (only present for flags & RF_2EXTRA) */
6224
6225#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6226 template<class S>
6227 void serialize(S &s, const unsigned /*version*/) {
6228 s & BOOST_SERIALIZATION_NVP(modref);
6229 s & BOOST_SERIALIZATION_NVP(ordinal);
6230 s & BOOST_SERIALIZATION_NVP(addend);
6231 }
6232#endif
6233
6234 // Added to support RTI support in ROSE
6235 friend std::ostream & operator<< ( std::ostream & os, const iord_type & x );
6236
6237 iord_type();
6238 };
6239
6240 struct iname_type { /*tgt_type==0x02: imported name*/
6241 unsigned modref; /* 1-based index into import module table */
6242 unsigned nm_off; /* offset into import procedure names */
6243 Rose::BinaryAnalysis::Address addend; /* value to add (only present for flags & RF_2EXTRA) */
6244
6245#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6246 template<class S>
6247 void serialize(S &s, const unsigned /*version*/) {
6248 s & BOOST_SERIALIZATION_NVP(modref);
6249 s & BOOST_SERIALIZATION_NVP(nm_off);
6250 s & BOOST_SERIALIZATION_NVP(addend);
6251 }
6252#endif
6253
6254 // Added to support RTI support in ROSE
6255 friend std::ostream & operator<< ( std::ostream & os, const iname_type & x );
6256
6257 iname_type();
6258 };
6259
6260 struct osfixup_type { /*tgt_type==0x03: operating system fixup*/
6261 unsigned type;
6262 unsigned res3;
6263
6264#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6265 template<class S>
6266 void serialize(S &s, const unsigned /*version*/) {
6267 s & BOOST_SERIALIZATION_NVP(type);
6268 s & BOOST_SERIALIZATION_NVP(res3);
6269 }
6270#endif
6271
6272 // Added to support RTI support in ROSE
6273 friend std::ostream & operator<< ( std::ostream & os, const osfixup_type & x );
6274
6275 osfixup_type();
6276 };
6277
6279 // Properties
6281public:
6282public:
6283 SgAsmNERelocEntry::NERelocSrcType const& get_src_type() const;
6284 void set_src_type(SgAsmNERelocEntry::NERelocSrcType const&);
6285
6286public:
6287 SgAsmNERelocEntry::NERelocModifiers const& get_modifier() const;
6288 void set_modifier(SgAsmNERelocEntry::NERelocModifiers const&);
6289
6290public:
6291 SgAsmNERelocEntry::NERelocTgtType const& get_tgt_type() const;
6292 void set_tgt_type(SgAsmNERelocEntry::NERelocTgtType const&);
6293
6294public:
6295 SgAsmNERelocEntry::NERelocFlags const& get_flags() const;
6296 void set_flags(SgAsmNERelocEntry::NERelocFlags const&);
6297
6298public:
6299 Rose::BinaryAnalysis::Address const& get_src_offset() const;
6300 void set_src_offset(Rose::BinaryAnalysis::Address const&);
6301
6302public:
6303 SgAsmNERelocEntry::iref_type const& get_iref() const;
6304 void set_iref(SgAsmNERelocEntry::iref_type const&);
6305
6306public:
6307 SgAsmNERelocEntry::iord_type const& get_iord() const;
6308 void set_iord(SgAsmNERelocEntry::iord_type const&);
6309
6310public:
6311 SgAsmNERelocEntry::iname_type const& get_iname() const;
6312 void set_iname(SgAsmNERelocEntry::iname_type const&);
6313
6314public:
6315 SgAsmNERelocEntry::osfixup_type const& get_osfixup() const;
6316 void set_osfixup(SgAsmNERelocEntry::osfixup_type const&);
6318 // Functions
6320public:
6322 Rose::BinaryAnalysis::Address unparse(std::ostream&, const SgAsmGenericSection*, Rose::BinaryAnalysis::Address spos) const;
6323 void dump(FILE*, const char *prefix, ssize_t idx) const;
6324public:
6327
6328public:
6331
6332protected:
6340#endif // SgAsmNERelocEntry_OTHERS
6341#ifdef DOCUMENTATION
6342};
6343#endif // DOCUMENTATION
6344
6345
6347// SgAsmNENameTable -- MACHINE GENERATED; DO NOT MODIFY --
6349
6350DECLARE_LEAF_CLASS(AsmNENameTable);
6351IS_SERIALIZABLE(AsmNENameTable);
6352
6353#ifndef DOCUMENTATION
6354AsmNENameTable.useSmallHeader(true);
6355#endif // !DOCUMENTATION
6356
6357DECLARE_HEADERS(AsmNENameTable);
6358#if defined(SgAsmNENameTable_HEADERS) || defined(DOCUMENTATION)
6359#include <Rose/BinaryAnalysis/Address.h>
6360#endif // SgAsmNENameTable_HEADERS
6361
6362#ifdef DOCUMENTATION
6364#endif // DOCUMENTATION
6365
6366#ifndef DOCUMENTATION
6367 AsmNENameTable.setDataPrototype(
6368 "SgStringList", "names", "",
6369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6370#endif // !DOCUMENTATION
6371
6372#ifndef DOCUMENTATION
6373 AsmNENameTable.setDataPrototype(
6374 "SgUnsignedList", "ordinals", "",
6375 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6376#endif // !DOCUMENTATION
6377
6378 DECLARE_OTHERS(AsmNENameTable);
6379#if defined(SgAsmNENameTable_OTHERS) || defined(DOCUMENTATION)
6380
6381 //----------------------- Boost serialization for SgAsmNENameTable -----------------------
6382#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6383private:
6384 friend class boost::serialization::access;
6385
6386 template<class S>
6387 void serialize(S &s, const unsigned /*version*/) {
6388 debugSerializationBegin("SgAsmNENameTable");
6389 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6390 s & BOOST_SERIALIZATION_NVP(p_names);
6391 s & BOOST_SERIALIZATION_NVP(p_ordinals);
6392 debugSerializationEnd("SgAsmNENameTable");
6393 }
6394#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6395public:
6396public:
6397 SgStringList const& get_names() const;
6398 void set_names(SgStringList const&);
6399
6400public:
6401 SgUnsignedList const& get_ordinals() const;
6402 void set_ordinals(SgUnsignedList const&);
6403public:
6405 virtual void unparse(std::ostream&) const override;
6406 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6407 std::vector<std::string> get_namesByOrdinal(unsigned ordinal);
6408
6410 // Deprecated 2023-11
6412public:
6413 std::vector<std::string> get_names_by_ordinal(unsigned) ROSE_DEPRECATED("use get_namesByOrdinal");
6414public:
6417
6418public:
6421
6422protected:
6430#endif // SgAsmNENameTable_OTHERS
6431#ifdef DOCUMENTATION
6432};
6433#endif // DOCUMENTATION
6434
6435
6437// SgAsmNEModuleTable -- MACHINE GENERATED; DO NOT MODIFY --
6439
6440DECLARE_LEAF_CLASS(AsmNEModuleTable);
6441IS_SERIALIZABLE(AsmNEModuleTable);
6442
6443#ifndef DOCUMENTATION
6444AsmNEModuleTable.useSmallHeader(true);
6445#endif // !DOCUMENTATION
6446
6447DECLARE_HEADERS(AsmNEModuleTable);
6448#if defined(SgAsmNEModuleTable_HEADERS) || defined(DOCUMENTATION)
6449#include <Rose/BinaryAnalysis/Address.h>
6450
6451#ifdef ROSE_SgAsmNEModuleTable_IMPL
6452#include <SgAsmNEStringTable.h>
6453#endif
6454#endif // SgAsmNEModuleTable_HEADERS
6455
6456#ifdef DOCUMENTATION
6458#endif // DOCUMENTATION
6459
6460#ifndef DOCUMENTATION
6461 AsmNEModuleTable.setDataPrototype(
6462 "SgAsmNEStringTable*", "strtab", "= nullptr",
6463 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6464#endif // !DOCUMENTATION
6465
6466#ifndef DOCUMENTATION
6467 AsmNEModuleTable.setDataPrototype(
6468 "SgAddressList", "nameOffsets", "",
6469 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6470#endif // !DOCUMENTATION
6471
6472#ifndef DOCUMENTATION
6473 AsmNEModuleTable.setDataPrototype(
6474 "SgStringList", "names", "",
6475 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6476#endif // !DOCUMENTATION
6477
6478 DECLARE_OTHERS(AsmNEModuleTable);
6479#if defined(SgAsmNEModuleTable_OTHERS) || defined(DOCUMENTATION)
6480
6481 //----------------------- Boost serialization for SgAsmNEModuleTable -----------------------
6482#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6483private:
6484 friend class boost::serialization::access;
6485
6486 template<class S>
6487 void serialize(S &s, const unsigned /*version*/) {
6488 debugSerializationBegin("SgAsmNEModuleTable");
6489 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6490 s & BOOST_SERIALIZATION_NVP(p_strtab);
6491 s & BOOST_SERIALIZATION_NVP(p_nameOffsets);
6492 s & BOOST_SERIALIZATION_NVP(p_names);
6493 debugSerializationEnd("SgAsmNEModuleTable");
6494 }
6495#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6496public:
6497public:
6498 SgAsmNEStringTable* const& get_strtab() const;
6499 void set_strtab(SgAsmNEStringTable* const&);
6500
6501public:
6502 SgAddressList const& get_nameOffsets() const;
6503 void set_nameOffsets(SgAddressList const&);
6504
6505public:
6506 SgStringList const& get_names() const;
6507 void set_names(SgStringList const&);
6508public:
6511 virtual void unparse(std::ostream&) const override;
6512 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6513
6515 // Deprecated 2023-11
6517public:
6518 const SgAddressList& get_name_offsets() const ROSE_DEPRECATED("use get_nameOffsets");
6519 void set_name_offsets(const SgAddressList&) ROSE_DEPRECATED("use set_nameOffsets");
6520public:
6523
6524public:
6527
6528protected:
6536#endif // SgAsmNEModuleTable_OTHERS
6537#ifdef DOCUMENTATION
6538};
6539#endif // DOCUMENTATION
6540
6541
6543// SgAsmNEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
6545
6546DECLARE_LEAF_CLASS(AsmNEFileHeader);
6547IS_SERIALIZABLE(AsmNEFileHeader);
6548
6549#ifndef DOCUMENTATION
6550AsmNEFileHeader.useSmallHeader(true);
6551#endif // !DOCUMENTATION
6552
6553DECLARE_HEADERS(AsmNEFileHeader);
6554#if defined(SgAsmNEFileHeader_HEADERS) || defined(DOCUMENTATION)
6555#include <Rose/BinaryAnalysis/Address.h>
6556
6557#ifdef ROSE_SgAsmNEFileHeader_IMPL
6558#include <SgAsmDOSExtendedHeader.h>
6559#include <SgAsmNEEntryTable.h>
6560#include <SgAsmNEModuleTable.h>
6561#include <SgAsmNENameTable.h>
6562#include <SgAsmNESectionTable.h>
6563#endif
6564#endif // SgAsmNEFileHeader_HEADERS
6565
6566#ifdef DOCUMENTATION
6568#endif // DOCUMENTATION
6569
6570#ifndef DOCUMENTATION
6571 AsmNEFileHeader.setDataPrototype(
6572 "unsigned", "e_linker_major", "= 0",
6573 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6574#endif // !DOCUMENTATION
6575
6576#ifndef DOCUMENTATION
6577 AsmNEFileHeader.setDataPrototype(
6578 "unsigned", "e_linker_minor", "= 0",
6579 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6580#endif // !DOCUMENTATION
6581
6582#ifndef DOCUMENTATION
6583 AsmNEFileHeader.setDataPrototype(
6584 "unsigned", "e_checksum", "= 0",
6585 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6586#endif // !DOCUMENTATION
6587
6588#ifndef DOCUMENTATION
6589 AsmNEFileHeader.setDataPrototype(
6590 "unsigned", "e_flags1", "= 0",
6591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6592#endif // !DOCUMENTATION
6593
6594#ifndef DOCUMENTATION
6595 AsmNEFileHeader.setDataPrototype(
6596 "unsigned", "e_autodata_sn", "= 0",
6597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6598#endif // !DOCUMENTATION
6599
6600#ifndef DOCUMENTATION
6601 AsmNEFileHeader.setDataPrototype(
6602 "unsigned", "e_bss_size", "= 0",
6603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6604#endif // !DOCUMENTATION
6605
6606#ifndef DOCUMENTATION
6607 AsmNEFileHeader.setDataPrototype(
6608 "unsigned", "e_stack_size", "= 0",
6609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6610#endif // !DOCUMENTATION
6611
6612#ifndef DOCUMENTATION
6613 AsmNEFileHeader.setDataPrototype(
6614 "unsigned", "e_csip", "= 0",
6615 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6616#endif // !DOCUMENTATION
6617
6618#ifndef DOCUMENTATION
6619 AsmNEFileHeader.setDataPrototype(
6620 "unsigned", "e_sssp", "= 0",
6621 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6622#endif // !DOCUMENTATION
6623
6624#ifndef DOCUMENTATION
6625 AsmNEFileHeader.setDataPrototype(
6626 "unsigned", "e_nsections", "= 0",
6627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6628#endif // !DOCUMENTATION
6629
6630#ifndef DOCUMENTATION
6631 AsmNEFileHeader.setDataPrototype(
6632 "unsigned", "e_nmodrefs", "= 0",
6633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6634#endif // !DOCUMENTATION
6635
6636#ifndef DOCUMENTATION
6637 AsmNEFileHeader.setDataPrototype(
6638 "unsigned", "e_nnonresnames", "= 0",
6639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6640#endif // !DOCUMENTATION
6641
6642#ifndef DOCUMENTATION
6643 AsmNEFileHeader.setDataPrototype(
6644 "unsigned", "e_nmovable_entries", "= 0",
6645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6646#endif // !DOCUMENTATION
6647
6648#ifndef DOCUMENTATION
6649 AsmNEFileHeader.setDataPrototype(
6650 "unsigned", "e_sector_align", "= 0",
6651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6652#endif // !DOCUMENTATION
6653
6654#ifndef DOCUMENTATION
6655 AsmNEFileHeader.setDataPrototype(
6656 "unsigned", "e_nresources", "= 0",
6657 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6658#endif // !DOCUMENTATION
6659
6660#ifndef DOCUMENTATION
6661 AsmNEFileHeader.setDataPrototype(
6662 "unsigned", "e_exetype", "= 0",
6663 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6664#endif // !DOCUMENTATION
6665
6666#ifndef DOCUMENTATION
6667 AsmNEFileHeader.setDataPrototype(
6668 "unsigned", "e_flags2", "= 0",
6669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6670#endif // !DOCUMENTATION
6671
6672#ifndef DOCUMENTATION
6673 AsmNEFileHeader.setDataPrototype(
6674 "unsigned", "e_res1", "= 0",
6675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6676#endif // !DOCUMENTATION
6677
6678#ifndef DOCUMENTATION
6679 AsmNEFileHeader.setDataPrototype(
6680 "unsigned", "e_winvers", "= 0",
6681 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6682#endif // !DOCUMENTATION
6683
6684#ifndef DOCUMENTATION
6685 AsmNEFileHeader.setDataPrototype(
6686 "Rose::BinaryAnalysis::Address", "e_entrytab_rfo", "= 0",
6687 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6688#endif // !DOCUMENTATION
6689
6690#ifndef DOCUMENTATION
6691 AsmNEFileHeader.setDataPrototype(
6692 "Rose::BinaryAnalysis::Address", "e_entrytab_size", "= 0",
6693 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6694#endif // !DOCUMENTATION
6695
6696#ifndef DOCUMENTATION
6697 AsmNEFileHeader.setDataPrototype(
6698 "Rose::BinaryAnalysis::Address", "e_sectab_rfo", "= 0",
6699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6700#endif // !DOCUMENTATION
6701
6702#ifndef DOCUMENTATION
6703 AsmNEFileHeader.setDataPrototype(
6704 "Rose::BinaryAnalysis::Address", "e_rsrctab_rfo", "= 0",
6705 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6706#endif // !DOCUMENTATION
6707
6708#ifndef DOCUMENTATION
6709 AsmNEFileHeader.setDataPrototype(
6710 "Rose::BinaryAnalysis::Address", "e_resnametab_rfo", "= 0",
6711 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6712#endif // !DOCUMENTATION
6713
6714#ifndef DOCUMENTATION
6715 AsmNEFileHeader.setDataPrototype(
6716 "Rose::BinaryAnalysis::Address", "e_modreftab_rfo", "= 0",
6717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6718#endif // !DOCUMENTATION
6719
6720#ifndef DOCUMENTATION
6721 AsmNEFileHeader.setDataPrototype(
6722 "Rose::BinaryAnalysis::Address", "e_importnametab_rfo", "= 0",
6723 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6724#endif // !DOCUMENTATION
6725
6726#ifndef DOCUMENTATION
6727 AsmNEFileHeader.setDataPrototype(
6728 "Rose::BinaryAnalysis::Address", "e_nonresnametab_offset", "= 0",
6729 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6730#endif // !DOCUMENTATION
6731
6732#ifndef DOCUMENTATION
6733 AsmNEFileHeader.setDataPrototype(
6734 "Rose::BinaryAnalysis::Address", "e_fastload_sector", "= 0",
6735 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6736#endif // !DOCUMENTATION
6737
6738#ifndef DOCUMENTATION
6739 AsmNEFileHeader.setDataPrototype(
6740 "Rose::BinaryAnalysis::Address", "e_fastload_nsectors", "= 0",
6741 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6742#endif // !DOCUMENTATION
6743
6744#ifndef DOCUMENTATION
6745 AsmNEFileHeader.setDataPrototype(
6746 "SgAsmDOSExtendedHeader*", "dos2Header", "= nullptr",
6747 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6748#endif // !DOCUMENTATION
6749
6750#ifndef DOCUMENTATION
6751 AsmNEFileHeader.setDataPrototype(
6752 "SgAsmNESectionTable*", "sectionTable", "= nullptr",
6753 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6754#endif // !DOCUMENTATION
6755
6756#ifndef DOCUMENTATION
6757 AsmNEFileHeader.setDataPrototype(
6758 "SgAsmNENameTable*", "residentNameTable", "= nullptr",
6759 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6760#endif // !DOCUMENTATION
6761
6762#ifndef DOCUMENTATION
6763 AsmNEFileHeader.setDataPrototype(
6764 "SgAsmNENameTable*", "nonresidentNameTable", "= nullptr",
6765 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6766#endif // !DOCUMENTATION
6767
6768#ifndef DOCUMENTATION
6769 AsmNEFileHeader.setDataPrototype(
6770 "SgAsmNEModuleTable*", "moduleTable", "= nullptr",
6771 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6772#endif // !DOCUMENTATION
6773
6774#ifndef DOCUMENTATION
6775 AsmNEFileHeader.setDataPrototype(
6776 "SgAsmNEEntryTable*", "entryTable", "= nullptr",
6777 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6778#endif // !DOCUMENTATION
6779
6780 DECLARE_OTHERS(AsmNEFileHeader);
6781#if defined(SgAsmNEFileHeader_OTHERS) || defined(DOCUMENTATION)
6782
6783 //----------------------- Boost serialization for SgAsmNEFileHeader -----------------------
6784#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6785private:
6786 friend class boost::serialization::access;
6787
6788 template<class S>
6789 void serialize(S &s, const unsigned /*version*/) {
6790 debugSerializationBegin("SgAsmNEFileHeader");
6791 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
6792 s & BOOST_SERIALIZATION_NVP(p_e_linker_major);
6793 s & BOOST_SERIALIZATION_NVP(p_e_linker_minor);
6794 s & BOOST_SERIALIZATION_NVP(p_e_checksum);
6795 s & BOOST_SERIALIZATION_NVP(p_e_flags1);
6796 s & BOOST_SERIALIZATION_NVP(p_e_autodata_sn);
6797 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
6798 s & BOOST_SERIALIZATION_NVP(p_e_stack_size);
6799 s & BOOST_SERIALIZATION_NVP(p_e_csip);
6800 s & BOOST_SERIALIZATION_NVP(p_e_sssp);
6801 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
6802 s & BOOST_SERIALIZATION_NVP(p_e_nmodrefs);
6803 s & BOOST_SERIALIZATION_NVP(p_e_nnonresnames);
6804 s & BOOST_SERIALIZATION_NVP(p_e_nmovable_entries);
6805 s & BOOST_SERIALIZATION_NVP(p_e_sector_align);
6806 s & BOOST_SERIALIZATION_NVP(p_e_nresources);
6807 s & BOOST_SERIALIZATION_NVP(p_e_exetype);
6808 s & BOOST_SERIALIZATION_NVP(p_e_flags2);
6809 s & BOOST_SERIALIZATION_NVP(p_e_res1);
6810 s & BOOST_SERIALIZATION_NVP(p_e_winvers);
6811 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
6812 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_size);
6813 s & BOOST_SERIALIZATION_NVP(p_e_sectab_rfo);
6814 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
6815 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
6816 s & BOOST_SERIALIZATION_NVP(p_e_modreftab_rfo);
6817 s & BOOST_SERIALIZATION_NVP(p_e_importnametab_rfo);
6818 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
6819 s & BOOST_SERIALIZATION_NVP(p_e_fastload_sector);
6820 s & BOOST_SERIALIZATION_NVP(p_e_fastload_nsectors);
6821 s & BOOST_SERIALIZATION_NVP(p_dos2Header);
6822 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
6823 s & BOOST_SERIALIZATION_NVP(p_residentNameTable);
6824 s & BOOST_SERIALIZATION_NVP(p_nonresidentNameTable);
6825 s & BOOST_SERIALIZATION_NVP(p_moduleTable);
6826 s & BOOST_SERIALIZATION_NVP(p_entryTable);
6827 debugSerializationEnd("SgAsmNEFileHeader");
6828 }
6829#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6831 // Local types
6833public:
6834#ifdef _MSC_VER
6835# pragma pack (1)
6836#endif
6837 /* File format of an NE File Header. All fields are little endian.
6838 *
6839 * NOTES
6840 *
6841 * e_sssp: The value specified in SS is an index (1-origin) into the segment table. If SS addresses the automatic data segment
6842 * and SP is zero then SP is set to the address obtained by adding the size of the automatic data segment to the size
6843 * of the stack. */
6845 unsigned char e_magic[2]; /* 0x00 magic number "NE" */
6846 unsigned char e_linker_major; /* 0x02 linker major version number */
6847 unsigned char e_linker_minor; /* 0x03 linker minor version number */
6848 uint16_t e_entrytab_rfo; /* 0x04 entry table offset relative to start of header */
6849 uint16_t e_entrytab_size; /* 0x06 size of entry table in bytes */
6850 uint32_t e_checksum; /* 0x08 32-bit CRC of entire file (this word is taken a zero during the calculation) */
6851 uint16_t e_flags1; /* 0x0c file-level bit flags (see HeaderFlags1) */
6852 uint16_t e_autodata_sn; /* 0x0e auto data section number if (flags & 0x3)==0; else zero */
6853 uint16_t e_bss_size; /* 0x10 num bytes added to data segment for BSS */
6854 uint16_t e_stack_size; /* 0x12 num bytes added to data segment for stack (zero of SS!=DS registers) */
6855 uint32_t e_csip; /* 0x14 section number:offset of CS:IP */
6856 uint32_t e_sssp; /* 0x18 section number:offset of SS:SP (see note 1 above) */
6857 uint16_t e_nsections; /* 0x1c number of entries in the section table */
6858 uint16_t e_nmodrefs; /* 0x1e number of entries in the module reference table */
6859 uint16_t e_nnonresnames; /* 0x20 number of entries in the non-resident name table */
6860 uint16_t e_sectab_rfo; /* 0x22 offset of section table relative to start of header */
6861 uint16_t e_rsrctab_rfo; /* 0x24 offset of resource table relative to start of header */
6862 uint16_t e_resnametab_rfo; /* 0x26 offset of resident name table relative to start of header */
6863 uint16_t e_modreftab_rfo; /* 0x28 offset of module reference table relative to start of header */
6864 uint16_t e_importnametab_rfo; /* 0x2a offset of imported names table relative to start of header */
6865 uint32_t e_nonresnametab_offset; /* 0x2c file offset of non-resident name table */
6866 uint16_t e_nmovable_entries; /* 0x30 number of movable entries in Entry Table */
6867 uint16_t e_sector_align; /* 0x32 sector alignment shift count (log2 of segment sector size) */
6868 uint16_t e_nresources; /* 0x34 number of resource entries */
6869 unsigned char e_exetype; /* 0x36 executable type (2==windows) */
6870 unsigned char e_flags2; /* 0x37 additional flags (see HeaderFlags2) */
6871 uint16_t e_fastload_sector; /* 0x38 sector offset to fast-load area (only for Windows) */
6872 uint16_t e_fastload_nsectors; /* 0x3a size of fast-load area in sectors (only for Windows) */
6873 uint16_t e_res1; /* 0x3c reserved */
6874 uint16_t e_winvers; /* 0x3e expected version number for Windows (only for Windows) */
6875 } /* 0x40 */
6876// DQ (3/7/2013): Adding support to restrict visability to SWIG.
6877#ifndef SWIG
6878#ifndef _MSC_VER
6879 __attribute__((packed))
6880#endif
6881#endif
6882 ;
6883#ifdef _MSC_VER
6884# pragma pack ()
6885#endif
6886
6887 /* Bit flags for the NE header 'e_flags' member.
6888 *
6889 * If HF_LIBRARY (bit 15) is set then the CS:IP registers point to an initialization procedure called with the value in the AX
6890 * register equal to the module handle. The initialization procedure must execute a far return to the caller. The resulting
6891 * value in AX is a status indicator (non-zero for success, zero for failure). */
6892 enum HeaderFlags1 {
6893 HF1_RESERVED = 0x57f4, /* Reserved bits */
6894 HF1_NO_DATA = 0x0000, /* (flags&0x03==0) => an exe not containing a data segment */
6895 HF1_SINGLE_DATA = 0x0001, /* Executable contains one data segment; set if file is a DLL */
6896 HF1_MULTIPLE_DATA = 0x0002, /* Exe with multiple data segments; set if a windows application */
6897 HF1_LOADER_SEGMENT = 0x0800, /* First segment contains code that loads the application */
6898 HF1_FATAL_ERRORS = 0x2000, /* Errors detected at link time; module will not load */
6899 HF1_LIBRARY = 0x8000 /* Module is a library */
6900 };
6901
6902 /* Bit flags for the NE header 'e_flags2' member. */
6903 enum HeaderFlags2 {
6904 HF2_RESERVED = 0xf1, /* Reserved bits */
6905 HF2_PROTECTED_MODE = 0x02, /* Windows 2.x application that runs in 3.x protected mode */
6906 HF2_PFONTS = 0x04, /* Windows 2.x application that supports proportional fonts */
6907 HF2_FASTLOAD = 0x08 /* Executable contains a fast-load area */
6908 };
6909
6911 // Properties
6913public:
6914public:
6915 unsigned const& get_e_linker_major() const;
6916 void set_e_linker_major(unsigned const&);
6917
6918public:
6919 unsigned const& get_e_linker_minor() const;
6920 void set_e_linker_minor(unsigned const&);
6921
6922public:
6923 unsigned const& get_e_checksum() const;
6924 void set_e_checksum(unsigned const&);
6925
6926public:
6927 unsigned const& get_e_flags1() const;
6928 void set_e_flags1(unsigned const&);
6929
6930public:
6931 unsigned const& get_e_autodata_sn() const;
6932 void set_e_autodata_sn(unsigned const&);
6933
6934public:
6935 unsigned const& get_e_bss_size() const;
6936 void set_e_bss_size(unsigned const&);
6937
6938public:
6939 unsigned const& get_e_stack_size() const;
6940 void set_e_stack_size(unsigned const&);
6941
6942public:
6943 unsigned const& get_e_csip() const;
6944 void set_e_csip(unsigned const&);
6945
6946public:
6947 unsigned const& get_e_sssp() const;
6948 void set_e_sssp(unsigned const&);
6949
6950public:
6951 unsigned const& get_e_nsections() const;
6952 void set_e_nsections(unsigned const&);
6953
6954public:
6955 unsigned const& get_e_nmodrefs() const;
6956 void set_e_nmodrefs(unsigned const&);
6957
6958public:
6959 unsigned const& get_e_nnonresnames() const;
6960 void set_e_nnonresnames(unsigned const&);
6961
6962public:
6963 unsigned const& get_e_nmovable_entries() const;
6964 void set_e_nmovable_entries(unsigned const&);
6965
6966public:
6967 unsigned const& get_e_sector_align() const;
6968 void set_e_sector_align(unsigned const&);
6969
6970public:
6971 unsigned const& get_e_nresources() const;
6972 void set_e_nresources(unsigned const&);
6973
6974public:
6975 unsigned const& get_e_exetype() const;
6976 void set_e_exetype(unsigned const&);
6977
6978public:
6979 unsigned const& get_e_flags2() const;
6980 void set_e_flags2(unsigned const&);
6981
6982public:
6983 unsigned const& get_e_res1() const;
6984 void set_e_res1(unsigned const&);
6985
6986public:
6987 unsigned const& get_e_winvers() const;
6988 void set_e_winvers(unsigned const&);
6989
6990public:
6991 Rose::BinaryAnalysis::Address const& get_e_entrytab_rfo() const;
6992 void set_e_entrytab_rfo(Rose::BinaryAnalysis::Address const&);
6993
6994public:
6995 Rose::BinaryAnalysis::Address const& get_e_entrytab_size() const;
6996 void set_e_entrytab_size(Rose::BinaryAnalysis::Address const&);
6997
6998public:
6999 Rose::BinaryAnalysis::Address const& get_e_sectab_rfo() const;
7000 void set_e_sectab_rfo(Rose::BinaryAnalysis::Address const&);
7001
7002public:
7003 Rose::BinaryAnalysis::Address const& get_e_rsrctab_rfo() const;
7004 void set_e_rsrctab_rfo(Rose::BinaryAnalysis::Address const&);
7005
7006public:
7007 Rose::BinaryAnalysis::Address const& get_e_resnametab_rfo() const;
7008 void set_e_resnametab_rfo(Rose::BinaryAnalysis::Address const&);
7009
7010public:
7011 Rose::BinaryAnalysis::Address const& get_e_modreftab_rfo() const;
7012 void set_e_modreftab_rfo(Rose::BinaryAnalysis::Address const&);
7013
7014public:
7015 Rose::BinaryAnalysis::Address const& get_e_importnametab_rfo() const;
7016 void set_e_importnametab_rfo(Rose::BinaryAnalysis::Address const&);
7017
7018public:
7019 Rose::BinaryAnalysis::Address const& get_e_nonresnametab_offset() const;
7020 void set_e_nonresnametab_offset(Rose::BinaryAnalysis::Address const&);
7021
7022public:
7023 Rose::BinaryAnalysis::Address const& get_e_fastload_sector() const;
7024 void set_e_fastload_sector(Rose::BinaryAnalysis::Address const&);
7025
7026public:
7027 Rose::BinaryAnalysis::Address const& get_e_fastload_nsectors() const;
7028 void set_e_fastload_nsectors(Rose::BinaryAnalysis::Address const&);
7029
7030public:
7031 SgAsmDOSExtendedHeader* const& get_dos2Header() const;
7032 void set_dos2Header(SgAsmDOSExtendedHeader* const&);
7033
7034public:
7035 SgAsmNESectionTable* const& get_sectionTable() const;
7036 void set_sectionTable(SgAsmNESectionTable* const&);
7037
7038public:
7039 SgAsmNENameTable* const& get_residentNameTable() const;
7040 void set_residentNameTable(SgAsmNENameTable* const&);
7041
7042public:
7043 SgAsmNENameTable* const& get_nonresidentNameTable() const;
7044 void set_nonresidentNameTable(SgAsmNENameTable* const&);
7045
7046public:
7047 SgAsmNEModuleTable* const& get_moduleTable() const;
7048 void set_moduleTable(SgAsmNEModuleTable* const&);
7049
7050public:
7051 SgAsmNEEntryTable* const& get_entryTable() const;
7052 void set_entryTable(SgAsmNEEntryTable* const&);
7054 // Functions
7056public:
7058
7059 static bool isNe (SgAsmGenericFile*);
7061 virtual void unparse(std::ostream&) const override;
7062 virtual const char *formatName() const override;
7063 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7064
7065private:
7066 void *encode(SgAsmNEFileHeader::NEFileHeader_disk*) const;
7067
7069 // Deprecated 2023-11
7071public:
7072 SgAsmDOSExtendedHeader* get_dos2_header() const ROSE_DEPRECATED("use get_dos2Header");
7073 void set_dos2_header(SgAsmDOSExtendedHeader*) ROSE_DEPRECATED("use set_dos2Header");
7074 SgAsmNESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
7075 void set_section_table(SgAsmNESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
7076 SgAsmNENameTable* get_resname_table() const ROSE_DEPRECATED("use get_residentNameTable");
7077 void set_resname_table(SgAsmNENameTable*) ROSE_DEPRECATED("use set_residentNameTable");
7078 SgAsmNENameTable* get_nonresname_table() const ROSE_DEPRECATED("use get_nonresidentNameTable");
7079 void set_nonresname_table(SgAsmNENameTable*) ROSE_DEPRECATED("use set_nonresidentNameTable");
7080 SgAsmNEModuleTable* get_module_table() const ROSE_DEPRECATED("use get_moduleTable");
7081 void set_module_table(SgAsmNEModuleTable*) ROSE_DEPRECATED("use set_moduleTable");
7082 SgAsmNEEntryTable* get_entry_table() const ROSE_DEPRECATED("use get_entryTable");
7083 void set_entry_table(SgAsmNEEntryTable*) ROSE_DEPRECATED("use set_entryTable");
7084 static bool is_NE (SgAsmGenericFile*) ROSE_DEPRECATED("use isNe");
7085 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
7086public:
7089
7090public:
7093
7094protected:
7102#endif // SgAsmNEFileHeader_OTHERS
7103#ifdef DOCUMENTATION
7104};
7105#endif // DOCUMENTATION
7106
7107
7109// SgAsmNEEntryTable -- MACHINE GENERATED; DO NOT MODIFY --
7111
7112DECLARE_LEAF_CLASS(AsmNEEntryTable);
7113IS_SERIALIZABLE(AsmNEEntryTable);
7114
7115#ifndef DOCUMENTATION
7116AsmNEEntryTable.useSmallHeader(true);
7117#endif // !DOCUMENTATION
7118
7119DECLARE_HEADERS(AsmNEEntryTable);
7120#if defined(SgAsmNEEntryTable_HEADERS) || defined(DOCUMENTATION)
7121#include <Rose/BinaryAnalysis/Address.h>
7122#endif // SgAsmNEEntryTable_HEADERS
7123
7124#ifdef DOCUMENTATION
7126#endif // DOCUMENTATION
7127
7128#ifndef DOCUMENTATION
7129 AsmNEEntryTable.setDataPrototype(
7130 "SgSizeTList", "bundle_sizes", "",
7131 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7132#endif // !DOCUMENTATION
7133
7134#ifndef DOCUMENTATION
7135 AsmNEEntryTable.setDataPrototype(
7136 "SgAsmNEEntryPointPtrList", "entries", "",
7137 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7138#endif // !DOCUMENTATION
7139
7140 DECLARE_OTHERS(AsmNEEntryTable);
7141#if defined(SgAsmNEEntryTable_OTHERS) || defined(DOCUMENTATION)
7142
7143 //----------------------- Boost serialization for SgAsmNEEntryTable -----------------------
7144#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7145private:
7146 friend class boost::serialization::access;
7147
7148 template<class S>
7149 void serialize(S &s, const unsigned /*version*/) {
7150 debugSerializationBegin("SgAsmNEEntryTable");
7151 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7152 s & BOOST_SERIALIZATION_NVP(p_bundle_sizes);
7153 s & BOOST_SERIALIZATION_NVP(p_entries);
7154 debugSerializationEnd("SgAsmNEEntryTable");
7155 }
7156#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7157public:
7158public:
7159 SgSizeTList const& get_bundle_sizes() const;
7160 void set_bundle_sizes(SgSizeTList const&);
7161
7162public:
7163 SgAsmNEEntryPointPtrList const& get_entries() const;
7164 SgAsmNEEntryPointPtrList& get_entries();
7165 void set_entries(SgAsmNEEntryPointPtrList const&);
7166public:
7168 void populate_entries();
7169 virtual void unparse(std::ostream&) const override;
7170 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7171public:
7174
7175public:
7178
7179protected:
7187#endif // SgAsmNEEntryTable_OTHERS
7188#ifdef DOCUMENTATION
7189};
7190#endif // DOCUMENTATION
7191
7192
7194// SgAsmNEEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
7196
7197DECLARE_LEAF_CLASS(AsmNEEntryPoint);
7198IS_SERIALIZABLE(AsmNEEntryPoint);
7199
7200#ifndef DOCUMENTATION
7201AsmNEEntryPoint.useSmallHeader(true);
7202#endif // !DOCUMENTATION
7203
7204#ifdef DOCUMENTATION
7206#endif // DOCUMENTATION
7207
7208#ifndef DOCUMENTATION
7209 AsmNEEntryPoint.setDataPrototype(
7210 "SgAsmNEEntryPoint::NEEntryFlags", "flags", "= SgAsmNEEntryPoint::EF_ZERO",
7211 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7212#endif // !DOCUMENTATION
7213
7214#ifndef DOCUMENTATION
7215 AsmNEEntryPoint.setDataPrototype(
7216 "unsigned", "int3f", "= 0",
7217 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7218#endif // !DOCUMENTATION
7219
7220#ifndef DOCUMENTATION
7221 AsmNEEntryPoint.setDataPrototype(
7222 "unsigned", "sectionIndex", "= 0",
7223 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7224#endif // !DOCUMENTATION
7225
7226#ifndef DOCUMENTATION
7227 AsmNEEntryPoint.setDataPrototype(
7228 "unsigned", "sectionOffset", "= 0",
7229 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7230#endif // !DOCUMENTATION
7231
7232 DECLARE_OTHERS(AsmNEEntryPoint);
7233#if defined(SgAsmNEEntryPoint_OTHERS) || defined(DOCUMENTATION)
7234
7235 //----------------------- Boost serialization for SgAsmNEEntryPoint -----------------------
7236#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7237private:
7238 friend class boost::serialization::access;
7239
7240 template<class S>
7241 void serialize(S &s, const unsigned /*version*/) {
7242 debugSerializationBegin("SgAsmNEEntryPoint");
7243 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
7244 s & BOOST_SERIALIZATION_NVP(p_flags);
7245 s & BOOST_SERIALIZATION_NVP(p_int3f);
7246 s & BOOST_SERIALIZATION_NVP(p_sectionIndex);
7247 s & BOOST_SERIALIZATION_NVP(p_sectionOffset);
7248 debugSerializationEnd("SgAsmNEEntryPoint");
7249 }
7250#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7252 // Local types
7254public:
7255 enum NEEntryFlags {
7256 EF_ZERO = 0x00, /* No flags set */
7257 EF_RESERVED = 0xfc, /* Reserved bits */
7258 EF_EXPORTED = 0x01, /* Exported */
7259 EF_GLOBAL = 0x02 /* Uses a global (shared) data section */
7260 };
7261
7263 // Properties
7265public:
7266public:
7267 SgAsmNEEntryPoint::NEEntryFlags const& get_flags() const;
7268 void set_flags(SgAsmNEEntryPoint::NEEntryFlags const&);
7269
7270public:
7271 unsigned const& get_int3f() const;
7272 void set_int3f(unsigned const&);
7273
7274public:
7275 unsigned const& get_sectionIndex() const;
7276 void set_sectionIndex(unsigned const&);
7277
7278public:
7279 unsigned const& get_sectionOffset() const;
7280 void set_sectionOffset(unsigned const&);
7282 // Functions
7284public:
7285 SgAsmNEEntryPoint(SgAsmNEEntryPoint::NEEntryFlags flags, unsigned int3f, unsigned s_idx, unsigned s_off);
7286 void dump(FILE*, const char *prefix, ssize_t idx) const;
7287
7289 // Deprecated 2023-11
7291public:
7292 unsigned get_section_idx() const ROSE_DEPRECATED("use get_sectionIndex");
7293 void set_section_idx(unsigned) ROSE_DEPRECATED("use set_sectionIndex");
7294 unsigned get_section_offset() const ROSE_DEPRECATED("use get_sectionOffset");
7295 void set_section_offset(unsigned) ROSE_DEPRECATED("use set_sectionOffset");
7296public:
7299
7300public:
7303
7304protected:
7312#endif // SgAsmNEEntryPoint_OTHERS
7313#ifdef DOCUMENTATION
7314};
7315#endif // DOCUMENTATION
7316
7317
7319// SgAsmMipsInstruction -- MACHINE GENERATED; DO NOT MODIFY --
7321
7322DECLARE_LEAF_CLASS(AsmMipsInstruction);
7323IS_SERIALIZABLE(AsmMipsInstruction);
7324
7325#ifndef DOCUMENTATION
7326AsmMipsInstruction.useSmallHeader(true);
7327#endif // !DOCUMENTATION
7328
7329DECLARE_HEADERS(AsmMipsInstruction);
7330#if defined(SgAsmMipsInstruction_HEADERS) || defined(DOCUMENTATION)
7331#include <Rose/BinaryAnalysis/InstructionEnumsMips.h>
7332#endif // SgAsmMipsInstruction_HEADERS
7333
7334#ifdef DOCUMENTATION
7337#endif // DOCUMENTATION
7338
7339#ifndef DOCUMENTATION
7340 AsmMipsInstruction.setDataPrototype(
7341 "Rose::BinaryAnalysis::MipsInstructionKind", "kind", "= Rose::BinaryAnalysis::mips_unknown_instruction",
7342 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7343#endif // !DOCUMENTATION
7344
7345 DECLARE_OTHERS(AsmMipsInstruction);
7346#if defined(SgAsmMipsInstruction_OTHERS) || defined(DOCUMENTATION)
7347
7348 //----------------------- Boost serialization for SgAsmMipsInstruction -----------------------
7349#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7350private:
7351 friend class boost::serialization::access;
7352
7353 template<class S>
7354 void serialize(S &s, const unsigned /*version*/) {
7355 debugSerializationBegin("SgAsmMipsInstruction");
7356 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
7357 s & BOOST_SERIALIZATION_NVP(p_kind);
7358 debugSerializationEnd("SgAsmMipsInstruction");
7359 }
7360#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7361public:
7362public:
7369 Rose::BinaryAnalysis::MipsInstructionKind const& get_kind() const;
7370 void set_kind(Rose::BinaryAnalysis::MipsInstructionKind const&);
7372public:
7373 // Overrides are documented in the base class
7374 virtual unsigned get_anyKind() const override;
7375public:
7378
7379public:
7382
7383public:
7386 uint8_t const& architectureId,
7387 Rose::BinaryAnalysis::MipsInstructionKind const& kind);
7388
7389protected:
7397#endif // SgAsmMipsInstruction_OTHERS
7398#ifdef DOCUMENTATION
7399};
7400#endif // DOCUMENTATION
7401
7402
7404// SgAsmMemoryReferenceExpression -- MACHINE GENERATED; DO NOT MODIFY --
7406
7407DECLARE_LEAF_CLASS(AsmMemoryReferenceExpression);
7408IS_SERIALIZABLE(AsmMemoryReferenceExpression);
7409
7410#ifndef DOCUMENTATION
7411AsmMemoryReferenceExpression.useSmallHeader(true);
7412#endif // !DOCUMENTATION
7413
7414#ifdef DOCUMENTATION
7417#endif // DOCUMENTATION
7418
7419#ifndef DOCUMENTATION
7420 AsmMemoryReferenceExpression.setDataPrototype(
7421 "SgAsmExpression*", "address", "= nullptr",
7422 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7423#endif // !DOCUMENTATION
7424
7425#ifndef DOCUMENTATION
7426 AsmMemoryReferenceExpression.setDataPrototype(
7427 "SgAsmExpression*", "segment", "= nullptr",
7428 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7429#endif // !DOCUMENTATION
7430
7431 DECLARE_OTHERS(AsmMemoryReferenceExpression);
7432#if defined(SgAsmMemoryReferenceExpression_OTHERS) || defined(DOCUMENTATION)
7433
7434 //----------------------- Boost serialization for SgAsmMemoryReferenceExpression -----------------------
7435#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7436private:
7437 friend class boost::serialization::access;
7438
7439 template<class S>
7440 void serialize(S &s, const unsigned /*version*/) {
7441 debugSerializationBegin("SgAsmMemoryReferenceExpression");
7442 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
7443 s & BOOST_SERIALIZATION_NVP(p_address);
7444 s & BOOST_SERIALIZATION_NVP(p_segment);
7445 debugSerializationEnd("SgAsmMemoryReferenceExpression");
7446 }
7447#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7448public:
7449public:
7461public:
7473public:
7476
7477public:
7480
7481public:
7484 SgAsmExpression* const& segment);
7485
7486protected:
7494#endif // SgAsmMemoryReferenceExpression_OTHERS
7495#ifdef DOCUMENTATION
7496};
7497#endif // DOCUMENTATION
7498
7499
7501// SgAsmM68kInstruction -- MACHINE GENERATED; DO NOT MODIFY --
7503
7504DECLARE_LEAF_CLASS(AsmM68kInstruction);
7505IS_SERIALIZABLE(AsmM68kInstruction);
7506
7507#ifndef DOCUMENTATION
7508AsmM68kInstruction.useSmallHeader(true);
7509#endif // !DOCUMENTATION
7510
7511DECLARE_HEADERS(AsmM68kInstruction);
7512#if defined(SgAsmM68kInstruction_HEADERS) || defined(DOCUMENTATION)
7513#include <Rose/BinaryAnalysis/InstructionEnumsM68k.h>
7514#endif // SgAsmM68kInstruction_HEADERS
7515
7516#ifdef DOCUMENTATION
7518#endif // DOCUMENTATION
7519
7520#ifndef DOCUMENTATION
7521 AsmM68kInstruction.setDataPrototype(
7522 "Rose::BinaryAnalysis::M68kInstructionKind", "kind", "= Rose::BinaryAnalysis::m68k_unknown_instruction",
7523 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7524#endif // !DOCUMENTATION
7525
7526#ifndef DOCUMENTATION
7527 AsmM68kInstruction.setDataPrototype(
7528 "Rose::BinaryAnalysis::M68kDataFormat", "dataFormat", "= Rose::BinaryAnalysis::m68k_fmt_unknown",
7529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7530#endif // !DOCUMENTATION
7531
7532 DECLARE_OTHERS(AsmM68kInstruction);
7533#if defined(SgAsmM68kInstruction_OTHERS) || defined(DOCUMENTATION)
7534
7535 //----------------------- Boost serialization for SgAsmM68kInstruction -----------------------
7536#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7537private:
7538 friend class boost::serialization::access;
7539
7540 template<class S>
7541 void serialize(S &s, const unsigned /*version*/) {
7542 debugSerializationBegin("SgAsmM68kInstruction");
7543 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
7544 s & BOOST_SERIALIZATION_NVP(p_kind);
7545 s & BOOST_SERIALIZATION_NVP(p_dataFormat);
7546 debugSerializationEnd("SgAsmM68kInstruction");
7547 }
7548#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7549public:
7550public:
7557 Rose::BinaryAnalysis::M68kInstructionKind const& get_kind() const;
7558 void set_kind(Rose::BinaryAnalysis::M68kInstructionKind const&);
7561public:
7565 Rose::BinaryAnalysis::M68kDataFormat const& get_dataFormat() const;
7566 void set_dataFormat(Rose::BinaryAnalysis::M68kDataFormat const&);
7568public:
7569 // Overrides are documented in the base class
7570 virtual unsigned get_anyKind() const override;
7571public:
7574
7575public:
7578
7579public:
7582 uint8_t const& architectureId,
7583 Rose::BinaryAnalysis::M68kInstructionKind const& kind,
7584 Rose::BinaryAnalysis::M68kDataFormat const& dataFormat);
7585
7586protected:
7594#endif // SgAsmM68kInstruction_OTHERS
7595#ifdef DOCUMENTATION
7596};
7597#endif // DOCUMENTATION
7598
7599
7601// SgAsmLESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
7603
7604DECLARE_LEAF_CLASS(AsmLESectionTableEntry);
7605IS_SERIALIZABLE(AsmLESectionTableEntry);
7606
7607#ifndef DOCUMENTATION
7608AsmLESectionTableEntry.useSmallHeader(true);
7609#endif // !DOCUMENTATION
7610
7611DECLARE_HEADERS(AsmLESectionTableEntry);
7612#if defined(SgAsmLESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
7613#include <Rose/BinaryAnalysis/Address.h>
7614#include <Rose/BinaryAnalysis/ByteOrder.h>
7615#endif // SgAsmLESectionTableEntry_HEADERS
7616
7617#ifdef DOCUMENTATION
7619#endif // DOCUMENTATION
7620
7621#ifndef DOCUMENTATION
7622 AsmLESectionTableEntry.setDataPrototype(
7623 "unsigned", "flags", "= 0",
7624 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7625#endif // !DOCUMENTATION
7626
7627#ifndef DOCUMENTATION
7628 AsmLESectionTableEntry.setDataPrototype(
7629 "unsigned", "pageMapIndex", "= 0",
7630 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7631#endif // !DOCUMENTATION
7632
7633#ifndef DOCUMENTATION
7634 AsmLESectionTableEntry.setDataPrototype(
7635 "unsigned", "pageMapNEntries", "= 0",
7636 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7637#endif // !DOCUMENTATION
7638
7639#ifndef DOCUMENTATION
7640 AsmLESectionTableEntry.setDataPrototype(
7641 "unsigned", "res1", "= 0",
7642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7643#endif // !DOCUMENTATION
7644
7645#ifndef DOCUMENTATION
7646 AsmLESectionTableEntry.setDataPrototype(
7647 "Rose::BinaryAnalysis::Address", "mappedSize", "= 0",
7648 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7649#endif // !DOCUMENTATION
7650
7651#ifndef DOCUMENTATION
7652 AsmLESectionTableEntry.setDataPrototype(
7653 "Rose::BinaryAnalysis::Address", "baseAddr", "= 0",
7654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7655#endif // !DOCUMENTATION
7656
7657 DECLARE_OTHERS(AsmLESectionTableEntry);
7658#if defined(SgAsmLESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
7659
7660 //----------------------- Boost serialization for SgAsmLESectionTableEntry -----------------------
7661#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7662private:
7663 friend class boost::serialization::access;
7664
7665 template<class S>
7666 void serialize(S &s, const unsigned /*version*/) {
7667 debugSerializationBegin("SgAsmLESectionTableEntry");
7668 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
7669 s & BOOST_SERIALIZATION_NVP(p_flags);
7670 s & BOOST_SERIALIZATION_NVP(p_pageMapIndex);
7671 s & BOOST_SERIALIZATION_NVP(p_pageMapNEntries);
7672 s & BOOST_SERIALIZATION_NVP(p_res1);
7673 s & BOOST_SERIALIZATION_NVP(p_mappedSize);
7674 s & BOOST_SERIALIZATION_NVP(p_baseAddr);
7675 debugSerializationEnd("SgAsmLESectionTableEntry");
7676 }
7677#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7679 // Local types
7681public:
7682#ifdef _MSC_VER
7683# pragma pack (1)
7684#endif
7685 /* File format of a section table entry. Fields are big- or little-endian depending on file header. */
7687 uint32_t mapped_size; /* 0x00 virtual segment size in bytes */
7688 uint32_t base_addr; /* 0x04 relocation base address */
7689 uint32_t flags; /* 0x08 bit flags, see LESectionFlags */
7690 uint32_t pagemap_index; /* 0x0c */
7691 uint32_t pagemap_nentries; /* 0x10 number of entries in the page map */
7692 uint32_t res1; /* 0x14 reserved */
7693 } /* 0x18 */
7694// DQ (3/7/2013): Adding support to restrict visability to SWIG.
7695#ifndef SWIG
7696#ifndef _MSC_VER
7697 __attribute__((packed))
7698#endif
7699#endif
7700 ;
7701#ifdef _MSC_VER
7702# pragma pack ()
7703#endif
7704
7705 /* SF_BIG_BIT: The "big/default" bit, for data segments, controls the setting of the Big bit in the segment descriptor. (The
7706 * Big bit, or B-bit, determines whether ESP or SP is used as the stack pointer.) For code segments, this bit
7707 * controls the setting of the Default bit in the segment descriptor. (The Default bit, or D-bit, determines
7708 * whether the default word size is 32-bits or 16-bits. It also affects the interpretation of the instruction
7709 * stream.) */
7711 SF_RESERVED = 0xffff0800, /* Reserved bits (FIXME) */
7712
7713 SF_READABLE = 0x00000001,
7714 SF_WRITABLE = 0x00000002,
7715 SF_EXECUTABLE = 0x00000004,
7717 SF_RESOURCE = 0x00000008,
7718 SF_DISCARDABLE = 0x00000010,
7719 SF_SHARED = 0x00000020,
7720 SF_PRELOAD_PAGES = 0x00000040,
7721 SF_INVALID_PAGES = 0x00000080,
7723 SF_TYPE_MASK = 0x00000300, /*NO_STRINGIFY*/
7724 SF_TYPE_NORMAL = 0x00000000,
7725 SF_TYPE_ZERO = 0x00000100,
7726 SF_TYPE_RESIDENT = 0x00000200,
7727 SF_TYPE_RESCONT = 0x00000300,
7729 SF_RES_LONG_LOCK = 0x00000400,
7730 SF_1616_ALIAS = 0x00001000,
7731 SF_BIG_BIT = 0x00002000,
7732 SF_CODE_CONFORM = 0x00004000,
7733 SF_IO_PRIV = 0x00008000
7735
7737 // Properties
7739public:
7740public:
7741 unsigned const& get_flags() const;
7742 void set_flags(unsigned const&);
7743
7744public:
7745 unsigned const& get_pageMapIndex() const;
7746 void set_pageMapIndex(unsigned const&);
7747
7748public:
7749 unsigned const& get_pageMapNEntries() const;
7750 void set_pageMapNEntries(unsigned const&);
7751
7752public:
7753 unsigned const& get_res1() const;
7754 void set_res1(unsigned const&);
7755
7756public:
7757 Rose::BinaryAnalysis::Address const& get_mappedSize() const;
7758 void set_mappedSize(Rose::BinaryAnalysis::Address const&);
7759
7760public:
7761 Rose::BinaryAnalysis::Address const& get_baseAddr() const;
7762 void set_baseAddr(Rose::BinaryAnalysis::Address const&);
7764 // Functions
7766public:
7770 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
7771
7773 // Deprecated 2023-11
7775public:
7776 unsigned get_pagemap_index() const ROSE_DEPRECATED("use get pageMapIndex");
7777 void set_pagemap_index(unsigned) ROSE_DEPRECATED("use set_pageMapIndex");
7778 unsigned get_pagemap_nentries() const ROSE_DEPRECATED("use get_pageMapNEntries");
7779 void set_pagemap_nentries(unsigned) ROSE_DEPRECATED("use set_pageMapNEntries");
7780 Rose::BinaryAnalysis::Address get_mapped_size() const ROSE_DEPRECATED("use get_mappedSize");
7781 void set_mapped_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedSize");
7782 Rose::BinaryAnalysis::Address get_base_addr() const ROSE_DEPRECATED("use get_baseAddr");
7783 void set_base_addr(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_baseAddr");
7784public:
7787
7788public:
7791
7792protected:
7800#endif // SgAsmLESectionTableEntry_OTHERS
7801#ifdef DOCUMENTATION
7802};
7803#endif // DOCUMENTATION
7804
7805
7807// SgAsmLESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
7809
7810DECLARE_LEAF_CLASS(AsmLESectionTable);
7811IS_SERIALIZABLE(AsmLESectionTable);
7812
7813#ifndef DOCUMENTATION
7814AsmLESectionTable.useSmallHeader(true);
7815#endif // !DOCUMENTATION
7816
7817DECLARE_HEADERS(AsmLESectionTable);
7818#if defined(SgAsmLESectionTable_HEADERS) || defined(DOCUMENTATION)
7819#include <Rose/BinaryAnalysis/Address.h>
7820#endif // SgAsmLESectionTable_HEADERS
7821
7822#ifdef DOCUMENTATION
7824#endif // DOCUMENTATION
7825
7826 DECLARE_OTHERS(AsmLESectionTable);
7827#if defined(SgAsmLESectionTable_OTHERS) || defined(DOCUMENTATION)
7828
7829 //----------------------- Boost serialization for SgAsmLESectionTable -----------------------
7830#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7831private:
7832 friend class boost::serialization::access;
7833
7834 template<class S>
7835 void serialize(S &s, const unsigned /*version*/) {
7836 debugSerializationBegin("SgAsmLESectionTable");
7837 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7838 debugSerializationEnd("SgAsmLESectionTable");
7839 }
7840#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7841public:
7843 virtual void unparse(std::ostream&) const override;
7844 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7845public:
7848
7849public:
7852
7853protected:
7861#endif // SgAsmLESectionTable_OTHERS
7862#ifdef DOCUMENTATION
7863};
7864#endif // DOCUMENTATION
7865
7866
7868// SgAsmLESection -- MACHINE GENERATED; DO NOT MODIFY --
7870
7871DECLARE_LEAF_CLASS(AsmLESection);
7872IS_SERIALIZABLE(AsmLESection);
7873
7874#ifndef DOCUMENTATION
7875AsmLESection.useSmallHeader(true);
7876#endif // !DOCUMENTATION
7877
7878DECLARE_HEADERS(AsmLESection);
7879#if defined(SgAsmLESection_HEADERS) || defined(DOCUMENTATION)
7880#ifdef ROSE_SgAsmLESection_IMPL
7881#include <SgAsmLESectionTableEntry.h>
7882#endif
7883#endif // SgAsmLESection_HEADERS
7884
7885#ifdef DOCUMENTATION
7887#endif // DOCUMENTATION
7888
7889#ifndef DOCUMENTATION
7890 AsmLESection.setDataPrototype(
7891 "SgAsmLESectionTableEntry*", "sectionTableEntry", "= nullptr",
7892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7893#endif // !DOCUMENTATION
7894
7895 DECLARE_OTHERS(AsmLESection);
7896#if defined(SgAsmLESection_OTHERS) || defined(DOCUMENTATION)
7897
7898 //----------------------- Boost serialization for SgAsmLESection -----------------------
7899#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7900private:
7901 friend class boost::serialization::access;
7902
7903 template<class S>
7904 void serialize(S &s, const unsigned /*version*/) {
7905 debugSerializationBegin("SgAsmLESection");
7906 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7907 s & BOOST_SERIALIZATION_NVP(p_sectionTableEntry);
7908 debugSerializationEnd("SgAsmLESection");
7909 }
7910#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7911public:
7912public:
7913 SgAsmLESectionTableEntry* const& get_sectionTableEntry() const;
7914 void set_sectionTableEntry(SgAsmLESectionTableEntry* const&);
7915public:
7917 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7918
7920 // Deprecated 2023-11
7922public:
7923 SgAsmLESectionTableEntry* get_st_entry() const ROSE_DEPRECATED("use get_sectionTableEntry");
7924 void set_st_entry(SgAsmLESectionTableEntry*) ROSE_DEPRECATED("use set_sectionTableEntry");
7925public:
7927 virtual ~SgAsmLESection();
7928
7929public:
7932
7933protected:
7941#endif // SgAsmLESection_OTHERS
7942#ifdef DOCUMENTATION
7943};
7944#endif // DOCUMENTATION
7945
7946
7948// SgAsmLERelocTable -- MACHINE GENERATED; DO NOT MODIFY --
7950
7951DECLARE_LEAF_CLASS(AsmLERelocTable);
7952IS_SERIALIZABLE(AsmLERelocTable);
7953
7954#ifndef DOCUMENTATION
7955AsmLERelocTable.useSmallHeader(true);
7956#endif // !DOCUMENTATION
7957
7958DECLARE_HEADERS(AsmLERelocTable);
7959#if defined(SgAsmLERelocTable_HEADERS) || defined(DOCUMENTATION)
7960#include <Rose/BinaryAnalysis/Address.h>
7961#endif // SgAsmLERelocTable_HEADERS
7962
7963#ifdef DOCUMENTATION
7965#endif // DOCUMENTATION
7966
7967#ifndef DOCUMENTATION
7968 AsmLERelocTable.setDataPrototype(
7969 "SgAsmLERelocEntryPtrList", "entries", "",
7970 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7971#endif // !DOCUMENTATION
7972
7973 DECLARE_OTHERS(AsmLERelocTable);
7974#if defined(SgAsmLERelocTable_OTHERS) || defined(DOCUMENTATION)
7975
7976 //----------------------- Boost serialization for SgAsmLERelocTable -----------------------
7977#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7978private:
7979 friend class boost::serialization::access;
7980
7981 template<class S>
7982 void serialize(S &s, const unsigned /*version*/) {
7983 debugSerializationBegin("SgAsmLERelocTable");
7984 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7985 s & BOOST_SERIALIZATION_NVP(p_entries);
7986 debugSerializationEnd("SgAsmLERelocTable");
7987 }
7988#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7989public:
7990public:
7991 SgAsmLERelocEntryPtrList const& get_entries() const;
7992 SgAsmLERelocEntryPtrList& get_entries();
7993 void set_entries(SgAsmLERelocEntryPtrList const&);
7994public:
7996 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7997public:
8000
8001public:
8004
8005protected:
8013#endif // SgAsmLERelocTable_OTHERS
8014#ifdef DOCUMENTATION
8015};
8016#endif // DOCUMENTATION
8017
8018
8020// SgAsmLEPageTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
8022
8023DECLARE_LEAF_CLASS(AsmLEPageTableEntry);
8024IS_SERIALIZABLE(AsmLEPageTableEntry);
8025
8026#ifndef DOCUMENTATION
8027AsmLEPageTableEntry.useSmallHeader(true);
8028#endif // !DOCUMENTATION
8029
8030DECLARE_HEADERS(AsmLEPageTableEntry);
8031#if defined(SgAsmLEPageTableEntry_HEADERS) || defined(DOCUMENTATION)
8032#include <Rose/BinaryAnalysis/ByteOrder.h>
8033#endif // SgAsmLEPageTableEntry_HEADERS
8034
8035#ifdef DOCUMENTATION
8037#endif // DOCUMENTATION
8038
8039#ifndef DOCUMENTATION
8040 AsmLEPageTableEntry.setDataPrototype(
8041 "unsigned", "pageno", "= 0",
8042 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8043#endif // !DOCUMENTATION
8044
8045#ifndef DOCUMENTATION
8046 AsmLEPageTableEntry.setDataPrototype(
8047 "unsigned", "flags", "= 0",
8048 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8049#endif // !DOCUMENTATION
8050
8051 DECLARE_OTHERS(AsmLEPageTableEntry);
8052#if defined(SgAsmLEPageTableEntry_OTHERS) || defined(DOCUMENTATION)
8053
8054 //----------------------- Boost serialization for SgAsmLEPageTableEntry -----------------------
8055#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8056private:
8057 friend class boost::serialization::access;
8058
8059 template<class S>
8060 void serialize(S &s, const unsigned /*version*/) {
8061 debugSerializationBegin("SgAsmLEPageTableEntry");
8062 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
8063 s & BOOST_SERIALIZATION_NVP(p_pageno);
8064 s & BOOST_SERIALIZATION_NVP(p_flags);
8065 debugSerializationEnd("SgAsmLEPageTableEntry");
8066 }
8067#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8069 // Local types
8071public:
8072 /* The object page table provides information about a logical page in a section. A logical page may be an enumerated page, a
8073 * pseudo page, or an iterated page. The page table allows for efficient access to a page when a page fault occurs, while still
8074 * allowing the physical page to be located in the preload page, demand load page, or iterated data page sections of the
8075 * executable file. Entries in the page table use 1-origin indices. This table is parallel with the Fixup Page Table (they are
8076 * both indexed by the logical page number). */
8077
8078#ifdef _MSC_VER
8079# pragma pack (1)
8080#endif
8081 /* File format for a page table entry */
8083 uint16_t pageno_hi;
8084 unsigned char pageno_lo;
8085 unsigned char flags;
8086 }
8087// DQ (3/7/2013): Adding support to restrict visability to SWIG.
8088#ifndef SWIG
8089#ifndef _MSC_VER
8090 __attribute__((packed))
8091#endif
8092#endif
8093 ;
8094#ifdef _MSC_VER
8095# pragma pack ()
8096#endif
8097
8099 // Properties
8101public:
8102public:
8103 unsigned const& get_pageno() const;
8104 void set_pageno(unsigned const&);
8105
8106public:
8107 unsigned const& get_flags() const;
8108 void set_flags(unsigned const&);
8110 // Functions
8112public:
8115 void dump(FILE*, const char *prefix, ssize_t idx) const;
8117public:
8120
8121public:
8124
8125protected:
8133#endif // SgAsmLEPageTableEntry_OTHERS
8134#ifdef DOCUMENTATION
8135};
8136#endif // DOCUMENTATION
8137
8138
8140// SgAsmLEPageTable -- MACHINE GENERATED; DO NOT MODIFY --
8142
8143DECLARE_LEAF_CLASS(AsmLEPageTable);
8144IS_SERIALIZABLE(AsmLEPageTable);
8145
8146#ifndef DOCUMENTATION
8147AsmLEPageTable.useSmallHeader(true);
8148#endif // !DOCUMENTATION
8149
8150DECLARE_HEADERS(AsmLEPageTable);
8151#if defined(SgAsmLEPageTable_HEADERS) || defined(DOCUMENTATION)
8152#include <Rose/BinaryAnalysis/Address.h>
8153#endif // SgAsmLEPageTable_HEADERS
8154
8155#ifdef DOCUMENTATION
8157#endif // DOCUMENTATION
8158
8159#ifndef DOCUMENTATION
8160 AsmLEPageTable.setDataPrototype(
8161 "SgAsmLEPageTableEntryPtrList", "entries", "",
8162 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8163#endif // !DOCUMENTATION
8164
8165 DECLARE_OTHERS(AsmLEPageTable);
8166#if defined(SgAsmLEPageTable_OTHERS) || defined(DOCUMENTATION)
8167
8168 //----------------------- Boost serialization for SgAsmLEPageTable -----------------------
8169#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8170private:
8171 friend class boost::serialization::access;
8172
8173 template<class S>
8174 void serialize(S &s, const unsigned /*version*/) {
8175 debugSerializationBegin("SgAsmLEPageTable");
8176 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
8177 s & BOOST_SERIALIZATION_NVP(p_entries);
8178 debugSerializationEnd("SgAsmLEPageTable");
8179 }
8180#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8181public:
8182public:
8183 SgAsmLEPageTableEntryPtrList const& get_entries() const;
8184 SgAsmLEPageTableEntryPtrList& get_entries();
8185 void set_entries(SgAsmLEPageTableEntryPtrList const&);
8186public:
8188 virtual void unparse(std::ostream&) const override;
8189 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
8190 SgAsmLEPageTableEntry *get_page(size_t idx);
8191public:
8194
8195public:
8198
8199protected:
8207#endif // SgAsmLEPageTable_OTHERS
8208#ifdef DOCUMENTATION
8209};
8210#endif // DOCUMENTATION
8211
8212
8214// SgAsmLENameTable -- MACHINE GENERATED; DO NOT MODIFY --
8216
8217DECLARE_LEAF_CLASS(AsmLENameTable);
8218IS_SERIALIZABLE(AsmLENameTable);
8219
8220#ifndef DOCUMENTATION
8221AsmLENameTable.useSmallHeader(true);
8222#endif // !DOCUMENTATION
8223
8224DECLARE_HEADERS(AsmLENameTable);
8225#if defined(SgAsmLENameTable_HEADERS) || defined(DOCUMENTATION)
8226#include <Rose/BinaryAnalysis/Address.h>
8227#endif // SgAsmLENameTable_HEADERS
8228
8229#ifdef DOCUMENTATION
8231#endif // DOCUMENTATION
8232
8233#ifndef DOCUMENTATION
8234 AsmLENameTable.setDataPrototype(
8235 "SgStringList", "names", "",
8236 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8237#endif // !DOCUMENTATION
8238
8239#ifndef DOCUMENTATION
8240 AsmLENameTable.setDataPrototype(
8241 "SgUnsignedList", "ordinals", "",
8242 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8243#endif // !DOCUMENTATION
8244
8245 DECLARE_OTHERS(AsmLENameTable);
8246#if defined(SgAsmLENameTable_OTHERS) || defined(DOCUMENTATION)
8247
8248 //----------------------- Boost serialization for SgAsmLENameTable -----------------------
8249#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8250private:
8251 friend class boost::serialization::access;
8252
8253 template<class S>
8254 void serialize(S &s, const unsigned /*version*/) {
8255 debugSerializationBegin("SgAsmLENameTable");
8256 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
8257 s & BOOST_SERIALIZATION_NVP(p_names);
8258 s & BOOST_SERIALIZATION_NVP(p_ordinals);
8259 debugSerializationEnd("SgAsmLENameTable");
8260 }
8261#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8262public:
8263public:
8264 SgStringList const& get_names() const;
8265 void set_names(SgStringList const&);
8266
8267public:
8268 SgUnsignedList const& get_ordinals() const;
8269 void set_ordinals(SgUnsignedList const&);
8270public:
8271 /* This table contains a module name followed by the list of exported function names. Each name is associated with an "ordinal"
8272 * which serves as an index into the Entry Table. The ordinal for the first string (module name) is meaningless and should be
8273 * zero. In the non-resident name table the first entry is a module description and the functions are not always resident in
8274 * system memory (they are discardable). */
8276 virtual void unparse(std::ostream&) const override;
8277 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
8278public:
8281
8282public:
8285
8286protected:
8294#endif // SgAsmLENameTable_OTHERS
8295#ifdef DOCUMENTATION
8296};
8297#endif // DOCUMENTATION
8298
8299
8301// SgAsmLEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
8303
8304DECLARE_LEAF_CLASS(AsmLEFileHeader);
8305IS_SERIALIZABLE(AsmLEFileHeader);
8306
8307#ifndef DOCUMENTATION
8308AsmLEFileHeader.useSmallHeader(true);
8309#endif // !DOCUMENTATION
8310
8311DECLARE_HEADERS(AsmLEFileHeader);
8312#if defined(SgAsmLEFileHeader_HEADERS) || defined(DOCUMENTATION)
8313#include <Rose/BinaryAnalysis/Address.h>
8314#include <Rose/BinaryAnalysis/ByteOrder.h>
8315
8316#ifdef ROSE_SgAsmLEFileHeader_IMPL
8317#include <SgAsmDOSExtendedHeader.h>
8318#include <SgAsmLEEntryTable.h>
8319#include <SgAsmLENameTable.h>
8320#include <SgAsmLEPageTable.h>
8321#include <SgAsmLERelocTable.h>
8322#include <SgAsmLESectionTable.h>
8323#endif
8324#endif // SgAsmLEFileHeader_HEADERS
8325
8326#ifdef DOCUMENTATION
8328#endif // DOCUMENTATION
8329
8330#ifndef DOCUMENTATION
8331 AsmLEFileHeader.setDataPrototype(
8332 "unsigned", "e_byte_order", "= 0",
8333 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8334#endif // !DOCUMENTATION
8335
8336#ifndef DOCUMENTATION
8337 AsmLEFileHeader.setDataPrototype(
8338 "unsigned", "e_word_order", "= 0",
8339 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8340#endif // !DOCUMENTATION
8341
8342#ifndef DOCUMENTATION
8343 AsmLEFileHeader.setDataPrototype(
8344 "unsigned", "e_format_level", "= 0",
8345 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8346#endif // !DOCUMENTATION
8347
8348#ifndef DOCUMENTATION
8349 AsmLEFileHeader.setDataPrototype(
8350 "unsigned", "e_cpu_type", "= 0",
8351 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8352#endif // !DOCUMENTATION
8353
8354#ifndef DOCUMENTATION
8355 AsmLEFileHeader.setDataPrototype(
8356 "unsigned", "e_os_type", "= 0",
8357 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8358#endif // !DOCUMENTATION
8359
8360#ifndef DOCUMENTATION
8361 AsmLEFileHeader.setDataPrototype(
8362 "unsigned", "e_module_version", "= 0",
8363 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8364#endif // !DOCUMENTATION
8365
8366#ifndef DOCUMENTATION
8367 AsmLEFileHeader.setDataPrototype(
8368 "unsigned", "e_flags", "= 0",
8369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8370#endif // !DOCUMENTATION
8371
8372#ifndef DOCUMENTATION
8373 AsmLEFileHeader.setDataPrototype(
8374 "unsigned", "e_eip_section", "= 0",
8375 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8376#endif // !DOCUMENTATION
8377
8378#ifndef DOCUMENTATION
8379 AsmLEFileHeader.setDataPrototype(
8380 "unsigned", "e_esp_section", "= 0",
8381 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8382#endif // !DOCUMENTATION
8383
8384#ifndef DOCUMENTATION
8385 AsmLEFileHeader.setDataPrototype(
8386 "unsigned", "e_last_page_size", "= 0",
8387 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8388#endif // !DOCUMENTATION
8389
8390#ifndef DOCUMENTATION
8391 AsmLEFileHeader.setDataPrototype(
8392 "unsigned", "e_page_offset_shift", "= 0",
8393 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8394#endif // !DOCUMENTATION
8395
8396#ifndef DOCUMENTATION
8397 AsmLEFileHeader.setDataPrototype(
8398 "unsigned", "e_fixup_sect_cksum", "= 0",
8399 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8400#endif // !DOCUMENTATION
8401
8402#ifndef DOCUMENTATION
8403 AsmLEFileHeader.setDataPrototype(
8404 "unsigned", "e_loader_sect_cksum", "= 0",
8405 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8406#endif // !DOCUMENTATION
8407
8408#ifndef DOCUMENTATION
8409 AsmLEFileHeader.setDataPrototype(
8410 "unsigned", "e_secttab_nentries", "= 0",
8411 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8412#endif // !DOCUMENTATION
8413
8414#ifndef DOCUMENTATION
8415 AsmLEFileHeader.setDataPrototype(
8416 "unsigned", "e_rsrctab_nentries", "= 0",
8417 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8418#endif // !DOCUMENTATION
8419
8420#ifndef DOCUMENTATION
8421 AsmLEFileHeader.setDataPrototype(
8422 "unsigned", "e_fmtdirtab_nentries", "= 0",
8423 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8424#endif // !DOCUMENTATION
8425
8426#ifndef DOCUMENTATION
8427 AsmLEFileHeader.setDataPrototype(
8428 "unsigned", "e_import_modtab_nentries", "= 0",
8429 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8430#endif // !DOCUMENTATION
8431
8432#ifndef DOCUMENTATION
8433 AsmLEFileHeader.setDataPrototype(
8434 "unsigned", "e_preload_npages", "= 0",
8435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8436#endif // !DOCUMENTATION
8437
8438#ifndef DOCUMENTATION
8439 AsmLEFileHeader.setDataPrototype(
8440 "unsigned", "e_nonresnametab_size", "= 0",
8441 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8442#endif // !DOCUMENTATION
8443
8444#ifndef DOCUMENTATION
8445 AsmLEFileHeader.setDataPrototype(
8446 "unsigned", "e_nonresnametab_cksum", "= 0",
8447 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8448#endif // !DOCUMENTATION
8449
8450#ifndef DOCUMENTATION
8451 AsmLEFileHeader.setDataPrototype(
8452 "unsigned", "e_auto_ds_section", "= 0",
8453 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8454#endif // !DOCUMENTATION
8455
8456#ifndef DOCUMENTATION
8457 AsmLEFileHeader.setDataPrototype(
8458 "unsigned", "e_debug_info_size", "= 0",
8459 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8460#endif // !DOCUMENTATION
8461
8462#ifndef DOCUMENTATION
8463 AsmLEFileHeader.setDataPrototype(
8464 "unsigned", "e_num_instance_preload", "= 0",
8465 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8466#endif // !DOCUMENTATION
8467
8468#ifndef DOCUMENTATION
8469 AsmLEFileHeader.setDataPrototype(
8470 "unsigned", "e_num_instance_demand", "= 0",
8471 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8472#endif // !DOCUMENTATION
8473
8474#ifndef DOCUMENTATION
8475 AsmLEFileHeader.setDataPrototype(
8476 "unsigned", "e_heap_size", "= 0",
8477 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8478#endif // !DOCUMENTATION
8479
8480#ifndef DOCUMENTATION
8481 AsmLEFileHeader.setDataPrototype(
8482 "Rose::BinaryAnalysis::Address", "e_npages", "= 0",
8483 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8484#endif // !DOCUMENTATION
8485
8486#ifndef DOCUMENTATION
8487 AsmLEFileHeader.setDataPrototype(
8488 "Rose::BinaryAnalysis::Address", "e_eip", "= 0",
8489 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8490#endif // !DOCUMENTATION
8491
8492#ifndef DOCUMENTATION
8493 AsmLEFileHeader.setDataPrototype(
8494 "Rose::BinaryAnalysis::Address", "e_esp", "= 0",
8495 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8496#endif // !DOCUMENTATION
8497
8498#ifndef DOCUMENTATION
8499 AsmLEFileHeader.setDataPrototype(
8500 "Rose::BinaryAnalysis::Address", "e_page_size", "= 0",
8501 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8502#endif // !DOCUMENTATION
8503
8504#ifndef DOCUMENTATION
8505 AsmLEFileHeader.setDataPrototype(
8506 "Rose::BinaryAnalysis::Address", "e_fixup_sect_size", "= 0",
8507 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8508#endif // !DOCUMENTATION
8509
8510#ifndef DOCUMENTATION
8511 AsmLEFileHeader.setDataPrototype(
8512 "Rose::BinaryAnalysis::Address", "e_loader_sect_size", "= 0",
8513 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8514#endif // !DOCUMENTATION
8515
8516#ifndef DOCUMENTATION
8517 AsmLEFileHeader.setDataPrototype(
8518 "Rose::BinaryAnalysis::Address", "e_secttab_rfo", "= 0",
8519 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8520#endif // !DOCUMENTATION
8521
8522#ifndef DOCUMENTATION
8523 AsmLEFileHeader.setDataPrototype(
8524 "Rose::BinaryAnalysis::Address", "e_pagetab_rfo", "= 0",
8525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8526#endif // !DOCUMENTATION
8527
8528#ifndef DOCUMENTATION
8529 AsmLEFileHeader.setDataPrototype(
8530 "Rose::BinaryAnalysis::Address", "e_iterpages_offset", "= 0",
8531 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8532#endif // !DOCUMENTATION
8533
8534#ifndef DOCUMENTATION
8535 AsmLEFileHeader.setDataPrototype(
8536 "Rose::BinaryAnalysis::Address", "e_rsrctab_rfo", "= 0",
8537 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8538#endif // !DOCUMENTATION
8539
8540#ifndef DOCUMENTATION
8541 AsmLEFileHeader.setDataPrototype(
8542 "Rose::BinaryAnalysis::Address", "e_resnametab_rfo", "= 0",
8543 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8544#endif // !DOCUMENTATION
8545
8546#ifndef DOCUMENTATION
8547 AsmLEFileHeader.setDataPrototype(
8548 "Rose::BinaryAnalysis::Address", "e_entrytab_rfo", "= 0",
8549 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8550#endif // !DOCUMENTATION
8551
8552#ifndef DOCUMENTATION
8553 AsmLEFileHeader.setDataPrototype(
8554 "Rose::BinaryAnalysis::Address", "e_fmtdirtab_rfo", "= 0",
8555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8556#endif // !DOCUMENTATION
8557
8558#ifndef DOCUMENTATION
8559 AsmLEFileHeader.setDataPrototype(
8560 "Rose::BinaryAnalysis::Address", "e_fixup_pagetab_rfo", "= 0",
8561 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8562#endif // !DOCUMENTATION
8563
8564#ifndef DOCUMENTATION
8565 AsmLEFileHeader.setDataPrototype(
8566 "Rose::BinaryAnalysis::Address", "e_fixup_rectab_rfo", "= 0",
8567 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8568#endif // !DOCUMENTATION
8569
8570#ifndef DOCUMENTATION
8571 AsmLEFileHeader.setDataPrototype(
8572 "Rose::BinaryAnalysis::Address", "e_import_modtab_rfo", "= 0",
8573 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8574#endif // !DOCUMENTATION
8575
8576#ifndef DOCUMENTATION
8577 AsmLEFileHeader.setDataPrototype(
8578 "Rose::BinaryAnalysis::Address", "e_import_proctab_rfo", "= 0",
8579 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8580#endif // !DOCUMENTATION
8581
8582#ifndef DOCUMENTATION
8583 AsmLEFileHeader.setDataPrototype(
8584 "Rose::BinaryAnalysis::Address", "e_ppcksumtab_rfo", "= 0",
8585 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8586#endif // !DOCUMENTATION
8587
8588#ifndef DOCUMENTATION
8589 AsmLEFileHeader.setDataPrototype(
8590 "Rose::BinaryAnalysis::Address", "e_data_pages_offset", "= 0",
8591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8592#endif // !DOCUMENTATION
8593
8594#ifndef DOCUMENTATION
8595 AsmLEFileHeader.setDataPrototype(
8596 "Rose::BinaryAnalysis::Address", "e_nonresnametab_offset", "= 0",
8597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8598#endif // !DOCUMENTATION
8599
8600#ifndef DOCUMENTATION
8601 AsmLEFileHeader.setDataPrototype(
8602 "Rose::BinaryAnalysis::Address", "e_debug_info_rfo", "= 0",
8603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8604#endif // !DOCUMENTATION
8605
8606#ifndef DOCUMENTATION
8607 AsmLEFileHeader.setDataPrototype(
8608 "SgAsmDOSExtendedHeader*", "dos2Header", "= nullptr",
8609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8610#endif // !DOCUMENTATION
8611
8612#ifndef DOCUMENTATION
8613 AsmLEFileHeader.setDataPrototype(
8614 "SgAsmLESectionTable*", "sectionTable", "= nullptr",
8615 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8616#endif // !DOCUMENTATION
8617
8618#ifndef DOCUMENTATION
8619 AsmLEFileHeader.setDataPrototype(
8620 "SgAsmLEPageTable*", "pageTable", "= nullptr",
8621 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8622#endif // !DOCUMENTATION
8623
8624#ifndef DOCUMENTATION
8625 AsmLEFileHeader.setDataPrototype(
8626 "SgAsmLENameTable*", "residentNameTable", "= nullptr",
8627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8628#endif // !DOCUMENTATION
8629
8630#ifndef DOCUMENTATION
8631 AsmLEFileHeader.setDataPrototype(
8632 "SgAsmLENameTable*", "nonresidentNameTable", "= nullptr",
8633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8634#endif // !DOCUMENTATION
8635
8636#ifndef DOCUMENTATION
8637 AsmLEFileHeader.setDataPrototype(
8638 "SgAsmLEEntryTable*", "entryTable", "= nullptr",
8639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8640#endif // !DOCUMENTATION
8641
8642#ifndef DOCUMENTATION
8643 AsmLEFileHeader.setDataPrototype(
8644 "SgAsmLERelocTable*", "relocationTable", "= nullptr",
8645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8646#endif // !DOCUMENTATION
8647
8648 DECLARE_OTHERS(AsmLEFileHeader);
8649#if defined(SgAsmLEFileHeader_OTHERS) || defined(DOCUMENTATION)
8650
8651 //----------------------- Boost serialization for SgAsmLEFileHeader -----------------------
8652#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8653private:
8654 friend class boost::serialization::access;
8655
8656 template<class S>
8657 void serialize(S &s, const unsigned /*version*/) {
8658 debugSerializationBegin("SgAsmLEFileHeader");
8659 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
8660 s & BOOST_SERIALIZATION_NVP(p_e_byte_order);
8661 s & BOOST_SERIALIZATION_NVP(p_e_word_order);
8662 s & BOOST_SERIALIZATION_NVP(p_e_format_level);
8663 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
8664 s & BOOST_SERIALIZATION_NVP(p_e_os_type);
8665 s & BOOST_SERIALIZATION_NVP(p_e_module_version);
8666 s & BOOST_SERIALIZATION_NVP(p_e_flags);
8667 s & BOOST_SERIALIZATION_NVP(p_e_eip_section);
8668 s & BOOST_SERIALIZATION_NVP(p_e_esp_section);
8669 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
8670 s & BOOST_SERIALIZATION_NVP(p_e_page_offset_shift);
8671 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_cksum);
8672 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_cksum);
8673 s & BOOST_SERIALIZATION_NVP(p_e_secttab_nentries);
8674 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_nentries);
8675 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_nentries);
8676 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_nentries);
8677 s & BOOST_SERIALIZATION_NVP(p_e_preload_npages);
8678 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_size);
8679 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_cksum);
8680 s & BOOST_SERIALIZATION_NVP(p_e_auto_ds_section);
8681 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_size);
8682 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_preload);
8683 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_demand);
8684 s & BOOST_SERIALIZATION_NVP(p_e_heap_size);
8685 s & BOOST_SERIALIZATION_NVP(p_e_npages);
8686 s & BOOST_SERIALIZATION_NVP(p_e_eip);
8687 s & BOOST_SERIALIZATION_NVP(p_e_esp);
8688 s & BOOST_SERIALIZATION_NVP(p_e_page_size);
8689 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_size);
8690 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_size);
8691 s & BOOST_SERIALIZATION_NVP(p_e_secttab_rfo);
8692 s & BOOST_SERIALIZATION_NVP(p_e_pagetab_rfo);
8693 s & BOOST_SERIALIZATION_NVP(p_e_iterpages_offset);
8694 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
8695 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
8696 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
8697 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_rfo);
8698 s & BOOST_SERIALIZATION_NVP(p_e_fixup_pagetab_rfo);
8699 s & BOOST_SERIALIZATION_NVP(p_e_fixup_rectab_rfo);
8700 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_rfo);
8701 s & BOOST_SERIALIZATION_NVP(p_e_import_proctab_rfo);
8702 s & BOOST_SERIALIZATION_NVP(p_e_ppcksumtab_rfo);
8703 s & BOOST_SERIALIZATION_NVP(p_e_data_pages_offset);
8704 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
8705 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_rfo);
8706 s & BOOST_SERIALIZATION_NVP(p_dos2Header);
8707 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
8708 s & BOOST_SERIALIZATION_NVP(p_pageTable);
8709 s & BOOST_SERIALIZATION_NVP(p_residentNameTable);
8710 s & BOOST_SERIALIZATION_NVP(p_nonresidentNameTable);
8711 s & BOOST_SERIALIZATION_NVP(p_entryTable);
8712 s & BOOST_SERIALIZATION_NVP(p_relocationTable);
8713 debugSerializationEnd("SgAsmLEFileHeader");
8714 }
8715#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8717 // Local types
8719public:
8720#ifdef _MSC_VER
8721# pragma pack (1)
8722#endif
8723 /* File format of an LE/LX File Header (they are identical except bytes 0x2c-0x2f) */
8725 unsigned char e_magic[2]; /* 0x00 magic number "LX" */
8726 unsigned char e_byte_order; /* 0x02 byte order (0=>little endian; otherwise big endian) */
8727 unsigned char e_word_order; /* 0x03 word order (0=>little endian; otherwise big endian) */
8728 uint32_t e_format_level; /* 0x04 LX file format version number */
8729 uint16_t e_cpu_type; /* 0x08 1=>80286, 2=>80386, 3=>80486,4=80586, etc. (see ctor) */
8730 uint16_t e_os_type; /* 0x0a 0=>unknown, 1=>0S/2, 2=>Windows, 3=>DOS 4.x, 4=>Windows 386 */
8731 uint32_t e_module_version; /* 0x0c user-specified module version number */
8732 uint32_t e_flags; /* 0x10 bit flags (see LXFileHeaderFlags) */
8733 uint32_t e_npages; /* 0x14 number of physically contained pages (see e_page_size) */
8734 uint32_t e_eip_section; /* 0x18 the section number to which e_eip is relative */
8735 uint32_t e_eip; /* 0x1c entry address relative to e_eip_section */
8736 uint32_t e_esp_section; /* 0x20 the section number to which e_esp is relative */
8737 uint32_t e_esp; /* 0x24 starting stack address relative to e_esp_section */
8738 uint32_t e_page_size; /* 0x28 page size in bytes */
8739 uint32_t e_lps_or_shift; /* 0x2c size of last page (LE) or shift for page table's page offset field (LX) */
8740 uint32_t e_fixup_sect_size; /* 0x30 total size of fixup info in bytes (fixup page/record tables + import names) */
8741 uint32_t e_fixup_sect_cksum; /* 0x34 cryptographic checksum of all fixup info, or zero */
8742 uint32_t e_loader_sect_size; /* 0x38 size of memory resident tables (section table through per-page checksum table) */
8743 uint32_t e_loader_sect_cksum; /* 0x3c cryptographic checksum for all loader info, or zero */
8744 uint32_t e_secttab_rfo; /* 0x40 offset of section table relative to this header */
8745 uint32_t e_secttab_nentries; /* 0x44 number of entries in section table */
8746 uint32_t e_pagetab_rfo; /* 0x48 section page table offset relative to this header */
8747 uint32_t e_iterpages_offset; /* 0x4c section iterated pages offset (absolute file offset) */
8748 uint32_t e_rsrctab_rfo; /* 0x50 offset of resource table relative to this header */
8749 uint32_t e_rsrctab_nentries; /* 0x54 number of entries in the resource table */
8750 uint32_t e_resnametab_rfo; /* 0x58 offset of resident name table relative to this header */
8751 uint32_t e_entrytab_rfo; /* 0x5c offset of entry table relative to this header */
8752 uint32_t e_fmtdirtab_rfo; /* 0x60 offset of module format directives relative to this header */
8753 uint32_t e_fmtdirtab_nentries; /* 0x64 number of entries in module format directives table */
8754 uint32_t e_fixup_pagetab_rfo; /* 0x68 offset of fixup page table relative to this header */
8755 uint32_t e_fixup_rectab_rfo; /* 0x6c offset of fixup record table relative to this header */
8756 uint32_t e_import_modtab_rfo; /* 0x70 offset of import module name table relative to this header */
8757 uint32_t e_import_modtab_nentries;/*0x74 number of entries in import module name table */
8758 uint32_t e_import_proctab_rfo; /* 0x78 offset of import procedure name table relative to this header */
8759 uint32_t e_ppcksumtab_rfo; /* 0x7c offset of per-page checksum table relative to this header */
8760 uint32_t e_data_pages_offset; /* 0x80 offset of data pages (absolute file offset) */
8761 uint32_t e_preload_npages; /* 0x84 number of preload pages (not respected by OS/2) */
8762 uint32_t e_nonresnametab_offset; /* 0x88 offset of non-resident name table (absolute file offset) */
8763 uint32_t e_nonresnametab_size; /* 0x8c size of non-resident name table in bytes */
8764 uint32_t e_nonresnametab_cksum; /* 0x90 cryptographic checksum of the non-resident name table */
8765 uint32_t e_auto_ds_section; /* 0x94 auto data segment section number (not used by 32-bit modules) */
8766 uint32_t e_debug_info_rfo; /* 0x98 offset of debug information relative to this header */
8767 uint32_t e_debug_info_size; /* 0x9c size of debug information in bytes */
8768 uint32_t e_num_instance_preload; /* 0xa0 number of instance data pages found in the preload section */
8769 uint32_t e_num_instance_demand; /* 0xa4 number of instance data pages found in the demand section */
8770 uint32_t e_heap_size; /* 0xa8 number of bytes added to auto data segment by loader (not used by 32-bit) */
8771 } /* 0xac */
8772// DQ (3/7/2013): Adding support to restrict visability to SWIG.
8773#ifndef SWIG
8774#ifndef _MSC_VER
8775 __attribute__((packed))
8776#endif
8777#endif
8778 ;
8779#ifdef _MSC_VER
8780# pragma pack ()
8781#endif
8782
8783 enum LEFileHeaderFlags {
8784 HF_RESERVED = 0xbffc5ccb, /* Reserved bits */
8785 HF_PROC_LIB_INIT = 0x00000004, /* Per-process library initialization; not used for executables */
8786 HF_IFIXUPS_APPLIED = 0x00000010, /* Sections have preferred load addresses and internal relocs have been applied */
8787 HF_EFIXUPS_APPLIED = 0x00000020, /* External fixups for the module have been applied */
8788 HF_PM_WINDOW_NO = 0x00000100, /* Incompatible with PM windowing */
8789 HF_PM_WINDOW_OK = 0x00000200, /* Compatible with PM windowing */
8790 HF_PM_WINDOW_USE = 0x00000300, /* Uses PM windowing API */
8791 HF_NOT_LOADABLE = 0x00002000, /* Module is not loadable (has errors or incrementally linked) */
8792 HF_PROC_LIB_TERM = 0x40000000, /* Per-process library termination; not used for executables */
8793
8794 HF_MODTYPE_MASK = 0x00038000, /* Module type mask */
8795 HF_MODTYPE_PROG = 0x00000000, /* Program module (other modules cannot link to this one) */
8796 HF_MODTYPE_LIB = 0x00008000, /* Library module */
8797 HF_MODTYPE_PLIB = 0x00018000, /* Protected memory library module */
8798 HF_MODTYPE_PDEV = 0x00020000, /* Physical device driver module */
8799 HF_MODTYPE_VDEV = 0x00028000 /* Virtual device driver module */
8800 };
8801
8803 // Properties
8805public:
8806public:
8807 unsigned const& get_e_byte_order() const;
8808 void set_e_byte_order(unsigned const&);
8809
8810public:
8811 unsigned const& get_e_word_order() const;
8812 void set_e_word_order(unsigned const&);
8813
8814public:
8815 unsigned const& get_e_format_level() const;
8816 void set_e_format_level(unsigned const&);
8817
8818public:
8819 unsigned const& get_e_cpu_type() const;
8820 void set_e_cpu_type(unsigned const&);
8821
8822public:
8823 unsigned const& get_e_os_type() const;
8824 void set_e_os_type(unsigned const&);
8825
8826public:
8827 unsigned const& get_e_module_version() const;
8828 void set_e_module_version(unsigned const&);
8829
8830public:
8831 unsigned const& get_e_flags() const;
8832 void set_e_flags(unsigned const&);
8833
8834public:
8835 unsigned const& get_e_eip_section() const;
8836 void set_e_eip_section(unsigned const&);
8837
8838public:
8839 unsigned const& get_e_esp_section() const;
8840 void set_e_esp_section(unsigned const&);
8841
8842public:
8843 unsigned const& get_e_last_page_size() const;
8844 void set_e_last_page_size(unsigned const&);
8845
8846public:
8847 unsigned const& get_e_page_offset_shift() const;
8848 void set_e_page_offset_shift(unsigned const&);
8849
8850public:
8851 unsigned const& get_e_fixup_sect_cksum() const;
8852 void set_e_fixup_sect_cksum(unsigned const&);
8853
8854public:
8855 unsigned const& get_e_loader_sect_cksum() const;
8856 void set_e_loader_sect_cksum(unsigned const&);
8857
8858public:
8859 unsigned const& get_e_secttab_nentries() const;
8860 void set_e_secttab_nentries(unsigned const&);
8861
8862public:
8863 unsigned const& get_e_rsrctab_nentries() const;
8864 void set_e_rsrctab_nentries(unsigned const&);
8865
8866public:
8867 unsigned const& get_e_fmtdirtab_nentries() const;
8868 void set_e_fmtdirtab_nentries(unsigned const&);
8869
8870public:
8871 unsigned const& get_e_import_modtab_nentries() const;
8872 void set_e_import_modtab_nentries(unsigned const&);
8873
8874public:
8875 unsigned const& get_e_preload_npages() const;
8876 void set_e_preload_npages(unsigned const&);
8877
8878public:
8879 unsigned const& get_e_nonresnametab_size() const;
8880 void set_e_nonresnametab_size(unsigned const&);
8881
8882public:
8883 unsigned const& get_e_nonresnametab_cksum() const;
8884 void set_e_nonresnametab_cksum(unsigned const&);
8885
8886public:
8887 unsigned const& get_e_auto_ds_section() const;
8888 void set_e_auto_ds_section(unsigned const&);
8889
8890public:
8891 unsigned const& get_e_debug_info_size() const;
8892 void set_e_debug_info_size(unsigned const&);
8893
8894public:
8895 unsigned const& get_e_num_instance_preload() const;
8896 void set_e_num_instance_preload(unsigned const&);
8897
8898public:
8899 unsigned const& get_e_num_instance_demand() const;
8900 void set_e_num_instance_demand(unsigned const&);
8901
8902public:
8903 unsigned const& get_e_heap_size() const;
8904 void set_e_heap_size(unsigned const&);
8905
8906public:
8907 Rose::BinaryAnalysis::Address const& get_e_npages() const;
8908 void set_e_npages(Rose::BinaryAnalysis::Address const&);
8909
8910public:
8911 Rose::BinaryAnalysis::Address const& get_e_eip() const;
8912 void set_e_eip(Rose::BinaryAnalysis::Address const&);
8913
8914public:
8915 Rose::BinaryAnalysis::Address const& get_e_esp() const;
8916 void set_e_esp(Rose::BinaryAnalysis::Address const&);
8917
8918public:
8919 Rose::BinaryAnalysis::Address const& get_e_page_size() const;
8920 void set_e_page_size(Rose::BinaryAnalysis::Address const&);
8921
8922public:
8923 Rose::BinaryAnalysis::Address const& get_e_fixup_sect_size() const;
8924 void set_e_fixup_sect_size(Rose::BinaryAnalysis::Address const&);
8925
8926public:
8927 Rose::BinaryAnalysis::Address const& get_e_loader_sect_size() const;
8928 void set_e_loader_sect_size(Rose::BinaryAnalysis::Address const&);
8929
8930public:
8931 Rose::BinaryAnalysis::Address const& get_e_secttab_rfo() const;
8932 void set_e_secttab_rfo(Rose::BinaryAnalysis::Address const&);
8933
8934public:
8935 Rose::BinaryAnalysis::Address const& get_e_pagetab_rfo() const;
8936 void set_e_pagetab_rfo(Rose::BinaryAnalysis::Address const&);
8937
8938public:
8939 Rose::BinaryAnalysis::Address const& get_e_iterpages_offset() const;
8940 void set_e_iterpages_offset(Rose::BinaryAnalysis::Address const&);
8941
8942public:
8943 Rose::BinaryAnalysis::Address const& get_e_rsrctab_rfo() const;
8944 void set_e_rsrctab_rfo(Rose::BinaryAnalysis::Address const&);
8945
8946public:
8947 Rose::BinaryAnalysis::Address const& get_e_resnametab_rfo() const;
8948 void set_e_resnametab_rfo(Rose::BinaryAnalysis::Address const&);
8949
8950public:
8951 Rose::BinaryAnalysis::Address const& get_e_entrytab_rfo() const;
8952 void set_e_entrytab_rfo(Rose::BinaryAnalysis::Address const&);
8953
8954public:
8955 Rose::BinaryAnalysis::Address const& get_e_fmtdirtab_rfo() const;
8956 void set_e_fmtdirtab_rfo(Rose::BinaryAnalysis::Address const&);
8957
8958public:
8959 Rose::BinaryAnalysis::Address const& get_e_fixup_pagetab_rfo() const;
8960 void set_e_fixup_pagetab_rfo(Rose::BinaryAnalysis::Address const&);
8961
8962public:
8963 Rose::BinaryAnalysis::Address const& get_e_fixup_rectab_rfo() const;
8964 void set_e_fixup_rectab_rfo(Rose::BinaryAnalysis::Address const&);
8965
8966public:
8967 Rose::BinaryAnalysis::Address const& get_e_import_modtab_rfo() const;
8968 void set_e_import_modtab_rfo(Rose::BinaryAnalysis::Address const&);
8969
8970public:
8971 Rose::BinaryAnalysis::Address const& get_e_import_proctab_rfo() const;
8972 void set_e_import_proctab_rfo(Rose::BinaryAnalysis::Address const&);
8973
8974public:
8975 Rose::BinaryAnalysis::Address const& get_e_ppcksumtab_rfo() const;
8976 void set_e_ppcksumtab_rfo(Rose::BinaryAnalysis::Address const&);
8977
8978public:
8979 Rose::BinaryAnalysis::Address const& get_e_data_pages_offset() const;
8980 void set_e_data_pages_offset(Rose::BinaryAnalysis::Address const&);
8981
8982public:
8983 Rose::BinaryAnalysis::Address const& get_e_nonresnametab_offset() const;
8984 void set_e_nonresnametab_offset(Rose::BinaryAnalysis::Address const&);
8985
8986public:
8987 Rose::BinaryAnalysis::Address const& get_e_debug_info_rfo() const;
8988 void set_e_debug_info_rfo(Rose::BinaryAnalysis::Address const&);
8989
8990public:
8991 SgAsmDOSExtendedHeader* const& get_dos2Header() const;
8992 void set_dos2Header(SgAsmDOSExtendedHeader* const&);
8993
8994public:
8995 SgAsmLESectionTable* const& get_sectionTable() const;
8996 void set_sectionTable(SgAsmLESectionTable* const&);
8997
8998public:
8999 SgAsmLEPageTable* const& get_pageTable() const;
9000 void set_pageTable(SgAsmLEPageTable* const&);
9001
9002public:
9003 SgAsmLENameTable* const& get_residentNameTable() const;
9004 void set_residentNameTable(SgAsmLENameTable* const&);
9005
9006public:
9007 SgAsmLENameTable* const& get_nonresidentNameTable() const;
9008 void set_nonresidentNameTable(SgAsmLENameTable* const&);
9009
9010public:
9011 SgAsmLEEntryTable* const& get_entryTable() const;
9012 void set_entryTable(SgAsmLEEntryTable* const&);
9013
9014public:
9015 SgAsmLERelocTable* const& get_relocationTable() const;
9016 void set_relocationTable(SgAsmLERelocTable* const&);
9018 // Functions
9020public:
9022 virtual void unparse(std::ostream&) const override;
9023 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9024
9025 // Overloaded base class virtual function
9026 const char *formatName() const override;
9027
9028 static bool isLe (SgAsmGenericFile*);
9030
9031private:
9033
9035 // Deprecated 2023-11
9037public:
9038 SgAsmDOSExtendedHeader* get_dos2_header() const ROSE_DEPRECATED("use get_dos2Header");
9039 void set_dos2_header(SgAsmDOSExtendedHeader*) ROSE_DEPRECATED("use set_dos2Header");
9040 SgAsmLESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
9041 void set_section_table(SgAsmLESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
9042 SgAsmLEPageTable* get_page_table() const ROSE_DEPRECATED("use get_pageTable");
9043 void set_page_table(SgAsmLEPageTable*) ROSE_DEPRECATED("use set_pageTable");
9044 SgAsmLENameTable* get_resname_table() const ROSE_DEPRECATED("use get_residentNameTable");
9045 void set_resname_table(SgAsmLENameTable*) ROSE_DEPRECATED("use set_residentNameTable");
9046 SgAsmLENameTable* get_nonresname_table() const ROSE_DEPRECATED("use get_nonresidentNameTable");
9047 void set_nonresname_table(SgAsmLENameTable*) ROSE_DEPRECATED("use set_nonresidentNameTable");
9048 SgAsmLEEntryTable* get_entry_table() const ROSE_DEPRECATED("use get_entryTable");
9049 void set_entry_table(SgAsmLEEntryTable*) ROSE_DEPRECATED("use set_entryTable");
9050 SgAsmLERelocTable* get_reloc_table() const ROSE_DEPRECATED("use get_relocationTable");
9051 void set_reloc_table(SgAsmLERelocTable*) ROSE_DEPRECATED("use set_relocationTable");
9052 const char *format_name() const override ROSE_DEPRECATED("use formatName");
9053 static bool is_LE (SgAsmGenericFile*) ROSE_DEPRECATED("use isLe");
9054public:
9057
9058public:
9061
9062protected:
9070#endif // SgAsmLEFileHeader_OTHERS
9071#ifdef DOCUMENTATION
9072};
9073#endif // DOCUMENTATION
9074
9075
9077// SgAsmLEEntryTable -- MACHINE GENERATED; DO NOT MODIFY --
9079
9080DECLARE_LEAF_CLASS(AsmLEEntryTable);
9081IS_SERIALIZABLE(AsmLEEntryTable);
9082
9083#ifndef DOCUMENTATION
9084AsmLEEntryTable.useSmallHeader(true);
9085#endif // !DOCUMENTATION
9086
9087DECLARE_HEADERS(AsmLEEntryTable);
9088#if defined(SgAsmLEEntryTable_HEADERS) || defined(DOCUMENTATION)
9089#include <Rose/BinaryAnalysis/Address.h>
9090#endif // SgAsmLEEntryTable_HEADERS
9091
9092#ifdef DOCUMENTATION
9094#endif // DOCUMENTATION
9095
9096#ifndef DOCUMENTATION
9097 AsmLEEntryTable.setDataPrototype(
9098 "SgSizeTList", "bundle_sizes", "",
9099 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9100#endif // !DOCUMENTATION
9101
9102#ifndef DOCUMENTATION
9103 AsmLEEntryTable.setDataPrototype(
9104 "SgAsmLEEntryPointPtrList", "entries", "",
9105 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9106#endif // !DOCUMENTATION
9107
9108 DECLARE_OTHERS(AsmLEEntryTable);
9109#if defined(SgAsmLEEntryTable_OTHERS) || defined(DOCUMENTATION)
9110
9111 //----------------------- Boost serialization for SgAsmLEEntryTable -----------------------
9112#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9113private:
9114 friend class boost::serialization::access;
9115
9116 template<class S>
9117 void serialize(S &s, const unsigned /*version*/) {
9118 debugSerializationBegin("SgAsmLEEntryTable");
9119 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
9120 s & BOOST_SERIALIZATION_NVP(p_bundle_sizes);
9121 s & BOOST_SERIALIZATION_NVP(p_entries);
9122 debugSerializationEnd("SgAsmLEEntryTable");
9123 }
9124#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9125public:
9126public:
9127 SgSizeTList const& get_bundle_sizes() const;
9128 void set_bundle_sizes(SgSizeTList const&);
9129
9130public:
9131 SgAsmLEEntryPointPtrList const& get_entries() const;
9132 SgAsmLEEntryPointPtrList& get_entries();
9133 void set_entries(SgAsmLEEntryPointPtrList const&);
9134public:
9136 virtual void unparse(std::ostream&) const override;
9137 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9138public:
9141
9142public:
9145
9146protected:
9154#endif // SgAsmLEEntryTable_OTHERS
9155#ifdef DOCUMENTATION
9156};
9157#endif // DOCUMENTATION
9158
9159
9161// SgAsmLEEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
9163
9164DECLARE_LEAF_CLASS(AsmLEEntryPoint);
9165IS_SERIALIZABLE(AsmLEEntryPoint);
9166
9167#ifndef DOCUMENTATION
9168AsmLEEntryPoint.useSmallHeader(true);
9169#endif // !DOCUMENTATION
9170
9171DECLARE_HEADERS(AsmLEEntryPoint);
9172#if defined(SgAsmLEEntryPoint_HEADERS) || defined(DOCUMENTATION)
9173#include <Rose/BinaryAnalysis/Address.h>
9174#include <Rose/BinaryAnalysis/ByteOrder.h>
9175#include <sageContainer.h>
9176#endif // SgAsmLEEntryPoint_HEADERS
9177
9178#ifdef DOCUMENTATION
9180#endif // DOCUMENTATION
9181
9182#ifndef DOCUMENTATION
9183 AsmLEEntryPoint.setDataPrototype(
9184 "SgAsmLEEntryPointPtrList", "entries", "",
9185 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9186#endif // !DOCUMENTATION
9187
9188#ifndef DOCUMENTATION
9189 AsmLEEntryPoint.setDataPrototype(
9190 "unsigned", "flags", "= 0",
9191 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9192#endif // !DOCUMENTATION
9193
9194#ifndef DOCUMENTATION
9195 AsmLEEntryPoint.setDataPrototype(
9196 "unsigned", "objnum", "= 0",
9197 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9198#endif // !DOCUMENTATION
9199
9200#ifndef DOCUMENTATION
9201 AsmLEEntryPoint.setDataPrototype(
9202 "unsigned", "entry_type", "= 0",
9203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9204#endif // !DOCUMENTATION
9205
9206#ifndef DOCUMENTATION
9207 AsmLEEntryPoint.setDataPrototype(
9208 "unsigned", "res1", "= 0",
9209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9210#endif // !DOCUMENTATION
9211
9212#ifndef DOCUMENTATION
9213 AsmLEEntryPoint.setDataPrototype(
9214 "Rose::BinaryAnalysis::Address", "entry_offset", "= 0",
9215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9216#endif // !DOCUMENTATION
9217
9218 DECLARE_OTHERS(AsmLEEntryPoint);
9219#if defined(SgAsmLEEntryPoint_OTHERS) || defined(DOCUMENTATION)
9220
9221 //----------------------- Boost serialization for SgAsmLEEntryPoint -----------------------
9222#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9223private:
9224 friend class boost::serialization::access;
9225
9226 template<class S>
9227 void serialize(S &s, const unsigned /*version*/) {
9228 debugSerializationBegin("SgAsmLEEntryPoint");
9229 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
9230 s & BOOST_SERIALIZATION_NVP(p_entries);
9231 s & BOOST_SERIALIZATION_NVP(p_flags);
9232 s & BOOST_SERIALIZATION_NVP(p_objnum);
9233 s & BOOST_SERIALIZATION_NVP(p_entry_type);
9234 s & BOOST_SERIALIZATION_NVP(p_res1);
9235 s & BOOST_SERIALIZATION_NVP(p_entry_offset);
9236 debugSerializationEnd("SgAsmLEEntryPoint");
9237 }
9238#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9240 // Local types
9242public:
9243#ifdef _MSC_VER
9244# pragma pack (1)
9245#endif
9246 /* If 0x01 bit of "flags" is clear then the remainder (next 9 bytes) of the entry point is not stored in the file and the
9247 * next entry point description follows immediately after the flag. */
9249 uint8_t flags; /* 0x00 Bit flags (0x01=>non-empty bundle; 0x02=>32-bit entry*/
9250 uint16_t objnum; /* 0x01 Object number */
9251 uint8_t entry_type; /* 0x03 Flags for entry type */
9252 uint32_t entry_offset; /* 0x04 Offset of entry point */
9253 uint16_t res1; /* 0x08 Reserved */
9254 } /* 0x0a */
9255// DQ (3/7/2013): Adding support to restrict visability to SWIG.
9256#ifndef SWIG
9257#ifndef _MSC_VER
9258 __attribute__((packed))
9259#endif
9260#endif
9261 ;
9262#ifdef _MSC_VER
9263# pragma pack ()
9264#endif
9265
9267 // Properties
9269public:
9270public:
9271 SgAsmLEEntryPointPtrList const& get_entries() const;
9272 SgAsmLEEntryPointPtrList& get_entries();
9273 void set_entries(SgAsmLEEntryPointPtrList const&);
9274
9275public:
9276 unsigned const& get_flags() const;
9277 void set_flags(unsigned const&);
9278
9279public:
9280 unsigned const& get_objnum() const;
9281 void set_objnum(unsigned const&);
9282
9283public:
9284 unsigned const& get_entry_type() const;
9285 void set_entry_type(unsigned const&);
9286
9287public:
9288 unsigned const& get_res1() const;
9289 void set_res1(unsigned const&);
9290
9291public:
9292 Rose::BinaryAnalysis::Address const& get_entry_offset() const;
9293 void set_entry_offset(Rose::BinaryAnalysis::Address const&);
9295 // Functions
9297public:
9302 void dump(FILE*, const char *prefix, ssize_t idx) const;
9303public:
9306
9307public:
9310
9311protected:
9319#endif // SgAsmLEEntryPoint_OTHERS
9320#ifdef DOCUMENTATION
9321};
9322#endif // DOCUMENTATION
9323
9324
9326// SgAsmJvmStackMapVerificationType -- MACHINE GENERATED; DO NOT MODIFY --
9328
9329DECLARE_LEAF_CLASS(AsmJvmStackMapVerificationType);
9330IS_SERIALIZABLE(AsmJvmStackMapVerificationType);
9331
9332#ifndef DOCUMENTATION
9333AsmJvmStackMapVerificationType.useSmallHeader(true);
9334#endif // !DOCUMENTATION
9335
9336#ifdef DOCUMENTATION
9341#endif // DOCUMENTATION
9342
9343#ifndef DOCUMENTATION
9344 AsmJvmStackMapVerificationType.setDataPrototype(
9345 "uint8_t", "tag", "= 9",
9346 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9347#endif // !DOCUMENTATION
9348
9349#ifndef DOCUMENTATION
9350 AsmJvmStackMapVerificationType.setDataPrototype(
9351 "uint16_t", "cpool_index", "= 0",
9352 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9353#endif // !DOCUMENTATION
9354
9355#ifndef DOCUMENTATION
9356 AsmJvmStackMapVerificationType.setDataPrototype(
9357 "uint16_t", "offset", "= 0",
9358 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9359#endif // !DOCUMENTATION
9360
9361 DECLARE_OTHERS(AsmJvmStackMapVerificationType);
9362#if defined(SgAsmJvmStackMapVerificationType_OTHERS) || defined(DOCUMENTATION)
9363
9364 //----------------------- Boost serialization for SgAsmJvmStackMapVerificationType -----------------------
9365#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9366private:
9367 friend class boost::serialization::access;
9368
9369 template<class S>
9370 void serialize(S &s, const unsigned /*version*/) {
9371 debugSerializationBegin("SgAsmJvmStackMapVerificationType");
9372 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9373 s & BOOST_SERIALIZATION_NVP(p_tag);
9374 s & BOOST_SERIALIZATION_NVP(p_cpool_index);
9375 s & BOOST_SERIALIZATION_NVP(p_offset);
9376 debugSerializationEnd("SgAsmJvmStackMapVerificationType");
9377 }
9378#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9379private:
9384 enum verification_type_tag {
9385 ITEM_Top = 0,
9386 ITEM_Integer = 1,
9387 ITEM_Float = 2,
9388 ITEM_Double = 3,
9389 ITEM_Long = 4,
9390 ITEM_Null = 5,
9391 ITEM_UninitializedThis = 6,
9392 ITEM_Object = 7,
9393 ITEM_Uninitialized = 8
9394 };
9395
9397 // Local types (for documentation purposes only)
9399#ifdef DOCUMENTATION
9403 union verification_type_info {
9404 Top_variable_info;
9405 Integer_variable_info;
9406 Float_variable_info;
9407 Long_variable_info;
9408 Double_variable_info;
9409 Null_variable_info;
9410 UninitializedThis_variable_info;
9411 Object_variable_info;
9412 Uninitialized_variable_info;
9413 };
9414
9416 struct Top_variable_info {
9417 uint8_t tag;
9418 };
9419 struct Integer_variable_info {
9420 uint8_t tag;
9421 };
9422 struct Float_variable_info {
9423 uint8_t tag;
9424 };
9425 struct Long_variable_info {
9426 uint8_t tag;
9427 };
9428 struct Double_variable_info {
9429 uint8_t tag;
9430 };
9431 struct Null_variable_info {
9432 uint8_t tag;
9433 };
9434 struct UnitializedThis_variable_info {
9435 uint8_t tag;
9436 };
9437 struct Object_variable_info {
9438 uint8_t tag;
9439 uint16_t cpool_index;
9440 };
9441 struct Unitialized_variable_info {
9442 uint8_t tag;
9443 uint16_t offset;
9444 };
9445#endif
9446
9448 // Properties
9450public:
9451public:
9457 uint8_t const& get_tag() const;
9458 void set_tag(uint8_t const&);
9460 /* Not a legal entry */
9461public:
9467 uint16_t const& get_cpool_index() const;
9468 void set_cpool_index(uint16_t const&);
9471public:
9477 uint16_t const& get_offset() const;
9478 void set_offset(uint16_t const&);
9481 // Functions
9483public:
9488
9491
9493 virtual void unparse(std::ostream&) const override;
9494
9496 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9497public:
9500
9501public:
9504
9505protected:
9513#endif // SgAsmJvmStackMapVerificationType_OTHERS
9514#ifdef DOCUMENTATION
9515};
9516#endif // DOCUMENTATION
9517
9518
9520// SgAsmJvmStackMapTable -- MACHINE GENERATED; DO NOT MODIFY --
9522
9523DECLARE_LEAF_CLASS(AsmJvmStackMapTable);
9524IS_SERIALIZABLE(AsmJvmStackMapTable);
9525
9526#ifndef DOCUMENTATION
9527AsmJvmStackMapTable.useSmallHeader(true);
9528#endif // !DOCUMENTATION
9529
9530DECLARE_HEADERS(AsmJvmStackMapTable);
9531#if defined(SgAsmJvmStackMapTable_HEADERS) || defined(DOCUMENTATION)
9532#include <sageContainer.h>
9533#endif // SgAsmJvmStackMapTable_HEADERS
9534
9535#ifdef DOCUMENTATION
9541#endif // DOCUMENTATION
9542
9543#ifndef DOCUMENTATION
9544 AsmJvmStackMapTable.setDataPrototype(
9545 "SgAsmJvmStackMapFramePtrList", "entries", "",
9546 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9547#endif // !DOCUMENTATION
9548
9549 DECLARE_OTHERS(AsmJvmStackMapTable);
9550#if defined(SgAsmJvmStackMapTable_OTHERS) || defined(DOCUMENTATION)
9551
9552 //----------------------- Boost serialization for SgAsmJvmStackMapTable -----------------------
9553#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9554private:
9555 friend class boost::serialization::access;
9556
9557 template<class S>
9558 void serialize(S &s, const unsigned /*version*/) {
9559 debugSerializationBegin("SgAsmJvmStackMapTable");
9560 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9561 s & BOOST_SERIALIZATION_NVP(p_entries);
9562 debugSerializationEnd("SgAsmJvmStackMapTable");
9563 }
9564#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9566 // Properties
9568public:
9569public:
9573 SgAsmJvmStackMapFramePtrList const& get_entries() const;
9574 SgAsmJvmStackMapFramePtrList& get_entries();
9575 void set_entries(SgAsmJvmStackMapFramePtrList const&);
9578 // Functions
9580public:
9585
9588
9590 virtual void unparse(std::ostream&) const override;
9591
9593 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9594public:
9597
9598public:
9601
9602protected:
9610#endif // SgAsmJvmStackMapTable_OTHERS
9611#ifdef DOCUMENTATION
9612};
9613#endif // DOCUMENTATION
9614
9615
9617// SgAsmJvmStackMapFrame -- MACHINE GENERATED; DO NOT MODIFY --
9619
9620DECLARE_LEAF_CLASS(AsmJvmStackMapFrame);
9621IS_SERIALIZABLE(AsmJvmStackMapFrame);
9622
9623#ifndef DOCUMENTATION
9624AsmJvmStackMapFrame.useSmallHeader(true);
9625#endif // !DOCUMENTATION
9626
9627DECLARE_HEADERS(AsmJvmStackMapFrame);
9628#if defined(SgAsmJvmStackMapFrame_HEADERS) || defined(DOCUMENTATION)
9629#include <sageContainer.h>
9630#endif // SgAsmJvmStackMapFrame_HEADERS
9631
9632#ifdef DOCUMENTATION
9637#endif // DOCUMENTATION
9638
9639#ifndef DOCUMENTATION
9640 AsmJvmStackMapFrame.setDataPrototype(
9641 "SgAsmJvmStackMapVerificationTypePtrList", "stack", "",
9642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9643#endif // !DOCUMENTATION
9644
9645#ifndef DOCUMENTATION
9646 AsmJvmStackMapFrame.setDataPrototype(
9647 "SgAsmJvmStackMapVerificationTypePtrList", "locals", "",
9648 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9649#endif // !DOCUMENTATION
9650
9651#ifndef DOCUMENTATION
9652 AsmJvmStackMapFrame.setDataPrototype(
9653 "uint8_t", "frame_type", "= 0",
9654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9655#endif // !DOCUMENTATION
9656
9657#ifndef DOCUMENTATION
9658 AsmJvmStackMapFrame.setDataPrototype(
9659 "uint16_t", "offset_delta", "= 0",
9660 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9661#endif // !DOCUMENTATION
9662
9663 DECLARE_OTHERS(AsmJvmStackMapFrame);
9664#if defined(SgAsmJvmStackMapFrame_OTHERS) || defined(DOCUMENTATION)
9665
9666 //----------------------- Boost serialization for SgAsmJvmStackMapFrame -----------------------
9667#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9668private:
9669 friend class boost::serialization::access;
9670
9671 template<class S>
9672 void serialize(S &s, const unsigned /*version*/) {
9673 debugSerializationBegin("SgAsmJvmStackMapFrame");
9674 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9675 s & BOOST_SERIALIZATION_NVP(p_stack);
9676 s & BOOST_SERIALIZATION_NVP(p_locals);
9677 s & BOOST_SERIALIZATION_NVP(p_frame_type);
9678 s & BOOST_SERIALIZATION_NVP(p_offset_delta);
9679 debugSerializationEnd("SgAsmJvmStackMapFrame");
9680 }
9681#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9682private:
9683public:
9684public:
9688 SgAsmJvmStackMapVerificationTypePtrList const& get_stack() const;
9689 SgAsmJvmStackMapVerificationTypePtrList& get_stack();
9690 void set_stack(SgAsmJvmStackMapVerificationTypePtrList const&);
9693public:
9697 SgAsmJvmStackMapVerificationTypePtrList const& get_locals() const;
9698 SgAsmJvmStackMapVerificationTypePtrList& get_locals();
9699 void set_locals(SgAsmJvmStackMapVerificationTypePtrList const&);
9702 // Local types (for documentation purposes only)
9704#ifdef DOCUMENTATION
9709 same_frame;
9711 same_locals_1_stack_item_frame_extended;
9712 chop_frame;
9715 full_frame;
9716 };
9717
9718 struct same_frame {
9719 uint8_t frame_type; /* 0-63 */
9720 };
9722 uint8_t frame_type; /* 64-127 */
9723 verification_type_info stack;
9724 };
9726 uint8_t frame_type; /* 247 */
9727 uint16_t offset_delta;
9728 verification_type_info stack;
9729 };
9730 struct chop_frame {
9731 uint8_t frame_type; /* 248-250 */
9732 uint16_t offset_delta;
9733 };
9735 uint8_t frame_type; /* 251 */
9736 uint16_t offset_delta;
9737 };
9739 uint8_t frame_type; /* 252-254 */
9740 uint16_t offset_delta;
9741 verification_type_info stack;
9742 };
9743 struct full_frame {
9744 uint8_t frame_type; /* 252-254 */
9745 uint16_t offset_delta;
9746 uint16_t number_of_locals;
9747 verification_type_info stack[number_of_locals];
9748 uint16_t number_of_stack_items;
9749 verification_type_info stack[number_of_stack_items];
9750 };
9751#endif
9752
9754 // Properties
9756private:
9757public:
9763 uint8_t const& get_frame_type() const;
9764 void set_frame_type(uint8_t const&);
9767public:
9773 uint16_t const& get_offset_delta() const;
9774 void set_offset_delta(uint16_t const&);
9777 // Functions
9779public:
9784
9787
9789 virtual void unparse(std::ostream&) const override;
9790
9792 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9793public:
9796
9797public:
9800
9801protected:
9809#endif // SgAsmJvmStackMapFrame_OTHERS
9810#ifdef DOCUMENTATION
9811};
9812#endif // DOCUMENTATION
9813
9814
9816// SgAsmJvmRuntimeVisibleAnnotations -- MACHINE GENERATED; DO NOT MODIFY --
9818
9819DECLARE_LEAF_CLASS(AsmJvmRuntimeVisibleAnnotations);
9820IS_SERIALIZABLE(AsmJvmRuntimeVisibleAnnotations);
9821
9822#ifndef DOCUMENTATION
9823AsmJvmRuntimeVisibleAnnotations.useSmallHeader(true);
9824#endif // !DOCUMENTATION
9825
9826DECLARE_HEADERS(AsmJvmRuntimeVisibleAnnotations);
9827#if defined(SgAsmJvmRuntimeVisibleAnnotations_HEADERS) || defined(DOCUMENTATION)
9828#include <sageContainer.h>
9829#endif // SgAsmJvmRuntimeVisibleAnnotations_HEADERS
9830
9831#ifdef DOCUMENTATION
9839#endif // DOCUMENTATION
9840
9841#ifndef DOCUMENTATION
9842 AsmJvmRuntimeVisibleAnnotations.setDataPrototype(
9843 "std::vector<SgAsmJvmRuntimeAnnotation*>", "annotations", "",
9844 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9845#endif // !DOCUMENTATION
9846
9847 DECLARE_OTHERS(AsmJvmRuntimeVisibleAnnotations);
9848#if defined(SgAsmJvmRuntimeVisibleAnnotations_OTHERS) || defined(DOCUMENTATION)
9849
9850 //----------------------- Boost serialization for SgAsmJvmRuntimeVisibleAnnotations -----------------------
9851#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9852private:
9853 friend class boost::serialization::access;
9854
9855 template<class S>
9856 void serialize(S &s, const unsigned /*version*/) {
9857 debugSerializationBegin("SgAsmJvmRuntimeVisibleAnnotations");
9858 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9859 s & BOOST_SERIALIZATION_NVP(p_annotations);
9860 debugSerializationEnd("SgAsmJvmRuntimeVisibleAnnotations");
9861 }
9862#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9863public:
9864public:
9870 std::vector<SgAsmJvmRuntimeAnnotation*> const& get_annotations() const;
9871 std::vector<SgAsmJvmRuntimeAnnotation*>& get_annotations();
9873public:
9878
9881
9883 virtual void unparse(std::ostream&) const override;
9884
9886 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9887public:
9890
9891public:
9894
9895protected:
9903#endif // SgAsmJvmRuntimeVisibleAnnotations_OTHERS
9904#ifdef DOCUMENTATION
9905};
9906#endif // DOCUMENTATION
9907
9908
9910// SgAsmJvmRuntimeVisibilityParamAnnotations -- MACHINE GENERATED; DO NOT MODIFY --
9912
9913DECLARE_LEAF_CLASS(AsmJvmRuntimeVisibilityParamAnnotations);
9914IS_SERIALIZABLE(AsmJvmRuntimeVisibilityParamAnnotations);
9915
9916#ifndef DOCUMENTATION
9917AsmJvmRuntimeVisibilityParamAnnotations.useSmallHeader(true);
9918#endif // !DOCUMENTATION
9919
9920DECLARE_HEADERS(AsmJvmRuntimeVisibilityParamAnnotations);
9921#if defined(SgAsmJvmRuntimeVisibilityParamAnnotations_HEADERS) || defined(DOCUMENTATION)
9922#include <sageContainer.h>
9923#endif // SgAsmJvmRuntimeVisibilityParamAnnotations_HEADERS
9924
9925#ifdef DOCUMENTATION
9939#endif // DOCUMENTATION
9940
9941#ifndef DOCUMENTATION
9942 AsmJvmRuntimeVisibilityParamAnnotations.setDataPrototype(
9943 "std::vector<SgAsmJvmRuntimeParameterAnnotation*>", "parameter_annotations", "",
9944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9945#endif // !DOCUMENTATION
9946
9947#ifndef DOCUMENTATION
9948 AsmJvmRuntimeVisibilityParamAnnotations.setDataPrototype(
9949 "bool", "isVisible", "= true",
9950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9951#endif // !DOCUMENTATION
9952
9953 DECLARE_OTHERS(AsmJvmRuntimeVisibilityParamAnnotations);
9954#if defined(SgAsmJvmRuntimeVisibilityParamAnnotations_OTHERS) || defined(DOCUMENTATION)
9955
9956 //----------------------- Boost serialization for SgAsmJvmRuntimeVisibilityParamAnnotations -----------------------
9957#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9958private:
9959 friend class boost::serialization::access;
9960
9961 template<class S>
9962 void serialize(S &s, const unsigned /*version*/) {
9963 debugSerializationBegin("SgAsmJvmRuntimeVisibilityParamAnnotations");
9964 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9965 s & BOOST_SERIALIZATION_NVP(p_parameter_annotations);
9966 s & BOOST_SERIALIZATION_NVP(p_isVisible);
9967 debugSerializationEnd("SgAsmJvmRuntimeVisibilityParamAnnotations");
9968 }
9969#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9970public:
9971public:
9979 std::vector<SgAsmJvmRuntimeParameterAnnotation*> const& get_parameter_annotations() const;
9980 std::vector<SgAsmJvmRuntimeParameterAnnotation*>& get_parameter_annotations();
9983public:
9990 bool const& get_isVisible() const;
9991 void set_isVisible(bool const&);
9993public:
9998
10001
10003 virtual void unparse(std::ostream&) const override;
10004
10006 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10007public:
10010
10011public:
10014
10015protected:
10023#endif // SgAsmJvmRuntimeVisibilityParamAnnotations_OTHERS
10024#ifdef DOCUMENTATION
10025};
10026#endif // DOCUMENTATION
10027
10028
10030// SgAsmJvmRuntimeParameterAnnotation -- MACHINE GENERATED; DO NOT MODIFY --
10032
10033DECLARE_LEAF_CLASS(AsmJvmRuntimeParameterAnnotation);
10034IS_SERIALIZABLE(AsmJvmRuntimeParameterAnnotation);
10035
10036#ifndef DOCUMENTATION
10037AsmJvmRuntimeParameterAnnotation.useSmallHeader(true);
10038#endif // !DOCUMENTATION
10039
10040#ifdef DOCUMENTATION
10046#endif // DOCUMENTATION
10047
10048#ifndef DOCUMENTATION
10049 AsmJvmRuntimeParameterAnnotation.setDataPrototype(
10050 "std::vector<SgAsmJvmRuntimeAnnotation*>", "annotations", "",
10051 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10052#endif // !DOCUMENTATION
10053
10054 DECLARE_OTHERS(AsmJvmRuntimeParameterAnnotation);
10055#if defined(SgAsmJvmRuntimeParameterAnnotation_OTHERS) || defined(DOCUMENTATION)
10056
10057 //----------------------- Boost serialization for SgAsmJvmRuntimeParameterAnnotation -----------------------
10058#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10059private:
10060 friend class boost::serialization::access;
10061
10062 template<class S>
10063 void serialize(S &s, const unsigned /*version*/) {
10064 debugSerializationBegin("SgAsmJvmRuntimeParameterAnnotation");
10065 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10066 s & BOOST_SERIALIZATION_NVP(p_annotations);
10067 debugSerializationEnd("SgAsmJvmRuntimeParameterAnnotation");
10068 }
10069#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10070public:
10071public:
10079 std::vector<SgAsmJvmRuntimeAnnotation*> const& get_annotations() const;
10080 std::vector<SgAsmJvmRuntimeAnnotation*>& get_annotations();
10082 public:
10087
10090
10092 virtual void unparse(std::ostream&) const override;
10093
10095 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10096public:
10099
10100public:
10103
10104protected:
10112#endif // SgAsmJvmRuntimeParameterAnnotation_OTHERS
10113#ifdef DOCUMENTATION
10114};
10115#endif // DOCUMENTATION
10116
10117
10119// SgAsmJvmRuntimeInvisibleAnnotations -- MACHINE GENERATED; DO NOT MODIFY --
10121
10122DECLARE_LEAF_CLASS(AsmJvmRuntimeInvisibleAnnotations);
10123IS_SERIALIZABLE(AsmJvmRuntimeInvisibleAnnotations);
10124
10125#ifndef DOCUMENTATION
10126AsmJvmRuntimeInvisibleAnnotations.useSmallHeader(true);
10127#endif // !DOCUMENTATION
10128
10129DECLARE_HEADERS(AsmJvmRuntimeInvisibleAnnotations);
10130#if defined(SgAsmJvmRuntimeInvisibleAnnotations_HEADERS) || defined(DOCUMENTATION)
10131#include <sageContainer.h>
10132#endif // SgAsmJvmRuntimeInvisibleAnnotations_HEADERS
10133
10134#ifdef DOCUMENTATION
10142#endif // DOCUMENTATION
10143
10144#ifndef DOCUMENTATION
10145 AsmJvmRuntimeInvisibleAnnotations.setDataPrototype(
10146 "std::vector<SgAsmJvmRuntimeAnnotation*>", "annotations", "",
10147 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10148#endif // !DOCUMENTATION
10149
10150 DECLARE_OTHERS(AsmJvmRuntimeInvisibleAnnotations);
10151#if defined(SgAsmJvmRuntimeInvisibleAnnotations_OTHERS) || defined(DOCUMENTATION)
10152
10153 //----------------------- Boost serialization for SgAsmJvmRuntimeInvisibleAnnotations -----------------------
10154#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10155private:
10156 friend class boost::serialization::access;
10157
10158 template<class S>
10159 void serialize(S &s, const unsigned /*version*/) {
10160 debugSerializationBegin("SgAsmJvmRuntimeInvisibleAnnotations");
10161 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10162 s & BOOST_SERIALIZATION_NVP(p_annotations);
10163 debugSerializationEnd("SgAsmJvmRuntimeInvisibleAnnotations");
10164 }
10165#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10166public:
10167public:
10173 std::vector<SgAsmJvmRuntimeAnnotation*> const& get_annotations() const;
10174 std::vector<SgAsmJvmRuntimeAnnotation*>& get_annotations();
10176public:
10181
10184
10186 virtual void unparse(std::ostream&) const override;
10187
10189 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10190public:
10193
10194public:
10197
10198protected:
10206#endif // SgAsmJvmRuntimeInvisibleAnnotations_OTHERS
10207#ifdef DOCUMENTATION
10208};
10209#endif // DOCUMENTATION
10210
10211
10213// SgAsmJvmRuntimeAnnotationValue -- MACHINE GENERATED; DO NOT MODIFY --
10215
10216DECLARE_LEAF_CLASS(AsmJvmRuntimeAnnotationValue);
10217IS_SERIALIZABLE(AsmJvmRuntimeAnnotationValue);
10218
10219#ifndef DOCUMENTATION
10220AsmJvmRuntimeAnnotationValue.useSmallHeader(true);
10221#endif // !DOCUMENTATION
10222
10223DECLARE_HEADERS(AsmJvmRuntimeAnnotationValue);
10224#if defined(SgAsmJvmRuntimeAnnotationValue_HEADERS) || defined(DOCUMENTATION)
10229#endif // SgAsmJvmRuntimeAnnotationValue_HEADERS
10230
10231#ifdef DOCUMENTATION
10255#endif // DOCUMENTATION
10256
10257#ifndef DOCUMENTATION
10258 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10259 "uint8_t", "tag", "= 0",
10260 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10261#endif // !DOCUMENTATION
10262
10263#ifndef DOCUMENTATION
10264 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10265 "uint16_t", "const_value_index", "= 0",
10266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10267#endif // !DOCUMENTATION
10268
10269#ifndef DOCUMENTATION
10270 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10271 "uint16_t", "type_name_index", "= 0",
10272 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10273#endif // !DOCUMENTATION
10274
10275#ifndef DOCUMENTATION
10276 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10277 "uint16_t", "const_name_index", "= 0",
10278 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10279#endif // !DOCUMENTATION
10280
10281#ifndef DOCUMENTATION
10282 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10283 "uint16_t", "class_info_index", "= 0",
10284 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10285#endif // !DOCUMENTATION
10286
10287#ifndef DOCUMENTATION
10288 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10289 "bool", "is_annotation_value", "= false",
10290 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10291#endif // !DOCUMENTATION
10292
10293#ifndef DOCUMENTATION
10294 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10295 "SgAsmJvmRuntimeAnnotation*", "annotation_value", "= nullptr",
10296 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10297#endif // !DOCUMENTATION
10298
10299#ifndef DOCUMENTATION
10300 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10301 "std::vector<SgAsmJvmRuntimeAnnotationValue*>", "values", "",
10302 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10303#endif // !DOCUMENTATION
10304
10305 DECLARE_OTHERS(AsmJvmRuntimeAnnotationValue);
10306#if defined(SgAsmJvmRuntimeAnnotationValue_OTHERS) || defined(DOCUMENTATION)
10307
10308 //----------------------- Boost serialization for SgAsmJvmRuntimeAnnotationValue -----------------------
10309#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10310private:
10311 friend class boost::serialization::access;
10312
10313 template<class S>
10314 void serialize(S &s, const unsigned /*version*/) {
10315 debugSerializationBegin("SgAsmJvmRuntimeAnnotationValue");
10316 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10317 s & BOOST_SERIALIZATION_NVP(p_tag);
10318 s & BOOST_SERIALIZATION_NVP(p_const_value_index);
10319 s & BOOST_SERIALIZATION_NVP(p_type_name_index);
10320 s & BOOST_SERIALIZATION_NVP(p_const_name_index);
10321 s & BOOST_SERIALIZATION_NVP(p_class_info_index);
10322 s & BOOST_SERIALIZATION_NVP(p_is_annotation_value);
10323 s & BOOST_SERIALIZATION_NVP(p_annotation_value);
10324 s & BOOST_SERIALIZATION_NVP(p_values);
10325 debugSerializationEnd("SgAsmJvmRuntimeAnnotationValue");
10326 }
10327#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10328public:
10329public:
10336 uint8_t const& get_tag() const;
10337 void set_tag(uint8_t const&);
10340public:
10349 uint16_t const& get_const_value_index() const;
10350 void set_const_value_index(uint16_t const&);
10353public:
10362 uint16_t const& get_type_name_index() const;
10363 void set_type_name_index(uint16_t const&);
10366public:
10374 uint16_t const& get_const_name_index() const;
10375 void set_const_name_index(uint16_t const&);
10378public:
10387 uint16_t const& get_class_info_index() const;
10388 void set_class_info_index(uint16_t const&);
10391public:
10399 bool const& get_is_annotation_value() const;
10400 void set_is_annotation_value(bool const&);
10403public:
10417public:
10424 std::vector<SgAsmJvmRuntimeAnnotationValue*> const& get_values() const;
10425 std::vector<SgAsmJvmRuntimeAnnotationValue*>& get_values();
10427 public:
10432
10437
10442
10445
10447 virtual void unparse(std::ostream&) const override;
10448
10450 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10451public:
10454
10455public:
10458
10459protected:
10467#endif // SgAsmJvmRuntimeAnnotationValue_OTHERS
10468#ifdef DOCUMENTATION
10469};
10470#endif // DOCUMENTATION
10471
10472
10474// SgAsmJvmRuntimeAnnotationPair -- MACHINE GENERATED; DO NOT MODIFY --
10476
10477DECLARE_LEAF_CLASS(AsmJvmRuntimeAnnotationPair);
10478IS_SERIALIZABLE(AsmJvmRuntimeAnnotationPair);
10479
10480#ifndef DOCUMENTATION
10481AsmJvmRuntimeAnnotationPair.useSmallHeader(true);
10482#endif // !DOCUMENTATION
10483
10484#ifdef DOCUMENTATION
10490#endif // DOCUMENTATION
10491
10492#ifndef DOCUMENTATION
10493 AsmJvmRuntimeAnnotationPair.setDataPrototype(
10494 "uint16_t", "element_name_index", "= 0",
10495 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10496#endif // !DOCUMENTATION
10497
10498#ifndef DOCUMENTATION
10499 AsmJvmRuntimeAnnotationPair.setDataPrototype(
10500 "SgAsmJvmRuntimeAnnotationValue*", "value", "= nullptr",
10501 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10502#endif // !DOCUMENTATION
10503
10504 DECLARE_OTHERS(AsmJvmRuntimeAnnotationPair);
10505#if defined(SgAsmJvmRuntimeAnnotationPair_OTHERS) || defined(DOCUMENTATION)
10506
10507 //----------------------- Boost serialization for SgAsmJvmRuntimeAnnotationPair -----------------------
10508#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10509private:
10510 friend class boost::serialization::access;
10511
10512 template<class S>
10513 void serialize(S &s, const unsigned /*version*/) {
10514 debugSerializationBegin("SgAsmJvmRuntimeAnnotationPair");
10515 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10516 s & BOOST_SERIALIZATION_NVP(p_element_name_index);
10517 s & BOOST_SERIALIZATION_NVP(p_value);
10518 debugSerializationEnd("SgAsmJvmRuntimeAnnotationPair");
10519 }
10520#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10521public:
10522public:
10530 uint16_t const& get_element_name_index() const;
10531 void set_element_name_index(uint16_t const&);
10534public:
10544 public:
10549
10552
10554 virtual void unparse(std::ostream&) const override;
10555
10557 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10558public:
10561
10562public:
10565
10566protected:
10574#endif // SgAsmJvmRuntimeAnnotationPair_OTHERS
10575#ifdef DOCUMENTATION
10576};
10577#endif // DOCUMENTATION
10578
10579
10581// SgAsmJvmRuntimeAnnotation -- MACHINE GENERATED; DO NOT MODIFY --
10583
10584DECLARE_LEAF_CLASS(AsmJvmRuntimeAnnotation);
10585IS_SERIALIZABLE(AsmJvmRuntimeAnnotation);
10586
10587#ifndef DOCUMENTATION
10588AsmJvmRuntimeAnnotation.useSmallHeader(true);
10589#endif // !DOCUMENTATION
10590
10591#ifdef DOCUMENTATION
10597#endif // DOCUMENTATION
10598
10599#ifndef DOCUMENTATION
10600 AsmJvmRuntimeAnnotation.setDataPrototype(
10601 "uint16_t", "type_index", "= 0",
10602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10603#endif // !DOCUMENTATION
10604
10605#ifndef DOCUMENTATION
10606 AsmJvmRuntimeAnnotation.setDataPrototype(
10607 "std::vector<SgAsmJvmRuntimeAnnotationPair*>", "element_value_pairs", "",
10608 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10609#endif // !DOCUMENTATION
10610
10611 DECLARE_OTHERS(AsmJvmRuntimeAnnotation);
10612#if defined(SgAsmJvmRuntimeAnnotation_OTHERS) || defined(DOCUMENTATION)
10613
10614 //----------------------- Boost serialization for SgAsmJvmRuntimeAnnotation -----------------------
10615#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10616private:
10617 friend class boost::serialization::access;
10618
10619 template<class S>
10620 void serialize(S &s, const unsigned /*version*/) {
10621 debugSerializationBegin("SgAsmJvmRuntimeAnnotation");
10622 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10623 s & BOOST_SERIALIZATION_NVP(p_type_index);
10624 s & BOOST_SERIALIZATION_NVP(p_element_value_pairs);
10625 debugSerializationEnd("SgAsmJvmRuntimeAnnotation");
10626 }
10627#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10628public:
10629public:
10636 uint16_t const& get_type_index() const;
10637 void set_type_index(uint16_t const&);
10640public:
10647 std::vector<SgAsmJvmRuntimeAnnotationPair*> const& get_element_value_pairs() const;
10648 std::vector<SgAsmJvmRuntimeAnnotationPair*>& get_element_value_pairs();
10650 public:
10655
10660
10665
10670
10673
10675 virtual void unparse(std::ostream&) const override;
10676
10678 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10679public:
10682
10683public:
10686
10687protected:
10695#endif // SgAsmJvmRuntimeAnnotation_OTHERS
10696#ifdef DOCUMENTATION
10697};
10698#endif // DOCUMENTATION
10699
10700
10702// SgAsmJvmModule -- MACHINE GENERATED; DO NOT MODIFY --
10704
10705DECLARE_LEAF_CLASS(AsmJvmModule);
10706IS_SERIALIZABLE(AsmJvmModule);
10707
10708#ifndef DOCUMENTATION
10709AsmJvmModule.useSmallHeader(true);
10710#endif // !DOCUMENTATION
10711
10712DECLARE_HEADERS(AsmJvmModule);
10713#if defined(SgAsmJvmModule_HEADERS) || defined(DOCUMENTATION)
10714#include <sageContainer.h>
10715#endif // SgAsmJvmModule_HEADERS
10716
10717#ifdef DOCUMENTATION
10725#endif // DOCUMENTATION
10726
10727#ifndef DOCUMENTATION
10728 AsmJvmModule.setDataPrototype(
10729 "uint16_t", "module_name_index", "= 0",
10730 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10731#endif // !DOCUMENTATION
10732
10733#ifndef DOCUMENTATION
10734 AsmJvmModule.setDataPrototype(
10735 "uint16_t", "module_flags", "= 0",
10736 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10737#endif // !DOCUMENTATION
10738
10739#ifndef DOCUMENTATION
10740 AsmJvmModule.setDataPrototype(
10741 "uint16_t", "module_version_index", "",
10742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10743#endif // !DOCUMENTATION
10744
10745#ifndef DOCUMENTATION
10746 AsmJvmModule.setDataPrototype(
10747 "std::vector<SgAsmJvmModule::Requires*>", "requires", "",
10748 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10749#endif // !DOCUMENTATION
10750
10751#ifndef DOCUMENTATION
10752 AsmJvmModule.setDataPrototype(
10753 "std::vector<SgAsmJvmModule::Exports*>", "exports", "",
10754 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10755#endif // !DOCUMENTATION
10756
10757#ifndef DOCUMENTATION
10758 AsmJvmModule.setDataPrototype(
10759 "std::vector<SgAsmJvmModule::Opens*>", "opens", "",
10760 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10761#endif // !DOCUMENTATION
10762
10763#ifndef DOCUMENTATION
10764 AsmJvmModule.setDataPrototype(
10765 "std::vector<uint16_t>", "uses_index", "",
10766 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10767#endif // !DOCUMENTATION
10768
10769#ifndef DOCUMENTATION
10770 AsmJvmModule.setDataPrototype(
10771 "std::vector<SgAsmJvmModule::Provides*>", "provides", "",
10772 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10773#endif // !DOCUMENTATION
10774
10775 DECLARE_OTHERS(AsmJvmModule);
10776#if defined(SgAsmJvmModule_OTHERS) || defined(DOCUMENTATION)
10777
10778 //----------------------- Boost serialization for SgAsmJvmModule -----------------------
10779#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10780private:
10781 friend class boost::serialization::access;
10782
10783 template<class S>
10784 void serialize(S &s, const unsigned /*version*/) {
10785 debugSerializationBegin("SgAsmJvmModule");
10786 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10787 s & BOOST_SERIALIZATION_NVP(p_module_name_index);
10788 s & BOOST_SERIALIZATION_NVP(p_module_flags);
10789 s & BOOST_SERIALIZATION_NVP(p_module_version_index);
10790 s & BOOST_SERIALIZATION_NVP(p_requires);
10791 s & BOOST_SERIALIZATION_NVP(p_exports);
10792 s & BOOST_SERIALIZATION_NVP(p_opens);
10793 s & BOOST_SERIALIZATION_NVP(p_uses_index);
10794 s & BOOST_SERIALIZATION_NVP(p_provides);
10795 debugSerializationEnd("SgAsmJvmModule");
10796 }
10797#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10799 // Local types
10801public:
10805 struct Requires {
10806 uint16_t requires_index;
10807 uint16_t requires_flags;
10808 uint16_t requires_version_index;
10809
10810#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10811 template<class S>
10812 void serialize(S &s, const unsigned /*version*/) {
10813 s & BOOST_SERIALIZATION_NVP(requires_index);
10814 s & BOOST_SERIALIZATION_NVP(requires_flags);
10815 s & BOOST_SERIALIZATION_NVP(requires_version_index);
10816 }
10817#endif
10818 };
10819
10823 struct Exports {
10824 uint16_t exports_index;
10825 uint16_t exports_flags;
10826 std::vector<uint16_t> exports_to_index;
10827
10828#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10829 template<class S>
10830 void serialize(S &s, const unsigned /*version*/) {
10831 s & BOOST_SERIALIZATION_NVP(exports_index);
10832 s & BOOST_SERIALIZATION_NVP(exports_flags);
10833 s & BOOST_SERIALIZATION_NVP(exports_to_index);
10834 }
10835#endif
10836 };
10837
10841 struct Opens {
10842 uint16_t opens_index;
10843 uint16_t opens_flags;
10844 std::vector<uint16_t> opens_to_index;
10845
10846#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10847 template<class S>
10848 void serialize(S &s, const unsigned /*version*/) {
10849 s & BOOST_SERIALIZATION_NVP(opens_index);
10850 s & BOOST_SERIALIZATION_NVP(opens_flags);
10851 s & BOOST_SERIALIZATION_NVP(opens_to_index);
10852 }
10853#endif
10854 };
10855
10859 struct Provides {
10860 uint16_t provides_index;
10861 std::vector<uint16_t> provides_with_index;
10862
10863#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10864 template<class S>
10865 void serialize(S &s, const unsigned /*version*/) {
10866 s & BOOST_SERIALIZATION_NVP(provides_index);
10867 s & BOOST_SERIALIZATION_NVP(provides_with_index);
10868 }
10869#endif
10870 };
10871
10873 // Properties
10875public:
10876public:
10884 uint16_t const& get_module_name_index() const;
10885 void set_module_name_index(uint16_t const&);
10888public:
10897 uint16_t const& get_module_flags() const;
10898 void set_module_flags(uint16_t const&);
10901public:
10909 uint16_t const& get_module_version_index() const;
10910 void set_module_version_index(uint16_t const&);
10913public:
10919 std::vector<SgAsmJvmModule::Requires*> const& get_requires() const;
10920 std::vector<SgAsmJvmModule::Requires*>& get_requires();
10921 void set_requires(std::vector<SgAsmJvmModule::Requires*> const&);
10924public:
10932 std::vector<SgAsmJvmModule::Exports*> const& get_exports() const;
10933 std::vector<SgAsmJvmModule::Exports*>& get_exports();
10934 void set_exports(std::vector<SgAsmJvmModule::Exports*> const&);
10937public:
10945 std::vector<SgAsmJvmModule::Opens*> const& get_opens() const;
10946 std::vector<SgAsmJvmModule::Opens*>& get_opens();
10947 void set_opens(std::vector<SgAsmJvmModule::Opens*> const&);
10950public:
10958 std::vector<uint16_t> const& get_uses_index() const;
10959 std::vector<uint16_t>& get_uses_index();
10960 void set_uses_index(std::vector<uint16_t> const&);
10963public:
10969 std::vector<SgAsmJvmModule::Provides*> const& get_provides() const;
10970 std::vector<SgAsmJvmModule::Provides*>& get_provides();
10971 void set_provides(std::vector<SgAsmJvmModule::Provides*> const&);
10973public:
10978
10981
10983 virtual void unparse(std::ostream&) const override;
10984
10986 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10987public:
10990
10991public:
10994
10995protected:
11003#endif // SgAsmJvmModule_OTHERS
11004#ifdef DOCUMENTATION
11005};
11006#endif // DOCUMENTATION
11007
11008
11010// SgAsmJvmMethodTable -- MACHINE GENERATED; DO NOT MODIFY --
11012
11013DECLARE_LEAF_CLASS(AsmJvmMethodTable);
11014IS_SERIALIZABLE(AsmJvmMethodTable);
11015
11016#ifndef DOCUMENTATION
11017AsmJvmMethodTable.useSmallHeader(true);
11018#endif // !DOCUMENTATION
11019
11020#ifdef DOCUMENTATION
11027#endif // DOCUMENTATION
11028
11029#ifndef DOCUMENTATION
11030 AsmJvmMethodTable.setDataPrototype(
11031 "SgAsmJvmMethodPtrList", "methods", "",
11032 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
11033#endif // !DOCUMENTATION
11034
11035 DECLARE_OTHERS(AsmJvmMethodTable);
11036#if defined(SgAsmJvmMethodTable_OTHERS) || defined(DOCUMENTATION)
11037
11038 //----------------------- Boost serialization for SgAsmJvmMethodTable -----------------------
11039#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11040private:
11041 friend class boost::serialization::access;
11042
11043 template<class S>
11044 void serialize(S &s, const unsigned /*version*/) {
11045 debugSerializationBegin("SgAsmJvmMethodTable");
11046 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
11047 s & BOOST_SERIALIZATION_NVP(p_methods);
11048 debugSerializationEnd("SgAsmJvmMethodTable");
11049 }
11050#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11051public:
11052public:
11056 SgAsmJvmMethodPtrList const& get_methods() const;
11057 SgAsmJvmMethodPtrList& get_methods();
11058 void set_methods(SgAsmJvmMethodPtrList const&);
11060public:
11065
11070 virtual SgAsmJvmMethodTable* parse() override;
11071
11073 virtual void unparse(std::ostream&) const override;
11074
11076 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11077public:
11080
11081public:
11084
11085protected:
11093#endif // SgAsmJvmMethodTable_OTHERS
11094#ifdef DOCUMENTATION
11095};
11096#endif // DOCUMENTATION
11097
11098
11100// SgAsmJvmMethodParametersEntry -- MACHINE GENERATED; DO NOT MODIFY --
11102
11103DECLARE_LEAF_CLASS(AsmJvmMethodParametersEntry);
11104IS_SERIALIZABLE(AsmJvmMethodParametersEntry);
11105
11106#ifndef DOCUMENTATION
11107AsmJvmMethodParametersEntry.useSmallHeader(true);
11108#endif // !DOCUMENTATION
11109
11110#ifdef DOCUMENTATION
11116#endif // DOCUMENTATION
11117
11118#ifndef DOCUMENTATION
11119 AsmJvmMethodParametersEntry.setDataPrototype(
11120 "uint16_t", "name_index", "= 0",
11121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11122#endif // !DOCUMENTATION
11123
11124#ifndef DOCUMENTATION
11125 AsmJvmMethodParametersEntry.setDataPrototype(
11126 "uint16_t", "access_flags", "= 0",
11127 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11128#endif // !DOCUMENTATION
11129
11130 DECLARE_OTHERS(AsmJvmMethodParametersEntry);
11131#if defined(SgAsmJvmMethodParametersEntry_OTHERS) || defined(DOCUMENTATION)
11132
11133 //----------------------- Boost serialization for SgAsmJvmMethodParametersEntry -----------------------
11134#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11135private:
11136 friend class boost::serialization::access;
11137
11138 template<class S>
11139 void serialize(S &s, const unsigned /*version*/) {
11140 debugSerializationBegin("SgAsmJvmMethodParametersEntry");
11141 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11142 s & BOOST_SERIALIZATION_NVP(p_name_index);
11143 s & BOOST_SERIALIZATION_NVP(p_access_flags);
11144 debugSerializationEnd("SgAsmJvmMethodParametersEntry");
11145 }
11146#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11147public:
11148public:
11155 uint16_t const& get_name_index() const;
11156 void set_name_index(uint16_t const&);
11159public:
11165 uint16_t const& get_access_flags() const;
11166 void set_access_flags(uint16_t const&);
11168 public:
11173
11176
11178 virtual void unparse(std::ostream&) const override;
11179
11181 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11182public:
11185
11186public:
11189
11190protected:
11198#endif // SgAsmJvmMethodParametersEntry_OTHERS
11199#ifdef DOCUMENTATION
11200};
11201#endif // DOCUMENTATION
11202
11203
11205// SgAsmJvmMethodParameters -- MACHINE GENERATED; DO NOT MODIFY --
11207
11208DECLARE_LEAF_CLASS(AsmJvmMethodParameters);
11209IS_SERIALIZABLE(AsmJvmMethodParameters);
11210
11211#ifndef DOCUMENTATION
11212AsmJvmMethodParameters.useSmallHeader(true);
11213#endif // !DOCUMENTATION
11214
11215DECLARE_HEADERS(AsmJvmMethodParameters);
11216#if defined(SgAsmJvmMethodParameters_HEADERS) || defined(DOCUMENTATION)
11217#include <sageContainer.h>
11218#endif // SgAsmJvmMethodParameters_HEADERS
11219
11220#ifdef DOCUMENTATION
11227#endif // DOCUMENTATION
11228
11229#ifndef DOCUMENTATION
11230 AsmJvmMethodParameters.setDataPrototype(
11231 "SgAsmJvmMethodParametersEntryPtrList", "parameters", "",
11232 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11233#endif // !DOCUMENTATION
11234
11235 DECLARE_OTHERS(AsmJvmMethodParameters);
11236#if defined(SgAsmJvmMethodParameters_OTHERS) || defined(DOCUMENTATION)
11237
11238 //----------------------- Boost serialization for SgAsmJvmMethodParameters -----------------------
11239#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11240private:
11241 friend class boost::serialization::access;
11242
11243 template<class S>
11244 void serialize(S &s, const unsigned /*version*/) {
11245 debugSerializationBegin("SgAsmJvmMethodParameters");
11246 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11247 s & BOOST_SERIALIZATION_NVP(p_parameters);
11248 debugSerializationEnd("SgAsmJvmMethodParameters");
11249 }
11250#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11251public:
11252public:
11258 SgAsmJvmMethodParametersEntryPtrList const& get_parameters() const;
11259 SgAsmJvmMethodParametersEntryPtrList& get_parameters();
11260 void set_parameters(SgAsmJvmMethodParametersEntryPtrList const&);
11262public:
11267
11270
11272 virtual void unparse(std::ostream&) const override;
11273
11275 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11276public:
11279
11280public:
11283
11284protected:
11292#endif // SgAsmJvmMethodParameters_OTHERS
11293#ifdef DOCUMENTATION
11294};
11295#endif // DOCUMENTATION
11296
11297
11299// SgAsmJvmMethod -- MACHINE GENERATED; DO NOT MODIFY --
11301
11302DECLARE_LEAF_CLASS(AsmJvmMethod);
11303IS_SERIALIZABLE(AsmJvmMethod);
11304
11305#ifndef DOCUMENTATION
11306AsmJvmMethod.useSmallHeader(true);
11307#endif // !DOCUMENTATION
11308
11309DECLARE_HEADERS(AsmJvmMethod);
11310#if defined(SgAsmJvmMethod_HEADERS) || defined(DOCUMENTATION)
11311#ifdef ROSE_SgAsmJvmMethod_IMPL
11312#include <SgAsmInstructionList.h>
11313#include <SgAsmJvmAttributeTable.h>
11314#endif
11315#endif // SgAsmJvmMethod_HEADERS
11316
11317#ifdef DOCUMENTATION
11323#endif // DOCUMENTATION
11324
11325#ifndef DOCUMENTATION
11326 AsmJvmMethod.setDataPrototype(
11327 "uint16_t", "access_flags", "= 0",
11328 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11329#endif // !DOCUMENTATION
11330
11331#ifndef DOCUMENTATION
11332 AsmJvmMethod.setDataPrototype(
11333 "uint16_t", "name_index", "= 0",
11334 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11335#endif // !DOCUMENTATION
11336
11337#ifndef DOCUMENTATION
11338 AsmJvmMethod.setDataPrototype(
11339 "uint16_t", "descriptor_index", "= 0",
11340 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11341#endif // !DOCUMENTATION
11342
11343#ifndef DOCUMENTATION
11344 AsmJvmMethod.setDataPrototype(
11345 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
11346 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
11347#endif // !DOCUMENTATION
11348
11349#ifndef DOCUMENTATION
11350 AsmJvmMethod.setDataPrototype(
11351 "SgAsmInstructionList*", "instruction_list", "= createAndParent<SgAsmInstructionList>(this)",
11352 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11353#endif // !DOCUMENTATION
11354
11355 DECLARE_OTHERS(AsmJvmMethod);
11356#if defined(SgAsmJvmMethod_OTHERS) || defined(DOCUMENTATION)
11357
11358 //----------------------- Boost serialization for SgAsmJvmMethod -----------------------
11359#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11360private:
11361 friend class boost::serialization::access;
11362
11363 template<class S>
11364 void serialize(S &s, const unsigned /*version*/) {
11365 debugSerializationBegin("SgAsmJvmMethod");
11366 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11367 s & BOOST_SERIALIZATION_NVP(p_access_flags);
11368 s & BOOST_SERIALIZATION_NVP(p_name_index);
11369 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
11370 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
11371 s & BOOST_SERIALIZATION_NVP(p_instruction_list);
11372 debugSerializationEnd("SgAsmJvmMethod");
11373 }
11374#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11375public:
11376public:
11383 uint16_t const& get_access_flags() const;
11384 void set_access_flags(uint16_t const&);
11387public:
11393 uint16_t const& get_name_index() const;
11394 void set_name_index(uint16_t const&);
11397public:
11403 uint16_t const& get_descriptor_index() const;
11404 void set_descriptor_index(uint16_t const&);
11407public:
11415public:
11424public:
11429
11432
11434 virtual void unparse(std::ostream&) const override;
11435
11437 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11438public:
11441
11442public:
11445
11446protected:
11454#endif // SgAsmJvmMethod_OTHERS
11455#ifdef DOCUMENTATION
11456};
11457#endif // DOCUMENTATION
11458
11459
11461// SgAsmJvmLocalVariableTypeTable -- MACHINE GENERATED; DO NOT MODIFY --
11463
11464DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeTable);
11465IS_SERIALIZABLE(AsmJvmLocalVariableTypeTable);
11466
11467#ifndef DOCUMENTATION
11468AsmJvmLocalVariableTypeTable.useSmallHeader(true);
11469#endif // !DOCUMENTATION
11470
11471DECLARE_HEADERS(AsmJvmLocalVariableTypeTable);
11472#if defined(SgAsmJvmLocalVariableTypeTable_HEADERS) || defined(DOCUMENTATION)
11473#include <sageContainer.h>
11474#endif // SgAsmJvmLocalVariableTypeTable_HEADERS
11475
11476#ifdef DOCUMENTATION
11483#endif // DOCUMENTATION
11484
11485#ifndef DOCUMENTATION
11486 AsmJvmLocalVariableTypeTable.setDataPrototype(
11487 "SgAsmJvmLocalVariableTypeEntryPtrList", "local_variable_type_table", "",
11488 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11489#endif // !DOCUMENTATION
11490
11491 DECLARE_OTHERS(AsmJvmLocalVariableTypeTable);
11492#if defined(SgAsmJvmLocalVariableTypeTable_OTHERS) || defined(DOCUMENTATION)
11493
11494 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeTable -----------------------
11495#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11496private:
11497 friend class boost::serialization::access;
11498
11499 template<class S>
11500 void serialize(S &s, const unsigned /*version*/) {
11501 debugSerializationBegin("SgAsmJvmLocalVariableTypeTable");
11502 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11503 s & BOOST_SERIALIZATION_NVP(p_local_variable_type_table);
11504 debugSerializationEnd("SgAsmJvmLocalVariableTypeTable");
11505 }
11506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11507public:
11508public:
11514 SgAsmJvmLocalVariableTypeEntryPtrList const& get_local_variable_type_table() const;
11515 SgAsmJvmLocalVariableTypeEntryPtrList& get_local_variable_type_table();
11516 void set_local_variable_type_table(SgAsmJvmLocalVariableTypeEntryPtrList const&);
11518public:
11523
11526
11528 virtual void unparse(std::ostream&) const override;
11529
11531 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11532public:
11535
11536public:
11539
11540protected:
11548#endif // SgAsmJvmLocalVariableTypeTable_OTHERS
11549#ifdef DOCUMENTATION
11550};
11551#endif // DOCUMENTATION
11552
11553
11555// SgAsmJvmLocalVariableTypeEntry -- MACHINE GENERATED; DO NOT MODIFY --
11557
11558DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeEntry);
11559IS_SERIALIZABLE(AsmJvmLocalVariableTypeEntry);
11560
11561#ifndef DOCUMENTATION
11562AsmJvmLocalVariableTypeEntry.useSmallHeader(true);
11563#endif // !DOCUMENTATION
11564
11565#ifdef DOCUMENTATION
11570#endif // DOCUMENTATION
11571
11572#ifndef DOCUMENTATION
11573 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11574 "uint16_t", "start_pc", "= 0",
11575 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11576#endif // !DOCUMENTATION
11577
11578#ifndef DOCUMENTATION
11579 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11580 "uint16_t", "length", "= 0",
11581 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11582#endif // !DOCUMENTATION
11583
11584#ifndef DOCUMENTATION
11585 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11586 "uint16_t", "name_index", "= 0",
11587 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11588#endif // !DOCUMENTATION
11589
11590#ifndef DOCUMENTATION
11591 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11592 "uint16_t", "signature_index", "= 0",
11593 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11594#endif // !DOCUMENTATION
11595
11596#ifndef DOCUMENTATION
11597 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11598 "uint16_t", "index", "= 0",
11599 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11600#endif // !DOCUMENTATION
11601
11602 DECLARE_OTHERS(AsmJvmLocalVariableTypeEntry);
11603#if defined(SgAsmJvmLocalVariableTypeEntry_OTHERS) || defined(DOCUMENTATION)
11604
11605 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeEntry -----------------------
11606#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11607private:
11608 friend class boost::serialization::access;
11609
11610 template<class S>
11611 void serialize(S &s, const unsigned /*version*/) {
11612 debugSerializationBegin("SgAsmJvmLocalVariableTypeEntry");
11613 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11614 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11615 s & BOOST_SERIALIZATION_NVP(p_length);
11616 s & BOOST_SERIALIZATION_NVP(p_name_index);
11617 s & BOOST_SERIALIZATION_NVP(p_signature_index);
11618 s & BOOST_SERIALIZATION_NVP(p_index);
11619 debugSerializationEnd("SgAsmJvmLocalVariableTypeEntry");
11620 }
11621#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11622public:
11623public:
11630 uint16_t const& get_start_pc() const;
11631 void set_start_pc(uint16_t const&);
11634public:
11642 uint16_t const& get_length() const;
11643 void set_length(uint16_t const&);
11646public:
11654 uint16_t const& get_name_index() const;
11655 void set_name_index(uint16_t const&);
11658public:
11666 uint16_t const& get_signature_index() const;
11667 void set_signature_index(uint16_t const&);
11670public:
11677 uint16_t const& get_index() const;
11678 void set_index(uint16_t const&);
11680 public:
11685
11688
11690 virtual void unparse(std::ostream&) const override;
11691
11693 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11694public:
11697
11698public:
11701
11702protected:
11710#endif // SgAsmJvmLocalVariableTypeEntry_OTHERS
11711#ifdef DOCUMENTATION
11712};
11713#endif // DOCUMENTATION
11714
11715
11717// SgAsmJvmLocalVariableTable -- MACHINE GENERATED; DO NOT MODIFY --
11719
11720DECLARE_LEAF_CLASS(AsmJvmLocalVariableTable);
11721IS_SERIALIZABLE(AsmJvmLocalVariableTable);
11722
11723#ifndef DOCUMENTATION
11724AsmJvmLocalVariableTable.useSmallHeader(true);
11725#endif // !DOCUMENTATION
11726
11727DECLARE_HEADERS(AsmJvmLocalVariableTable);
11728#if defined(SgAsmJvmLocalVariableTable_HEADERS) || defined(DOCUMENTATION)
11729#include <sageContainer.h>
11730#endif // SgAsmJvmLocalVariableTable_HEADERS
11731
11732#ifdef DOCUMENTATION
11739#endif // DOCUMENTATION
11740
11741#ifndef DOCUMENTATION
11742 AsmJvmLocalVariableTable.setDataPrototype(
11743 "SgAsmJvmLocalVariableEntryPtrList", "local_variable_table", "",
11744 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11745#endif // !DOCUMENTATION
11746
11747 DECLARE_OTHERS(AsmJvmLocalVariableTable);
11748#if defined(SgAsmJvmLocalVariableTable_OTHERS) || defined(DOCUMENTATION)
11749
11750 //----------------------- Boost serialization for SgAsmJvmLocalVariableTable -----------------------
11751#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11752private:
11753 friend class boost::serialization::access;
11754
11755 template<class S>
11756 void serialize(S &s, const unsigned /*version*/) {
11757 debugSerializationBegin("SgAsmJvmLocalVariableTable");
11758 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11759 s & BOOST_SERIALIZATION_NVP(p_local_variable_table);
11760 debugSerializationEnd("SgAsmJvmLocalVariableTable");
11761 }
11762#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11763public:
11764public:
11770 SgAsmJvmLocalVariableEntryPtrList const& get_local_variable_table() const;
11771 SgAsmJvmLocalVariableEntryPtrList& get_local_variable_table();
11772 void set_local_variable_table(SgAsmJvmLocalVariableEntryPtrList const&);
11774public:
11779
11782
11784 virtual void unparse(std::ostream&) const override;
11785
11787 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11788public:
11791
11792public:
11795
11796protected:
11804#endif // SgAsmJvmLocalVariableTable_OTHERS
11805#ifdef DOCUMENTATION
11806};
11807#endif // DOCUMENTATION
11808
11809
11811// SgAsmJvmLocalVariableEntry -- MACHINE GENERATED; DO NOT MODIFY --
11813
11814DECLARE_LEAF_CLASS(AsmJvmLocalVariableEntry);
11815IS_SERIALIZABLE(AsmJvmLocalVariableEntry);
11816
11817#ifndef DOCUMENTATION
11818AsmJvmLocalVariableEntry.useSmallHeader(true);
11819#endif // !DOCUMENTATION
11820
11821#ifdef DOCUMENTATION
11826#endif // DOCUMENTATION
11827
11828#ifndef DOCUMENTATION
11829 AsmJvmLocalVariableEntry.setDataPrototype(
11830 "uint16_t", "start_pc", "= 0",
11831 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11832#endif // !DOCUMENTATION
11833
11834#ifndef DOCUMENTATION
11835 AsmJvmLocalVariableEntry.setDataPrototype(
11836 "uint16_t", "length", "= 0",
11837 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11838#endif // !DOCUMENTATION
11839
11840#ifndef DOCUMENTATION
11841 AsmJvmLocalVariableEntry.setDataPrototype(
11842 "uint16_t", "name_index", "= 0",
11843 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11844#endif // !DOCUMENTATION
11845
11846#ifndef DOCUMENTATION
11847 AsmJvmLocalVariableEntry.setDataPrototype(
11848 "uint16_t", "descriptor_index", "= 0",
11849 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11850#endif // !DOCUMENTATION
11851
11852#ifndef DOCUMENTATION
11853 AsmJvmLocalVariableEntry.setDataPrototype(
11854 "uint16_t", "index", "= 0",
11855 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11856#endif // !DOCUMENTATION
11857
11858 DECLARE_OTHERS(AsmJvmLocalVariableEntry);
11859#if defined(SgAsmJvmLocalVariableEntry_OTHERS) || defined(DOCUMENTATION)
11860
11861 //----------------------- Boost serialization for SgAsmJvmLocalVariableEntry -----------------------
11862#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11863private:
11864 friend class boost::serialization::access;
11865
11866 template<class S>
11867 void serialize(S &s, const unsigned /*version*/) {
11868 debugSerializationBegin("SgAsmJvmLocalVariableEntry");
11869 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11870 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11871 s & BOOST_SERIALIZATION_NVP(p_length);
11872 s & BOOST_SERIALIZATION_NVP(p_name_index);
11873 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
11874 s & BOOST_SERIALIZATION_NVP(p_index);
11875 debugSerializationEnd("SgAsmJvmLocalVariableEntry");
11876 }
11877#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11878public:
11879public:
11886 uint16_t const& get_start_pc() const;
11887 void set_start_pc(uint16_t const&);
11890public:
11898 uint16_t const& get_length() const;
11899 void set_length(uint16_t const&);
11902public:
11910 uint16_t const& get_name_index() const;
11911 void set_name_index(uint16_t const&);
11914public:
11922 uint16_t const& get_descriptor_index() const;
11923 void set_descriptor_index(uint16_t const&);
11926public:
11933 uint16_t const& get_index() const;
11934 void set_index(uint16_t const&);
11936 public:
11941
11944
11946 virtual void unparse(std::ostream&) const override;
11947
11949 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11950public:
11953
11954public:
11957
11958protected:
11966#endif // SgAsmJvmLocalVariableEntry_OTHERS
11967#ifdef DOCUMENTATION
11968};
11969#endif // DOCUMENTATION
11970
11971
11973// SgAsmJvmLineNumberTable -- MACHINE GENERATED; DO NOT MODIFY --
11975
11976DECLARE_LEAF_CLASS(AsmJvmLineNumberTable);
11977IS_SERIALIZABLE(AsmJvmLineNumberTable);
11978
11979#ifndef DOCUMENTATION
11980AsmJvmLineNumberTable.useSmallHeader(true);
11981#endif // !DOCUMENTATION
11982
11983DECLARE_HEADERS(AsmJvmLineNumberTable);
11984#if defined(SgAsmJvmLineNumberTable_HEADERS) || defined(DOCUMENTATION)
11985#include <sageContainer.h>
11986#endif // SgAsmJvmLineNumberTable_HEADERS
11987
11988#ifdef DOCUMENTATION
11995#endif // DOCUMENTATION
11996
11997#ifndef DOCUMENTATION
11998 AsmJvmLineNumberTable.setDataPrototype(
11999 "std::vector<SgAsmJvmLineNumberTable::Entry*>", "line_number_table", "",
12000 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12001#endif // !DOCUMENTATION
12002
12003 DECLARE_OTHERS(AsmJvmLineNumberTable);
12004#if defined(SgAsmJvmLineNumberTable_OTHERS) || defined(DOCUMENTATION)
12005
12006 //----------------------- Boost serialization for SgAsmJvmLineNumberTable -----------------------
12007#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12008private:
12009 friend class boost::serialization::access;
12010
12011 template<class S>
12012 void serialize(S &s, const unsigned /*version*/) {
12013 debugSerializationBegin("SgAsmJvmLineNumberTable");
12014 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12015 s & BOOST_SERIALIZATION_NVP(p_line_number_table);
12016 debugSerializationEnd("SgAsmJvmLineNumberTable");
12017 }
12018#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12020 // Local types
12022public:
12027 struct Entry {
12028 uint16_t start_pc = 0;
12029 uint16_t line_number = 0;
12030
12031#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12032 template<class S>
12033 void serialize(S &s, const unsigned /*version*/) {
12034 s & BOOST_SERIALIZATION_NVP(start_pc);
12035 s & BOOST_SERIALIZATION_NVP(line_number);
12036 }
12037#endif
12038 };
12039
12041 // Properties
12043public:
12044public:
12050 std::vector<SgAsmJvmLineNumberTable::Entry*> const& get_line_number_table() const;
12051 std::vector<SgAsmJvmLineNumberTable::Entry*>& get_line_number_table();
12057
12060
12062 virtual void unparse(std::ostream&) const override;
12063
12065 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12066public:
12069
12070public:
12073
12074protected:
12082#endif // SgAsmJvmLineNumberTable_OTHERS
12083#ifdef DOCUMENTATION
12084};
12085#endif // DOCUMENTATION
12086
12087
12089// SgAsmJvmInstruction -- MACHINE GENERATED; DO NOT MODIFY --
12091
12092DECLARE_LEAF_CLASS(AsmJvmInstruction);
12093IS_SERIALIZABLE(AsmJvmInstruction);
12094
12095#ifndef DOCUMENTATION
12096AsmJvmInstruction.useSmallHeader(true);
12097#endif // !DOCUMENTATION
12098
12099DECLARE_HEADERS(AsmJvmInstruction);
12100#if defined(SgAsmJvmInstruction_HEADERS) || defined(DOCUMENTATION)
12101#include <Rose/BinaryAnalysis/InstructionEnumsJvm.h>
12102#endif // SgAsmJvmInstruction_HEADERS
12103
12104#ifdef DOCUMENTATION
12107#endif // DOCUMENTATION
12108
12109#ifndef DOCUMENTATION
12110 AsmJvmInstruction.setDataPrototype(
12111 "Rose::BinaryAnalysis::JvmInstructionKind", "kind", "= Rose::BinaryAnalysis::JvmInstructionKind::unknown",
12112 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12113#endif // !DOCUMENTATION
12114
12115 DECLARE_OTHERS(AsmJvmInstruction);
12116#if defined(SgAsmJvmInstruction_OTHERS) || defined(DOCUMENTATION)
12117
12118 //----------------------- Boost serialization for SgAsmJvmInstruction -----------------------
12119#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12120private:
12121 friend class boost::serialization::access;
12122
12123 template<class S>
12124 void serialize(S &s, const unsigned /*version*/) {
12125 debugSerializationBegin("SgAsmJvmInstruction");
12126 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
12127 s & BOOST_SERIALIZATION_NVP(p_kind);
12128 debugSerializationEnd("SgAsmJvmInstruction");
12129 }
12130#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12131public:
12132public:
12139 Rose::BinaryAnalysis::JvmInstructionKind const& get_kind() const;
12140 void set_kind(Rose::BinaryAnalysis::JvmInstructionKind const&);
12142public:
12143 // Overrides are documented in the base class
12144 virtual unsigned get_anyKind() const override;
12145public:
12148
12149public:
12152
12153public:
12156 uint8_t const& architectureId,
12157 Rose::BinaryAnalysis::JvmInstructionKind const& kind);
12158
12159protected:
12167#endif // SgAsmJvmInstruction_OTHERS
12168#ifdef DOCUMENTATION
12169};
12170#endif // DOCUMENTATION
12171
12172
12174// SgAsmJvmInnerClasses -- MACHINE GENERATED; DO NOT MODIFY --
12176
12177DECLARE_LEAF_CLASS(AsmJvmInnerClasses);
12178IS_SERIALIZABLE(AsmJvmInnerClasses);
12179
12180#ifndef DOCUMENTATION
12181AsmJvmInnerClasses.useSmallHeader(true);
12182#endif // !DOCUMENTATION
12183
12184DECLARE_HEADERS(AsmJvmInnerClasses);
12185#if defined(SgAsmJvmInnerClasses_HEADERS) || defined(DOCUMENTATION)
12186#include <sageContainer.h>
12187#endif // SgAsmJvmInnerClasses_HEADERS
12188
12189#ifdef DOCUMENTATION
12196#endif // DOCUMENTATION
12197
12198#ifndef DOCUMENTATION
12199 AsmJvmInnerClasses.setDataPrototype(
12200 "std::vector<SgAsmJvmInnerClasses::Entry*>", "classes", "",
12201 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12202#endif // !DOCUMENTATION
12203
12204 DECLARE_OTHERS(AsmJvmInnerClasses);
12205#if defined(SgAsmJvmInnerClasses_OTHERS) || defined(DOCUMENTATION)
12206
12207 //----------------------- Boost serialization for SgAsmJvmInnerClasses -----------------------
12208#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12209private:
12210 friend class boost::serialization::access;
12211
12212 template<class S>
12213 void serialize(S &s, const unsigned /*version*/) {
12214 debugSerializationBegin("SgAsmJvmInnerClasses");
12215 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12216 s & BOOST_SERIALIZATION_NVP(p_classes);
12217 debugSerializationEnd("SgAsmJvmInnerClasses");
12218 }
12219#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12221 // Local types
12223public:
12229 struct Entry {
12230 uint16_t inner_class_info_index = 0;
12231 uint16_t outer_class_info_index = 0;
12232 uint16_t inner_name_index = 0;
12233 uint16_t inner_class_access_flags = 0;
12234
12235#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12236 template<class S>
12237 void serialize(S &s, const unsigned /*version*/) {
12238 s & BOOST_SERIALIZATION_NVP(inner_class_info_index);
12239 s & BOOST_SERIALIZATION_NVP(outer_class_info_index);
12240 s & BOOST_SERIALIZATION_NVP(inner_name_index);
12241 s & BOOST_SERIALIZATION_NVP(inner_class_access_flags);
12242 }
12243#endif
12244 };
12245
12247 // Properties
12249public:
12250public:
12254 std::vector<SgAsmJvmInnerClasses::Entry*> const& get_classes() const;
12255 std::vector<SgAsmJvmInnerClasses::Entry*>& get_classes();
12261
12267
12269 virtual void unparse(std::ostream&) const override;
12270
12272 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12273public:
12276
12277public:
12280
12281protected:
12289#endif // SgAsmJvmInnerClasses_OTHERS
12290#ifdef DOCUMENTATION
12291};
12292#endif // DOCUMENTATION
12293
12294
12296// SgAsmJvmIndexTableAttr -- MACHINE GENERATED; DO NOT MODIFY --
12298
12299DECLARE_LEAF_CLASS(AsmJvmIndexTableAttr);
12300IS_SERIALIZABLE(AsmJvmIndexTableAttr);
12301
12302#ifndef DOCUMENTATION
12303AsmJvmIndexTableAttr.useSmallHeader(true);
12304#endif // !DOCUMENTATION
12305
12306DECLARE_HEADERS(AsmJvmIndexTableAttr);
12307#if defined(SgAsmJvmIndexTableAttr_HEADERS) || defined(DOCUMENTATION)
12308#include <sageContainer.h>
12309#endif // SgAsmJvmIndexTableAttr_HEADERS
12310
12311#ifdef DOCUMENTATION
12345#endif // DOCUMENTATION
12346
12347#ifndef DOCUMENTATION
12348 AsmJvmIndexTableAttr.setDataPrototype(
12349 "unsigned", "attribute_type", "= SgAsmJvmIndexTableAttr::ATTR_NONE",
12350 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12351#endif // !DOCUMENTATION
12352
12353#ifndef DOCUMENTATION
12354 AsmJvmIndexTableAttr.setDataPrototype(
12355 "std::vector<uint16_t>", "table", "",
12356 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12357#endif // !DOCUMENTATION
12358
12359 DECLARE_OTHERS(AsmJvmIndexTableAttr);
12360#if defined(SgAsmJvmIndexTableAttr_OTHERS) || defined(DOCUMENTATION)
12361
12362 //----------------------- Boost serialization for SgAsmJvmIndexTableAttr -----------------------
12363#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12364private:
12365 friend class boost::serialization::access;
12366
12367 template<class S>
12368 void serialize(S &s, const unsigned /*version*/) {
12369 debugSerializationBegin("SgAsmJvmIndexTableAttr");
12370 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12371 s & BOOST_SERIALIZATION_NVP(p_attribute_type);
12372 s & BOOST_SERIALIZATION_NVP(p_table);
12373 debugSerializationEnd("SgAsmJvmIndexTableAttr");
12374 }
12375#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12377 // Local types
12379public:
12384 ATTR_NONE,
12385 ATTR_Exceptions, // 4.7.5
12386 ATTR_ModulePackages, // 4.7.26
12387 ATTR_NestMembers , // 4.7.29
12388 ATTR_PermittedSubclasses // 4.7.31
12389 };
12390
12392 // Properties
12394public:
12395public:
12401 unsigned const& get_attribute_type() const;
12402 void set_attribute_type(unsigned const&);
12405public:
12411 std::vector<uint16_t> const& get_table() const;
12412 std::vector<uint16_t>& get_table();
12414 public:
12419
12422
12424 virtual void unparse(std::ostream&) const override;
12425
12427 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12428public:
12431
12432public:
12435
12436protected:
12444#endif // SgAsmJvmIndexTableAttr_OTHERS
12445#ifdef DOCUMENTATION
12446};
12447#endif // DOCUMENTATION
12448
12449
12451// SgAsmJvmIndexedAttr -- MACHINE GENERATED; DO NOT MODIFY --
12453
12454DECLARE_LEAF_CLASS(AsmJvmIndexedAttr);
12455IS_SERIALIZABLE(AsmJvmIndexedAttr);
12456
12457#ifndef DOCUMENTATION
12458AsmJvmIndexedAttr.useSmallHeader(true);
12459#endif // !DOCUMENTATION
12460
12461DECLARE_HEADERS(AsmJvmIndexedAttr);
12462#if defined(SgAsmJvmIndexedAttr_HEADERS) || defined(DOCUMENTATION)
12463#include <sageContainer.h>
12464#endif // SgAsmJvmIndexedAttr_HEADERS
12465
12466#ifdef DOCUMENTATION
12495#endif // DOCUMENTATION
12496
12497#ifndef DOCUMENTATION
12498 AsmJvmIndexedAttr.setDataPrototype(
12499 "unsigned", "attribute_type", "= SgAsmJvmIndexedAttr::ATTR_NONE",
12500 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12501#endif // !DOCUMENTATION
12502
12503#ifndef DOCUMENTATION
12504 AsmJvmIndexedAttr.setDataPrototype(
12505 "uint16_t", "index", "",
12506 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12507#endif // !DOCUMENTATION
12508
12509 DECLARE_OTHERS(AsmJvmIndexedAttr);
12510#if defined(SgAsmJvmIndexedAttr_OTHERS) || defined(DOCUMENTATION)
12511
12512 //----------------------- Boost serialization for SgAsmJvmIndexedAttr -----------------------
12513#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12514private:
12515 friend class boost::serialization::access;
12516
12517 template<class S>
12518 void serialize(S &s, const unsigned /*version*/) {
12519 debugSerializationBegin("SgAsmJvmIndexedAttr");
12520 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12521 s & BOOST_SERIALIZATION_NVP(p_attribute_type);
12522 s & BOOST_SERIALIZATION_NVP(p_index);
12523 debugSerializationEnd("SgAsmJvmIndexedAttr");
12524 }
12525#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12527 // Local types
12529public:
12534 ATTR_NONE,
12535 ATTR_ConstantValue, // 4.7.2
12536 ATTR_Synthetic, // 4.7.8
12537 ATTR_Signature, // 4.7.9
12538 ATTR_SourceFile, // 4.7.10
12539 ATTR_Deprecated, // 4.7.15
12540 ATTR_ModuleMainClass, // 4.7.27
12541 ATTR_NestHost // 4.7.28
12542 };
12543
12545 // Properties
12547public:
12548public:
12554 unsigned const& get_attribute_type() const;
12555 void set_attribute_type(unsigned const&);
12558public:
12564 uint16_t const& get_index() const;
12565 void set_index(uint16_t const&);
12567 public:
12572
12575
12577 virtual void unparse(std::ostream&) const override;
12578
12580 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12581public:
12584
12585public:
12588
12589protected:
12597#endif // SgAsmJvmIndexedAttr_OTHERS
12598#ifdef DOCUMENTATION
12599};
12600#endif // DOCUMENTATION
12601
12602
12604// SgAsmJvmFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
12606
12607DECLARE_LEAF_CLASS(AsmJvmFileHeader);
12608IS_SERIALIZABLE(AsmJvmFileHeader);
12609
12610#ifndef DOCUMENTATION
12611AsmJvmFileHeader.useSmallHeader(true);
12612#endif // !DOCUMENTATION
12613
12614#ifdef DOCUMENTATION
12622#endif // DOCUMENTATION
12623
12624#ifndef DOCUMENTATION
12625 AsmJvmFileHeader.setDataPrototype(
12626 "uint16_t", "minor_version", "= 0",
12627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12628#endif // !DOCUMENTATION
12629
12630#ifndef DOCUMENTATION
12631 AsmJvmFileHeader.setDataPrototype(
12632 "uint16_t", "major_version", "= 0",
12633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12634#endif // !DOCUMENTATION
12635
12636#ifndef DOCUMENTATION
12637 AsmJvmFileHeader.setDataPrototype(
12638 "uint16_t", "access_flags", "= 0",
12639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12640#endif // !DOCUMENTATION
12641
12642#ifndef DOCUMENTATION
12643 AsmJvmFileHeader.setDataPrototype(
12644 "uint16_t", "this_class", "= 0",
12645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12646#endif // !DOCUMENTATION
12647
12648#ifndef DOCUMENTATION
12649 AsmJvmFileHeader.setDataPrototype(
12650 "uint16_t", "super_class", "= 0",
12651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12652#endif // !DOCUMENTATION
12653
12654#ifndef DOCUMENTATION
12655 AsmJvmFileHeader.setDataPrototype(
12656 "SgAsmJvmConstantPool*", "constant_pool", "= nullptr",
12657 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12658#endif // !DOCUMENTATION
12659
12660#ifndef DOCUMENTATION
12661 AsmJvmFileHeader.setDataPrototype(
12662 "std::list<uint16_t>", "interfaces", "",
12663 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12664#endif // !DOCUMENTATION
12665
12666#ifndef DOCUMENTATION
12667 AsmJvmFileHeader.setDataPrototype(
12668 "SgAsmJvmFieldTable*", "field_table", "= nullptr",
12669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12670#endif // !DOCUMENTATION
12671
12672#ifndef DOCUMENTATION
12673 AsmJvmFileHeader.setDataPrototype(
12674 "SgAsmJvmMethodTable*", "method_table", "= nullptr",
12675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12676#endif // !DOCUMENTATION
12677
12678#ifndef DOCUMENTATION
12679 AsmJvmFileHeader.setDataPrototype(
12680 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
12681 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12682#endif // !DOCUMENTATION
12683
12684 DECLARE_OTHERS(AsmJvmFileHeader);
12685#if defined(SgAsmJvmFileHeader_OTHERS) || defined(DOCUMENTATION)
12686
12687 //----------------------- Boost serialization for SgAsmJvmFileHeader -----------------------
12688#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12689private:
12690 friend class boost::serialization::access;
12691
12692 template<class S>
12693 void serialize(S &s, const unsigned /*version*/) {
12694 debugSerializationBegin("SgAsmJvmFileHeader");
12695 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
12696 s & BOOST_SERIALIZATION_NVP(p_minor_version);
12697 s & BOOST_SERIALIZATION_NVP(p_major_version);
12698 s & BOOST_SERIALIZATION_NVP(p_access_flags);
12699 s & BOOST_SERIALIZATION_NVP(p_this_class);
12700 s & BOOST_SERIALIZATION_NVP(p_super_class);
12701 s & BOOST_SERIALIZATION_NVP(p_constant_pool);
12702 s & BOOST_SERIALIZATION_NVP(p_interfaces);
12703 s & BOOST_SERIALIZATION_NVP(p_field_table);
12704 s & BOOST_SERIALIZATION_NVP(p_method_table);
12705 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
12706 debugSerializationEnd("SgAsmJvmFileHeader");
12707 }
12708#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12709public:
12710public:
12716 uint16_t const& get_minor_version() const;
12717 void set_minor_version(uint16_t const&);
12720public:
12726 uint16_t const& get_major_version() const;
12727 void set_major_version(uint16_t const&);
12730public:
12736 uint16_t const& get_access_flags() const;
12737 void set_access_flags(uint16_t const&);
12740public:
12746 uint16_t const& get_this_class() const;
12747 void set_this_class(uint16_t const&);
12750public:
12756 uint16_t const& get_super_class() const;
12757 void set_super_class(uint16_t const&);
12760public:
12773public:
12781 std::list<uint16_t> const& get_interfaces() const;
12782 std::list<uint16_t>& get_interfaces();
12783 void set_interfaces(std::list<uint16_t> const&);
12786public:
12799public:
12812public:
12824public:
12827
12833 virtual SgAsmJvmFileHeader* parse() override;
12834
12836 virtual void unparse(std::ostream&) const override;
12837
12840
12841protected:
12842 // Some extra clean-up actions on destruction
12843 virtual void destructorHelper() override;
12844public:
12847
12848public:
12851
12852protected:
12860#endif // SgAsmJvmFileHeader_OTHERS
12861#ifdef DOCUMENTATION
12862};
12863#endif // DOCUMENTATION
12864
12865
12867// SgAsmJvmFieldTable -- MACHINE GENERATED; DO NOT MODIFY --
12869
12870DECLARE_LEAF_CLASS(AsmJvmFieldTable);
12871IS_SERIALIZABLE(AsmJvmFieldTable);
12872
12873#ifndef DOCUMENTATION
12874AsmJvmFieldTable.useSmallHeader(true);
12875#endif // !DOCUMENTATION
12876
12877#ifdef DOCUMENTATION
12884#endif // DOCUMENTATION
12885
12886#ifndef DOCUMENTATION
12887 AsmJvmFieldTable.setDataPrototype(
12888 "SgAsmJvmFieldPtrList", "fields", "",
12889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
12890#endif // !DOCUMENTATION
12891
12892 DECLARE_OTHERS(AsmJvmFieldTable);
12893#if defined(SgAsmJvmFieldTable_OTHERS) || defined(DOCUMENTATION)
12894
12895 //----------------------- Boost serialization for SgAsmJvmFieldTable -----------------------
12896#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12897private:
12898 friend class boost::serialization::access;
12899
12900 template<class S>
12901 void serialize(S &s, const unsigned /*version*/) {
12902 debugSerializationBegin("SgAsmJvmFieldTable");
12903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
12904 s & BOOST_SERIALIZATION_NVP(p_fields);
12905 debugSerializationEnd("SgAsmJvmFieldTable");
12906 }
12907#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12908public:
12909public:
12913 SgAsmJvmFieldPtrList const& get_fields() const;
12914 SgAsmJvmFieldPtrList& get_fields();
12915 void set_fields(SgAsmJvmFieldPtrList const&);
12917public:
12922
12926 virtual SgAsmJvmFieldTable* parse() override;
12927
12929 virtual void unparse(std::ostream&) const override;
12930
12932 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12933public:
12936
12937public:
12940
12941protected:
12949#endif // SgAsmJvmFieldTable_OTHERS
12950#ifdef DOCUMENTATION
12951};
12952#endif // DOCUMENTATION
12953
12954
12956// SgAsmJvmField -- MACHINE GENERATED; DO NOT MODIFY --
12958
12959DECLARE_LEAF_CLASS(AsmJvmField);
12960IS_SERIALIZABLE(AsmJvmField);
12961
12962#ifndef DOCUMENTATION
12963AsmJvmField.useSmallHeader(true);
12964#endif // !DOCUMENTATION
12965
12966DECLARE_HEADERS(AsmJvmField);
12967#if defined(SgAsmJvmField_HEADERS) || defined(DOCUMENTATION)
12968#ifdef ROSE_SgAsmJvmField_IMPL
12969#include <SgAsmJvmAttributeTable.h>
12970#endif
12971#endif // SgAsmJvmField_HEADERS
12972
12973#ifdef DOCUMENTATION
12978#endif // DOCUMENTATION
12979
12980#ifndef DOCUMENTATION
12981 AsmJvmField.setDataPrototype(
12982 "uint16_t", "access_flags", "= 0",
12983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12984#endif // !DOCUMENTATION
12985
12986#ifndef DOCUMENTATION
12987 AsmJvmField.setDataPrototype(
12988 "uint16_t", "name_index", "= 0",
12989 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12990#endif // !DOCUMENTATION
12991
12992#ifndef DOCUMENTATION
12993 AsmJvmField.setDataPrototype(
12994 "uint16_t", "descriptor_index", "= 0",
12995 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12996#endif // !DOCUMENTATION
12997
12998#ifndef DOCUMENTATION
12999 AsmJvmField.setDataPrototype(
13000 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
13001 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
13002#endif // !DOCUMENTATION
13003
13004 DECLARE_OTHERS(AsmJvmField);
13005#if defined(SgAsmJvmField_OTHERS) || defined(DOCUMENTATION)
13006
13007 //----------------------- Boost serialization for SgAsmJvmField -----------------------
13008#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13009private:
13010 friend class boost::serialization::access;
13011
13012 template<class S>
13013 void serialize(S &s, const unsigned /*version*/) {
13014 debugSerializationBegin("SgAsmJvmField");
13015 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13016 s & BOOST_SERIALIZATION_NVP(p_access_flags);
13017 s & BOOST_SERIALIZATION_NVP(p_name_index);
13018 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
13019 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
13020 debugSerializationEnd("SgAsmJvmField");
13021 }
13022#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13023public:
13024public:
13031 uint16_t const& get_access_flags() const;
13032 void set_access_flags(uint16_t const&);
13035public:
13041 uint16_t const& get_name_index() const;
13042 void set_name_index(uint16_t const&);
13045public:
13051 uint16_t const& get_descriptor_index() const;
13052 void set_descriptor_index(uint16_t const&);
13055public:
13062 public:
13067
13070
13072 virtual void unparse(std::ostream&) const override;
13073
13075 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13076public:
13079
13080public:
13083
13084protected:
13092#endif // SgAsmJvmField_OTHERS
13093#ifdef DOCUMENTATION
13094};
13095#endif // DOCUMENTATION
13096
13097
13099// SgAsmJvmExceptionTable -- MACHINE GENERATED; DO NOT MODIFY --
13101
13102DECLARE_LEAF_CLASS(AsmJvmExceptionTable);
13103IS_SERIALIZABLE(AsmJvmExceptionTable);
13104
13105#ifndef DOCUMENTATION
13106AsmJvmExceptionTable.useSmallHeader(true);
13107#endif // !DOCUMENTATION
13108
13109DECLARE_HEADERS(AsmJvmExceptionTable);
13110#if defined(SgAsmJvmExceptionTable_HEADERS) || defined(DOCUMENTATION)
13111#include <sageContainer.h>
13112#endif // SgAsmJvmExceptionTable_HEADERS
13113
13114#ifdef DOCUMENTATION
13120#endif // DOCUMENTATION
13121
13122#ifndef DOCUMENTATION
13123 AsmJvmExceptionTable.setDataPrototype(
13124 "SgAsmJvmExceptionHandlerPtrList", "handlers", "",
13125 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13126#endif // !DOCUMENTATION
13127
13128 DECLARE_OTHERS(AsmJvmExceptionTable);
13129#if defined(SgAsmJvmExceptionTable_OTHERS) || defined(DOCUMENTATION)
13130
13131 //----------------------- Boost serialization for SgAsmJvmExceptionTable -----------------------
13132#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13133private:
13134 friend class boost::serialization::access;
13135
13136 template<class S>
13137 void serialize(S &s, const unsigned /*version*/) {
13138 debugSerializationBegin("SgAsmJvmExceptionTable");
13139 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13140 s & BOOST_SERIALIZATION_NVP(p_handlers);
13141 debugSerializationEnd("SgAsmJvmExceptionTable");
13142 }
13143#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13144public:
13145public:
13149 SgAsmJvmExceptionHandlerPtrList const& get_handlers() const;
13150 SgAsmJvmExceptionHandlerPtrList& get_handlers();
13151 void set_handlers(SgAsmJvmExceptionHandlerPtrList const&);
13153public:
13158
13164
13166 virtual void unparse(std::ostream&) const override;
13167
13169 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13170public:
13173
13174public:
13177
13178protected:
13186#endif // SgAsmJvmExceptionTable_OTHERS
13187#ifdef DOCUMENTATION
13188};
13189#endif // DOCUMENTATION
13190
13191
13193// SgAsmJvmExceptionHandler -- MACHINE GENERATED; DO NOT MODIFY --
13195
13196DECLARE_LEAF_CLASS(AsmJvmExceptionHandler);
13197IS_SERIALIZABLE(AsmJvmExceptionHandler);
13198
13199#ifndef DOCUMENTATION
13200AsmJvmExceptionHandler.useSmallHeader(true);
13201#endif // !DOCUMENTATION
13202
13203#ifdef DOCUMENTATION
13208#endif // DOCUMENTATION
13209
13210#ifndef DOCUMENTATION
13211 AsmJvmExceptionHandler.setDataPrototype(
13212 "uint16_t", "start_pc", "= 0",
13213 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13214#endif // !DOCUMENTATION
13215
13216#ifndef DOCUMENTATION
13217 AsmJvmExceptionHandler.setDataPrototype(
13218 "uint16_t", "end_pc", "= 0",
13219 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13220#endif // !DOCUMENTATION
13221
13222#ifndef DOCUMENTATION
13223 AsmJvmExceptionHandler.setDataPrototype(
13224 "uint16_t", "handler_pc", "= 0",
13225 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13226#endif // !DOCUMENTATION
13227
13228#ifndef DOCUMENTATION
13229 AsmJvmExceptionHandler.setDataPrototype(
13230 "uint16_t", "catch_type", "= 0",
13231 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13232#endif // !DOCUMENTATION
13233
13234 DECLARE_OTHERS(AsmJvmExceptionHandler);
13235#if defined(SgAsmJvmExceptionHandler_OTHERS) || defined(DOCUMENTATION)
13236
13237 //----------------------- Boost serialization for SgAsmJvmExceptionHandler -----------------------
13238#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13239private:
13240 friend class boost::serialization::access;
13241
13242 template<class S>
13243 void serialize(S &s, const unsigned /*version*/) {
13244 debugSerializationBegin("SgAsmJvmExceptionHandler");
13245 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13246 s & BOOST_SERIALIZATION_NVP(p_start_pc);
13247 s & BOOST_SERIALIZATION_NVP(p_end_pc);
13248 s & BOOST_SERIALIZATION_NVP(p_handler_pc);
13249 s & BOOST_SERIALIZATION_NVP(p_catch_type);
13250 debugSerializationEnd("SgAsmJvmExceptionHandler");
13251 }
13252#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13253public:
13254public:
13261 uint16_t const& get_start_pc() const;
13262 void set_start_pc(uint16_t const&);
13265public:
13272 uint16_t const& get_end_pc() const;
13273 void set_end_pc(uint16_t const&);
13276public:
13283 uint16_t const& get_handler_pc() const;
13284 void set_handler_pc(uint16_t const&);
13287public:
13294 uint16_t const& get_catch_type() const;
13295 void set_catch_type(uint16_t const&);
13297 public:
13302
13305
13307 virtual void unparse(std::ostream&) const override;
13308
13310 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13311public:
13314
13315public:
13318
13319protected:
13327#endif // SgAsmJvmExceptionHandler_OTHERS
13328#ifdef DOCUMENTATION
13329};
13330#endif // DOCUMENTATION
13331
13332
13334// SgAsmJvmEnclosingMethod -- MACHINE GENERATED; DO NOT MODIFY --
13336
13337DECLARE_LEAF_CLASS(AsmJvmEnclosingMethod);
13338IS_SERIALIZABLE(AsmJvmEnclosingMethod);
13339
13340#ifndef DOCUMENTATION
13341AsmJvmEnclosingMethod.useSmallHeader(true);
13342#endif // !DOCUMENTATION
13343
13344#ifdef DOCUMENTATION
13351#endif // DOCUMENTATION
13352
13353#ifndef DOCUMENTATION
13354 AsmJvmEnclosingMethod.setDataPrototype(
13355 "uint16_t", "class_index", "= 0",
13356 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13357#endif // !DOCUMENTATION
13358
13359#ifndef DOCUMENTATION
13360 AsmJvmEnclosingMethod.setDataPrototype(
13361 "uint16_t", "method_index", "= 0",
13362 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13363#endif // !DOCUMENTATION
13364
13365 DECLARE_OTHERS(AsmJvmEnclosingMethod);
13366#if defined(SgAsmJvmEnclosingMethod_OTHERS) || defined(DOCUMENTATION)
13367
13368 //----------------------- Boost serialization for SgAsmJvmEnclosingMethod -----------------------
13369#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13370private:
13371 friend class boost::serialization::access;
13372
13373 template<class S>
13374 void serialize(S &s, const unsigned /*version*/) {
13375 debugSerializationBegin("SgAsmJvmEnclosingMethod");
13376 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
13377 s & BOOST_SERIALIZATION_NVP(p_class_index);
13378 s & BOOST_SERIALIZATION_NVP(p_method_index);
13379 debugSerializationEnd("SgAsmJvmEnclosingMethod");
13380 }
13381#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13382public:
13383public:
13389 uint16_t const& get_class_index() const;
13390 void set_class_index(uint16_t const&);
13393public:
13400 uint16_t const& get_method_index() const;
13401 void set_method_index(uint16_t const&);
13403public:
13408
13411
13413 virtual void unparse(std::ostream&) const override;
13414
13416 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13417public:
13420
13421public:
13424
13425protected:
13433#endif // SgAsmJvmEnclosingMethod_OTHERS
13434#ifdef DOCUMENTATION
13435};
13436#endif // DOCUMENTATION
13437
13438
13440// SgAsmJvmConstantPoolEntry -- MACHINE GENERATED; DO NOT MODIFY --
13442
13443DECLARE_LEAF_CLASS(AsmJvmConstantPoolEntry);
13444IS_SERIALIZABLE(AsmJvmConstantPoolEntry);
13445
13446#ifndef DOCUMENTATION
13447AsmJvmConstantPoolEntry.useSmallHeader(true);
13448#endif // !DOCUMENTATION
13449
13450#ifdef DOCUMENTATION
13456#endif // DOCUMENTATION
13457
13458#ifndef DOCUMENTATION
13459 AsmJvmConstantPoolEntry.setDataPrototype(
13460 "SgAsmJvmConstantPoolEntry::Kind", "tag", "= SgAsmJvmConstantPoolEntry::EMPTY",
13461 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13462#endif // !DOCUMENTATION
13463
13464#ifndef DOCUMENTATION
13465 AsmJvmConstantPoolEntry.setDataPrototype(
13466 "uint32_t", "bytes", "= 0",
13467 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13468#endif // !DOCUMENTATION
13469
13470#ifndef DOCUMENTATION
13471 AsmJvmConstantPoolEntry.setDataPrototype(
13472 "uint32_t", "hi_bytes", "= 0",
13473 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13474#endif // !DOCUMENTATION
13475
13476#ifndef DOCUMENTATION
13477 AsmJvmConstantPoolEntry.setDataPrototype(
13478 "uint32_t", "low_bytes", "= 0",
13479 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13480#endif // !DOCUMENTATION
13481
13482#ifndef DOCUMENTATION
13483 AsmJvmConstantPoolEntry.setDataPrototype(
13484 "uint16_t", "bootstrap_method_attr_index", "= 0",
13485 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13486#endif // !DOCUMENTATION
13487
13488#ifndef DOCUMENTATION
13489 AsmJvmConstantPoolEntry.setDataPrototype(
13490 "uint16_t", "class_index", "= 0",
13491 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13492#endif // !DOCUMENTATION
13493
13494#ifndef DOCUMENTATION
13495 AsmJvmConstantPoolEntry.setDataPrototype(
13496 "uint16_t", "descriptor_index", "= 0",
13497 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13498#endif // !DOCUMENTATION
13499
13500#ifndef DOCUMENTATION
13501 AsmJvmConstantPoolEntry.setDataPrototype(
13502 "uint16_t", "name_index", "= 0",
13503 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13504#endif // !DOCUMENTATION
13505
13506#ifndef DOCUMENTATION
13507 AsmJvmConstantPoolEntry.setDataPrototype(
13508 "uint16_t", "name_and_type_index", "= 0",
13509 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13510#endif // !DOCUMENTATION
13511
13512#ifndef DOCUMENTATION
13513 AsmJvmConstantPoolEntry.setDataPrototype(
13514 "uint16_t", "reference_index", "= 0",
13515 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13516#endif // !DOCUMENTATION
13517
13518#ifndef DOCUMENTATION
13519 AsmJvmConstantPoolEntry.setDataPrototype(
13520 "uint8_t", "reference_kind", "= 0",
13521 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13522#endif // !DOCUMENTATION
13523
13524#ifndef DOCUMENTATION
13525 AsmJvmConstantPoolEntry.setDataPrototype(
13526 "uint16_t", "string_index", "= 0",
13527 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13528#endif // !DOCUMENTATION
13529
13530#ifndef DOCUMENTATION
13531 AsmJvmConstantPoolEntry.setDataPrototype(
13532 "uint16_t", "length", "= 0",
13533 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13534#endif // !DOCUMENTATION
13535
13536#ifndef DOCUMENTATION
13537 AsmJvmConstantPoolEntry.setDataPrototype(
13538 "char*", "utf8_bytes", "= nullptr",
13539 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13540#endif // !DOCUMENTATION
13541
13542 DECLARE_OTHERS(AsmJvmConstantPoolEntry);
13543#if defined(SgAsmJvmConstantPoolEntry_OTHERS) || defined(DOCUMENTATION)
13544
13545 //----------------------- Boost serialization for SgAsmJvmConstantPoolEntry -----------------------
13546#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13547private:
13548 friend class boost::serialization::access;
13549
13550 template<class S>
13551 void serialize(S &s, const unsigned /*version*/) {
13552 debugSerializationBegin("SgAsmJvmConstantPoolEntry");
13553 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13554 s & BOOST_SERIALIZATION_NVP(p_tag);
13555 s & BOOST_SERIALIZATION_NVP(p_bytes);
13556 s & BOOST_SERIALIZATION_NVP(p_hi_bytes);
13557 s & BOOST_SERIALIZATION_NVP(p_low_bytes);
13558 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_attr_index);
13559 s & BOOST_SERIALIZATION_NVP(p_class_index);
13560 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
13561 s & BOOST_SERIALIZATION_NVP(p_name_index);
13562 s & BOOST_SERIALIZATION_NVP(p_name_and_type_index);
13563 s & BOOST_SERIALIZATION_NVP(p_reference_index);
13564 s & BOOST_SERIALIZATION_NVP(p_reference_kind);
13565 s & BOOST_SERIALIZATION_NVP(p_string_index);
13566 s & BOOST_SERIALIZATION_NVP(p_length);
13567 debugSerializationEnd("SgAsmJvmConstantPoolEntry");
13568 }
13569#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13571 // Local types
13573public:
13578 enum Kind {
13579 EMPTY = 0,
13580 CONSTANT_Utf8 = 1,
13581 CONSTANT_Integer = 3,
13582 CONSTANT_Float = 4,
13583 CONSTANT_Long = 5,
13584 CONSTANT_Double = 6,
13585 CONSTANT_Class = 7,
13586 CONSTANT_String = 8,
13587 CONSTANT_Fieldref = 9,
13588 CONSTANT_Methodref = 10,
13589 CONSTANT_InterfaceMethodref = 11,
13590 CONSTANT_NameAndType = 12,
13591 CONSTANT_MethodHandle = 15,
13592 CONSTANT_MethodType = 16,
13593 CONSTANT_Dynamic = 17,
13594 CONSTANT_InvokeDynamic = 18,
13595 CONSTANT_Module = 19,
13596 CONSTANT_Package = 20
13597 };
13598
13599#ifdef DOCUMENTATION
13603#endif
13606 uint8_t tag;
13607 uint16_t name_index;
13608 };
13609
13613 uint8_t tag;
13614 uint16_t class_index;
13615 uint16_t name_and_type_index;
13616 };
13618 uint8_t tag;
13619 uint16_t class_index;
13620 uint16_t name_and_type_index;
13621 };
13623 uint8_t tag;
13624 uint16_t class_index;
13625 uint16_t name_and_type_index;
13626 };
13627
13630 uint8_t tag;
13631 uint16_t string_index;
13632 };
13633
13636 uint8_t tag;
13637 uint32_t bytes;
13638 };
13640 uint8_t tag;
13641 uint32_t bytes;
13642 };
13644 uint8_t tag;
13645 uint32_t hi_bytes;
13646 uint32_t low_bytes;
13647 };
13649 uint8_t tag;
13650 uint32_t hi_bytes;
13651 uint32_t low_bytes;
13652 };
13653
13656 uint8_t tag;
13657 uint16_t name_index;
13658 uint16_t descriptor_index;
13659 };
13660
13663 uint8_t tag;
13664 uint16_t length;
13665 uint8_t* bytes;
13666 };
13667
13670 uint8_t tag;
13671 uint8_t reference_kind;
13672 uint16_t reference_index;
13673 };
13674
13677 uint8_t tag;
13678 uint16_t descriptor_index;
13679 };
13680
13683 uint8_t tag;
13684 uint16_t bootstrap_method_attr_index;
13685 uint16_t name_and_type_index;
13686 };
13688 uint8_t tag;
13689 uint16_t bootstrap_method_attr_index;
13690 uint16_t name_and_type_index;
13691 };
13692
13695 uint8_t tag;
13696 uint16_t name_index;
13697 };
13698
13701 uint8_t tag;
13702 uint16_t name_index;
13703 };
13704
13706 // Properties
13708public:
13709public:
13719public:
13726 uint32_t const& get_bytes() const;
13727 void set_bytes(uint32_t const&);
13730public:
13738 uint32_t const& get_hi_bytes() const;
13739 void set_hi_bytes(uint32_t const&);
13742public:
13750 uint32_t const& get_low_bytes() const;
13751 void set_low_bytes(uint32_t const&);
13754public:
13761 uint16_t const& get_bootstrap_method_attr_index() const;
13762 void set_bootstrap_method_attr_index(uint16_t const&);
13765public:
13772 uint16_t const& get_class_index() const;
13773 void set_class_index(uint16_t const&);
13776public:
13783 uint16_t const& get_descriptor_index() const;
13784 void set_descriptor_index(uint16_t const&);
13787public:
13794 uint16_t const& get_name_index() const;
13795 void set_name_index(uint16_t const&);
13798public:
13806 uint16_t const& get_name_and_type_index() const;
13807 void set_name_and_type_index(uint16_t const&);
13810public:
13817 uint16_t const& get_reference_index() const;
13818 void set_reference_index(uint16_t const&);
13821public:
13828 uint8_t const& get_reference_kind() const;
13829 void set_reference_kind(uint8_t const&);
13832public:
13839 uint16_t const& get_string_index() const;
13840 void set_string_index(uint16_t const&);
13843public:
13850 uint16_t const& get_length() const;
13851 void set_length(uint16_t const&);
13853 // [Robb Matzke 2023-03-22]: I (and the serialization) have no idea what this points to, and therefore it cannot be
13854 // serialized. E.g., how many 'chars' should be serialized? Is the length stored in the `length` property? If so, `utf8_bytes`
13855 // should probably be an std::vector instead, which is a serializable thing. Furthermore, the data member cannot be 'const'
13856 // because that prevents it from being initialized by some de-serialization mechanisms (e.g., boost::serialize creates a default
13857 // constructed object and then fills it in).
13858public:
13864 char* const& get_utf8_bytes() const;
13865 void set_utf8_bytes(char* const&);
13868 // Functions
13870public:
13873
13881 virtual void unparse(std::ostream&) const override;
13882
13884 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13885
13888public:
13891
13892public:
13895
13896protected:
13904#endif // SgAsmJvmConstantPoolEntry_OTHERS
13905#ifdef DOCUMENTATION
13906};
13907#endif // DOCUMENTATION
13908
13909
13911// SgAsmJvmConstantPool -- MACHINE GENERATED; DO NOT MODIFY --
13913
13914DECLARE_LEAF_CLASS(AsmJvmConstantPool);
13915IS_SERIALIZABLE(AsmJvmConstantPool);
13916
13917#ifndef DOCUMENTATION
13918AsmJvmConstantPool.useSmallHeader(true);
13919#endif // !DOCUMENTATION
13920
13921#ifdef DOCUMENTATION
13928#endif // DOCUMENTATION
13929
13930#ifndef DOCUMENTATION
13931 AsmJvmConstantPool.setDataPrototype(
13932 "SgAsmJvmConstantPoolEntryPtrList", "entries", "",
13933 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13934#endif // !DOCUMENTATION
13935
13936 DECLARE_OTHERS(AsmJvmConstantPool);
13937#if defined(SgAsmJvmConstantPool_OTHERS) || defined(DOCUMENTATION)
13938
13939 //----------------------- Boost serialization for SgAsmJvmConstantPool -----------------------
13940#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13941private:
13942 friend class boost::serialization::access;
13943
13944 template<class S>
13945 void serialize(S &s, const unsigned /*version*/) {
13946 debugSerializationBegin("SgAsmJvmConstantPool");
13947 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
13948 s & BOOST_SERIALIZATION_NVP(p_entries);
13949 debugSerializationEnd("SgAsmJvmConstantPool");
13950 }
13951#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13952public:
13953public:
13957 SgAsmJvmConstantPoolEntryPtrList const& get_entries() const;
13958 SgAsmJvmConstantPoolEntryPtrList& get_entries();
13959 void set_entries(SgAsmJvmConstantPoolEntryPtrList const&);
13961public:
13964
13970 virtual SgAsmJvmConstantPool* parse() override;
13971
13984 std::string get_utf8_string(size_t index) const;
13985
13987 virtual void unparse(std::ostream&) const override;
13988
13990 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13991
13992protected:
13993 // Some extra clean-up actions on destruction
13994 virtual void destructorHelper() override;
13995public:
13998
13999public:
14002
14003protected:
14011#endif // SgAsmJvmConstantPool_OTHERS
14012#ifdef DOCUMENTATION
14013};
14014#endif // DOCUMENTATION
14015
14016
14018// SgAsmJvmCodeAttribute -- MACHINE GENERATED; DO NOT MODIFY --
14020
14021DECLARE_LEAF_CLASS(AsmJvmCodeAttribute);
14022IS_SERIALIZABLE(AsmJvmCodeAttribute);
14023
14024#ifndef DOCUMENTATION
14025AsmJvmCodeAttribute.useSmallHeader(true);
14026#endif // !DOCUMENTATION
14027
14028DECLARE_HEADERS(AsmJvmCodeAttribute);
14029#if defined(SgAsmJvmCodeAttribute_HEADERS) || defined(DOCUMENTATION)
14030#include <Rose/BinaryAnalysis/Address.h>
14031#endif // SgAsmJvmCodeAttribute_HEADERS
14032
14033#ifdef DOCUMENTATION
14040#endif // DOCUMENTATION
14041
14042#ifndef DOCUMENTATION
14043 AsmJvmCodeAttribute.setDataPrototype(
14044 "uint16_t", "max_stack", "= 0",
14045 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14046#endif // !DOCUMENTATION
14047
14048#ifndef DOCUMENTATION
14049 AsmJvmCodeAttribute.setDataPrototype(
14050 "uint16_t", "max_locals", "= 0",
14051 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14052#endif // !DOCUMENTATION
14053
14054#ifndef DOCUMENTATION
14055 AsmJvmCodeAttribute.setDataPrototype(
14056 "uint32_t", "code_length", "= 0",
14057 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14058#endif // !DOCUMENTATION
14059
14060#ifndef DOCUMENTATION
14061 AsmJvmCodeAttribute.setDataPrototype(
14062 "const char*", "code", "= nullptr",
14063 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14064#endif // !DOCUMENTATION
14065
14066#ifndef DOCUMENTATION
14067 AsmJvmCodeAttribute.setDataPrototype(
14068 "SgAsmJvmExceptionTable*", "exception_table", "= nullptr",
14069 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14070#endif // !DOCUMENTATION
14071
14072#ifndef DOCUMENTATION
14073 AsmJvmCodeAttribute.setDataPrototype(
14074 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
14075 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14076#endif // !DOCUMENTATION
14077
14078#ifndef DOCUMENTATION
14079 AsmJvmCodeAttribute.setDataPrototype(
14080 "Rose::BinaryAnalysis::Address", "code_offset", "= 0",
14081 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14082#endif // !DOCUMENTATION
14083
14084 DECLARE_OTHERS(AsmJvmCodeAttribute);
14085#if defined(SgAsmJvmCodeAttribute_OTHERS) || defined(DOCUMENTATION)
14086
14087 //----------------------- Boost serialization for SgAsmJvmCodeAttribute -----------------------
14088#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14089private:
14090 friend class boost::serialization::access;
14091
14092 template<class S>
14093 void serialize(S &s, const unsigned /*version*/) {
14094 debugSerializationBegin("SgAsmJvmCodeAttribute");
14095 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
14096 s & BOOST_SERIALIZATION_NVP(p_max_stack);
14097 s & BOOST_SERIALIZATION_NVP(p_max_locals);
14098 s & BOOST_SERIALIZATION_NVP(p_code_length);
14099 s & BOOST_SERIALIZATION_NVP(p_exception_table);
14100 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
14101 s & BOOST_SERIALIZATION_NVP(p_code_offset);
14102 debugSerializationEnd("SgAsmJvmCodeAttribute");
14103 }
14104#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14105public:
14106public:
14113 uint16_t const& get_max_stack() const;
14114 void set_max_stack(uint16_t const&);
14117public:
14124 uint16_t const& get_max_locals() const;
14125 void set_max_locals(uint16_t const&);
14128public:
14135 uint32_t const& get_code_length() const;
14136 void set_code_length(uint32_t const&);
14138 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
14139public:
14145 const char* const& get_code() const;
14146 void set_code(const char* const&);
14149public:
14159public:
14169public:
14179public:
14184
14187
14189 virtual void unparse(std::ostream&) const override;
14190
14192 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14193public:
14196
14197public:
14200
14201protected:
14209#endif // SgAsmJvmCodeAttribute_OTHERS
14210#ifdef DOCUMENTATION
14211};
14212#endif // DOCUMENTATION
14213
14214
14216// SgAsmJvmClass -- MACHINE GENERATED; DO NOT MODIFY --
14218
14219DECLARE_LEAF_CLASS(AsmJvmClass);
14220IS_SERIALIZABLE(AsmJvmClass);
14221
14222#ifndef DOCUMENTATION
14223AsmJvmClass.useSmallHeader(true);
14224#endif // !DOCUMENTATION
14225
14226#ifdef DOCUMENTATION
14231#endif // DOCUMENTATION
14232
14233 DECLARE_OTHERS(AsmJvmClass);
14234#if defined(SgAsmJvmClass_OTHERS) || defined(DOCUMENTATION)
14235
14236 //----------------------- Boost serialization for SgAsmJvmClass -----------------------
14237#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14238private:
14239 friend class boost::serialization::access;
14240
14241 template<class S>
14242 void serialize(S &s, const unsigned /*version*/) {
14243 debugSerializationBegin("SgAsmJvmClass");
14244 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
14245 debugSerializationEnd("SgAsmJvmClass");
14246 }
14247#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14248
14249public:
14252
14253public:
14256
14257protected:
14265#endif // SgAsmJvmClass_OTHERS
14266#ifdef DOCUMENTATION
14267};
14268#endif // DOCUMENTATION
14269
14270
14272// SgAsmJvmBootstrapMethods -- MACHINE GENERATED; DO NOT MODIFY --
14274
14275DECLARE_LEAF_CLASS(AsmJvmBootstrapMethods);
14276IS_SERIALIZABLE(AsmJvmBootstrapMethods);
14277
14278#ifndef DOCUMENTATION
14279AsmJvmBootstrapMethods.useSmallHeader(true);
14280#endif // !DOCUMENTATION
14281
14282DECLARE_HEADERS(AsmJvmBootstrapMethods);
14283#if defined(SgAsmJvmBootstrapMethods_HEADERS) || defined(DOCUMENTATION)
14284#include <sageContainer.h>
14285#endif // SgAsmJvmBootstrapMethods_HEADERS
14286
14287#ifdef DOCUMENTATION
14293#endif // DOCUMENTATION
14294
14295#ifndef DOCUMENTATION
14296 AsmJvmBootstrapMethods.setDataPrototype(
14297 "SgAsmJvmBootstrapMethodPtrList", "bootstrap_methods", "",
14298 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14299#endif // !DOCUMENTATION
14300
14301 DECLARE_OTHERS(AsmJvmBootstrapMethods);
14302#if defined(SgAsmJvmBootstrapMethods_OTHERS) || defined(DOCUMENTATION)
14303
14304 //----------------------- Boost serialization for SgAsmJvmBootstrapMethods -----------------------
14305#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14306private:
14307 friend class boost::serialization::access;
14308
14309 template<class S>
14310 void serialize(S &s, const unsigned /*version*/) {
14311 debugSerializationBegin("SgAsmJvmBootstrapMethods");
14312 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
14313 s & BOOST_SERIALIZATION_NVP(p_bootstrap_methods);
14314 debugSerializationEnd("SgAsmJvmBootstrapMethods");
14315 }
14316#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14318 // Properties
14320public:
14321public:
14325 SgAsmJvmBootstrapMethodPtrList const& get_bootstrap_methods() const;
14326 SgAsmJvmBootstrapMethodPtrList& get_bootstrap_methods();
14327 void set_bootstrap_methods(SgAsmJvmBootstrapMethodPtrList const&);
14330 // Functions
14332public:
14337
14340
14342 virtual void unparse(std::ostream&) const override;
14343
14345 void dump(FILE*, const char *prefix, ssize_t idx) const override;
14346public:
14349
14350public:
14353
14354protected:
14362#endif // SgAsmJvmBootstrapMethods_OTHERS
14363#ifdef DOCUMENTATION
14364};
14365#endif // DOCUMENTATION
14366
14367
14369// SgAsmJvmBootstrapMethod -- MACHINE GENERATED; DO NOT MODIFY --
14371
14372DECLARE_LEAF_CLASS(AsmJvmBootstrapMethod);
14373IS_SERIALIZABLE(AsmJvmBootstrapMethod);
14374
14375#ifndef DOCUMENTATION
14376AsmJvmBootstrapMethod.useSmallHeader(true);
14377#endif // !DOCUMENTATION
14378
14379DECLARE_HEADERS(AsmJvmBootstrapMethod);
14380#if defined(SgAsmJvmBootstrapMethod_HEADERS) || defined(DOCUMENTATION)
14381#include <sageContainer.h>
14382#endif // SgAsmJvmBootstrapMethod_HEADERS
14383
14384#ifdef DOCUMENTATION
14391#endif // DOCUMENTATION
14392
14393#ifndef DOCUMENTATION
14394 AsmJvmBootstrapMethod.setDataPrototype(
14395 "uint16_t", "bootstrap_method_ref", "= 0",
14396 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14397#endif // !DOCUMENTATION
14398
14399#ifndef DOCUMENTATION
14400 AsmJvmBootstrapMethod.setDataPrototype(
14401 "SgUnsigned16List", "bootstrap_arguments", "",
14402 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14403#endif // !DOCUMENTATION
14404
14405 DECLARE_OTHERS(AsmJvmBootstrapMethod);
14406#if defined(SgAsmJvmBootstrapMethod_OTHERS) || defined(DOCUMENTATION)
14407
14408 //----------------------- Boost serialization for SgAsmJvmBootstrapMethod -----------------------
14409#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14410private:
14411 friend class boost::serialization::access;
14412
14413 template<class S>
14414 void serialize(S &s, const unsigned /*version*/) {
14415 debugSerializationBegin("SgAsmJvmBootstrapMethod");
14416 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
14417 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_ref);
14418 s & BOOST_SERIALIZATION_NVP(p_bootstrap_arguments);
14419 debugSerializationEnd("SgAsmJvmBootstrapMethod");
14420 }
14421#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14422public:
14423public:
14430 uint16_t const& get_bootstrap_method_ref() const;
14431 void set_bootstrap_method_ref(uint16_t const&);
14434public:
14441 SgUnsigned16List const& get_bootstrap_arguments() const;
14442 void set_bootstrap_arguments(SgUnsigned16List const&);
14444 public:
14449
14452
14454 virtual void unparse(std::ostream&) const override;
14455
14457 void dump(FILE*, const char *prefix, ssize_t idx) const override;
14458public:
14461
14462public:
14465
14466protected:
14474#endif // SgAsmJvmBootstrapMethod_OTHERS
14475#ifdef DOCUMENTATION
14476};
14477#endif // DOCUMENTATION
14478
14479
14481// SgAsmJvmAttributeTable -- MACHINE GENERATED; DO NOT MODIFY --
14483
14484DECLARE_LEAF_CLASS(AsmJvmAttributeTable);
14485IS_SERIALIZABLE(AsmJvmAttributeTable);
14486
14487#ifndef DOCUMENTATION
14488AsmJvmAttributeTable.useSmallHeader(true);
14489#endif // !DOCUMENTATION
14490
14491#ifdef DOCUMENTATION
14498#endif // DOCUMENTATION
14499
14500#ifndef DOCUMENTATION
14501 AsmJvmAttributeTable.setDataPrototype(
14502 "SgAsmJvmAttributePtrList", "attributes", "",
14503 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14504#endif // !DOCUMENTATION
14505
14506 DECLARE_OTHERS(AsmJvmAttributeTable);
14507#if defined(SgAsmJvmAttributeTable_OTHERS) || defined(DOCUMENTATION)
14508
14509 //----------------------- Boost serialization for SgAsmJvmAttributeTable -----------------------
14510#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14511private:
14512 friend class boost::serialization::access;
14513
14514 template<class S>
14515 void serialize(S &s, const unsigned /*version*/) {
14516 debugSerializationBegin("SgAsmJvmAttributeTable");
14517 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
14518 s & BOOST_SERIALIZATION_NVP(p_attributes);
14519 debugSerializationEnd("SgAsmJvmAttributeTable");
14520 }
14521#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14522public:
14523public:
14527 SgAsmJvmAttributePtrList const& get_attributes() const;
14528 SgAsmJvmAttributePtrList& get_attributes();
14529 void set_attributes(SgAsmJvmAttributePtrList const&);
14531public:
14536
14541 using SgAsmGenericSection::parse; // Removes warning messages on some compilers
14542 // ("hidden virtual overloaded function")
14544
14546 virtual void unparse(std::ostream&) const override;
14547
14549 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14550public:
14553
14554public:
14557
14558protected:
14566#endif // SgAsmJvmAttributeTable_OTHERS
14567#ifdef DOCUMENTATION
14568};
14569#endif // DOCUMENTATION
14570
14571
14573// SgAsmJvmAnnotationDefault -- MACHINE GENERATED; DO NOT MODIFY --
14575
14576DECLARE_LEAF_CLASS(AsmJvmAnnotationDefault);
14577IS_SERIALIZABLE(AsmJvmAnnotationDefault);
14578
14579#ifndef DOCUMENTATION
14580AsmJvmAnnotationDefault.useSmallHeader(true);
14581#endif // !DOCUMENTATION
14582
14583#ifdef DOCUMENTATION
14592#endif // DOCUMENTATION
14593
14594#ifndef DOCUMENTATION
14595 AsmJvmAnnotationDefault.setDataPrototype(
14596 "SgAsmJvmRuntimeAnnotationValue*", "default_value", "= nullptr",
14597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14598#endif // !DOCUMENTATION
14599
14600 DECLARE_OTHERS(AsmJvmAnnotationDefault);
14601#if defined(SgAsmJvmAnnotationDefault_OTHERS) || defined(DOCUMENTATION)
14602
14603 //----------------------- Boost serialization for SgAsmJvmAnnotationDefault -----------------------
14604#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14605private:
14606 friend class boost::serialization::access;
14607
14608 template<class S>
14609 void serialize(S &s, const unsigned /*version*/) {
14610 debugSerializationBegin("SgAsmJvmAnnotationDefault");
14611 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
14612 s & BOOST_SERIALIZATION_NVP(p_default_value);
14613 debugSerializationEnd("SgAsmJvmAnnotationDefault");
14614 }
14615#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14616public:
14617public:
14628 public:
14633
14636
14638 virtual void unparse(std::ostream&) const override;
14639
14641 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14642public:
14645
14646public:
14649
14650protected:
14658#endif // SgAsmJvmAnnotationDefault_OTHERS
14659#ifdef DOCUMENTATION
14660};
14661#endif // DOCUMENTATION
14662
14663
14665// SgAsmJvmAttribute -- MACHINE GENERATED; DO NOT MODIFY --
14667
14668#ifndef DOCUMENTATION
14669AstNodeClass& AsmJvmAttribute = nonTerminalConstructor(
14670 "AsmJvmAttribute",
14671 *this,
14672 "AsmJvmAttribute",
14673 "AsmJvmAttributeTag",
14674 SubclassListBuilder()
14675 | AsmJvmAnnotationDefault
14676 | AsmJvmBootstrapMethods
14677 | AsmJvmCodeAttribute
14678 | AsmJvmEnclosingMethod
14679 | AsmJvmIndexedAttr
14680 | AsmJvmIndexTableAttr
14681 | AsmJvmInnerClasses
14682 | AsmJvmLineNumberTable
14683 | AsmJvmLocalVariableTable
14684 | AsmJvmLocalVariableTypeTable
14685 | AsmJvmMethodParameters
14686 | AsmJvmModule
14687 | AsmJvmRuntimeInvisibleAnnotations
14688 | AsmJvmRuntimeVisibilityParamAnnotations
14689 | AsmJvmRuntimeVisibleAnnotations
14690 | AsmJvmStackMapTable
14691 , false);
14692assert(AsmJvmAttribute.associatedGrammar != nullptr);
14693AsmJvmAttribute.setCppCondition("!defined(DOCUMENTATION)");
14694AsmJvmAttribute.isBoostSerializable(true);
14695AsmJvmAttribute.setAutomaticGenerationOfConstructor(false);
14696AsmJvmAttribute.setAutomaticGenerationOfDestructor(false);
14697#endif // !DOCUMENTATION
14698
14699#ifndef DOCUMENTATION
14700AsmJvmAttribute.useSmallHeader(true);
14701#endif // !DOCUMENTATION
14702
14703#ifdef DOCUMENTATION
14706#endif // DOCUMENTATION
14707
14708#ifndef DOCUMENTATION
14709 AsmJvmAttribute.setDataPrototype(
14710 "uint16_t", "attribute_name_index", "= 0",
14711 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14712#endif // !DOCUMENTATION
14713
14714#ifndef DOCUMENTATION
14715 AsmJvmAttribute.setDataPrototype(
14716 "uint32_t", "attribute_length", "= 0",
14717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14718#endif // !DOCUMENTATION
14719
14720 DECLARE_OTHERS(AsmJvmAttribute);
14721#if defined(SgAsmJvmAttribute_OTHERS) || defined(DOCUMENTATION)
14722
14723 //----------------------- Boost serialization for SgAsmJvmAttribute -----------------------
14724#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14725private:
14726 friend class boost::serialization::access;
14727
14728 template<class S>
14729 void serialize(S &s, const unsigned /*version*/) {
14730 debugSerializationBegin("SgAsmJvmAttribute");
14731 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
14732 s & BOOST_SERIALIZATION_NVP(p_attribute_name_index);
14733 s & BOOST_SERIALIZATION_NVP(p_attribute_length);
14734 debugSerializationEnd("SgAsmJvmAttribute");
14735 }
14736#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14737public:
14738public:
14744 uint16_t const& get_attribute_name_index() const;
14745 void set_attribute_name_index(uint16_t const&);
14748public:
14755 uint32_t const& get_attribute_length() const;
14756 void set_attribute_length(uint32_t const&);
14758public:
14761
14764
14766 virtual void unparse(std::ostream&) const override;
14767
14769 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14770public:
14773
14774protected:
14777
14778protected:
14786#endif // SgAsmJvmAttribute_OTHERS
14787#ifdef DOCUMENTATION
14788};
14789#endif // DOCUMENTATION
14790
14791
14793// SgAsmJvmNode -- MACHINE GENERATED; DO NOT MODIFY --
14795
14796#ifndef DOCUMENTATION
14797AstNodeClass& AsmJvmNode = nonTerminalConstructor(
14798 "AsmJvmNode",
14799 *this,
14800 "AsmJvmNode",
14801 "AsmJvmNodeTag",
14802 SubclassListBuilder()
14803 | AsmJvmAttribute
14804 | AsmJvmBootstrapMethod
14805 | AsmJvmClass
14806 | AsmJvmConstantPoolEntry
14807 | AsmJvmExceptionHandler
14808 | AsmJvmExceptionTable
14809 | AsmJvmField
14810 | AsmJvmLocalVariableEntry
14811 | AsmJvmLocalVariableTypeEntry
14812 | AsmJvmMethod
14813 | AsmJvmMethodParametersEntry
14814 | AsmJvmRuntimeAnnotation
14815 | AsmJvmRuntimeAnnotationPair
14816 | AsmJvmRuntimeAnnotationValue
14817 | AsmJvmRuntimeParameterAnnotation
14818 | AsmJvmStackMapFrame
14819 | AsmJvmStackMapVerificationType
14820 , false);
14821assert(AsmJvmNode.associatedGrammar != nullptr);
14822AsmJvmNode.setCppCondition("!defined(DOCUMENTATION)");
14823AsmJvmNode.isBoostSerializable(true);
14824AsmJvmNode.setAutomaticGenerationOfConstructor(false);
14825AsmJvmNode.setAutomaticGenerationOfDestructor(false);
14826#endif // !DOCUMENTATION
14827
14828#ifndef DOCUMENTATION
14829AsmJvmNode.useSmallHeader(true);
14830#endif // !DOCUMENTATION
14831
14832#ifdef DOCUMENTATION
14835#endif // DOCUMENTATION
14836
14837 DECLARE_OTHERS(AsmJvmNode);
14838#if defined(SgAsmJvmNode_OTHERS) || defined(DOCUMENTATION)
14839
14840 //----------------------- Boost serialization for SgAsmJvmNode -----------------------
14841#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14842private:
14843 friend class boost::serialization::access;
14844
14845 template<class S>
14846 void serialize(S &s, const unsigned /*version*/) {
14847 debugSerializationBegin("SgAsmJvmNode");
14848 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14849 debugSerializationEnd("SgAsmJvmNode");
14850 }
14851#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14852public:
14854 virtual void unparse(std::ostream&) const;
14855
14857 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
14858public:
14860 virtual ~SgAsmJvmNode();
14861
14862protected:
14865
14866protected:
14874#endif // SgAsmJvmNode_OTHERS
14875#ifdef DOCUMENTATION
14876};
14877#endif // DOCUMENTATION
14878
14879
14881// SgAsmInterpretationList -- MACHINE GENERATED; DO NOT MODIFY --
14883
14884DECLARE_LEAF_CLASS(AsmInterpretationList);
14885IS_SERIALIZABLE(AsmInterpretationList);
14886
14887#ifndef DOCUMENTATION
14888AsmInterpretationList.useSmallHeader(true);
14889#endif // !DOCUMENTATION
14890
14891DECLARE_HEADERS(AsmInterpretationList);
14892#if defined(SgAsmInterpretationList_HEADERS) || defined(DOCUMENTATION)
14893#include <sageContainer.h>
14894#endif // SgAsmInterpretationList_HEADERS
14895
14896#ifdef DOCUMENTATION
14898#endif // DOCUMENTATION
14899
14900#ifndef DOCUMENTATION
14901 AsmInterpretationList.setDataPrototype(
14902 "SgAsmInterpretationPtrList", "interpretations", "",
14903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14904#endif // !DOCUMENTATION
14905
14906 DECLARE_OTHERS(AsmInterpretationList);
14907#if defined(SgAsmInterpretationList_OTHERS) || defined(DOCUMENTATION)
14908
14909 //----------------------- Boost serialization for SgAsmInterpretationList -----------------------
14910#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14911private:
14912 friend class boost::serialization::access;
14913
14914 template<class S>
14915 void serialize(S &s, const unsigned /*version*/) {
14916 debugSerializationBegin("SgAsmInterpretationList");
14917 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14918 s & BOOST_SERIALIZATION_NVP(p_interpretations);
14919 debugSerializationEnd("SgAsmInterpretationList");
14920 }
14921#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14922public:
14923public:
14930 SgAsmInterpretationPtrList const& get_interpretations() const;
14931 SgAsmInterpretationPtrList& get_interpretations();
14932 void set_interpretations(SgAsmInterpretationPtrList const&);
14935public:
14938
14939public:
14942
14943protected:
14951#endif // SgAsmInterpretationList_OTHERS
14952#ifdef DOCUMENTATION
14953};
14954#endif // DOCUMENTATION
14955
14956
14958// SgAsmInterpretation -- MACHINE GENERATED; DO NOT MODIFY --
14960
14961DECLARE_LEAF_CLASS(AsmInterpretation);
14962IS_SERIALIZABLE(AsmInterpretation);
14963
14964#ifndef DOCUMENTATION
14965AsmInterpretation.useSmallHeader(true);
14966#endif // !DOCUMENTATION
14967
14968DECLARE_HEADERS(AsmInterpretation);
14969#if defined(SgAsmInterpretation_HEADERS) || defined(DOCUMENTATION)
14970#include <Rose/BinaryAnalysis/BasicTypes.h>
14971#include <Rose/BinaryAnalysis/InstructionMap.h>
14972#include <Rose/BinaryAnalysis/MemoryMap.h>
14973
14974#ifdef ROSE_SgAsmInterpretation_IMPL
14975#include <SgAsmBlock.h>
14976#include <SgAsmGenericHeaderList.h>
14977#endif
14978#endif // SgAsmInterpretation_HEADERS
14979
14980#ifdef DOCUMENTATION
14988#endif // DOCUMENTATION
14989
14990#ifndef DOCUMENTATION
14991 AsmInterpretation.setDataPrototype(
14992 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
14993 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14994#endif // !DOCUMENTATION
14995
14996#ifndef DOCUMENTATION
14997 AsmInterpretation.setDataPrototype(
14998 "SgAsmBlock*", "globalBlock", "= nullptr",
14999 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15000#endif // !DOCUMENTATION
15001
15002#ifndef DOCUMENTATION
15003 AsmInterpretation.setDataPrototype(
15004 "bool", "coverageComputed", "= false",
15005 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15006#endif // !DOCUMENTATION
15007
15008#ifndef DOCUMENTATION
15009 AsmInterpretation.setDataPrototype(
15010 "double", "percentageCoverage", "= NAN",
15011 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15012#endif // !DOCUMENTATION
15013
15014 DECLARE_OTHERS(AsmInterpretation);
15015#if defined(SgAsmInterpretation_OTHERS) || defined(DOCUMENTATION)
15016
15017 //----------------------- Boost serialization for SgAsmInterpretation -----------------------
15018#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15019private:
15020 friend class boost::serialization::access;
15021
15022 template<class S>
15023 void serialize(S &s, const unsigned /*version*/) {
15024 debugSerializationBegin("SgAsmInterpretation");
15025 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
15026 s & BOOST_SERIALIZATION_NVP(p_headers);
15027 s & BOOST_SERIALIZATION_NVP(p_globalBlock);
15028 s & BOOST_SERIALIZATION_NVP(p_map);
15029 s & BOOST_SERIALIZATION_NVP(instruction_map);
15030 s & BOOST_SERIALIZATION_NVP(p_coverageComputed);
15031 s & BOOST_SERIALIZATION_NVP(p_percentageCoverage);
15032 debugSerializationEnd("SgAsmInterpretation");
15033 }
15034#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15035public:
15036public:
15049public:
15058 // ROSETTA doesn't understand this type, but we want this treated like a property whose data member name is "p_map"
15059 // and which has automatically generator accessors and mutators named "get_map" and "set_map" and is serialized.
15060private:
15062
15063public:
15072 // ROSETTA doesn't understand this type, but we want it serialized. Therfore, we'll define it as a property, but we'll
15073 // supply our own accessor and no mutator.
15074private:
15075 mutable Rose::BinaryAnalysis::InstructionMap instruction_map;
15076
15077public:
15085 // cached instruction map
15086
15090public:
15098 bool const& get_coverageComputed() const;
15099 void set_coverageComputed(bool const&);
15102public:
15109 double const& get_percentageCoverage() const;
15110 void set_percentageCoverage(double const&);
15112public:
15117 SgAsmGenericFilePtrList get_files() const;
15118
15124
15130
15132 // Deprecated 2023-11
15134public:
15135 SgAsmBlock* get_global_block() const ROSE_DEPRECATED("use get_globalBlock");
15136 void set_global_block(SgAsmBlock*) ROSE_DEPRECATED("use set_globalBlock");
15137 Rose::BinaryAnalysis::InstructionMap& get_instruction_map(bool=false) ROSE_DEPRECATED("use get_instructionMap");
15138 void set_instruction_map(const Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use set_instructionMap");
15139 void insert_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use insertInstructions");
15140 void erase_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use eraseInstructions");
15141public:
15144
15145public:
15148
15149protected:
15157#endif // SgAsmInterpretation_OTHERS
15158#ifdef DOCUMENTATION
15159};
15160#endif // DOCUMENTATION
15161
15162
15164// SgAsmIntegerValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
15166
15167DECLARE_LEAF_CLASS(AsmIntegerValueExpression);
15168IS_SERIALIZABLE(AsmIntegerValueExpression);
15169
15170#ifndef DOCUMENTATION
15171AsmIntegerValueExpression.useSmallHeader(true);
15172#endif // !DOCUMENTATION
15173
15174#ifdef DOCUMENTATION
15191#endif // DOCUMENTATION
15192
15193#ifndef DOCUMENTATION
15194 AsmIntegerValueExpression.setDataPrototype(
15195 "SgNode*", "baseNode", "= nullptr",
15196 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15197#endif // !DOCUMENTATION
15198
15199 DECLARE_OTHERS(AsmIntegerValueExpression);
15200#if defined(SgAsmIntegerValueExpression_OTHERS) || defined(DOCUMENTATION)
15201
15202 //----------------------- Boost serialization for SgAsmIntegerValueExpression -----------------------
15203#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15204private:
15205 friend class boost::serialization::access;
15206
15207 template<class S>
15208 void serialize(S &s, const unsigned /*version*/) {
15209 debugSerializationBegin("SgAsmIntegerValueExpression");
15210 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
15211 s & BOOST_SERIALIZATION_NVP(p_baseNode);
15212 debugSerializationEnd("SgAsmIntegerValueExpression");
15213 }
15214#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15215public:
15216public:
15227 SgNode* const& get_baseNode() const;
15228 void set_baseNode(SgNode* const&);
15230public:
15236
15243
15245 static uint64_t virtualAddress(SgNode*);
15246
15266 std::string get_label(bool quiet=false) const;
15267
15269 size_t get_significantBits() const;
15270
15276 void makeRelativeTo(SgNode *baseNode);
15277
15282 uint64_t get_baseAddress() const;
15283
15289 uint64_t get_absoluteValue(size_t nbits=0) const;
15290
15294 void set_absoluteValue(uint64_t);
15295
15297 int64_t get_signedValue() const;
15298
15302 int64_t get_relativeValue() const;
15303
15308 void set_relativeValue(int64_t v, size_t nbits=64);
15309
15310 uint64_t get_value() const { return get_absoluteValue(); }
15311public:
15314
15315public:
15318
15319protected:
15327#endif // SgAsmIntegerValueExpression_OTHERS
15328#ifdef DOCUMENTATION
15329};
15330#endif // DOCUMENTATION
15331
15332
15334// SgAsmIntegerType -- MACHINE GENERATED; DO NOT MODIFY --
15336
15337DECLARE_LEAF_CLASS(AsmIntegerType);
15338IS_SERIALIZABLE(AsmIntegerType);
15339
15340#ifndef DOCUMENTATION
15341AsmIntegerType.useSmallHeader(true);
15342#endif // !DOCUMENTATION
15343
15344DECLARE_HEADERS(AsmIntegerType);
15345#if defined(SgAsmIntegerType_HEADERS) || defined(DOCUMENTATION)
15346#include <Rose/BinaryAnalysis/ByteOrder.h>
15347#endif // SgAsmIntegerType_HEADERS
15348
15349#ifdef DOCUMENTATION
15352#endif // DOCUMENTATION
15353
15354#ifndef DOCUMENTATION
15355 AsmIntegerType.setDataPrototype(
15356 "bool", "isSigned", "= false",
15357 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15358#endif // !DOCUMENTATION
15359
15360 DECLARE_OTHERS(AsmIntegerType);
15361#if defined(SgAsmIntegerType_OTHERS) || defined(DOCUMENTATION)
15362
15363 //----------------------- Boost serialization for SgAsmIntegerType -----------------------
15364#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15365private:
15366 friend class boost::serialization::access;
15367
15368 template<class S>
15369 void serialize(S &s, const unsigned /*version*/) {
15370 debugSerializationBegin("SgAsmIntegerType");
15371 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
15372 s & BOOST_SERIALIZATION_NVP(p_isSigned);
15373 debugSerializationEnd("SgAsmIntegerType");
15374 }
15375#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15376public:
15377public:
15383 bool get_isSigned() const;
15386public:
15391
15394
15397
15398 // Overrides documented in base class
15399 virtual void check() const override;
15400 virtual std::string toString() const override;
15401public:
15404
15405public:
15408
15409protected:
15417#endif // SgAsmIntegerType_OTHERS
15418#ifdef DOCUMENTATION
15419};
15420#endif // DOCUMENTATION
15421
15422
15424// SgAsmInstructionList -- MACHINE GENERATED; DO NOT MODIFY --
15426
15427DECLARE_LEAF_CLASS(AsmInstructionList);
15428IS_SERIALIZABLE(AsmInstructionList);
15429
15430#ifndef DOCUMENTATION
15431AsmInstructionList.useSmallHeader(true);
15432#endif // !DOCUMENTATION
15433
15434DECLARE_HEADERS(AsmInstructionList);
15435#if defined(SgAsmInstructionList_HEADERS) || defined(DOCUMENTATION)
15436#include <sageContainer.h>
15437#endif // SgAsmInstructionList_HEADERS
15438
15439#ifdef DOCUMENTATION
15442#endif // DOCUMENTATION
15443
15444#ifndef DOCUMENTATION
15445 AsmInstructionList.setDataPrototype(
15446 "SgAsmInstructionPtrList", "instructions", "",
15447 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15448#endif // !DOCUMENTATION
15449
15450 DECLARE_OTHERS(AsmInstructionList);
15451#if defined(SgAsmInstructionList_OTHERS) || defined(DOCUMENTATION)
15452
15453 //----------------------- Boost serialization for SgAsmInstructionList -----------------------
15454#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15455private:
15456 friend class boost::serialization::access;
15457
15458 template<class S>
15459 void serialize(S &s, const unsigned /*version*/) {
15460 debugSerializationBegin("SgAsmInstructionList");
15461 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
15462 s & BOOST_SERIALIZATION_NVP(p_instructions);
15463 debugSerializationEnd("SgAsmInstructionList");
15464 }
15465#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15466public:
15467public:
15475 SgAsmInstructionPtrList const& get_instructions() const;
15476 SgAsmInstructionPtrList& get_instructions();
15477 void set_instructions(SgAsmInstructionPtrList const&);
15480public:
15483
15484public:
15487
15488protected:
15496#endif // SgAsmInstructionList_OTHERS
15497#ifdef DOCUMENTATION
15498};
15499#endif // DOCUMENTATION
15500
15501
15503// SgAsmIndirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
15505
15506DECLARE_LEAF_CLASS(AsmIndirectRegisterExpression);
15507IS_SERIALIZABLE(AsmIndirectRegisterExpression);
15508
15509#ifndef DOCUMENTATION
15510AsmIndirectRegisterExpression.useSmallHeader(true);
15511#endif // !DOCUMENTATION
15512
15513#ifdef DOCUMENTATION
15530#endif // DOCUMENTATION
15531
15532#ifndef DOCUMENTATION
15533 AsmIndirectRegisterExpression.setDataPrototype(
15534 "Rose::BinaryAnalysis::RegisterDescriptor", "stride", "",
15535 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15536#endif // !DOCUMENTATION
15537
15538#ifndef DOCUMENTATION
15539 AsmIndirectRegisterExpression.setDataPrototype(
15540 "Rose::BinaryAnalysis::RegisterDescriptor", "offset", "",
15541 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15542#endif // !DOCUMENTATION
15543
15544#ifndef DOCUMENTATION
15545 AsmIndirectRegisterExpression.setDataPrototype(
15546 "size_t", "index", "= 0",
15547 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15548#endif // !DOCUMENTATION
15549
15550#ifndef DOCUMENTATION
15551 AsmIndirectRegisterExpression.setDataPrototype(
15552 "size_t", "modulus", "= 0",
15553 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15554#endif // !DOCUMENTATION
15555
15556 DECLARE_OTHERS(AsmIndirectRegisterExpression);
15557#if defined(SgAsmIndirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
15558
15559 //----------------------- Boost serialization for SgAsmIndirectRegisterExpression -----------------------
15560#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15561private:
15562 friend class boost::serialization::access;
15563
15564 template<class S>
15565 void serialize(S &s, const unsigned /*version*/) {
15566 debugSerializationBegin("SgAsmIndirectRegisterExpression");
15567 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
15568 s & BOOST_SERIALIZATION_NVP(p_stride);
15569 s & BOOST_SERIALIZATION_NVP(p_offset);
15570 s & BOOST_SERIALIZATION_NVP(p_index);
15571 s & BOOST_SERIALIZATION_NVP(p_modulus);
15572 debugSerializationEnd("SgAsmIndirectRegisterExpression");
15573 }
15574#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15575public:
15576public:
15586public:
15596public:
15602 size_t const& get_index() const;
15603 void set_index(size_t const&);
15606public:
15612 size_t const& get_modulus() const;
15613 void set_modulus(size_t const&);
15616public:
15619
15620public:
15623
15624public:
15629 size_t const& index,
15630 size_t const& modulus);
15631
15632protected:
15640#endif // SgAsmIndirectRegisterExpression_OTHERS
15641#ifdef DOCUMENTATION
15642};
15643#endif // DOCUMENTATION
15644
15645
15647// SgAsmGenericSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
15649
15650DECLARE_LEAF_CLASS(AsmGenericSymbolList);
15651IS_SERIALIZABLE(AsmGenericSymbolList);
15652
15653#ifndef DOCUMENTATION
15654AsmGenericSymbolList.useSmallHeader(true);
15655#endif // !DOCUMENTATION
15656
15657DECLARE_HEADERS(AsmGenericSymbolList);
15658#if defined(SgAsmGenericSymbolList_HEADERS) || defined(DOCUMENTATION)
15659#include <sageContainer.h>
15660#endif // SgAsmGenericSymbolList_HEADERS
15661
15662#ifdef DOCUMENTATION
15668#endif // DOCUMENTATION
15669
15670#ifndef DOCUMENTATION
15671 AsmGenericSymbolList.setDataPrototype(
15672 "SgAsmGenericSymbolPtrList", "symbols", "",
15673 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15674#endif // !DOCUMENTATION
15675
15676 DECLARE_OTHERS(AsmGenericSymbolList);
15677#if defined(SgAsmGenericSymbolList_OTHERS) || defined(DOCUMENTATION)
15678
15679 //----------------------- Boost serialization for SgAsmGenericSymbolList -----------------------
15680#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15681private:
15682 friend class boost::serialization::access;
15683
15684 template<class S>
15685 void serialize(S &s, const unsigned /*version*/) {
15686 debugSerializationBegin("SgAsmGenericSymbolList");
15687 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15688 s & BOOST_SERIALIZATION_NVP(p_symbols);
15689 debugSerializationEnd("SgAsmGenericSymbolList");
15690 }
15691#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15692public:
15693public:
15697 SgAsmGenericSymbolPtrList const& get_symbols() const;
15698 SgAsmGenericSymbolPtrList& get_symbols();
15699 void set_symbols(SgAsmGenericSymbolPtrList const&);
15702public:
15705
15706public:
15709
15710protected:
15718#endif // SgAsmGenericSymbolList_OTHERS
15719#ifdef DOCUMENTATION
15720};
15721#endif // DOCUMENTATION
15722
15723
15725// SgAsmGenericSectionList -- MACHINE GENERATED; DO NOT MODIFY --
15727
15728DECLARE_LEAF_CLASS(AsmGenericSectionList);
15729IS_SERIALIZABLE(AsmGenericSectionList);
15730
15731#ifndef DOCUMENTATION
15732AsmGenericSectionList.useSmallHeader(true);
15733#endif // !DOCUMENTATION
15734
15735DECLARE_HEADERS(AsmGenericSectionList);
15736#if defined(SgAsmGenericSectionList_HEADERS) || defined(DOCUMENTATION)
15737#include <sageContainer.h>
15738#endif // SgAsmGenericSectionList_HEADERS
15739
15740#ifdef DOCUMENTATION
15746#endif // DOCUMENTATION
15747
15748#ifndef DOCUMENTATION
15749 AsmGenericSectionList.setDataPrototype(
15750 "SgAsmGenericSectionPtrList", "sections", "",
15751 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15752#endif // !DOCUMENTATION
15753
15754 DECLARE_OTHERS(AsmGenericSectionList);
15755#if defined(SgAsmGenericSectionList_OTHERS) || defined(DOCUMENTATION)
15756
15757 //----------------------- Boost serialization for SgAsmGenericSectionList -----------------------
15758#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15759private:
15760 friend class boost::serialization::access;
15761
15762 template<class S>
15763 void serialize(S &s, const unsigned /*version*/) {
15764 debugSerializationBegin("SgAsmGenericSectionList");
15765 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15766 s & BOOST_SERIALIZATION_NVP(p_sections);
15767 debugSerializationEnd("SgAsmGenericSectionList");
15768 }
15769#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15770public:
15771public:
15775 SgAsmGenericSectionPtrList const& get_sections() const;
15776 SgAsmGenericSectionPtrList& get_sections();
15777 void set_sections(SgAsmGenericSectionPtrList const&);
15780public:
15783
15784public:
15787
15788protected:
15796#endif // SgAsmGenericSectionList_OTHERS
15797#ifdef DOCUMENTATION
15798};
15799#endif // DOCUMENTATION
15800
15801
15803// SgAsmGenericHeaderList -- MACHINE GENERATED; DO NOT MODIFY --
15805
15806DECLARE_LEAF_CLASS(AsmGenericHeaderList);
15807IS_SERIALIZABLE(AsmGenericHeaderList);
15808
15809#ifndef DOCUMENTATION
15810AsmGenericHeaderList.useSmallHeader(true);
15811#endif // !DOCUMENTATION
15812
15813DECLARE_HEADERS(AsmGenericHeaderList);
15814#if defined(SgAsmGenericHeaderList_HEADERS) || defined(DOCUMENTATION)
15815#include <sageContainer.h>
15816#endif // SgAsmGenericHeaderList_HEADERS
15817
15818#ifdef DOCUMENTATION
15824#endif // DOCUMENTATION
15825
15826#ifndef DOCUMENTATION
15827 AsmGenericHeaderList.setDataPrototype(
15828 "SgAsmGenericHeaderPtrList", "headers", "",
15829 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15830#endif // !DOCUMENTATION
15831
15832 DECLARE_OTHERS(AsmGenericHeaderList);
15833#if defined(SgAsmGenericHeaderList_OTHERS) || defined(DOCUMENTATION)
15834
15835 //----------------------- Boost serialization for SgAsmGenericHeaderList -----------------------
15836#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15837private:
15838 friend class boost::serialization::access;
15839
15840 template<class S>
15841 void serialize(S &s, const unsigned /*version*/) {
15842 debugSerializationBegin("SgAsmGenericHeaderList");
15843 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15844 s & BOOST_SERIALIZATION_NVP(p_headers);
15845 debugSerializationEnd("SgAsmGenericHeaderList");
15846 }
15847#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15848public:
15849public:
15853 SgAsmGenericHeaderPtrList const& get_headers() const;
15854 SgAsmGenericHeaderPtrList& get_headers();
15855 void set_headers(SgAsmGenericHeaderPtrList const&);
15858public:
15861
15862public:
15865
15866protected:
15874#endif // SgAsmGenericHeaderList_OTHERS
15875#ifdef DOCUMENTATION
15876};
15877#endif // DOCUMENTATION
15878
15879
15881// SgAsmGenericFormat -- MACHINE GENERATED; DO NOT MODIFY --
15883
15884DECLARE_LEAF_CLASS(AsmGenericFormat);
15885IS_SERIALIZABLE(AsmGenericFormat);
15886
15887#ifndef DOCUMENTATION
15888AsmGenericFormat.useSmallHeader(true);
15889#endif // !DOCUMENTATION
15890
15891DECLARE_HEADERS(AsmGenericFormat);
15892#if defined(SgAsmGenericFormat_HEADERS) || defined(DOCUMENTATION)
15893#include <Rose/BinaryAnalysis/ByteOrder.h>
15894#endif // SgAsmGenericFormat_HEADERS
15895
15896#ifdef DOCUMENTATION
15899#endif // DOCUMENTATION
15900
15901#ifndef DOCUMENTATION
15902 AsmGenericFormat.setDataPrototype(
15903 "SgAsmGenericFormat::ExecFamily", "family", "= SgAsmGenericFormat::FAMILY_UNSPECIFIED",
15904 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15905#endif // !DOCUMENTATION
15906
15907#ifndef DOCUMENTATION
15908 AsmGenericFormat.setDataPrototype(
15909 "SgAsmGenericFormat::ExecPurpose", "purpose", "= SgAsmGenericFormat::PURPOSE_EXECUTABLE",
15910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15911#endif // !DOCUMENTATION
15912
15913#ifndef DOCUMENTATION
15914 AsmGenericFormat.setDataPrototype(
15915 "Rose::BinaryAnalysis::ByteOrder::Endianness", "sex", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
15916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15917#endif // !DOCUMENTATION
15918
15919#ifndef DOCUMENTATION
15920 AsmGenericFormat.setDataPrototype(
15921 "unsigned", "version", "= 0",
15922 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15923#endif // !DOCUMENTATION
15924
15925#ifndef DOCUMENTATION
15926 AsmGenericFormat.setDataPrototype(
15927 "bool", "isCurrentVersion", "= false",
15928 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15929#endif // !DOCUMENTATION
15930
15931#ifndef DOCUMENTATION
15932 AsmGenericFormat.setDataPrototype(
15933 "SgAsmGenericFormat::ExecABI", "abi", "= SgAsmGenericFormat::ABI_UNSPECIFIED",
15934 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15935#endif // !DOCUMENTATION
15936
15937#ifndef DOCUMENTATION
15938 AsmGenericFormat.setDataPrototype(
15939 "unsigned", "abiVersion", "= 0",
15940 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15941#endif // !DOCUMENTATION
15942
15943#ifndef DOCUMENTATION
15944 AsmGenericFormat.setDataPrototype(
15945 "size_t", "wordSize", "= 0",
15946 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15947#endif // !DOCUMENTATION
15948
15949 DECLARE_OTHERS(AsmGenericFormat);
15950#if defined(SgAsmGenericFormat_OTHERS) || defined(DOCUMENTATION)
15951
15952 //----------------------- Boost serialization for SgAsmGenericFormat -----------------------
15953#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15954private:
15955 friend class boost::serialization::access;
15956
15957 template<class S>
15958 void serialize(S &s, const unsigned /*version*/) {
15959 debugSerializationBegin("SgAsmGenericFormat");
15960 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15961 s & BOOST_SERIALIZATION_NVP(p_family);
15962 s & BOOST_SERIALIZATION_NVP(p_purpose);
15963 s & BOOST_SERIALIZATION_NVP(p_sex);
15964 s & BOOST_SERIALIZATION_NVP(p_version);
15965 s & BOOST_SERIALIZATION_NVP(p_isCurrentVersion);
15966 s & BOOST_SERIALIZATION_NVP(p_abi);
15967 s & BOOST_SERIALIZATION_NVP(p_abiVersion);
15968 s & BOOST_SERIALIZATION_NVP(p_wordSize);
15969 debugSerializationEnd("SgAsmGenericFormat");
15970 }
15971#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15972public:
15973public:
15981public:
15989public:
15997public:
16001 unsigned const& get_version() const;
16002 void set_version(unsigned const&);
16005public:
16012 bool const& get_isCurrentVersion() const;
16013 void set_isCurrentVersion(bool const&);
16016public:
16024public:
16028 unsigned const& get_abiVersion() const;
16029 void set_abiVersion(unsigned const&);
16032public:
16036 size_t const& get_wordSize() const;
16037 void set_wordSize(size_t const&);
16039public:
16041 void dump(FILE*, const char *prefix, ssize_t idx) const;
16042
16044 // Deprecated 2023-11
16046public:
16047 bool get_is_current_version() const ROSE_DEPRECATED("use get_isCurrentVersion");
16048 void set_is_current_version(bool) ROSE_DEPRECATED("use set_isCurrentVersion");
16049 unsigned get_abi_version() const ROSE_DEPRECATED("use get_abiVersion");
16050 void set_abi_version(unsigned) ROSE_DEPRECATED("use set_abiVersion");
16051 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
16052 void set_word_size(size_t) ROSE_DEPRECATED("use set_wordSize");
16053public:
16056
16057public:
16060
16061protected:
16069#endif // SgAsmGenericFormat_OTHERS
16070#ifdef DOCUMENTATION
16071};
16072#endif // DOCUMENTATION
16073
16074
16076// SgAsmGenericFileList -- MACHINE GENERATED; DO NOT MODIFY --
16078
16079DECLARE_LEAF_CLASS(AsmGenericFileList);
16080IS_SERIALIZABLE(AsmGenericFileList);
16081
16082#ifndef DOCUMENTATION
16083AsmGenericFileList.useSmallHeader(true);
16084#endif // !DOCUMENTATION
16085
16086DECLARE_HEADERS(AsmGenericFileList);
16087#if defined(SgAsmGenericFileList_HEADERS) || defined(DOCUMENTATION)
16088#include <sageContainer.h>
16089#endif // SgAsmGenericFileList_HEADERS
16090
16091#ifdef DOCUMENTATION
16097#endif // DOCUMENTATION
16098
16099#ifndef DOCUMENTATION
16100 AsmGenericFileList.setDataPrototype(
16101 "SgAsmGenericFilePtrList", "files", "",
16102 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16103#endif // !DOCUMENTATION
16104
16105 DECLARE_OTHERS(AsmGenericFileList);
16106#if defined(SgAsmGenericFileList_OTHERS) || defined(DOCUMENTATION)
16107
16108 //----------------------- Boost serialization for SgAsmGenericFileList -----------------------
16109#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16110private:
16111 friend class boost::serialization::access;
16112
16113 template<class S>
16114 void serialize(S &s, const unsigned /*version*/) {
16115 debugSerializationBegin("SgAsmGenericFileList");
16116 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
16117 s & BOOST_SERIALIZATION_NVP(p_files);
16118 debugSerializationEnd("SgAsmGenericFileList");
16119 }
16120#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16121public:
16122public:
16126 SgAsmGenericFilePtrList const& get_files() const;
16127 SgAsmGenericFilePtrList& get_files();
16128 void set_files(SgAsmGenericFilePtrList const&);
16131public:
16134
16135public:
16138
16139protected:
16147#endif // SgAsmGenericFileList_OTHERS
16148#ifdef DOCUMENTATION
16149};
16150#endif // DOCUMENTATION
16151
16152
16154// SgAsmGenericFile -- MACHINE GENERATED; DO NOT MODIFY --
16156
16157DECLARE_LEAF_CLASS(AsmGenericFile);
16158IS_SERIALIZABLE(AsmGenericFile);
16159
16160#ifndef DOCUMENTATION
16161AsmGenericFile.useSmallHeader(true);
16162#endif // !DOCUMENTATION
16163
16164DECLARE_HEADERS(AsmGenericFile);
16165#if defined(SgAsmGenericFile_HEADERS) || defined(DOCUMENTATION)
16166#include <Rose/BinaryAnalysis/Address.h>
16167#include <Rose/BinaryAnalysis/MemoryMap.h>
16168#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
16169
16170#include "DataConversion.h"
16171#include "StatSerializer.h" // non-intrusive serialization of struct stat
16172
16173#ifdef ROSE_SgAsmGenericFile_IMPL
16174#include <SgAsmDwarfCompilationUnitList.h>
16175#include <SgAsmGenericSectionList.h>
16176#include <SgAsmGenericHeaderList.h>
16177#endif
16178
16179#include <sys/stat.h>
16180#endif // SgAsmGenericFile_HEADERS
16181
16182#ifdef DOCUMENTATION
16185#endif // DOCUMENTATION
16186
16187#ifndef DOCUMENTATION
16188 AsmGenericFile.setDataPrototype(
16189 "SgAsmDwarfCompilationUnitList*", "dwarfInfo", "= nullptr",
16190 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16191#endif // !DOCUMENTATION
16192
16193#ifndef DOCUMENTATION
16194 AsmGenericFile.setDataPrototype(
16195 "std::string", "name", "",
16196 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16197#endif // !DOCUMENTATION
16198
16199#ifndef DOCUMENTATION
16200 AsmGenericFile.setDataPrototype(
16201 "int", "fd", "= -1",
16202 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16203#endif // !DOCUMENTATION
16204
16205#ifndef DOCUMENTATION
16206 AsmGenericFile.setDataPrototype(
16207 "struct stat", "sb", "",
16208 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16209#endif // !DOCUMENTATION
16210
16211#ifndef DOCUMENTATION
16212 AsmGenericFile.setDataPrototype(
16213 "SgFileContentList", "data", "",
16214 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16215#endif // !DOCUMENTATION
16216
16217#ifndef DOCUMENTATION
16218 AsmGenericFile.setDataPrototype(
16219 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
16220 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16221#endif // !DOCUMENTATION
16222
16223#ifndef DOCUMENTATION
16224 AsmGenericFile.setDataPrototype(
16225 "SgAsmGenericSectionList*", "holes", "= createAndParent<SgAsmGenericSectionList>(this)",
16226 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16227#endif // !DOCUMENTATION
16228
16229#ifndef DOCUMENTATION
16230 AsmGenericFile.setDataPrototype(
16231 "bool", "truncateZeros", "= false",
16232 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16233#endif // !DOCUMENTATION
16234
16235#ifndef DOCUMENTATION
16236 AsmGenericFile.setDataPrototype(
16237 "bool", "trackingReferences", "= true",
16238 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16239#endif // !DOCUMENTATION
16240
16241#ifndef DOCUMENTATION
16242 AsmGenericFile.setDataPrototype(
16243 "Rose::BinaryAnalysis::AddressIntervalSet", "referencedExtents", "",
16244 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16245#endif // !DOCUMENTATION
16246
16247#ifndef DOCUMENTATION
16248 AsmGenericFile.setDataPrototype(
16249 "bool", "neuter", "= false",
16250 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16251#endif // !DOCUMENTATION
16252
16253 DECLARE_OTHERS(AsmGenericFile);
16254#if defined(SgAsmGenericFile_OTHERS) || defined(DOCUMENTATION)
16255
16256 //----------------------- Boost serialization for SgAsmGenericFile -----------------------
16257#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16258private:
16259 friend class boost::serialization::access;
16260
16261 template<class S>
16262 void serialize(S &s, const unsigned /*version*/) {
16263 debugSerializationBegin("SgAsmGenericFile");
16264 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16265 s & BOOST_SERIALIZATION_NVP(p_dwarfInfo);
16266 s & BOOST_SERIALIZATION_NVP(p_name);
16267 s & BOOST_SERIALIZATION_NVP(p_sb);
16268 s & BOOST_SERIALIZATION_NVP(p_data);
16269 s & BOOST_SERIALIZATION_NVP(p_headers);
16270 s & BOOST_SERIALIZATION_NVP(p_holes);
16271 s & BOOST_SERIALIZATION_NVP(p_truncateZeros);
16272 s & BOOST_SERIALIZATION_NVP(p_trackingReferences);
16273 s & BOOST_SERIALIZATION_NVP(p_referencedExtents);
16274 s & BOOST_SERIALIZATION_NVP(p_neuter);
16275 debugSerializationEnd("SgAsmGenericFile");
16276 }
16277#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16279 // Local types
16281public:
16284 ADDRSP_MEMORY = 0x0001,
16285 ADDRSP_FILE = 0x0002,
16286 ADDRSP_ALL = 0x0003
16287 };
16288
16295
16297 // Properties
16299public:
16300public:
16308public:
16312 std::string const& get_name() const;
16313 void set_name(std::string const&);
16316public:
16322 int const& get_fd() const;
16323 void set_fd(int const&);
16326public:
16327 struct stat const& get_sb() const;
16328
16329public:
16337public:
16347public:
16358public:
16362 bool const& get_truncateZeros() const;
16363 void set_truncateZeros(bool const&);
16366public:
16370 bool const& get_trackingReferences() const;
16371 void set_trackingReferences(bool const&);
16374public:
16382public:
16386 bool const& get_neuter() const;
16387 void set_neuter(bool const&);
16390 // Non-property data members
16392private:
16393 mutable Rose::BinaryAnalysis::AddressIntervalSet *p_unreferenced_cache = nullptr;
16394 DataConverter *p_data_converter = nullptr;
16395
16397 // Functions
16399public:
16401 SgAsmGenericFile* parse(std::string file_name);
16402
16403 void reallocate();
16404
16411 void unparse(std::ostream&) const;
16412
16414 void extendToEof(std::ostream&) const;
16415
16417 void dump(FILE*) const;
16418
16425 void dumpAll(bool in_cwd=true, const char *ext=NULL);
16426
16428 void dumpAll(const std::string& dumpname);
16429
16432
16435
16447
16450
16458 size_t readContent(Rose::BinaryAnalysis::Address offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
16459
16467 Rose::BinaryAnalysis::Address size, bool strict=true);
16468
16477
16485 std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true);
16486
16488 const SgFileContentList& content() { return p_data; }
16489
16497
16499 SgAsmGenericSectionPtrList get_mappedSections() const;
16500
16502 SgAsmGenericSectionPtrList get_sections(bool include_holes=true) const;
16503
16505 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
16506
16508 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep='\0') const;
16509
16515
16520 SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const;
16521
16526 SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va) const;
16527
16532 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
16533
16539 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
16540
16547
16553
16559
16566
16577 static SgAsmGenericSection *bestSectionByVa(const SgAsmGenericSectionPtrList &sections, Rose::BinaryAnalysis::Address va);
16578
16619 Elasticity);
16628
16633
16636
16643
16648
16653
16656
16659
16664 const char *formatName() const;
16665
16666protected:
16667 // Some extra clean-up actions on destruction
16668 virtual void destructorHelper() override;
16669
16671 // Deprecated 2023-11
16673public:
16674 SgAsmDwarfCompilationUnitList* get_dwarf_info() const ROSE_DEPRECATED("use get_dwarfInfo");
16675 void set_dwarf_info(SgAsmDwarfCompilationUnitList*) ROSE_DEPRECATED("use set_dwarfInfo");
16676 bool get_truncate_zeros() const ROSE_DEPRECATED("use get_truncateZeros");
16677 void set_truncate_zeros(bool) ROSE_DEPRECATED("use set_truncateZeros");
16678 bool get_tracking_references() const ROSE_DEPRECATED("use get_trackingReferences");
16679 void set_tracking_references(bool) ROSE_DEPRECATED("use set_trackingReferences");
16680 const Rose::BinaryAnalysis::AddressIntervalSet& get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
16681 void set_referenced_extents(const Rose::BinaryAnalysis::AddressIntervalSet&) ROSE_DEPRECATED("use set_referencedExtents");
16682 void extend_to_eof(std::ostream&) const ROSE_DEPRECATED("use extendToEof");
16683 void dump_all(bool in_cwd=true, const char *ext=NULL) ROSE_DEPRECATED("use dumpAll");
16684 void dump_all(const std::string& dumpname) ROSE_DEPRECATED("use dumpAll");
16685 const Rose::BinaryAnalysis::AddressIntervalSet& get_unreferenced_extents() const
16686 ROSE_DEPRECATED("use get_unreferencedExtents");
16687 void mark_referenced_extent(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
16688 ROSE_DEPRECATED("use markReferencedExtent");
16689 DataConverter* get_data_converter() const ROSE_DEPRECATED("use get_dataConverter");
16690 void set_data_converter(DataConverter*) ROSE_DEPRECATED("use set_dataConverter");
16691 Rose::BinaryAnalysis::Address get_current_size() const ROSE_DEPRECATED("use get_currentSize");
16692 Rose::BinaryAnalysis::Address get_orig_size() const ROSE_DEPRECATED("use get_originalSize");
16693 size_t read_content(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
16694 ROSE_DEPRECATED("use readContent");
16695 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, void*,
16696 Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContent");
16697 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, bool=true)
16698 ROSE_DEPRECATED("use readContentString");
16699 std::string read_content_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentString");
16700 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
16701 SgAsmGenericSectionPtrList get_sections_by_id(int id) const ROSE_DEPRECATED("use get_sectionById");
16702 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char='\0') const ROSE_DEPRECATED("use get_sectionsByName");
16703 SgAsmGenericSectionPtrList get_sections_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address) const
16704 ROSE_DEPRECATED("use get_sectionsByOffset");
16705 SgAsmGenericSectionPtrList get_sections_by_rva(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByRva");
16706 SgAsmGenericSectionPtrList get_sections_by_va(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByVa");
16707 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
16708 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
16709 ROSE_DEPRECATED("use get_sectionByName");
16710 SgAsmGenericSection*get_section_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16711 ROSE_DEPRECATED("use get_sectionByOffset");
16712 SgAsmGenericSection *get_section_by_rva(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16713 ROSE_DEPRECATED("use get_sectionByRva");
16714 SgAsmGenericSection *get_section_by_va(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16715 ROSE_DEPRECATED("use get_sectionByVa");
16716 SgAsmGenericSection *get_best_section_by_va(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16717 ROSE_DEPRECATED("use get_bestSectionByVa");
16718 static SgAsmGenericSection *best_section_by_va(const SgAsmGenericSectionPtrList&, Rose::BinaryAnalysis::Address)
16719 ROSE_DEPRECATED("use bestSectionByVa");
16720 void shift_extend(SgAsmGenericSection*, Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address, AddressSpace, Elasticity)
16721 ROSE_DEPRECATED("use shiftExtend");
16722 void shift_extend(SgAsmGenericSection*, Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
16723 ROSE_DEPRECATED("use shiftExtend");
16724 Rose::BinaryAnalysis::Address get_next_section_offset(Rose::BinaryAnalysis::Address)
16725 ROSE_DEPRECATED("use get_nextSectionOffset");
16726 void add_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use addHole");
16727 void remove_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use remoeHole");
16728 void fill_holes() ROSE_DEPRECATED("use fillHoles");
16729 void unfill_holes() ROSE_DEPRECATED("use unfillHoles");
16730 void add_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use addHeader");
16731 void remove_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use removeHeader");
16732 const char *format_name() const ROSE_DEPRECATED("use formatName");
16733public:
16736
16737public:
16740
16741protected:
16749#endif // SgAsmGenericFile_OTHERS
16750#ifdef DOCUMENTATION
16751};
16752#endif // DOCUMENTATION
16753
16754
16756// SgAsmGenericDLLList -- MACHINE GENERATED; DO NOT MODIFY --
16758
16759DECLARE_LEAF_CLASS(AsmGenericDLLList);
16760IS_SERIALIZABLE(AsmGenericDLLList);
16761
16762#ifndef DOCUMENTATION
16763AsmGenericDLLList.useSmallHeader(true);
16764#endif // !DOCUMENTATION
16765
16766DECLARE_HEADERS(AsmGenericDLLList);
16767#if defined(SgAsmGenericDLLList_HEADERS) || defined(DOCUMENTATION)
16768#include <sageContainer.h>
16769#endif // SgAsmGenericDLLList_HEADERS
16770
16771#ifdef DOCUMENTATION
16777#endif // DOCUMENTATION
16778
16779#ifndef DOCUMENTATION
16780 AsmGenericDLLList.setDataPrototype(
16781 "SgAsmGenericDLLPtrList", "dlls", "",
16782 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16783#endif // !DOCUMENTATION
16784
16785 DECLARE_OTHERS(AsmGenericDLLList);
16786#if defined(SgAsmGenericDLLList_OTHERS) || defined(DOCUMENTATION)
16787
16788 //----------------------- Boost serialization for SgAsmGenericDLLList -----------------------
16789#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16790private:
16791 friend class boost::serialization::access;
16792
16793 template<class S>
16794 void serialize(S &s, const unsigned /*version*/) {
16795 debugSerializationBegin("SgAsmGenericDLLList");
16796 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16797 s & BOOST_SERIALIZATION_NVP(p_dlls);
16798 debugSerializationEnd("SgAsmGenericDLLList");
16799 }
16800#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16801public:
16802public:
16806 SgAsmGenericDLLPtrList const& get_dlls() const;
16807 SgAsmGenericDLLPtrList& get_dlls();
16808 void set_dlls(SgAsmGenericDLLPtrList const&);
16811public:
16814
16815public:
16818
16819protected:
16827#endif // SgAsmGenericDLLList_OTHERS
16828#ifdef DOCUMENTATION
16829};
16830#endif // DOCUMENTATION
16831
16832
16834// SgAsmGenericDLL -- MACHINE GENERATED; DO NOT MODIFY --
16836
16837DECLARE_LEAF_CLASS(AsmGenericDLL);
16838IS_SERIALIZABLE(AsmGenericDLL);
16839
16840#ifndef DOCUMENTATION
16841AsmGenericDLL.useSmallHeader(true);
16842#endif // !DOCUMENTATION
16843
16844DECLARE_HEADERS(AsmGenericDLL);
16845#if defined(SgAsmGenericDLL_HEADERS) || defined(DOCUMENTATION)
16846#include <sageContainer.h>
16847
16848#ifdef ROSE_SgAsmGenericDLL_IMPL
16849#include <SgAsmBasicString.h>
16850#endif
16851#endif // SgAsmGenericDLL_HEADERS
16852
16853#ifdef DOCUMENTATION
16856#endif // DOCUMENTATION
16857
16858#ifndef DOCUMENTATION
16859 AsmGenericDLL.setDataPrototype(
16860 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
16861 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16862#endif // !DOCUMENTATION
16863
16864#ifndef DOCUMENTATION
16865 AsmGenericDLL.setDataPrototype(
16866 "SgStringList", "symbols", "",
16867 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16868#endif // !DOCUMENTATION
16869
16870 DECLARE_OTHERS(AsmGenericDLL);
16871#if defined(SgAsmGenericDLL_OTHERS) || defined(DOCUMENTATION)
16872
16873 //----------------------- Boost serialization for SgAsmGenericDLL -----------------------
16874#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16875private:
16876 friend class boost::serialization::access;
16877
16878 template<class S>
16879 void serialize(S &s, const unsigned /*version*/) {
16880 debugSerializationBegin("SgAsmGenericDLL");
16881 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16882 s & BOOST_SERIALIZATION_NVP(p_name);
16883 s & BOOST_SERIALIZATION_NVP(p_symbols);
16884 debugSerializationEnd("SgAsmGenericDLL");
16885 }
16886#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16887public:
16888public:
16895public:
16899 SgStringList const& get_symbols() const;
16900 void set_symbols(SgStringList const&);
16902public:
16905
16907 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
16908
16910 void addSymbol(const std::string&);
16911
16913 // Deprecated 2023-11
16915public:
16916 void add_symbol(const std::string&) ROSE_DEPRECATED("use addSymbol");
16917public:
16920
16921public:
16924
16925protected:
16933#endif // SgAsmGenericDLL_OTHERS
16934#ifdef DOCUMENTATION
16935};
16936#endif // DOCUMENTATION
16937
16938
16940// SgAsmFunction -- MACHINE GENERATED; DO NOT MODIFY --
16942
16943DECLARE_LEAF_CLASS(AsmFunction);
16944IS_SERIALIZABLE(AsmFunction);
16945
16946#ifndef DOCUMENTATION
16947AsmFunction.useSmallHeader(true);
16948#endif // !DOCUMENTATION
16949
16950DECLARE_HEADERS(AsmFunction);
16951#if defined(SgAsmFunction_HEADERS) || defined(DOCUMENTATION)
16952#include <Rose/BinaryAnalysis/Address.h>
16953#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
16954#include <sageContainer.h>
16955
16956#ifdef ROSE_SgAsmFunction_IMPL
16957#include <SgAsmInstruction.h>
16958#endif
16959#endif // SgAsmFunction_HEADERS
16960
16961#ifdef DOCUMENTATION
16978#endif // DOCUMENTATION
16979
16980#ifndef DOCUMENTATION
16981 AsmFunction.setDataPrototype(
16982 "std::string", "name", "",
16983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16984#endif // !DOCUMENTATION
16985
16986#ifndef DOCUMENTATION
16987 AsmFunction.setDataPrototype(
16988 "unsigned", "reason", "= SgAsmFunction::FUNC_NONE",
16989 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16990#endif // !DOCUMENTATION
16991
16992#ifndef DOCUMENTATION
16993 AsmFunction.setDataPrototype(
16994 "std::string", "reasonComment", "",
16995 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16996#endif // !DOCUMENTATION
16997
16998#ifndef DOCUMENTATION
16999 AsmFunction.setDataPrototype(
17000 "SgAsmFunction::function_kind_enum", "functionKind", "= SgAsmFunction::e_unknown",
17001 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17002#endif // !DOCUMENTATION
17003
17004#ifndef DOCUMENTATION
17005 AsmFunction.setDataPrototype(
17006 "SgAsmFunction::MayReturn", "mayReturn", "= SgAsmFunction::RET_UNKNOWN",
17007 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17008#endif // !DOCUMENTATION
17009
17010#ifndef DOCUMENTATION
17011 AsmFunction.setDataPrototype(
17012 "std::string", "nameMd5", "",
17013 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17014#endif // !DOCUMENTATION
17015
17016#ifndef DOCUMENTATION
17017 AsmFunction.setDataPrototype(
17018 "SgAsmStatementPtrList", "statementList", "",
17019 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17020#endif // !DOCUMENTATION
17021
17022#ifndef DOCUMENTATION
17023 AsmFunction.setDataPrototype(
17024 "SgAsmStatementPtrList", "dest", "",
17025 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17026#endif // !DOCUMENTATION
17027
17028#ifndef DOCUMENTATION
17029 AsmFunction.setDataPrototype(
17030 "Rose::BinaryAnalysis::Address", "entryVa", "= 0",
17031 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17032#endif // !DOCUMENTATION
17033
17034#ifndef DOCUMENTATION
17035 AsmFunction.setDataPrototype(
17036 "SgSymbolTable*", "symbolTable", "= nullptr",
17037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17038#endif // !DOCUMENTATION
17039
17040#ifndef DOCUMENTATION
17041 AsmFunction.setDataPrototype(
17042 "size_t", "cachedVertex", "= (size_t)(-1)",
17043 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17044#endif // !DOCUMENTATION
17045
17046#ifndef DOCUMENTATION
17047 AsmFunction.setDataPrototype(
17048 "int64_t", "stackDelta", "= SgAsmInstruction::INVALID_STACK_DELTA",
17049 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17050#endif // !DOCUMENTATION
17051
17052#ifndef DOCUMENTATION
17053 AsmFunction.setDataPrototype(
17054 "std::string", "callingConvention", "",
17055 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17056#endif // !DOCUMENTATION
17057
17058 DECLARE_OTHERS(AsmFunction);
17059#if defined(SgAsmFunction_OTHERS) || defined(DOCUMENTATION)
17060
17061 //----------------------- Boost serialization for SgAsmFunction -----------------------
17062#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17063private:
17064 friend class boost::serialization::access;
17065
17066 template<class S>
17067 void serialize(S &s, const unsigned /*version*/) {
17068 debugSerializationBegin("SgAsmFunction");
17069 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
17070 s & BOOST_SERIALIZATION_NVP(p_name);
17071 s & BOOST_SERIALIZATION_NVP(p_reason);
17072 s & BOOST_SERIALIZATION_NVP(p_reasonComment);
17073 s & BOOST_SERIALIZATION_NVP(p_functionKind);
17074 s & BOOST_SERIALIZATION_NVP(p_mayReturn);
17075 s & BOOST_SERIALIZATION_NVP(p_nameMd5);
17076 s & BOOST_SERIALIZATION_NVP(p_statementList);
17077 s & BOOST_SERIALIZATION_NVP(p_dest);
17078 s & BOOST_SERIALIZATION_NVP(p_entryVa);
17079 s & BOOST_SERIALIZATION_NVP(p_cachedVertex);
17080 s & BOOST_SERIALIZATION_NVP(p_stackDelta);
17081 s & BOOST_SERIALIZATION_NVP(p_callingConvention);
17082 debugSerializationEnd("SgAsmFunction");
17083 }
17084#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17086 // Local types
17088public:
17096
17101 // NOTE: If you add more here, then fix Partitioner::parse_switches()
17102 // Also fix SgAsmFunction::reason_key()
17103 FUNC_NONE = 0x00000000,
17104 FUNC_THUNK_TARGET= 0x00004000,
17106 = 0x00008000,
17107 FUNC_ENTRY_POINT = 0x00010000,
17108 FUNC_CALL_TARGET = 0x00020000,
17111 FUNC_CALL_INSN = 0x00040000,
17117 FUNC_EH_FRAME = 0x00080000,
17118 FUNC_SYMBOL = 0x00100000,
17119 FUNC_PATTERN = 0x00200000,
17124 FUNC_GRAPH = 0x00400000,
17128 FUNC_USERDEF = 0x00800000,
17129 FUNC_PADDING = 0x01000000,
17134 FUNC_DISCONT = 0x02000000,
17137 FUNC_INSNHEAD = 0x04000000,
17138 FUNC_IMPORT = 0x08000000,
17141 FUNC_LEFTOVERS = 0x10000000,
17145 FUNC_INTRABLOCK = 0x20000000,
17153 FUNC_THUNK = 0x40000000,
17162 FUNC_EXPORT = 0x80000000,
17164 FUNC_DEFAULT = 0xefff80ff,
17166 /*========= Miscellaneous Reasons ===========================================================================
17167 * The first half of the range (1-127, inclusive) is used for algorithms defined by ROSE. The second half is
17168 * availalble for users to use as they see fit. */
17169 FUNC_MISCMASK = 0x000000ff,
17175 FUNC_INTERPADFUNC = 1,
17182 FUNC_INSN_RO_DATA = 6,
17184 };
17185
17188 e_unknown = 0,
17189 e_standard = 1,
17190 e_library = 2,
17191 e_imported = 3,
17192 e_thunk = 4,
17193 e_last
17194 };
17195
17197 // Properties
17199public:
17200public:
17206 std::string const& get_name() const;
17207 void set_name(std::string const&);
17210public:
17217 unsigned const& get_reason() const;
17218 void set_reason(unsigned const&);
17221public:
17229 std::string const& get_reasonComment() const;
17230 void set_reasonComment(std::string const&);
17233public:
17243public:
17251public:
17257 std::string const& get_nameMd5() const;
17258 void set_nameMd5(std::string const&);
17261public:
17267 SgAsmStatementPtrList const& get_statementList() const;
17268 SgAsmStatementPtrList& get_statementList();
17269 void set_statementList(SgAsmStatementPtrList const&);
17271 // FIXME[Robb P Matzke 2017-02-13]: unused?
17272public:
17273 SgAsmStatementPtrList const& get_dest() const;
17274 void set_dest(SgAsmStatementPtrList const&);
17275
17276public:
17287public:
17297 // FIXME[Robb P Matzke 2017-02-13]: what is this?
17298public:
17299 size_t const& get_cachedVertex() const;
17300 void set_cachedVertex(size_t const&);
17301
17302public:
17312 int64_t const& get_stackDelta() const;
17313 void set_stackDelta(int64_t const&);
17316public:
17325 std::string const& get_callingConvention() const;
17326 void set_callingConvention(std::string const&);
17329 // Functions
17331public:
17334
17339
17345
17349 static std::string reasonKey(const std::string &prefix = "");
17350
17352 std::string reasonString(bool pad) const;
17353
17357 static std::string reasonString(bool pad, unsigned reason);
17358
17361 public:
17362 virtual ~NodeSelector() {}
17363 virtual bool operator()(SgNode*) = 0;
17364 };
17365
17406 Rose::BinaryAnalysis::Address *hi_addr=NULL, NodeSelector *selector=NULL);
17407
17413 bool get_sha1(uint8_t digest[20]/*out*/, NodeSelector *selector=NULL);
17414
17416 // Deprecated 2023-11
17418public:
17419 function_kind_enum get_function_kind() const ROSE_DEPRECATED("use get_functionKind");
17420 void set_function_kind(function_kind_enum) ROSE_DEPRECATED("use set_functionKind");
17421 MayReturn get_may_return() const ROSE_DEPRECATED("use get_mayReturn");
17422 void set_may_return(MayReturn) ROSE_DEPRECATED("use set_mayReturn");
17423 const std::string& get_name_md5() const ROSE_DEPRECATED("use get_nameMd5");
17424 void set_name_md5(const std::string&) ROSE_DEPRECATED("use set_nameMd5");
17425 Rose::BinaryAnalysis::Address get_entry_va() const ROSE_DEPRECATED("use get_entryVa");
17426 void set_entry_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_entryVa");
17427 SgSymbolTable* get_symbol_table() const ROSE_DEPRECATED("use get_symbolTable");
17428 void set_symbol_table(SgSymbolTable*) ROSE_DEPRECATED("use set_symbolTable");
17429 size_t get_cached_vertex() const ROSE_DEPRECATED("use get_cachedVertex");
17430 void set_cached_vertex(size_t) ROSE_DEPRECATED("use set_cachedVertex");
17431 void append_statement(SgAsmStatement*) ROSE_DEPRECATED("use appendStatement");
17432 void remove_statement(SgAsmStatement* statement) ROSE_DEPRECATED("use removeStatement");
17433 SgAsmBlock* get_entry_block() const ROSE_DEPRECATED("use get_entryBlock");
17434 static std::string reason_key(const std::string &prefix="") ROSE_DEPRECATED("use reasonKey");
17435 std::string reason_str(bool) const ROSE_DEPRECATED("use reasonString");
17436 static std::string reason_str(bool, unsigned) ROSE_DEPRECATED("use reasonString");
17437public:
17439 virtual ~SgAsmFunction();
17440
17441public:
17444
17445public:
17447 SgAsmFunction(Rose::BinaryAnalysis::Address const& address,
17448 std::string const& name,
17449 unsigned const& reason,
17450 SgAsmFunction::function_kind_enum const& functionKind);
17451
17452protected:
17460#endif // SgAsmFunction_OTHERS
17461#ifdef DOCUMENTATION
17462};
17463#endif // DOCUMENTATION
17464
17465
17467// SgAsmSynthesizedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
17469
17470#ifndef DOCUMENTATION
17471AstNodeClass& AsmSynthesizedDeclaration = nonTerminalConstructor(
17472 "AsmSynthesizedDeclaration",
17473 *this,
17474 "AsmSynthesizedDeclaration",
17475 "AsmSynthesizedDeclarationTag",
17476 SubclassListBuilder()
17477 | AsmFunction
17478 | AsmSynthesizedDataStructureDeclaration
17479 | AsmSynthesizedFieldDeclaration
17480 , false);
17481assert(AsmSynthesizedDeclaration.associatedGrammar != nullptr);
17482AsmSynthesizedDeclaration.setCppCondition("!defined(DOCUMENTATION)");
17483AsmSynthesizedDeclaration.isBoostSerializable(true);
17484AsmSynthesizedDeclaration.setAutomaticGenerationOfConstructor(false);
17485AsmSynthesizedDeclaration.setAutomaticGenerationOfDestructor(false);
17486#endif // !DOCUMENTATION
17487
17488#ifndef DOCUMENTATION
17489AsmSynthesizedDeclaration.useSmallHeader(true);
17490#endif // !DOCUMENTATION
17491
17492#ifdef DOCUMENTATION
17500#endif // DOCUMENTATION
17501
17502 DECLARE_OTHERS(AsmSynthesizedDeclaration);
17503#if defined(SgAsmSynthesizedDeclaration_OTHERS) || defined(DOCUMENTATION)
17504
17505 //----------------------- Boost serialization for SgAsmSynthesizedDeclaration -----------------------
17506#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17507private:
17508 friend class boost::serialization::access;
17509
17510 template<class S>
17511 void serialize(S &s, const unsigned /*version*/) {
17512 debugSerializationBegin("SgAsmSynthesizedDeclaration");
17513 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
17514 debugSerializationEnd("SgAsmSynthesizedDeclaration");
17515 }
17516#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17517
17518public:
17521
17522protected:
17525
17526protected:
17529
17530protected:
17538#endif // SgAsmSynthesizedDeclaration_OTHERS
17539#ifdef DOCUMENTATION
17540};
17541#endif // DOCUMENTATION
17542
17543
17545// SgAsmFloatValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
17547
17548DECLARE_LEAF_CLASS(AsmFloatValueExpression);
17549IS_SERIALIZABLE(AsmFloatValueExpression);
17550
17551#ifndef DOCUMENTATION
17552AsmFloatValueExpression.useSmallHeader(true);
17553#endif // !DOCUMENTATION
17554
17555#ifdef DOCUMENTATION
17561#endif // DOCUMENTATION
17562
17563 DECLARE_OTHERS(AsmFloatValueExpression);
17564#if defined(SgAsmFloatValueExpression_OTHERS) || defined(DOCUMENTATION)
17565
17566 //----------------------- Boost serialization for SgAsmFloatValueExpression -----------------------
17567#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17568private:
17569 friend class boost::serialization::access;
17570
17571 template<class S>
17572 void serialize(S &s, const unsigned /*version*/) {
17573 debugSerializationBegin("SgAsmFloatValueExpression");
17574 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
17575 s & BOOST_SERIALIZATION_NVP(p_nativeValue);
17576 s & BOOST_SERIALIZATION_NVP(p_nativeValueIsValid);
17577 debugSerializationEnd("SgAsmFloatValueExpression");
17578 }
17579#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17580private:
17581 // This node stores its primary representation of the value in the p_bitVector of a parent class. However, since we
17582 // often access the value as a native "double", and since converting to/from a bit vector is costly, we want to cache
17583 // the native double value whenever we compute it. ROSETTA does not need to be aware of the cached value since it can
17584 // be recomputed from the bit vector, and in fact, ROSETTA can't handle cache data members because it doesn't
17585 // understand "mutable".
17586 //
17587 // However, Rosebud handles this just fine.
17588private:
17589 mutable double p_nativeValue;
17590
17591public:
17592
17593private:
17594 mutable bool p_nativeValueIsValid;
17595
17596public:
17597public:
17607
17614
17616 void set_nativeValue(double);
17617
17619 double get_nativeValue() const;
17620
17626
17631 void updateNativeValue() const;
17632public:
17635
17636public:
17639
17640protected:
17648#endif // SgAsmFloatValueExpression_OTHERS
17649#ifdef DOCUMENTATION
17650};
17651#endif // DOCUMENTATION
17652
17653
17655// SgAsmFloatType -- MACHINE GENERATED; DO NOT MODIFY --
17657
17658DECLARE_LEAF_CLASS(AsmFloatType);
17659IS_SERIALIZABLE(AsmFloatType);
17660
17661#ifndef DOCUMENTATION
17662AsmFloatType.useSmallHeader(true);
17663#endif // !DOCUMENTATION
17664
17665DECLARE_HEADERS(AsmFloatType);
17666#if defined(SgAsmFloatType_HEADERS) || defined(DOCUMENTATION)
17667#include <Sawyer/BitVector.h>
17668#include <Rose/BitFlags.h>
17669#include <Rose/BinaryAnalysis/ByteOrder.h>
17670#endif // SgAsmFloatType_HEADERS
17671
17672#ifdef DOCUMENTATION
17675#endif // DOCUMENTATION
17676
17677#ifndef DOCUMENTATION
17678 AsmFloatType.setDataPrototype(
17679 "size_t", "significandOffset", "= (size_t)(-1)",
17680 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17681#endif // !DOCUMENTATION
17682
17683#ifndef DOCUMENTATION
17684 AsmFloatType.setDataPrototype(
17685 "size_t", "significandNBits", "= (size_t)(-1)",
17686 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17687#endif // !DOCUMENTATION
17688
17689#ifndef DOCUMENTATION
17690 AsmFloatType.setDataPrototype(
17691 "size_t", "signBitOffset", "= (size_t)(-1)",
17692 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17693#endif // !DOCUMENTATION
17694
17695#ifndef DOCUMENTATION
17696 AsmFloatType.setDataPrototype(
17697 "size_t", "exponentOffset", "= (size_t)(-1)",
17698 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17699#endif // !DOCUMENTATION
17700
17701#ifndef DOCUMENTATION
17702 AsmFloatType.setDataPrototype(
17703 "size_t", "exponentNBits", "= (size_t)(-1)",
17704 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17705#endif // !DOCUMENTATION
17706
17707#ifndef DOCUMENTATION
17708 AsmFloatType.setDataPrototype(
17709 "uint64_t", "exponentBias", "= 0",
17710 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17711#endif // !DOCUMENTATION
17712
17713#ifndef DOCUMENTATION
17714 AsmFloatType.setDataPrototype(
17715 "unsigned", "flags", "= 0",
17716 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17717#endif // !DOCUMENTATION
17718
17719 DECLARE_OTHERS(AsmFloatType);
17720#if defined(SgAsmFloatType_OTHERS) || defined(DOCUMENTATION)
17721
17722 //----------------------- Boost serialization for SgAsmFloatType -----------------------
17723#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17724private:
17725 friend class boost::serialization::access;
17726
17727 template<class S>
17728 void serialize(S &s, const unsigned /*version*/) {
17729 debugSerializationBegin("SgAsmFloatType");
17730 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
17731 s & BOOST_SERIALIZATION_NVP(p_significandOffset);
17732 s & BOOST_SERIALIZATION_NVP(p_significandNBits);
17733 s & BOOST_SERIALIZATION_NVP(p_signBitOffset);
17734 s & BOOST_SERIALIZATION_NVP(p_exponentOffset);
17735 s & BOOST_SERIALIZATION_NVP(p_exponentNBits);
17736 s & BOOST_SERIALIZATION_NVP(p_exponentBias);
17737 s & BOOST_SERIALIZATION_NVP(p_flags);
17738 debugSerializationEnd("SgAsmFloatType");
17739 }
17740#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17741public:
17743 enum Flag {
17744 GRADUAL_UNDERFLOW = 0x00000001,
17745 IMPLICIT_BIT_CONVENTION = 0x00000002
17747
17750
17753
17754public:
17755public:
17756
17757public:
17758
17759public:
17760
17761public:
17762
17763public:
17764
17765public:
17766
17767public:
17768public:
17772 uint64_t exponentBias, Flags flags);
17773
17783
17786
17788 size_t signBit() const;
17789
17791 uint64_t exponentBias() const;
17792
17794 Flags flags() const;
17795
17801
17807 bool gradualUnderflow() const;
17808
17815
17816 // Overrides documented in base class
17817 virtual void check() const override;
17818 virtual std::string toString() const override;
17819public:
17822
17823public:
17826
17827protected:
17835#endif // SgAsmFloatType_OTHERS
17836#ifdef DOCUMENTATION
17837};
17838#endif // DOCUMENTATION
17839
17840
17842// SgAsmScalarType -- MACHINE GENERATED; DO NOT MODIFY --
17844
17845#ifndef DOCUMENTATION
17846AstNodeClass& AsmScalarType = nonTerminalConstructor(
17847 "AsmScalarType",
17848 *this,
17849 "AsmScalarType",
17850 "AsmScalarTypeTag",
17851 SubclassListBuilder()
17852 | AsmFloatType
17853 | AsmIntegerType
17854 | AsmPointerType
17855 , false);
17856assert(AsmScalarType.associatedGrammar != nullptr);
17857AsmScalarType.setCppCondition("!defined(DOCUMENTATION)");
17858AsmScalarType.isBoostSerializable(true);
17859AsmScalarType.setAutomaticGenerationOfConstructor(false);
17860AsmScalarType.setAutomaticGenerationOfDestructor(false);
17861#endif // !DOCUMENTATION
17862
17863#ifndef DOCUMENTATION
17864AsmScalarType.useSmallHeader(true);
17865#endif // !DOCUMENTATION
17866
17867DECLARE_HEADERS(AsmScalarType);
17868#if defined(SgAsmScalarType_HEADERS) || defined(DOCUMENTATION)
17869#include <Rose/BinaryAnalysis/ByteOrder.h>
17870#endif // SgAsmScalarType_HEADERS
17871
17872#ifdef DOCUMENTATION
17875#endif // DOCUMENTATION
17876
17877#ifndef DOCUMENTATION
17878 AsmScalarType.setDataPrototype(
17879 "Rose::BinaryAnalysis::ByteOrder::Endianness", "minorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17880 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17881#endif // !DOCUMENTATION
17882
17883#ifndef DOCUMENTATION
17884 AsmScalarType.setDataPrototype(
17885 "Rose::BinaryAnalysis::ByteOrder::Endianness", "majorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17886 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17887#endif // !DOCUMENTATION
17888
17889#ifndef DOCUMENTATION
17890 AsmScalarType.setDataPrototype(
17891 "size_t", "majorNBytes", "= 0",
17892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17893#endif // !DOCUMENTATION
17894
17895#ifndef DOCUMENTATION
17896 AsmScalarType.setDataPrototype(
17897 "size_t", "nBits", "= 0",
17898 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17899#endif // !DOCUMENTATION
17900
17901 DECLARE_OTHERS(AsmScalarType);
17902#if defined(SgAsmScalarType_OTHERS) || defined(DOCUMENTATION)
17903
17904 //----------------------- Boost serialization for SgAsmScalarType -----------------------
17905#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17906private:
17907 friend class boost::serialization::access;
17908
17909 template<class S>
17910 void serialize(S &s, const unsigned /*version*/) {
17911 debugSerializationBegin("SgAsmScalarType");
17912 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
17913 s & BOOST_SERIALIZATION_NVP(p_minorOrder);
17914 s & BOOST_SERIALIZATION_NVP(p_majorOrder);
17915 s & BOOST_SERIALIZATION_NVP(p_majorNBytes);
17916 s & BOOST_SERIALIZATION_NVP(p_nBits);
17917 debugSerializationEnd("SgAsmScalarType");
17918 }
17919#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17920public:
17921public:
17922
17923public:
17929public:
17935public:
17940protected:
17946
17947public:
17949 virtual size_t get_nBits() const override;
17950
17953
17956
17958 size_t get_majorNBytes() const;
17959
17960 // Overrides documented in base class
17961 virtual void check() const override;
17962 virtual std::string toString() const override;
17963public:
17966
17967protected:
17970
17971protected:
17979#endif // SgAsmScalarType_OTHERS
17980#ifdef DOCUMENTATION
17981};
17982#endif // DOCUMENTATION
17983
17984
17986// SgAsmType -- MACHINE GENERATED; DO NOT MODIFY --
17988
17989#ifndef DOCUMENTATION
17990AstNodeClass& AsmType = nonTerminalConstructor(
17991 "AsmType",
17992 *this,
17993 "AsmType",
17994 "AsmTypeTag",
17995 SubclassListBuilder()
17996 | AsmScalarType
17997 | AsmVectorType
17998 | AsmVoidType
17999 , false);
18000assert(AsmType.associatedGrammar != nullptr);
18001AsmType.setCppCondition("!defined(DOCUMENTATION)");
18002AsmType.isBoostSerializable(true);
18003AsmType.setAutomaticGenerationOfConstructor(false);
18004AsmType.setAutomaticGenerationOfDestructor(false);
18005#endif // !DOCUMENTATION
18006
18007#ifndef DOCUMENTATION
18008AsmType.useSmallHeader(true);
18009#endif // !DOCUMENTATION
18010
18011#ifdef DOCUMENTATION
18013class SgAsmType: public SgAsmNode {
18014#endif // DOCUMENTATION
18015
18016 DECLARE_OTHERS(AsmType);
18017#if defined(SgAsmType_OTHERS) || defined(DOCUMENTATION)
18018
18019 //----------------------- Boost serialization for SgAsmType -----------------------
18020#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18021private:
18022 friend class boost::serialization::access;
18023
18024 template<class S>
18025 void serialize(S &s, const unsigned /*version*/) {
18026 debugSerializationBegin("SgAsmType");
18027 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
18028 debugSerializationEnd("SgAsmType");
18029 }
18030#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18031private:
18033
18034public:
18042 virtual void check() const;
18043
18049 virtual std::string toString() const {
18050 abort(); // ROSETTA limitation: intended pure virtual
18051 return NULL; // Windows limitation: return value required [Too, 2014-08-11]
18052 }
18053
18055 virtual size_t get_nBits() const {
18056 abort(); // ROSETTA limitation: intended pure virtual
18057 return (size_t)-1; // Windows limitation: return value required [Too, 2014-08-11]
18058 }
18059
18061 virtual size_t get_nBytes() const;
18062
18068 template<class Type> // Type is a subclass of SgAsmType
18069 static Type* registerOrDelete(Type *toInsert) {
18070 ASSERT_not_null(toInsert);
18071 std::string key = toInsert->toString();
18072 Type *retval = dynamic_cast<Type*>(p_typeRegistry.insertMaybe(key, toInsert));
18073 ASSERT_not_null(retval);
18074 if (retval!=toInsert)
18075 delete toInsert;
18076 return retval;
18077 }
18078public:
18080 virtual ~SgAsmType();
18081
18082protected:
18085
18086protected:
18094#endif // SgAsmType_OTHERS
18095#ifdef DOCUMENTATION
18096};
18097#endif // DOCUMENTATION
18098
18099
18101// SgAsmExprListExp -- MACHINE GENERATED; DO NOT MODIFY --
18103
18104DECLARE_LEAF_CLASS(AsmExprListExp);
18105IS_SERIALIZABLE(AsmExprListExp);
18106
18107#ifndef DOCUMENTATION
18108AsmExprListExp.useSmallHeader(true);
18109#endif // !DOCUMENTATION
18110
18111DECLARE_HEADERS(AsmExprListExp);
18112#if defined(SgAsmExprListExp_HEADERS) || defined(DOCUMENTATION)
18113#include <sageContainer.h>
18114#endif // SgAsmExprListExp_HEADERS
18115
18116#ifdef DOCUMENTATION
18119#endif // DOCUMENTATION
18120
18121#ifndef DOCUMENTATION
18122 AsmExprListExp.setDataPrototype(
18123 "SgAsmExpressionPtrList", "expressions", "",
18124 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18125#endif // !DOCUMENTATION
18126
18127 DECLARE_OTHERS(AsmExprListExp);
18128#if defined(SgAsmExprListExp_OTHERS) || defined(DOCUMENTATION)
18129
18130 //----------------------- Boost serialization for SgAsmExprListExp -----------------------
18131#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18132private:
18133 friend class boost::serialization::access;
18134
18135 template<class S>
18136 void serialize(S &s, const unsigned /*version*/) {
18137 debugSerializationBegin("SgAsmExprListExp");
18138 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
18139 s & BOOST_SERIALIZATION_NVP(p_expressions);
18140 debugSerializationEnd("SgAsmExprListExp");
18141 }
18142#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18143public:
18144public:
18151 SgAsmExpressionPtrList const& get_expressions() const;
18152 SgAsmExpressionPtrList& get_expressions();
18153 void set_expressions(SgAsmExpressionPtrList const&);
18156public:
18159
18160public:
18163
18164protected:
18172#endif // SgAsmExprListExp_OTHERS
18173#ifdef DOCUMENTATION
18174};
18175#endif // DOCUMENTATION
18176
18177
18179// SgAsmElfSymverSection -- MACHINE GENERATED; DO NOT MODIFY --
18181
18182DECLARE_LEAF_CLASS(AsmElfSymverSection);
18183IS_SERIALIZABLE(AsmElfSymverSection);
18184
18185#ifndef DOCUMENTATION
18186AsmElfSymverSection.useSmallHeader(true);
18187#endif // !DOCUMENTATION
18188
18189DECLARE_HEADERS(AsmElfSymverSection);
18190#if defined(SgAsmElfSymverSection_HEADERS) || defined(DOCUMENTATION)
18191#include <Rose/BinaryAnalysis/Address.h>
18192
18193#ifdef ROSE_SgAsmElfSymverSection_IMPL
18194#include <SgAsmElfSymverEntryList.h>
18195#endif
18196#endif // SgAsmElfSymverSection_HEADERS
18197
18198#ifdef DOCUMENTATION
18204#endif // DOCUMENTATION
18205
18206#ifndef DOCUMENTATION
18207 AsmElfSymverSection.setDataPrototype(
18208 "SgAsmElfSymverEntryList*", "entries", "= createAndParent<SgAsmElfSymverEntryList>(this)",
18209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18210#endif // !DOCUMENTATION
18211
18212 DECLARE_OTHERS(AsmElfSymverSection);
18213#if defined(SgAsmElfSymverSection_OTHERS) || defined(DOCUMENTATION)
18214
18215 //----------------------- Boost serialization for SgAsmElfSymverSection -----------------------
18216#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18217private:
18218 friend class boost::serialization::access;
18219
18220 template<class S>
18221 void serialize(S &s, const unsigned /*version*/) {
18222 debugSerializationBegin("SgAsmElfSymverSection");
18223 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
18224 s & BOOST_SERIALIZATION_NVP(p_entries);
18225 debugSerializationEnd("SgAsmElfSymverSection");
18226 }
18227#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18228public:
18229public:
18239public:
18242
18244 virtual SgAsmElfSymverSection* parse() override;
18245
18251 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
18252
18254 virtual void unparse(std::ostream&) const override;
18255
18257 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
18258
18260 // Deprecated 2023-11
18262public:
18263 using SgAsmElfSection::calculate_sizes;
18264 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
18265 ROSE_DEPRECATED("use calculateSizes");
18266public:
18269
18270public:
18273
18274protected:
18282#endif // SgAsmElfSymverSection_OTHERS
18283#ifdef DOCUMENTATION
18284};
18285#endif // DOCUMENTATION
18286
18287
18289// SgAsmElfSymverNeededSection -- MACHINE GENERATED; DO NOT MODIFY --
18291
18292DECLARE_LEAF_CLASS(AsmElfSymverNeededSection);
18293IS_SERIALIZABLE(AsmElfSymverNeededSection);
18294
18295#ifndef DOCUMENTATION
18296AsmElfSymverNeededSection.useSmallHeader(true);
18297#endif // !DOCUMENTATION
18298
18299DECLARE_HEADERS(AsmElfSymverNeededSection);
18300#if defined(SgAsmElfSymverNeededSection_HEADERS) || defined(DOCUMENTATION)
18301#include <Rose/BinaryAnalysis/Address.h>
18302
18303#ifdef ROSE_SgAsmElfSymverNeededSection_IMPL
18304#include <SgAsmElfSymverNeededEntryList.h>
18305#endif
18306#endif // SgAsmElfSymverNeededSection_HEADERS
18307
18308#ifdef DOCUMENTATION
18315#endif // DOCUMENTATION
18316
18317#ifndef DOCUMENTATION
18318 AsmElfSymverNeededSection.setDataPrototype(
18319 "SgAsmElfSymverNeededEntryList*", "entries", "= createAndParent<SgAsmElfSymverNeededEntryList>(this)",
18320 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18321#endif // !DOCUMENTATION
18322
18323 DECLARE_OTHERS(AsmElfSymverNeededSection);
18324#if defined(SgAsmElfSymverNeededSection_OTHERS) || defined(DOCUMENTATION)
18325
18326 //----------------------- Boost serialization for SgAsmElfSymverNeededSection -----------------------
18327#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18328private:
18329 friend class boost::serialization::access;
18330
18331 template<class S>
18332 void serialize(S &s, const unsigned /*version*/) {
18333 debugSerializationBegin("SgAsmElfSymverNeededSection");
18334 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
18335 s & BOOST_SERIALIZATION_NVP(p_entries);
18336 debugSerializationEnd("SgAsmElfSymverNeededSection");
18337 }
18338#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18339public:
18340public:
18350public:
18355
18366
18367 using SgAsmElfSection::calculate_sizes;
18372 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
18373
18377 virtual void unparse(std::ostream&) const override;
18378
18380 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
18381
18383 // Deprecated 2023-11
18385public:
18386 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
18387 ROSE_DEPRECATED("use calculateSizes");
18388public:
18391
18392public:
18395
18396protected:
18404#endif // SgAsmElfSymverNeededSection_OTHERS
18405#ifdef DOCUMENTATION
18406};
18407#endif // DOCUMENTATION
18408
18409
18411// SgAsmElfSymverNeededEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18413
18414DECLARE_LEAF_CLASS(AsmElfSymverNeededEntryList);
18415IS_SERIALIZABLE(AsmElfSymverNeededEntryList);
18416
18417#ifndef DOCUMENTATION
18418AsmElfSymverNeededEntryList.useSmallHeader(true);
18419#endif // !DOCUMENTATION
18420
18421DECLARE_HEADERS(AsmElfSymverNeededEntryList);
18422#if defined(SgAsmElfSymverNeededEntryList_HEADERS) || defined(DOCUMENTATION)
18423#include <sageContainer.h>
18424#endif // SgAsmElfSymverNeededEntryList_HEADERS
18425
18426#ifdef DOCUMENTATION
18432#endif // DOCUMENTATION
18433
18434#ifndef DOCUMENTATION
18435 AsmElfSymverNeededEntryList.setDataPrototype(
18436 "SgAsmElfSymverNeededEntryPtrList", "entries", "",
18437 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18438#endif // !DOCUMENTATION
18439
18440 DECLARE_OTHERS(AsmElfSymverNeededEntryList);
18441#if defined(SgAsmElfSymverNeededEntryList_OTHERS) || defined(DOCUMENTATION)
18442
18443 //----------------------- Boost serialization for SgAsmElfSymverNeededEntryList -----------------------
18444#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18445private:
18446 friend class boost::serialization::access;
18447
18448 template<class S>
18449 void serialize(S &s, const unsigned /*version*/) {
18450 debugSerializationBegin("SgAsmElfSymverNeededEntryList");
18451 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18452 s & BOOST_SERIALIZATION_NVP(p_entries);
18453 debugSerializationEnd("SgAsmElfSymverNeededEntryList");
18454 }
18455#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18456public:
18457public:
18461 SgAsmElfSymverNeededEntryPtrList const& get_entries() const;
18462 SgAsmElfSymverNeededEntryPtrList& get_entries();
18463 void set_entries(SgAsmElfSymverNeededEntryPtrList const&);
18466public:
18469
18470public:
18473
18474protected:
18482#endif // SgAsmElfSymverNeededEntryList_OTHERS
18483#ifdef DOCUMENTATION
18484};
18485#endif // DOCUMENTATION
18486
18487
18489// SgAsmElfSymverNeededEntry -- MACHINE GENERATED; DO NOT MODIFY --
18491
18492DECLARE_LEAF_CLASS(AsmElfSymverNeededEntry);
18493IS_SERIALIZABLE(AsmElfSymverNeededEntry);
18494
18495#ifndef DOCUMENTATION
18496AsmElfSymverNeededEntry.useSmallHeader(true);
18497#endif // !DOCUMENTATION
18498
18499DECLARE_HEADERS(AsmElfSymverNeededEntry);
18500#if defined(SgAsmElfSymverNeededEntry_HEADERS) || defined(DOCUMENTATION)
18501#include <Rose/BinaryAnalysis/ByteOrder.h>
18502
18503#ifdef ROSE_SgAsmElfSymverNeededEntry_IMPL
18504#include <SgAsmElfSymverNeededAuxList.h>
18505#include <SgAsmGenericString.h>
18506#endif
18507#endif // SgAsmElfSymverNeededEntry_HEADERS
18508
18509#ifdef DOCUMENTATION
18512#endif // DOCUMENTATION
18513
18514#ifndef DOCUMENTATION
18515 AsmElfSymverNeededEntry.setDataPrototype(
18516 "size_t", "version", "= 0",
18517 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18518#endif // !DOCUMENTATION
18519
18520#ifndef DOCUMENTATION
18521 AsmElfSymverNeededEntry.setDataPrototype(
18522 "SgAsmGenericString*", "fileName", "= nullptr",
18523 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18524#endif // !DOCUMENTATION
18525
18526#ifndef DOCUMENTATION
18527 AsmElfSymverNeededEntry.setDataPrototype(
18528 "SgAsmElfSymverNeededAuxList*", "entries", "= createAndParent<SgAsmElfSymverNeededAuxList>(this)",
18529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18530#endif // !DOCUMENTATION
18531
18532 DECLARE_OTHERS(AsmElfSymverNeededEntry);
18533#if defined(SgAsmElfSymverNeededEntry_OTHERS) || defined(DOCUMENTATION)
18534
18535 //----------------------- Boost serialization for SgAsmElfSymverNeededEntry -----------------------
18536#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18537private:
18538 friend class boost::serialization::access;
18539
18540 template<class S>
18541 void serialize(S &s, const unsigned /*version*/) {
18542 debugSerializationBegin("SgAsmElfSymverNeededEntry");
18543 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18544 s & BOOST_SERIALIZATION_NVP(p_version);
18545 s & BOOST_SERIALIZATION_NVP(p_fileName);
18546 s & BOOST_SERIALIZATION_NVP(p_entries);
18547 debugSerializationEnd("SgAsmElfSymverNeededEntry");
18548 }
18549#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18551 // Local types
18553public:
18554#ifdef _MSC_VER
18555# pragma pack (1)
18556#endif
18557
18560 uint16_t vn_version;
18561 uint16_t vn_cnt;
18562 uint32_t vn_file;
18563 uint32_t vn_aux;
18564 uint32_t vn_next;
18565 }
18566#if !defined(SWIG) && !defined(_MSC_VER)
18567 __attribute__((packed))
18568#endif
18569 ;
18570
18571#ifdef _MSC_VER
18572# pragma pack ()
18573#endif
18574
18576 // Properties
18578public:
18579public:
18585 size_t const& get_version() const;
18586 void set_version(size_t const&);
18589public:
18597public:
18608 // Functions
18610public:
18613
18616
18619
18621 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18622
18624 // Deprecated 2023-11
18626public:
18627 SgAsmGenericString* get_file_name() const ROSE_DEPRECATED("use get_fileName");
18628 void set_file_name(SgAsmGenericString*) ROSE_DEPRECATED("use set_fileName");
18629public:
18632
18633public:
18636
18637protected:
18645#endif // SgAsmElfSymverNeededEntry_OTHERS
18646#ifdef DOCUMENTATION
18647};
18648#endif // DOCUMENTATION
18649
18650
18652// SgAsmElfSymverNeededAuxList -- MACHINE GENERATED; DO NOT MODIFY --
18654
18655DECLARE_LEAF_CLASS(AsmElfSymverNeededAuxList);
18656IS_SERIALIZABLE(AsmElfSymverNeededAuxList);
18657
18658#ifndef DOCUMENTATION
18659AsmElfSymverNeededAuxList.useSmallHeader(true);
18660#endif // !DOCUMENTATION
18661
18662DECLARE_HEADERS(AsmElfSymverNeededAuxList);
18663#if defined(SgAsmElfSymverNeededAuxList_HEADERS) || defined(DOCUMENTATION)
18664#include <sageContainer.h>
18665#endif // SgAsmElfSymverNeededAuxList_HEADERS
18666
18667#ifdef DOCUMENTATION
18673#endif // DOCUMENTATION
18674
18675#ifndef DOCUMENTATION
18676 AsmElfSymverNeededAuxList.setDataPrototype(
18677 "SgAsmElfSymverNeededAuxPtrList", "entries", "",
18678 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18679#endif // !DOCUMENTATION
18680
18681 DECLARE_OTHERS(AsmElfSymverNeededAuxList);
18682#if defined(SgAsmElfSymverNeededAuxList_OTHERS) || defined(DOCUMENTATION)
18683
18684 //----------------------- Boost serialization for SgAsmElfSymverNeededAuxList -----------------------
18685#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18686private:
18687 friend class boost::serialization::access;
18688
18689 template<class S>
18690 void serialize(S &s, const unsigned /*version*/) {
18691 debugSerializationBegin("SgAsmElfSymverNeededAuxList");
18692 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18693 s & BOOST_SERIALIZATION_NVP(p_entries);
18694 debugSerializationEnd("SgAsmElfSymverNeededAuxList");
18695 }
18696#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18697public:
18698public:
18702 SgAsmElfSymverNeededAuxPtrList const& get_entries() const;
18703 SgAsmElfSymverNeededAuxPtrList& get_entries();
18704 void set_entries(SgAsmElfSymverNeededAuxPtrList const&);
18707public:
18710
18711public:
18714
18715protected:
18723#endif // SgAsmElfSymverNeededAuxList_OTHERS
18724#ifdef DOCUMENTATION
18725};
18726#endif // DOCUMENTATION
18727
18728
18730// SgAsmElfSymverNeededAux -- MACHINE GENERATED; DO NOT MODIFY --
18732
18733DECLARE_LEAF_CLASS(AsmElfSymverNeededAux);
18734IS_SERIALIZABLE(AsmElfSymverNeededAux);
18735
18736#ifndef DOCUMENTATION
18737AsmElfSymverNeededAux.useSmallHeader(true);
18738#endif // !DOCUMENTATION
18739
18740DECLARE_HEADERS(AsmElfSymverNeededAux);
18741#if defined(SgAsmElfSymverNeededAux_HEADERS) || defined(DOCUMENTATION)
18742#include <Rose/BinaryAnalysis/ByteOrder.h>
18743
18744#ifdef ROSE_SgAsmElfSymverNeededAux_IMPL
18745#include <SgAsmGenericString.h>
18746#endif
18747#endif // SgAsmElfSymverNeededAux_HEADERS
18748
18749#ifdef DOCUMENTATION
18752#endif // DOCUMENTATION
18753
18754#ifndef DOCUMENTATION
18755 AsmElfSymverNeededAux.setDataPrototype(
18756 "uint32_t", "hash", "= 0",
18757 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18758#endif // !DOCUMENTATION
18759
18760#ifndef DOCUMENTATION
18761 AsmElfSymverNeededAux.setDataPrototype(
18762 "int", "flags", "= 0",
18763 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18764#endif // !DOCUMENTATION
18765
18766#ifndef DOCUMENTATION
18767 AsmElfSymverNeededAux.setDataPrototype(
18768 "size_t", "other", "= 0",
18769 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18770#endif // !DOCUMENTATION
18771
18772#ifndef DOCUMENTATION
18773 AsmElfSymverNeededAux.setDataPrototype(
18774 "SgAsmGenericString*", "name", "= 0",
18775 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18776#endif // !DOCUMENTATION
18777
18778 DECLARE_OTHERS(AsmElfSymverNeededAux);
18779#if defined(SgAsmElfSymverNeededAux_OTHERS) || defined(DOCUMENTATION)
18780
18781 //----------------------- Boost serialization for SgAsmElfSymverNeededAux -----------------------
18782#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18783private:
18784 friend class boost::serialization::access;
18785
18786 template<class S>
18787 void serialize(S &s, const unsigned /*version*/) {
18788 debugSerializationBegin("SgAsmElfSymverNeededAux");
18789 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18790 s & BOOST_SERIALIZATION_NVP(p_hash);
18791 s & BOOST_SERIALIZATION_NVP(p_flags);
18792 s & BOOST_SERIALIZATION_NVP(p_other);
18793 s & BOOST_SERIALIZATION_NVP(p_name);
18794 debugSerializationEnd("SgAsmElfSymverNeededAux");
18795 }
18796#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18798 // Local types
18800public:
18801#ifdef _MSC_VER
18802# pragma pack (1)
18803#endif
18804
18807 uint32_t vna_hash;
18808 uint16_t vna_flags;
18809 uint16_t vna_other;
18810 uint32_t vna_name;
18811 uint32_t vna_next;
18812 }
18813#if !defined(SWIG) && !defined(_MSC_VER)
18814 __attribute__((packed))
18815#endif
18816 ;
18817
18818#ifdef _MSC_VER
18819# pragma pack ()
18820#endif
18821
18823 // Properties
18825public:
18826public:
18832 uint32_t const& get_hash() const;
18833 void set_hash(uint32_t const&);
18836public:
18842 int const& get_flags() const;
18843 void set_flags(int const&);
18846public:
18852 size_t const& get_other() const;
18853 void set_other(size_t const&);
18856public:
18864 // Functions
18866public:
18872
18875
18878
18884 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18885public:
18888
18889public:
18892
18893protected:
18901#endif // SgAsmElfSymverNeededAux_OTHERS
18902#ifdef DOCUMENTATION
18903};
18904#endif // DOCUMENTATION
18905
18906
18908// SgAsmElfSymverEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18910
18911DECLARE_LEAF_CLASS(AsmElfSymverEntryList);
18912IS_SERIALIZABLE(AsmElfSymverEntryList);
18913
18914#ifndef DOCUMENTATION
18915AsmElfSymverEntryList.useSmallHeader(true);
18916#endif // !DOCUMENTATION
18917
18918DECLARE_HEADERS(AsmElfSymverEntryList);
18919#if defined(SgAsmElfSymverEntryList_HEADERS) || defined(DOCUMENTATION)
18920#include <sageContainer.h>
18921#endif // SgAsmElfSymverEntryList_HEADERS
18922
18923#ifdef DOCUMENTATION
18929#endif // DOCUMENTATION
18930
18931#ifndef DOCUMENTATION
18932 AsmElfSymverEntryList.setDataPrototype(
18933 "SgAsmElfSymverEntryPtrList", "entries", "",
18934 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18935#endif // !DOCUMENTATION
18936
18937 DECLARE_OTHERS(AsmElfSymverEntryList);
18938#if defined(SgAsmElfSymverEntryList_OTHERS) || defined(DOCUMENTATION)
18939
18940 //----------------------- Boost serialization for SgAsmElfSymverEntryList -----------------------
18941#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18942private:
18943 friend class boost::serialization::access;
18944
18945 template<class S>
18946 void serialize(S &s, const unsigned /*version*/) {
18947 debugSerializationBegin("SgAsmElfSymverEntryList");
18948 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18949 s & BOOST_SERIALIZATION_NVP(p_entries);
18950 debugSerializationEnd("SgAsmElfSymverEntryList");
18951 }
18952#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18953public:
18954public:
18958 SgAsmElfSymverEntryPtrList const& get_entries() const;
18959 SgAsmElfSymverEntryPtrList& get_entries();
18960 void set_entries(SgAsmElfSymverEntryPtrList const&);
18963public:
18966
18967public:
18970
18971protected:
18979#endif // SgAsmElfSymverEntryList_OTHERS
18980#ifdef DOCUMENTATION
18981};
18982#endif // DOCUMENTATION
18983
18984
18986// SgAsmElfSymverEntry -- MACHINE GENERATED; DO NOT MODIFY --
18988
18989DECLARE_LEAF_CLASS(AsmElfSymverEntry);
18990IS_SERIALIZABLE(AsmElfSymverEntry);
18991
18992#ifndef DOCUMENTATION
18993AsmElfSymverEntry.useSmallHeader(true);
18994#endif // !DOCUMENTATION
18995
18996#ifdef DOCUMENTATION
18999#endif // DOCUMENTATION
19000
19001#ifndef DOCUMENTATION
19002 AsmElfSymverEntry.setDataPrototype(
19003 "size_t", "value", "= 0",
19004 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19005#endif // !DOCUMENTATION
19006
19007 DECLARE_OTHERS(AsmElfSymverEntry);
19008#if defined(SgAsmElfSymverEntry_OTHERS) || defined(DOCUMENTATION)
19009
19010 //----------------------- Boost serialization for SgAsmElfSymverEntry -----------------------
19011#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19012private:
19013 friend class boost::serialization::access;
19014
19015 template<class S>
19016 void serialize(S &s, const unsigned /*version*/) {
19017 debugSerializationBegin("SgAsmElfSymverEntry");
19018 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19019 s & BOOST_SERIALIZATION_NVP(p_value);
19020 debugSerializationEnd("SgAsmElfSymverEntry");
19021 }
19022#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19023public:
19024public:
19030 size_t const& get_value() const;
19031 void set_value(size_t const&);
19033public:
19036
19038 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
19039public:
19042
19043public:
19046
19047protected:
19055#endif // SgAsmElfSymverEntry_OTHERS
19056#ifdef DOCUMENTATION
19057};
19058#endif // DOCUMENTATION
19059
19060
19062// SgAsmElfSymverDefinedSection -- MACHINE GENERATED; DO NOT MODIFY --
19064
19065DECLARE_LEAF_CLASS(AsmElfSymverDefinedSection);
19066IS_SERIALIZABLE(AsmElfSymverDefinedSection);
19067
19068#ifndef DOCUMENTATION
19069AsmElfSymverDefinedSection.useSmallHeader(true);
19070#endif // !DOCUMENTATION
19071
19072DECLARE_HEADERS(AsmElfSymverDefinedSection);
19073#if defined(SgAsmElfSymverDefinedSection_HEADERS) || defined(DOCUMENTATION)
19074#include <Rose/BinaryAnalysis/Address.h>
19075
19076#ifdef ROSE_SgAsmElfSymverDefinedSection_IMPL
19077#include <SgAsmElfSymverDefinedEntryList.h>
19078#endif
19079#endif // SgAsmElfSymverDefinedSection_HEADERS
19080
19081#ifdef DOCUMENTATION
19088#endif // DOCUMENTATION
19089
19090#ifndef DOCUMENTATION
19091 AsmElfSymverDefinedSection.setDataPrototype(
19092 "SgAsmElfSymverDefinedEntryList*", "entries", "= createAndParent<SgAsmElfSymverDefinedEntryList>(this)",
19093 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19094#endif // !DOCUMENTATION
19095
19096 DECLARE_OTHERS(AsmElfSymverDefinedSection);
19097#if defined(SgAsmElfSymverDefinedSection_OTHERS) || defined(DOCUMENTATION)
19098
19099 //----------------------- Boost serialization for SgAsmElfSymverDefinedSection -----------------------
19100#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19101private:
19102 friend class boost::serialization::access;
19103
19104 template<class S>
19105 void serialize(S &s, const unsigned /*version*/) {
19106 debugSerializationBegin("SgAsmElfSymverDefinedSection");
19107 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
19108 s & BOOST_SERIALIZATION_NVP(p_entries);
19109 debugSerializationEnd("SgAsmElfSymverDefinedSection");
19110 }
19111#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19112public:
19113public:
19123public:
19126
19196
19200 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
19201
19205 virtual void unparse(std::ostream&) const override;
19206
19208 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19209
19211 // Deprecated 2023-11
19213public:
19214 using SgAsmElfSection::calculate_sizes;
19215 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
19216 ROSE_DEPRECATED("use calculateSizes");
19217public:
19220
19221public:
19224
19225protected:
19233#endif // SgAsmElfSymverDefinedSection_OTHERS
19234#ifdef DOCUMENTATION
19235};
19236#endif // DOCUMENTATION
19237
19238
19240// SgAsmElfSymverDefinedEntryList -- MACHINE GENERATED; DO NOT MODIFY --
19242
19243DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntryList);
19244IS_SERIALIZABLE(AsmElfSymverDefinedEntryList);
19245
19246#ifndef DOCUMENTATION
19247AsmElfSymverDefinedEntryList.useSmallHeader(true);
19248#endif // !DOCUMENTATION
19249
19250DECLARE_HEADERS(AsmElfSymverDefinedEntryList);
19251#if defined(SgAsmElfSymverDefinedEntryList_HEADERS) || defined(DOCUMENTATION)
19252#include <sageContainer.h>
19253#endif // SgAsmElfSymverDefinedEntryList_HEADERS
19254
19255#ifdef DOCUMENTATION
19261#endif // DOCUMENTATION
19262
19263#ifndef DOCUMENTATION
19264 AsmElfSymverDefinedEntryList.setDataPrototype(
19265 "SgAsmElfSymverDefinedEntryPtrList", "entries", "",
19266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19267#endif // !DOCUMENTATION
19268
19269 DECLARE_OTHERS(AsmElfSymverDefinedEntryList);
19270#if defined(SgAsmElfSymverDefinedEntryList_OTHERS) || defined(DOCUMENTATION)
19271
19272 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntryList -----------------------
19273#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19274private:
19275 friend class boost::serialization::access;
19276
19277 template<class S>
19278 void serialize(S &s, const unsigned /*version*/) {
19279 debugSerializationBegin("SgAsmElfSymverDefinedEntryList");
19280 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19281 s & BOOST_SERIALIZATION_NVP(p_entries);
19282 debugSerializationEnd("SgAsmElfSymverDefinedEntryList");
19283 }
19284#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19285public:
19286public:
19290 SgAsmElfSymverDefinedEntryPtrList const& get_entries() const;
19291 SgAsmElfSymverDefinedEntryPtrList& get_entries();
19292 void set_entries(SgAsmElfSymverDefinedEntryPtrList const&);
19295public:
19298
19299public:
19302
19303protected:
19311#endif // SgAsmElfSymverDefinedEntryList_OTHERS
19312#ifdef DOCUMENTATION
19313};
19314#endif // DOCUMENTATION
19315
19316
19318// SgAsmElfSymverDefinedEntry -- MACHINE GENERATED; DO NOT MODIFY --
19320
19321DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntry);
19322IS_SERIALIZABLE(AsmElfSymverDefinedEntry);
19323
19324#ifndef DOCUMENTATION
19325AsmElfSymverDefinedEntry.useSmallHeader(true);
19326#endif // !DOCUMENTATION
19327
19328DECLARE_HEADERS(AsmElfSymverDefinedEntry);
19329#if defined(SgAsmElfSymverDefinedEntry_HEADERS) || defined(DOCUMENTATION)
19330#include <Rose/BinaryAnalysis/ByteOrder.h>
19331
19332#ifdef ROSE_SgAsmElfSymverDefinedEntry_IMPL
19333#include <SgAsmElfSymverDefinedAuxList.h>
19334#endif
19335#endif // SgAsmElfSymverDefinedEntry_HEADERS
19336
19337#ifdef DOCUMENTATION
19340#endif // DOCUMENTATION
19341
19342#ifndef DOCUMENTATION
19343 AsmElfSymverDefinedEntry.setDataPrototype(
19344 "size_t", "version", "= 0",
19345 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19346#endif // !DOCUMENTATION
19347
19348#ifndef DOCUMENTATION
19349 AsmElfSymverDefinedEntry.setDataPrototype(
19350 "int", "flags", "= 0",
19351 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19352#endif // !DOCUMENTATION
19353
19354#ifndef DOCUMENTATION
19355 AsmElfSymverDefinedEntry.setDataPrototype(
19356 "size_t", "index", "= 0",
19357 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19358#endif // !DOCUMENTATION
19359
19360#ifndef DOCUMENTATION
19361 AsmElfSymverDefinedEntry.setDataPrototype(
19362 "uint32_t", "hash", "= 0",
19363 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19364#endif // !DOCUMENTATION
19365
19366#ifndef DOCUMENTATION
19367 AsmElfSymverDefinedEntry.setDataPrototype(
19368 "SgAsmElfSymverDefinedAuxList*", "entries", "= createAndParent<SgAsmElfSymverDefinedAuxList>(this)",
19369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19370#endif // !DOCUMENTATION
19371
19372 DECLARE_OTHERS(AsmElfSymverDefinedEntry);
19373#if defined(SgAsmElfSymverDefinedEntry_OTHERS) || defined(DOCUMENTATION)
19374
19375 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntry -----------------------
19376#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19377private:
19378 friend class boost::serialization::access;
19379
19380 template<class S>
19381 void serialize(S &s, const unsigned /*version*/) {
19382 debugSerializationBegin("SgAsmElfSymverDefinedEntry");
19383 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19384 s & BOOST_SERIALIZATION_NVP(p_version);
19385 s & BOOST_SERIALIZATION_NVP(p_flags);
19386 s & BOOST_SERIALIZATION_NVP(p_index);
19387 s & BOOST_SERIALIZATION_NVP(p_hash);
19388 s & BOOST_SERIALIZATION_NVP(p_entries);
19389 debugSerializationEnd("SgAsmElfSymverDefinedEntry");
19390 }
19391#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19393 // Local types
19395public:
19396#ifdef _MSC_VER
19397# pragma pack (1)
19398#endif
19401 uint16_t vd_version;
19402 uint16_t vd_flags;
19403 uint16_t vd_ndx;
19404 uint16_t vd_cnt;
19405 uint32_t vd_hash;
19406 uint32_t vd_aux;
19407 uint32_t vd_next;
19408 }
19409#if !defined(SWIG) && !defined(_MSC_VER)
19410 __attribute__((packed))
19411#endif
19412 ;
19413
19414#ifdef _MSC_VER
19415# pragma pack ()
19416#endif
19417
19419 // Properties
19421public:
19422public:
19428 size_t const& get_version() const;
19429 void set_version(size_t const&);
19432public:
19438 int const& get_flags() const;
19439 void set_flags(int const&);
19442public:
19448 size_t const& get_index() const;
19449 void set_index(size_t const&);
19452public:
19458 uint32_t const& get_hash() const;
19459 void set_hash(uint32_t const&);
19462public:
19473 // Functions
19475public:
19478
19481
19484
19486 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
19487public:
19490
19491public:
19494
19495protected:
19503#endif // SgAsmElfSymverDefinedEntry_OTHERS
19504#ifdef DOCUMENTATION
19505};
19506#endif // DOCUMENTATION
19507
19508
19510// SgAsmElfSymverDefinedAuxList -- MACHINE GENERATED; DO NOT MODIFY --
19512
19513DECLARE_LEAF_CLASS(AsmElfSymverDefinedAuxList);
19514IS_SERIALIZABLE(AsmElfSymverDefinedAuxList);
19515
19516#ifndef DOCUMENTATION
19517AsmElfSymverDefinedAuxList.useSmallHeader(true);
19518#endif // !DOCUMENTATION
19519
19520DECLARE_HEADERS(AsmElfSymverDefinedAuxList);
19521#if defined(SgAsmElfSymverDefinedAuxList_HEADERS) || defined(DOCUMENTATION)
19522#include <sageContainer.h>
19523#endif // SgAsmElfSymverDefinedAuxList_HEADERS
19524
19525#ifdef DOCUMENTATION
19531#endif // DOCUMENTATION
19532
19533#ifndef DOCUMENTATION
19534 AsmElfSymverDefinedAuxList.setDataPrototype(
19535 "SgAsmElfSymverDefinedAuxPtrList", "entries", "",
19536 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19537#endif // !DOCUMENTATION
19538
19539 DECLARE_OTHERS(AsmElfSymverDefinedAuxList);
19540#if defined(SgAsmElfSymverDefinedAuxList_OTHERS) || defined(DOCUMENTATION)
19541
19542 //----------------------- Boost serialization for SgAsmElfSymverDefinedAuxList -----------------------
19543#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19544private:
19545 friend class boost::serialization::access;
19546
19547 template<class S>
19548 void serialize(S &s, const unsigned /*version*/) {
19549 debugSerializationBegin("SgAsmElfSymverDefinedAuxList");
19550 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19551 s & BOOST_SERIALIZATION_NVP(p_entries);
19552 debugSerializationEnd("SgAsmElfSymverDefinedAuxList");
19553 }
19554#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19555public:
19556public:
19560 SgAsmElfSymverDefinedAuxPtrList const& get_entries() const;
19561 SgAsmElfSymverDefinedAuxPtrList& get_entries();
19562 void set_entries(SgAsmElfSymverDefinedAuxPtrList const&);
19565public:
19568
19569public:
19572
19573protected:
19581#endif // SgAsmElfSymverDefinedAuxList_OTHERS
19582#ifdef DOCUMENTATION
19583};
19584#endif // DOCUMENTATION
19585
19586
19588// SgAsmElfSymverDefinedAux -- MACHINE GENERATED; DO NOT MODIFY --
19590
19591DECLARE_LEAF_CLASS(AsmElfSymverDefinedAux);
19592IS_SERIALIZABLE(AsmElfSymverDefinedAux);
19593
19594#ifndef DOCUMENTATION
19595AsmElfSymverDefinedAux.useSmallHeader(true);
19596#endif // !DOCUMENTATION
19597
19598DECLARE_HEADERS(AsmElfSymverDefinedAux);
19599#if defined(SgAsmElfSymverDefinedAux_HEADERS) || defined(DOCUMENTATION)
19600#include <Rose/BinaryAnalysis/ByteOrder.h>
19601
19602#ifdef ROSE_SgAsmElfSymverDefinedAux_IMPL
19603#include <SgAsmGenericString.h>
19604#endif
19605#endif // SgAsmElfSymverDefinedAux_HEADERS
19606
19607#ifdef DOCUMENTATION
19610#endif // DOCUMENTATION
19611
19612#ifndef DOCUMENTATION
19613 AsmElfSymverDefinedAux.setDataPrototype(
19614 "SgAsmGenericString*", "name", "= 0",
19615 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19616#endif // !DOCUMENTATION
19617
19618 DECLARE_OTHERS(AsmElfSymverDefinedAux);
19619#if defined(SgAsmElfSymverDefinedAux_OTHERS) || defined(DOCUMENTATION)
19620
19621 //----------------------- Boost serialization for SgAsmElfSymverDefinedAux -----------------------
19622#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19623private:
19624 friend class boost::serialization::access;
19625
19626 template<class S>
19627 void serialize(S &s, const unsigned /*version*/) {
19628 debugSerializationBegin("SgAsmElfSymverDefinedAux");
19629 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19630 s & BOOST_SERIALIZATION_NVP(p_name);
19631 debugSerializationEnd("SgAsmElfSymverDefinedAux");
19632 }
19633#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19635 // Local types
19637public:
19638#ifdef _MSC_VER
19639# pragma pack (1)
19640#endif
19641
19644 uint32_t vda_name;
19645 uint32_t vda_next;
19646 }
19647#if !defined(SWIG) && !defined(_MSC_VER)
19648 __attribute__((packed))
19649#endif
19650 ;
19651
19652#ifdef _MSC_VER
19653# pragma pack ()
19654#endif
19655
19657 // Properties
19659public:
19660public:
19668 // Functions
19670public:
19675
19678
19681
19687 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
19688public:
19691
19692public:
19695
19696protected:
19704#endif // SgAsmElfSymverDefinedAux_OTHERS
19705#ifdef DOCUMENTATION
19706};
19707#endif // DOCUMENTATION
19708
19709
19711// SgAsmElfSymbolSection -- MACHINE GENERATED; DO NOT MODIFY --
19713
19714DECLARE_LEAF_CLASS(AsmElfSymbolSection);
19715IS_SERIALIZABLE(AsmElfSymbolSection);
19716
19717#ifndef DOCUMENTATION
19718AsmElfSymbolSection.useSmallHeader(true);
19719#endif // !DOCUMENTATION
19720
19721DECLARE_HEADERS(AsmElfSymbolSection);
19722#if defined(SgAsmElfSymbolSection_HEADERS) || defined(DOCUMENTATION)
19723#include <Rose/BinaryAnalysis/Address.h>
19724
19725#ifdef ROSE_SgAsmElfSymbolSection_IMPL
19726#include <SgAsmElfSymbolList.h>
19727#endif
19728#endif // SgAsmElfSymbolSection_HEADERS
19729
19730#ifdef DOCUMENTATION
19733#endif // DOCUMENTATION
19734
19735#ifndef DOCUMENTATION
19736 AsmElfSymbolSection.setDataPrototype(
19737 "bool", "isDynamic", "= false",
19738 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19739#endif // !DOCUMENTATION
19740
19741#ifndef DOCUMENTATION
19742 AsmElfSymbolSection.setDataPrototype(
19743 "SgAsmElfSymbolList*", "symbols", "= createAndParent<SgAsmElfSymbolList>(this)",
19744 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19745#endif // !DOCUMENTATION
19746
19747 DECLARE_OTHERS(AsmElfSymbolSection);
19748#if defined(SgAsmElfSymbolSection_OTHERS) || defined(DOCUMENTATION)
19749
19750 //----------------------- Boost serialization for SgAsmElfSymbolSection -----------------------
19751#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19752private:
19753 friend class boost::serialization::access;
19754
19755 template<class S>
19756 void serialize(S &s, const unsigned /*version*/) {
19757 debugSerializationBegin("SgAsmElfSymbolSection");
19758 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
19759 s & BOOST_SERIALIZATION_NVP(p_isDynamic);
19760 s & BOOST_SERIALIZATION_NVP(p_symbols);
19761 debugSerializationEnd("SgAsmElfSymbolSection");
19762 }
19763#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19764public:
19765public:
19769 bool const& get_isDynamic() const;
19770 void set_isDynamic(bool const&);
19773public:
19783public:
19786
19788 virtual SgAsmElfSymbolSection* parse() override;
19789
19802 virtual void finishParsing() override;
19803
19806
19812 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
19813
19817 virtual bool reallocate() override;
19818
19820 virtual void unparse(std::ostream&) const override;
19821
19823 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19824
19826 // Deprecated 2023-11
19828public:
19829 bool get_is_dynamic() const ROSE_DEPRECATED("use get_isDynamic");
19830 void set_is_dynamic(bool) ROSE_DEPRECATED("use set_isDynamic");
19831 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing");
19832 size_t index_of(SgAsmElfSymbol*) ROSE_DEPRECATED("use indexOf");
19833 using SgAsmElfSection::calculate_sizes;
19834 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
19835 ROSE_DEPRECATED("use calculateSizes");
19836public:
19839
19840public:
19843
19844protected:
19852#endif // SgAsmElfSymbolSection_OTHERS
19853#ifdef DOCUMENTATION
19854};
19855#endif // DOCUMENTATION
19856
19857
19859// SgAsmElfSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
19861
19862DECLARE_LEAF_CLASS(AsmElfSymbolList);
19863IS_SERIALIZABLE(AsmElfSymbolList);
19864
19865#ifndef DOCUMENTATION
19866AsmElfSymbolList.useSmallHeader(true);
19867#endif // !DOCUMENTATION
19868
19869DECLARE_HEADERS(AsmElfSymbolList);
19870#if defined(SgAsmElfSymbolList_HEADERS) || defined(DOCUMENTATION)
19871#include <sageContainer.h>
19872#endif // SgAsmElfSymbolList_HEADERS
19873
19874#ifdef DOCUMENTATION
19876#endif // DOCUMENTATION
19877
19878#ifndef DOCUMENTATION
19879 AsmElfSymbolList.setDataPrototype(
19880 "SgAsmElfSymbolPtrList", "symbols", "",
19881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19882#endif // !DOCUMENTATION
19883
19884 DECLARE_OTHERS(AsmElfSymbolList);
19885#if defined(SgAsmElfSymbolList_OTHERS) || defined(DOCUMENTATION)
19886
19887 //----------------------- Boost serialization for SgAsmElfSymbolList -----------------------
19888#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19889private:
19890 friend class boost::serialization::access;
19891
19892 template<class S>
19893 void serialize(S &s, const unsigned /*version*/) {
19894 debugSerializationBegin("SgAsmElfSymbolList");
19895 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19896 s & BOOST_SERIALIZATION_NVP(p_symbols);
19897 debugSerializationEnd("SgAsmElfSymbolList");
19898 }
19899#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19900public:
19901public:
19908 SgAsmElfSymbolPtrList const& get_symbols() const;
19909 SgAsmElfSymbolPtrList& get_symbols();
19910 void set_symbols(SgAsmElfSymbolPtrList const&);
19913public:
19916
19917public:
19920
19921protected:
19929#endif // SgAsmElfSymbolList_OTHERS
19930#ifdef DOCUMENTATION
19931};
19932#endif // DOCUMENTATION
19933
19934
19936// SgAsmElfSymbol -- MACHINE GENERATED; DO NOT MODIFY --
19938
19939DECLARE_LEAF_CLASS(AsmElfSymbol);
19940IS_SERIALIZABLE(AsmElfSymbol);
19941
19942#ifndef DOCUMENTATION
19943AsmElfSymbol.useSmallHeader(true);
19944#endif // !DOCUMENTATION
19945
19946DECLARE_HEADERS(AsmElfSymbol);
19947#if defined(SgAsmElfSymbol_HEADERS) || defined(DOCUMENTATION)
19948#include <Rose/BinaryAnalysis/Address.h>
19949#include <Rose/BinaryAnalysis/ByteOrder.h>
19950#include <sageContainer.h>
19951#endif // SgAsmElfSymbol_HEADERS
19952
19953#ifdef DOCUMENTATION
19959#endif // DOCUMENTATION
19960
19961#ifndef DOCUMENTATION
19962 AsmElfSymbol.setDataPrototype(
19963 "unsigned char", "st_info", "= 0",
19964 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19965#endif // !DOCUMENTATION
19966
19967#ifndef DOCUMENTATION
19968 AsmElfSymbol.setDataPrototype(
19969 "unsigned char", "st_res1", "= 0",
19970 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19971#endif // !DOCUMENTATION
19972
19973#ifndef DOCUMENTATION
19974 AsmElfSymbol.setDataPrototype(
19975 "unsigned", "st_shndx", "= 0",
19976 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19977#endif // !DOCUMENTATION
19978
19979#ifndef DOCUMENTATION
19980 AsmElfSymbol.setDataPrototype(
19981 "Rose::BinaryAnalysis::Address", "st_size", "= 0",
19982 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19983#endif // !DOCUMENTATION
19984
19985#ifndef DOCUMENTATION
19986 AsmElfSymbol.setDataPrototype(
19987 "SgUnsignedCharList", "extra", "",
19988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19989#endif // !DOCUMENTATION
19990
19991 DECLARE_OTHERS(AsmElfSymbol);
19992#if defined(SgAsmElfSymbol_OTHERS) || defined(DOCUMENTATION)
19993
19994 //----------------------- Boost serialization for SgAsmElfSymbol -----------------------
19995#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19996private:
19997 friend class boost::serialization::access;
19998
19999 template<class S>
20000 void serialize(S &s, const unsigned /*version*/) {
20001 debugSerializationBegin("SgAsmElfSymbol");
20002 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
20003 s & BOOST_SERIALIZATION_NVP(p_st_info);
20004 s & BOOST_SERIALIZATION_NVP(p_st_res1);
20005 s & BOOST_SERIALIZATION_NVP(p_st_shndx);
20006 s & BOOST_SERIALIZATION_NVP(p_st_size);
20007 s & BOOST_SERIALIZATION_NVP(p_extra);
20008 debugSerializationEnd("SgAsmElfSymbol");
20009 }
20010#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20012 // Local types
20014public:
20015 enum ElfSymBinding {
20016 STB_LOCAL=0,
20017 STB_GLOBAL=1,
20018 STB_WEAK=2
20019 };
20020
20031
20032#ifdef _MSC_VER
20033# pragma pack (1)
20034#endif
20035
20038 uint32_t st_name;
20039 uint32_t st_value;
20040 uint32_t st_size;
20041 unsigned char st_info;
20042 unsigned char st_res1;
20043 uint16_t st_shndx;
20044 }
20045#if !defined(SWIG) && !defined(_MSC_VER)
20046 __attribute__((packed))
20047#endif
20048 ;
20049
20051 uint32_t st_name;
20052 unsigned char st_info;
20053 unsigned char st_res1;
20054 uint16_t st_shndx;
20055 uint64_t st_value;
20056 uint64_t st_size;
20057 }
20058#if !defined(SWIG) && !defined(_MSC_VER)
20059 __attribute__((packed))
20060#endif
20061 ;
20062
20063#ifdef _MSC_VER
20064# pragma pack ()
20065#endif
20066
20068 // Properties
20070public:
20071public:
20077 unsigned char const& get_st_info() const;
20078 void set_st_info(unsigned char const&);
20081public:
20087 unsigned char const& get_st_res1() const;
20088 void set_st_res1(unsigned char const&);
20091public:
20097 unsigned const& get_st_shndx() const;
20098 void set_st_shndx(unsigned const&);
20101public:
20111public:
20117 SgUnsignedCharList const& get_extra() const;
20118 SgUnsignedCharList& get_extra();
20119 void set_extra(SgUnsignedCharList const&);
20122 // Functions
20124public:
20127
20132
20137
20150 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
20151 void dump(FILE*, const char *prefix, ssize_t idx, SgAsmGenericSection*) const;
20155 SgAsmElfSymbol::ElfSymBinding get_elfBinding() const;
20156
20159
20161 static std::string toString(SgAsmElfSymbol::ElfSymBinding);
20162
20165
20166private:
20167 void parse_common(); // initialization common to all parse() methods
20168
20170 // Deprecated 2023-11
20172public:
20173 SgAsmElfSymbol::ElfSymBinding get_elf_binding() const ROSE_DEPRECATED("use get_elfBinding");
20174 SgAsmElfSymbol::ElfSymType get_elf_type() const ROSE_DEPRECATED("use get_elfType");
20175 static std::string to_string(SgAsmElfSymbol::ElfSymBinding) ROSE_DEPRECATED("use toString");
20176 static std::string to_string(SgAsmElfSymbol::ElfSymType) ROSE_DEPRECATED("use toString");
20177public:
20179 virtual ~SgAsmElfSymbol();
20180
20181public:
20184
20185protected:
20193#endif // SgAsmElfSymbol_OTHERS
20194#ifdef DOCUMENTATION
20195};
20196#endif // DOCUMENTATION
20197
20198
20200// SgAsmElfStrtab -- MACHINE GENERATED; DO NOT MODIFY --
20202
20203DECLARE_LEAF_CLASS(AsmElfStrtab);
20204IS_SERIALIZABLE(AsmElfStrtab);
20205
20206#ifndef DOCUMENTATION
20207AsmElfStrtab.useSmallHeader(true);
20208#endif // !DOCUMENTATION
20209
20210DECLARE_HEADERS(AsmElfStrtab);
20211#if defined(SgAsmElfStrtab_HEADERS) || defined(DOCUMENTATION)
20212#include <Rose/BinaryAnalysis/Address.h>
20213#endif // SgAsmElfStrtab_HEADERS
20214
20215#ifdef DOCUMENTATION
20218#endif // DOCUMENTATION
20219
20220 DECLARE_OTHERS(AsmElfStrtab);
20221#if defined(SgAsmElfStrtab_OTHERS) || defined(DOCUMENTATION)
20222
20223 //----------------------- Boost serialization for SgAsmElfStrtab -----------------------
20224#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20225private:
20226 friend class boost::serialization::access;
20227
20228 template<class S>
20229 void serialize(S &s, const unsigned /*version*/) {
20230 debugSerializationBegin("SgAsmElfStrtab");
20231 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
20232 debugSerializationEnd("SgAsmElfStrtab");
20233 }
20234#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20235public:
20239 explicit SgAsmElfStrtab(class SgAsmElfSection *containing_section);
20240
20247 void destructorHelper() override;
20248
20252 virtual SgAsmElfStrtab *parse() override;
20253
20257 virtual void unparse(std::ostream&) const;
20258
20265
20270
20279 virtual void allocateOverlap(SgAsmStringStorage*) override;
20280
20283
20285 // Deprecated 2023-11
20287public:
20288 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) override ROSE_DEPRECATED("use createStorage");
20289 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) override
20290 ROSE_DEPRECATED("use get_storageSize");
20291 virtual void allocate_overlap(SgAsmStringStorage*) override ROSE_DEPRECATED("use allocateOverlap");
20292public:
20295
20296public:
20299
20300protected:
20308#endif // SgAsmElfStrtab_OTHERS
20309#ifdef DOCUMENTATION
20310};
20311#endif // DOCUMENTATION
20312
20313
20315// SgAsmElfStringSection -- MACHINE GENERATED; DO NOT MODIFY --
20317
20318DECLARE_LEAF_CLASS(AsmElfStringSection);
20319IS_SERIALIZABLE(AsmElfStringSection);
20320
20321#ifndef DOCUMENTATION
20322AsmElfStringSection.useSmallHeader(true);
20323#endif // !DOCUMENTATION
20324
20325DECLARE_HEADERS(AsmElfStringSection);
20326#if defined(SgAsmElfStringSection_HEADERS) || defined(DOCUMENTATION)
20327#include <Rose/BinaryAnalysis/Address.h>
20328#endif // SgAsmElfStringSection_HEADERS
20329
20330#ifdef DOCUMENTATION
20335#endif // DOCUMENTATION
20336
20337#ifndef DOCUMENTATION
20338 AsmElfStringSection.setDataPrototype(
20339 "SgAsmElfStrtab*", "strtab", "= nullptr",
20340 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20341#endif // !DOCUMENTATION
20342
20343 DECLARE_OTHERS(AsmElfStringSection);
20344#if defined(SgAsmElfStringSection_OTHERS) || defined(DOCUMENTATION)
20345
20346 //----------------------- Boost serialization for SgAsmElfStringSection -----------------------
20347#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20348private:
20349 friend class boost::serialization::access;
20350
20351 template<class S>
20352 void serialize(S &s, const unsigned /*version*/) {
20353 debugSerializationBegin("SgAsmElfStringSection");
20354 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
20355 s & BOOST_SERIALIZATION_NVP(p_strtab);
20356 debugSerializationEnd("SgAsmElfStringSection");
20357 }
20358#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20359public:
20360public:
20369public:
20372
20374 virtual SgAsmElfStringSection *parse() override;
20375
20377 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20378
20383 virtual void set_size(Rose::BinaryAnalysis::Address newsize) override;
20384
20391 virtual bool reallocate() override;
20392
20394 virtual void unparse(std::ostream&) const override;
20395public:
20398
20399public:
20402
20403protected:
20411#endif // SgAsmElfStringSection_OTHERS
20412#ifdef DOCUMENTATION
20413};
20414#endif // DOCUMENTATION
20415
20416
20418// SgAsmElfSegmentTableEntryList -- MACHINE GENERATED; DO NOT MODIFY --
20420
20421DECLARE_LEAF_CLASS(AsmElfSegmentTableEntryList);
20422IS_SERIALIZABLE(AsmElfSegmentTableEntryList);
20423
20424#ifndef DOCUMENTATION
20425AsmElfSegmentTableEntryList.useSmallHeader(true);
20426#endif // !DOCUMENTATION
20427
20428DECLARE_HEADERS(AsmElfSegmentTableEntryList);
20429#if defined(SgAsmElfSegmentTableEntryList_HEADERS) || defined(DOCUMENTATION)
20430#include <sageContainer.h>
20431#endif // SgAsmElfSegmentTableEntryList_HEADERS
20432
20433#ifdef DOCUMENTATION
20435#endif // DOCUMENTATION
20436
20437#ifndef DOCUMENTATION
20438 AsmElfSegmentTableEntryList.setDataPrototype(
20439 "SgAsmElfSegmentTableEntryPtrList", "entries", "",
20440 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
20441#endif // !DOCUMENTATION
20442
20443 DECLARE_OTHERS(AsmElfSegmentTableEntryList);
20444#if defined(SgAsmElfSegmentTableEntryList_OTHERS) || defined(DOCUMENTATION)
20445
20446 //----------------------- Boost serialization for SgAsmElfSegmentTableEntryList -----------------------
20447#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20448private:
20449 friend class boost::serialization::access;
20450
20451 template<class S>
20452 void serialize(S &s, const unsigned /*version*/) {
20453 debugSerializationBegin("SgAsmElfSegmentTableEntryList");
20454 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20455 s & BOOST_SERIALIZATION_NVP(p_entries);
20456 debugSerializationEnd("SgAsmElfSegmentTableEntryList");
20457 }
20458#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20459public:
20460public:
20467 SgAsmElfSegmentTableEntryPtrList const& get_entries() const;
20468 SgAsmElfSegmentTableEntryPtrList& get_entries();
20469 void set_entries(SgAsmElfSegmentTableEntryPtrList const&);
20472public:
20475
20476public:
20479
20480protected:
20488#endif // SgAsmElfSegmentTableEntryList_OTHERS
20489#ifdef DOCUMENTATION
20490};
20491#endif // DOCUMENTATION
20492
20493
20495// SgAsmElfSegmentTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
20497
20498DECLARE_LEAF_CLASS(AsmElfSegmentTableEntry);
20499IS_SERIALIZABLE(AsmElfSegmentTableEntry);
20500
20501#ifndef DOCUMENTATION
20502AsmElfSegmentTableEntry.useSmallHeader(true);
20503#endif // !DOCUMENTATION
20504
20505DECLARE_HEADERS(AsmElfSegmentTableEntry);
20506#if defined(SgAsmElfSegmentTableEntry_HEADERS) || defined(DOCUMENTATION)
20507#include <Rose/BinaryAnalysis/Address.h>
20508#include <Rose/BinaryAnalysis/ByteOrder.h>
20509#include <sageContainer.h>
20510#endif // SgAsmElfSegmentTableEntry_HEADERS
20511
20512#ifdef DOCUMENTATION
20515#endif // DOCUMENTATION
20516
20517#ifndef DOCUMENTATION
20518 AsmElfSegmentTableEntry.setDataPrototype(
20519 "size_t", "index", "= 0",
20520 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20521#endif // !DOCUMENTATION
20522
20523#ifndef DOCUMENTATION
20524 AsmElfSegmentTableEntry.setDataPrototype(
20525 "SgAsmElfSegmentTableEntry::SegmentType", "type", "= SgAsmElfSegmentTableEntry::PT_LOAD",
20526 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20527#endif // !DOCUMENTATION
20528
20529#ifndef DOCUMENTATION
20530 AsmElfSegmentTableEntry.setDataPrototype(
20531 "SgAsmElfSegmentTableEntry::SegmentFlags", "flags", "= SgAsmElfSegmentTableEntry::PF_NONE",
20532 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20533#endif // !DOCUMENTATION
20534
20535#ifndef DOCUMENTATION
20536 AsmElfSegmentTableEntry.setDataPrototype(
20537 "Rose::BinaryAnalysis::Address", "offset", "= 0",
20538 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20539#endif // !DOCUMENTATION
20540
20541#ifndef DOCUMENTATION
20542 AsmElfSegmentTableEntry.setDataPrototype(
20543 "Rose::BinaryAnalysis::Address", "vaddr", "= 0",
20544 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20545#endif // !DOCUMENTATION
20546
20547#ifndef DOCUMENTATION
20548 AsmElfSegmentTableEntry.setDataPrototype(
20549 "Rose::BinaryAnalysis::Address", "paddr", "= 0",
20550 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20551#endif // !DOCUMENTATION
20552
20553#ifndef DOCUMENTATION
20554 AsmElfSegmentTableEntry.setDataPrototype(
20555 "Rose::BinaryAnalysis::Address", "filesz", "= 0",
20556 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20557#endif // !DOCUMENTATION
20558
20559#ifndef DOCUMENTATION
20560 AsmElfSegmentTableEntry.setDataPrototype(
20561 "Rose::BinaryAnalysis::Address", "memsz", "= 0",
20562 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20563#endif // !DOCUMENTATION
20564
20565#ifndef DOCUMENTATION
20566 AsmElfSegmentTableEntry.setDataPrototype(
20567 "Rose::BinaryAnalysis::Address", "align", "= 0",
20568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20569#endif // !DOCUMENTATION
20570
20571#ifndef DOCUMENTATION
20572 AsmElfSegmentTableEntry.setDataPrototype(
20573 "SgUnsignedCharList", "extra", "",
20574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20575#endif // !DOCUMENTATION
20576
20577 DECLARE_OTHERS(AsmElfSegmentTableEntry);
20578#if defined(SgAsmElfSegmentTableEntry_OTHERS) || defined(DOCUMENTATION)
20579
20580 //----------------------- Boost serialization for SgAsmElfSegmentTableEntry -----------------------
20581#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20582private:
20583 friend class boost::serialization::access;
20584
20585 template<class S>
20586 void serialize(S &s, const unsigned /*version*/) {
20587 debugSerializationBegin("SgAsmElfSegmentTableEntry");
20588 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20589 s & BOOST_SERIALIZATION_NVP(p_index);
20590 s & BOOST_SERIALIZATION_NVP(p_type);
20591 s & BOOST_SERIALIZATION_NVP(p_flags);
20592 s & BOOST_SERIALIZATION_NVP(p_offset);
20593 s & BOOST_SERIALIZATION_NVP(p_vaddr);
20594 s & BOOST_SERIALIZATION_NVP(p_paddr);
20595 s & BOOST_SERIALIZATION_NVP(p_filesz);
20596 s & BOOST_SERIALIZATION_NVP(p_memsz);
20597 s & BOOST_SERIALIZATION_NVP(p_align);
20598 s & BOOST_SERIALIZATION_NVP(p_extra);
20599 debugSerializationEnd("SgAsmElfSegmentTableEntry");
20600 }
20601#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20603 // Local types
20605public:
20617 // OS- and Processor-specific ranges
20618 PT_LOOS = 0x60000000,
20619 PT_HIOS = 0x6fffffff,
20620 PT_LOPROC = 0x70000000,
20621 PT_HIPROC = 0x7fffffff,
20622
20623 // OS-specific values for GNU/Linux
20624 PT_GNU_EH_FRAME = 0x6474e550,
20625 PT_GNU_STACK = 0x6474e551,
20626 PT_GNU_RELRO = 0x6474e552,
20627 PT_PAX_FLAGS = 0x65041580,
20629 // OS-specific values for Sun
20630 PT_SUNWBSS = 0x6ffffffa,
20631 PT_SUNWSTACK = 0x6ffffffb
20633
20637 PF_RESERVED = 0x000ffff8,
20638 PF_XPERM = 0x00000001,
20639 PF_WPERM = 0x00000002,
20640 PF_RPERM = 0x00000004,
20641 PF_OS_MASK = 0x0ff00000,
20642 PF_PROC_MASK = 0xf0000000
20644
20645#ifdef _MSC_VER
20646# pragma pack (1)
20647#endif
20656 uint32_t p_type;
20657 uint32_t p_offset;
20658 uint32_t p_vaddr;
20659 uint32_t p_paddr;
20660 uint32_t p_filesz;
20661 uint32_t p_memsz;
20662 uint32_t p_flags;
20663 uint32_t p_align;
20664 } /* 0x30 */
20665#if !defined(SWIG) && !defined(_MSC_VER)
20666 __attribute__((packed))
20667#endif
20668 ;
20669
20671 uint32_t p_type; /* 0x00 */
20672 uint32_t p_flags; /* 0x04 */
20673 uint64_t p_offset; /* 0x08 */
20674 uint64_t p_vaddr; /* 0x10 */
20675 uint64_t p_paddr; /* 0x18 */
20676 uint64_t p_filesz; /* 0x20 */
20677 uint64_t p_memsz; /* 0x28 */
20678 uint64_t p_align; /* 0x30 */
20679 } /* 0x38 */
20680#if !defined(SWIG) && !defined(_MSC_VER)
20681 __attribute__((packed))
20682#endif
20683 ;
20684#ifdef _MSC_VER
20685# pragma pack ()
20686#endif
20687
20689 // Properties
20691public:
20692public:
20698 size_t const& get_index() const;
20699 void set_index(size_t const&);
20702public:
20710public:
20718public:
20728public:
20739public:
20749public:
20759public:
20769public:
20779public:
20785 SgUnsignedCharList const& get_extra() const;
20786 SgUnsignedCharList& get_extra();
20787 void set_extra(SgUnsignedCharList const&);
20790 // Functions
20792public:
20796
20800
20810
20812 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
20813
20816
20819
20821 // Deprecated 2023-11
20823public:
20824 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
20825 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentType) ROSE_DEPRECATED("use toString");
20826 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentFlags) ROSE_DEPRECATED("use toString");
20827public:
20830
20831public:
20834
20835protected:
20843#endif // SgAsmElfSegmentTableEntry_OTHERS
20844#ifdef DOCUMENTATION
20845};
20846#endif // DOCUMENTATION
20847
20848
20850// SgAsmElfSegmentTable -- MACHINE GENERATED; DO NOT MODIFY --
20852
20853DECLARE_LEAF_CLASS(AsmElfSegmentTable);
20854IS_SERIALIZABLE(AsmElfSegmentTable);
20855
20856#ifndef DOCUMENTATION
20857AsmElfSegmentTable.useSmallHeader(true);
20858#endif // !DOCUMENTATION
20859
20860DECLARE_HEADERS(AsmElfSegmentTable);
20861#if defined(SgAsmElfSegmentTable_HEADERS) || defined(DOCUMENTATION)
20862#include <Rose/BinaryAnalysis/Address.h>
20863#endif // SgAsmElfSegmentTable_HEADERS
20864
20865#ifdef DOCUMENTATION
20873#endif // DOCUMENTATION
20874
20875 DECLARE_OTHERS(AsmElfSegmentTable);
20876#if defined(SgAsmElfSegmentTable_OTHERS) || defined(DOCUMENTATION)
20877
20878 //----------------------- Boost serialization for SgAsmElfSegmentTable -----------------------
20879#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20880private:
20881 friend class boost::serialization::access;
20882
20883 template<class S>
20884 void serialize(S &s, const unsigned /*version*/) {
20885 debugSerializationBegin("SgAsmElfSegmentTable");
20886 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
20887 debugSerializationEnd("SgAsmElfSegmentTable");
20888 }
20889#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20890public:
20893
20898 virtual SgAsmElfSegmentTable *parse() override;
20899
20914
20918 Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
20919
20920 virtual bool reallocate() override;
20921
20923 virtual void unparse(std::ostream&) const override;
20924
20926 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20927
20929 // Deprecated 2023-11
20931public:
20932 SgAsmElfSegmentTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
20933 Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
20934public:
20937
20938public:
20941
20942protected:
20950#endif // SgAsmElfSegmentTable_OTHERS
20951#ifdef DOCUMENTATION
20952};
20953#endif // DOCUMENTATION
20954
20955
20957// SgAsmElfSectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
20959
20960DECLARE_LEAF_CLASS(AsmElfSectionTableEntry);
20961IS_SERIALIZABLE(AsmElfSectionTableEntry);
20962
20963#ifndef DOCUMENTATION
20964AsmElfSectionTableEntry.useSmallHeader(true);
20965#endif // !DOCUMENTATION
20966
20967DECLARE_HEADERS(AsmElfSectionTableEntry);
20968#if defined(SgAsmElfSectionTableEntry_HEADERS) || defined(DOCUMENTATION)
20969#include <Rose/BinaryAnalysis/Address.h>
20970#include <Rose/BinaryAnalysis/ByteOrder.h>
20971#include <sageContainer.h>
20972#endif // SgAsmElfSectionTableEntry_HEADERS
20973
20974#ifdef DOCUMENTATION
20977#endif // DOCUMENTATION
20978
20979#ifndef DOCUMENTATION
20980 AsmElfSectionTableEntry.setDataPrototype(
20981 "unsigned", "sh_name", "= 0",
20982 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20983#endif // !DOCUMENTATION
20984
20985#ifndef DOCUMENTATION
20986 AsmElfSectionTableEntry.setDataPrototype(
20987 "SgAsmElfSectionTableEntry::SectionType", "sh_type", "= SHT_PROGBITS",
20988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20989#endif // !DOCUMENTATION
20990
20991#ifndef DOCUMENTATION
20992 AsmElfSectionTableEntry.setDataPrototype(
20993 "unsigned long", "sh_link", "= 0",
20994 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20995#endif // !DOCUMENTATION
20996
20997#ifndef DOCUMENTATION
20998 AsmElfSectionTableEntry.setDataPrototype(
20999 "unsigned long", "sh_info", "= 0",
21000 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21001#endif // !DOCUMENTATION
21002
21003#ifndef DOCUMENTATION
21004 AsmElfSectionTableEntry.setDataPrototype(
21005 "uint64_t", "sh_flags", "= 0",
21006 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21007#endif // !DOCUMENTATION
21008
21009#ifndef DOCUMENTATION
21010 AsmElfSectionTableEntry.setDataPrototype(
21011 "Rose::BinaryAnalysis::Address", "sh_addr", "= 0",
21012 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21013#endif // !DOCUMENTATION
21014
21015#ifndef DOCUMENTATION
21016 AsmElfSectionTableEntry.setDataPrototype(
21017 "Rose::BinaryAnalysis::Address", "sh_offset", "= 0",
21018 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21019#endif // !DOCUMENTATION
21020
21021#ifndef DOCUMENTATION
21022 AsmElfSectionTableEntry.setDataPrototype(
21023 "Rose::BinaryAnalysis::Address", "sh_size", "= 0",
21024 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21025#endif // !DOCUMENTATION
21026
21027#ifndef DOCUMENTATION
21028 AsmElfSectionTableEntry.setDataPrototype(
21029 "Rose::BinaryAnalysis::Address", "sh_addralign", "= 0",
21030 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21031#endif // !DOCUMENTATION
21032
21033#ifndef DOCUMENTATION
21034 AsmElfSectionTableEntry.setDataPrototype(
21035 "Rose::BinaryAnalysis::Address", "sh_entsize", "= 0",
21036 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21037#endif // !DOCUMENTATION
21038
21039#ifndef DOCUMENTATION
21040 AsmElfSectionTableEntry.setDataPrototype(
21041 "SgUnsignedCharList", "extra", "",
21042 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21043#endif // !DOCUMENTATION
21044
21045 DECLARE_OTHERS(AsmElfSectionTableEntry);
21046#if defined(SgAsmElfSectionTableEntry_OTHERS) || defined(DOCUMENTATION)
21047
21048 //----------------------- Boost serialization for SgAsmElfSectionTableEntry -----------------------
21049#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21050private:
21051 friend class boost::serialization::access;
21052
21053 template<class S>
21054 void serialize(S &s, const unsigned /*version*/) {
21055 debugSerializationBegin("SgAsmElfSectionTableEntry");
21056 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21057 s & BOOST_SERIALIZATION_NVP(p_sh_name);
21058 s & BOOST_SERIALIZATION_NVP(p_sh_type);
21059 s & BOOST_SERIALIZATION_NVP(p_sh_link);
21060 s & BOOST_SERIALIZATION_NVP(p_sh_info);
21061 s & BOOST_SERIALIZATION_NVP(p_sh_flags);
21062 s & BOOST_SERIALIZATION_NVP(p_sh_addr);
21063 s & BOOST_SERIALIZATION_NVP(p_sh_offset);
21064 s & BOOST_SERIALIZATION_NVP(p_sh_size);
21065 s & BOOST_SERIALIZATION_NVP(p_sh_addralign);
21066 s & BOOST_SERIALIZATION_NVP(p_sh_entsize);
21067 s & BOOST_SERIALIZATION_NVP(p_extra);
21068 debugSerializationEnd("SgAsmElfSectionTableEntry");
21069 }
21070#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21072 // Local types
21074public:
21090 SHT_LOOS = 0x60000000,
21091 SHT_GNU_verdef = 0x6ffffffd,
21092 SHT_GNU_verneed = 0x6ffffffe,
21093 SHT_GNU_versym = 0x6fffffff,
21094 SHT_HIOS = 0x6fffffff, /*NO_STRINGIFY*/
21095
21096 SHT_LOPROC = 0x70000000, /* Processor specific semantics */
21097 SHT_HIPROC = 0x7fffffff,
21098 SHT_LOUSER = 0x80000000, /* Application specific semantics */
21099 SHT_HIUSER = 0xffffffff
21100 };
21101
21105 SHF_WRITE= (1 << 0),
21106 SHF_ALLOC= (1 << 1),
21107 SHF_EXECINSTR= (1 << 2),
21108 SHF_MERGE= (1 << 4),
21109 SHF_STRINGS= (1 << 5),
21110 SHF_INFO_LINK= (1 << 6),
21111 SHF_LINK_ORDER= (1 << 7),
21113 SHF_GROUP= (1 << 9),
21114 SHF_TLS= (1 << 10),
21115 SHF_MASKOS= 0x0ff00000,
21116 SHF_MASKPROC= 0xf0000000
21118
21125#ifdef _MSC_VER
21126# pragma pack (1)
21127#endif
21129 uint32_t sh_name; /* 0x00 Section name; index into section header string table */
21130 uint32_t sh_type; /* 0x04 Section contents and semantics (see SectionType enum) */
21131 uint32_t sh_flags; /* 0x08 Bit flags */
21132 uint32_t sh_addr; /* 0x0c Desired mapped address */
21133 uint32_t sh_offset; /* 0x10 Section location in file unless sh_type==SHT_NOBITS */
21134 uint32_t sh_size; /* 0x14 Section size in bytes */
21135 uint32_t sh_link; /* 0x18 Section ID of another section; meaning depends on section type */
21136 uint32_t sh_info; /* 0x1c Extra info depending on section type */
21137 uint32_t sh_addralign; /* 0x20 Mapped alignment (0 and 1=>byte aligned); sh_addr must be aligned*/
21138 uint32_t sh_entsize; /* 0x24 If non-zero, size in bytes of each array member in the section */
21139 } /* 0x28 */
21140#if !defined(SWIG) && !defined(_MSC_VER)
21141 __attribute__((packed))
21142#endif
21143 ;
21144
21146 uint32_t sh_name; /* 0x00 see Elf32SectionTableEntry_disk */
21147 uint32_t sh_type; /* 0x04 */
21148 uint64_t sh_flags; /* 0x08 */
21149 uint64_t sh_addr; /* 0x10 */
21150 uint64_t sh_offset; /* 0x18 */
21151 uint64_t sh_size; /* 0x20 */
21152 uint32_t sh_link; /* 0x28 */
21153 uint32_t sh_info; /* 0x2c */
21154 uint64_t sh_addralign; /* 0x30 */
21155 uint64_t sh_entsize; /* 0x38 */
21156 } /* 0x40 */
21157#if !defined(SWIG) && !defined(_MSC_VER)
21158 __attribute__((packed))
21159#endif
21160 ;
21161#ifdef _MSC_VER
21162# pragma pack ()
21163#endif
21164
21166 // Properties
21168public:
21169public:
21175 unsigned const& get_sh_name() const;
21176 void set_sh_name(unsigned const&);
21179public:
21189public:
21195 unsigned long const& get_sh_link() const;
21196 void set_sh_link(unsigned long const&);
21199public:
21205 unsigned long const& get_sh_info() const;
21206 void set_sh_info(unsigned long const&);
21209public:
21215 uint64_t const& get_sh_flags() const;
21216 void set_sh_flags(uint64_t const&);
21219public:
21229public:
21239public:
21249public:
21259public:
21269public:
21275 SgUnsignedCharList const& get_extra() const;
21276 SgUnsignedCharList& get_extra();
21277 void set_extra(SgUnsignedCharList const&);
21280 // Functions
21282public:
21286
21290
21302
21304 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
21305
21306 // Use Rose::stringify... function instead.
21307 static std::string toString(SgAsmElfSectionTableEntry::SectionType);
21308 static std::string toString(SgAsmElfSectionTableEntry::SectionFlags);
21309
21311 // Deprecated 2023-11
21313public:
21314 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
21315 static std::string to_string(SgAsmElfSectionTableEntry::SectionType) ROSE_DEPRECATED("use toString");
21316 static std::string to_string(SgAsmElfSectionTableEntry::SectionFlags) ROSE_DEPRECATED("use toString");
21317public:
21320
21321public:
21324
21325protected:
21333#endif // SgAsmElfSectionTableEntry_OTHERS
21334#ifdef DOCUMENTATION
21335};
21336#endif // DOCUMENTATION
21337
21338
21340// SgAsmElfSectionTable -- MACHINE GENERATED; DO NOT MODIFY --
21342
21343DECLARE_LEAF_CLASS(AsmElfSectionTable);
21344IS_SERIALIZABLE(AsmElfSectionTable);
21345
21346#ifndef DOCUMENTATION
21347AsmElfSectionTable.useSmallHeader(true);
21348#endif // !DOCUMENTATION
21349
21350DECLARE_HEADERS(AsmElfSectionTable);
21351#if defined(SgAsmElfSectionTable_HEADERS) || defined(DOCUMENTATION)
21352#include <Rose/BinaryAnalysis/Address.h>
21353#endif // SgAsmElfSectionTable_HEADERS
21354
21355#ifdef DOCUMENTATION
21362#endif // DOCUMENTATION
21363
21364 DECLARE_OTHERS(AsmElfSectionTable);
21365#if defined(SgAsmElfSectionTable_OTHERS) || defined(DOCUMENTATION)
21366
21367 //----------------------- Boost serialization for SgAsmElfSectionTable -----------------------
21368#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21369private:
21370 friend class boost::serialization::access;
21371
21372 template<class S>
21373 void serialize(S &s, const unsigned /*version*/) {
21374 debugSerializationBegin("SgAsmElfSectionTable");
21375 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
21376 debugSerializationEnd("SgAsmElfSectionTable");
21377 }
21378#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21379public:
21382
21388 virtual SgAsmElfSectionTable *parse() override;
21389
21401
21405 Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
21406
21407 virtual bool reallocate() override;
21408
21410 virtual void unparse(std::ostream&) const override;
21411
21413 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21414
21416 // Deprecated 2023-11
21418public:
21419 SgAsmElfSectionTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
21420 Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
21421public:
21424
21425public:
21428
21429protected:
21437#endif // SgAsmElfSectionTable_OTHERS
21438#ifdef DOCUMENTATION
21439};
21440#endif // DOCUMENTATION
21441
21442
21444// SgAsmElfRelocSection -- MACHINE GENERATED; DO NOT MODIFY --
21446
21447DECLARE_LEAF_CLASS(AsmElfRelocSection);
21448IS_SERIALIZABLE(AsmElfRelocSection);
21449
21450#ifndef DOCUMENTATION
21451AsmElfRelocSection.useSmallHeader(true);
21452#endif // !DOCUMENTATION
21453
21454DECLARE_HEADERS(AsmElfRelocSection);
21455#if defined(SgAsmElfRelocSection_HEADERS) || defined(DOCUMENTATION)
21456#include <Rose/BinaryAnalysis/Address.h>
21457
21458#ifdef ROSE_SgAsmElfRelocSection_IMPL
21459#include <SgAsmElfRelocEntryList.h>
21460#endif
21461#endif // SgAsmElfRelocSection_HEADERS
21462
21463#ifdef DOCUMENTATION
21466#endif // DOCUMENTATION
21467
21468#ifndef DOCUMENTATION
21469 AsmElfRelocSection.setDataPrototype(
21470 "bool", "usesAddend", "= true",
21471 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21472#endif // !DOCUMENTATION
21473
21474#ifndef DOCUMENTATION
21475 AsmElfRelocSection.setDataPrototype(
21476 "SgAsmElfSection*", "targetSection", "= nullptr",
21477 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21478#endif // !DOCUMENTATION
21479
21480#ifndef DOCUMENTATION
21481 AsmElfRelocSection.setDataPrototype(
21482 "SgAsmElfRelocEntryList*", "entries", "= createAndParent<SgAsmElfRelocEntryList>(this)",
21483 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21484#endif // !DOCUMENTATION
21485
21486 DECLARE_OTHERS(AsmElfRelocSection);
21487#if defined(SgAsmElfRelocSection_OTHERS) || defined(DOCUMENTATION)
21488
21489 //----------------------- Boost serialization for SgAsmElfRelocSection -----------------------
21490#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21491private:
21492 friend class boost::serialization::access;
21493
21494 template<class S>
21495 void serialize(S &s, const unsigned /*version*/) {
21496 debugSerializationBegin("SgAsmElfRelocSection");
21497 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
21498 s & BOOST_SERIALIZATION_NVP(p_usesAddend);
21499 s & BOOST_SERIALIZATION_NVP(p_targetSection);
21500 s & BOOST_SERIALIZATION_NVP(p_entries);
21501 debugSerializationEnd("SgAsmElfRelocSection");
21502 }
21503#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21504public:
21505public:
21509 bool const& get_usesAddend() const;
21510 void set_usesAddend(bool const&);
21513public:
21521public:
21530public:
21532
21535 virtual SgAsmElfRelocSection *parse() override;
21536
21539 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
21540
21541 virtual bool reallocate() override;
21542
21544 virtual void unparse(std::ostream&) const override;
21545
21547 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21548
21550 // Deprecated 2023-11
21552public:
21553 bool get_uses_addend() const ROSE_DEPRECATED("use get_usesAddend");
21554 void set_uses_addend(bool) ROSE_DEPRECATED("use set_usesAddend");
21555 SgAsmElfSection* get_target_section() const ROSE_DEPRECATED("use get_targetSection");
21556 void set_target_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_targetSection");
21557 using SgAsmElfSection::calculate_sizes;
21558 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
21559 ROSE_DEPRECATED("use calculateSizes");
21560public:
21563
21564public:
21567
21568protected:
21576#endif // SgAsmElfRelocSection_OTHERS
21577#ifdef DOCUMENTATION
21578};
21579#endif // DOCUMENTATION
21580
21581
21583// SgAsmElfRelocEntryList -- MACHINE GENERATED; DO NOT MODIFY --
21585
21586DECLARE_LEAF_CLASS(AsmElfRelocEntryList);
21587IS_SERIALIZABLE(AsmElfRelocEntryList);
21588
21589#ifndef DOCUMENTATION
21590AsmElfRelocEntryList.useSmallHeader(true);
21591#endif // !DOCUMENTATION
21592
21593DECLARE_HEADERS(AsmElfRelocEntryList);
21594#if defined(SgAsmElfRelocEntryList_HEADERS) || defined(DOCUMENTATION)
21595#include <sageContainer.h>
21596#endif // SgAsmElfRelocEntryList_HEADERS
21597
21598#ifdef DOCUMENTATION
21604#endif // DOCUMENTATION
21605
21606#ifndef DOCUMENTATION
21607 AsmElfRelocEntryList.setDataPrototype(
21608 "SgAsmElfRelocEntryPtrList", "entries", "",
21609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21610#endif // !DOCUMENTATION
21611
21612 DECLARE_OTHERS(AsmElfRelocEntryList);
21613#if defined(SgAsmElfRelocEntryList_OTHERS) || defined(DOCUMENTATION)
21614
21615 //----------------------- Boost serialization for SgAsmElfRelocEntryList -----------------------
21616#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21617private:
21618 friend class boost::serialization::access;
21619
21620 template<class S>
21621 void serialize(S &s, const unsigned /*version*/) {
21622 debugSerializationBegin("SgAsmElfRelocEntryList");
21623 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21624 s & BOOST_SERIALIZATION_NVP(p_entries);
21625 debugSerializationEnd("SgAsmElfRelocEntryList");
21626 }
21627#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21628public:
21629public:
21633 SgAsmElfRelocEntryPtrList const& get_entries() const;
21634 SgAsmElfRelocEntryPtrList& get_entries();
21635 void set_entries(SgAsmElfRelocEntryPtrList const&);
21638public:
21641
21642public:
21645
21646protected:
21654#endif // SgAsmElfRelocEntryList_OTHERS
21655#ifdef DOCUMENTATION
21656};
21657#endif // DOCUMENTATION
21658
21659
21661// SgAsmElfRelocEntry -- MACHINE GENERATED; DO NOT MODIFY --
21663
21664DECLARE_LEAF_CLASS(AsmElfRelocEntry);
21665IS_SERIALIZABLE(AsmElfRelocEntry);
21666
21667#ifndef DOCUMENTATION
21668AsmElfRelocEntry.useSmallHeader(true);
21669#endif // !DOCUMENTATION
21670
21671DECLARE_HEADERS(AsmElfRelocEntry);
21672#if defined(SgAsmElfRelocEntry_HEADERS) || defined(DOCUMENTATION)
21673#include <Rose/BinaryAnalysis/Address.h>
21674#include <Rose/BinaryAnalysis/ByteOrder.h>
21675#include <sageContainer.h>
21676#endif // SgAsmElfRelocEntry_HEADERS
21677
21678#ifdef DOCUMENTATION
21681#endif // DOCUMENTATION
21682
21683#ifndef DOCUMENTATION
21684 AsmElfRelocEntry.setDataPrototype(
21685 "Rose::BinaryAnalysis::Address", "r_offset", "= 0",
21686 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21687#endif // !DOCUMENTATION
21688
21689#ifndef DOCUMENTATION
21690 AsmElfRelocEntry.setDataPrototype(
21691 "Rose::BinaryAnalysis::Address", "r_addend", "= 0",
21692 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21693#endif // !DOCUMENTATION
21694
21695#ifndef DOCUMENTATION
21696 AsmElfRelocEntry.setDataPrototype(
21697 "unsigned long", "sym", "= 0",
21698 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21699#endif // !DOCUMENTATION
21700
21701#ifndef DOCUMENTATION
21702 AsmElfRelocEntry.setDataPrototype(
21703 "SgAsmElfRelocEntry::RelocType", "type", "= R_386_NONE",
21704 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21705#endif // !DOCUMENTATION
21706
21707#ifndef DOCUMENTATION
21708 AsmElfRelocEntry.setDataPrototype(
21709 "SgUnsignedCharList", "extra", "",
21710 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21711#endif // !DOCUMENTATION
21712
21713 DECLARE_OTHERS(AsmElfRelocEntry);
21714#if defined(SgAsmElfRelocEntry_OTHERS) || defined(DOCUMENTATION)
21715
21716 //----------------------- Boost serialization for SgAsmElfRelocEntry -----------------------
21717#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21718private:
21719 friend class boost::serialization::access;
21720
21721 template<class S>
21722 void serialize(S &s, const unsigned /*version*/) {
21723 debugSerializationBegin("SgAsmElfRelocEntry");
21724 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21725 s & BOOST_SERIALIZATION_NVP(p_r_offset);
21726 s & BOOST_SERIALIZATION_NVP(p_r_addend);
21727 s & BOOST_SERIALIZATION_NVP(p_sym);
21728 s & BOOST_SERIALIZATION_NVP(p_type);
21729 s & BOOST_SERIALIZATION_NVP(p_extra);
21730 debugSerializationEnd("SgAsmElfRelocEntry");
21731 }
21732#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21734 // Local types
21736public:
21739 // Intel 80386 specific definitions.
21751 R_386_32PLT =11,
21758 R_386_16 =20,
21759 R_386_PC16 =21,
21760 R_386_8 =22,
21761 R_386_PC8 =23,
21777 // First Entry for X86-64
21801 R_X86_64_TPOFF32 =123
21803
21804#ifdef _MSC_VER
21805# pragma pack (1)
21806#endif
21807
21809 uint32_t r_offset;
21810 uint32_t r_info;
21811 uint32_t r_addend;
21812 }
21813#if !defined(SWIG) && !defined(_MSC_VER)
21814 __attribute__((packed))
21815#endif
21816 ;
21817
21819 uint64_t r_offset;
21820 uint64_t r_info;
21821 uint64_t r_addend;
21822 }
21823#if !defined(SWIG) && !defined(_MSC_VER)
21824 __attribute__((packed))
21825#endif
21826 ;
21827
21829 uint32_t r_offset;
21830 uint32_t r_info;
21831 }
21832#if !defined(SWIG) && !defined(_MSC_VER)
21833 __attribute__((packed))
21834#endif
21835 ;
21836
21838 uint64_t r_offset;
21839 uint64_t r_info;
21840 }
21841#if !defined(SWIG) && !defined(_MSC_VER)
21842 __attribute__((packed))
21843#endif
21844 ;
21845
21846#ifdef _MSC_VER
21847# pragma pack ()
21848#endif
21849
21851 // Properties
21853public:
21854public:
21864public:
21874public:
21880 unsigned long const& get_sym() const;
21881 void set_sym(unsigned long const&);
21884public:
21894public:
21898 SgUnsignedCharList const& get_extra() const;
21899 SgUnsignedCharList& get_extra();
21900 void set_extra(SgUnsignedCharList const&);
21903 // Functions
21905public:
21908
21930 void dump(FILE *f, const char *prefix, ssize_t idx, SgAsmElfSymbolSection *symtab) const;
21931 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const {
21932 dump(f, prefix, idx, NULL);
21933 }
21937 std::string toString() const;
21938
21940 // Deprecated 2023-11
21942public:
21943 std::string reloc_name() const ROSE_DEPRECATED("use toString");
21944public:
21947
21948public:
21951
21952protected:
21960#endif // SgAsmElfRelocEntry_OTHERS
21961#ifdef DOCUMENTATION
21962};
21963#endif // DOCUMENTATION
21964
21965
21967// SgAsmElfNoteSection -- MACHINE GENERATED; DO NOT MODIFY --
21969
21970DECLARE_LEAF_CLASS(AsmElfNoteSection);
21971IS_SERIALIZABLE(AsmElfNoteSection);
21972
21973#ifndef DOCUMENTATION
21974AsmElfNoteSection.useSmallHeader(true);
21975#endif // !DOCUMENTATION
21976
21977DECLARE_HEADERS(AsmElfNoteSection);
21978#if defined(SgAsmElfNoteSection_HEADERS) || defined(DOCUMENTATION)
21979#ifdef ROSE_SgAsmElfNoteSection_IMPL
21980#include <SgAsmElfNoteEntryList.h>
21981#endif
21982#endif // SgAsmElfNoteSection_HEADERS
21983
21984#ifdef DOCUMENTATION
21986#endif // DOCUMENTATION
21987
21988#ifndef DOCUMENTATION
21989 AsmElfNoteSection.setDataPrototype(
21990 "SgAsmElfNoteEntryList*", "entries", "= createAndParent<SgAsmElfNoteEntryList>(this)",
21991 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21992#endif // !DOCUMENTATION
21993
21994 DECLARE_OTHERS(AsmElfNoteSection);
21995#if defined(SgAsmElfNoteSection_OTHERS) || defined(DOCUMENTATION)
21996
21997 //----------------------- Boost serialization for SgAsmElfNoteSection -----------------------
21998#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21999private:
22000 friend class boost::serialization::access;
22001
22002 template<class S>
22003 void serialize(S &s, const unsigned /*version*/) {
22004 debugSerializationBegin("SgAsmElfNoteSection");
22005 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
22006 s & BOOST_SERIALIZATION_NVP(p_entries);
22007 debugSerializationEnd("SgAsmElfNoteSection");
22008 }
22009#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22010public:
22011public:
22021public:
22024
22025 virtual SgAsmElfNoteSection *parse() override;
22026
22027 virtual bool reallocate() override;
22028
22030 virtual void unparse(std::ostream&) const override;
22031
22033 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22034public:
22037
22038public:
22041
22042protected:
22050#endif // SgAsmElfNoteSection_OTHERS
22051#ifdef DOCUMENTATION
22052};
22053#endif // DOCUMENTATION
22054
22055
22057// SgAsmElfNoteEntryList -- MACHINE GENERATED; DO NOT MODIFY --
22059
22060DECLARE_LEAF_CLASS(AsmElfNoteEntryList);
22061IS_SERIALIZABLE(AsmElfNoteEntryList);
22062
22063#ifndef DOCUMENTATION
22064AsmElfNoteEntryList.useSmallHeader(true);
22065#endif // !DOCUMENTATION
22066
22067DECLARE_HEADERS(AsmElfNoteEntryList);
22068#if defined(SgAsmElfNoteEntryList_HEADERS) || defined(DOCUMENTATION)
22069#include <sageContainer.h>
22070#endif // SgAsmElfNoteEntryList_HEADERS
22071
22072#ifdef DOCUMENTATION
22078#endif // DOCUMENTATION
22079
22080#ifndef DOCUMENTATION
22081 AsmElfNoteEntryList.setDataPrototype(
22082 "SgAsmElfNoteEntryPtrList", "entries", "",
22083 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22084#endif // !DOCUMENTATION
22085
22086 DECLARE_OTHERS(AsmElfNoteEntryList);
22087#if defined(SgAsmElfNoteEntryList_OTHERS) || defined(DOCUMENTATION)
22088
22089 //----------------------- Boost serialization for SgAsmElfNoteEntryList -----------------------
22090#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22091private:
22092 friend class boost::serialization::access;
22093
22094 template<class S>
22095 void serialize(S &s, const unsigned /*version*/) {
22096 debugSerializationBegin("SgAsmElfNoteEntryList");
22097 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22098 s & BOOST_SERIALIZATION_NVP(p_entries);
22099 debugSerializationEnd("SgAsmElfNoteEntryList");
22100 }
22101#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22102public:
22103public:
22107 SgAsmElfNoteEntryPtrList const& get_entries() const;
22108 SgAsmElfNoteEntryPtrList& get_entries();
22109 void set_entries(SgAsmElfNoteEntryPtrList const&);
22112public:
22115
22116public:
22119
22120protected:
22128#endif // SgAsmElfNoteEntryList_OTHERS
22129#ifdef DOCUMENTATION
22130};
22131#endif // DOCUMENTATION
22132
22133
22135// SgAsmElfNoteEntry -- MACHINE GENERATED; DO NOT MODIFY --
22137
22138DECLARE_LEAF_CLASS(AsmElfNoteEntry);
22139IS_SERIALIZABLE(AsmElfNoteEntry);
22140
22141#ifndef DOCUMENTATION
22142AsmElfNoteEntry.useSmallHeader(true);
22143#endif // !DOCUMENTATION
22144
22145DECLARE_HEADERS(AsmElfNoteEntry);
22146#if defined(SgAsmElfNoteEntry_HEADERS) || defined(DOCUMENTATION)
22147#include <Rose/BinaryAnalysis/Address.h>
22148
22149#include <sageContainer.h>
22150
22151#ifdef ROSE_SgAsmElfNoteEntry_IMPL
22152#include <SgAsmBasicString.h>
22153#endif
22154#endif // SgAsmElfNoteEntry_HEADERS
22155
22156#ifdef DOCUMENTATION
22159#endif // DOCUMENTATION
22160
22161#ifndef DOCUMENTATION
22162 AsmElfNoteEntry.setDataPrototype(
22163 "unsigned", "type", "= 0",
22164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22165#endif // !DOCUMENTATION
22166
22167#ifndef DOCUMENTATION
22168 AsmElfNoteEntry.setDataPrototype(
22169 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
22170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22171#endif // !DOCUMENTATION
22172
22173#ifndef DOCUMENTATION
22174 AsmElfNoteEntry.setDataPrototype(
22175 "SgUnsignedCharList", "payload", "",
22176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22177#endif // !DOCUMENTATION
22178
22179 DECLARE_OTHERS(AsmElfNoteEntry);
22180#if defined(SgAsmElfNoteEntry_OTHERS) || defined(DOCUMENTATION)
22181
22182 //----------------------- Boost serialization for SgAsmElfNoteEntry -----------------------
22183#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22184private:
22185 friend class boost::serialization::access;
22186
22187 template<class S>
22188 void serialize(S &s, const unsigned /*version*/) {
22189 debugSerializationBegin("SgAsmElfNoteEntry");
22190 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22191 s & BOOST_SERIALIZATION_NVP(p_type);
22192 s & BOOST_SERIALIZATION_NVP(p_name);
22193 s & BOOST_SERIALIZATION_NVP(p_payload);
22194 debugSerializationEnd("SgAsmElfNoteEntry");
22195 }
22196#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22197public:
22198public:
22204 unsigned const& get_type() const;
22205 void set_type(unsigned const&);
22208public:
22217public:
22223 SgUnsignedCharList const& get_payload() const;
22224 SgUnsignedCharList& get_payload();
22225 void set_payload(SgUnsignedCharList const&);
22227public:
22230
22245
22250
22252 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
22253
22257 void set_payload(const void*, size_t nbytes);
22258
22261
22263 // Deprecated 2023-11
22265public:
22266 Rose::BinaryAnalysis::Address calculate_size() const ROSE_DEPRECATED("use calculateSize");
22267public:
22270
22271public:
22274
22275protected:
22283#endif // SgAsmElfNoteEntry_OTHERS
22284#ifdef DOCUMENTATION
22285};
22286#endif // DOCUMENTATION
22287
22288
22290// SgAsmElfFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
22292
22293DECLARE_LEAF_CLASS(AsmElfFileHeader);
22294IS_SERIALIZABLE(AsmElfFileHeader);
22295
22296#ifndef DOCUMENTATION
22297AsmElfFileHeader.useSmallHeader(true);
22298#endif // !DOCUMENTATION
22299
22300DECLARE_HEADERS(AsmElfFileHeader);
22301#if defined(SgAsmElfFileHeader_HEADERS) || defined(DOCUMENTATION)
22302#include <Rose/BinaryAnalysis/ByteOrder.h>
22303#endif // SgAsmElfFileHeader_HEADERS
22304
22305#ifdef DOCUMENTATION
22315#endif // DOCUMENTATION
22316
22317#ifndef DOCUMENTATION
22318 AsmElfFileHeader.setDataPrototype(
22319 "unsigned char", "e_ident_file_class", "= 0",
22320 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22321#endif // !DOCUMENTATION
22322
22323#ifndef DOCUMENTATION
22324 AsmElfFileHeader.setDataPrototype(
22325 "unsigned char", "e_ident_data_encoding", "= 0",
22326 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22327#endif // !DOCUMENTATION
22328
22329#ifndef DOCUMENTATION
22330 AsmElfFileHeader.setDataPrototype(
22331 "unsigned char", "e_ident_file_version", "= 0",
22332 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22333#endif // !DOCUMENTATION
22334
22335#ifndef DOCUMENTATION
22336 AsmElfFileHeader.setDataPrototype(
22337 "SgUnsignedCharList", "e_ident_padding", "",
22338 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22339#endif // !DOCUMENTATION
22340
22341#ifndef DOCUMENTATION
22342 AsmElfFileHeader.setDataPrototype(
22343 "unsigned long", "e_type", "= 0",
22344 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22345#endif // !DOCUMENTATION
22346
22347#ifndef DOCUMENTATION
22348 AsmElfFileHeader.setDataPrototype(
22349 "unsigned long", "e_machine", "= 0",
22350 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22351#endif // !DOCUMENTATION
22352
22353#ifndef DOCUMENTATION
22354 AsmElfFileHeader.setDataPrototype(
22355 "unsigned long", "e_flags", "= 0",
22356 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22357#endif // !DOCUMENTATION
22358
22359#ifndef DOCUMENTATION
22360 AsmElfFileHeader.setDataPrototype(
22361 "unsigned long", "e_ehsize", "= 0",
22362 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22363#endif // !DOCUMENTATION
22364
22365#ifndef DOCUMENTATION
22366 AsmElfFileHeader.setDataPrototype(
22367 "unsigned long", "phextrasz", "= 0",
22368 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22369#endif // !DOCUMENTATION
22370
22371#ifndef DOCUMENTATION
22372 AsmElfFileHeader.setDataPrototype(
22373 "unsigned long", "e_phnum", "= 0",
22374 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22375#endif // !DOCUMENTATION
22376
22377#ifndef DOCUMENTATION
22378 AsmElfFileHeader.setDataPrototype(
22379 "unsigned long", "shextrasz", "= 0",
22380 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22381#endif // !DOCUMENTATION
22382
22383#ifndef DOCUMENTATION
22384 AsmElfFileHeader.setDataPrototype(
22385 "unsigned long", "e_shnum", "= 0",
22386 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22387#endif // !DOCUMENTATION
22388
22389#ifndef DOCUMENTATION
22390 AsmElfFileHeader.setDataPrototype(
22391 "unsigned long", "e_shstrndx", "= 0",
22392 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22393#endif // !DOCUMENTATION
22394
22395#ifndef DOCUMENTATION
22396 AsmElfFileHeader.setDataPrototype(
22397 "SgAsmElfSectionTable*", "sectionTable", "= nullptr",
22398 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22399#endif // !DOCUMENTATION
22400
22401#ifndef DOCUMENTATION
22402 AsmElfFileHeader.setDataPrototype(
22403 "SgAsmElfSegmentTable*", "segmentTable", "= nullptr",
22404 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22405#endif // !DOCUMENTATION
22406
22407 DECLARE_OTHERS(AsmElfFileHeader);
22408#if defined(SgAsmElfFileHeader_OTHERS) || defined(DOCUMENTATION)
22409
22410 //----------------------- Boost serialization for SgAsmElfFileHeader -----------------------
22411#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22412private:
22413 friend class boost::serialization::access;
22414
22415 template<class S>
22416 void serialize(S &s, const unsigned /*version*/) {
22417 debugSerializationBegin("SgAsmElfFileHeader");
22418 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
22419 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_class);
22420 s & BOOST_SERIALIZATION_NVP(p_e_ident_data_encoding);
22421 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_version);
22422 s & BOOST_SERIALIZATION_NVP(p_e_ident_padding);
22423 s & BOOST_SERIALIZATION_NVP(p_e_type);
22424 s & BOOST_SERIALIZATION_NVP(p_e_machine);
22425 s & BOOST_SERIALIZATION_NVP(p_e_flags);
22426 s & BOOST_SERIALIZATION_NVP(p_e_ehsize);
22427 s & BOOST_SERIALIZATION_NVP(p_phextrasz);
22428 s & BOOST_SERIALIZATION_NVP(p_e_phnum);
22429 s & BOOST_SERIALIZATION_NVP(p_shextrasz);
22430 s & BOOST_SERIALIZATION_NVP(p_e_shnum);
22431 s & BOOST_SERIALIZATION_NVP(p_e_shstrndx);
22432 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
22433 s & BOOST_SERIALIZATION_NVP(p_segmentTable);
22434 debugSerializationEnd("SgAsmElfFileHeader");
22435 }
22436#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22438 // Local types
22440public:
22443 ET_NONE = 0
22449 ,ET_LOOS = 0xfe00
22450 ,ET_HIOS = 0xfeff
22451 ,ET_LOPROC = 0xff00
22452 ,ET_HIPROC = 0xffff
22454
22455 // Some structures are used to represent certain things whose layout is very precise in binary files, thus we need to
22456 // make sure the compiler doesn't insert alignment padding between the struct members. ROSE can be compiled on an
22457 // architecture that has different alignment constraints than the architecture that these structs describe. GNU
22458 // compilers have long used the attribute mechanism. Microsoft compilers on the other hand use pragmas. GCC versions
22459 // 4.0 and earlier do not recognize the Microsoft pragmas and issue compiler errors when one is encountered.
22460#ifdef _MSC_VER
22461# pragma pack (1)
22462#endif
22463
22470 unsigned char e_ident_magic[4];
22471 unsigned char e_ident_file_class;
22473 unsigned char e_ident_file_version;
22474 unsigned char e_ident_padding[9];
22475 uint16_t e_type;
22476 uint16_t e_machine;
22477 uint32_t e_version;
22478 uint32_t e_entry;
22479 uint32_t e_phoff;
22480 uint32_t e_shoff;
22481 uint32_t e_flags;
22482 uint16_t e_ehsize;
22483 uint16_t e_phentsize;
22484 uint16_t e_phnum;
22485 uint16_t e_shentsize;
22486 uint16_t e_shnum;
22487 uint16_t e_shstrndx;
22488 }
22489#if !defined(SWIG) && !defined(_MSC_VER)
22490 __attribute__((packed))
22491#endif
22492 ;
22493
22495 unsigned char e_ident_magic[4];
22496 unsigned char e_ident_file_class;
22497 unsigned char e_ident_data_encoding;
22498 unsigned char e_ident_file_version;
22499 unsigned char e_ident_padding[9];
22500 uint16_t e_type;
22501 uint16_t e_machine;
22502 uint32_t e_version;
22503 uint64_t e_entry;
22504 uint64_t e_phoff;
22505 uint64_t e_shoff;
22506 uint32_t e_flags;
22507 uint16_t e_ehsize;
22508 uint16_t e_phentsize;
22509 uint16_t e_phnum;
22510 uint16_t e_shentsize;
22511 uint16_t e_shnum;
22512 uint16_t e_shstrndx;
22513 }
22514#if !defined(SWIG) && !defined(_MSC_VER)
22515 __attribute__((packed))
22516#endif
22517 ;
22518
22519#ifdef _MSC_VER
22520# pragma pack ()
22521#endif
22522
22524 // Properties
22526public:
22527public:
22533 unsigned char const& get_e_ident_file_class() const;
22534 void set_e_ident_file_class(unsigned char const&);
22537public:
22543 unsigned char const& get_e_ident_data_encoding() const;
22544 void set_e_ident_data_encoding(unsigned char const&);
22547public:
22553 unsigned char const& get_e_ident_file_version() const;
22554 void set_e_ident_file_version(unsigned char const&);
22557public:
22563 SgUnsignedCharList const& get_e_ident_padding() const;
22564 void set_e_ident_padding(SgUnsignedCharList const&);
22567public:
22573 unsigned long const& get_e_type() const;
22574 void set_e_type(unsigned long const&);
22577public:
22583 unsigned long const& get_e_machine() const;
22584 void set_e_machine(unsigned long const&);
22587public:
22593 unsigned long const& get_e_flags() const;
22594 void set_e_flags(unsigned long const&);
22597public:
22603 unsigned long const& get_e_ehsize() const;
22604 void set_e_ehsize(unsigned long const&);
22607public:
22613 unsigned long const& get_phextrasz() const;
22614 void set_phextrasz(unsigned long const&);
22617public:
22623 unsigned long const& get_e_phnum() const;
22624 void set_e_phnum(unsigned long const&);
22627public:
22633 unsigned long const& get_shextrasz() const;
22634 void set_shextrasz(unsigned long const&);
22637public:
22643 unsigned long const& get_e_shnum() const;
22644 void set_e_shnum(unsigned long const&);
22647public:
22653 unsigned long const& get_e_shstrndx() const;
22654 void set_e_shstrndx(unsigned long const&);
22657public:
22669public:
22680 // Functions
22682public:
22690
22697
22700
22703
22709 virtual SgAsmElfFileHeader *parse() override;
22710
22711 virtual bool reallocate() override;
22712
22714 virtual void unparse(std::ostream&) const override;
22715
22717 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22718
22721
22723 SgAsmGenericSectionPtrList get_sectionTableSections();
22724
22726 SgAsmGenericSectionPtrList get_segmentTableSections();
22727
22728 // Overrides documented in base class
22729 virtual const char *formatName() const override;
22730
22731private:
22734
22736 // Deprecated 2023-11
22738public:
22739 SgAsmElfSectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
22740 void set_section_table(SgAsmElfSectionTable*) ROSE_DEPRECATED("use set_sectionTable");
22741 SgAsmElfSegmentTable* get_segment_table() const ROSE_DEPRECATED("use get_segmentTable");
22742 void set_segment_table(SgAsmElfSegmentTable*) ROSE_DEPRECATED("use set_segmentTable");
22743 uint64_t max_page_size() ROSE_DEPRECATED("use maximumPageSize");
22744 static SgAsmExecutableFileFormat::InsSetArchitecture machine_to_isa(unsigned) ROSE_DEPRECATED("use machineToIsa");
22745 unsigned isa_to_machine(SgAsmExecutableFileFormat::InsSetArchitecture) const ROSE_DEPRECATED("use isaToMachine");
22746 static bool is_ELF(SgAsmGenericFile*) ROSE_DEPRECATED("use isElf");
22747 SgAsmGenericSectionPtrList get_sectab_sections() ROSE_DEPRECATED("use get_sectionTableSections");
22748 SgAsmGenericSectionPtrList get_segtab_sections() ROSE_DEPRECATED("use get_segmentTableSections");
22749 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
22750public:
22753
22754public:
22757
22758protected:
22766#endif // SgAsmElfFileHeader_OTHERS
22767#ifdef DOCUMENTATION
22768};
22769#endif // DOCUMENTATION
22770
22771
22773// SgAsmElfEHFrameSection -- MACHINE GENERATED; DO NOT MODIFY --
22775
22776DECLARE_LEAF_CLASS(AsmElfEHFrameSection);
22777IS_SERIALIZABLE(AsmElfEHFrameSection);
22778
22779#ifndef DOCUMENTATION
22780AsmElfEHFrameSection.useSmallHeader(true);
22781#endif // !DOCUMENTATION
22782
22783DECLARE_HEADERS(AsmElfEHFrameSection);
22784#if defined(SgAsmElfEHFrameSection_HEADERS) || defined(DOCUMENTATION)
22785#include <Rose/BinaryAnalysis/Address.h>
22786
22787#ifdef ROSE_SgAsmElfEHFrameSection_IMPL
22788#include <SgAsmElfEHFrameEntryCIList.h>
22789#endif
22790#endif // SgAsmElfEHFrameSection_HEADERS
22791
22792#ifdef DOCUMENTATION
22795#endif // DOCUMENTATION
22796
22797#ifndef DOCUMENTATION
22798 AsmElfEHFrameSection.setDataPrototype(
22799 "SgAsmElfEHFrameEntryCIList*", "ci_entries", "= createAndParent<SgAsmElfEHFrameEntryCIList>(this)",
22800 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22801#endif // !DOCUMENTATION
22802
22803 DECLARE_OTHERS(AsmElfEHFrameSection);
22804#if defined(SgAsmElfEHFrameSection_OTHERS) || defined(DOCUMENTATION)
22805
22806 //----------------------- Boost serialization for SgAsmElfEHFrameSection -----------------------
22807#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22808private:
22809 friend class boost::serialization::access;
22810
22811 template<class S>
22812 void serialize(S &s, const unsigned /*version*/) {
22813 debugSerializationBegin("SgAsmElfEHFrameSection");
22814 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
22815 s & BOOST_SERIALIZATION_NVP(p_ci_entries);
22816 debugSerializationEnd("SgAsmElfEHFrameSection");
22817 }
22818#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22819public:
22820public:
22830public:
22833
22835 virtual SgAsmElfEHFrameSection *parse() override;
22836
22842 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
22843
22845 virtual void unparse(std::ostream&) const override;
22846
22852
22854 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22855
22857 // Deprecated 2023-11
22859public:
22860 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
22861 ROSE_DEPRECATED("use calculateSizes");
22862public:
22865
22866public:
22869
22870protected:
22878#endif // SgAsmElfEHFrameSection_OTHERS
22879#ifdef DOCUMENTATION
22880};
22881#endif // DOCUMENTATION
22882
22883
22885// SgAsmElfEHFrameEntryFDList -- MACHINE GENERATED; DO NOT MODIFY --
22887
22888DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFDList);
22889IS_SERIALIZABLE(AsmElfEHFrameEntryFDList);
22890
22891#ifndef DOCUMENTATION
22892AsmElfEHFrameEntryFDList.useSmallHeader(true);
22893#endif // !DOCUMENTATION
22894
22895DECLARE_HEADERS(AsmElfEHFrameEntryFDList);
22896#if defined(SgAsmElfEHFrameEntryFDList_HEADERS) || defined(DOCUMENTATION)
22897#include <sageContainer.h>
22898#endif // SgAsmElfEHFrameEntryFDList_HEADERS
22899
22900#ifdef DOCUMENTATION
22906#endif // DOCUMENTATION
22907
22908#ifndef DOCUMENTATION
22909 AsmElfEHFrameEntryFDList.setDataPrototype(
22910 "SgAsmElfEHFrameEntryFDPtrList", "entries", "",
22911 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22912#endif // !DOCUMENTATION
22913
22914 DECLARE_OTHERS(AsmElfEHFrameEntryFDList);
22915#if defined(SgAsmElfEHFrameEntryFDList_OTHERS) || defined(DOCUMENTATION)
22916
22917 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFDList -----------------------
22918#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22919private:
22920 friend class boost::serialization::access;
22921
22922 template<class S>
22923 void serialize(S &s, const unsigned /*version*/) {
22924 debugSerializationBegin("SgAsmElfEHFrameEntryFDList");
22925 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22926 s & BOOST_SERIALIZATION_NVP(p_entries);
22927 debugSerializationEnd("SgAsmElfEHFrameEntryFDList");
22928 }
22929#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22930public:
22931public:
22935 SgAsmElfEHFrameEntryFDPtrList const& get_entries() const;
22936 SgAsmElfEHFrameEntryFDPtrList& get_entries();
22937 void set_entries(SgAsmElfEHFrameEntryFDPtrList const&);
22940public:
22943
22944public:
22947
22948protected:
22956#endif // SgAsmElfEHFrameEntryFDList_OTHERS
22957#ifdef DOCUMENTATION
22958};
22959#endif // DOCUMENTATION
22960
22961
22963// SgAsmElfEHFrameEntryFD -- MACHINE GENERATED; DO NOT MODIFY --
22965
22966DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFD);
22967IS_SERIALIZABLE(AsmElfEHFrameEntryFD);
22968
22969#ifndef DOCUMENTATION
22970AsmElfEHFrameEntryFD.useSmallHeader(true);
22971#endif // !DOCUMENTATION
22972
22973DECLARE_HEADERS(AsmElfEHFrameEntryFD);
22974#if defined(SgAsmElfEHFrameEntryFD_HEADERS) || defined(DOCUMENTATION)
22975#include <Rose/BinaryAnalysis/Address.h>
22976#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
22977#include <sageContainer.h>
22978#endif // SgAsmElfEHFrameEntryFD_HEADERS
22979
22980#ifdef DOCUMENTATION
22983#endif // DOCUMENTATION
22984
22985#ifndef DOCUMENTATION
22986 AsmElfEHFrameEntryFD.setDataPrototype(
22987 "Rose::BinaryAnalysis::RelativeVirtualAddress", "begin_rva", "",
22988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22989#endif // !DOCUMENTATION
22990
22991#ifndef DOCUMENTATION
22992 AsmElfEHFrameEntryFD.setDataPrototype(
22993 "Rose::BinaryAnalysis::Address", "size", "= 0",
22994 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22995#endif // !DOCUMENTATION
22996
22997#ifndef DOCUMENTATION
22998 AsmElfEHFrameEntryFD.setDataPrototype(
22999 "SgUnsignedCharList", "augmentation_data", "",
23000 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23001#endif // !DOCUMENTATION
23002
23003#ifndef DOCUMENTATION
23004 AsmElfEHFrameEntryFD.setDataPrototype(
23005 "SgUnsignedCharList", "instructions", "",
23006 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23007#endif // !DOCUMENTATION
23008
23009 DECLARE_OTHERS(AsmElfEHFrameEntryFD);
23010#if defined(SgAsmElfEHFrameEntryFD_OTHERS) || defined(DOCUMENTATION)
23011
23012 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFD -----------------------
23013#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23014private:
23015 friend class boost::serialization::access;
23016
23017 template<class S>
23018 void serialize(S &s, const unsigned /*version*/) {
23019 debugSerializationBegin("SgAsmElfEHFrameEntryFD");
23020 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23021 s & BOOST_SERIALIZATION_NVP(p_begin_rva);
23022 s & BOOST_SERIALIZATION_NVP(p_size);
23023 s & BOOST_SERIALIZATION_NVP(p_augmentation_data);
23024 s & BOOST_SERIALIZATION_NVP(p_instructions);
23025 debugSerializationEnd("SgAsmElfEHFrameEntryFD");
23026 }
23027#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23028public:
23029public:
23040public:
23050public:
23056 SgUnsignedCharList const& get_augmentation_data() const;
23057 SgUnsignedCharList& get_augmentation_data();
23058 void set_augmentation_data(SgUnsignedCharList const&);
23061public:
23067 SgUnsignedCharList const& get_instructions() const;
23068 SgUnsignedCharList& get_instructions();
23069 void set_instructions(SgUnsignedCharList const&);
23071public:
23074
23076 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
23077
23083public:
23086
23087public:
23090
23091protected:
23099#endif // SgAsmElfEHFrameEntryFD_OTHERS
23100#ifdef DOCUMENTATION
23101};
23102#endif // DOCUMENTATION
23103
23104
23106// SgAsmElfEHFrameEntryCIList -- MACHINE GENERATED; DO NOT MODIFY --
23108
23109DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCIList);
23110IS_SERIALIZABLE(AsmElfEHFrameEntryCIList);
23111
23112#ifndef DOCUMENTATION
23113AsmElfEHFrameEntryCIList.useSmallHeader(true);
23114#endif // !DOCUMENTATION
23115
23116DECLARE_HEADERS(AsmElfEHFrameEntryCIList);
23117#if defined(SgAsmElfEHFrameEntryCIList_HEADERS) || defined(DOCUMENTATION)
23118#include <sageContainer.h>
23119#endif // SgAsmElfEHFrameEntryCIList_HEADERS
23120
23121#ifdef DOCUMENTATION
23127#endif // DOCUMENTATION
23128
23129#ifndef DOCUMENTATION
23130 AsmElfEHFrameEntryCIList.setDataPrototype(
23131 "SgAsmElfEHFrameEntryCIPtrList", "entries", "",
23132 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23133#endif // !DOCUMENTATION
23134
23135 DECLARE_OTHERS(AsmElfEHFrameEntryCIList);
23136#if defined(SgAsmElfEHFrameEntryCIList_OTHERS) || defined(DOCUMENTATION)
23137
23138 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCIList -----------------------
23139#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23140private:
23141 friend class boost::serialization::access;
23142
23143 template<class S>
23144 void serialize(S &s, const unsigned /*version*/) {
23145 debugSerializationBegin("SgAsmElfEHFrameEntryCIList");
23146 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23147 s & BOOST_SERIALIZATION_NVP(p_entries);
23148 debugSerializationEnd("SgAsmElfEHFrameEntryCIList");
23149 }
23150#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23151public:
23152public:
23156 SgAsmElfEHFrameEntryCIPtrList const& get_entries() const;
23157 SgAsmElfEHFrameEntryCIPtrList& get_entries();
23158 void set_entries(SgAsmElfEHFrameEntryCIPtrList const&);
23161public:
23164
23165public:
23168
23169protected:
23177#endif // SgAsmElfEHFrameEntryCIList_OTHERS
23178#ifdef DOCUMENTATION
23179};
23180#endif // DOCUMENTATION
23181
23182
23184// SgAsmElfEHFrameEntryCI -- MACHINE GENERATED; DO NOT MODIFY --
23186
23187DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCI);
23188IS_SERIALIZABLE(AsmElfEHFrameEntryCI);
23189
23190#ifndef DOCUMENTATION
23191AsmElfEHFrameEntryCI.useSmallHeader(true);
23192#endif // !DOCUMENTATION
23193
23194DECLARE_HEADERS(AsmElfEHFrameEntryCI);
23195#if defined(SgAsmElfEHFrameEntryCI_HEADERS) || defined(DOCUMENTATION)
23196#include <Rose/BinaryAnalysis/Address.h>
23197
23198#include <sageContainer.h>
23199
23200#ifdef ROSE_SgAsmElfEHFrameEntryCI_IMPL
23201#include <SgAsmElfEHFrameEntryFDList.h>
23202#endif
23203#endif // SgAsmElfEHFrameEntryCI_HEADERS
23204
23205#ifdef DOCUMENTATION
23210#endif // DOCUMENTATION
23211
23212#ifndef DOCUMENTATION
23213 AsmElfEHFrameEntryCI.setDataPrototype(
23214 "int", "version", "= 0",
23215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23216#endif // !DOCUMENTATION
23217
23218#ifndef DOCUMENTATION
23219 AsmElfEHFrameEntryCI.setDataPrototype(
23220 "std::string", "augmentation_string", "",
23221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23222#endif // !DOCUMENTATION
23223
23224#ifndef DOCUMENTATION
23225 AsmElfEHFrameEntryCI.setDataPrototype(
23226 "uint64_t", "eh_data", "= 0",
23227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23228#endif // !DOCUMENTATION
23229
23230#ifndef DOCUMENTATION
23231 AsmElfEHFrameEntryCI.setDataPrototype(
23232 "uint64_t", "code_alignment_factor", "= 0",
23233 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23234#endif // !DOCUMENTATION
23235
23236#ifndef DOCUMENTATION
23237 AsmElfEHFrameEntryCI.setDataPrototype(
23238 "int64_t", "data_alignment_factor", "= 0",
23239 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23240#endif // !DOCUMENTATION
23241
23242#ifndef DOCUMENTATION
23243 AsmElfEHFrameEntryCI.setDataPrototype(
23244 "uint64_t", "augmentation_data_length", "= 0",
23245 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23246#endif // !DOCUMENTATION
23247
23248#ifndef DOCUMENTATION
23249 AsmElfEHFrameEntryCI.setDataPrototype(
23250 "int", "lsda_encoding", "= -1",
23251 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23252#endif // !DOCUMENTATION
23253
23254#ifndef DOCUMENTATION
23255 AsmElfEHFrameEntryCI.setDataPrototype(
23256 "int", "prh_encoding", "= -1",
23257 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23258#endif // !DOCUMENTATION
23259
23260#ifndef DOCUMENTATION
23261 AsmElfEHFrameEntryCI.setDataPrototype(
23262 "unsigned", "prh_arg", "= 0",
23263 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23264#endif // !DOCUMENTATION
23265
23266#ifndef DOCUMENTATION
23267 AsmElfEHFrameEntryCI.setDataPrototype(
23268 "Rose::BinaryAnalysis::Address", "prh_addr", "= 0",
23269 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23270#endif // !DOCUMENTATION
23271
23272#ifndef DOCUMENTATION
23273 AsmElfEHFrameEntryCI.setDataPrototype(
23274 "int", "addr_encoding", "= -1",
23275 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23276#endif // !DOCUMENTATION
23277
23278#ifndef DOCUMENTATION
23279 AsmElfEHFrameEntryCI.setDataPrototype(
23280 "bool", "sig_frame", "= false",
23281 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23282#endif // !DOCUMENTATION
23283
23284#ifndef DOCUMENTATION
23285 AsmElfEHFrameEntryCI.setDataPrototype(
23286 "SgUnsignedCharList", "instructions", "",
23287 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23288#endif // !DOCUMENTATION
23289
23290#ifndef DOCUMENTATION
23291 AsmElfEHFrameEntryCI.setDataPrototype(
23292 "SgAsmElfEHFrameEntryFDList*", "fd_entries", "= createAndParent<SgAsmElfEHFrameEntryFDList>(this)",
23293 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23294#endif // !DOCUMENTATION
23295
23296 DECLARE_OTHERS(AsmElfEHFrameEntryCI);
23297#if defined(SgAsmElfEHFrameEntryCI_OTHERS) || defined(DOCUMENTATION)
23298
23299 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCI -----------------------
23300#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23301private:
23302 friend class boost::serialization::access;
23303
23304 template<class S>
23305 void serialize(S &s, const unsigned /*version*/) {
23306 debugSerializationBegin("SgAsmElfEHFrameEntryCI");
23307 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23308 s & BOOST_SERIALIZATION_NVP(p_version);
23309 s & BOOST_SERIALIZATION_NVP(p_augmentation_string);
23310 s & BOOST_SERIALIZATION_NVP(p_eh_data);
23311 s & BOOST_SERIALIZATION_NVP(p_code_alignment_factor);
23312 s & BOOST_SERIALIZATION_NVP(p_data_alignment_factor);
23313 s & BOOST_SERIALIZATION_NVP(p_augmentation_data_length);
23314 s & BOOST_SERIALIZATION_NVP(p_lsda_encoding);
23315 s & BOOST_SERIALIZATION_NVP(p_prh_encoding);
23316 s & BOOST_SERIALIZATION_NVP(p_prh_arg);
23317 s & BOOST_SERIALIZATION_NVP(p_prh_addr);
23318 s & BOOST_SERIALIZATION_NVP(p_addr_encoding);
23319 s & BOOST_SERIALIZATION_NVP(p_sig_frame);
23320 s & BOOST_SERIALIZATION_NVP(p_instructions);
23321 s & BOOST_SERIALIZATION_NVP(p_fd_entries);
23322 debugSerializationEnd("SgAsmElfEHFrameEntryCI");
23323 }
23324#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23325public:
23326public:
23332 int const& get_version() const;
23333 void set_version(int const&);
23336public:
23342 std::string const& get_augmentation_string() const;
23343 void set_augmentation_string(std::string const&);
23346public:
23352 uint64_t const& get_eh_data() const;
23353 void set_eh_data(uint64_t const&);
23356public:
23362 uint64_t const& get_code_alignment_factor() const;
23363 void set_code_alignment_factor(uint64_t const&);
23366public:
23372 int64_t const& get_data_alignment_factor() const;
23373 void set_data_alignment_factor(int64_t const&);
23376public:
23382 uint64_t const& get_augmentation_data_length() const;
23383 void set_augmentation_data_length(uint64_t const&);
23386public:
23392 int const& get_lsda_encoding() const;
23393 void set_lsda_encoding(int const&);
23396public:
23402 int const& get_prh_encoding() const;
23403 void set_prh_encoding(int const&);
23406public:
23412 unsigned const& get_prh_arg() const;
23413 void set_prh_arg(unsigned const&);
23416public:
23426public:
23432 int const& get_addr_encoding() const;
23433 void set_addr_encoding(int const&);
23436public:
23442 bool const& get_sig_frame() const;
23443 void set_sig_frame(bool const&);
23446public:
23452 SgUnsignedCharList const& get_instructions() const;
23453 SgUnsignedCharList& get_instructions();
23454 void set_instructions(SgUnsignedCharList const&);
23457public:
23467public:
23470
23472 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
23473
23478 std::string unparse(const SgAsmElfEHFrameSection*) const;
23479public:
23482
23483public:
23486
23487protected:
23495#endif // SgAsmElfEHFrameEntryCI_OTHERS
23496#ifdef DOCUMENTATION
23497};
23498#endif // DOCUMENTATION
23499
23500
23502// SgAsmElfDynamicSection -- MACHINE GENERATED; DO NOT MODIFY --
23504
23505DECLARE_LEAF_CLASS(AsmElfDynamicSection);
23506IS_SERIALIZABLE(AsmElfDynamicSection);
23507
23508#ifndef DOCUMENTATION
23509AsmElfDynamicSection.useSmallHeader(true);
23510#endif // !DOCUMENTATION
23511
23512DECLARE_HEADERS(AsmElfDynamicSection);
23513#if defined(SgAsmElfDynamicSection_HEADERS) || defined(DOCUMENTATION)
23514#include <Rose/BinaryAnalysis/Address.h>
23515
23516#ifdef ROSE_SgAsmElfDynamicSection_IMPL
23517#include <SgAsmElfDynamicEntryList.h>
23518#endif
23519#endif // SgAsmElfDynamicSection_HEADERS
23520
23521#ifdef DOCUMENTATION
23524#endif // DOCUMENTATION
23525
23526#ifndef DOCUMENTATION
23527 AsmElfDynamicSection.setDataPrototype(
23528 "SgAsmElfDynamicEntryList*", "entries", "= createAndParent<SgAsmElfDynamicEntryList>(this)",
23529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23530#endif // !DOCUMENTATION
23531
23532 DECLARE_OTHERS(AsmElfDynamicSection);
23533#if defined(SgAsmElfDynamicSection_OTHERS) || defined(DOCUMENTATION)
23534
23535 //----------------------- Boost serialization for SgAsmElfDynamicSection -----------------------
23536#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23537private:
23538 friend class boost::serialization::access;
23539
23540 template<class S>
23541 void serialize(S &s, const unsigned /*version*/) {
23542 debugSerializationBegin("SgAsmElfDynamicSection");
23543 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
23544 s & BOOST_SERIALIZATION_NVP(p_entries);
23545 debugSerializationEnd("SgAsmElfDynamicSection");
23546 }
23547#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23548public:
23549public:
23559public:
23562
23564 virtual SgAsmElfDynamicSection* parse() override;
23565
23567 virtual void finishParsing() override;
23568
23572 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
23573
23574 virtual bool reallocate() override;
23575
23577 virtual void unparse(std::ostream&) const override;
23578
23580 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
23581
23583 // Deprecated 2023-11
23585public:
23586 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing") ROSE_DEPRECATED("use finishParsing");
23587 using SgAsmElfSection::calculate_sizes;
23588 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
23589 ROSE_DEPRECATED("use calculateSizes");
23590public:
23593
23594public:
23597
23598protected:
23606#endif // SgAsmElfDynamicSection_OTHERS
23607#ifdef DOCUMENTATION
23608};
23609#endif // DOCUMENTATION
23610
23611
23613// SgAsmElfSection -- MACHINE GENERATED; DO NOT MODIFY --
23615
23616#ifndef DOCUMENTATION
23617AstNodeClass& AsmElfSection = nonTerminalConstructor(
23618 "AsmElfSection",
23619 *this,
23620 "AsmElfSection",
23621 "AsmElfSectionTag",
23622 SubclassListBuilder()
23623 | AsmElfDynamicSection
23624 | AsmElfEHFrameSection
23625 | AsmElfNoteSection
23626 | AsmElfRelocSection
23627 | AsmElfStringSection
23628 | AsmElfSymbolSection
23629 | AsmElfSymverDefinedSection
23630 | AsmElfSymverNeededSection
23631 | AsmElfSymverSection
23632 , true);
23633assert(AsmElfSection.associatedGrammar != nullptr);
23634AsmElfSection.setCppCondition("!defined(DOCUMENTATION)");
23635AsmElfSection.isBoostSerializable(true);
23636AsmElfSection.setAutomaticGenerationOfConstructor(false);
23637AsmElfSection.setAutomaticGenerationOfDestructor(false);
23638#endif // !DOCUMENTATION
23639
23640#ifndef DOCUMENTATION
23641AsmElfSection.useSmallHeader(true);
23642#endif // !DOCUMENTATION
23643
23644DECLARE_HEADERS(AsmElfSection);
23645#if defined(SgAsmElfSection_HEADERS) || defined(DOCUMENTATION)
23646#include <Rose/BinaryAnalysis/Address.h>
23647
23648#ifdef ROSE_SgAsmElfSection_IMPL
23649#include <SgAsmElfSectionTableEntry.h>
23650#include <SgAsmElfSegmentTableEntry.h>
23651#endif
23652#endif // SgAsmElfSection_HEADERS
23653
23654#ifdef DOCUMENTATION
23657#endif // DOCUMENTATION
23658
23659#ifndef DOCUMENTATION
23660 AsmElfSection.setDataPrototype(
23661 "SgAsmElfSection*", "linkedSection", "= nullptr",
23662 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23663#endif // !DOCUMENTATION
23664
23665#ifndef DOCUMENTATION
23666 AsmElfSection.setDataPrototype(
23667 "SgAsmElfSectionTableEntry*", "sectionEntry", "= nullptr",
23668 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23669#endif // !DOCUMENTATION
23670
23671#ifndef DOCUMENTATION
23672 AsmElfSection.setDataPrototype(
23673 "SgAsmElfSegmentTableEntry*", "segmentEntry", "= nullptr",
23674 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23675#endif // !DOCUMENTATION
23676
23677 DECLARE_OTHERS(AsmElfSection);
23678#if defined(SgAsmElfSection_OTHERS) || defined(DOCUMENTATION)
23679
23680 //----------------------- Boost serialization for SgAsmElfSection -----------------------
23681#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23682private:
23683 friend class boost::serialization::access;
23684
23685 template<class S>
23686 void serialize(S &s, const unsigned /*version*/) {
23687 debugSerializationBegin("SgAsmElfSection");
23688 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
23689 s & BOOST_SERIALIZATION_NVP(p_linkedSection);
23690 s & BOOST_SERIALIZATION_NVP(p_sectionEntry);
23691 s & BOOST_SERIALIZATION_NVP(p_segmentEntry);
23692 debugSerializationEnd("SgAsmElfSection");
23693 }
23694#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23695public:
23696public:
23705public:
23713public:
23720public:
23726
23733
23738
23759 Rose::BinaryAnalysis::Address calculateSizes(size_t r32size, size_t r64size, const std::vector<size_t> &optsizes,
23760 size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
23761
23762 virtual void finishParsing();
23763
23781 calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
23782
23783 virtual bool reallocate() override;
23784
23786 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
23787
23790
23795
23797 // Deprecated 2023-11
23799public:
23800 SgAsmElfSection* get_linked_section() const ROSE_DEPRECATED("use get_linkedSection");
23801 virtual void set_linked_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_linkSection");
23802 SgAsmElfSectionTableEntry* get_section_entry() const ROSE_DEPRECATED("use get_sectionEntry");
23803 void set_section_entry(SgAsmElfSectionTableEntry*) ROSE_DEPRECATED("use set_sectionEntry");
23804 SgAsmElfSegmentTableEntry* get_segment_entry() const ROSE_DEPRECATED("use get_segmentEntry");
23805 void set_segment_entry(SgAsmElfSegmentTableEntry*) ROSE_DEPRECATED("use set_segmentEntry");
23806 SgAsmElfSection *init_from_section_table(SgAsmElfSectionTableEntry*, SgAsmElfStringSection*, int)
23807 ROSE_DEPRECATED("use initFromSectionTable");
23808 SgAsmElfSection *init_from_segment_table(SgAsmElfSegmentTableEntry*, bool mmap_only=false)
23809 ROSE_DEPRECATED("use initFromSegmentTable");
23810 Rose::BinaryAnalysis::Address
23811 calculate_sizes(size_t, size_t, const std::vector<size_t>&, size_t*, size_t*, size_t*, size_t*) const
23812 ROSE_DEPRECATED("use calculateSizes");
23813 virtual void finish_parsing() ROSE_DEPRECATED("use finishParsing");
23814 virtual Rose::BinaryAnalysis::Address
23815 calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
23816 void allocate_name_to_storage(SgAsmElfStringSection*) ROSE_DEPRECATED("use allocateNameToStorage");
23817 SgAsmElfFileHeader *get_elf_header() const ROSE_DEPRECATED("use get_elfHeader");
23818public:
23821
23822public:
23825
23826protected:
23834#endif // SgAsmElfSection_OTHERS
23835#ifdef DOCUMENTATION
23836};
23837#endif // DOCUMENTATION
23838
23839
23841// SgAsmElfDynamicEntryList -- MACHINE GENERATED; DO NOT MODIFY --
23843
23844DECLARE_LEAF_CLASS(AsmElfDynamicEntryList);
23845IS_SERIALIZABLE(AsmElfDynamicEntryList);
23846
23847#ifndef DOCUMENTATION
23848AsmElfDynamicEntryList.useSmallHeader(true);
23849#endif // !DOCUMENTATION
23850
23851DECLARE_HEADERS(AsmElfDynamicEntryList);
23852#if defined(SgAsmElfDynamicEntryList_HEADERS) || defined(DOCUMENTATION)
23853#include <sageContainer.h>
23854#endif // SgAsmElfDynamicEntryList_HEADERS
23855
23856#ifdef DOCUMENTATION
23862#endif // DOCUMENTATION
23863
23864#ifndef DOCUMENTATION
23865 AsmElfDynamicEntryList.setDataPrototype(
23866 "SgAsmElfDynamicEntryPtrList", "entries", "",
23867 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23868#endif // !DOCUMENTATION
23869
23870 DECLARE_OTHERS(AsmElfDynamicEntryList);
23871#if defined(SgAsmElfDynamicEntryList_OTHERS) || defined(DOCUMENTATION)
23872
23873 //----------------------- Boost serialization for SgAsmElfDynamicEntryList -----------------------
23874#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23875private:
23876 friend class boost::serialization::access;
23877
23878 template<class S>
23879 void serialize(S &s, const unsigned /*version*/) {
23880 debugSerializationBegin("SgAsmElfDynamicEntryList");
23881 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23882 s & BOOST_SERIALIZATION_NVP(p_entries);
23883 debugSerializationEnd("SgAsmElfDynamicEntryList");
23884 }
23885#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23886public:
23887public:
23891 SgAsmElfDynamicEntryPtrList const& get_entries() const;
23892 SgAsmElfDynamicEntryPtrList& get_entries();
23893 void set_entries(SgAsmElfDynamicEntryPtrList const&);
23896public:
23899
23900public:
23903
23904protected:
23912#endif // SgAsmElfDynamicEntryList_OTHERS
23913#ifdef DOCUMENTATION
23914};
23915#endif // DOCUMENTATION
23916
23917
23919// SgAsmElfDynamicEntry -- MACHINE GENERATED; DO NOT MODIFY --
23921
23922DECLARE_LEAF_CLASS(AsmElfDynamicEntry);
23923IS_SERIALIZABLE(AsmElfDynamicEntry);
23924
23925#ifndef DOCUMENTATION
23926AsmElfDynamicEntry.useSmallHeader(true);
23927#endif // !DOCUMENTATION
23928
23929DECLARE_HEADERS(AsmElfDynamicEntry);
23930#if defined(SgAsmElfDynamicEntry_HEADERS) || defined(DOCUMENTATION)
23931#include <Rose/BinaryAnalysis/ByteOrder.h>
23932#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
23933#include <sageContainer.h>
23934#endif // SgAsmElfDynamicEntry_HEADERS
23935
23936#ifdef DOCUMENTATION
23939#endif // DOCUMENTATION
23940
23941#ifndef DOCUMENTATION
23942 AsmElfDynamicEntry.setDataPrototype(
23943 "SgAsmElfDynamicEntry::EntryType", "d_tag", "= SgAsmElfDynamicEntry::DT_NULL",
23944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23945#endif // !DOCUMENTATION
23946
23947#ifndef DOCUMENTATION
23948 AsmElfDynamicEntry.setDataPrototype(
23949 "Rose::BinaryAnalysis::RelativeVirtualAddress", "d_val", "",
23950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23951#endif // !DOCUMENTATION
23952
23953#ifndef DOCUMENTATION
23954 AsmElfDynamicEntry.setDataPrototype(
23955 "SgAsmGenericString*", "name", "= nullptr",
23956 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23957#endif // !DOCUMENTATION
23958
23959#ifndef DOCUMENTATION
23960 AsmElfDynamicEntry.setDataPrototype(
23961 "SgUnsignedCharList", "extra", "",
23962 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23963#endif // !DOCUMENTATION
23964
23965 DECLARE_OTHERS(AsmElfDynamicEntry);
23966#if defined(SgAsmElfDynamicEntry_OTHERS) || defined(DOCUMENTATION)
23967
23968 //----------------------- Boost serialization for SgAsmElfDynamicEntry -----------------------
23969#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23970private:
23971 friend class boost::serialization::access;
23972
23973 template<class S>
23974 void serialize(S &s, const unsigned /*version*/) {
23975 debugSerializationBegin("SgAsmElfDynamicEntry");
23976 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23977 s & BOOST_SERIALIZATION_NVP(p_d_tag);
23978 s & BOOST_SERIALIZATION_NVP(p_d_val);
23979 s & BOOST_SERIALIZATION_NVP(p_name);
23980 s & BOOST_SERIALIZATION_NVP(p_extra);
23981 debugSerializationEnd("SgAsmElfDynamicEntry");
23982 }
23983#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23985 // Local types
23987public:
23988 enum EntryType { /* Type Executable SharedObj Purpose */
23989 DT_NULL = 0, /* ignored mandatory mandatory Marks end of dynamic array */
23990 DT_NEEDED = 1, /* value optional optional Name of needed library */
23991 DT_PLTRELSZ = 2, /* value optional optional Size of reloc entries associated with PLT */
23992 DT_PLTGOT = 3, /* pointer optional optional PLT and/or GOT */
23993 DT_HASH = 4, /* pointer mandatory mandatory Symbol hash table */
23994 DT_STRTAB = 5, /* pointer mandatory mandatory String table for symbols, lib names, etc. */
23995 DT_SYMTAB = 6, /* pointer mandatory mandatory Symbol table */
23996 DT_RELA = 7, /* pointer mandatory optional Relocation table */
23997 DT_RELASZ = 8, /* value mandatory optional Size of RELA relocation table */
23998 DT_RELAENT = 9, /* value mandatory optional Size of each RELA table entry */
23999 DT_STRSZ = 10, /* value mandatory mandatory Size of string table */
24000 DT_SYMENT = 11, /* value mandatory mandatory Size of symbol table entry */
24001 DT_INIT = 12, /* pointer optional optional Initialization function */
24002 DT_FINI = 13, /* pointer optional optional Termination function */
24003 DT_SONAME = 14, /* value ignored optional Name of shared object */
24004 DT_RPATH = 15, /* value optional ignored NUL-term library search path */
24005 DT_SYMBOLIC = 16, /* ignored ignored optional Bool determines dynamic linker symbol resolution */
24006 DT_REL = 17, /* pointer mandatory optional Relocation table */
24007 DT_RELSZ = 18, /* value mandatory optional Size of REL relocation table */
24008 DT_RELENT = 19, /* value mandatory optional Size of each REL table entry */
24009 DT_PLTREL = 20, /* value optional optional Reloc type for PLT; value is DT_RELA or DT_REL */
24010 DT_DEBUG = 21, /* pointer optional ignored Contents are not specified at ABI level */
24011 DT_TEXTREL = 22, /* ignored optional optional presence => relocs to nonwritable segments OK */
24012 DT_JMPREL = 23, /* pointer optional optional Addr of relocation entries for PLT */
24013 DT_BIND_NOW = 24, /* ignored optional optional Shall dynlinker do relocs before xfering control?*/
24014 DT_INIT_ARRAY = 25, /* pointer optional ? Array with addresses of init fct */
24015 DT_FINI_ARRAY = 26, /* pointer optional ? Array with address of fini fct */
24016 DT_INIT_ARRAYSZ = 27, /* value optional ? Size in bytes of DT_INIT_ARRAY */
24017 DT_FINI_ARRAYSZ = 28, /* value optional ? Size in bytes of DT_FINI_ARRAY */
24018 DT_RUNPATH = 29, /* ? optional ? Library search path (how diff from DT_RPATH?) */
24019 DT_FLAGS = 30, /* value optional ? Bit flags */
24020 DT_PREINIT_ARRAY = 32, /* pointer optional ? Array with addrs of preinit fct (aka DT_ENCODING)*/
24021 DT_PREINIT_ARRAYSZ = 33,/* value optional ? size in bytes of DT_PREINIT_ARRAY */
24022 DT_NUM = 34, /* ? ? ? "number used"? */
24023
24024 DT_GNU_PRELINKED =0x6ffffdf5,/*value ? ? Prelinking time stamp */
24025 DT_GNU_CONFLICTSZ=0x6ffffdf6,/*value ? ? Size of conflict section */
24026 DT_GNU_LIBLISTSZ=0x6ffffdf7,/*value ? ? Size of library list */
24027 DT_CHECKSUM = 0x6ffffdf8, /* value ? ? ? */
24028 DT_PLTPADSZ = 0x6ffffdf9, /* value ? ? ? */
24029 DT_MOVEENT = 0x6ffffdfa, /* value ? ? ? */
24030 DT_MOVESZ = 0x6ffffdfb, /* value ? ? ? */
24031 DT_FEATURE_1= 0x6ffffdfc, /* value ? ? Feature selection (DTF_*) */
24032 DT_POSFLAG_1= 0x6ffffdfd, /* value ? ? Flag for DT_* entries affecting next entry */
24033 DT_SYMINSZ = 0x6ffffdfe, /* value ? ? Size of syminfo table in bytes */
24034 DT_SYMINENT = 0x6ffffdff, /* value ? ? Size of each syminfo table entry */
24035
24036 DT_GNU_HASH = 0x6ffffef5, /* pointer ? ? GNU-style hash table */
24037 DT_TLSDESC_PLT=0x6ffffef6,/* pointer ? ? ? */
24038 DT_TLSDESC_GOT=0x6ffffef7,/* pointer ? ? ? */
24039 DT_GNU_CONFLICT=0x6ffffef8,/*pointer ? ? Start of conflict section */
24040 DT_GNU_LIBLIST=0x6ffffef9,/* pointer ? ? Library list */
24041 DT_CONFIG = 0x6ffffefa, /* pointer ? ? Configuration information */
24042 DT_DEPAUDIT = 0x6ffffefb, /* pointer ? ? Dependency auditing */
24043 DT_AUDIT = 0x6ffffefc, /* pointer ? ? Object auditing */
24044 DT_PLTPAD = 0x6ffffefd, /* pointer ? ? PLT padding */
24045 DT_MOVETAB = 0x6ffffefe, /* pointer ? ? Move table */
24046 DT_SYMINFO = 0x6ffffeff, /* pointer ? ? Syminfo table */
24047
24048 DT_VERSYM = 0x6ffffff0, /* pointer ? ? ? */
24049 DT_RELACOUNT= 0x6ffffff9, /* value ? ? ? */
24050 DT_RELCOUNT = 0x6ffffffa, /* value ? ? ? */
24051 DT_FLAGS_1 = 0x6ffffffb, /* value ? ? Sun state flags */
24052 DT_VERDEF = 0x6ffffffc, /* pointer ? ? Sun version definition table */
24053 DT_VERDEFNUM= 0x6ffffffd, /* value ? ? Sun number of version definitions */
24054 DT_VERNEED = 0x6ffffffe, /* pointer ? ? Sun needed versions table */
24055 DT_VERNEEDNUM=0x6fffffff, /* value ? ? Sun number of needed versions */
24056
24057 DT_AUXILIARY= 0x7ffffffd, /* pointer ? ? Sun shared obj to load before self */
24058 DT_FILTER = 0x7fffffff /* pointer ? ? Shared object ot get values from */
24059 };
24060
24061#ifdef _MSC_VER
24062# pragma pack (1)
24063#endif
24064
24067 uint32_t d_tag;
24068 uint32_t d_val;
24069 }
24070#if !defined(SWIG) && !defined(_MSC_VER)
24071 __attribute__((packed))
24072#endif
24073 ;
24074
24076 uint64_t d_tag;
24077 uint64_t d_val;
24078 }
24079#if !defined(SWIG) && !defined(_MSC_VER)
24080 __attribute__((packed))
24081#endif
24082 ;
24083
24084#ifdef _MSC_VER
24085# pragma pack ()
24086#endif
24087
24089 // Properties
24091public:
24092public:
24098 SgAsmElfDynamicEntry::EntryType const& get_d_tag() const;
24099 void set_d_tag(SgAsmElfDynamicEntry::EntryType const&);
24102public:
24113public:
24120public:
24124 SgUnsignedCharList const& get_extra() const;
24125 SgUnsignedCharList& get_extra();
24126 void set_extra(SgUnsignedCharList const&);
24129 // Functions
24131public:
24134
24150 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
24151
24153 static std::string toString(SgAsmElfDynamicEntry::EntryType);
24154
24156 // Deprecated 2023-11
24158public:
24159 static std::string to_string(SgAsmElfDynamicEntry::EntryType) ROSE_DEPRECATED("use toString");
24160public:
24163
24164public:
24167
24168protected:
24176#endif // SgAsmElfDynamicEntry_OTHERS
24177#ifdef DOCUMENTATION
24178};
24179#endif // DOCUMENTATION
24180
24181
24183// SgAsmDwarfWithStmt -- MACHINE GENERATED; DO NOT MODIFY --
24185
24186DECLARE_LEAF_CLASS(AsmDwarfWithStmt);
24187IS_SERIALIZABLE(AsmDwarfWithStmt);
24188
24189#ifndef DOCUMENTATION
24190AsmDwarfWithStmt.useSmallHeader(true);
24191#endif // !DOCUMENTATION
24192
24193#ifdef DOCUMENTATION
24195#endif // DOCUMENTATION
24196
24197 DECLARE_OTHERS(AsmDwarfWithStmt);
24198#if defined(SgAsmDwarfWithStmt_OTHERS) || defined(DOCUMENTATION)
24199
24200 //----------------------- Boost serialization for SgAsmDwarfWithStmt -----------------------
24201#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24202private:
24203 friend class boost::serialization::access;
24204
24205 template<class S>
24206 void serialize(S &s, const unsigned /*version*/) {
24207 debugSerializationBegin("SgAsmDwarfWithStmt");
24208 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24209 debugSerializationEnd("SgAsmDwarfWithStmt");
24210 }
24211#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24212
24213public:
24216
24217public:
24220
24221public:
24223 SgAsmDwarfWithStmt(int const& nesting_level,
24224 uint64_t const& offset,
24225 uint64_t const& overall_offset);
24226
24227protected:
24235#endif // SgAsmDwarfWithStmt_OTHERS
24236#ifdef DOCUMENTATION
24237};
24238#endif // DOCUMENTATION
24239
24240
24242// SgAsmDwarfVolatileType -- MACHINE GENERATED; DO NOT MODIFY --
24244
24245DECLARE_LEAF_CLASS(AsmDwarfVolatileType);
24246IS_SERIALIZABLE(AsmDwarfVolatileType);
24247
24248#ifndef DOCUMENTATION
24249AsmDwarfVolatileType.useSmallHeader(true);
24250#endif // !DOCUMENTATION
24251
24252#ifdef DOCUMENTATION
24254#endif // DOCUMENTATION
24255
24256 DECLARE_OTHERS(AsmDwarfVolatileType);
24257#if defined(SgAsmDwarfVolatileType_OTHERS) || defined(DOCUMENTATION)
24258
24259 //----------------------- Boost serialization for SgAsmDwarfVolatileType -----------------------
24260#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24261private:
24262 friend class boost::serialization::access;
24263
24264 template<class S>
24265 void serialize(S &s, const unsigned /*version*/) {
24266 debugSerializationBegin("SgAsmDwarfVolatileType");
24267 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24268 debugSerializationEnd("SgAsmDwarfVolatileType");
24269 }
24270#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24271
24272public:
24275
24276public:
24279
24280public:
24282 SgAsmDwarfVolatileType(int const& nesting_level,
24283 uint64_t const& offset,
24284 uint64_t const& overall_offset);
24285
24286protected:
24294#endif // SgAsmDwarfVolatileType_OTHERS
24295#ifdef DOCUMENTATION
24296};
24297#endif // DOCUMENTATION
24298
24299
24301// SgAsmDwarfVariantPart -- MACHINE GENERATED; DO NOT MODIFY --
24303
24304DECLARE_LEAF_CLASS(AsmDwarfVariantPart);
24305IS_SERIALIZABLE(AsmDwarfVariantPart);
24306
24307#ifndef DOCUMENTATION
24308AsmDwarfVariantPart.useSmallHeader(true);
24309#endif // !DOCUMENTATION
24310
24311#ifdef DOCUMENTATION
24313#endif // DOCUMENTATION
24314
24315 DECLARE_OTHERS(AsmDwarfVariantPart);
24316#if defined(SgAsmDwarfVariantPart_OTHERS) || defined(DOCUMENTATION)
24317
24318 //----------------------- Boost serialization for SgAsmDwarfVariantPart -----------------------
24319#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24320private:
24321 friend class boost::serialization::access;
24322
24323 template<class S>
24324 void serialize(S &s, const unsigned /*version*/) {
24325 debugSerializationBegin("SgAsmDwarfVariantPart");
24326 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24327 debugSerializationEnd("SgAsmDwarfVariantPart");
24328 }
24329#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24330
24331public:
24334
24335public:
24338
24339public:
24341 SgAsmDwarfVariantPart(int const& nesting_level,
24342 uint64_t const& offset,
24343 uint64_t const& overall_offset);
24344
24345protected:
24353#endif // SgAsmDwarfVariantPart_OTHERS
24354#ifdef DOCUMENTATION
24355};
24356#endif // DOCUMENTATION
24357
24358
24360// SgAsmDwarfVariant -- MACHINE GENERATED; DO NOT MODIFY --
24362
24363DECLARE_LEAF_CLASS(AsmDwarfVariant);
24364IS_SERIALIZABLE(AsmDwarfVariant);
24365
24366#ifndef DOCUMENTATION
24367AsmDwarfVariant.useSmallHeader(true);
24368#endif // !DOCUMENTATION
24369
24370#ifdef DOCUMENTATION
24372#endif // DOCUMENTATION
24373
24374 DECLARE_OTHERS(AsmDwarfVariant);
24375#if defined(SgAsmDwarfVariant_OTHERS) || defined(DOCUMENTATION)
24376
24377 //----------------------- Boost serialization for SgAsmDwarfVariant -----------------------
24378#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24379private:
24380 friend class boost::serialization::access;
24381
24382 template<class S>
24383 void serialize(S &s, const unsigned /*version*/) {
24384 debugSerializationBegin("SgAsmDwarfVariant");
24385 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24386 debugSerializationEnd("SgAsmDwarfVariant");
24387 }
24388#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24389
24390public:
24393
24394public:
24397
24398public:
24400 SgAsmDwarfVariant(int const& nesting_level,
24401 uint64_t const& offset,
24402 uint64_t const& overall_offset);
24403
24404protected:
24412#endif // SgAsmDwarfVariant_OTHERS
24413#ifdef DOCUMENTATION
24414};
24415#endif // DOCUMENTATION
24416
24417
24419// SgAsmDwarfVariable -- MACHINE GENERATED; DO NOT MODIFY --
24421
24422DECLARE_LEAF_CLASS(AsmDwarfVariable);
24423IS_SERIALIZABLE(AsmDwarfVariable);
24424
24425#ifndef DOCUMENTATION
24426AsmDwarfVariable.useSmallHeader(true);
24427#endif // !DOCUMENTATION
24428
24429#ifdef DOCUMENTATION
24431#endif // DOCUMENTATION
24432
24433 DECLARE_OTHERS(AsmDwarfVariable);
24434#if defined(SgAsmDwarfVariable_OTHERS) || defined(DOCUMENTATION)
24435
24436 //----------------------- Boost serialization for SgAsmDwarfVariable -----------------------
24437#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24438private:
24439 friend class boost::serialization::access;
24440
24441 template<class S>
24442 void serialize(S &s, const unsigned /*version*/) {
24443 debugSerializationBegin("SgAsmDwarfVariable");
24444 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24445 debugSerializationEnd("SgAsmDwarfVariable");
24446 }
24447#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24448
24449public:
24452
24453public:
24456
24457public:
24459 SgAsmDwarfVariable(int const& nesting_level,
24460 uint64_t const& offset,
24461 uint64_t const& overall_offset);
24462
24463protected:
24471#endif // SgAsmDwarfVariable_OTHERS
24472#ifdef DOCUMENTATION
24473};
24474#endif // DOCUMENTATION
24475
24476
24478// SgAsmDwarfUpcStrictType -- MACHINE GENERATED; DO NOT MODIFY --
24480
24481DECLARE_LEAF_CLASS(AsmDwarfUpcStrictType);
24482IS_SERIALIZABLE(AsmDwarfUpcStrictType);
24483
24484#ifndef DOCUMENTATION
24485AsmDwarfUpcStrictType.useSmallHeader(true);
24486#endif // !DOCUMENTATION
24487
24488#ifdef DOCUMENTATION
24490#endif // DOCUMENTATION
24491
24492 DECLARE_OTHERS(AsmDwarfUpcStrictType);
24493#if defined(SgAsmDwarfUpcStrictType_OTHERS) || defined(DOCUMENTATION)
24494
24495 //----------------------- Boost serialization for SgAsmDwarfUpcStrictType -----------------------
24496#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24497private:
24498 friend class boost::serialization::access;
24499
24500 template<class S>
24501 void serialize(S &s, const unsigned /*version*/) {
24502 debugSerializationBegin("SgAsmDwarfUpcStrictType");
24503 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24504 debugSerializationEnd("SgAsmDwarfUpcStrictType");
24505 }
24506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24507
24508public:
24511
24512public:
24515
24516public:
24518 SgAsmDwarfUpcStrictType(int const& nesting_level,
24519 uint64_t const& offset,
24520 uint64_t const& overall_offset);
24521
24522protected:
24530#endif // SgAsmDwarfUpcStrictType_OTHERS
24531#ifdef DOCUMENTATION
24532};
24533#endif // DOCUMENTATION
24534
24535
24537// SgAsmDwarfUpcSharedType -- MACHINE GENERATED; DO NOT MODIFY --
24539
24540DECLARE_LEAF_CLASS(AsmDwarfUpcSharedType);
24541IS_SERIALIZABLE(AsmDwarfUpcSharedType);
24542
24543#ifndef DOCUMENTATION
24544AsmDwarfUpcSharedType.useSmallHeader(true);
24545#endif // !DOCUMENTATION
24546
24547#ifdef DOCUMENTATION
24549#endif // DOCUMENTATION
24550
24551 DECLARE_OTHERS(AsmDwarfUpcSharedType);
24552#if defined(SgAsmDwarfUpcSharedType_OTHERS) || defined(DOCUMENTATION)
24553
24554 //----------------------- Boost serialization for SgAsmDwarfUpcSharedType -----------------------
24555#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24556private:
24557 friend class boost::serialization::access;
24558
24559 template<class S>
24560 void serialize(S &s, const unsigned /*version*/) {
24561 debugSerializationBegin("SgAsmDwarfUpcSharedType");
24562 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24563 debugSerializationEnd("SgAsmDwarfUpcSharedType");
24564 }
24565#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24566
24567public:
24570
24571public:
24574
24575public:
24577 SgAsmDwarfUpcSharedType(int const& nesting_level,
24578 uint64_t const& offset,
24579 uint64_t const& overall_offset);
24580
24581protected:
24589#endif // SgAsmDwarfUpcSharedType_OTHERS
24590#ifdef DOCUMENTATION
24591};
24592#endif // DOCUMENTATION
24593
24594
24596// SgAsmDwarfUpcRelaxedType -- MACHINE GENERATED; DO NOT MODIFY --
24598
24599DECLARE_LEAF_CLASS(AsmDwarfUpcRelaxedType);
24600IS_SERIALIZABLE(AsmDwarfUpcRelaxedType);
24601
24602#ifndef DOCUMENTATION
24603AsmDwarfUpcRelaxedType.useSmallHeader(true);
24604#endif // !DOCUMENTATION
24605
24606#ifdef DOCUMENTATION
24608#endif // DOCUMENTATION
24609
24610 DECLARE_OTHERS(AsmDwarfUpcRelaxedType);
24611#if defined(SgAsmDwarfUpcRelaxedType_OTHERS) || defined(DOCUMENTATION)
24612
24613 //----------------------- Boost serialization for SgAsmDwarfUpcRelaxedType -----------------------
24614#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24615private:
24616 friend class boost::serialization::access;
24617
24618 template<class S>
24619 void serialize(S &s, const unsigned /*version*/) {
24620 debugSerializationBegin("SgAsmDwarfUpcRelaxedType");
24621 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24622 debugSerializationEnd("SgAsmDwarfUpcRelaxedType");
24623 }
24624#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24625
24626public:
24629
24630public:
24633
24634public:
24636 SgAsmDwarfUpcRelaxedType(int const& nesting_level,
24637 uint64_t const& offset,
24638 uint64_t const& overall_offset);
24639
24640protected:
24648#endif // SgAsmDwarfUpcRelaxedType_OTHERS
24649#ifdef DOCUMENTATION
24650};
24651#endif // DOCUMENTATION
24652
24653
24655// SgAsmDwarfUnspecifiedType -- MACHINE GENERATED; DO NOT MODIFY --
24657
24658DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedType);
24659IS_SERIALIZABLE(AsmDwarfUnspecifiedType);
24660
24661#ifndef DOCUMENTATION
24662AsmDwarfUnspecifiedType.useSmallHeader(true);
24663#endif // !DOCUMENTATION
24664
24665#ifdef DOCUMENTATION
24667#endif // DOCUMENTATION
24668
24669 DECLARE_OTHERS(AsmDwarfUnspecifiedType);
24670#if defined(SgAsmDwarfUnspecifiedType_OTHERS) || defined(DOCUMENTATION)
24671
24672 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedType -----------------------
24673#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24674private:
24675 friend class boost::serialization::access;
24676
24677 template<class S>
24678 void serialize(S &s, const unsigned /*version*/) {
24679 debugSerializationBegin("SgAsmDwarfUnspecifiedType");
24680 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24681 debugSerializationEnd("SgAsmDwarfUnspecifiedType");
24682 }
24683#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24684
24685public:
24688
24689public:
24692
24693public:
24695 SgAsmDwarfUnspecifiedType(int const& nesting_level,
24696 uint64_t const& offset,
24697 uint64_t const& overall_offset);
24698
24699protected:
24707#endif // SgAsmDwarfUnspecifiedType_OTHERS
24708#ifdef DOCUMENTATION
24709};
24710#endif // DOCUMENTATION
24711
24712
24714// SgAsmDwarfUnspecifiedParameters -- MACHINE GENERATED; DO NOT MODIFY --
24716
24717DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedParameters);
24718IS_SERIALIZABLE(AsmDwarfUnspecifiedParameters);
24719
24720#ifndef DOCUMENTATION
24721AsmDwarfUnspecifiedParameters.useSmallHeader(true);
24722#endif // !DOCUMENTATION
24723
24724#ifdef DOCUMENTATION
24726#endif // DOCUMENTATION
24727
24728 DECLARE_OTHERS(AsmDwarfUnspecifiedParameters);
24729#if defined(SgAsmDwarfUnspecifiedParameters_OTHERS) || defined(DOCUMENTATION)
24730
24731 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedParameters -----------------------
24732#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24733private:
24734 friend class boost::serialization::access;
24735
24736 template<class S>
24737 void serialize(S &s, const unsigned /*version*/) {
24738 debugSerializationBegin("SgAsmDwarfUnspecifiedParameters");
24739 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24740 debugSerializationEnd("SgAsmDwarfUnspecifiedParameters");
24741 }
24742#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24743
24744public:
24747
24748public:
24751
24752public:
24754 SgAsmDwarfUnspecifiedParameters(int const& nesting_level,
24755 uint64_t const& offset,
24756 uint64_t const& overall_offset);
24757
24758protected:
24766#endif // SgAsmDwarfUnspecifiedParameters_OTHERS
24767#ifdef DOCUMENTATION
24768};
24769#endif // DOCUMENTATION
24770
24771
24773// SgAsmDwarfUnknownConstruct -- MACHINE GENERATED; DO NOT MODIFY --
24775
24776DECLARE_LEAF_CLASS(AsmDwarfUnknownConstruct);
24777IS_SERIALIZABLE(AsmDwarfUnknownConstruct);
24778
24779#ifndef DOCUMENTATION
24780AsmDwarfUnknownConstruct.useSmallHeader(true);
24781#endif // !DOCUMENTATION
24782
24783#ifdef DOCUMENTATION
24785#endif // DOCUMENTATION
24786
24787 DECLARE_OTHERS(AsmDwarfUnknownConstruct);
24788#if defined(SgAsmDwarfUnknownConstruct_OTHERS) || defined(DOCUMENTATION)
24789
24790 //----------------------- Boost serialization for SgAsmDwarfUnknownConstruct -----------------------
24791#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24792private:
24793 friend class boost::serialization::access;
24794
24795 template<class S>
24796 void serialize(S &s, const unsigned /*version*/) {
24797 debugSerializationBegin("SgAsmDwarfUnknownConstruct");
24798 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24799 debugSerializationEnd("SgAsmDwarfUnknownConstruct");
24800 }
24801#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24802
24803public:
24806
24807public:
24810
24811public:
24813 SgAsmDwarfUnknownConstruct(int const& nesting_level,
24814 uint64_t const& offset,
24815 uint64_t const& overall_offset);
24816
24817protected:
24825#endif // SgAsmDwarfUnknownConstruct_OTHERS
24826#ifdef DOCUMENTATION
24827};
24828#endif // DOCUMENTATION
24829
24830
24832// SgAsmDwarfUnionType -- MACHINE GENERATED; DO NOT MODIFY --
24834
24835DECLARE_LEAF_CLASS(AsmDwarfUnionType);
24836IS_SERIALIZABLE(AsmDwarfUnionType);
24837
24838#ifndef DOCUMENTATION
24839AsmDwarfUnionType.useSmallHeader(true);
24840#endif // !DOCUMENTATION
24841
24842DECLARE_HEADERS(AsmDwarfUnionType);
24843#if defined(SgAsmDwarfUnionType_HEADERS) || defined(DOCUMENTATION)
24844#ifdef ROSE_SgAsmDwarfUnionType_IMPL
24845#include <SgAsmDwarfConstructList.h>
24846#endif
24847#endif // SgAsmDwarfUnionType_HEADERS
24848
24849#ifdef DOCUMENTATION
24851#endif // DOCUMENTATION
24852
24853#ifndef DOCUMENTATION
24854 AsmDwarfUnionType.setDataPrototype(
24855 "SgAsmDwarfConstructList*", "body", "= NULL",
24856 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24857#endif // !DOCUMENTATION
24858
24859 DECLARE_OTHERS(AsmDwarfUnionType);
24860#if defined(SgAsmDwarfUnionType_OTHERS) || defined(DOCUMENTATION)
24861
24862 //----------------------- Boost serialization for SgAsmDwarfUnionType -----------------------
24863#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24864private:
24865 friend class boost::serialization::access;
24866
24867 template<class S>
24868 void serialize(S &s, const unsigned /*version*/) {
24869 debugSerializationBegin("SgAsmDwarfUnionType");
24870 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24871 s & BOOST_SERIALIZATION_NVP(p_body);
24872 debugSerializationEnd("SgAsmDwarfUnionType");
24873 }
24874#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24875public:
24876public:
24877 SgAsmDwarfConstructList* const& get_body() const;
24878 void set_body(SgAsmDwarfConstructList* const&);
24879public:
24880 SgAsmDwarfConstructList* get_children() override;
24881public:
24884
24885public:
24888
24889public:
24891 SgAsmDwarfUnionType(int const& nesting_level,
24892 uint64_t const& offset,
24893 uint64_t const& overall_offset);
24894
24895protected:
24903#endif // SgAsmDwarfUnionType_OTHERS
24904#ifdef DOCUMENTATION
24905};
24906#endif // DOCUMENTATION
24907
24908
24910// SgAsmDwarfTypedef -- MACHINE GENERATED; DO NOT MODIFY --
24912
24913DECLARE_LEAF_CLASS(AsmDwarfTypedef);
24914IS_SERIALIZABLE(AsmDwarfTypedef);
24915
24916#ifndef DOCUMENTATION
24917AsmDwarfTypedef.useSmallHeader(true);
24918#endif // !DOCUMENTATION
24919
24920#ifdef DOCUMENTATION
24922#endif // DOCUMENTATION
24923
24924 DECLARE_OTHERS(AsmDwarfTypedef);
24925#if defined(SgAsmDwarfTypedef_OTHERS) || defined(DOCUMENTATION)
24926
24927 //----------------------- Boost serialization for SgAsmDwarfTypedef -----------------------
24928#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24929private:
24930 friend class boost::serialization::access;
24931
24932 template<class S>
24933 void serialize(S &s, const unsigned /*version*/) {
24934 debugSerializationBegin("SgAsmDwarfTypedef");
24935 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24936 debugSerializationEnd("SgAsmDwarfTypedef");
24937 }
24938#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24939
24940public:
24943
24944public:
24947
24948public:
24950 SgAsmDwarfTypedef(int const& nesting_level,
24951 uint64_t const& offset,
24952 uint64_t const& overall_offset);
24953
24954protected:
24962#endif // SgAsmDwarfTypedef_OTHERS
24963#ifdef DOCUMENTATION
24964};
24965#endif // DOCUMENTATION
24966
24967
24969// SgAsmDwarfTryBlock -- MACHINE GENERATED; DO NOT MODIFY --
24971
24972DECLARE_LEAF_CLASS(AsmDwarfTryBlock);
24973IS_SERIALIZABLE(AsmDwarfTryBlock);
24974
24975#ifndef DOCUMENTATION
24976AsmDwarfTryBlock.useSmallHeader(true);
24977#endif // !DOCUMENTATION
24978
24979#ifdef DOCUMENTATION
24981#endif // DOCUMENTATION
24982
24983 DECLARE_OTHERS(AsmDwarfTryBlock);
24984#if defined(SgAsmDwarfTryBlock_OTHERS) || defined(DOCUMENTATION)
24985
24986 //----------------------- Boost serialization for SgAsmDwarfTryBlock -----------------------
24987#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24988private:
24989 friend class boost::serialization::access;
24990
24991 template<class S>
24992 void serialize(S &s, const unsigned /*version*/) {
24993 debugSerializationBegin("SgAsmDwarfTryBlock");
24994 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24995 debugSerializationEnd("SgAsmDwarfTryBlock");
24996 }
24997#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24998
24999public:
25002
25003public:
25006
25007public:
25009 SgAsmDwarfTryBlock(int const& nesting_level,
25010 uint64_t const& offset,
25011 uint64_t const& overall_offset);
25012
25013protected:
25021#endif // SgAsmDwarfTryBlock_OTHERS
25022#ifdef DOCUMENTATION
25023};
25024#endif // DOCUMENTATION
25025
25026
25028// SgAsmDwarfThrownType -- MACHINE GENERATED; DO NOT MODIFY --
25030
25031DECLARE_LEAF_CLASS(AsmDwarfThrownType);
25032IS_SERIALIZABLE(AsmDwarfThrownType);
25033
25034#ifndef DOCUMENTATION
25035AsmDwarfThrownType.useSmallHeader(true);
25036#endif // !DOCUMENTATION
25037
25038#ifdef DOCUMENTATION
25040#endif // DOCUMENTATION
25041
25042 DECLARE_OTHERS(AsmDwarfThrownType);
25043#if defined(SgAsmDwarfThrownType_OTHERS) || defined(DOCUMENTATION)
25044
25045 //----------------------- Boost serialization for SgAsmDwarfThrownType -----------------------
25046#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25047private:
25048 friend class boost::serialization::access;
25049
25050 template<class S>
25051 void serialize(S &s, const unsigned /*version*/) {
25052 debugSerializationBegin("SgAsmDwarfThrownType");
25053 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25054 debugSerializationEnd("SgAsmDwarfThrownType");
25055 }
25056#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25057
25058public:
25061
25062public:
25065
25066public:
25068 SgAsmDwarfThrownType(int const& nesting_level,
25069 uint64_t const& offset,
25070 uint64_t const& overall_offset);
25071
25072protected:
25080#endif // SgAsmDwarfThrownType_OTHERS
25081#ifdef DOCUMENTATION
25082};
25083#endif // DOCUMENTATION
25084
25085
25087// SgAsmDwarfTemplateValueParameter -- MACHINE GENERATED; DO NOT MODIFY --
25089
25090DECLARE_LEAF_CLASS(AsmDwarfTemplateValueParameter);
25091IS_SERIALIZABLE(AsmDwarfTemplateValueParameter);
25092
25093#ifndef DOCUMENTATION
25094AsmDwarfTemplateValueParameter.useSmallHeader(true);
25095#endif // !DOCUMENTATION
25096
25097#ifdef DOCUMENTATION
25099#endif // DOCUMENTATION
25100
25101 DECLARE_OTHERS(AsmDwarfTemplateValueParameter);
25102#if defined(SgAsmDwarfTemplateValueParameter_OTHERS) || defined(DOCUMENTATION)
25103
25104 //----------------------- Boost serialization for SgAsmDwarfTemplateValueParameter -----------------------
25105#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25106private:
25107 friend class boost::serialization::access;
25108
25109 template<class S>
25110 void serialize(S &s, const unsigned /*version*/) {
25111 debugSerializationBegin("SgAsmDwarfTemplateValueParameter");
25112 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25113 debugSerializationEnd("SgAsmDwarfTemplateValueParameter");
25114 }
25115#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25116
25117public:
25120
25121public:
25124
25125public:
25127 SgAsmDwarfTemplateValueParameter(int const& nesting_level,
25128 uint64_t const& offset,
25129 uint64_t const& overall_offset);
25130
25131protected:
25139#endif // SgAsmDwarfTemplateValueParameter_OTHERS
25140#ifdef DOCUMENTATION
25141};
25142#endif // DOCUMENTATION
25143
25144
25146// SgAsmDwarfTemplateTypeParameter -- MACHINE GENERATED; DO NOT MODIFY --
25148
25149DECLARE_LEAF_CLASS(AsmDwarfTemplateTypeParameter);
25150IS_SERIALIZABLE(AsmDwarfTemplateTypeParameter);
25151
25152#ifndef DOCUMENTATION
25153AsmDwarfTemplateTypeParameter.useSmallHeader(true);
25154#endif // !DOCUMENTATION
25155
25156#ifdef DOCUMENTATION
25158#endif // DOCUMENTATION
25159
25160 DECLARE_OTHERS(AsmDwarfTemplateTypeParameter);
25161#if defined(SgAsmDwarfTemplateTypeParameter_OTHERS) || defined(DOCUMENTATION)
25162
25163 //----------------------- Boost serialization for SgAsmDwarfTemplateTypeParameter -----------------------
25164#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25165private:
25166 friend class boost::serialization::access;
25167
25168 template<class S>
25169 void serialize(S &s, const unsigned /*version*/) {
25170 debugSerializationBegin("SgAsmDwarfTemplateTypeParameter");
25171 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25172 debugSerializationEnd("SgAsmDwarfTemplateTypeParameter");
25173 }
25174#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25175
25176public:
25179
25180public:
25183
25184public:
25186 SgAsmDwarfTemplateTypeParameter(int const& nesting_level,
25187 uint64_t const& offset,
25188 uint64_t const& overall_offset);
25189
25190protected:
25198#endif // SgAsmDwarfTemplateTypeParameter_OTHERS
25199#ifdef DOCUMENTATION
25200};
25201#endif // DOCUMENTATION
25202
25203
25205// SgAsmDwarfSubroutineType -- MACHINE GENERATED; DO NOT MODIFY --
25207
25208DECLARE_LEAF_CLASS(AsmDwarfSubroutineType);
25209IS_SERIALIZABLE(AsmDwarfSubroutineType);
25210
25211#ifndef DOCUMENTATION
25212AsmDwarfSubroutineType.useSmallHeader(true);
25213#endif // !DOCUMENTATION
25214
25215DECLARE_HEADERS(AsmDwarfSubroutineType);
25216#if defined(SgAsmDwarfSubroutineType_HEADERS) || defined(DOCUMENTATION)
25217#ifdef ROSE_SgAsmDwarfSubroutineType_IMPL
25218#include <SgAsmDwarfConstructList.h>
25219#endif
25220#endif // SgAsmDwarfSubroutineType_HEADERS
25221
25222#ifdef DOCUMENTATION
25224#endif // DOCUMENTATION
25225
25226#ifndef DOCUMENTATION
25227 AsmDwarfSubroutineType.setDataPrototype(
25228 "SgAsmDwarfConstructList*", "body", "= nullptr",
25229 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25230#endif // !DOCUMENTATION
25231
25232 DECLARE_OTHERS(AsmDwarfSubroutineType);
25233#if defined(SgAsmDwarfSubroutineType_OTHERS) || defined(DOCUMENTATION)
25234
25235 //----------------------- Boost serialization for SgAsmDwarfSubroutineType -----------------------
25236#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25237private:
25238 friend class boost::serialization::access;
25239
25240 template<class S>
25241 void serialize(S &s, const unsigned /*version*/) {
25242 debugSerializationBegin("SgAsmDwarfSubroutineType");
25243 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25244 s & BOOST_SERIALIZATION_NVP(p_body);
25245 debugSerializationEnd("SgAsmDwarfSubroutineType");
25246 }
25247#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25248public:
25249public:
25250 SgAsmDwarfConstructList* const& get_body() const;
25251 void set_body(SgAsmDwarfConstructList* const&);
25252public:
25253 SgAsmDwarfConstructList* get_children() override;
25254public:
25257
25258public:
25261
25262public:
25264 SgAsmDwarfSubroutineType(int const& nesting_level,
25265 uint64_t const& offset,
25266 uint64_t const& overall_offset);
25267
25268protected:
25276#endif // SgAsmDwarfSubroutineType_OTHERS
25277#ifdef DOCUMENTATION
25278};
25279#endif // DOCUMENTATION
25280
25281
25283// SgAsmDwarfSubrangeType -- MACHINE GENERATED; DO NOT MODIFY --
25285
25286DECLARE_LEAF_CLASS(AsmDwarfSubrangeType);
25287IS_SERIALIZABLE(AsmDwarfSubrangeType);
25288
25289#ifndef DOCUMENTATION
25290AsmDwarfSubrangeType.useSmallHeader(true);
25291#endif // !DOCUMENTATION
25292
25293#ifdef DOCUMENTATION
25295#endif // DOCUMENTATION
25296
25297 DECLARE_OTHERS(AsmDwarfSubrangeType);
25298#if defined(SgAsmDwarfSubrangeType_OTHERS) || defined(DOCUMENTATION)
25299
25300 //----------------------- Boost serialization for SgAsmDwarfSubrangeType -----------------------
25301#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25302private:
25303 friend class boost::serialization::access;
25304
25305 template<class S>
25306 void serialize(S &s, const unsigned /*version*/) {
25307 debugSerializationBegin("SgAsmDwarfSubrangeType");
25308 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25309 debugSerializationEnd("SgAsmDwarfSubrangeType");
25310 }
25311#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25312
25313public:
25316
25317public:
25320
25321public:
25323 SgAsmDwarfSubrangeType(int const& nesting_level,
25324 uint64_t const& offset,
25325 uint64_t const& overall_offset);
25326
25327protected:
25335#endif // SgAsmDwarfSubrangeType_OTHERS
25336#ifdef DOCUMENTATION
25337};
25338#endif // DOCUMENTATION
25339
25340
25342// SgAsmDwarfSubprogram -- MACHINE GENERATED; DO NOT MODIFY --
25344
25345DECLARE_LEAF_CLASS(AsmDwarfSubprogram);
25346IS_SERIALIZABLE(AsmDwarfSubprogram);
25347
25348#ifndef DOCUMENTATION
25349AsmDwarfSubprogram.useSmallHeader(true);
25350#endif // !DOCUMENTATION
25351
25352DECLARE_HEADERS(AsmDwarfSubprogram);
25353#if defined(SgAsmDwarfSubprogram_HEADERS) || defined(DOCUMENTATION)
25354#ifdef ROSE_SgAsmDwarfSubprogram_IMPL
25355#include <SgAsmDwarfConstructList.h>
25356#endif
25357#endif // SgAsmDwarfSubprogram_HEADERS
25358
25359#ifdef DOCUMENTATION
25361#endif // DOCUMENTATION
25362
25363#ifndef DOCUMENTATION
25364 AsmDwarfSubprogram.setDataPrototype(
25365 "SgAsmDwarfConstructList*", "body", "= NULL",
25366 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25367#endif // !DOCUMENTATION
25368
25369 DECLARE_OTHERS(AsmDwarfSubprogram);
25370#if defined(SgAsmDwarfSubprogram_OTHERS) || defined(DOCUMENTATION)
25371
25372 //----------------------- Boost serialization for SgAsmDwarfSubprogram -----------------------
25373#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25374private:
25375 friend class boost::serialization::access;
25376
25377 template<class S>
25378 void serialize(S &s, const unsigned /*version*/) {
25379 debugSerializationBegin("SgAsmDwarfSubprogram");
25380 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25381 s & BOOST_SERIALIZATION_NVP(p_body);
25382 debugSerializationEnd("SgAsmDwarfSubprogram");
25383 }
25384#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25385public:
25386public:
25387 SgAsmDwarfConstructList* const& get_body() const;
25388 void set_body(SgAsmDwarfConstructList* const&);
25389public:
25390 SgAsmDwarfConstructList* get_children() override;
25391public:
25394
25395public:
25398
25399public:
25401 SgAsmDwarfSubprogram(int const& nesting_level,
25402 uint64_t const& offset,
25403 uint64_t const& overall_offset);
25404
25405protected:
25413#endif // SgAsmDwarfSubprogram_OTHERS
25414#ifdef DOCUMENTATION
25415};
25416#endif // DOCUMENTATION
25417
25418
25420// SgAsmDwarfStructureType -- MACHINE GENERATED; DO NOT MODIFY --
25422
25423DECLARE_LEAF_CLASS(AsmDwarfStructureType);
25424IS_SERIALIZABLE(AsmDwarfStructureType);
25425
25426#ifndef DOCUMENTATION
25427AsmDwarfStructureType.useSmallHeader(true);
25428#endif // !DOCUMENTATION
25429
25430DECLARE_HEADERS(AsmDwarfStructureType);
25431#if defined(SgAsmDwarfStructureType_HEADERS) || defined(DOCUMENTATION)
25432#ifdef ROSE_SgAsmDwarfStructureType_IMPL
25433#include <SgAsmDwarfConstructList.h>
25434#endif
25435#endif // SgAsmDwarfStructureType_HEADERS
25436
25437#ifdef DOCUMENTATION
25439#endif // DOCUMENTATION
25440
25441#ifndef DOCUMENTATION
25442 AsmDwarfStructureType.setDataPrototype(
25443 "SgAsmDwarfConstructList*", "body", "= nullptr",
25444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25445#endif // !DOCUMENTATION
25446
25447 DECLARE_OTHERS(AsmDwarfStructureType);
25448#if defined(SgAsmDwarfStructureType_OTHERS) || defined(DOCUMENTATION)
25449
25450 //----------------------- Boost serialization for SgAsmDwarfStructureType -----------------------
25451#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25452private:
25453 friend class boost::serialization::access;
25454
25455 template<class S>
25456 void serialize(S &s, const unsigned /*version*/) {
25457 debugSerializationBegin("SgAsmDwarfStructureType");
25458 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25459 s & BOOST_SERIALIZATION_NVP(p_body);
25460 debugSerializationEnd("SgAsmDwarfStructureType");
25461 }
25462#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25463public:
25464public:
25465 SgAsmDwarfConstructList* const& get_body() const;
25466 void set_body(SgAsmDwarfConstructList* const&);
25467public:
25468 SgAsmDwarfConstructList* get_children() override;
25469public:
25472
25473public:
25476
25477public:
25479 SgAsmDwarfStructureType(int const& nesting_level,
25480 uint64_t const& offset,
25481 uint64_t const& overall_offset);
25482
25483protected:
25491#endif // SgAsmDwarfStructureType_OTHERS
25492#ifdef DOCUMENTATION
25493};
25494#endif // DOCUMENTATION
25495
25496
25498// SgAsmDwarfStringType -- MACHINE GENERATED; DO NOT MODIFY --
25500
25501DECLARE_LEAF_CLASS(AsmDwarfStringType);
25502IS_SERIALIZABLE(AsmDwarfStringType);
25503
25504#ifndef DOCUMENTATION
25505AsmDwarfStringType.useSmallHeader(true);
25506#endif // !DOCUMENTATION
25507
25508#ifdef DOCUMENTATION
25510#endif // DOCUMENTATION
25511
25512 DECLARE_OTHERS(AsmDwarfStringType);
25513#if defined(SgAsmDwarfStringType_OTHERS) || defined(DOCUMENTATION)
25514
25515 //----------------------- Boost serialization for SgAsmDwarfStringType -----------------------
25516#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25517private:
25518 friend class boost::serialization::access;
25519
25520 template<class S>
25521 void serialize(S &s, const unsigned /*version*/) {
25522 debugSerializationBegin("SgAsmDwarfStringType");
25523 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25524 debugSerializationEnd("SgAsmDwarfStringType");
25525 }
25526#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25527
25528public:
25531
25532public:
25535
25536public:
25538 SgAsmDwarfStringType(int const& nesting_level,
25539 uint64_t const& offset,
25540 uint64_t const& overall_offset);
25541
25542protected:
25550#endif // SgAsmDwarfStringType_OTHERS
25551#ifdef DOCUMENTATION
25552};
25553#endif // DOCUMENTATION
25554
25555
25557// SgAsmDwarfSharedType -- MACHINE GENERATED; DO NOT MODIFY --
25559
25560DECLARE_LEAF_CLASS(AsmDwarfSharedType);
25561IS_SERIALIZABLE(AsmDwarfSharedType);
25562
25563#ifndef DOCUMENTATION
25564AsmDwarfSharedType.useSmallHeader(true);
25565#endif // !DOCUMENTATION
25566
25567#ifdef DOCUMENTATION
25569#endif // DOCUMENTATION
25570
25571 DECLARE_OTHERS(AsmDwarfSharedType);
25572#if defined(SgAsmDwarfSharedType_OTHERS) || defined(DOCUMENTATION)
25573
25574 //----------------------- Boost serialization for SgAsmDwarfSharedType -----------------------
25575#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25576private:
25577 friend class boost::serialization::access;
25578
25579 template<class S>
25580 void serialize(S &s, const unsigned /*version*/) {
25581 debugSerializationBegin("SgAsmDwarfSharedType");
25582 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25583 debugSerializationEnd("SgAsmDwarfSharedType");
25584 }
25585#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25586
25587public:
25590
25591public:
25594
25595public:
25597 SgAsmDwarfSharedType(int const& nesting_level,
25598 uint64_t const& offset,
25599 uint64_t const& overall_offset);
25600
25601protected:
25609#endif // SgAsmDwarfSharedType_OTHERS
25610#ifdef DOCUMENTATION
25611};
25612#endif // DOCUMENTATION
25613
25614
25616// SgAsmDwarfSetType -- MACHINE GENERATED; DO NOT MODIFY --
25618
25619DECLARE_LEAF_CLASS(AsmDwarfSetType);
25620IS_SERIALIZABLE(AsmDwarfSetType);
25621
25622#ifndef DOCUMENTATION
25623AsmDwarfSetType.useSmallHeader(true);
25624#endif // !DOCUMENTATION
25625
25626#ifdef DOCUMENTATION
25628#endif // DOCUMENTATION
25629
25630 DECLARE_OTHERS(AsmDwarfSetType);
25631#if defined(SgAsmDwarfSetType_OTHERS) || defined(DOCUMENTATION)
25632
25633 //----------------------- Boost serialization for SgAsmDwarfSetType -----------------------
25634#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25635private:
25636 friend class boost::serialization::access;
25637
25638 template<class S>
25639 void serialize(S &s, const unsigned /*version*/) {
25640 debugSerializationBegin("SgAsmDwarfSetType");
25641 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25642 debugSerializationEnd("SgAsmDwarfSetType");
25643 }
25644#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25645
25646public:
25649
25650public:
25653
25654public:
25656 SgAsmDwarfSetType(int const& nesting_level,
25657 uint64_t const& offset,
25658 uint64_t const& overall_offset);
25659
25660protected:
25668#endif // SgAsmDwarfSetType_OTHERS
25669#ifdef DOCUMENTATION
25670};
25671#endif // DOCUMENTATION
25672
25673
25675// SgAsmDwarfRestrictType -- MACHINE GENERATED; DO NOT MODIFY --
25677
25678DECLARE_LEAF_CLASS(AsmDwarfRestrictType);
25679IS_SERIALIZABLE(AsmDwarfRestrictType);
25680
25681#ifndef DOCUMENTATION
25682AsmDwarfRestrictType.useSmallHeader(true);
25683#endif // !DOCUMENTATION
25684
25685#ifdef DOCUMENTATION
25687#endif // DOCUMENTATION
25688
25689 DECLARE_OTHERS(AsmDwarfRestrictType);
25690#if defined(SgAsmDwarfRestrictType_OTHERS) || defined(DOCUMENTATION)
25691
25692 //----------------------- Boost serialization for SgAsmDwarfRestrictType -----------------------
25693#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25694private:
25695 friend class boost::serialization::access;
25696
25697 template<class S>
25698 void serialize(S &s, const unsigned /*version*/) {
25699 debugSerializationBegin("SgAsmDwarfRestrictType");
25700 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25701 debugSerializationEnd("SgAsmDwarfRestrictType");
25702 }
25703#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25704
25705public:
25708
25709public:
25712
25713public:
25715 SgAsmDwarfRestrictType(int const& nesting_level,
25716 uint64_t const& offset,
25717 uint64_t const& overall_offset);
25718
25719protected:
25727#endif // SgAsmDwarfRestrictType_OTHERS
25728#ifdef DOCUMENTATION
25729};
25730#endif // DOCUMENTATION
25731
25732
25734// SgAsmDwarfReferenceType -- MACHINE GENERATED; DO NOT MODIFY --
25736
25737DECLARE_LEAF_CLASS(AsmDwarfReferenceType);
25738IS_SERIALIZABLE(AsmDwarfReferenceType);
25739
25740#ifndef DOCUMENTATION
25741AsmDwarfReferenceType.useSmallHeader(true);
25742#endif // !DOCUMENTATION
25743
25744#ifdef DOCUMENTATION
25746#endif // DOCUMENTATION
25747
25748 DECLARE_OTHERS(AsmDwarfReferenceType);
25749#if defined(SgAsmDwarfReferenceType_OTHERS) || defined(DOCUMENTATION)
25750
25751 //----------------------- Boost serialization for SgAsmDwarfReferenceType -----------------------
25752#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25753private:
25754 friend class boost::serialization::access;
25755
25756 template<class S>
25757 void serialize(S &s, const unsigned /*version*/) {
25758 debugSerializationBegin("SgAsmDwarfReferenceType");
25759 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25760 debugSerializationEnd("SgAsmDwarfReferenceType");
25761 }
25762#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25763
25764public:
25767
25768public:
25771
25772public:
25774 SgAsmDwarfReferenceType(int const& nesting_level,
25775 uint64_t const& offset,
25776 uint64_t const& overall_offset);
25777
25778protected:
25786#endif // SgAsmDwarfReferenceType_OTHERS
25787#ifdef DOCUMENTATION
25788};
25789#endif // DOCUMENTATION
25790
25791
25793// SgAsmDwarfPtrToMemberType -- MACHINE GENERATED; DO NOT MODIFY --
25795
25796DECLARE_LEAF_CLASS(AsmDwarfPtrToMemberType);
25797IS_SERIALIZABLE(AsmDwarfPtrToMemberType);
25798
25799#ifndef DOCUMENTATION
25800AsmDwarfPtrToMemberType.useSmallHeader(true);
25801#endif // !DOCUMENTATION
25802
25803#ifdef DOCUMENTATION
25805#endif // DOCUMENTATION
25806
25807 DECLARE_OTHERS(AsmDwarfPtrToMemberType);
25808#if defined(SgAsmDwarfPtrToMemberType_OTHERS) || defined(DOCUMENTATION)
25809
25810 //----------------------- Boost serialization for SgAsmDwarfPtrToMemberType -----------------------
25811#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25812private:
25813 friend class boost::serialization::access;
25814
25815 template<class S>
25816 void serialize(S &s, const unsigned /*version*/) {
25817 debugSerializationBegin("SgAsmDwarfPtrToMemberType");
25818 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25819 debugSerializationEnd("SgAsmDwarfPtrToMemberType");
25820 }
25821#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25822
25823public:
25826
25827public:
25830
25831public:
25833 SgAsmDwarfPtrToMemberType(int const& nesting_level,
25834 uint64_t const& offset,
25835 uint64_t const& overall_offset);
25836
25837protected:
25845#endif // SgAsmDwarfPtrToMemberType_OTHERS
25846#ifdef DOCUMENTATION
25847};
25848#endif // DOCUMENTATION
25849
25850
25852// SgAsmDwarfPointerType -- MACHINE GENERATED; DO NOT MODIFY --
25854
25855DECLARE_LEAF_CLASS(AsmDwarfPointerType);
25856IS_SERIALIZABLE(AsmDwarfPointerType);
25857
25858#ifndef DOCUMENTATION
25859AsmDwarfPointerType.useSmallHeader(true);
25860#endif // !DOCUMENTATION
25861
25862#ifdef DOCUMENTATION
25864#endif // DOCUMENTATION
25865
25866 DECLARE_OTHERS(AsmDwarfPointerType);
25867#if defined(SgAsmDwarfPointerType_OTHERS) || defined(DOCUMENTATION)
25868
25869 //----------------------- Boost serialization for SgAsmDwarfPointerType -----------------------
25870#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25871private:
25872 friend class boost::serialization::access;
25873
25874 template<class S>
25875 void serialize(S &s, const unsigned /*version*/) {
25876 debugSerializationBegin("SgAsmDwarfPointerType");
25877 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25878 debugSerializationEnd("SgAsmDwarfPointerType");
25879 }
25880#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25881
25882public:
25885
25886public:
25889
25890public:
25892 SgAsmDwarfPointerType(int const& nesting_level,
25893 uint64_t const& offset,
25894 uint64_t const& overall_offset);
25895
25896protected:
25904#endif // SgAsmDwarfPointerType_OTHERS
25905#ifdef DOCUMENTATION
25906};
25907#endif // DOCUMENTATION
25908
25909
25911// SgAsmDwarfPartialUnit -- MACHINE GENERATED; DO NOT MODIFY --
25913
25914DECLARE_LEAF_CLASS(AsmDwarfPartialUnit);
25915IS_SERIALIZABLE(AsmDwarfPartialUnit);
25916
25917#ifndef DOCUMENTATION
25918AsmDwarfPartialUnit.useSmallHeader(true);
25919#endif // !DOCUMENTATION
25920
25921#ifdef DOCUMENTATION
25923#endif // DOCUMENTATION
25924
25925 DECLARE_OTHERS(AsmDwarfPartialUnit);
25926#if defined(SgAsmDwarfPartialUnit_OTHERS) || defined(DOCUMENTATION)
25927
25928 //----------------------- Boost serialization for SgAsmDwarfPartialUnit -----------------------
25929#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25930private:
25931 friend class boost::serialization::access;
25932
25933 template<class S>
25934 void serialize(S &s, const unsigned /*version*/) {
25935 debugSerializationBegin("SgAsmDwarfPartialUnit");
25936 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25937 debugSerializationEnd("SgAsmDwarfPartialUnit");
25938 }
25939#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25940
25941public:
25944
25945public:
25948
25949public:
25951 SgAsmDwarfPartialUnit(int const& nesting_level,
25952 uint64_t const& offset,
25953 uint64_t const& overall_offset);
25954
25955protected:
25963#endif // SgAsmDwarfPartialUnit_OTHERS
25964#ifdef DOCUMENTATION
25965};
25966#endif // DOCUMENTATION
25967
25968
25970// SgAsmDwarfPackedType -- MACHINE GENERATED; DO NOT MODIFY --
25972
25973DECLARE_LEAF_CLASS(AsmDwarfPackedType);
25974IS_SERIALIZABLE(AsmDwarfPackedType);
25975
25976#ifndef DOCUMENTATION
25977AsmDwarfPackedType.useSmallHeader(true);
25978#endif // !DOCUMENTATION
25979
25980#ifdef DOCUMENTATION
25982#endif // DOCUMENTATION
25983
25984 DECLARE_OTHERS(AsmDwarfPackedType);
25985#if defined(SgAsmDwarfPackedType_OTHERS) || defined(DOCUMENTATION)
25986
25987 //----------------------- Boost serialization for SgAsmDwarfPackedType -----------------------
25988#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25989private:
25990 friend class boost::serialization::access;
25991
25992 template<class S>
25993 void serialize(S &s, const unsigned /*version*/) {
25994 debugSerializationBegin("SgAsmDwarfPackedType");
25995 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25996 debugSerializationEnd("SgAsmDwarfPackedType");
25997 }
25998#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25999
26000public:
26003
26004public:
26007
26008public:
26010 SgAsmDwarfPackedType(int const& nesting_level,
26011 uint64_t const& offset,
26012 uint64_t const& overall_offset);
26013
26014protected:
26022#endif // SgAsmDwarfPackedType_OTHERS
26023#ifdef DOCUMENTATION
26024};
26025#endif // DOCUMENTATION
26026
26027
26029// SgAsmDwarfNamespace -- MACHINE GENERATED; DO NOT MODIFY --
26031
26032DECLARE_LEAF_CLASS(AsmDwarfNamespace);
26033IS_SERIALIZABLE(AsmDwarfNamespace);
26034
26035#ifndef DOCUMENTATION
26036AsmDwarfNamespace.useSmallHeader(true);
26037#endif // !DOCUMENTATION
26038
26039DECLARE_HEADERS(AsmDwarfNamespace);
26040#if defined(SgAsmDwarfNamespace_HEADERS) || defined(DOCUMENTATION)
26041#ifdef ROSE_SgAsmDwarfNamespace_IMPL
26042#include <SgAsmDwarfConstructList.h>
26043#endif
26044#endif // SgAsmDwarfNamespace_HEADERS
26045
26046#ifdef DOCUMENTATION
26048#endif // DOCUMENTATION
26049
26050#ifndef DOCUMENTATION
26051 AsmDwarfNamespace.setDataPrototype(
26052 "SgAsmDwarfConstructList*", "body", "= NULL",
26053 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26054#endif // !DOCUMENTATION
26055
26056 DECLARE_OTHERS(AsmDwarfNamespace);
26057#if defined(SgAsmDwarfNamespace_OTHERS) || defined(DOCUMENTATION)
26058
26059 //----------------------- Boost serialization for SgAsmDwarfNamespace -----------------------
26060#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26061private:
26062 friend class boost::serialization::access;
26063
26064 template<class S>
26065 void serialize(S &s, const unsigned /*version*/) {
26066 debugSerializationBegin("SgAsmDwarfNamespace");
26067 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26068 s & BOOST_SERIALIZATION_NVP(p_body);
26069 debugSerializationEnd("SgAsmDwarfNamespace");
26070 }
26071#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26072public:
26073public:
26074 SgAsmDwarfConstructList* const& get_body() const;
26075 void set_body(SgAsmDwarfConstructList* const&);
26076public:
26077 SgAsmDwarfConstructList* get_children() override;
26078public:
26081
26082public:
26085
26086public:
26088 SgAsmDwarfNamespace(int const& nesting_level,
26089 uint64_t const& offset,
26090 uint64_t const& overall_offset);
26091
26092protected:
26100#endif // SgAsmDwarfNamespace_OTHERS
26101#ifdef DOCUMENTATION
26102};
26103#endif // DOCUMENTATION
26104
26105
26107// SgAsmDwarfNamelistItem -- MACHINE GENERATED; DO NOT MODIFY --
26109
26110DECLARE_LEAF_CLASS(AsmDwarfNamelistItem);
26111IS_SERIALIZABLE(AsmDwarfNamelistItem);
26112
26113#ifndef DOCUMENTATION
26114AsmDwarfNamelistItem.useSmallHeader(true);
26115#endif // !DOCUMENTATION
26116
26117#ifdef DOCUMENTATION
26119#endif // DOCUMENTATION
26120
26121 DECLARE_OTHERS(AsmDwarfNamelistItem);
26122#if defined(SgAsmDwarfNamelistItem_OTHERS) || defined(DOCUMENTATION)
26123
26124 //----------------------- Boost serialization for SgAsmDwarfNamelistItem -----------------------
26125#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26126private:
26127 friend class boost::serialization::access;
26128
26129 template<class S>
26130 void serialize(S &s, const unsigned /*version*/) {
26131 debugSerializationBegin("SgAsmDwarfNamelistItem");
26132 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26133 debugSerializationEnd("SgAsmDwarfNamelistItem");
26134 }
26135#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26136
26137public:
26140
26141public:
26144
26145public:
26147 SgAsmDwarfNamelistItem(int const& nesting_level,
26148 uint64_t const& offset,
26149 uint64_t const& overall_offset);
26150
26151protected:
26159#endif // SgAsmDwarfNamelistItem_OTHERS
26160#ifdef DOCUMENTATION
26161};
26162#endif // DOCUMENTATION
26163
26164
26166// SgAsmDwarfNamelist -- MACHINE GENERATED; DO NOT MODIFY --
26168
26169DECLARE_LEAF_CLASS(AsmDwarfNamelist);
26170IS_SERIALIZABLE(AsmDwarfNamelist);
26171
26172#ifndef DOCUMENTATION
26173AsmDwarfNamelist.useSmallHeader(true);
26174#endif // !DOCUMENTATION
26175
26176#ifdef DOCUMENTATION
26178#endif // DOCUMENTATION
26179
26180 DECLARE_OTHERS(AsmDwarfNamelist);
26181#if defined(SgAsmDwarfNamelist_OTHERS) || defined(DOCUMENTATION)
26182
26183 //----------------------- Boost serialization for SgAsmDwarfNamelist -----------------------
26184#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26185private:
26186 friend class boost::serialization::access;
26187
26188 template<class S>
26189 void serialize(S &s, const unsigned /*version*/) {
26190 debugSerializationBegin("SgAsmDwarfNamelist");
26191 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26192 debugSerializationEnd("SgAsmDwarfNamelist");
26193 }
26194#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26195
26196public:
26199
26200public:
26203
26204public:
26206 SgAsmDwarfNamelist(int const& nesting_level,
26207 uint64_t const& offset,
26208 uint64_t const& overall_offset);
26209
26210protected:
26218#endif // SgAsmDwarfNamelist_OTHERS
26219#ifdef DOCUMENTATION
26220};
26221#endif // DOCUMENTATION
26222
26223
26225// SgAsmDwarfMutableType -- MACHINE GENERATED; DO NOT MODIFY --
26227
26228DECLARE_LEAF_CLASS(AsmDwarfMutableType);
26229IS_SERIALIZABLE(AsmDwarfMutableType);
26230
26231#ifndef DOCUMENTATION
26232AsmDwarfMutableType.useSmallHeader(true);
26233#endif // !DOCUMENTATION
26234
26235#ifdef DOCUMENTATION
26237#endif // DOCUMENTATION
26238
26239 DECLARE_OTHERS(AsmDwarfMutableType);
26240#if defined(SgAsmDwarfMutableType_OTHERS) || defined(DOCUMENTATION)
26241
26242 //----------------------- Boost serialization for SgAsmDwarfMutableType -----------------------
26243#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26244private:
26245 friend class boost::serialization::access;
26246
26247 template<class S>
26248 void serialize(S &s, const unsigned /*version*/) {
26249 debugSerializationBegin("SgAsmDwarfMutableType");
26250 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26251 debugSerializationEnd("SgAsmDwarfMutableType");
26252 }
26253#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26254
26255public:
26258
26259public:
26262
26263public:
26265 SgAsmDwarfMutableType(int const& nesting_level,
26266 uint64_t const& offset,
26267 uint64_t const& overall_offset);
26268
26269protected:
26277#endif // SgAsmDwarfMutableType_OTHERS
26278#ifdef DOCUMENTATION
26279};
26280#endif // DOCUMENTATION
26281
26282
26284// SgAsmDwarfModule -- MACHINE GENERATED; DO NOT MODIFY --
26286
26287DECLARE_LEAF_CLASS(AsmDwarfModule);
26288IS_SERIALIZABLE(AsmDwarfModule);
26289
26290#ifndef DOCUMENTATION
26291AsmDwarfModule.useSmallHeader(true);
26292#endif // !DOCUMENTATION
26293
26294#ifdef DOCUMENTATION
26296#endif // DOCUMENTATION
26297
26298 DECLARE_OTHERS(AsmDwarfModule);
26299#if defined(SgAsmDwarfModule_OTHERS) || defined(DOCUMENTATION)
26300
26301 //----------------------- Boost serialization for SgAsmDwarfModule -----------------------
26302#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26303private:
26304 friend class boost::serialization::access;
26305
26306 template<class S>
26307 void serialize(S &s, const unsigned /*version*/) {
26308 debugSerializationBegin("SgAsmDwarfModule");
26309 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26310 debugSerializationEnd("SgAsmDwarfModule");
26311 }
26312#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26313
26314public:
26317
26318public:
26321
26322public:
26324 SgAsmDwarfModule(int const& nesting_level,
26325 uint64_t const& offset,
26326 uint64_t const& overall_offset);
26327
26328protected:
26336#endif // SgAsmDwarfModule_OTHERS
26337#ifdef DOCUMENTATION
26338};
26339#endif // DOCUMENTATION
26340
26341
26343// SgAsmDwarfMember -- MACHINE GENERATED; DO NOT MODIFY --
26345
26346DECLARE_LEAF_CLASS(AsmDwarfMember);
26347IS_SERIALIZABLE(AsmDwarfMember);
26348
26349#ifndef DOCUMENTATION
26350AsmDwarfMember.useSmallHeader(true);
26351#endif // !DOCUMENTATION
26352
26353#ifdef DOCUMENTATION
26355#endif // DOCUMENTATION
26356
26357 DECLARE_OTHERS(AsmDwarfMember);
26358#if defined(SgAsmDwarfMember_OTHERS) || defined(DOCUMENTATION)
26359
26360 //----------------------- Boost serialization for SgAsmDwarfMember -----------------------
26361#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26362private:
26363 friend class boost::serialization::access;
26364
26365 template<class S>
26366 void serialize(S &s, const unsigned /*version*/) {
26367 debugSerializationBegin("SgAsmDwarfMember");
26368 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26369 debugSerializationEnd("SgAsmDwarfMember");
26370 }
26371#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26372
26373public:
26376
26377public:
26380
26381public:
26383 SgAsmDwarfMember(int const& nesting_level,
26384 uint64_t const& offset,
26385 uint64_t const& overall_offset);
26386
26387protected:
26395#endif // SgAsmDwarfMember_OTHERS
26396#ifdef DOCUMENTATION
26397};
26398#endif // DOCUMENTATION
26399
26400
26402// SgAsmDwarfMacroList -- MACHINE GENERATED; DO NOT MODIFY --
26404
26405DECLARE_LEAF_CLASS(AsmDwarfMacroList);
26406IS_SERIALIZABLE(AsmDwarfMacroList);
26407
26408#ifndef DOCUMENTATION
26409AsmDwarfMacroList.useSmallHeader(true);
26410#endif // !DOCUMENTATION
26411
26412DECLARE_HEADERS(AsmDwarfMacroList);
26413#if defined(SgAsmDwarfMacroList_HEADERS) || defined(DOCUMENTATION)
26414#include <sageContainer.h>
26415#endif // SgAsmDwarfMacroList_HEADERS
26416
26417#ifdef DOCUMENTATION
26419#endif // DOCUMENTATION
26420
26421#ifndef DOCUMENTATION
26422 AsmDwarfMacroList.setDataPrototype(
26423 "SgAsmDwarfMacroPtrList", "macro_list", "",
26424 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26425#endif // !DOCUMENTATION
26426
26427 DECLARE_OTHERS(AsmDwarfMacroList);
26428#if defined(SgAsmDwarfMacroList_OTHERS) || defined(DOCUMENTATION)
26429
26430 //----------------------- Boost serialization for SgAsmDwarfMacroList -----------------------
26431#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26432private:
26433 friend class boost::serialization::access;
26434
26435 template<class S>
26436 void serialize(S &s, const unsigned /*version*/) {
26437 debugSerializationBegin("SgAsmDwarfMacroList");
26438 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26439 s & BOOST_SERIALIZATION_NVP(p_macro_list);
26440 debugSerializationEnd("SgAsmDwarfMacroList");
26441 }
26442#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26443public:
26444public:
26445 SgAsmDwarfMacroPtrList const& get_macro_list() const;
26446 void set_macro_list(SgAsmDwarfMacroPtrList const&);
26447
26448public:
26451
26452public:
26455
26456protected:
26464#endif // SgAsmDwarfMacroList_OTHERS
26465#ifdef DOCUMENTATION
26466};
26467#endif // DOCUMENTATION
26468
26469
26471// SgAsmDwarfMacro -- MACHINE GENERATED; DO NOT MODIFY --
26473
26474DECLARE_LEAF_CLASS(AsmDwarfMacro);
26475IS_SERIALIZABLE(AsmDwarfMacro);
26476
26477#ifndef DOCUMENTATION
26478AsmDwarfMacro.useSmallHeader(true);
26479#endif // !DOCUMENTATION
26480
26481#ifdef DOCUMENTATION
26483#endif // DOCUMENTATION
26484
26485#ifndef DOCUMENTATION
26486 AsmDwarfMacro.setDataPrototype(
26487 "std::string", "macro_string", "",
26488 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26489#endif // !DOCUMENTATION
26490
26491 DECLARE_OTHERS(AsmDwarfMacro);
26492#if defined(SgAsmDwarfMacro_OTHERS) || defined(DOCUMENTATION)
26493
26494 //----------------------- Boost serialization for SgAsmDwarfMacro -----------------------
26495#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26496private:
26497 friend class boost::serialization::access;
26498
26499 template<class S>
26500 void serialize(S &s, const unsigned /*version*/) {
26501 debugSerializationBegin("SgAsmDwarfMacro");
26502 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26503 s & BOOST_SERIALIZATION_NVP(p_macro_string);
26504 debugSerializationEnd("SgAsmDwarfMacro");
26505 }
26506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26507public:
26508public:
26509 std::string const& get_macro_string() const;
26510 void set_macro_string(std::string const&);
26511
26512public:
26515
26516public:
26519
26520protected:
26528#endif // SgAsmDwarfMacro_OTHERS
26529#ifdef DOCUMENTATION
26530};
26531#endif // DOCUMENTATION
26532
26533
26535// SgAsmDwarfLineList -- MACHINE GENERATED; DO NOT MODIFY --
26537
26538DECLARE_LEAF_CLASS(AsmDwarfLineList);
26539IS_SERIALIZABLE(AsmDwarfLineList);
26540
26541#ifndef DOCUMENTATION
26542AsmDwarfLineList.useSmallHeader(true);
26543#endif // !DOCUMENTATION
26544
26545DECLARE_HEADERS(AsmDwarfLineList);
26546#if defined(SgAsmDwarfLineList_HEADERS) || defined(DOCUMENTATION)
26547#include <sageContainer.h>
26548#endif // SgAsmDwarfLineList_HEADERS
26549
26550#ifdef DOCUMENTATION
26552#endif // DOCUMENTATION
26553
26554#ifndef DOCUMENTATION
26555 AsmDwarfLineList.setDataPrototype(
26556 "SgAsmDwarfLinePtrList", "line_list", "",
26557 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26558#endif // !DOCUMENTATION
26559
26560 DECLARE_OTHERS(AsmDwarfLineList);
26561#if defined(SgAsmDwarfLineList_OTHERS) || defined(DOCUMENTATION)
26562
26563 //----------------------- Boost serialization for SgAsmDwarfLineList -----------------------
26564#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26565private:
26566 friend class boost::serialization::access;
26567
26568 template<class S>
26569 void serialize(S &s, const unsigned /*version*/) {
26570 debugSerializationBegin("SgAsmDwarfLineList");
26571 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26572 s & BOOST_SERIALIZATION_NVP(p_line_list);
26573 debugSerializationEnd("SgAsmDwarfLineList");
26574 }
26575#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26576public:
26577public:
26578 SgAsmDwarfLinePtrList const& get_line_list() const;
26579 SgAsmDwarfLinePtrList& get_line_list();
26580 void set_line_list(SgAsmDwarfLinePtrList const&);
26581#if 0
26582 // I [DQ] am having trouble making these proper data members so just use function to return them, so that they are
26583 // computed dynamically.
26584 AsmDwarfLineList.setDataPrototype("SgInstructionAddressSourcePositionMapPtrList", "instructionToSourceMap", "",
26585 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
26586 AsmDwarfLineList.setDataPrototype("SgSourcePositionInstructionAddressMapPtrList", "sourceToInstructionMap", "",
26587 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
26588#endif
26589
26590public:
26591 // Once the maps are setup using a valid SgAsmDwarfCompilationUnit, NULL is an acceptable value.
26593 static DwarfInstructionSourceMapReturnType buildInstructionAddressSourcePositionMaps( SgAsmDwarfCompilationUnit* dwarf_cu = NULL );
26594
26596 void display( const std::string & label );
26597
26598 static std::pair<uint64_t,uint64_t> instructionRange();
26599 static std::pair<LineColumnFilePosition,LineColumnFilePosition> sourceCodeRange( int file_id );
26600
26601 static uint64_t sourceCodeToAddress ( FileIdLineColumnFilePosition sourcePosition );
26602 static FileIdLineColumnFilePosition addressToSourceCode ( uint64_t address );
26603public:
26606
26607public:
26610
26611protected:
26619#endif // SgAsmDwarfLineList_OTHERS
26620#ifdef DOCUMENTATION
26621};
26622#endif // DOCUMENTATION
26623
26624
26626// SgAsmDwarfLine -- MACHINE GENERATED; DO NOT MODIFY --
26628
26629DECLARE_LEAF_CLASS(AsmDwarfLine);
26630IS_SERIALIZABLE(AsmDwarfLine);
26631
26632#ifndef DOCUMENTATION
26633AsmDwarfLine.useSmallHeader(true);
26634#endif // !DOCUMENTATION
26635
26636#ifdef DOCUMENTATION
26638#endif // DOCUMENTATION
26639
26640#ifndef DOCUMENTATION
26641 AsmDwarfLine.setDataPrototype(
26642 "uint64_t", "address", "= 0",
26643 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26644#endif // !DOCUMENTATION
26645
26646#ifndef DOCUMENTATION
26647 AsmDwarfLine.setDataPrototype(
26648 "int", "file_id", "= -2",
26649 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26650#endif // !DOCUMENTATION
26651
26652#ifndef DOCUMENTATION
26653 AsmDwarfLine.setDataPrototype(
26654 "int", "line", "= 0",
26655 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26656#endif // !DOCUMENTATION
26657
26658#ifndef DOCUMENTATION
26659 AsmDwarfLine.setDataPrototype(
26660 "int", "column", "= 0",
26661 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26662#endif // !DOCUMENTATION
26663
26664 DECLARE_OTHERS(AsmDwarfLine);
26665#if defined(SgAsmDwarfLine_OTHERS) || defined(DOCUMENTATION)
26666
26667 //----------------------- Boost serialization for SgAsmDwarfLine -----------------------
26668#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26669private:
26670 friend class boost::serialization::access;
26671
26672 template<class S>
26673 void serialize(S &s, const unsigned /*version*/) {
26674 debugSerializationBegin("SgAsmDwarfLine");
26675 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26676 s & BOOST_SERIALIZATION_NVP(p_address);
26677 s & BOOST_SERIALIZATION_NVP(p_file_id);
26678 s & BOOST_SERIALIZATION_NVP(p_line);
26679 s & BOOST_SERIALIZATION_NVP(p_column);
26680 debugSerializationEnd("SgAsmDwarfLine");
26681 }
26682#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26683public:
26684public:
26685 uint64_t const& get_address() const;
26686 void set_address(uint64_t const&);
26687 // FIXME[Robb Matzke 2024-03-14]: Sg_File_Info::NULL_FILE_ID == -2, but since Sg_File_Info's definition is in the
26688 // huge Cxx_Grammar.h file we don't want to include it here.
26689public:
26690 int const& get_file_id() const;
26691 void set_file_id(int const&);
26692
26693public:
26694 int const& get_line() const;
26695 void set_line(int const&);
26696
26697public:
26698 int const& get_column() const;
26699 void set_column(int const&);
26700
26701public:
26704
26705public:
26708
26709public:
26711 SgAsmDwarfLine(uint64_t const& address,
26712 int const& file_id,
26713 int const& line,
26714 int const& column);
26715
26716protected:
26724#endif // SgAsmDwarfLine_OTHERS
26725#ifdef DOCUMENTATION
26726};
26727#endif // DOCUMENTATION
26728
26729
26731// SgAsmDwarfLexicalBlock -- MACHINE GENERATED; DO NOT MODIFY --
26733
26734DECLARE_LEAF_CLASS(AsmDwarfLexicalBlock);
26735IS_SERIALIZABLE(AsmDwarfLexicalBlock);
26736
26737#ifndef DOCUMENTATION
26738AsmDwarfLexicalBlock.useSmallHeader(true);
26739#endif // !DOCUMENTATION
26740
26741DECLARE_HEADERS(AsmDwarfLexicalBlock);
26742#if defined(SgAsmDwarfLexicalBlock_HEADERS) || defined(DOCUMENTATION)
26743#ifdef ROSE_SgAsmDwarfLexicalBlock_IMPL
26744#include <SgAsmDwarfConstructList.h>
26745#endif
26746#endif // SgAsmDwarfLexicalBlock_HEADERS
26747
26748#ifdef DOCUMENTATION
26750#endif // DOCUMENTATION
26751
26752#ifndef DOCUMENTATION
26753 AsmDwarfLexicalBlock.setDataPrototype(
26754 "SgAsmDwarfConstructList*", "body", "= nullptr",
26755 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26756#endif // !DOCUMENTATION
26757
26758 DECLARE_OTHERS(AsmDwarfLexicalBlock);
26759#if defined(SgAsmDwarfLexicalBlock_OTHERS) || defined(DOCUMENTATION)
26760
26761 //----------------------- Boost serialization for SgAsmDwarfLexicalBlock -----------------------
26762#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26763private:
26764 friend class boost::serialization::access;
26765
26766 template<class S>
26767 void serialize(S &s, const unsigned /*version*/) {
26768 debugSerializationBegin("SgAsmDwarfLexicalBlock");
26769 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26770 s & BOOST_SERIALIZATION_NVP(p_body);
26771 debugSerializationEnd("SgAsmDwarfLexicalBlock");
26772 }
26773#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26774public:
26775public:
26776 SgAsmDwarfConstructList* const& get_body() const;
26777 void set_body(SgAsmDwarfConstructList* const&);
26778public:
26779 SgAsmDwarfConstructList* get_children() override;
26780public:
26783
26784public:
26787
26788public:
26790 SgAsmDwarfLexicalBlock(int const& nesting_level,
26791 uint64_t const& offset,
26792 uint64_t const& overall_offset);
26793
26794protected:
26802#endif // SgAsmDwarfLexicalBlock_OTHERS
26803#ifdef DOCUMENTATION
26804};
26805#endif // DOCUMENTATION
26806
26807
26809// SgAsmDwarfLabel -- MACHINE GENERATED; DO NOT MODIFY --
26811
26812DECLARE_LEAF_CLASS(AsmDwarfLabel);
26813IS_SERIALIZABLE(AsmDwarfLabel);
26814
26815#ifndef DOCUMENTATION
26816AsmDwarfLabel.useSmallHeader(true);
26817#endif // !DOCUMENTATION
26818
26819#ifdef DOCUMENTATION
26821#endif // DOCUMENTATION
26822
26823 DECLARE_OTHERS(AsmDwarfLabel);
26824#if defined(SgAsmDwarfLabel_OTHERS) || defined(DOCUMENTATION)
26825
26826 //----------------------- Boost serialization for SgAsmDwarfLabel -----------------------
26827#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26828private:
26829 friend class boost::serialization::access;
26830
26831 template<class S>
26832 void serialize(S &s, const unsigned /*version*/) {
26833 debugSerializationBegin("SgAsmDwarfLabel");
26834 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26835 debugSerializationEnd("SgAsmDwarfLabel");
26836 }
26837#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26838
26839public:
26842
26843public:
26846
26847public:
26849 SgAsmDwarfLabel(int const& nesting_level,
26850 uint64_t const& offset,
26851 uint64_t const& overall_offset);
26852
26853protected:
26861#endif // SgAsmDwarfLabel_OTHERS
26862#ifdef DOCUMENTATION
26863};
26864#endif // DOCUMENTATION
26865
26866
26868// SgAsmDwarfInterfaceType -- MACHINE GENERATED; DO NOT MODIFY --
26870
26871DECLARE_LEAF_CLASS(AsmDwarfInterfaceType);
26872IS_SERIALIZABLE(AsmDwarfInterfaceType);
26873
26874#ifndef DOCUMENTATION
26875AsmDwarfInterfaceType.useSmallHeader(true);
26876#endif // !DOCUMENTATION
26877
26878#ifdef DOCUMENTATION
26880#endif // DOCUMENTATION
26881
26882 DECLARE_OTHERS(AsmDwarfInterfaceType);
26883#if defined(SgAsmDwarfInterfaceType_OTHERS) || defined(DOCUMENTATION)
26884
26885 //----------------------- Boost serialization for SgAsmDwarfInterfaceType -----------------------
26886#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26887private:
26888 friend class boost::serialization::access;
26889
26890 template<class S>
26891 void serialize(S &s, const unsigned /*version*/) {
26892 debugSerializationBegin("SgAsmDwarfInterfaceType");
26893 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26894 debugSerializationEnd("SgAsmDwarfInterfaceType");
26895 }
26896#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26897
26898public:
26901
26902public:
26905
26906public:
26908 SgAsmDwarfInterfaceType(int const& nesting_level,
26909 uint64_t const& offset,
26910 uint64_t const& overall_offset);
26911
26912protected:
26920#endif // SgAsmDwarfInterfaceType_OTHERS
26921#ifdef DOCUMENTATION
26922};
26923#endif // DOCUMENTATION
26924
26925
26927// SgAsmDwarfInlinedSubroutine -- MACHINE GENERATED; DO NOT MODIFY --
26929
26930DECLARE_LEAF_CLASS(AsmDwarfInlinedSubroutine);
26931IS_SERIALIZABLE(AsmDwarfInlinedSubroutine);
26932
26933#ifndef DOCUMENTATION
26934AsmDwarfInlinedSubroutine.useSmallHeader(true);
26935#endif // !DOCUMENTATION
26936
26937DECLARE_HEADERS(AsmDwarfInlinedSubroutine);
26938#if defined(SgAsmDwarfInlinedSubroutine_HEADERS) || defined(DOCUMENTATION)
26939#ifdef ROSE_SgAsmDwarfInlinedSubroutine_IMPL
26940#include <SgAsmDwarfConstructList.h>
26941#endif
26942#endif // SgAsmDwarfInlinedSubroutine_HEADERS
26943
26944#ifdef DOCUMENTATION
26946#endif // DOCUMENTATION
26947
26948#ifndef DOCUMENTATION
26949 AsmDwarfInlinedSubroutine.setDataPrototype(
26950 "SgAsmDwarfConstructList*", "body", "= nullptr",
26951 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26952#endif // !DOCUMENTATION
26953
26954 DECLARE_OTHERS(AsmDwarfInlinedSubroutine);
26955#if defined(SgAsmDwarfInlinedSubroutine_OTHERS) || defined(DOCUMENTATION)
26956
26957 //----------------------- Boost serialization for SgAsmDwarfInlinedSubroutine -----------------------
26958#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26959private:
26960 friend class boost::serialization::access;
26961
26962 template<class S>
26963 void serialize(S &s, const unsigned /*version*/) {
26964 debugSerializationBegin("SgAsmDwarfInlinedSubroutine");
26965 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26966 s & BOOST_SERIALIZATION_NVP(p_body);
26967 debugSerializationEnd("SgAsmDwarfInlinedSubroutine");
26968 }
26969#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26970public:
26971public:
26972 SgAsmDwarfConstructList* const& get_body() const;
26973 void set_body(SgAsmDwarfConstructList* const&);
26974public:
26975 SgAsmDwarfConstructList* get_children() override;
26976public:
26979
26980public:
26983
26984public:
26986 SgAsmDwarfInlinedSubroutine(int const& nesting_level,
26987 uint64_t const& offset,
26988 uint64_t const& overall_offset);
26989
26990protected:
26998#endif // SgAsmDwarfInlinedSubroutine_OTHERS
26999#ifdef DOCUMENTATION
27000};
27001#endif // DOCUMENTATION
27002
27003
27005// SgAsmDwarfInheritance -- MACHINE GENERATED; DO NOT MODIFY --
27007
27008DECLARE_LEAF_CLASS(AsmDwarfInheritance);
27009IS_SERIALIZABLE(AsmDwarfInheritance);
27010
27011#ifndef DOCUMENTATION
27012AsmDwarfInheritance.useSmallHeader(true);
27013#endif // !DOCUMENTATION
27014
27015#ifdef DOCUMENTATION
27017#endif // DOCUMENTATION
27018
27019 DECLARE_OTHERS(AsmDwarfInheritance);
27020#if defined(SgAsmDwarfInheritance_OTHERS) || defined(DOCUMENTATION)
27021
27022 //----------------------- Boost serialization for SgAsmDwarfInheritance -----------------------
27023#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27024private:
27025 friend class boost::serialization::access;
27026
27027 template<class S>
27028 void serialize(S &s, const unsigned /*version*/) {
27029 debugSerializationBegin("SgAsmDwarfInheritance");
27030 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27031 debugSerializationEnd("SgAsmDwarfInheritance");
27032 }
27033#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27034
27035public:
27038
27039public:
27042
27043public:
27045 SgAsmDwarfInheritance(int const& nesting_level,
27046 uint64_t const& offset,
27047 uint64_t const& overall_offset);
27048
27049protected:
27057#endif // SgAsmDwarfInheritance_OTHERS
27058#ifdef DOCUMENTATION
27059};
27060#endif // DOCUMENTATION
27061
27062
27064// SgAsmDwarfImportedUnit -- MACHINE GENERATED; DO NOT MODIFY --
27066
27067DECLARE_LEAF_CLASS(AsmDwarfImportedUnit);
27068IS_SERIALIZABLE(AsmDwarfImportedUnit);
27069
27070#ifndef DOCUMENTATION
27071AsmDwarfImportedUnit.useSmallHeader(true);
27072#endif // !DOCUMENTATION
27073
27074#ifdef DOCUMENTATION
27076#endif // DOCUMENTATION
27077
27078 DECLARE_OTHERS(AsmDwarfImportedUnit);
27079#if defined(SgAsmDwarfImportedUnit_OTHERS) || defined(DOCUMENTATION)
27080
27081 //----------------------- Boost serialization for SgAsmDwarfImportedUnit -----------------------
27082#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27083private:
27084 friend class boost::serialization::access;
27085
27086 template<class S>
27087 void serialize(S &s, const unsigned /*version*/) {
27088 debugSerializationBegin("SgAsmDwarfImportedUnit");
27089 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27090 debugSerializationEnd("SgAsmDwarfImportedUnit");
27091 }
27092#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27093
27094public:
27097
27098public:
27101
27102public:
27104 SgAsmDwarfImportedUnit(int const& nesting_level,
27105 uint64_t const& offset,
27106 uint64_t const& overall_offset);
27107
27108protected:
27116#endif // SgAsmDwarfImportedUnit_OTHERS
27117#ifdef DOCUMENTATION
27118};
27119#endif // DOCUMENTATION
27120
27121
27123// SgAsmDwarfImportedModule -- MACHINE GENERATED; DO NOT MODIFY --
27125
27126DECLARE_LEAF_CLASS(AsmDwarfImportedModule);
27127IS_SERIALIZABLE(AsmDwarfImportedModule);
27128
27129#ifndef DOCUMENTATION
27130AsmDwarfImportedModule.useSmallHeader(true);
27131#endif // !DOCUMENTATION
27132
27133#ifdef DOCUMENTATION
27135#endif // DOCUMENTATION
27136
27137 DECLARE_OTHERS(AsmDwarfImportedModule);
27138#if defined(SgAsmDwarfImportedModule_OTHERS) || defined(DOCUMENTATION)
27139
27140 //----------------------- Boost serialization for SgAsmDwarfImportedModule -----------------------
27141#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27142private:
27143 friend class boost::serialization::access;
27144
27145 template<class S>
27146 void serialize(S &s, const unsigned /*version*/) {
27147 debugSerializationBegin("SgAsmDwarfImportedModule");
27148 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27149 debugSerializationEnd("SgAsmDwarfImportedModule");
27150 }
27151#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27152
27153public:
27156
27157public:
27160
27161public:
27163 SgAsmDwarfImportedModule(int const& nesting_level,
27164 uint64_t const& offset,
27165 uint64_t const& overall_offset);
27166
27167protected:
27175#endif // SgAsmDwarfImportedModule_OTHERS
27176#ifdef DOCUMENTATION
27177};
27178#endif // DOCUMENTATION
27179
27180
27182// SgAsmDwarfImportedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
27184
27185DECLARE_LEAF_CLASS(AsmDwarfImportedDeclaration);
27186IS_SERIALIZABLE(AsmDwarfImportedDeclaration);
27187
27188#ifndef DOCUMENTATION
27189AsmDwarfImportedDeclaration.useSmallHeader(true);
27190#endif // !DOCUMENTATION
27191
27192#ifdef DOCUMENTATION
27194#endif // DOCUMENTATION
27195
27196 DECLARE_OTHERS(AsmDwarfImportedDeclaration);
27197#if defined(SgAsmDwarfImportedDeclaration_OTHERS) || defined(DOCUMENTATION)
27198
27199 //----------------------- Boost serialization for SgAsmDwarfImportedDeclaration -----------------------
27200#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27201private:
27202 friend class boost::serialization::access;
27203
27204 template<class S>
27205 void serialize(S &s, const unsigned /*version*/) {
27206 debugSerializationBegin("SgAsmDwarfImportedDeclaration");
27207 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27208 debugSerializationEnd("SgAsmDwarfImportedDeclaration");
27209 }
27210#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27211
27212public:
27215
27216public:
27219
27220public:
27222 SgAsmDwarfImportedDeclaration(int const& nesting_level,
27223 uint64_t const& offset,
27224 uint64_t const& overall_offset);
27225
27226protected:
27234#endif // SgAsmDwarfImportedDeclaration_OTHERS
27235#ifdef DOCUMENTATION
27236};
27237#endif // DOCUMENTATION
27238
27239
27241// SgAsmDwarfFunctionTemplate -- MACHINE GENERATED; DO NOT MODIFY --
27243
27244DECLARE_LEAF_CLASS(AsmDwarfFunctionTemplate);
27245IS_SERIALIZABLE(AsmDwarfFunctionTemplate);
27246
27247#ifndef DOCUMENTATION
27248AsmDwarfFunctionTemplate.useSmallHeader(true);
27249#endif // !DOCUMENTATION
27250
27251#ifdef DOCUMENTATION
27253#endif // DOCUMENTATION
27254
27255 DECLARE_OTHERS(AsmDwarfFunctionTemplate);
27256#if defined(SgAsmDwarfFunctionTemplate_OTHERS) || defined(DOCUMENTATION)
27257
27258 //----------------------- Boost serialization for SgAsmDwarfFunctionTemplate -----------------------
27259#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27260private:
27261 friend class boost::serialization::access;
27262
27263 template<class S>
27264 void serialize(S &s, const unsigned /*version*/) {
27265 debugSerializationBegin("SgAsmDwarfFunctionTemplate");
27266 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27267 debugSerializationEnd("SgAsmDwarfFunctionTemplate");
27268 }
27269#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27270
27271public:
27274
27275public:
27278
27279public:
27281 SgAsmDwarfFunctionTemplate(int const& nesting_level,
27282 uint64_t const& offset,
27283 uint64_t const& overall_offset);
27284
27285protected:
27293#endif // SgAsmDwarfFunctionTemplate_OTHERS
27294#ifdef DOCUMENTATION
27295};
27296#endif // DOCUMENTATION
27297
27298
27300// SgAsmDwarfFriend -- MACHINE GENERATED; DO NOT MODIFY --
27302
27303DECLARE_LEAF_CLASS(AsmDwarfFriend);
27304IS_SERIALIZABLE(AsmDwarfFriend);
27305
27306#ifndef DOCUMENTATION
27307AsmDwarfFriend.useSmallHeader(true);
27308#endif // !DOCUMENTATION
27309
27310#ifdef DOCUMENTATION
27312#endif // DOCUMENTATION
27313
27314 DECLARE_OTHERS(AsmDwarfFriend);
27315#if defined(SgAsmDwarfFriend_OTHERS) || defined(DOCUMENTATION)
27316
27317 //----------------------- Boost serialization for SgAsmDwarfFriend -----------------------
27318#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27319private:
27320 friend class boost::serialization::access;
27321
27322 template<class S>
27323 void serialize(S &s, const unsigned /*version*/) {
27324 debugSerializationBegin("SgAsmDwarfFriend");
27325 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27326 debugSerializationEnd("SgAsmDwarfFriend");
27327 }
27328#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27329
27330public:
27333
27334public:
27337
27338public:
27340 SgAsmDwarfFriend(int const& nesting_level,
27341 uint64_t const& offset,
27342 uint64_t const& overall_offset);
27343
27344protected:
27352#endif // SgAsmDwarfFriend_OTHERS
27353#ifdef DOCUMENTATION
27354};
27355#endif // DOCUMENTATION
27356
27357
27359// SgAsmDwarfFormatLabel -- MACHINE GENERATED; DO NOT MODIFY --
27361
27362DECLARE_LEAF_CLASS(AsmDwarfFormatLabel);
27363IS_SERIALIZABLE(AsmDwarfFormatLabel);
27364
27365#ifndef DOCUMENTATION
27366AsmDwarfFormatLabel.useSmallHeader(true);
27367#endif // !DOCUMENTATION
27368
27369#ifdef DOCUMENTATION
27371#endif // DOCUMENTATION
27372
27373 DECLARE_OTHERS(AsmDwarfFormatLabel);
27374#if defined(SgAsmDwarfFormatLabel_OTHERS) || defined(DOCUMENTATION)
27375
27376 //----------------------- Boost serialization for SgAsmDwarfFormatLabel -----------------------
27377#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27378private:
27379 friend class boost::serialization::access;
27380
27381 template<class S>
27382 void serialize(S &s, const unsigned /*version*/) {
27383 debugSerializationBegin("SgAsmDwarfFormatLabel");
27384 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27385 debugSerializationEnd("SgAsmDwarfFormatLabel");
27386 }
27387#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27388
27389public:
27392
27393public:
27396
27397public:
27399 SgAsmDwarfFormatLabel(int const& nesting_level,
27400 uint64_t const& offset,
27401 uint64_t const& overall_offset);
27402
27403protected:
27411#endif // SgAsmDwarfFormatLabel_OTHERS
27412#ifdef DOCUMENTATION
27413};
27414#endif // DOCUMENTATION
27415
27416
27418// SgAsmDwarfFormalParameter -- MACHINE GENERATED; DO NOT MODIFY --
27420
27421DECLARE_LEAF_CLASS(AsmDwarfFormalParameter);
27422IS_SERIALIZABLE(AsmDwarfFormalParameter);
27423
27424#ifndef DOCUMENTATION
27425AsmDwarfFormalParameter.useSmallHeader(true);
27426#endif // !DOCUMENTATION
27427
27428#ifdef DOCUMENTATION
27430#endif // DOCUMENTATION
27431
27432 DECLARE_OTHERS(AsmDwarfFormalParameter);
27433#if defined(SgAsmDwarfFormalParameter_OTHERS) || defined(DOCUMENTATION)
27434
27435 //----------------------- Boost serialization for SgAsmDwarfFormalParameter -----------------------
27436#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27437private:
27438 friend class boost::serialization::access;
27439
27440 template<class S>
27441 void serialize(S &s, const unsigned /*version*/) {
27442 debugSerializationBegin("SgAsmDwarfFormalParameter");
27443 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27444 debugSerializationEnd("SgAsmDwarfFormalParameter");
27445 }
27446#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27447
27448public:
27451
27452public:
27455
27456public:
27458 SgAsmDwarfFormalParameter(int const& nesting_level,
27459 uint64_t const& offset,
27460 uint64_t const& overall_offset);
27461
27462protected:
27470#endif // SgAsmDwarfFormalParameter_OTHERS
27471#ifdef DOCUMENTATION
27472};
27473#endif // DOCUMENTATION
27474
27475
27477// SgAsmDwarfFileType -- MACHINE GENERATED; DO NOT MODIFY --
27479
27480DECLARE_LEAF_CLASS(AsmDwarfFileType);
27481IS_SERIALIZABLE(AsmDwarfFileType);
27482
27483#ifndef DOCUMENTATION
27484AsmDwarfFileType.useSmallHeader(true);
27485#endif // !DOCUMENTATION
27486
27487#ifdef DOCUMENTATION
27489#endif // DOCUMENTATION
27490
27491 DECLARE_OTHERS(AsmDwarfFileType);
27492#if defined(SgAsmDwarfFileType_OTHERS) || defined(DOCUMENTATION)
27493
27494 //----------------------- Boost serialization for SgAsmDwarfFileType -----------------------
27495#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27496private:
27497 friend class boost::serialization::access;
27498
27499 template<class S>
27500 void serialize(S &s, const unsigned /*version*/) {
27501 debugSerializationBegin("SgAsmDwarfFileType");
27502 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27503 debugSerializationEnd("SgAsmDwarfFileType");
27504 }
27505#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27506
27507public:
27510
27511public:
27514
27515public:
27517 SgAsmDwarfFileType(int const& nesting_level,
27518 uint64_t const& offset,
27519 uint64_t const& overall_offset);
27520
27521protected:
27529#endif // SgAsmDwarfFileType_OTHERS
27530#ifdef DOCUMENTATION
27531};
27532#endif // DOCUMENTATION
27533
27534
27536// SgAsmDwarfEnumerator -- MACHINE GENERATED; DO NOT MODIFY --
27538
27539DECLARE_LEAF_CLASS(AsmDwarfEnumerator);
27540IS_SERIALIZABLE(AsmDwarfEnumerator);
27541
27542#ifndef DOCUMENTATION
27543AsmDwarfEnumerator.useSmallHeader(true);
27544#endif // !DOCUMENTATION
27545
27546#ifdef DOCUMENTATION
27548#endif // DOCUMENTATION
27549
27550 DECLARE_OTHERS(AsmDwarfEnumerator);
27551#if defined(SgAsmDwarfEnumerator_OTHERS) || defined(DOCUMENTATION)
27552
27553 //----------------------- Boost serialization for SgAsmDwarfEnumerator -----------------------
27554#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27555private:
27556 friend class boost::serialization::access;
27557
27558 template<class S>
27559 void serialize(S &s, const unsigned /*version*/) {
27560 debugSerializationBegin("SgAsmDwarfEnumerator");
27561 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27562 debugSerializationEnd("SgAsmDwarfEnumerator");
27563 }
27564#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27565
27566public:
27569
27570public:
27573
27574public:
27576 SgAsmDwarfEnumerator(int const& nesting_level,
27577 uint64_t const& offset,
27578 uint64_t const& overall_offset);
27579
27580protected:
27588#endif // SgAsmDwarfEnumerator_OTHERS
27589#ifdef DOCUMENTATION
27590};
27591#endif // DOCUMENTATION
27592
27593
27595// SgAsmDwarfEnumerationType -- MACHINE GENERATED; DO NOT MODIFY --
27597
27598DECLARE_LEAF_CLASS(AsmDwarfEnumerationType);
27599IS_SERIALIZABLE(AsmDwarfEnumerationType);
27600
27601#ifndef DOCUMENTATION
27602AsmDwarfEnumerationType.useSmallHeader(true);
27603#endif // !DOCUMENTATION
27604
27605DECLARE_HEADERS(AsmDwarfEnumerationType);
27606#if defined(SgAsmDwarfEnumerationType_HEADERS) || defined(DOCUMENTATION)
27607#ifdef ROSE_SgAsmDwarfEnumerationType_IMPL
27608#include <SgAsmDwarfConstructList.h>
27609#endif
27610#endif // SgAsmDwarfEnumerationType_HEADERS
27611
27612#ifdef DOCUMENTATION
27614#endif // DOCUMENTATION
27615
27616#ifndef DOCUMENTATION
27617 AsmDwarfEnumerationType.setDataPrototype(
27618 "SgAsmDwarfConstructList*", "body", "= NULL",
27619 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27620#endif // !DOCUMENTATION
27621
27622 DECLARE_OTHERS(AsmDwarfEnumerationType);
27623#if defined(SgAsmDwarfEnumerationType_OTHERS) || defined(DOCUMENTATION)
27624
27625 //----------------------- Boost serialization for SgAsmDwarfEnumerationType -----------------------
27626#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27627private:
27628 friend class boost::serialization::access;
27629
27630 template<class S>
27631 void serialize(S &s, const unsigned /*version*/) {
27632 debugSerializationBegin("SgAsmDwarfEnumerationType");
27633 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27634 s & BOOST_SERIALIZATION_NVP(p_body);
27635 debugSerializationEnd("SgAsmDwarfEnumerationType");
27636 }
27637#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27638public:
27639public:
27640 SgAsmDwarfConstructList* const& get_body() const;
27641 void set_body(SgAsmDwarfConstructList* const&);
27642public:
27643 SgAsmDwarfConstructList* get_children() override;
27644public:
27647
27648public:
27651
27652public:
27654 SgAsmDwarfEnumerationType(int const& nesting_level,
27655 uint64_t const& offset,
27656 uint64_t const& overall_offset);
27657
27658protected:
27666#endif // SgAsmDwarfEnumerationType_OTHERS
27667#ifdef DOCUMENTATION
27668};
27669#endif // DOCUMENTATION
27670
27671
27673// SgAsmDwarfEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
27675
27676DECLARE_LEAF_CLASS(AsmDwarfEntryPoint);
27677IS_SERIALIZABLE(AsmDwarfEntryPoint);
27678
27679#ifndef DOCUMENTATION
27680AsmDwarfEntryPoint.useSmallHeader(true);
27681#endif // !DOCUMENTATION
27682
27683#ifdef DOCUMENTATION
27685#endif // DOCUMENTATION
27686
27687 DECLARE_OTHERS(AsmDwarfEntryPoint);
27688#if defined(SgAsmDwarfEntryPoint_OTHERS) || defined(DOCUMENTATION)
27689
27690 //----------------------- Boost serialization for SgAsmDwarfEntryPoint -----------------------
27691#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27692private:
27693 friend class boost::serialization::access;
27694
27695 template<class S>
27696 void serialize(S &s, const unsigned /*version*/) {
27697 debugSerializationBegin("SgAsmDwarfEntryPoint");
27698 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27699 debugSerializationEnd("SgAsmDwarfEntryPoint");
27700 }
27701#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27702
27703public:
27706
27707public:
27710
27711public:
27713 SgAsmDwarfEntryPoint(int const& nesting_level,
27714 uint64_t const& offset,
27715 uint64_t const& overall_offset);
27716
27717protected:
27725#endif // SgAsmDwarfEntryPoint_OTHERS
27726#ifdef DOCUMENTATION
27727};
27728#endif // DOCUMENTATION
27729
27730
27732// SgAsmDwarfDwarfProcedure -- MACHINE GENERATED; DO NOT MODIFY --
27734
27735DECLARE_LEAF_CLASS(AsmDwarfDwarfProcedure);
27736IS_SERIALIZABLE(AsmDwarfDwarfProcedure);
27737
27738#ifndef DOCUMENTATION
27739AsmDwarfDwarfProcedure.useSmallHeader(true);
27740#endif // !DOCUMENTATION
27741
27742#ifdef DOCUMENTATION
27744#endif // DOCUMENTATION
27745
27746 DECLARE_OTHERS(AsmDwarfDwarfProcedure);
27747#if defined(SgAsmDwarfDwarfProcedure_OTHERS) || defined(DOCUMENTATION)
27748
27749 //----------------------- Boost serialization for SgAsmDwarfDwarfProcedure -----------------------
27750#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27751private:
27752 friend class boost::serialization::access;
27753
27754 template<class S>
27755 void serialize(S &s, const unsigned /*version*/) {
27756 debugSerializationBegin("SgAsmDwarfDwarfProcedure");
27757 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27758 debugSerializationEnd("SgAsmDwarfDwarfProcedure");
27759 }
27760#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27761
27762public:
27765
27766public:
27769
27770public:
27772 SgAsmDwarfDwarfProcedure(int const& nesting_level,
27773 uint64_t const& offset,
27774 uint64_t const& overall_offset);
27775
27776protected:
27784#endif // SgAsmDwarfDwarfProcedure_OTHERS
27785#ifdef DOCUMENTATION
27786};
27787#endif // DOCUMENTATION
27788
27789
27791// SgAsmDwarfConstType -- MACHINE GENERATED; DO NOT MODIFY --
27793
27794DECLARE_LEAF_CLASS(AsmDwarfConstType);
27795IS_SERIALIZABLE(AsmDwarfConstType);
27796
27797#ifndef DOCUMENTATION
27798AsmDwarfConstType.useSmallHeader(true);
27799#endif // !DOCUMENTATION
27800
27801#ifdef DOCUMENTATION
27803#endif // DOCUMENTATION
27804
27805 DECLARE_OTHERS(AsmDwarfConstType);
27806#if defined(SgAsmDwarfConstType_OTHERS) || defined(DOCUMENTATION)
27807
27808 //----------------------- Boost serialization for SgAsmDwarfConstType -----------------------
27809#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27810private:
27811 friend class boost::serialization::access;
27812
27813 template<class S>
27814 void serialize(S &s, const unsigned /*version*/) {
27815 debugSerializationBegin("SgAsmDwarfConstType");
27816 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27817 debugSerializationEnd("SgAsmDwarfConstType");
27818 }
27819#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27820
27821public:
27824
27825public:
27828
27829public:
27831 SgAsmDwarfConstType(int const& nesting_level,
27832 uint64_t const& offset,
27833 uint64_t const& overall_offset);
27834
27835protected:
27843#endif // SgAsmDwarfConstType_OTHERS
27844#ifdef DOCUMENTATION
27845};
27846#endif // DOCUMENTATION
27847
27848
27850// SgAsmDwarfConstructList -- MACHINE GENERATED; DO NOT MODIFY --
27852
27853DECLARE_LEAF_CLASS(AsmDwarfConstructList);
27854IS_SERIALIZABLE(AsmDwarfConstructList);
27855
27856#ifndef DOCUMENTATION
27857AsmDwarfConstructList.useSmallHeader(true);
27858#endif // !DOCUMENTATION
27859
27860DECLARE_HEADERS(AsmDwarfConstructList);
27861#if defined(SgAsmDwarfConstructList_HEADERS) || defined(DOCUMENTATION)
27862#include <sageContainer.h>
27863#endif // SgAsmDwarfConstructList_HEADERS
27864
27865#ifdef DOCUMENTATION
27867#endif // DOCUMENTATION
27868
27869#ifndef DOCUMENTATION
27870 AsmDwarfConstructList.setDataPrototype(
27871 "SgAsmDwarfConstructPtrList", "list", "",
27872 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27873#endif // !DOCUMENTATION
27874
27875 DECLARE_OTHERS(AsmDwarfConstructList);
27876#if defined(SgAsmDwarfConstructList_OTHERS) || defined(DOCUMENTATION)
27877
27878 //----------------------- Boost serialization for SgAsmDwarfConstructList -----------------------
27879#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27880private:
27881 friend class boost::serialization::access;
27882
27883 template<class S>
27884 void serialize(S &s, const unsigned /*version*/) {
27885 debugSerializationBegin("SgAsmDwarfConstructList");
27886 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
27887 s & BOOST_SERIALIZATION_NVP(p_list);
27888 debugSerializationEnd("SgAsmDwarfConstructList");
27889 }
27890#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27891public:
27892public:
27893 SgAsmDwarfConstructPtrList const& get_list() const;
27894 SgAsmDwarfConstructPtrList& get_list();
27895 void set_list(SgAsmDwarfConstructPtrList const&);
27896
27897public:
27900
27901public:
27904
27905protected:
27913#endif // SgAsmDwarfConstructList_OTHERS
27914#ifdef DOCUMENTATION
27915};
27916#endif // DOCUMENTATION
27917
27918
27920// SgAsmDwarfConstant -- MACHINE GENERATED; DO NOT MODIFY --
27922
27923DECLARE_LEAF_CLASS(AsmDwarfConstant);
27924IS_SERIALIZABLE(AsmDwarfConstant);
27925
27926#ifndef DOCUMENTATION
27927AsmDwarfConstant.useSmallHeader(true);
27928#endif // !DOCUMENTATION
27929
27930#ifdef DOCUMENTATION
27932#endif // DOCUMENTATION
27933
27934 DECLARE_OTHERS(AsmDwarfConstant);
27935#if defined(SgAsmDwarfConstant_OTHERS) || defined(DOCUMENTATION)
27936
27937 //----------------------- Boost serialization for SgAsmDwarfConstant -----------------------
27938#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27939private:
27940 friend class boost::serialization::access;
27941
27942 template<class S>
27943 void serialize(S &s, const unsigned /*version*/) {
27944 debugSerializationBegin("SgAsmDwarfConstant");
27945 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27946 debugSerializationEnd("SgAsmDwarfConstant");
27947 }
27948#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27949
27950public:
27953
27954public:
27957
27958public:
27960 SgAsmDwarfConstant(int const& nesting_level,
27961 uint64_t const& offset,
27962 uint64_t const& overall_offset);
27963
27964protected:
27972#endif // SgAsmDwarfConstant_OTHERS
27973#ifdef DOCUMENTATION
27974};
27975#endif // DOCUMENTATION
27976
27977
27979// SgAsmDwarfCondition -- MACHINE GENERATED; DO NOT MODIFY --
27981
27982DECLARE_LEAF_CLASS(AsmDwarfCondition);
27983IS_SERIALIZABLE(AsmDwarfCondition);
27984
27985#ifndef DOCUMENTATION
27986AsmDwarfCondition.useSmallHeader(true);
27987#endif // !DOCUMENTATION
27988
27989#ifdef DOCUMENTATION
27991#endif // DOCUMENTATION
27992
27993 DECLARE_OTHERS(AsmDwarfCondition);
27994#if defined(SgAsmDwarfCondition_OTHERS) || defined(DOCUMENTATION)
27995
27996 //----------------------- Boost serialization for SgAsmDwarfCondition -----------------------
27997#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27998private:
27999 friend class boost::serialization::access;
28000
28001 template<class S>
28002 void serialize(S &s, const unsigned /*version*/) {
28003 debugSerializationBegin("SgAsmDwarfCondition");
28004 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28005 debugSerializationEnd("SgAsmDwarfCondition");
28006 }
28007#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28008
28009public:
28012
28013public:
28016
28017public:
28019 SgAsmDwarfCondition(int const& nesting_level,
28020 uint64_t const& offset,
28021 uint64_t const& overall_offset);
28022
28023protected:
28031#endif // SgAsmDwarfCondition_OTHERS
28032#ifdef DOCUMENTATION
28033};
28034#endif // DOCUMENTATION
28035
28036
28038// SgAsmDwarfCompilationUnitList -- MACHINE GENERATED; DO NOT MODIFY --
28040
28041DECLARE_LEAF_CLASS(AsmDwarfCompilationUnitList);
28042IS_SERIALIZABLE(AsmDwarfCompilationUnitList);
28043
28044#ifndef DOCUMENTATION
28045AsmDwarfCompilationUnitList.useSmallHeader(true);
28046#endif // !DOCUMENTATION
28047
28048DECLARE_HEADERS(AsmDwarfCompilationUnitList);
28049#if defined(SgAsmDwarfCompilationUnitList_HEADERS) || defined(DOCUMENTATION)
28050#include <sageContainer.h>
28051#endif // SgAsmDwarfCompilationUnitList_HEADERS
28052
28053#ifdef DOCUMENTATION
28055#endif // DOCUMENTATION
28056
28057#ifndef DOCUMENTATION
28058 AsmDwarfCompilationUnitList.setDataPrototype(
28059 "SgAsmDwarfCompilationUnitPtrList", "cu_list", "",
28060 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28061#endif // !DOCUMENTATION
28062
28063 DECLARE_OTHERS(AsmDwarfCompilationUnitList);
28064#if defined(SgAsmDwarfCompilationUnitList_OTHERS) || defined(DOCUMENTATION)
28065
28066 //----------------------- Boost serialization for SgAsmDwarfCompilationUnitList -----------------------
28067#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28068private:
28069 friend class boost::serialization::access;
28070
28071 template<class S>
28072 void serialize(S &s, const unsigned /*version*/) {
28073 debugSerializationBegin("SgAsmDwarfCompilationUnitList");
28074 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
28075 s & BOOST_SERIALIZATION_NVP(p_cu_list);
28076 debugSerializationEnd("SgAsmDwarfCompilationUnitList");
28077 }
28078#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28079public:
28080public:
28081 SgAsmDwarfCompilationUnitPtrList const& get_cu_list() const;
28082 SgAsmDwarfCompilationUnitPtrList& get_cu_list();
28083 void set_cu_list(SgAsmDwarfCompilationUnitPtrList const&);
28084
28085public:
28088
28089public:
28092
28093protected:
28101#endif // SgAsmDwarfCompilationUnitList_OTHERS
28102#ifdef DOCUMENTATION
28103};
28104#endif // DOCUMENTATION
28105
28106
28108// SgAsmDwarfCompilationUnit -- MACHINE GENERATED; DO NOT MODIFY --
28110
28111DECLARE_LEAF_CLASS(AsmDwarfCompilationUnit);
28112IS_SERIALIZABLE(AsmDwarfCompilationUnit);
28113
28114#ifndef DOCUMENTATION
28115AsmDwarfCompilationUnit.useSmallHeader(true);
28116#endif // !DOCUMENTATION
28117
28118DECLARE_HEADERS(AsmDwarfCompilationUnit);
28119#if defined(SgAsmDwarfCompilationUnit_HEADERS) || defined(DOCUMENTATION)
28120#ifdef ROSE_SgAsmDwarfCompilationUnit_IMPL
28121#include <SgAsmDwarfConstructList.h>
28122#include <SgAsmDwarfLineList.h>
28123#include <SgAsmDwarfMacroList.h>
28124#endif
28125#endif // SgAsmDwarfCompilationUnit_HEADERS
28126
28127#ifdef DOCUMENTATION
28129#endif // DOCUMENTATION
28130
28131#ifndef DOCUMENTATION
28132 AsmDwarfCompilationUnit.setDataPrototype(
28133 "std::string", "producer", "",
28134 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28135#endif // !DOCUMENTATION
28136
28137#ifndef DOCUMENTATION
28138 AsmDwarfCompilationUnit.setDataPrototype(
28139 "std::string", "language", "",
28140 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28141#endif // !DOCUMENTATION
28142
28143#ifndef DOCUMENTATION
28144 AsmDwarfCompilationUnit.setDataPrototype(
28145 "uint64_t", "low_pc", "= 0",
28146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28147#endif // !DOCUMENTATION
28148
28149#ifndef DOCUMENTATION
28150 AsmDwarfCompilationUnit.setDataPrototype(
28151 "uint64_t", "hi_pc", "= 0",
28152 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28153#endif // !DOCUMENTATION
28154
28155#ifndef DOCUMENTATION
28156 AsmDwarfCompilationUnit.setDataPrototype(
28157 "int", "version_stamp", "= 0",
28158 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28159#endif // !DOCUMENTATION
28160
28161#ifndef DOCUMENTATION
28162 AsmDwarfCompilationUnit.setDataPrototype(
28163 "uint64_t", "abbrev_offset", "= 0",
28164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28165#endif // !DOCUMENTATION
28166
28167#ifndef DOCUMENTATION
28168 AsmDwarfCompilationUnit.setDataPrototype(
28169 "uint64_t", "address_size", "= 0",
28170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28171#endif // !DOCUMENTATION
28172
28173#ifndef DOCUMENTATION
28174 AsmDwarfCompilationUnit.setDataPrototype(
28175 "uint64_t", "offset_length", "= 0",
28176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28177#endif // !DOCUMENTATION
28178
28179#ifndef DOCUMENTATION
28180 AsmDwarfCompilationUnit.setDataPrototype(
28181 "SgAsmDwarfLineList*", "line_info", "= nullptr",
28182 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28183#endif // !DOCUMENTATION
28184
28185#ifndef DOCUMENTATION
28186 AsmDwarfCompilationUnit.setDataPrototype(
28187 "SgAsmDwarfConstructList*", "language_constructs", "= nullptr",
28188 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28189#endif // !DOCUMENTATION
28190
28191#ifndef DOCUMENTATION
28192 AsmDwarfCompilationUnit.setDataPrototype(
28193 "SgAsmDwarfMacroList*", "macro_info", "= nullptr",
28194 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28195#endif // !DOCUMENTATION
28196
28197 DECLARE_OTHERS(AsmDwarfCompilationUnit);
28198#if defined(SgAsmDwarfCompilationUnit_OTHERS) || defined(DOCUMENTATION)
28199
28200 //----------------------- Boost serialization for SgAsmDwarfCompilationUnit -----------------------
28201#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28202private:
28203 friend class boost::serialization::access;
28204
28205 template<class S>
28206 void serialize(S &s, const unsigned /*version*/) {
28207 debugSerializationBegin("SgAsmDwarfCompilationUnit");
28208 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28209 s & BOOST_SERIALIZATION_NVP(p_producer);
28210 s & BOOST_SERIALIZATION_NVP(p_language);
28211 s & BOOST_SERIALIZATION_NVP(p_low_pc);
28212 s & BOOST_SERIALIZATION_NVP(p_hi_pc);
28213 s & BOOST_SERIALIZATION_NVP(p_version_stamp);
28214 s & BOOST_SERIALIZATION_NVP(p_abbrev_offset);
28215 s & BOOST_SERIALIZATION_NVP(p_address_size);
28216 s & BOOST_SERIALIZATION_NVP(p_offset_length);
28217 s & BOOST_SERIALIZATION_NVP(p_line_info);
28218 s & BOOST_SERIALIZATION_NVP(p_language_constructs);
28219 s & BOOST_SERIALIZATION_NVP(p_macro_info);
28220 debugSerializationEnd("SgAsmDwarfCompilationUnit");
28221 }
28222#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28223public:
28224public:
28225 std::string const& get_producer() const;
28226 void set_producer(std::string const&);
28227
28228public:
28229 std::string const& get_language() const;
28230 void set_language(std::string const&);
28231
28232public:
28233 uint64_t const& get_low_pc() const;
28234 void set_low_pc(uint64_t const&);
28235
28236public:
28237 uint64_t const& get_hi_pc() const;
28238 void set_hi_pc(uint64_t const&);
28239
28240public:
28241 int const& get_version_stamp() const;
28242 void set_version_stamp(int const&);
28243
28244public:
28245 uint64_t const& get_abbrev_offset() const;
28246 void set_abbrev_offset(uint64_t const&);
28247
28248public:
28249 uint64_t const& get_address_size() const;
28250 void set_address_size(uint64_t const&);
28251
28252public:
28253 uint64_t const& get_offset_length() const;
28254 void set_offset_length(uint64_t const&);
28255
28256public:
28257 SgAsmDwarfLineList* const& get_line_info() const;
28258 void set_line_info(SgAsmDwarfLineList* const&);
28259
28260public:
28261 SgAsmDwarfConstructList* const& get_language_constructs() const;
28262 void set_language_constructs(SgAsmDwarfConstructList* const&);
28263
28264public:
28265 SgAsmDwarfMacroList* const& get_macro_info() const;
28266 void set_macro_info(SgAsmDwarfMacroList* const&);
28267public:
28268 SgAsmDwarfConstructList* get_children() override;
28269public:
28272
28273public:
28276
28277public:
28279 SgAsmDwarfCompilationUnit(int const& nesting_level,
28280 uint64_t const& offset,
28281 uint64_t const& overall_offset);
28282
28283protected:
28291#endif // SgAsmDwarfCompilationUnit_OTHERS
28292#ifdef DOCUMENTATION
28293};
28294#endif // DOCUMENTATION
28295
28296
28298// SgAsmDwarfCommonInclusion -- MACHINE GENERATED; DO NOT MODIFY --
28300
28301DECLARE_LEAF_CLASS(AsmDwarfCommonInclusion);
28302IS_SERIALIZABLE(AsmDwarfCommonInclusion);
28303
28304#ifndef DOCUMENTATION
28305AsmDwarfCommonInclusion.useSmallHeader(true);
28306#endif // !DOCUMENTATION
28307
28308#ifdef DOCUMENTATION
28310#endif // DOCUMENTATION
28311
28312 DECLARE_OTHERS(AsmDwarfCommonInclusion);
28313#if defined(SgAsmDwarfCommonInclusion_OTHERS) || defined(DOCUMENTATION)
28314
28315 //----------------------- Boost serialization for SgAsmDwarfCommonInclusion -----------------------
28316#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28317private:
28318 friend class boost::serialization::access;
28319
28320 template<class S>
28321 void serialize(S &s, const unsigned /*version*/) {
28322 debugSerializationBegin("SgAsmDwarfCommonInclusion");
28323 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28324 debugSerializationEnd("SgAsmDwarfCommonInclusion");
28325 }
28326#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28327
28328public:
28331
28332public:
28335
28336public:
28338 SgAsmDwarfCommonInclusion(int const& nesting_level,
28339 uint64_t const& offset,
28340 uint64_t const& overall_offset);
28341
28342protected:
28350#endif // SgAsmDwarfCommonInclusion_OTHERS
28351#ifdef DOCUMENTATION
28352};
28353#endif // DOCUMENTATION
28354
28355
28357// SgAsmDwarfCommonBlock -- MACHINE GENERATED; DO NOT MODIFY --
28359
28360DECLARE_LEAF_CLASS(AsmDwarfCommonBlock);
28361IS_SERIALIZABLE(AsmDwarfCommonBlock);
28362
28363#ifndef DOCUMENTATION
28364AsmDwarfCommonBlock.useSmallHeader(true);
28365#endif // !DOCUMENTATION
28366
28367DECLARE_HEADERS(AsmDwarfCommonBlock);
28368#if defined(SgAsmDwarfCommonBlock_HEADERS) || defined(DOCUMENTATION)
28369#ifdef ROSE_SgAsmDwarfCommonBlock_IMPL
28370#include <SgAsmDwarfConstructList.h>
28371#endif
28372#endif // SgAsmDwarfCommonBlock_HEADERS
28373
28374#ifdef DOCUMENTATION
28376#endif // DOCUMENTATION
28377
28378#ifndef DOCUMENTATION
28379 AsmDwarfCommonBlock.setDataPrototype(
28380 "SgAsmDwarfConstructList*", "body", "= NULL",
28381 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28382#endif // !DOCUMENTATION
28383
28384 DECLARE_OTHERS(AsmDwarfCommonBlock);
28385#if defined(SgAsmDwarfCommonBlock_OTHERS) || defined(DOCUMENTATION)
28386
28387 //----------------------- Boost serialization for SgAsmDwarfCommonBlock -----------------------
28388#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28389private:
28390 friend class boost::serialization::access;
28391
28392 template<class S>
28393 void serialize(S &s, const unsigned /*version*/) {
28394 debugSerializationBegin("SgAsmDwarfCommonBlock");
28395 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28396 s & BOOST_SERIALIZATION_NVP(p_body);
28397 debugSerializationEnd("SgAsmDwarfCommonBlock");
28398 }
28399#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28400public:
28401public:
28402 SgAsmDwarfConstructList* const& get_body() const;
28403 void set_body(SgAsmDwarfConstructList* const&);
28404public:
28405 SgAsmDwarfConstructList* get_children() override;
28406public:
28409
28410public:
28413
28414public:
28416 SgAsmDwarfCommonBlock(int const& nesting_level,
28417 uint64_t const& offset,
28418 uint64_t const& overall_offset);
28419
28420protected:
28428#endif // SgAsmDwarfCommonBlock_OTHERS
28429#ifdef DOCUMENTATION
28430};
28431#endif // DOCUMENTATION
28432
28433
28435// SgAsmDwarfClassType -- MACHINE GENERATED; DO NOT MODIFY --
28437
28438DECLARE_LEAF_CLASS(AsmDwarfClassType);
28439IS_SERIALIZABLE(AsmDwarfClassType);
28440
28441#ifndef DOCUMENTATION
28442AsmDwarfClassType.useSmallHeader(true);
28443#endif // !DOCUMENTATION
28444
28445DECLARE_HEADERS(AsmDwarfClassType);
28446#if defined(SgAsmDwarfClassType_HEADERS) || defined(DOCUMENTATION)
28447#ifdef ROSE_SgAsmDwarfClassType_IMPL
28448#include <SgAsmDwarfConstructList.h>
28449#endif
28450#endif // SgAsmDwarfClassType_HEADERS
28451
28452#ifdef DOCUMENTATION
28454#endif // DOCUMENTATION
28455
28456#ifndef DOCUMENTATION
28457 AsmDwarfClassType.setDataPrototype(
28458 "SgAsmDwarfConstructList*", "body", "= nullptr",
28459 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28460#endif // !DOCUMENTATION
28461
28462 DECLARE_OTHERS(AsmDwarfClassType);
28463#if defined(SgAsmDwarfClassType_OTHERS) || defined(DOCUMENTATION)
28464
28465 //----------------------- Boost serialization for SgAsmDwarfClassType -----------------------
28466#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28467private:
28468 friend class boost::serialization::access;
28469
28470 template<class S>
28471 void serialize(S &s, const unsigned /*version*/) {
28472 debugSerializationBegin("SgAsmDwarfClassType");
28473 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28474 s & BOOST_SERIALIZATION_NVP(p_body);
28475 debugSerializationEnd("SgAsmDwarfClassType");
28476 }
28477#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28478public:
28479public:
28480 SgAsmDwarfConstructList* const& get_body() const;
28481 void set_body(SgAsmDwarfConstructList* const&);
28482public:
28483 SgAsmDwarfConstructList* get_children() override;
28484public:
28487
28488public:
28491
28492public:
28494 SgAsmDwarfClassType(int const& nesting_level,
28495 uint64_t const& offset,
28496 uint64_t const& overall_offset);
28497
28498protected:
28506#endif // SgAsmDwarfClassType_OTHERS
28507#ifdef DOCUMENTATION
28508};
28509#endif // DOCUMENTATION
28510
28511
28513// SgAsmDwarfClassTemplate -- MACHINE GENERATED; DO NOT MODIFY --
28515
28516DECLARE_LEAF_CLASS(AsmDwarfClassTemplate);
28517IS_SERIALIZABLE(AsmDwarfClassTemplate);
28518
28519#ifndef DOCUMENTATION
28520AsmDwarfClassTemplate.useSmallHeader(true);
28521#endif // !DOCUMENTATION
28522
28523#ifdef DOCUMENTATION
28525#endif // DOCUMENTATION
28526
28527 DECLARE_OTHERS(AsmDwarfClassTemplate);
28528#if defined(SgAsmDwarfClassTemplate_OTHERS) || defined(DOCUMENTATION)
28529
28530 //----------------------- Boost serialization for SgAsmDwarfClassTemplate -----------------------
28531#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28532private:
28533 friend class boost::serialization::access;
28534
28535 template<class S>
28536 void serialize(S &s, const unsigned /*version*/) {
28537 debugSerializationBegin("SgAsmDwarfClassTemplate");
28538 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28539 debugSerializationEnd("SgAsmDwarfClassTemplate");
28540 }
28541#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28542
28543public:
28546
28547public:
28550
28551public:
28553 SgAsmDwarfClassTemplate(int const& nesting_level,
28554 uint64_t const& offset,
28555 uint64_t const& overall_offset);
28556
28557protected:
28565#endif // SgAsmDwarfClassTemplate_OTHERS
28566#ifdef DOCUMENTATION
28567};
28568#endif // DOCUMENTATION
28569
28570
28572// SgAsmDwarfCatchBlock -- MACHINE GENERATED; DO NOT MODIFY --
28574
28575DECLARE_LEAF_CLASS(AsmDwarfCatchBlock);
28576IS_SERIALIZABLE(AsmDwarfCatchBlock);
28577
28578#ifndef DOCUMENTATION
28579AsmDwarfCatchBlock.useSmallHeader(true);
28580#endif // !DOCUMENTATION
28581
28582#ifdef DOCUMENTATION
28584#endif // DOCUMENTATION
28585
28586 DECLARE_OTHERS(AsmDwarfCatchBlock);
28587#if defined(SgAsmDwarfCatchBlock_OTHERS) || defined(DOCUMENTATION)
28588
28589 //----------------------- Boost serialization for SgAsmDwarfCatchBlock -----------------------
28590#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28591private:
28592 friend class boost::serialization::access;
28593
28594 template<class S>
28595 void serialize(S &s, const unsigned /*version*/) {
28596 debugSerializationBegin("SgAsmDwarfCatchBlock");
28597 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28598 debugSerializationEnd("SgAsmDwarfCatchBlock");
28599 }
28600#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28601
28602public:
28605
28606public:
28609
28610public:
28612 SgAsmDwarfCatchBlock(int const& nesting_level,
28613 uint64_t const& offset,
28614 uint64_t const& overall_offset);
28615
28616protected:
28624#endif // SgAsmDwarfCatchBlock_OTHERS
28625#ifdef DOCUMENTATION
28626};
28627#endif // DOCUMENTATION
28628
28629
28631// SgAsmDwarfBaseType -- MACHINE GENERATED; DO NOT MODIFY --
28633
28634DECLARE_LEAF_CLASS(AsmDwarfBaseType);
28635IS_SERIALIZABLE(AsmDwarfBaseType);
28636
28637#ifndef DOCUMENTATION
28638AsmDwarfBaseType.useSmallHeader(true);
28639#endif // !DOCUMENTATION
28640
28641#ifdef DOCUMENTATION
28643#endif // DOCUMENTATION
28644
28645 DECLARE_OTHERS(AsmDwarfBaseType);
28646#if defined(SgAsmDwarfBaseType_OTHERS) || defined(DOCUMENTATION)
28647
28648 //----------------------- Boost serialization for SgAsmDwarfBaseType -----------------------
28649#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28650private:
28651 friend class boost::serialization::access;
28652
28653 template<class S>
28654 void serialize(S &s, const unsigned /*version*/) {
28655 debugSerializationBegin("SgAsmDwarfBaseType");
28656 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28657 debugSerializationEnd("SgAsmDwarfBaseType");
28658 }
28659#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28660
28661public:
28664
28665public:
28668
28669public:
28671 SgAsmDwarfBaseType(int const& nesting_level,
28672 uint64_t const& offset,
28673 uint64_t const& overall_offset);
28674
28675protected:
28683#endif // SgAsmDwarfBaseType_OTHERS
28684#ifdef DOCUMENTATION
28685};
28686#endif // DOCUMENTATION
28687
28688
28690// SgAsmDwarfArrayType -- MACHINE GENERATED; DO NOT MODIFY --
28692
28693DECLARE_LEAF_CLASS(AsmDwarfArrayType);
28694IS_SERIALIZABLE(AsmDwarfArrayType);
28695
28696#ifndef DOCUMENTATION
28697AsmDwarfArrayType.useSmallHeader(true);
28698#endif // !DOCUMENTATION
28699
28700DECLARE_HEADERS(AsmDwarfArrayType);
28701#if defined(SgAsmDwarfArrayType_HEADERS) || defined(DOCUMENTATION)
28702#ifdef ROSE_SgAsmDwarfArrayType_IMPL
28703#include <SgAsmDwarfConstructList.h>
28704#endif
28705#endif // SgAsmDwarfArrayType_HEADERS
28706
28707#ifdef DOCUMENTATION
28709#endif // DOCUMENTATION
28710
28711#ifndef DOCUMENTATION
28712 AsmDwarfArrayType.setDataPrototype(
28713 "SgAsmDwarfConstructList*", "body", "= nullptr",
28714 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28715#endif // !DOCUMENTATION
28716
28717 DECLARE_OTHERS(AsmDwarfArrayType);
28718#if defined(SgAsmDwarfArrayType_OTHERS) || defined(DOCUMENTATION)
28719
28720 //----------------------- Boost serialization for SgAsmDwarfArrayType -----------------------
28721#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28722private:
28723 friend class boost::serialization::access;
28724
28725 template<class S>
28726 void serialize(S &s, const unsigned /*version*/) {
28727 debugSerializationBegin("SgAsmDwarfArrayType");
28728 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28729 s & BOOST_SERIALIZATION_NVP(p_body);
28730 debugSerializationEnd("SgAsmDwarfArrayType");
28731 }
28732#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28733public:
28734public:
28735 SgAsmDwarfConstructList* const& get_body() const;
28736 void set_body(SgAsmDwarfConstructList* const&);
28737public:
28738 SgAsmDwarfConstructList* get_children() override;
28739public:
28742
28743public:
28746
28747public:
28749 SgAsmDwarfArrayType(int const& nesting_level,
28750 uint64_t const& offset,
28751 uint64_t const& overall_offset);
28752
28753protected:
28761#endif // SgAsmDwarfArrayType_OTHERS
28762#ifdef DOCUMENTATION
28763};
28764#endif // DOCUMENTATION
28765
28766
28768// SgAsmDwarfAccessDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
28770
28771DECLARE_LEAF_CLASS(AsmDwarfAccessDeclaration);
28772IS_SERIALIZABLE(AsmDwarfAccessDeclaration);
28773
28774#ifndef DOCUMENTATION
28775AsmDwarfAccessDeclaration.useSmallHeader(true);
28776#endif // !DOCUMENTATION
28777
28778#ifdef DOCUMENTATION
28780#endif // DOCUMENTATION
28781
28782 DECLARE_OTHERS(AsmDwarfAccessDeclaration);
28783#if defined(SgAsmDwarfAccessDeclaration_OTHERS) || defined(DOCUMENTATION)
28784
28785 //----------------------- Boost serialization for SgAsmDwarfAccessDeclaration -----------------------
28786#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28787private:
28788 friend class boost::serialization::access;
28789
28790 template<class S>
28791 void serialize(S &s, const unsigned /*version*/) {
28792 debugSerializationBegin("SgAsmDwarfAccessDeclaration");
28793 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28794 debugSerializationEnd("SgAsmDwarfAccessDeclaration");
28795 }
28796#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28797
28798public:
28801
28802public:
28805
28806public:
28808 SgAsmDwarfAccessDeclaration(int const& nesting_level,
28809 uint64_t const& offset,
28810 uint64_t const& overall_offset);
28811
28812protected:
28820#endif // SgAsmDwarfAccessDeclaration_OTHERS
28821#ifdef DOCUMENTATION
28822};
28823#endif // DOCUMENTATION
28824
28825
28827// SgAsmDwarfConstruct -- MACHINE GENERATED; DO NOT MODIFY --
28829
28830#ifndef DOCUMENTATION
28831AstNodeClass& AsmDwarfConstruct = nonTerminalConstructor(
28832 "AsmDwarfConstruct",
28833 *this,
28834 "AsmDwarfConstruct",
28835 "AsmDwarfConstructTag",
28836 SubclassListBuilder()
28837 | AsmDwarfAccessDeclaration
28838 | AsmDwarfArrayType
28839 | AsmDwarfBaseType
28840 | AsmDwarfCatchBlock
28841 | AsmDwarfClassTemplate
28842 | AsmDwarfClassType
28843 | AsmDwarfCommonBlock
28844 | AsmDwarfCommonInclusion
28845 | AsmDwarfCompilationUnit
28846 | AsmDwarfCondition
28847 | AsmDwarfConstant
28848 | AsmDwarfConstType
28849 | AsmDwarfDwarfProcedure
28850 | AsmDwarfEntryPoint
28851 | AsmDwarfEnumerationType
28852 | AsmDwarfEnumerator
28853 | AsmDwarfFileType
28854 | AsmDwarfFormalParameter
28855 | AsmDwarfFormatLabel
28856 | AsmDwarfFriend
28857 | AsmDwarfFunctionTemplate
28858 | AsmDwarfImportedDeclaration
28859 | AsmDwarfImportedModule
28860 | AsmDwarfImportedUnit
28861 | AsmDwarfInheritance
28862 | AsmDwarfInlinedSubroutine
28863 | AsmDwarfInterfaceType
28864 | AsmDwarfLabel
28865 | AsmDwarfLexicalBlock
28866 | AsmDwarfMember
28867 | AsmDwarfModule
28868 | AsmDwarfMutableType
28869 | AsmDwarfNamelist
28870 | AsmDwarfNamelistItem
28871 | AsmDwarfNamespace
28872 | AsmDwarfPackedType
28873 | AsmDwarfPartialUnit
28874 | AsmDwarfPointerType
28875 | AsmDwarfPtrToMemberType
28876 | AsmDwarfReferenceType
28877 | AsmDwarfRestrictType
28878 | AsmDwarfSetType
28879 | AsmDwarfSharedType
28880 | AsmDwarfStringType
28881 | AsmDwarfStructureType
28882 | AsmDwarfSubprogram
28883 | AsmDwarfSubrangeType
28884 | AsmDwarfSubroutineType
28885 | AsmDwarfTemplateTypeParameter
28886 | AsmDwarfTemplateValueParameter
28887 | AsmDwarfThrownType
28888 | AsmDwarfTryBlock
28889 | AsmDwarfTypedef
28890 | AsmDwarfUnionType
28891 | AsmDwarfUnknownConstruct
28892 | AsmDwarfUnspecifiedParameters
28893 | AsmDwarfUnspecifiedType
28894 | AsmDwarfUpcRelaxedType
28895 | AsmDwarfUpcSharedType
28896 | AsmDwarfUpcStrictType
28897 | AsmDwarfVariable
28898 | AsmDwarfVariant
28899 | AsmDwarfVariantPart
28900 | AsmDwarfVolatileType
28901 | AsmDwarfWithStmt
28902 , false);
28903assert(AsmDwarfConstruct.associatedGrammar != nullptr);
28904AsmDwarfConstruct.setCppCondition("!defined(DOCUMENTATION)");
28905AsmDwarfConstruct.isBoostSerializable(true);
28906AsmDwarfConstruct.setAutomaticGenerationOfConstructor(false);
28907AsmDwarfConstruct.setAutomaticGenerationOfDestructor(false);
28908#endif // !DOCUMENTATION
28909
28910#ifndef DOCUMENTATION
28911AsmDwarfConstruct.useSmallHeader(true);
28912#endif // !DOCUMENTATION
28913
28914#ifdef DOCUMENTATION
28916#endif // DOCUMENTATION
28917
28918#ifndef DOCUMENTATION
28919 AsmDwarfConstruct.setDataPrototype(
28920 "int", "nesting_level", "= 0",
28921 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28922#endif // !DOCUMENTATION
28923
28924#ifndef DOCUMENTATION
28925 AsmDwarfConstruct.setDataPrototype(
28926 "uint64_t", "offset", "= 0",
28927 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28928#endif // !DOCUMENTATION
28929
28930#ifndef DOCUMENTATION
28931 AsmDwarfConstruct.setDataPrototype(
28932 "uint64_t", "overall_offset", "= 0",
28933 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28934#endif // !DOCUMENTATION
28935
28936#ifndef DOCUMENTATION
28937 AsmDwarfConstruct.setDataPrototype(
28938 "std::string", "name", "",
28939 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28940#endif // !DOCUMENTATION
28941
28942#ifndef DOCUMENTATION
28943 AsmDwarfConstruct.setDataPrototype(
28944 "SgAsmDwarfLine*", "source_position", "= nullptr",
28945 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28946#endif // !DOCUMENTATION
28947
28948 DECLARE_OTHERS(AsmDwarfConstruct);
28949#if defined(SgAsmDwarfConstruct_OTHERS) || defined(DOCUMENTATION)
28950
28951 //----------------------- Boost serialization for SgAsmDwarfConstruct -----------------------
28952#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28953private:
28954 friend class boost::serialization::access;
28955
28956 template<class S>
28957 void serialize(S &s, const unsigned /*version*/) {
28958 debugSerializationBegin("SgAsmDwarfConstruct");
28959 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
28960 s & BOOST_SERIALIZATION_NVP(p_nesting_level);
28961 s & BOOST_SERIALIZATION_NVP(p_offset);
28962 s & BOOST_SERIALIZATION_NVP(p_overall_offset);
28963 s & BOOST_SERIALIZATION_NVP(p_name);
28964 s & BOOST_SERIALIZATION_NVP(p_source_position);
28965 debugSerializationEnd("SgAsmDwarfConstruct");
28966 }
28967#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28968public:
28969 // For now we will store the nesting level (just to support debugging), then it will be removed.
28970public:
28971 int const& get_nesting_level() const;
28972 void set_nesting_level(int const&);
28973
28974public:
28975 uint64_t const& get_offset() const;
28976 void set_offset(uint64_t const&);
28977
28978public:
28979 uint64_t const& get_overall_offset() const;
28980 void set_overall_offset(uint64_t const&);
28981 // A lot of constructs have a name so put the name into the base class
28982public:
28983 std::string const& get_name() const;
28984 void set_name(std::string const&);
28985 // This is a data member that can be filled in via a separate analysis (we would have to read the line information before
28986 // hand).
28987public:
28988 SgAsmDwarfLine* const& get_source_position() const;
28989 void set_source_position(SgAsmDwarfLine* const&);
28990 // [Robb Matzke 2023-03-22]: SgNode already has an attributeMechanism
28991 // [[using Rosebud: rosetta]]
28992 // AstAttributeMechanism* attributeMechanism = nullptr;
28993
28994public:
28996 static SgAsmDwarfConstruct* createDwarfConstruct( int tag, int nesting_level, uint64_t offset, uint64_t overall_offset );
28997
28998 virtual SgAsmDwarfConstructList* get_children();
28999public:
29002
29003protected:
29006
29007protected:
29009 SgAsmDwarfConstruct(int const& nesting_level,
29010 uint64_t const& offset,
29011 uint64_t const& overall_offset);
29012
29013protected:
29021#endif // SgAsmDwarfConstruct_OTHERS
29022#ifdef DOCUMENTATION
29023};
29024#endif // DOCUMENTATION
29025
29026
29028// SgAsmDwarfInformation -- MACHINE GENERATED; DO NOT MODIFY --
29030
29031#ifndef DOCUMENTATION
29032AstNodeClass& AsmDwarfInformation = nonTerminalConstructor(
29033 "AsmDwarfInformation",
29034 *this,
29035 "AsmDwarfInformation",
29036 "AsmDwarfInformationTag",
29037 SubclassListBuilder()
29038 | AsmDwarfCompilationUnitList
29039 | AsmDwarfConstruct
29040 | AsmDwarfConstructList
29041 | AsmDwarfLine
29042 | AsmDwarfLineList
29043 | AsmDwarfMacro
29044 | AsmDwarfMacroList
29045 , false);
29046assert(AsmDwarfInformation.associatedGrammar != nullptr);
29047AsmDwarfInformation.setCppCondition("!defined(DOCUMENTATION)");
29048AsmDwarfInformation.isBoostSerializable(true);
29049AsmDwarfInformation.setAutomaticGenerationOfConstructor(false);
29050AsmDwarfInformation.setAutomaticGenerationOfDestructor(false);
29051#endif // !DOCUMENTATION
29052
29053#ifndef DOCUMENTATION
29054AsmDwarfInformation.useSmallHeader(true);
29055#endif // !DOCUMENTATION
29056
29057#ifdef DOCUMENTATION
29059#endif // DOCUMENTATION
29060
29061 DECLARE_OTHERS(AsmDwarfInformation);
29062#if defined(SgAsmDwarfInformation_OTHERS) || defined(DOCUMENTATION)
29063
29064 //----------------------- Boost serialization for SgAsmDwarfInformation -----------------------
29065#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29066private:
29067 friend class boost::serialization::access;
29068
29069 template<class S>
29070 void serialize(S &s, const unsigned /*version*/) {
29071 debugSerializationBegin("SgAsmDwarfInformation");
29072 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
29073 debugSerializationEnd("SgAsmDwarfInformation");
29074 }
29075#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29076
29077public:
29080
29081protected:
29084
29085protected:
29093#endif // SgAsmDwarfInformation_OTHERS
29094#ifdef DOCUMENTATION
29095};
29096#endif // DOCUMENTATION
29097
29098
29100// SgAsmDOSFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
29102
29103DECLARE_LEAF_CLASS(AsmDOSFileHeader);
29104IS_SERIALIZABLE(AsmDOSFileHeader);
29105
29106#ifndef DOCUMENTATION
29107AsmDOSFileHeader.useSmallHeader(true);
29108#endif // !DOCUMENTATION
29109
29110DECLARE_HEADERS(AsmDOSFileHeader);
29111#if defined(SgAsmDOSFileHeader_HEADERS) || defined(DOCUMENTATION)
29112#include <Rose/BinaryAnalysis/Address.h>
29113#endif // SgAsmDOSFileHeader_HEADERS
29114
29115#ifdef DOCUMENTATION
29121#endif // DOCUMENTATION
29122
29123#ifndef DOCUMENTATION
29124 AsmDOSFileHeader.setDataPrototype(
29125 "uint16_t", "e_last_page_size", "= 0",
29126 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29127#endif // !DOCUMENTATION
29128
29129#ifndef DOCUMENTATION
29130 AsmDOSFileHeader.setDataPrototype(
29131 "uint16_t", "e_total_pages", "= 0",
29132 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29133#endif // !DOCUMENTATION
29134
29135#ifndef DOCUMENTATION
29136 AsmDOSFileHeader.setDataPrototype(
29137 "uint16_t", "e_nrelocs", "= 0",
29138 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29139#endif // !DOCUMENTATION
29140
29141#ifndef DOCUMENTATION
29142 AsmDOSFileHeader.setDataPrototype(
29143 "uint16_t", "e_header_paragraphs", "= 0",
29144 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29145#endif // !DOCUMENTATION
29146
29147#ifndef DOCUMENTATION
29148 AsmDOSFileHeader.setDataPrototype(
29149 "uint16_t", "e_minalloc", "= 0",
29150 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29151#endif // !DOCUMENTATION
29152
29153#ifndef DOCUMENTATION
29154 AsmDOSFileHeader.setDataPrototype(
29155 "uint16_t", "e_maxalloc", "= 0",
29156 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29157#endif // !DOCUMENTATION
29158
29159#ifndef DOCUMENTATION
29160 AsmDOSFileHeader.setDataPrototype(
29161 "uint16_t", "e_ss", "= 0",
29162 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29163#endif // !DOCUMENTATION
29164
29165#ifndef DOCUMENTATION
29166 AsmDOSFileHeader.setDataPrototype(
29167 "uint16_t", "e_sp", "= 0",
29168 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29169#endif // !DOCUMENTATION
29170
29171#ifndef DOCUMENTATION
29172 AsmDOSFileHeader.setDataPrototype(
29173 "uint16_t", "e_cksum", "= 0",
29174 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29175#endif // !DOCUMENTATION
29176
29177#ifndef DOCUMENTATION
29178 AsmDOSFileHeader.setDataPrototype(
29179 "uint16_t", "e_ip", "= 0",
29180 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29181#endif // !DOCUMENTATION
29182
29183#ifndef DOCUMENTATION
29184 AsmDOSFileHeader.setDataPrototype(
29185 "uint16_t", "e_cs", "= 0",
29186 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29187#endif // !DOCUMENTATION
29188
29189#ifndef DOCUMENTATION
29190 AsmDOSFileHeader.setDataPrototype(
29191 "uint16_t", "e_overlay", "= 0",
29192 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29193#endif // !DOCUMENTATION
29194
29195#ifndef DOCUMENTATION
29196 AsmDOSFileHeader.setDataPrototype(
29197 "Rose::BinaryAnalysis::Address", "e_relocs_offset", "= 0",
29198 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29199#endif // !DOCUMENTATION
29200
29201#ifndef DOCUMENTATION
29202 AsmDOSFileHeader.setDataPrototype(
29203 "unsigned", "e_res1", "= 0",
29204 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29205#endif // !DOCUMENTATION
29206
29207#ifndef DOCUMENTATION
29208 AsmDOSFileHeader.setDataPrototype(
29209 "SgAsmGenericSection*", "relocs", "= nullptr",
29210 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29211#endif // !DOCUMENTATION
29212
29213#ifndef DOCUMENTATION
29214 AsmDOSFileHeader.setDataPrototype(
29215 "SgAsmGenericSection*", "rm_section", "= nullptr",
29216 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29217#endif // !DOCUMENTATION
29218
29219 DECLARE_OTHERS(AsmDOSFileHeader);
29220#if defined(SgAsmDOSFileHeader_OTHERS) || defined(DOCUMENTATION)
29221
29222 //----------------------- Boost serialization for SgAsmDOSFileHeader -----------------------
29223#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29224private:
29225 friend class boost::serialization::access;
29226
29227 template<class S>
29228 void serialize(S &s, const unsigned /*version*/) {
29229 debugSerializationBegin("SgAsmDOSFileHeader");
29230 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
29231 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
29232 s & BOOST_SERIALIZATION_NVP(p_e_total_pages);
29233 s & BOOST_SERIALIZATION_NVP(p_e_nrelocs);
29234 s & BOOST_SERIALIZATION_NVP(p_e_header_paragraphs);
29235 s & BOOST_SERIALIZATION_NVP(p_e_minalloc);
29236 s & BOOST_SERIALIZATION_NVP(p_e_maxalloc);
29237 s & BOOST_SERIALIZATION_NVP(p_e_ss);
29238 s & BOOST_SERIALIZATION_NVP(p_e_sp);
29239 s & BOOST_SERIALIZATION_NVP(p_e_cksum);
29240 s & BOOST_SERIALIZATION_NVP(p_e_ip);
29241 s & BOOST_SERIALIZATION_NVP(p_e_cs);
29242 s & BOOST_SERIALIZATION_NVP(p_e_overlay);
29243 s & BOOST_SERIALIZATION_NVP(p_e_relocs_offset);
29244 s & BOOST_SERIALIZATION_NVP(p_e_res1);
29245 s & BOOST_SERIALIZATION_NVP(p_relocs);
29246 s & BOOST_SERIALIZATION_NVP(p_rm_section);
29247 debugSerializationEnd("SgAsmDOSFileHeader");
29248 }
29249#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29251 // Local types
29253public:
29254#ifdef _MSC_VER
29255# pragma pack (1)
29256#endif
29259 unsigned char e_magic[2];
29260 uint16_t e_last_page_size; //
29262 uint16_t e_total_pages;
29263 uint16_t e_nrelocs;
29265 uint16_t e_minalloc;
29266 uint16_t e_maxalloc;
29267 uint16_t e_ss;
29268 uint16_t e_sp;
29269 uint16_t e_cksum;
29271 uint16_t e_ip;
29272 uint16_t e_cs;
29274 uint16_t e_overlay;
29275 uint32_t e_res1;
29276 } /* 0x20 */
29277#if !defined(SWIG) && !defined(_MSC_VER)
29278 __attribute__((packed))
29279#endif
29280 ;
29281
29283 uint16_t offset; /* 0x00 */
29284 uint16_t segment; /* 0x02 */
29285 } /* 0x04 */
29286#if !defined(SWIG) && !defined(_MSC_VER)
29287 __attribute__((packed))
29288#endif
29289 ;
29290
29291#ifdef _MSC_VER
29292# pragma pack ()
29293#endif
29294
29296 // Properties
29298public:
29299public:
29305 uint16_t const& get_e_last_page_size() const;
29306 void set_e_last_page_size(uint16_t const&);
29309public:
29315 uint16_t const& get_e_total_pages() const;
29316 void set_e_total_pages(uint16_t const&);
29319public:
29325 uint16_t const& get_e_nrelocs() const;
29326 void set_e_nrelocs(uint16_t const&);
29329public:
29335 uint16_t const& get_e_header_paragraphs() const;
29336 void set_e_header_paragraphs(uint16_t const&);
29339public:
29345 uint16_t const& get_e_minalloc() const;
29346 void set_e_minalloc(uint16_t const&);
29349public:
29355 uint16_t const& get_e_maxalloc() const;
29356 void set_e_maxalloc(uint16_t const&);
29359public:
29365 uint16_t const& get_e_ss() const;
29366 void set_e_ss(uint16_t const&);
29369public:
29375 uint16_t const& get_e_sp() const;
29376 void set_e_sp(uint16_t const&);
29379public:
29385 uint16_t const& get_e_cksum() const;
29386 void set_e_cksum(uint16_t const&);
29389public:
29395 uint16_t const& get_e_ip() const;
29396 void set_e_ip(uint16_t const&);
29399public:
29405 uint16_t const& get_e_cs() const;
29406 void set_e_cs(uint16_t const&);
29409public:
29415 uint16_t const& get_e_overlay() const;
29416 void set_e_overlay(uint16_t const&);
29419public:
29429public:
29435 unsigned const& get_e_res1() const;
29436 void set_e_res1(unsigned const&);
29439public:
29447public:
29455 // Functions
29457public:
29459 virtual SgAsmDOSFileHeader *parse() override {return parse(true);}
29460 SgAsmDOSFileHeader *parse(bool define_rm_section);
29461 virtual bool reallocate() override;
29462 virtual void unparse(std::ostream&) const override;
29463 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29464 virtual const char *formatName() const override;
29465
29472
29479
29482
29483private:
29484 void *encode(SgAsmDOSFileHeader::DOSFileHeader_disk*) const;
29485
29487 // Deprecated 2023-11
29489public:
29490 virtual const char* format_name() const override ROSE_DEPRECATED("use formatName");
29491 SgAsmGenericSection* parse_rm_section(Rose::BinaryAnalysis::Address max_offset = 0) ROSE_DEPRECATED("use parseRealModeSection");
29492 void update_from_rm_section() ROSE_DEPRECATED("use updateFromRealModeSection");
29493 static bool is_DOS(SgAsmGenericFile*) ROSE_DEPRECATED("use isDos");
29494public:
29497
29498public:
29501
29502protected:
29510#endif // SgAsmDOSFileHeader_OTHERS
29511#ifdef DOCUMENTATION
29512};
29513#endif // DOCUMENTATION
29514
29515
29517// SgAsmGenericHeader -- MACHINE GENERATED; DO NOT MODIFY --
29519
29520#ifndef DOCUMENTATION
29521AstNodeClass& AsmGenericHeader = nonTerminalConstructor(
29522 "AsmGenericHeader",
29523 *this,
29524 "AsmGenericHeader",
29525 "AsmGenericHeaderTag",
29526 SubclassListBuilder()
29527 | AsmDOSFileHeader
29528 | AsmElfFileHeader
29529 | AsmJvmFileHeader
29530 | AsmLEFileHeader
29531 | AsmNEFileHeader
29532 | AsmPEFileHeader
29533 , true);
29534assert(AsmGenericHeader.associatedGrammar != nullptr);
29535AsmGenericHeader.setCppCondition("!defined(DOCUMENTATION)");
29536AsmGenericHeader.isBoostSerializable(true);
29537AsmGenericHeader.setAutomaticGenerationOfConstructor(false);
29538AsmGenericHeader.setAutomaticGenerationOfDestructor(false);
29539#endif // !DOCUMENTATION
29540
29541#ifndef DOCUMENTATION
29542AsmGenericHeader.useSmallHeader(true);
29543#endif // !DOCUMENTATION
29544
29545DECLARE_HEADERS(AsmGenericHeader);
29546#if defined(SgAsmGenericHeader_HEADERS) || defined(DOCUMENTATION)
29547#include <Rose/BinaryAnalysis/Address.h>
29548#include <Rose/BinaryAnalysis/ByteOrder.h>
29549#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
29550#include <sageContainer.h>
29551#include <SgAsmGenericFormat.h>
29552
29553#ifdef ROSE_SgAsmGenericHeader_IMPL
29554#include <SgAsmGenericDLLList.h>
29555#include <SgAsmGenericSectionList.h>
29556#endif
29557
29558class SgAsmGenericDLL;
29560#endif // SgAsmGenericHeader_HEADERS
29561
29562#ifdef DOCUMENTATION
29565#endif // DOCUMENTATION
29566
29567#ifndef DOCUMENTATION
29568 AsmGenericHeader.setDataPrototype(
29569 "SgAsmGenericFormat*", "executableFormat", "= createAndParent<SgAsmGenericFormat>(this)",
29570 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29571#endif // !DOCUMENTATION
29572
29573#ifndef DOCUMENTATION
29574 AsmGenericHeader.setDataPrototype(
29575 "SgCharList", "magic", "",
29576 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29577#endif // !DOCUMENTATION
29578
29579#ifndef DOCUMENTATION
29580 AsmGenericHeader.setDataPrototype(
29581 "SgAsmGenericFormat::InsSetArchitecture", "isa", "= SgAsmGenericFormat::ISA_UNSPECIFIED",
29582 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29583#endif // !DOCUMENTATION
29584
29585#ifndef DOCUMENTATION
29586 AsmGenericHeader.setDataPrototype(
29587 "Rose::BinaryAnalysis::Address", "baseVa", "= 0",
29588 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29589#endif // !DOCUMENTATION
29590
29591#ifndef DOCUMENTATION
29592 AsmGenericHeader.setDataPrototype(
29593 "SgRVAList", "entryRvas", "",
29594 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29595#endif // !DOCUMENTATION
29596
29597#ifndef DOCUMENTATION
29598 AsmGenericHeader.setDataPrototype(
29599 "SgAsmGenericDLLList*", "dlls", "= createAndParent<SgAsmGenericDLLList>(this)",
29600 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29601#endif // !DOCUMENTATION
29602
29603#ifndef DOCUMENTATION
29604 AsmGenericHeader.setDataPrototype(
29605 "SgAsmGenericSectionList*", "sections", "= createAndParent<SgAsmGenericSectionList>(this)",
29606 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29607#endif // !DOCUMENTATION
29608
29609 DECLARE_OTHERS(AsmGenericHeader);
29610#if defined(SgAsmGenericHeader_OTHERS) || defined(DOCUMENTATION)
29611
29612 //----------------------- Boost serialization for SgAsmGenericHeader -----------------------
29613#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29614private:
29615 friend class boost::serialization::access;
29616
29617 template<class S>
29618 void serialize(S &s, const unsigned /*version*/) {
29619 debugSerializationBegin("SgAsmGenericHeader");
29620 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
29621 s & BOOST_SERIALIZATION_NVP(p_executableFormat);
29622 s & BOOST_SERIALIZATION_NVP(p_magic);
29623 s & BOOST_SERIALIZATION_NVP(p_isa);
29624 s & BOOST_SERIALIZATION_NVP(p_baseVa);
29625 s & BOOST_SERIALIZATION_NVP(p_entryRvas);
29626 s & BOOST_SERIALIZATION_NVP(p_dlls);
29627 s & BOOST_SERIALIZATION_NVP(p_sections);
29628 debugSerializationEnd("SgAsmGenericHeader");
29629 }
29630#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29631public:
29632public:
29640public:
29644 SgCharList const& get_magic() const;
29645 SgCharList& get_magic();
29646 void set_magic(SgCharList const&);
29649public:
29657public:
29665public:
29669 SgRVAList const& get_entryRvas() const;
29670 SgRVAList& get_entryRvas();
29671 void set_entryRvas(SgRVAList const&);
29674public:
29682public:
29689public:
29698
29699 virtual bool reallocate() override;
29700
29702 virtual void unparse(std::ostream&) const override;
29703
29705 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29706
29708 virtual const char *formatName() const;
29709
29712
29714 std::vector<SgAsmGenericDLL*>& get_dlls();
29715
29721
29724
29725 /* Convenience functions */
29727 size_t get_wordSize() const;
29728
29733
29736
29738 SgAsmGenericSectionPtrList get_mappedSections() const;
29739
29741 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
29742
29746 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep=0) const;
29747
29750
29752 SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const;
29753
29760 SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va, bool use_preferred) const;
29761
29763 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
29764
29766 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
29767
29770 size_t *nfound=0) const;
29771
29776
29783 SgAsmGenericSection *get_sectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const;
29784
29786 SgAsmGenericSection *get_bestSectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const;
29787
29789 // Deprecated 2023-11
29791public:
29792 SgAsmGenericFormat* get_exec_format() const ROSE_DEPRECATED("use get_executableFormat");
29793 void set_exec_format(SgAsmGenericFormat*) ROSE_DEPRECATED("use set_executableFormat");
29794 Rose::BinaryAnalysis::Address get_base_va() const ROSE_DEPRECATED("use get_baseVa");
29795 void set_base_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_baseVa");
29796 SgRVAList& get_entry_rvas() ROSE_DEPRECATED("use get_entryRvas");
29797 const SgRVAList& get_entry_rvas() const ROSE_DEPRECATED("use get_entryRvas");
29798 void set_entry_rvas(const SgRVAList&) ROSE_DEPRECATED("use set_entryRvas");
29799 virtual const char *format_name() const ROSE_DEPRECATED("use formatName");
29800 void add_dll(SgAsmGenericDLL*) ROSE_DEPRECATED("use addDll");
29801 Rose::BinaryAnalysis::Address get_entry_rva() const ROSE_DEPRECATED("use get_entryRva");
29802 void add_entry_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use addEntryRva");
29803 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
29804 void add_section(SgAsmGenericSection*) ROSE_DEPRECATED("use addSection");
29805 void remove_section(SgAsmGenericSection*) ROSE_DEPRECATED("use removeSection");
29806 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
29807 SgAsmGenericSectionPtrList get_sections_by_id(int) const ROSE_DEPRECATED("use get_sectionsById");
29808 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char=0) const ROSE_DEPRECATED("use get_sectionsByName");
29809 SgAsmGenericSectionPtrList get_sections_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address) const
29810 ROSE_DEPRECATED("use get_sectionsByOffset");
29811 SgAsmGenericSectionPtrList get_sections_by_rva(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByRva");
29812 SgAsmGenericSectionPtrList get_sections_by_va(Rose::BinaryAnalysis::Address, bool) const
29813 ROSE_DEPRECATED("use get_sectionsByVa");
29814 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
29815 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
29816 ROSE_DEPRECATED("use get_sectionByName");
29817 SgAsmGenericSection *get_section_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address,
29818 size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionByOffset");
29819 SgAsmGenericSection *get_section_by_rva(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
29820 ROSE_DEPRECATED("use get_sectionByRva");
29821 SgAsmGenericSection *get_section_by_va(Rose::BinaryAnalysis::Address, bool, size_t* = nullptr) const
29822 ROSE_DEPRECATED("use get_sectionByVa");
29823 SgAsmGenericSection *get_best_section_by_va(Rose::BinaryAnalysis::Address, bool, size_t* = nullptr) const
29824 ROSE_DEPRECATED("use get_bestSectionByVa");
29825public:
29828
29829public:
29832
29833protected:
29841#endif // SgAsmGenericHeader_OTHERS
29842#ifdef DOCUMENTATION
29843};
29844#endif // DOCUMENTATION
29845
29846
29848// SgAsmDOSExtendedHeader -- MACHINE GENERATED; DO NOT MODIFY --
29850
29851DECLARE_LEAF_CLASS(AsmDOSExtendedHeader);
29852IS_SERIALIZABLE(AsmDOSExtendedHeader);
29853
29854#ifndef DOCUMENTATION
29855AsmDOSExtendedHeader.useSmallHeader(true);
29856#endif // !DOCUMENTATION
29857
29858DECLARE_HEADERS(AsmDOSExtendedHeader);
29859#if defined(SgAsmDOSExtendedHeader_HEADERS) || defined(DOCUMENTATION)
29860#include <Rose/BinaryAnalysis/Address.h>
29861#endif // SgAsmDOSExtendedHeader_HEADERS
29862
29863#ifdef DOCUMENTATION
29868#endif // DOCUMENTATION
29869
29870#ifndef DOCUMENTATION
29871 AsmDOSExtendedHeader.setDataPrototype(
29872 "unsigned", "e_res1", "= 0",
29873 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29874#endif // !DOCUMENTATION
29875
29876#ifndef DOCUMENTATION
29877 AsmDOSExtendedHeader.setDataPrototype(
29878 "unsigned", "e_oemid", "= 0",
29879 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29880#endif // !DOCUMENTATION
29881
29882#ifndef DOCUMENTATION
29883 AsmDOSExtendedHeader.setDataPrototype(
29884 "unsigned", "e_oeminfo", "= 0",
29885 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29886#endif // !DOCUMENTATION
29887
29888#ifndef DOCUMENTATION
29889 AsmDOSExtendedHeader.setDataPrototype(
29890 "unsigned", "e_res2", "= 0",
29891 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29892#endif // !DOCUMENTATION
29893
29894#ifndef DOCUMENTATION
29895 AsmDOSExtendedHeader.setDataPrototype(
29896 "unsigned", "e_res3", "= 0",
29897 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29898#endif // !DOCUMENTATION
29899
29900#ifndef DOCUMENTATION
29901 AsmDOSExtendedHeader.setDataPrototype(
29902 "unsigned", "e_res4", "= 0",
29903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29904#endif // !DOCUMENTATION
29905
29906#ifndef DOCUMENTATION
29907 AsmDOSExtendedHeader.setDataPrototype(
29908 "unsigned", "e_res5", "= 0",
29909 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29910#endif // !DOCUMENTATION
29911
29912#ifndef DOCUMENTATION
29913 AsmDOSExtendedHeader.setDataPrototype(
29914 "unsigned", "e_res6", "= 0",
29915 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29916#endif // !DOCUMENTATION
29917
29918#ifndef DOCUMENTATION
29919 AsmDOSExtendedHeader.setDataPrototype(
29920 "Rose::BinaryAnalysis::Address", "e_lfanew", "= 0",
29921 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29922#endif // !DOCUMENTATION
29923
29924 DECLARE_OTHERS(AsmDOSExtendedHeader);
29925#if defined(SgAsmDOSExtendedHeader_OTHERS) || defined(DOCUMENTATION)
29926
29927 //----------------------- Boost serialization for SgAsmDOSExtendedHeader -----------------------
29928#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29929private:
29930 friend class boost::serialization::access;
29931
29932 template<class S>
29933 void serialize(S &s, const unsigned /*version*/) {
29934 debugSerializationBegin("SgAsmDOSExtendedHeader");
29935 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
29936 s & BOOST_SERIALIZATION_NVP(p_e_res1);
29937 s & BOOST_SERIALIZATION_NVP(p_e_oemid);
29938 s & BOOST_SERIALIZATION_NVP(p_e_oeminfo);
29939 s & BOOST_SERIALIZATION_NVP(p_e_res2);
29940 s & BOOST_SERIALIZATION_NVP(p_e_res3);
29941 s & BOOST_SERIALIZATION_NVP(p_e_res4);
29942 s & BOOST_SERIALIZATION_NVP(p_e_res5);
29943 s & BOOST_SERIALIZATION_NVP(p_e_res6);
29944 s & BOOST_SERIALIZATION_NVP(p_e_lfanew);
29945 debugSerializationEnd("SgAsmDOSExtendedHeader");
29946 }
29947#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29949 // Local types
29951public:
29952#ifdef _MSC_VER
29953# pragma pack (1)
29954#endif
29956 uint32_t e_res1; /* 0x00 reserved */
29957 uint16_t e_oemid; /* 0x04 OEM Identifier */
29958 uint16_t e_oeminfo; /* 0x06 other OEM information; oemid specific */
29959 uint32_t e_res2; /* 0x08 reserved */
29960 uint32_t e_res3; /* 0x0c reserved */
29961 uint32_t e_res4; /* 0x10 reserved */
29962 uint32_t e_res5; /* 0x14 reserved */
29963 uint32_t e_res6; /* 0x18 reserved */
29964 uint32_t e_lfanew; /* 0x1c file offset of new exe (PE) header */
29965 } /* 0x20 */
29966#if !defined(SWIG) && !defined(_MSC_VER)
29967 __attribute__((packed))
29968#endif
29969 ;
29970#ifdef _MSC_VER
29971# pragma pack ()
29972#endif
29973
29975 // Properties
29977public:
29978public:
29984 unsigned const& get_e_res1() const;
29985 void set_e_res1(unsigned const&);
29988public:
29994 unsigned const& get_e_oemid() const;
29995 void set_e_oemid(unsigned const&);
29998public:
30004 unsigned const& get_e_oeminfo() const;
30005 void set_e_oeminfo(unsigned const&);
30008public:
30014 unsigned const& get_e_res2() const;
30015 void set_e_res2(unsigned const&);
30018public:
30024 unsigned const& get_e_res3() const;
30025 void set_e_res3(unsigned const&);
30028public:
30034 unsigned const& get_e_res4() const;
30035 void set_e_res4(unsigned const&);
30038public:
30044 unsigned const& get_e_res5() const;
30045 void set_e_res5(unsigned const&);
30048public:
30054 unsigned const& get_e_res6() const;
30055 void set_e_res6(unsigned const&);
30058public:
30068 // Functions
30070public:
30072 virtual SgAsmDOSExtendedHeader *parse() override;
30074 virtual void unparse(std::ostream&) const override;
30075 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
30076public:
30079
30080public:
30083
30084protected:
30092#endif // SgAsmDOSExtendedHeader_OTHERS
30093#ifdef DOCUMENTATION
30094};
30095#endif // DOCUMENTATION
30096
30097
30099// SgAsmDirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
30101
30102DECLARE_LEAF_CLASS(AsmDirectRegisterExpression);
30103IS_SERIALIZABLE(AsmDirectRegisterExpression);
30104
30105#ifndef DOCUMENTATION
30106AsmDirectRegisterExpression.useSmallHeader(true);
30107#endif // !DOCUMENTATION
30108
30109#ifdef DOCUMENTATION
30112#endif // DOCUMENTATION
30113
30114 DECLARE_OTHERS(AsmDirectRegisterExpression);
30115#if defined(SgAsmDirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
30116
30117 //----------------------- Boost serialization for SgAsmDirectRegisterExpression -----------------------
30118#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30119private:
30120 friend class boost::serialization::access;
30121
30122 template<class S>
30123 void serialize(S &s, const unsigned /*version*/) {
30124 debugSerializationBegin("SgAsmDirectRegisterExpression");
30125 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
30126 debugSerializationEnd("SgAsmDirectRegisterExpression");
30127 }
30128#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30129
30130public:
30133
30134public:
30137
30138public:
30141
30142protected:
30150#endif // SgAsmDirectRegisterExpression_OTHERS
30151#ifdef DOCUMENTATION
30152};
30153#endif // DOCUMENTATION
30154
30155
30157// SgAsmRegisterReferenceExpression -- MACHINE GENERATED; DO NOT MODIFY --
30159
30160#ifndef DOCUMENTATION
30161AstNodeClass& AsmRegisterReferenceExpression = nonTerminalConstructor(
30162 "AsmRegisterReferenceExpression",
30163 *this,
30164 "AsmRegisterReferenceExpression",
30165 "AsmRegisterReferenceExpressionTag",
30166 SubclassListBuilder()
30167 | AsmDirectRegisterExpression
30168 | AsmIndirectRegisterExpression
30169 , false);
30170assert(AsmRegisterReferenceExpression.associatedGrammar != nullptr);
30171AsmRegisterReferenceExpression.setCppCondition("!defined(DOCUMENTATION)");
30172AsmRegisterReferenceExpression.isBoostSerializable(true);
30173AsmRegisterReferenceExpression.setAutomaticGenerationOfConstructor(false);
30174AsmRegisterReferenceExpression.setAutomaticGenerationOfDestructor(false);
30175#endif // !DOCUMENTATION
30176
30177#ifndef DOCUMENTATION
30178AsmRegisterReferenceExpression.useSmallHeader(true);
30179#endif // !DOCUMENTATION
30180
30181#ifdef DOCUMENTATION
30184#endif // DOCUMENTATION
30185
30186#ifndef DOCUMENTATION
30187 AsmRegisterReferenceExpression.setDataPrototype(
30188 "Rose::BinaryAnalysis::RegisterDescriptor", "descriptor", "",
30189 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30190#endif // !DOCUMENTATION
30191
30192#ifndef DOCUMENTATION
30193 AsmRegisterReferenceExpression.setDataPrototype(
30194 "int", "adjustment", "= 0",
30195 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30196#endif // !DOCUMENTATION
30197
30198 DECLARE_OTHERS(AsmRegisterReferenceExpression);
30199#if defined(SgAsmRegisterReferenceExpression_OTHERS) || defined(DOCUMENTATION)
30200
30201 //----------------------- Boost serialization for SgAsmRegisterReferenceExpression -----------------------
30202#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30203private:
30204 friend class boost::serialization::access;
30205
30206 template<class S>
30207 void serialize(S &s, const unsigned /*version*/) {
30208 debugSerializationBegin("SgAsmRegisterReferenceExpression");
30209 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30210 s & BOOST_SERIALIZATION_NVP(p_descriptor);
30211 s & BOOST_SERIALIZATION_NVP(p_adjustment);
30212 debugSerializationEnd("SgAsmRegisterReferenceExpression");
30213 }
30214#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30215public:
30216public:
30224public:
30230 int const& get_adjustment() const;
30231 void set_adjustment(int const&);
30234public:
30237
30238protected:
30241
30242protected:
30245
30246protected:
30254#endif // SgAsmRegisterReferenceExpression_OTHERS
30255#ifdef DOCUMENTATION
30256};
30257#endif // DOCUMENTATION
30258
30259
30261// SgAsmControlFlagsExpression -- MACHINE GENERATED; DO NOT MODIFY --
30263
30264DECLARE_LEAF_CLASS(AsmControlFlagsExpression);
30265IS_SERIALIZABLE(AsmControlFlagsExpression);
30266
30267#ifndef DOCUMENTATION
30268AsmControlFlagsExpression.useSmallHeader(true);
30269#endif // !DOCUMENTATION
30270
30271DECLARE_HEADERS(AsmControlFlagsExpression);
30272#if defined(SgAsmControlFlagsExpression_HEADERS) || defined(DOCUMENTATION)
30273// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
30274#endif // SgAsmControlFlagsExpression_HEADERS
30275
30276#ifdef DOCUMENTATION
30278#endif // DOCUMENTATION
30279
30280#ifndef DOCUMENTATION
30281 AsmControlFlagsExpression.setDataPrototype(
30282 "unsigned long", "bitFlags", "= 0",
30283 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30284#endif // !DOCUMENTATION
30285
30286 DECLARE_OTHERS(AsmControlFlagsExpression);
30287#if defined(SgAsmControlFlagsExpression_OTHERS) || defined(DOCUMENTATION)
30288
30289 //----------------------- Boost serialization for SgAsmControlFlagsExpression -----------------------
30290#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30291private:
30292 friend class boost::serialization::access;
30293
30294 template<class S>
30295 void serialize(S &s, const unsigned /*version*/) {
30296 debugSerializationBegin("SgAsmControlFlagsExpression");
30297 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30298 s & BOOST_SERIALIZATION_NVP(p_bitFlags);
30299 debugSerializationEnd("SgAsmControlFlagsExpression");
30300 }
30301#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30302public:
30303public:
30304 unsigned long const& get_bitFlags() const;
30305 void set_bitFlags(unsigned long const&);
30306 // [Robb Matzke 2023-11-06] deprecated 2023-11
30307 unsigned long get_bit_flags() const ROSE_DEPRECATED("use get_bitFlags");
30308 void set_bit_flags(unsigned long) ROSE_DEPRECATED("use set_bitFlags");
30309public:
30312
30313public:
30316
30317protected:
30325#endif // SgAsmControlFlagsExpression_OTHERS
30326#ifdef DOCUMENTATION
30327};
30328#endif // DOCUMENTATION
30329
30330
30332// SgAsmConstantExpression -- MACHINE GENERATED; DO NOT MODIFY --
30334
30335#ifndef DOCUMENTATION
30336AstNodeClass& AsmConstantExpression = nonTerminalConstructor(
30337 "AsmConstantExpression",
30338 *this,
30339 "AsmConstantExpression",
30340 "AsmConstantExpressionTag",
30341 SubclassListBuilder()
30342 | AsmFloatValueExpression
30343 | AsmIntegerValueExpression
30344 , false);
30345assert(AsmConstantExpression.associatedGrammar != nullptr);
30346AsmConstantExpression.setCppCondition("!defined(DOCUMENTATION)");
30347AsmConstantExpression.isBoostSerializable(true);
30348AsmConstantExpression.setAutomaticGenerationOfConstructor(false);
30349AsmConstantExpression.setAutomaticGenerationOfDestructor(false);
30350#endif // !DOCUMENTATION
30351
30352#ifndef DOCUMENTATION
30353AsmConstantExpression.useSmallHeader(true);
30354#endif // !DOCUMENTATION
30355
30356DECLARE_HEADERS(AsmConstantExpression);
30357#if defined(SgAsmConstantExpression_HEADERS) || defined(DOCUMENTATION)
30358#include <Sawyer/BitVector.h>
30359#endif // SgAsmConstantExpression_HEADERS
30360
30361#ifdef DOCUMENTATION
30367#endif // DOCUMENTATION
30368
30369#ifndef DOCUMENTATION
30370 AsmConstantExpression.setDataPrototype(
30371 "Sawyer::Container::BitVector", "bitVector", "",
30372 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30373#endif // !DOCUMENTATION
30374
30375 DECLARE_OTHERS(AsmConstantExpression);
30376#if defined(SgAsmConstantExpression_OTHERS) || defined(DOCUMENTATION)
30377
30378 //----------------------- Boost serialization for SgAsmConstantExpression -----------------------
30379#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30380private:
30381 friend class boost::serialization::access;
30382
30383 template<class S>
30384 void serialize(S &s, const unsigned /*version*/) {
30385 debugSerializationBegin("SgAsmConstantExpression");
30386 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmValueExpression);
30387 s & BOOST_SERIALIZATION_NVP(p_bitVector);
30388 debugSerializationEnd("SgAsmConstantExpression");
30389 }
30390#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30391public:
30392public:
30403public:
30406
30407protected:
30410
30411protected:
30419#endif // SgAsmConstantExpression_OTHERS
30420#ifdef DOCUMENTATION
30421};
30422#endif // DOCUMENTATION
30423
30424
30426// SgAsmValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
30428
30429#ifndef DOCUMENTATION
30430AstNodeClass& AsmValueExpression = nonTerminalConstructor(
30431 "AsmValueExpression",
30432 *this,
30433 "AsmValueExpression",
30434 "AsmValueExpressionTag",
30435 SubclassListBuilder()
30436 | AsmConstantExpression
30437 , false);
30438assert(AsmValueExpression.associatedGrammar != nullptr);
30439AsmValueExpression.setCppCondition("!defined(DOCUMENTATION)");
30440AsmValueExpression.isBoostSerializable(true);
30441AsmValueExpression.setAutomaticGenerationOfConstructor(false);
30442AsmValueExpression.setAutomaticGenerationOfDestructor(false);
30443#endif // !DOCUMENTATION
30444
30445#ifndef DOCUMENTATION
30446AsmValueExpression.useSmallHeader(true);
30447#endif // !DOCUMENTATION
30448
30449#ifdef DOCUMENTATION
30458#endif // DOCUMENTATION
30459
30460#ifndef DOCUMENTATION
30461 AsmValueExpression.setDataPrototype(
30462 "SgAsmValueExpression*", "unfoldedExpression", "= nullptr",
30463 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30464#endif // !DOCUMENTATION
30465
30466#ifndef DOCUMENTATION
30467 AsmValueExpression.setDataPrototype(
30468 "unsigned short", "bitOffset", "= 0",
30469 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30470#endif // !DOCUMENTATION
30471
30472#ifndef DOCUMENTATION
30473 AsmValueExpression.setDataPrototype(
30474 "unsigned short", "bitSize", "= 0",
30475 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30476#endif // !DOCUMENTATION
30477
30478#ifndef DOCUMENTATION
30479 AsmValueExpression.setDataPrototype(
30480 "SgSymbol*", "symbol", "= nullptr",
30481 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30482#endif // !DOCUMENTATION
30483
30484 DECLARE_OTHERS(AsmValueExpression);
30485#if defined(SgAsmValueExpression_OTHERS) || defined(DOCUMENTATION)
30486
30487 //----------------------- Boost serialization for SgAsmValueExpression -----------------------
30488#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30489private:
30490 friend class boost::serialization::access;
30491
30492 template<class S>
30493 void serialize(S &s, const unsigned /*version*/) {
30494 debugSerializationBegin("SgAsmValueExpression");
30495 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30496 s & BOOST_SERIALIZATION_NVP(p_unfoldedExpression);
30497 s & BOOST_SERIALIZATION_NVP(p_bitOffset);
30498 s & BOOST_SERIALIZATION_NVP(p_bitSize);
30499 debugSerializationEnd("SgAsmValueExpression");
30500 }
30501#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30502public:
30503public:
30515public:
30524 unsigned short const& get_bitOffset() const;
30525 void set_bitOffset(unsigned short const&);
30528public:
30535 unsigned short const& get_bitSize() const;
30536 void set_bitSize(unsigned short const&);
30539public:
30546 SgSymbol* const& get_symbol() const;
30547 void set_symbol(SgSymbol* const&);
30550 // Deprecated 2023-11
30552public:
30553 SgAsmValueExpression* get_unfolded_expression_tree() const ROSE_DEPRECATED("use get_unfoldedExpression");
30554 void set_unfolded_expression_tree(SgAsmValueExpression*) ROSE_DEPRECATED("use set_unfoldedExpression");
30555 unsigned short get_bit_offset() const ROSE_DEPRECATED("use get_bitOffset");
30556 void set_bit_offset(unsigned short) ROSE_DEPRECATED("use set_bitOffset");
30557 unsigned short get_bit_size() const ROSE_DEPRECATED("use get_bitSize");
30558 void set_bit_size(unsigned short) ROSE_DEPRECATED("use set_bitSize");
30559public:
30562
30563protected:
30566
30567protected:
30575#endif // SgAsmValueExpression_OTHERS
30576#ifdef DOCUMENTATION
30577};
30578#endif // DOCUMENTATION
30579
30580
30582// SgAsmCommonSubExpression -- MACHINE GENERATED; DO NOT MODIFY --
30584
30585DECLARE_LEAF_CLASS(AsmCommonSubExpression);
30586IS_SERIALIZABLE(AsmCommonSubExpression);
30587
30588#ifndef DOCUMENTATION
30589AsmCommonSubExpression.useSmallHeader(true);
30590#endif // !DOCUMENTATION
30591
30592DECLARE_HEADERS(AsmCommonSubExpression);
30593#if defined(SgAsmCommonSubExpression_HEADERS) || defined(DOCUMENTATION)
30594// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
30595#endif // SgAsmCommonSubExpression_HEADERS
30596
30597#ifdef DOCUMENTATION
30599#endif // DOCUMENTATION
30600
30601#ifndef DOCUMENTATION
30602 AsmCommonSubExpression.setDataPrototype(
30603 "SgAsmExpression*", "subexpression", "= nullptr",
30604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30605#endif // !DOCUMENTATION
30606
30607 DECLARE_OTHERS(AsmCommonSubExpression);
30608#if defined(SgAsmCommonSubExpression_OTHERS) || defined(DOCUMENTATION)
30609
30610 //----------------------- Boost serialization for SgAsmCommonSubExpression -----------------------
30611#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30612private:
30613 friend class boost::serialization::access;
30614
30615 template<class S>
30616 void serialize(S &s, const unsigned /*version*/) {
30617 debugSerializationBegin("SgAsmCommonSubExpression");
30618 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30619 s & BOOST_SERIALIZATION_NVP(p_subexpression);
30620 debugSerializationEnd("SgAsmCommonSubExpression");
30621 }
30622#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30623public:
30624public:
30625 SgAsmExpression* const& get_subexpression() const;
30626 void set_subexpression(SgAsmExpression* const&);
30627
30628public:
30631
30632public:
30635
30636protected:
30644#endif // SgAsmCommonSubExpression_OTHERS
30645#ifdef DOCUMENTATION
30646};
30647#endif // DOCUMENTATION
30648
30649
30651// SgAsmCoffSymbolTable -- MACHINE GENERATED; DO NOT MODIFY --
30653
30654DECLARE_LEAF_CLASS(AsmCoffSymbolTable);
30655IS_SERIALIZABLE(AsmCoffSymbolTable);
30656
30657#ifndef DOCUMENTATION
30658AsmCoffSymbolTable.useSmallHeader(true);
30659#endif // !DOCUMENTATION
30660
30661DECLARE_HEADERS(AsmCoffSymbolTable);
30662#if defined(SgAsmCoffSymbolTable_HEADERS) || defined(DOCUMENTATION)
30663#ifdef ROSE_SgAsmCoffSymbolTable_IMPL
30664#include <SgAsmCoffSymbolList.h>
30665#endif
30666#endif // SgAsmCoffSymbolTable_HEADERS
30667
30668#ifdef DOCUMENTATION
30673#endif // DOCUMENTATION
30674
30675#ifndef DOCUMENTATION
30676 AsmCoffSymbolTable.setDataPrototype(
30677 "SgAsmGenericSection*", "strtab", "= nullptr",
30678 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30679#endif // !DOCUMENTATION
30680
30681#ifndef DOCUMENTATION
30682 AsmCoffSymbolTable.setDataPrototype(
30683 "SgAsmCoffSymbolList*", "symbols", "= createAndParent<SgAsmCoffSymbolList>(this)",
30684 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30685#endif // !DOCUMENTATION
30686
30687 DECLARE_OTHERS(AsmCoffSymbolTable);
30688#if defined(SgAsmCoffSymbolTable_OTHERS) || defined(DOCUMENTATION)
30689
30690 //----------------------- Boost serialization for SgAsmCoffSymbolTable -----------------------
30691#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30692private:
30693 friend class boost::serialization::access;
30694
30695 template<class S>
30696 void serialize(S &s, const unsigned /*version*/) {
30697 debugSerializationBegin("SgAsmCoffSymbolTable");
30698 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
30699 s & BOOST_SERIALIZATION_NVP(p_strtab);
30700 s & BOOST_SERIALIZATION_NVP(p_symbols);
30701 debugSerializationEnd("SgAsmCoffSymbolTable");
30702 }
30703#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30704public:
30705public:
30715public:
30722public:
30724 size_t get_nslots() const;
30725 virtual SgAsmCoffSymbolTable *parse() override;
30726 virtual void unparse(std::ostream&) const override;
30727 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
30728public:
30731
30732public:
30735
30736protected:
30744#endif // SgAsmCoffSymbolTable_OTHERS
30745#ifdef DOCUMENTATION
30746};
30747#endif // DOCUMENTATION
30748
30749
30751// SgAsmCoffSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
30753
30754DECLARE_LEAF_CLASS(AsmCoffSymbolList);
30755IS_SERIALIZABLE(AsmCoffSymbolList);
30756
30757#ifndef DOCUMENTATION
30758AsmCoffSymbolList.useSmallHeader(true);
30759#endif // !DOCUMENTATION
30760
30761DECLARE_HEADERS(AsmCoffSymbolList);
30762#if defined(SgAsmCoffSymbolList_HEADERS) || defined(DOCUMENTATION)
30763#include <sageContainer.h>
30764#endif // SgAsmCoffSymbolList_HEADERS
30765
30766#ifdef DOCUMENTATION
30769#endif // DOCUMENTATION
30770
30771#ifndef DOCUMENTATION
30772 AsmCoffSymbolList.setDataPrototype(
30773 "SgAsmCoffSymbolPtrList", "symbols", "",
30774 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30775#endif // !DOCUMENTATION
30776
30777 DECLARE_OTHERS(AsmCoffSymbolList);
30778#if defined(SgAsmCoffSymbolList_OTHERS) || defined(DOCUMENTATION)
30779
30780 //----------------------- Boost serialization for SgAsmCoffSymbolList -----------------------
30781#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30782private:
30783 friend class boost::serialization::access;
30784
30785 template<class S>
30786 void serialize(S &s, const unsigned /*version*/) {
30787 debugSerializationBegin("SgAsmCoffSymbolList");
30788 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
30789 s & BOOST_SERIALIZATION_NVP(p_symbols);
30790 debugSerializationEnd("SgAsmCoffSymbolList");
30791 }
30792#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30793public:
30794public:
30798 SgAsmCoffSymbolPtrList const& get_symbols() const;
30799 SgAsmCoffSymbolPtrList& get_symbols();
30800 void set_symbols(SgAsmCoffSymbolPtrList const&);
30803public:
30806
30807public:
30810
30811protected:
30819#endif // SgAsmCoffSymbolList_OTHERS
30820#ifdef DOCUMENTATION
30821};
30822#endif // DOCUMENTATION
30823
30824
30826// SgAsmCoffSymbol -- MACHINE GENERATED; DO NOT MODIFY --
30828
30829DECLARE_LEAF_CLASS(AsmCoffSymbol);
30830IS_SERIALIZABLE(AsmCoffSymbol);
30831
30832#ifndef DOCUMENTATION
30833AsmCoffSymbol.useSmallHeader(true);
30834#endif // !DOCUMENTATION
30835
30836DECLARE_HEADERS(AsmCoffSymbol);
30837#if defined(SgAsmCoffSymbol_HEADERS) || defined(DOCUMENTATION)
30838#include <Rose/BinaryAnalysis/Address.h>
30839
30840#include <sageContainer.h>
30841#endif // SgAsmCoffSymbol_HEADERS
30842
30843#ifdef DOCUMENTATION
30846#endif // DOCUMENTATION
30847
30848#ifndef DOCUMENTATION
30849 AsmCoffSymbol.setDataPrototype(
30850 "std::string", "st_name", "",
30851 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30852#endif // !DOCUMENTATION
30853
30854#ifndef DOCUMENTATION
30855 AsmCoffSymbol.setDataPrototype(
30856 "Rose::BinaryAnalysis::Address", "st_name_offset", "= 0",
30857 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30858#endif // !DOCUMENTATION
30859
30860#ifndef DOCUMENTATION
30861 AsmCoffSymbol.setDataPrototype(
30862 "int", "st_section_num", "= 0",
30863 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30864#endif // !DOCUMENTATION
30865
30866#ifndef DOCUMENTATION
30867 AsmCoffSymbol.setDataPrototype(
30868 "unsigned", "st_type", "= 0",
30869 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30870#endif // !DOCUMENTATION
30871
30872#ifndef DOCUMENTATION
30873 AsmCoffSymbol.setDataPrototype(
30874 "unsigned", "st_storage_class", "= 0",
30875 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30876#endif // !DOCUMENTATION
30877
30878#ifndef DOCUMENTATION
30879 AsmCoffSymbol.setDataPrototype(
30880 "unsigned", "st_num_aux_entries", "= 0",
30881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30882#endif // !DOCUMENTATION
30883
30884#ifndef DOCUMENTATION
30885 AsmCoffSymbol.setDataPrototype(
30886 "SgUnsignedCharList", "auxiliaryData", "",
30887 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30888#endif // !DOCUMENTATION
30889
30890 DECLARE_OTHERS(AsmCoffSymbol);
30891#if defined(SgAsmCoffSymbol_OTHERS) || defined(DOCUMENTATION)
30892
30893 //----------------------- Boost serialization for SgAsmCoffSymbol -----------------------
30894#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30895private:
30896 friend class boost::serialization::access;
30897
30898 template<class S>
30899 void serialize(S &s, const unsigned /*version*/) {
30900 debugSerializationBegin("SgAsmCoffSymbol");
30901 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
30902 s & BOOST_SERIALIZATION_NVP(p_st_name);
30903 s & BOOST_SERIALIZATION_NVP(p_st_name_offset);
30904 s & BOOST_SERIALIZATION_NVP(p_st_section_num);
30905 s & BOOST_SERIALIZATION_NVP(p_st_type);
30906 s & BOOST_SERIALIZATION_NVP(p_st_storage_class);
30907 s & BOOST_SERIALIZATION_NVP(p_st_num_aux_entries);
30908 s & BOOST_SERIALIZATION_NVP(p_auxiliaryData);
30909 debugSerializationEnd("SgAsmCoffSymbol");
30910 }
30911#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30913 // Local types
30915public:
30916#ifdef _MSC_VER
30917# pragma pack (1)
30918#endif
30920 union {
30921 char st_name[8];
30922 struct {
30923 uint32_t st_zero;
30924 uint32_t st_offset;
30925 };
30926 };
30927 uint32_t st_value;
30928 int16_t st_section_num;
30929 uint16_t st_type;
30930 unsigned char st_storage_class;
30931 unsigned char st_num_aux_entries;
30932 }
30933// DQ (3/7/2013): Adding support to restrict visability to SWIG.
30934#if !defined(SWIG) && !defined(_MSC_VER)
30935 __attribute__((packed))
30936#endif
30937 ;
30938#ifdef _MSC_VER
30939# pragma pack ()
30940#endif
30941
30943 // Properties and data members
30945public:
30946public:
30950 std::string const& get_st_name() const;
30951 void set_st_name(std::string const&);
30954public:
30962public:
30966 int const& get_st_section_num() const;
30967 void set_st_section_num(int const&);
30970public:
30974 unsigned const& get_st_type() const;
30975 void set_st_type(unsigned const&);
30978public:
30982 unsigned const& get_st_storage_class() const;
30983 void set_st_storage_class(unsigned const&);
30986public:
30990 unsigned const& get_st_num_aux_entries() const;
30991 void set_st_num_aux_entries(unsigned const&);
30994public:
30998 SgUnsignedCharList const& get_auxiliaryData() const;
30999 SgUnsignedCharList& get_auxiliaryData();
31000 void set_auxiliaryData(SgUnsignedCharList const&);
31002public:
31003 static const unsigned int COFFSymbol_disk_size = 18;
31004
31006 // Functions
31008public:
31009 SgAsmCoffSymbol(SgAsmPEFileHeader *fhdr, SgAsmGenericSection *symtab, SgAsmGenericSection *strtab, size_t idx);
31010 void *encode(SgAsmCoffSymbol::COFFSymbol_disk*) const;
31011 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
31012
31014 // Deprecated
31016public:
31017 const SgUnsignedCharList& get_aux_data() const ROSE_DEPRECATED("use get_auxiliaryData");
31018 void set_aux_data(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_auxiliaryData");
31019public:
31022
31023public:
31026
31027protected:
31035#endif // SgAsmCoffSymbol_OTHERS
31036#ifdef DOCUMENTATION
31037};
31038#endif // DOCUMENTATION
31039
31040
31042// SgAsmGenericSymbol -- MACHINE GENERATED; DO NOT MODIFY --
31044
31045#ifndef DOCUMENTATION
31046AstNodeClass& AsmGenericSymbol = nonTerminalConstructor(
31047 "AsmGenericSymbol",
31048 *this,
31049 "AsmGenericSymbol",
31050 "AsmGenericSymbolTag",
31051 SubclassListBuilder()
31052 | AsmCoffSymbol
31053 | AsmElfSymbol
31054 , false);
31055assert(AsmGenericSymbol.associatedGrammar != nullptr);
31056AsmGenericSymbol.setCppCondition("!defined(DOCUMENTATION)");
31057AsmGenericSymbol.isBoostSerializable(true);
31058AsmGenericSymbol.setAutomaticGenerationOfConstructor(false);
31059AsmGenericSymbol.setAutomaticGenerationOfDestructor(false);
31060#endif // !DOCUMENTATION
31061
31062#ifndef DOCUMENTATION
31063AsmGenericSymbol.useSmallHeader(true);
31064#endif // !DOCUMENTATION
31065
31066DECLARE_HEADERS(AsmGenericSymbol);
31067#if defined(SgAsmGenericSymbol_HEADERS) || defined(DOCUMENTATION)
31068#include <Rose/BinaryAnalysis/Address.h>
31069
31070/* Base class for symbol tables. */
31071#endif // SgAsmGenericSymbol_HEADERS
31072
31073#ifdef DOCUMENTATION
31075#endif // DOCUMENTATION
31076
31077#ifndef DOCUMENTATION
31078 AsmGenericSymbol.setDataPrototype(
31079 "SgAsmGenericSymbol::SymbolDefState", "definitionState", "= SgAsmGenericSymbol::SYM_UNDEFINED",
31080 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31081#endif // !DOCUMENTATION
31082
31083#ifndef DOCUMENTATION
31084 AsmGenericSymbol.setDataPrototype(
31085 "SgAsmGenericSymbol::SymbolBinding", "binding", "= SgAsmGenericSymbol::SYM_NO_BINDING",
31086 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31087#endif // !DOCUMENTATION
31088
31089#ifndef DOCUMENTATION
31090 AsmGenericSymbol.setDataPrototype(
31091 "SgAsmGenericSymbol::SymbolType", "type", "= SgAsmGenericSymbol::SYM_NO_TYPE",
31092 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31093#endif // !DOCUMENTATION
31094
31095#ifndef DOCUMENTATION
31096 AsmGenericSymbol.setDataPrototype(
31097 "Rose::BinaryAnalysis::Address", "value", "= 0",
31098 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31099#endif // !DOCUMENTATION
31100
31101#ifndef DOCUMENTATION
31102 AsmGenericSymbol.setDataPrototype(
31103 "Rose::BinaryAnalysis::Address", "size", "= 0",
31104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31105#endif // !DOCUMENTATION
31106
31107#ifndef DOCUMENTATION
31108 AsmGenericSymbol.setDataPrototype(
31109 "SgAsmGenericSection*", "bound", "= nullptr",
31110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31111#endif // !DOCUMENTATION
31112
31113#ifndef DOCUMENTATION
31114 AsmGenericSymbol.setDataPrototype(
31115 "SgAsmGenericString*", "name", "= nullptr",
31116 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
31117#endif // !DOCUMENTATION
31118
31119 DECLARE_OTHERS(AsmGenericSymbol);
31120#if defined(SgAsmGenericSymbol_OTHERS) || defined(DOCUMENTATION)
31121
31122 //----------------------- Boost serialization for SgAsmGenericSymbol -----------------------
31123#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31124private:
31125 friend class boost::serialization::access;
31126
31127 template<class S>
31128 void serialize(S &s, const unsigned /*version*/) {
31129 debugSerializationBegin("SgAsmGenericSymbol");
31130 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
31131 s & BOOST_SERIALIZATION_NVP(p_definitionState);
31132 s & BOOST_SERIALIZATION_NVP(p_binding);
31133 s & BOOST_SERIALIZATION_NVP(p_type);
31134 s & BOOST_SERIALIZATION_NVP(p_value);
31135 s & BOOST_SERIALIZATION_NVP(p_size);
31136 s & BOOST_SERIALIZATION_NVP(p_bound);
31137 s & BOOST_SERIALIZATION_NVP(p_name);
31138 debugSerializationEnd("SgAsmGenericSymbol");
31139 }
31140#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31142 // Local types
31144public:
31151
31165
31173
31175 // Properties
31177public:
31178public:
31186public:
31194public:
31202public:
31210public:
31218public:
31226public:
31235 // Functions
31237public:
31239 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
31240
31242 // Deprecated 2023-11
31244public:
31245 SymbolDefState get_def_state() const ROSE_DEPRECATED("use get_definitionState");
31246 void set_def_state(SymbolDefState) ROSE_DEPRECATED("use set_definitionState");
31247public:
31250
31251protected:
31254
31255protected:
31263#endif // SgAsmGenericSymbol_OTHERS
31264#ifdef DOCUMENTATION
31265};
31266#endif // DOCUMENTATION
31267
31268
31270// SgAsmCoffStrtab -- MACHINE GENERATED; DO NOT MODIFY --
31272
31273DECLARE_LEAF_CLASS(AsmCoffStrtab);
31274IS_SERIALIZABLE(AsmCoffStrtab);
31275
31276#ifndef DOCUMENTATION
31277AsmCoffStrtab.useSmallHeader(true);
31278#endif // !DOCUMENTATION
31279
31280DECLARE_HEADERS(AsmCoffStrtab);
31281#if defined(SgAsmCoffStrtab_HEADERS) || defined(DOCUMENTATION)
31282#include <Rose/BinaryAnalysis/Address.h>
31283#endif // SgAsmCoffStrtab_HEADERS
31284
31285#ifdef DOCUMENTATION
31288#endif // DOCUMENTATION
31289
31290 DECLARE_OTHERS(AsmCoffStrtab);
31291#if defined(SgAsmCoffStrtab_OTHERS) || defined(DOCUMENTATION)
31292
31293 //----------------------- Boost serialization for SgAsmCoffStrtab -----------------------
31294#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31295private:
31296 friend class boost::serialization::access;
31297
31298 template<class S>
31299 void serialize(S &s, const unsigned /*version*/) {
31300 debugSerializationBegin("SgAsmCoffStrtab");
31301 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
31302 debugSerializationEnd("SgAsmCoffStrtab");
31303 }
31304#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31305public:
31306 explicit SgAsmCoffStrtab(class SgAsmPESection *containing_section);
31307 void destructorHelper() override;
31308 virtual void unparse(std::ostream&) const;
31309 virtual SgAsmStringStorage *createStorage(Rose::BinaryAnalysis::Address offset, bool shared) override;
31310 virtual Rose::BinaryAnalysis::Address get_storageSize(const SgAsmStringStorage*) override;
31311
31313 // Deprecated 2023-11
31315 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) override ROSE_DEPRECATED("use createStorage");
31316 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) override
31317 ROSE_DEPRECATED("use get_storageSize");
31318public:
31321
31322public:
31325
31326protected:
31334#endif // SgAsmCoffStrtab_OTHERS
31335#ifdef DOCUMENTATION
31336};
31337#endif // DOCUMENTATION
31338
31339
31341// SgAsmGenericStrtab -- MACHINE GENERATED; DO NOT MODIFY --
31343
31344#ifndef DOCUMENTATION
31345AstNodeClass& AsmGenericStrtab = nonTerminalConstructor(
31346 "AsmGenericStrtab",
31347 *this,
31348 "AsmGenericStrtab",
31349 "AsmGenericStrtabTag",
31350 SubclassListBuilder()
31351 | AsmCoffStrtab
31352 | AsmElfStrtab
31353 , false);
31354assert(AsmGenericStrtab.associatedGrammar != nullptr);
31355AsmGenericStrtab.setCppCondition("!defined(DOCUMENTATION)");
31356AsmGenericStrtab.isBoostSerializable(true);
31357AsmGenericStrtab.setAutomaticGenerationOfConstructor(false);
31358AsmGenericStrtab.setAutomaticGenerationOfDestructor(false);
31359#endif // !DOCUMENTATION
31360
31361#ifndef DOCUMENTATION
31362AsmGenericStrtab.useSmallHeader(true);
31363#endif // !DOCUMENTATION
31364
31365DECLARE_HEADERS(AsmGenericStrtab);
31366#if defined(SgAsmGenericStrtab_HEADERS) || defined(DOCUMENTATION)
31367#include <Rose/BinaryAnalysis/Address.h>
31368#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
31369#endif // SgAsmGenericStrtab_HEADERS
31370
31371#ifdef DOCUMENTATION
31374#endif // DOCUMENTATION
31375
31376#ifndef DOCUMENTATION
31377 AsmGenericStrtab.setDataPrototype(
31378 "SgAsmGenericSection*", "container", "= nullptr",
31379 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31380#endif // !DOCUMENTATION
31381
31382#ifndef DOCUMENTATION
31383 AsmGenericStrtab.setDataPrototype(
31384 "SgAsmGenericStrtab::referenced_t", "storageList", "",
31385 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31386#endif // !DOCUMENTATION
31387
31388#ifndef DOCUMENTATION
31389 AsmGenericStrtab.setDataPrototype(
31390 "Rose::BinaryAnalysis::AddressIntervalSet", "freeList", "",
31391 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31392#endif // !DOCUMENTATION
31393
31394#ifndef DOCUMENTATION
31395 AsmGenericStrtab.setDataPrototype(
31396 "SgAsmStringStorage*", "dontFree", "= nullptr",
31397 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31398#endif // !DOCUMENTATION
31399
31400#ifndef DOCUMENTATION
31401 AsmGenericStrtab.setDataPrototype(
31402 "size_t", "numberFreed", "= 0",
31403 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31404#endif // !DOCUMENTATION
31405
31406 DECLARE_OTHERS(AsmGenericStrtab);
31407#if defined(SgAsmGenericStrtab_OTHERS) || defined(DOCUMENTATION)
31408
31409 //----------------------- Boost serialization for SgAsmGenericStrtab -----------------------
31410#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31411private:
31412 friend class boost::serialization::access;
31413
31414 template<class S>
31415 void serialize(S &s, const unsigned /*version*/) {
31416 debugSerializationBegin("SgAsmGenericStrtab");
31417 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
31418 s & BOOST_SERIALIZATION_NVP(p_container);
31419 s & BOOST_SERIALIZATION_NVP(p_storageList);
31420 s & BOOST_SERIALIZATION_NVP(p_freeList);
31421 s & BOOST_SERIALIZATION_NVP(p_dontFree);
31422 s & BOOST_SERIALIZATION_NVP(p_numberFreed);
31423 debugSerializationEnd("SgAsmGenericStrtab");
31424 }
31425#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31427 // Local types
31429public:
31430 typedef std::vector<class SgAsmStringStorage*> referenced_t;
31431
31433 // Properties
31435public:
31436public:
31444public:
31448 SgAsmGenericStrtab::referenced_t const& get_storageList() const;
31449 void set_storageList(SgAsmGenericStrtab::referenced_t const&);
31452public:
31461public:
31469public:
31473 size_t const& get_numberFreed() const;
31474 void set_numberFreed(size_t const&);
31477 // Functions
31479public:
31482
31484 virtual SgAsmGenericStrtab* parse() {return this;}
31485
31487 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
31488
31491
31496
31501 void free(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size); /*mark part of table as free*/
31502
31507 void freeAllStrings(bool blow_away_holes=false);
31508
31509 virtual void allocateOverlap(SgAsmStringStorage*);
31510
31516 bool reallocate(bool shrink);
31517
31518 //These should be pure virtual but ROSETTA apparently doesn't support that (RPM 2008-10-03)
31519 virtual SgAsmStringStorage *createStorage(Rose::BinaryAnalysis::Address /*offset*/, bool /*shared*/);
31520 virtual Rose::BinaryAnalysis::Address get_storageSize(const SgAsmStringStorage*);
31522
31524 // Deprecated 2023-11
31526public:
31527 const referenced_t& get_storage_list() const ROSE_DEPRECATED("use get_storageList");
31528 void set_storage_list(const referenced_t&) ROSE_DEPRECATED("use set_storageList");
31529 const Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() const ROSE_DEPRECATED("use get_freeList");
31530 Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() ROSE_DEPRECATED("use set_freeList");
31531 SgAsmStringStorage* get_dont_free() const ROSE_DEPRECATED("use get_dontFree");
31532 void set_dont_free(SgAsmStringStorage*) ROSE_DEPRECATED("use set_dontFree");
31533 size_t get_num_freed() const ROSE_DEPRECATED("use get_numberFreed");
31534 void set_num_freed(size_t) ROSE_DEPRECATED("use set_numberFreed");
31535 SgAsmStoredString *create_string(Rose::BinaryAnalysis::Address, bool) ROSE_DEPRECATED("use createString");
31536 void free_all_strings(bool=false) ROSE_DEPRECATED("use freeAllStrings");
31537 virtual void allocate_overlap(SgAsmStringStorage*) ROSE_DEPRECATED("use allocateOverlap");
31538 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) ROSE_DEPRECATED("use createStorage");
31539 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) ROSE_DEPRECATED("use get_storageSize");
31540public:
31543
31544protected:
31547
31548protected:
31556#endif // SgAsmGenericStrtab_OTHERS
31557#ifdef DOCUMENTATION
31558};
31559#endif // DOCUMENTATION
31560
31561
31563// SgAsmCliHeader -- MACHINE GENERATED; DO NOT MODIFY --
31565
31566DECLARE_LEAF_CLASS(AsmCliHeader);
31567IS_SERIALIZABLE(AsmCliHeader);
31568
31569#ifndef DOCUMENTATION
31570AsmCliHeader.useSmallHeader(true);
31571#endif // !DOCUMENTATION
31572
31573DECLARE_HEADERS(AsmCliHeader);
31574#if defined(SgAsmCliHeader_HEADERS) || defined(DOCUMENTATION)
31575#ifdef ROSE_SgAsmCliHeader_IMPL
31576#include <SgAsmCilMetadataRoot.h>
31577#endif
31578#endif // SgAsmCliHeader_HEADERS
31579
31580#ifdef DOCUMENTATION
31585#endif // DOCUMENTATION
31586
31587#ifndef DOCUMENTATION
31588 AsmCliHeader.setDataPrototype(
31589 "uint32_t", "cb", "= 0",
31590 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31591#endif // !DOCUMENTATION
31592
31593#ifndef DOCUMENTATION
31594 AsmCliHeader.setDataPrototype(
31595 "uint16_t", "majorRuntimeVersion", "= 0",
31596 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31597#endif // !DOCUMENTATION
31598
31599#ifndef DOCUMENTATION
31600 AsmCliHeader.setDataPrototype(
31601 "uint16_t", "minorRuntimeVersion", "= 0",
31602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31603#endif // !DOCUMENTATION
31604
31605#ifndef DOCUMENTATION
31606 AsmCliHeader.setDataPrototype(
31607 "uint64_t", "metaData", "= 0",
31608 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31609#endif // !DOCUMENTATION
31610
31611#ifndef DOCUMENTATION
31612 AsmCliHeader.setDataPrototype(
31613 "uint32_t", "flags", "= 0",
31614 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31615#endif // !DOCUMENTATION
31616
31617#ifndef DOCUMENTATION
31618 AsmCliHeader.setDataPrototype(
31619 "uint32_t", "entryPointToken", "= 0",
31620 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31621#endif // !DOCUMENTATION
31622
31623#ifndef DOCUMENTATION
31624 AsmCliHeader.setDataPrototype(
31625 "uint64_t", "resources", "= 0",
31626 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31627#endif // !DOCUMENTATION
31628
31629#ifndef DOCUMENTATION
31630 AsmCliHeader.setDataPrototype(
31631 "uint64_t", "strongNameSignature", "= 0",
31632 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31633#endif // !DOCUMENTATION
31634
31635#ifndef DOCUMENTATION
31636 AsmCliHeader.setDataPrototype(
31637 "uint64_t", "codeManagerTable", "= 0",
31638 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31639#endif // !DOCUMENTATION
31640
31641#ifndef DOCUMENTATION
31642 AsmCliHeader.setDataPrototype(
31643 "uint64_t", "vTableFixups", "= 0",
31644 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31645#endif // !DOCUMENTATION
31646
31647#ifndef DOCUMENTATION
31648 AsmCliHeader.setDataPrototype(
31649 "uint64_t", "exportAddressTableJumps", "= 0",
31650 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31651#endif // !DOCUMENTATION
31652
31653#ifndef DOCUMENTATION
31654 AsmCliHeader.setDataPrototype(
31655 "uint64_t", "managedNativeHeader", "= 0",
31656 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31657#endif // !DOCUMENTATION
31658
31659#ifndef DOCUMENTATION
31660 AsmCliHeader.setDataPrototype(
31661 "SgAsmCilMetadataRoot*", "metadataRoot", "= nullptr",
31662 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
31663#endif // !DOCUMENTATION
31664
31665 DECLARE_OTHERS(AsmCliHeader);
31666#if defined(SgAsmCliHeader_OTHERS) || defined(DOCUMENTATION)
31667
31668 //----------------------- Boost serialization for SgAsmCliHeader -----------------------
31669#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31670private:
31671 friend class boost::serialization::access;
31672
31673 template<class S>
31674 void serialize(S &s, const unsigned /*version*/) {
31675 debugSerializationBegin("SgAsmCliHeader");
31676 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
31677 s & BOOST_SERIALIZATION_NVP(p_cb);
31678 s & BOOST_SERIALIZATION_NVP(p_majorRuntimeVersion);
31679 s & BOOST_SERIALIZATION_NVP(p_minorRuntimeVersion);
31680 s & BOOST_SERIALIZATION_NVP(p_metaData);
31681 s & BOOST_SERIALIZATION_NVP(p_flags);
31682 s & BOOST_SERIALIZATION_NVP(p_entryPointToken);
31683 s & BOOST_SERIALIZATION_NVP(p_resources);
31684 s & BOOST_SERIALIZATION_NVP(p_strongNameSignature);
31685 s & BOOST_SERIALIZATION_NVP(p_codeManagerTable);
31686 s & BOOST_SERIALIZATION_NVP(p_vTableFixups);
31687 s & BOOST_SERIALIZATION_NVP(p_exportAddressTableJumps);
31688 s & BOOST_SERIALIZATION_NVP(p_managedNativeHeader);
31689 debugSerializationEnd("SgAsmCliHeader");
31690 }
31691#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31692public:
31693public:
31699 uint32_t const& get_cb() const;
31700 void set_cb(uint32_t const&);
31703public:
31709 uint16_t const& get_majorRuntimeVersion() const;
31710 void set_majorRuntimeVersion(uint16_t const&);
31713public:
31719 uint16_t const& get_minorRuntimeVersion() const;
31720 void set_minorRuntimeVersion(uint16_t const&);
31723public:
31729 uint64_t const& get_metaData() const;
31730 void set_metaData(uint64_t const&);
31733public:
31739 uint32_t const& get_flags() const;
31740 void set_flags(uint32_t const&);
31743public:
31749 uint32_t const& get_entryPointToken() const;
31750 void set_entryPointToken(uint32_t const&);
31753public:
31759 uint64_t const& get_resources() const;
31760 void set_resources(uint64_t const&);
31763public:
31769 uint64_t const& get_strongNameSignature() const;
31770 void set_strongNameSignature(uint64_t const&);
31773public:
31779 uint64_t const& get_codeManagerTable() const;
31780 void set_codeManagerTable(uint64_t const&);
31783public:
31789 uint64_t const& get_vTableFixups() const;
31790 void set_vTableFixups(uint64_t const&);
31793public:
31799 uint64_t const& get_exportAddressTableJumps() const;
31800 void set_exportAddressTableJumps(uint64_t const&);
31803public:
31809 uint64_t const& get_managedNativeHeader() const;
31810 void set_managedNativeHeader(uint64_t const&);
31812 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
31813public:
31820 public:
31825
31827 virtual SgAsmCliHeader* parse() override;
31828
31830 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
31831public:
31834
31835public:
31838
31839protected:
31847#endif // SgAsmCliHeader_OTHERS
31848#ifdef DOCUMENTATION
31849};
31850#endif // DOCUMENTATION
31851
31852
31854// SgAsmGenericSection -- MACHINE GENERATED; DO NOT MODIFY --
31856
31857#ifndef DOCUMENTATION
31858AstNodeClass& AsmGenericSection = nonTerminalConstructor(
31859 "AsmGenericSection",
31860 *this,
31861 "AsmGenericSection",
31862 "AsmGenericSectionTag",
31863 SubclassListBuilder()
31864 | AsmCliHeader
31865 | AsmCoffSymbolTable
31866 | AsmDOSExtendedHeader
31867 | AsmElfSection
31868 | AsmElfSectionTable
31869 | AsmElfSegmentTable
31870 | AsmGenericHeader
31871 | AsmJvmAttributeTable
31872 | AsmJvmConstantPool
31873 | AsmJvmFieldTable
31874 | AsmJvmMethodTable
31875 | AsmLEEntryTable
31876 | AsmLENameTable
31877 | AsmLEPageTable
31878 | AsmLERelocTable
31879 | AsmLESection
31880 | AsmLESectionTable
31881 | AsmNEEntryTable
31882 | AsmNEModuleTable
31883 | AsmNENameTable
31884 | AsmNERelocTable
31885 | AsmNESection
31886 | AsmNESectionTable
31887 | AsmNEStringTable
31888 | AsmPESection
31889 | AsmPESectionTable
31890 , true);
31891assert(AsmGenericSection.associatedGrammar != nullptr);
31892AsmGenericSection.setCppCondition("!defined(DOCUMENTATION)");
31893AsmGenericSection.isBoostSerializable(true);
31894AsmGenericSection.setAutomaticGenerationOfConstructor(false);
31895AsmGenericSection.setAutomaticGenerationOfDestructor(false);
31896#endif // !DOCUMENTATION
31897
31898#ifndef DOCUMENTATION
31899AsmGenericSection.useSmallHeader(true);
31900#endif // !DOCUMENTATION
31901
31902DECLARE_HEADERS(AsmGenericSection);
31903#if defined(SgAsmGenericSection_HEADERS) || defined(DOCUMENTATION)
31904#include <Rose/BinaryAnalysis/Address.h>
31905#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
31906#include <Rose/BinaryAnalysis/MemoryMap.h>
31907#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
31908#include <sageContainer.h>
31909
31910#ifdef ROSE_SgAsmGenericSection_IMPL
31911#include <SgAsmBasicString.h>
31912#endif
31913#endif // SgAsmGenericSection_HEADERS
31914
31915#ifdef DOCUMENTATION
31921#endif // DOCUMENTATION
31922
31923#ifndef DOCUMENTATION
31924 AsmGenericSection.setDataPrototype(
31925 "SgAsmGenericFile*", "file", "= nullptr",
31926 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31927#endif // !DOCUMENTATION
31928
31929#ifndef DOCUMENTATION
31930 AsmGenericSection.setDataPrototype(
31931 "SgAsmGenericHeader*", "header", "= nullptr",
31932 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31933#endif // !DOCUMENTATION
31934
31935#ifndef DOCUMENTATION
31936 AsmGenericSection.setDataPrototype(
31937 "Rose::BinaryAnalysis::Address", "size", "= 0",
31938 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31939#endif // !DOCUMENTATION
31940
31941#ifndef DOCUMENTATION
31942 AsmGenericSection.setDataPrototype(
31943 "Rose::BinaryAnalysis::Address", "offset", "= 0",
31944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31945#endif // !DOCUMENTATION
31946
31947#ifndef DOCUMENTATION
31948 AsmGenericSection.setDataPrototype(
31949 "Rose::BinaryAnalysis::Address", "fileAlignment", "= 0",
31950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31951#endif // !DOCUMENTATION
31952
31953#ifndef DOCUMENTATION
31954 AsmGenericSection.setDataPrototype(
31955 "SgFileContentList", "data", "",
31956 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31957#endif // !DOCUMENTATION
31958
31959#ifndef DOCUMENTATION
31960 AsmGenericSection.setDataPrototype(
31961 "SgAsmGenericSection::SectionPurpose", "purpose", "= SgAsmGenericSection::SP_UNSPECIFIED",
31962 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31963#endif // !DOCUMENTATION
31964
31965#ifndef DOCUMENTATION
31966 AsmGenericSection.setDataPrototype(
31967 "bool", "synthesized", "= false",
31968 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31969#endif // !DOCUMENTATION
31970
31971#ifndef DOCUMENTATION
31972 AsmGenericSection.setDataPrototype(
31973 "int", "id", "= -1",
31974 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31975#endif // !DOCUMENTATION
31976
31977#ifndef DOCUMENTATION
31978 AsmGenericSection.setDataPrototype(
31979 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
31980 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31981#endif // !DOCUMENTATION
31982
31983#ifndef DOCUMENTATION
31984 AsmGenericSection.setDataPrototype(
31985 "std::string", "shortName", "",
31986 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31987#endif // !DOCUMENTATION
31988
31989#ifndef DOCUMENTATION
31990 AsmGenericSection.setDataPrototype(
31991 "Rose::BinaryAnalysis::Address", "mappedPreferredRva", "= 0",
31992 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31993#endif // !DOCUMENTATION
31994
31995#ifndef DOCUMENTATION
31996 AsmGenericSection.setDataPrototype(
31997 "Rose::BinaryAnalysis::Address", "mappedSize", "= 0",
31998 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31999#endif // !DOCUMENTATION
32000
32001#ifndef DOCUMENTATION
32002 AsmGenericSection.setDataPrototype(
32003 "Rose::BinaryAnalysis::Address", "mappedAlignment", "= 0",
32004 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32005#endif // !DOCUMENTATION
32006
32007#ifndef DOCUMENTATION
32008 AsmGenericSection.setDataPrototype(
32009 "bool", "mappedReadPermission", "= false",
32010 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32011#endif // !DOCUMENTATION
32012
32013#ifndef DOCUMENTATION
32014 AsmGenericSection.setDataPrototype(
32015 "bool", "mappedWritePermission", "= false",
32016 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32017#endif // !DOCUMENTATION
32018
32019#ifndef DOCUMENTATION
32020 AsmGenericSection.setDataPrototype(
32021 "bool", "mappedExecutePermission", "= false",
32022 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32023#endif // !DOCUMENTATION
32024
32025#ifndef DOCUMENTATION
32026 AsmGenericSection.setDataPrototype(
32027 "bool", "containsCode", "= false",
32028 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32029#endif // !DOCUMENTATION
32030
32031#ifndef DOCUMENTATION
32032 AsmGenericSection.setDataPrototype(
32033 "Rose::BinaryAnalysis::Address", "mappedActualVa", "= 0",
32034 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32035#endif // !DOCUMENTATION
32036
32037 DECLARE_OTHERS(AsmGenericSection);
32038#if defined(SgAsmGenericSection_OTHERS) || defined(DOCUMENTATION)
32039
32040 //----------------------- Boost serialization for SgAsmGenericSection -----------------------
32041#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32042private:
32043 friend class boost::serialization::access;
32044
32045 template<class S>
32046 void serialize(S &s, const unsigned /*version*/) {
32047 debugSerializationBegin("SgAsmGenericSection");
32048 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
32049 s & BOOST_SERIALIZATION_NVP(p_file);
32050 s & BOOST_SERIALIZATION_NVP(p_header);
32051 s & BOOST_SERIALIZATION_NVP(p_size);
32052 s & BOOST_SERIALIZATION_NVP(p_offset);
32053 s & BOOST_SERIALIZATION_NVP(p_fileAlignment);
32054 s & BOOST_SERIALIZATION_NVP(p_data);
32055 s & BOOST_SERIALIZATION_NVP(p_purpose);
32056 s & BOOST_SERIALIZATION_NVP(p_synthesized);
32057 s & BOOST_SERIALIZATION_NVP(p_id);
32058 s & BOOST_SERIALIZATION_NVP(p_name);
32059 s & BOOST_SERIALIZATION_NVP(p_shortName);
32060 s & BOOST_SERIALIZATION_NVP(p_mappedPreferredRva);
32061 s & BOOST_SERIALIZATION_NVP(p_mappedSize);
32062 s & BOOST_SERIALIZATION_NVP(p_mappedAlignment);
32063 s & BOOST_SERIALIZATION_NVP(p_mappedReadPermission);
32064 s & BOOST_SERIALIZATION_NVP(p_mappedWritePermission);
32065 s & BOOST_SERIALIZATION_NVP(p_mappedExecutePermission);
32066 s & BOOST_SERIALIZATION_NVP(p_containsCode);
32067 s & BOOST_SERIALIZATION_NVP(p_mappedActualVa);
32068 debugSerializationEnd("SgAsmGenericSection");
32069 }
32070#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32072 // Local types
32074public:
32086
32088 // Properties
32090public:
32091public:
32099public:
32107public:
32121public:
32129 // Starting file offset of the section
32130
32134public:
32144public:
32154public:
32162public:
32168 bool const& get_synthesized() const;
32169 void set_synthesized(bool const&);
32172public:
32178 int const& get_id() const;
32179 void set_id(int const&);
32182public:
32193public:
32201 void set_shortName(std::string const&);
32202 std::string get_shortName() const;
32204public:
32217public:
32226public:
32234public:
32238 bool const& get_mappedReadPermission() const;
32239 void set_mappedReadPermission(bool const&);
32242public:
32246 bool const& get_mappedWritePermission() const;
32247 void set_mappedWritePermission(bool const&);
32250public:
32254 bool const& get_mappedExecutePermission() const;
32258public:
32268 bool const& get_containsCode() const;
32269 void set_containsCode(bool const&);
32272public:
32290 // Non-property data members
32292private:
32293protected: // Allows local_data_pool to be initialized by subclasses. Note, destruction is problematic, freeing non-allocated ptr.
32294 // Set breakpoint in malloc_error_break to debug [Rasmussen, 2024.03.02]
32295 /* This is an optional local, writable pool for the p_data member. Normally a section will point into the pool
32296 * for its SgAsmGenericFile which is memory-mapped (read-only) from the actual file being parsed. The default
32297 * unparsing action is to write the original data back to the file. By allowing a section to allocate its own
32298 * pool for `data` we create a very easy way to get data into the unparsed file (the alternative is to derive
32299 * a new class and override the unparse() method). */
32300 unsigned char *local_data_pool;
32301
32303 // Functions
32305public:
32313
32315 static void dumpContainingSections(FILE*, const std::string &prefix, Rose::BinaryAnalysis::RelativeVirtualAddress,
32316 const SgAsmGenericSectionPtrList&);
32317
32323
32328
32330 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
32331
32333 virtual bool reallocate() { return false; }
32334
32338 virtual void unparse(std::ostream&) const;
32339
32341 void unparse(std::ostream&, const ExtentMap&) const;
32342
32344 void unparseHoles(std::ostream&) const;
32345
32351
32354
32362
32376 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, size_t bufsize, const void *buf) const;
32377 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, const std::string &str) const;
32380 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, const SgUnsignedCharList &buf) const;
32387
32392
32400 size_t readContent(Rose::BinaryAnalysis::Address abs_offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
32401
32414 Rose::BinaryAnalysis::Address size, bool strict=true);
32416 void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
32426 bool strict=true);
32427
32435
32443 std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true);
32445 bool strict=true);
32453 std::string readContentLocalString(Rose::BinaryAnalysis::Address rel_offset, bool strict=true);
32454
32460
32466 int64_t readContentLocalSleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true);
32467
32473 uint64_t readContentLocalUleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true);
32474
32482 unsigned char *writableContent(size_t nbytes);
32483
32490
32497
32501 bool isMapped() const;
32502
32507
32513
32518
32524
32530
32535
32541
32555 bool align();
32556
32557protected:
32558 virtual void destructorHelper() override;
32559
32561 // Deprecated 2023-11
32563public:
32564 Rose::BinaryAnalysis::Address get_file_alignment() const ROSE_DEPRECATED("use get_fileAlignment");
32565 void set_file_alignment(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_fileAlignment");
32566 std::string get_short_name() const ROSE_DEPRECATED("use get_shortName");
32567 void set_short_name(const std::string&) ROSE_DEPRECATED("use set_shortName");
32568 Rose::BinaryAnalysis::Address get_mapped_preferred_rva() const ROSE_DEPRECATED("use get_mappedPreferredRva");
32569 void set_mapped_preferred_rva(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedPreferredRva");
32570 Rose::BinaryAnalysis::Address get_mapped_size() const ROSE_DEPRECATED("use get_mappedSize");
32571 void set_mapped_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedSize");
32572 Rose::BinaryAnalysis::Address get_mapped_alignment() const ROSE_DEPRECATED("use get_mappedAlignment");
32573 void set_mapped_alignment(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedAlignment");
32574 bool get_mapped_rperm() const ROSE_DEPRECATED("use get_mappedReadPermission");
32575 void set_mapped_rperm(bool) ROSE_DEPRECATED("use set_mappedReadPermission");
32576 bool get_mapped_wperm() const ROSE_DEPRECATED("use get_mappedWritePermission");
32577 void set_mapped_wperm(bool) ROSE_DEPRECATED("use set_mappedWritePermission");
32578 bool get_mapped_xperm() const ROSE_DEPRECATED("use get_mappedExecutePermission");
32579 void set_mapped_xperm(bool) ROSE_DEPRECATED("use set_mappedExecutePermission");
32580 bool get_contains_code() const ROSE_DEPRECATED("use get_containsCode");
32581 void set_contains_code(bool) ROSE_DEPRECATED("use set_containsCode");
32582 Rose::BinaryAnalysis::Address get_mapped_actual_va() const ROSE_DEPRECATED("use get_mappedActualVa");
32583 void set_mapped_actual_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedActualVa");
32584 static void dump_containing_sections(FILE*, const std::string&, Rose::BinaryAnalysis::RelativeVirtualAddress,
32585 const SgAsmGenericSectionPtrList&)
32586 ROSE_DEPRECATED("use dumpContainingSections");
32587 void grab_content() ROSE_DEPRECATED("use grabContent");
32588 void unparse_holes(std::ostream&) const ROSE_DEPRECATED("use unparseHoles");
32589 SgAsmGenericHeader *is_file_header() ROSE_DEPRECATED("use isFileHeader");
32590 Rose::BinaryAnalysis::Address get_end_offset() const ROSE_DEPRECATED("use get_endOffset");
32591 Rose::BinaryAnalysis::Address write_uleb128(unsigned char*, Rose::BinaryAnalysis::Address, uint64_t) const
32592 ROSE_DEPRECATED("use writeUleb128");
32593 Rose::BinaryAnalysis::Address write_sleb128(unsigned char*, Rose::BinaryAnalysis::Address, int64_t) const
32594 ROSE_DEPRECATED("use writeSleb128");
32595 size_t read_content(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
32596 ROSE_DEPRECATED("use readContent");
32597 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, void*,
32598 Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContent");
32599 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, const Rose::BinaryAnalysis::RelativeVirtualAddress&, void*,
32600 Rose::BinaryAnalysis::Address, bool=true)
32601 ROSE_DEPRECATED("use readContent");
32602 size_t read_content_local(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
32603 ROSE_DEPRECATED("use readContentLocal");
32604 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, bool=true)
32605 ROSE_DEPRECATED("use readContentString");
32606 std::string read_content_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentString");
32607 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::RelativeVirtualAddress,
32608 bool=true)
32609 ROSE_DEPRECATED("use readContentString");
32610 std::string read_content_local_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentLocalString");
32611 SgUnsignedCharList read_content_local_ucl(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
32612 ROSE_DEPRECATED("use readContentLocalUcl");
32613 int64_t read_content_local_sleb128(Rose::BinaryAnalysis::Address*, bool=true) ROSE_DEPRECATED("use readContentLocalSleb128");
32614 uint64_t read_content_local_uleb128(Rose::BinaryAnalysis::Address*, bool=true) ROSE_DEPRECATED("use readContentLocalUleb128");
32615 unsigned char *writable_content(size_t) ROSE_DEPRECATED("use writableContent");
32616 Rose::BinaryAnalysis::AddressIntervalSet get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
32617 Rose::BinaryAnalysis::AddressIntervalSet get_unreferenced_extents() const ROSE_DEPRECATED("use get_unreferencedExtents");
32618 bool is_mapped() const ROSE_DEPRECATED("use isMapped");
32619 void clear_mapped() ROSE_DEPRECATED("use clearMapped");
32620 Rose::BinaryAnalysis::Address get_base_va() const ROSE_DEPRECATED("use get_baseVa");
32621 Rose::BinaryAnalysis::Address get_mapped_preferred_va() const ROSE_DEPRECATED("use get_mappedPreferredVa");
32622 Rose::BinaryAnalysis::Address get_va_offset(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_vaOffset");
32623 Rose::BinaryAnalysis::Address get_rva_offset(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_rvaOffset");
32624 Extent get_file_extent() const ROSE_DEPRECATED("use get_fileExtent");
32625 Extent get_mapped_preferred_extent() const ROSE_DEPRECATED("use get_mappedPreferredExtent");
32626public:
32629
32630public:
32633
32634protected:
32642#endif // SgAsmGenericSection_OTHERS
32643#ifdef DOCUMENTATION
32644};
32645#endif // DOCUMENTATION
32646
32647
32649// SgAsmCilUint8Heap -- MACHINE GENERATED; DO NOT MODIFY --
32651
32652DECLARE_LEAF_CLASS(AsmCilUint8Heap);
32653IS_SERIALIZABLE(AsmCilUint8Heap);
32654
32655#ifndef DOCUMENTATION
32656AsmCilUint8Heap.useSmallHeader(true);
32657#endif // !DOCUMENTATION
32658
32659#ifdef DOCUMENTATION
32662#endif // DOCUMENTATION
32663
32664#ifndef DOCUMENTATION
32665 AsmCilUint8Heap.setDataPrototype(
32666 "std::vector<uint8_t>", "Stream", "",
32667 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32668#endif // !DOCUMENTATION
32669
32670 DECLARE_OTHERS(AsmCilUint8Heap);
32671#if defined(SgAsmCilUint8Heap_OTHERS) || defined(DOCUMENTATION)
32672
32673 //----------------------- Boost serialization for SgAsmCilUint8Heap -----------------------
32674#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32675private:
32676 friend class boost::serialization::access;
32677
32678 template<class S>
32679 void serialize(S &s, const unsigned /*version*/) {
32680 debugSerializationBegin("SgAsmCilUint8Heap");
32681 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
32682 s & BOOST_SERIALIZATION_NVP(p_Stream);
32683 debugSerializationEnd("SgAsmCilUint8Heap");
32684 }
32685#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32686
32687public:
32688 std::vector<uint8_t> const& get_Stream() const;
32689 std::vector<uint8_t>& get_Stream();
32690public:
32691 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
32692 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
32693 void dump(std::ostream& os) const override;
32694public:
32697
32698public:
32701
32702public:
32704 SgAsmCilUint8Heap(uint32_t const& Offset,
32705 uint32_t const& Size,
32706 std::string const& Name,
32707 uint32_t const& NamePadding);
32708
32709protected:
32717#endif // SgAsmCilUint8Heap_OTHERS
32718#ifdef DOCUMENTATION
32719};
32720#endif // DOCUMENTATION
32721
32722
32724// SgAsmCilUint32Heap -- MACHINE GENERATED; DO NOT MODIFY --
32726
32727DECLARE_LEAF_CLASS(AsmCilUint32Heap);
32728IS_SERIALIZABLE(AsmCilUint32Heap);
32729
32730#ifndef DOCUMENTATION
32731AsmCilUint32Heap.useSmallHeader(true);
32732#endif // !DOCUMENTATION
32733
32734#ifdef DOCUMENTATION
32737#endif // DOCUMENTATION
32738
32739#ifndef DOCUMENTATION
32740 AsmCilUint32Heap.setDataPrototype(
32741 "std::vector<uint32_t>", "Stream", "",
32742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32743#endif // !DOCUMENTATION
32744
32745 DECLARE_OTHERS(AsmCilUint32Heap);
32746#if defined(SgAsmCilUint32Heap_OTHERS) || defined(DOCUMENTATION)
32747
32748 //----------------------- Boost serialization for SgAsmCilUint32Heap -----------------------
32749#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32750private:
32751 friend class boost::serialization::access;
32752
32753 template<class S>
32754 void serialize(S &s, const unsigned /*version*/) {
32755 debugSerializationBegin("SgAsmCilUint32Heap");
32756 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
32757 s & BOOST_SERIALIZATION_NVP(p_Stream);
32758 debugSerializationEnd("SgAsmCilUint32Heap");
32759 }
32760#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32761
32762public:
32763 std::vector<uint32_t> const& get_Stream() const;
32764 std::vector<uint32_t>& get_Stream();
32765public:
32766 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
32767 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
32768 void dump(std::ostream& os) const override;
32769public:
32772
32773public:
32776
32777public:
32779 SgAsmCilUint32Heap(uint32_t const& Offset,
32780 uint32_t const& Size,
32781 std::string const& Name,
32782 uint32_t const& NamePadding);
32783
32784protected:
32792#endif // SgAsmCilUint32Heap_OTHERS
32793#ifdef DOCUMENTATION
32794};
32795#endif // DOCUMENTATION
32796
32797
32799// SgAsmCilTypeSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
32801
32802DECLARE_LEAF_CLASS(AsmCilTypeSpecTable);
32803IS_SERIALIZABLE(AsmCilTypeSpecTable);
32804
32805#ifndef DOCUMENTATION
32806AsmCilTypeSpecTable.useSmallHeader(true);
32807#endif // !DOCUMENTATION
32808
32809#ifdef DOCUMENTATION
32812#endif // DOCUMENTATION
32813
32814#ifndef DOCUMENTATION
32815 AsmCilTypeSpecTable.setDataPrototype(
32816 "std::vector<SgAsmCilTypeSpec*>", "elements", "",
32817 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32818#endif // !DOCUMENTATION
32819
32820 DECLARE_OTHERS(AsmCilTypeSpecTable);
32821#if defined(SgAsmCilTypeSpecTable_OTHERS) || defined(DOCUMENTATION)
32822
32823 //----------------------- Boost serialization for SgAsmCilTypeSpecTable -----------------------
32824#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32825private:
32826 friend class boost::serialization::access;
32827
32828 template<class S>
32829 void serialize(S &s, const unsigned /*version*/) {
32830 debugSerializationBegin("SgAsmCilTypeSpecTable");
32831 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32832 s & BOOST_SERIALIZATION_NVP(p_elements);
32833 debugSerializationEnd("SgAsmCilTypeSpecTable");
32834 }
32835#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32836
32837public:
32838 std::vector<SgAsmCilTypeSpec*> const& get_elements() const;
32839 std::vector<SgAsmCilTypeSpec*>& get_elements();
32840public:
32842public:
32845
32846public:
32849
32850protected:
32858#endif // SgAsmCilTypeSpecTable_OTHERS
32859#ifdef DOCUMENTATION
32860};
32861#endif // DOCUMENTATION
32862
32863
32865// SgAsmCilTypeSpec -- MACHINE GENERATED; DO NOT MODIFY --
32867
32868DECLARE_LEAF_CLASS(AsmCilTypeSpec);
32869IS_SERIALIZABLE(AsmCilTypeSpec);
32870
32871#ifndef DOCUMENTATION
32872AsmCilTypeSpec.useSmallHeader(true);
32873#endif // !DOCUMENTATION
32874
32875#ifdef DOCUMENTATION
32878#endif // DOCUMENTATION
32879
32880#ifndef DOCUMENTATION
32881 AsmCilTypeSpec.setDataPrototype(
32882 "uint32_t", "Signature", "= 0",
32883 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32884#endif // !DOCUMENTATION
32885
32886 DECLARE_OTHERS(AsmCilTypeSpec);
32887#if defined(SgAsmCilTypeSpec_OTHERS) || defined(DOCUMENTATION)
32888
32889 //----------------------- Boost serialization for SgAsmCilTypeSpec -----------------------
32890#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32891private:
32892 friend class boost::serialization::access;
32893
32894 template<class S>
32895 void serialize(S &s, const unsigned /*version*/) {
32896 debugSerializationBegin("SgAsmCilTypeSpec");
32897 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32898 s & BOOST_SERIALIZATION_NVP(p_Signature);
32899 debugSerializationEnd("SgAsmCilTypeSpec");
32900 }
32901#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32902
32903public:
32909 uint32_t const& get_Signature() const;
32910 void set_Signature(uint32_t const&);
32912public:
32913 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32914 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32915 void dump(std::ostream&) const;
32916
32917 const std::uint8_t* get_Signature_blob() const;
32918public:
32921
32922public:
32925
32926protected:
32934#endif // SgAsmCilTypeSpec_OTHERS
32935#ifdef DOCUMENTATION
32936};
32937#endif // DOCUMENTATION
32938
32939
32941// SgAsmCilTypeRefTable -- MACHINE GENERATED; DO NOT MODIFY --
32943
32944DECLARE_LEAF_CLASS(AsmCilTypeRefTable);
32945IS_SERIALIZABLE(AsmCilTypeRefTable);
32946
32947#ifndef DOCUMENTATION
32948AsmCilTypeRefTable.useSmallHeader(true);
32949#endif // !DOCUMENTATION
32950
32951#ifdef DOCUMENTATION
32954#endif // DOCUMENTATION
32955
32956#ifndef DOCUMENTATION
32957 AsmCilTypeRefTable.setDataPrototype(
32958 "std::vector<SgAsmCilTypeRef*>", "elements", "",
32959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32960#endif // !DOCUMENTATION
32961
32962 DECLARE_OTHERS(AsmCilTypeRefTable);
32963#if defined(SgAsmCilTypeRefTable_OTHERS) || defined(DOCUMENTATION)
32964
32965 //----------------------- Boost serialization for SgAsmCilTypeRefTable -----------------------
32966#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32967private:
32968 friend class boost::serialization::access;
32969
32970 template<class S>
32971 void serialize(S &s, const unsigned /*version*/) {
32972 debugSerializationBegin("SgAsmCilTypeRefTable");
32973 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32974 s & BOOST_SERIALIZATION_NVP(p_elements);
32975 debugSerializationEnd("SgAsmCilTypeRefTable");
32976 }
32977#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32978
32979public:
32980 std::vector<SgAsmCilTypeRef*> const& get_elements() const;
32981 std::vector<SgAsmCilTypeRef*>& get_elements();
32982public:
32984public:
32987
32988public:
32991
32992protected:
33000#endif // SgAsmCilTypeRefTable_OTHERS
33001#ifdef DOCUMENTATION
33002};
33003#endif // DOCUMENTATION
33004
33005
33007// SgAsmCilTypeRef -- MACHINE GENERATED; DO NOT MODIFY --
33009
33010DECLARE_LEAF_CLASS(AsmCilTypeRef);
33011IS_SERIALIZABLE(AsmCilTypeRef);
33012
33013#ifndef DOCUMENTATION
33014AsmCilTypeRef.useSmallHeader(true);
33015#endif // !DOCUMENTATION
33016
33017#ifdef DOCUMENTATION
33020#endif // DOCUMENTATION
33021
33022#ifndef DOCUMENTATION
33023 AsmCilTypeRef.setDataPrototype(
33024 "uint16_t", "ResolutionScope", "= 0",
33025 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33026#endif // !DOCUMENTATION
33027
33028#ifndef DOCUMENTATION
33029 AsmCilTypeRef.setDataPrototype(
33030 "uint32_t", "TypeName", "= 0",
33031 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33032#endif // !DOCUMENTATION
33033
33034#ifndef DOCUMENTATION
33035 AsmCilTypeRef.setDataPrototype(
33036 "uint32_t", "TypeNamespace", "= 0",
33037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33038#endif // !DOCUMENTATION
33039
33040 DECLARE_OTHERS(AsmCilTypeRef);
33041#if defined(SgAsmCilTypeRef_OTHERS) || defined(DOCUMENTATION)
33042
33043 //----------------------- Boost serialization for SgAsmCilTypeRef -----------------------
33044#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33045private:
33046 friend class boost::serialization::access;
33047
33048 template<class S>
33049 void serialize(S &s, const unsigned /*version*/) {
33050 debugSerializationBegin("SgAsmCilTypeRef");
33051 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33052 s & BOOST_SERIALIZATION_NVP(p_ResolutionScope);
33053 s & BOOST_SERIALIZATION_NVP(p_TypeName);
33054 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
33055 debugSerializationEnd("SgAsmCilTypeRef");
33056 }
33057#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33058
33059public:
33065 uint16_t const& get_ResolutionScope() const;
33066 void set_ResolutionScope(uint16_t const&);
33069public:
33075 uint32_t const& get_TypeName() const;
33076 void set_TypeName(uint32_t const&);
33079public:
33085 uint32_t const& get_TypeNamespace() const;
33086 void set_TypeNamespace(uint32_t const&);
33088public:
33089 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33090 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33091 void dump(std::ostream&) const;
33092
33093 const SgAsmCilMetadata* get_ResolutionScope_object() const;
33094 const std::uint8_t* get_TypeName_string() const;
33095 const std::uint8_t* get_TypeNamespace_string() const;
33096public:
33099
33100public:
33103
33104protected:
33112#endif // SgAsmCilTypeRef_OTHERS
33113#ifdef DOCUMENTATION
33114};
33115#endif // DOCUMENTATION
33116
33117
33119// SgAsmCilTypeDefTable -- MACHINE GENERATED; DO NOT MODIFY --
33121
33122DECLARE_LEAF_CLASS(AsmCilTypeDefTable);
33123IS_SERIALIZABLE(AsmCilTypeDefTable);
33124
33125#ifndef DOCUMENTATION
33126AsmCilTypeDefTable.useSmallHeader(true);
33127#endif // !DOCUMENTATION
33128
33129#ifdef DOCUMENTATION
33132#endif // DOCUMENTATION
33133
33134#ifndef DOCUMENTATION
33135 AsmCilTypeDefTable.setDataPrototype(
33136 "std::vector<SgAsmCilTypeDef*>", "elements", "",
33137 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33138#endif // !DOCUMENTATION
33139
33140 DECLARE_OTHERS(AsmCilTypeDefTable);
33141#if defined(SgAsmCilTypeDefTable_OTHERS) || defined(DOCUMENTATION)
33142
33143 //----------------------- Boost serialization for SgAsmCilTypeDefTable -----------------------
33144#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33145private:
33146 friend class boost::serialization::access;
33147
33148 template<class S>
33149 void serialize(S &s, const unsigned /*version*/) {
33150 debugSerializationBegin("SgAsmCilTypeDefTable");
33151 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33152 s & BOOST_SERIALIZATION_NVP(p_elements);
33153 debugSerializationEnd("SgAsmCilTypeDefTable");
33154 }
33155#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33156
33157public:
33158 std::vector<SgAsmCilTypeDef*> const& get_elements() const;
33159 std::vector<SgAsmCilTypeDef*>& get_elements();
33160public:
33162public:
33165
33166public:
33169
33170protected:
33178#endif // SgAsmCilTypeDefTable_OTHERS
33179#ifdef DOCUMENTATION
33180};
33181#endif // DOCUMENTATION
33182
33183
33185// SgAsmCilTypeDef -- MACHINE GENERATED; DO NOT MODIFY --
33187
33188DECLARE_LEAF_CLASS(AsmCilTypeDef);
33189IS_SERIALIZABLE(AsmCilTypeDef);
33190
33191#ifndef DOCUMENTATION
33192AsmCilTypeDef.useSmallHeader(true);
33193#endif // !DOCUMENTATION
33194
33195#ifdef DOCUMENTATION
33198#endif // DOCUMENTATION
33199
33200#ifndef DOCUMENTATION
33201 AsmCilTypeDef.setDataPrototype(
33202 "uint32_t", "Flags", "= 0",
33203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33204#endif // !DOCUMENTATION
33205
33206#ifndef DOCUMENTATION
33207 AsmCilTypeDef.setDataPrototype(
33208 "uint32_t", "TypeName", "= 0",
33209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33210#endif // !DOCUMENTATION
33211
33212#ifndef DOCUMENTATION
33213 AsmCilTypeDef.setDataPrototype(
33214 "uint32_t", "TypeNamespace", "= 0",
33215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33216#endif // !DOCUMENTATION
33217
33218#ifndef DOCUMENTATION
33219 AsmCilTypeDef.setDataPrototype(
33220 "uint32_t", "Extends", "= 0",
33221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33222#endif // !DOCUMENTATION
33223
33224#ifndef DOCUMENTATION
33225 AsmCilTypeDef.setDataPrototype(
33226 "uint32_t", "FieldList", "= 0",
33227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33228#endif // !DOCUMENTATION
33229
33230#ifndef DOCUMENTATION
33231 AsmCilTypeDef.setDataPrototype(
33232 "uint32_t", "MethodList", "= 0",
33233 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33234#endif // !DOCUMENTATION
33235
33236 DECLARE_OTHERS(AsmCilTypeDef);
33237#if defined(SgAsmCilTypeDef_OTHERS) || defined(DOCUMENTATION)
33238
33239 //----------------------- Boost serialization for SgAsmCilTypeDef -----------------------
33240#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33241private:
33242 friend class boost::serialization::access;
33243
33244 template<class S>
33245 void serialize(S &s, const unsigned /*version*/) {
33246 debugSerializationBegin("SgAsmCilTypeDef");
33247 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33248 s & BOOST_SERIALIZATION_NVP(p_Flags);
33249 s & BOOST_SERIALIZATION_NVP(p_TypeName);
33250 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
33251 s & BOOST_SERIALIZATION_NVP(p_Extends);
33252 s & BOOST_SERIALIZATION_NVP(p_FieldList);
33253 s & BOOST_SERIALIZATION_NVP(p_MethodList);
33254 debugSerializationEnd("SgAsmCilTypeDef");
33255 }
33256#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33257
33258public:
33264 uint32_t const& get_Flags() const;
33265 void set_Flags(uint32_t const&);
33268public:
33274 uint32_t const& get_TypeName() const;
33275 void set_TypeName(uint32_t const&);
33278public:
33284 uint32_t const& get_TypeNamespace() const;
33285 void set_TypeNamespace(uint32_t const&);
33288public:
33294 uint32_t const& get_Extends() const;
33295 void set_Extends(uint32_t const&);
33298public:
33304 uint32_t const& get_FieldList() const;
33305 void set_FieldList(uint32_t const&);
33308public:
33314 uint32_t const& get_MethodList() const;
33315 void set_MethodList(uint32_t const&);
33317public:
33318 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33319 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33320 void dump(std::ostream&) const;
33321
33322 const std::uint8_t* get_TypeName_string() const;
33323 const std::uint8_t* get_TypeNamespace_string() const;
33324 const SgAsmCilMetadata* get_Extends_object() const;
33325 const SgAsmCilMetadata* get_FieldList_object() const;
33326 const SgAsmCilMetadata* get_MethodList_object() const;
33327 const SgAsmCilMetadata* get_MethodList_object(const SgAsmCilMethodDef*) const;
33328public:
33331
33332public:
33335
33336protected:
33344#endif // SgAsmCilTypeDef_OTHERS
33345#ifdef DOCUMENTATION
33346};
33347#endif // DOCUMENTATION
33348
33349
33351// SgAsmCilStandAloneSigTable -- MACHINE GENERATED; DO NOT MODIFY --
33353
33354DECLARE_LEAF_CLASS(AsmCilStandAloneSigTable);
33355IS_SERIALIZABLE(AsmCilStandAloneSigTable);
33356
33357#ifndef DOCUMENTATION
33358AsmCilStandAloneSigTable.useSmallHeader(true);
33359#endif // !DOCUMENTATION
33360
33361#ifdef DOCUMENTATION
33364#endif // DOCUMENTATION
33365
33366#ifndef DOCUMENTATION
33367 AsmCilStandAloneSigTable.setDataPrototype(
33368 "std::vector<SgAsmCilStandAloneSig*>", "elements", "",
33369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33370#endif // !DOCUMENTATION
33371
33372 DECLARE_OTHERS(AsmCilStandAloneSigTable);
33373#if defined(SgAsmCilStandAloneSigTable_OTHERS) || defined(DOCUMENTATION)
33374
33375 //----------------------- Boost serialization for SgAsmCilStandAloneSigTable -----------------------
33376#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33377private:
33378 friend class boost::serialization::access;
33379
33380 template<class S>
33381 void serialize(S &s, const unsigned /*version*/) {
33382 debugSerializationBegin("SgAsmCilStandAloneSigTable");
33383 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33384 s & BOOST_SERIALIZATION_NVP(p_elements);
33385 debugSerializationEnd("SgAsmCilStandAloneSigTable");
33386 }
33387#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33388
33389public:
33390 std::vector<SgAsmCilStandAloneSig*> const& get_elements() const;
33391 std::vector<SgAsmCilStandAloneSig*>& get_elements();
33392public:
33394public:
33397
33398public:
33401
33402protected:
33410#endif // SgAsmCilStandAloneSigTable_OTHERS
33411#ifdef DOCUMENTATION
33412};
33413#endif // DOCUMENTATION
33414
33415
33417// SgAsmCilStandAloneSig -- MACHINE GENERATED; DO NOT MODIFY --
33419
33420DECLARE_LEAF_CLASS(AsmCilStandAloneSig);
33421IS_SERIALIZABLE(AsmCilStandAloneSig);
33422
33423#ifndef DOCUMENTATION
33424AsmCilStandAloneSig.useSmallHeader(true);
33425#endif // !DOCUMENTATION
33426
33427#ifdef DOCUMENTATION
33430#endif // DOCUMENTATION
33431
33432#ifndef DOCUMENTATION
33433 AsmCilStandAloneSig.setDataPrototype(
33434 "uint32_t", "Signature", "= 0",
33435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33436#endif // !DOCUMENTATION
33437
33438 DECLARE_OTHERS(AsmCilStandAloneSig);
33439#if defined(SgAsmCilStandAloneSig_OTHERS) || defined(DOCUMENTATION)
33440
33441 //----------------------- Boost serialization for SgAsmCilStandAloneSig -----------------------
33442#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33443private:
33444 friend class boost::serialization::access;
33445
33446 template<class S>
33447 void serialize(S &s, const unsigned /*version*/) {
33448 debugSerializationBegin("SgAsmCilStandAloneSig");
33449 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33450 s & BOOST_SERIALIZATION_NVP(p_Signature);
33451 debugSerializationEnd("SgAsmCilStandAloneSig");
33452 }
33453#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33454
33455public:
33461 uint32_t const& get_Signature() const;
33462 void set_Signature(uint32_t const&);
33464public:
33465 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33466 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33467 void dump(std::ostream&) const;
33468
33469 const std::uint8_t* get_Signature_blob() const;
33470public:
33473
33474public:
33477
33478protected:
33486#endif // SgAsmCilStandAloneSig_OTHERS
33487#ifdef DOCUMENTATION
33488};
33489#endif // DOCUMENTATION
33490
33491
33493// SgAsmCilPropertyTable -- MACHINE GENERATED; DO NOT MODIFY --
33495
33496DECLARE_LEAF_CLASS(AsmCilPropertyTable);
33497IS_SERIALIZABLE(AsmCilPropertyTable);
33498
33499#ifndef DOCUMENTATION
33500AsmCilPropertyTable.useSmallHeader(true);
33501#endif // !DOCUMENTATION
33502
33503#ifdef DOCUMENTATION
33506#endif // DOCUMENTATION
33507
33508#ifndef DOCUMENTATION
33509 AsmCilPropertyTable.setDataPrototype(
33510 "std::vector<SgAsmCilProperty*>", "elements", "",
33511 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33512#endif // !DOCUMENTATION
33513
33514 DECLARE_OTHERS(AsmCilPropertyTable);
33515#if defined(SgAsmCilPropertyTable_OTHERS) || defined(DOCUMENTATION)
33516
33517 //----------------------- Boost serialization for SgAsmCilPropertyTable -----------------------
33518#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33519private:
33520 friend class boost::serialization::access;
33521
33522 template<class S>
33523 void serialize(S &s, const unsigned /*version*/) {
33524 debugSerializationBegin("SgAsmCilPropertyTable");
33525 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33526 s & BOOST_SERIALIZATION_NVP(p_elements);
33527 debugSerializationEnd("SgAsmCilPropertyTable");
33528 }
33529#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33530
33531public:
33532 std::vector<SgAsmCilProperty*> const& get_elements() const;
33533 std::vector<SgAsmCilProperty*>& get_elements();
33534public:
33536public:
33539
33540public:
33543
33544protected:
33552#endif // SgAsmCilPropertyTable_OTHERS
33553#ifdef DOCUMENTATION
33554};
33555#endif // DOCUMENTATION
33556
33557
33559// SgAsmCilPropertyMapTable -- MACHINE GENERATED; DO NOT MODIFY --
33561
33562DECLARE_LEAF_CLASS(AsmCilPropertyMapTable);
33563IS_SERIALIZABLE(AsmCilPropertyMapTable);
33564
33565#ifndef DOCUMENTATION
33566AsmCilPropertyMapTable.useSmallHeader(true);
33567#endif // !DOCUMENTATION
33568
33569#ifdef DOCUMENTATION
33572#endif // DOCUMENTATION
33573
33574#ifndef DOCUMENTATION
33575 AsmCilPropertyMapTable.setDataPrototype(
33576 "std::vector<SgAsmCilPropertyMap*>", "elements", "",
33577 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33578#endif // !DOCUMENTATION
33579
33580 DECLARE_OTHERS(AsmCilPropertyMapTable);
33581#if defined(SgAsmCilPropertyMapTable_OTHERS) || defined(DOCUMENTATION)
33582
33583 //----------------------- Boost serialization for SgAsmCilPropertyMapTable -----------------------
33584#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33585private:
33586 friend class boost::serialization::access;
33587
33588 template<class S>
33589 void serialize(S &s, const unsigned /*version*/) {
33590 debugSerializationBegin("SgAsmCilPropertyMapTable");
33591 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33592 s & BOOST_SERIALIZATION_NVP(p_elements);
33593 debugSerializationEnd("SgAsmCilPropertyMapTable");
33594 }
33595#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33596
33597public:
33598 std::vector<SgAsmCilPropertyMap*> const& get_elements() const;
33599 std::vector<SgAsmCilPropertyMap*>& get_elements();
33600public:
33602public:
33605
33606public:
33609
33610protected:
33618#endif // SgAsmCilPropertyMapTable_OTHERS
33619#ifdef DOCUMENTATION
33620};
33621#endif // DOCUMENTATION
33622
33623
33625// SgAsmCilPropertyMap -- MACHINE GENERATED; DO NOT MODIFY --
33627
33628DECLARE_LEAF_CLASS(AsmCilPropertyMap);
33629IS_SERIALIZABLE(AsmCilPropertyMap);
33630
33631#ifndef DOCUMENTATION
33632AsmCilPropertyMap.useSmallHeader(true);
33633#endif // !DOCUMENTATION
33634
33635#ifdef DOCUMENTATION
33638#endif // DOCUMENTATION
33639
33640#ifndef DOCUMENTATION
33641 AsmCilPropertyMap.setDataPrototype(
33642 "uint32_t", "Parent", "= 0",
33643 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33644#endif // !DOCUMENTATION
33645
33646#ifndef DOCUMENTATION
33647 AsmCilPropertyMap.setDataPrototype(
33648 "uint32_t", "PropertyList", "= 0",
33649 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33650#endif // !DOCUMENTATION
33651
33652 DECLARE_OTHERS(AsmCilPropertyMap);
33653#if defined(SgAsmCilPropertyMap_OTHERS) || defined(DOCUMENTATION)
33654
33655 //----------------------- Boost serialization for SgAsmCilPropertyMap -----------------------
33656#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33657private:
33658 friend class boost::serialization::access;
33659
33660 template<class S>
33661 void serialize(S &s, const unsigned /*version*/) {
33662 debugSerializationBegin("SgAsmCilPropertyMap");
33663 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33664 s & BOOST_SERIALIZATION_NVP(p_Parent);
33665 s & BOOST_SERIALIZATION_NVP(p_PropertyList);
33666 debugSerializationEnd("SgAsmCilPropertyMap");
33667 }
33668#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33669
33670public:
33676 uint32_t const& get_Parent() const;
33677 void set_Parent(uint32_t const&);
33680public:
33686 uint32_t const& get_PropertyList() const;
33687 void set_PropertyList(uint32_t const&);
33689public:
33690 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33691 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33692 void dump(std::ostream&) const;
33693
33694 const SgAsmCilMetadata* get_Parent_object() const;
33695 const SgAsmCilMetadata* get_PropertyList_object() const;
33696public:
33699
33700public:
33703
33704protected:
33712#endif // SgAsmCilPropertyMap_OTHERS
33713#ifdef DOCUMENTATION
33714};
33715#endif // DOCUMENTATION
33716
33717
33719// SgAsmCilProperty -- MACHINE GENERATED; DO NOT MODIFY --
33721
33722DECLARE_LEAF_CLASS(AsmCilProperty);
33723IS_SERIALIZABLE(AsmCilProperty);
33724
33725#ifndef DOCUMENTATION
33726AsmCilProperty.useSmallHeader(true);
33727#endif // !DOCUMENTATION
33728
33729#ifdef DOCUMENTATION
33732#endif // DOCUMENTATION
33733
33734#ifndef DOCUMENTATION
33735 AsmCilProperty.setDataPrototype(
33736 "uint16_t", "Flags", "= 0",
33737 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33738#endif // !DOCUMENTATION
33739
33740#ifndef DOCUMENTATION
33741 AsmCilProperty.setDataPrototype(
33742 "uint32_t", "Name", "= 0",
33743 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33744#endif // !DOCUMENTATION
33745
33746#ifndef DOCUMENTATION
33747 AsmCilProperty.setDataPrototype(
33748 "uint32_t", "Type", "= 0",
33749 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33750#endif // !DOCUMENTATION
33751
33752 DECLARE_OTHERS(AsmCilProperty);
33753#if defined(SgAsmCilProperty_OTHERS) || defined(DOCUMENTATION)
33754
33755 //----------------------- Boost serialization for SgAsmCilProperty -----------------------
33756#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33757private:
33758 friend class boost::serialization::access;
33759
33760 template<class S>
33761 void serialize(S &s, const unsigned /*version*/) {
33762 debugSerializationBegin("SgAsmCilProperty");
33763 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33764 s & BOOST_SERIALIZATION_NVP(p_Flags);
33765 s & BOOST_SERIALIZATION_NVP(p_Name);
33766 s & BOOST_SERIALIZATION_NVP(p_Type);
33767 debugSerializationEnd("SgAsmCilProperty");
33768 }
33769#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33770
33771public:
33777 uint16_t const& get_Flags() const;
33778 void set_Flags(uint16_t const&);
33781public:
33787 uint32_t const& get_Name() const;
33788 void set_Name(uint32_t const&);
33791public:
33797 uint32_t const& get_Type() const;
33798 void set_Type(uint32_t const&);
33800public:
33801 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33802 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33803 void dump(std::ostream&) const;
33804
33805 const std::uint8_t* get_Name_string() const;
33806 const std::uint8_t* get_Type_blob() const;
33807public:
33810
33811public:
33814
33815protected:
33823#endif // SgAsmCilProperty_OTHERS
33824#ifdef DOCUMENTATION
33825};
33826#endif // DOCUMENTATION
33827
33828
33830// SgAsmCilParamTable -- MACHINE GENERATED; DO NOT MODIFY --
33832
33833DECLARE_LEAF_CLASS(AsmCilParamTable);
33834IS_SERIALIZABLE(AsmCilParamTable);
33835
33836#ifndef DOCUMENTATION
33837AsmCilParamTable.useSmallHeader(true);
33838#endif // !DOCUMENTATION
33839
33840#ifdef DOCUMENTATION
33843#endif // DOCUMENTATION
33844
33845#ifndef DOCUMENTATION
33846 AsmCilParamTable.setDataPrototype(
33847 "std::vector<SgAsmCilParam*>", "elements", "",
33848 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33849#endif // !DOCUMENTATION
33850
33851 DECLARE_OTHERS(AsmCilParamTable);
33852#if defined(SgAsmCilParamTable_OTHERS) || defined(DOCUMENTATION)
33853
33854 //----------------------- Boost serialization for SgAsmCilParamTable -----------------------
33855#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33856private:
33857 friend class boost::serialization::access;
33858
33859 template<class S>
33860 void serialize(S &s, const unsigned /*version*/) {
33861 debugSerializationBegin("SgAsmCilParamTable");
33862 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33863 s & BOOST_SERIALIZATION_NVP(p_elements);
33864 debugSerializationEnd("SgAsmCilParamTable");
33865 }
33866#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33867
33868public:
33869 std::vector<SgAsmCilParam*> const& get_elements() const;
33870 std::vector<SgAsmCilParam*>& get_elements();
33871public:
33873public:
33876
33877public:
33880
33881protected:
33889#endif // SgAsmCilParamTable_OTHERS
33890#ifdef DOCUMENTATION
33891};
33892#endif // DOCUMENTATION
33893
33894
33896// SgAsmCilParam -- MACHINE GENERATED; DO NOT MODIFY --
33898
33899DECLARE_LEAF_CLASS(AsmCilParam);
33900IS_SERIALIZABLE(AsmCilParam);
33901
33902#ifndef DOCUMENTATION
33903AsmCilParam.useSmallHeader(true);
33904#endif // !DOCUMENTATION
33905
33906#ifdef DOCUMENTATION
33909#endif // DOCUMENTATION
33910
33911#ifndef DOCUMENTATION
33912 AsmCilParam.setDataPrototype(
33913 "uint16_t", "Flags", "= 0",
33914 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33915#endif // !DOCUMENTATION
33916
33917#ifndef DOCUMENTATION
33918 AsmCilParam.setDataPrototype(
33919 "uint16_t", "Sequence", "= 0",
33920 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33921#endif // !DOCUMENTATION
33922
33923#ifndef DOCUMENTATION
33924 AsmCilParam.setDataPrototype(
33925 "uint32_t", "Name", "= 0",
33926 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33927#endif // !DOCUMENTATION
33928
33929 DECLARE_OTHERS(AsmCilParam);
33930#if defined(SgAsmCilParam_OTHERS) || defined(DOCUMENTATION)
33931
33932 //----------------------- Boost serialization for SgAsmCilParam -----------------------
33933#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33934private:
33935 friend class boost::serialization::access;
33936
33937 template<class S>
33938 void serialize(S &s, const unsigned /*version*/) {
33939 debugSerializationBegin("SgAsmCilParam");
33940 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33941 s & BOOST_SERIALIZATION_NVP(p_Flags);
33942 s & BOOST_SERIALIZATION_NVP(p_Sequence);
33943 s & BOOST_SERIALIZATION_NVP(p_Name);
33944 debugSerializationEnd("SgAsmCilParam");
33945 }
33946#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33947
33948public:
33954 uint16_t const& get_Flags() const;
33955 void set_Flags(uint16_t const&);
33958public:
33964 uint16_t const& get_Sequence() const;
33965 void set_Sequence(uint16_t const&);
33968public:
33974 uint32_t const& get_Name() const;
33975 void set_Name(uint32_t const&);
33977public:
33978 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33979 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33980 void dump(std::ostream&) const;
33981
33982 const std::uint8_t* get_Name_string() const;
33983public:
33986
33987public:
33990
33991protected:
33999#endif // SgAsmCilParam_OTHERS
34000#ifdef DOCUMENTATION
34001};
34002#endif // DOCUMENTATION
34003
34004
34006// SgAsmCilNestedClassTable -- MACHINE GENERATED; DO NOT MODIFY --
34008
34009DECLARE_LEAF_CLASS(AsmCilNestedClassTable);
34010IS_SERIALIZABLE(AsmCilNestedClassTable);
34011
34012#ifndef DOCUMENTATION
34013AsmCilNestedClassTable.useSmallHeader(true);
34014#endif // !DOCUMENTATION
34015
34016#ifdef DOCUMENTATION
34019#endif // DOCUMENTATION
34020
34021#ifndef DOCUMENTATION
34022 AsmCilNestedClassTable.setDataPrototype(
34023 "std::vector<SgAsmCilNestedClass*>", "elements", "",
34024 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34025#endif // !DOCUMENTATION
34026
34027 DECLARE_OTHERS(AsmCilNestedClassTable);
34028#if defined(SgAsmCilNestedClassTable_OTHERS) || defined(DOCUMENTATION)
34029
34030 //----------------------- Boost serialization for SgAsmCilNestedClassTable -----------------------
34031#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34032private:
34033 friend class boost::serialization::access;
34034
34035 template<class S>
34036 void serialize(S &s, const unsigned /*version*/) {
34037 debugSerializationBegin("SgAsmCilNestedClassTable");
34038 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34039 s & BOOST_SERIALIZATION_NVP(p_elements);
34040 debugSerializationEnd("SgAsmCilNestedClassTable");
34041 }
34042#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34043
34044public:
34045 std::vector<SgAsmCilNestedClass*> const& get_elements() const;
34046 std::vector<SgAsmCilNestedClass*>& get_elements();
34047public:
34049public:
34052
34053public:
34056
34057protected:
34065#endif // SgAsmCilNestedClassTable_OTHERS
34066#ifdef DOCUMENTATION
34067};
34068#endif // DOCUMENTATION
34069
34070
34072// SgAsmCilNestedClass -- MACHINE GENERATED; DO NOT MODIFY --
34074
34075DECLARE_LEAF_CLASS(AsmCilNestedClass);
34076IS_SERIALIZABLE(AsmCilNestedClass);
34077
34078#ifndef DOCUMENTATION
34079AsmCilNestedClass.useSmallHeader(true);
34080#endif // !DOCUMENTATION
34081
34082#ifdef DOCUMENTATION
34085#endif // DOCUMENTATION
34086
34087#ifndef DOCUMENTATION
34088 AsmCilNestedClass.setDataPrototype(
34089 "uint32_t", "NestedClass", "= 0",
34090 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34091#endif // !DOCUMENTATION
34092
34093#ifndef DOCUMENTATION
34094 AsmCilNestedClass.setDataPrototype(
34095 "uint32_t", "EnclosingClass", "= 0",
34096 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34097#endif // !DOCUMENTATION
34098
34099 DECLARE_OTHERS(AsmCilNestedClass);
34100#if defined(SgAsmCilNestedClass_OTHERS) || defined(DOCUMENTATION)
34101
34102 //----------------------- Boost serialization for SgAsmCilNestedClass -----------------------
34103#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34104private:
34105 friend class boost::serialization::access;
34106
34107 template<class S>
34108 void serialize(S &s, const unsigned /*version*/) {
34109 debugSerializationBegin("SgAsmCilNestedClass");
34110 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34111 s & BOOST_SERIALIZATION_NVP(p_NestedClass);
34112 s & BOOST_SERIALIZATION_NVP(p_EnclosingClass);
34113 debugSerializationEnd("SgAsmCilNestedClass");
34114 }
34115#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34116
34117public:
34123 uint32_t const& get_NestedClass() const;
34124 void set_NestedClass(uint32_t const&);
34127public:
34133 uint32_t const& get_EnclosingClass() const;
34134 void set_EnclosingClass(uint32_t const&);
34136public:
34137 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34138 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34139 void dump(std::ostream&) const;
34140
34141 const SgAsmCilMetadata* get_NestedClass_object() const;
34142 const SgAsmCilMetadata* get_EnclosingClass_object() const;
34143public:
34146
34147public:
34150
34151protected:
34159#endif // SgAsmCilNestedClass_OTHERS
34160#ifdef DOCUMENTATION
34161};
34162#endif // DOCUMENTATION
34163
34164
34166// SgAsmCilModuleTable -- MACHINE GENERATED; DO NOT MODIFY --
34168
34169DECLARE_LEAF_CLASS(AsmCilModuleTable);
34170IS_SERIALIZABLE(AsmCilModuleTable);
34171
34172#ifndef DOCUMENTATION
34173AsmCilModuleTable.useSmallHeader(true);
34174#endif // !DOCUMENTATION
34175
34176#ifdef DOCUMENTATION
34179#endif // DOCUMENTATION
34180
34181#ifndef DOCUMENTATION
34182 AsmCilModuleTable.setDataPrototype(
34183 "std::vector<SgAsmCilModule*>", "elements", "",
34184 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34185#endif // !DOCUMENTATION
34186
34187 DECLARE_OTHERS(AsmCilModuleTable);
34188#if defined(SgAsmCilModuleTable_OTHERS) || defined(DOCUMENTATION)
34189
34190 //----------------------- Boost serialization for SgAsmCilModuleTable -----------------------
34191#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34192private:
34193 friend class boost::serialization::access;
34194
34195 template<class S>
34196 void serialize(S &s, const unsigned /*version*/) {
34197 debugSerializationBegin("SgAsmCilModuleTable");
34198 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34199 s & BOOST_SERIALIZATION_NVP(p_elements);
34200 debugSerializationEnd("SgAsmCilModuleTable");
34201 }
34202#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34203
34204public:
34205 std::vector<SgAsmCilModule*> const& get_elements() const;
34206 std::vector<SgAsmCilModule*>& get_elements();
34207public:
34209public:
34212
34213public:
34216
34217protected:
34225#endif // SgAsmCilModuleTable_OTHERS
34226#ifdef DOCUMENTATION
34227};
34228#endif // DOCUMENTATION
34229
34230
34232// SgAsmCilModuleRefTable -- MACHINE GENERATED; DO NOT MODIFY --
34234
34235DECLARE_LEAF_CLASS(AsmCilModuleRefTable);
34236IS_SERIALIZABLE(AsmCilModuleRefTable);
34237
34238#ifndef DOCUMENTATION
34239AsmCilModuleRefTable.useSmallHeader(true);
34240#endif // !DOCUMENTATION
34241
34242#ifdef DOCUMENTATION
34245#endif // DOCUMENTATION
34246
34247#ifndef DOCUMENTATION
34248 AsmCilModuleRefTable.setDataPrototype(
34249 "std::vector<SgAsmCilModuleRef*>", "elements", "",
34250 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34251#endif // !DOCUMENTATION
34252
34253 DECLARE_OTHERS(AsmCilModuleRefTable);
34254#if defined(SgAsmCilModuleRefTable_OTHERS) || defined(DOCUMENTATION)
34255
34256 //----------------------- Boost serialization for SgAsmCilModuleRefTable -----------------------
34257#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34258private:
34259 friend class boost::serialization::access;
34260
34261 template<class S>
34262 void serialize(S &s, const unsigned /*version*/) {
34263 debugSerializationBegin("SgAsmCilModuleRefTable");
34264 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34265 s & BOOST_SERIALIZATION_NVP(p_elements);
34266 debugSerializationEnd("SgAsmCilModuleRefTable");
34267 }
34268#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34269
34270public:
34271 std::vector<SgAsmCilModuleRef*> const& get_elements() const;
34272 std::vector<SgAsmCilModuleRef*>& get_elements();
34273public:
34275public:
34278
34279public:
34282
34283protected:
34291#endif // SgAsmCilModuleRefTable_OTHERS
34292#ifdef DOCUMENTATION
34293};
34294#endif // DOCUMENTATION
34295
34296
34298// SgAsmCilModuleRef -- MACHINE GENERATED; DO NOT MODIFY --
34300
34301DECLARE_LEAF_CLASS(AsmCilModuleRef);
34302IS_SERIALIZABLE(AsmCilModuleRef);
34303
34304#ifndef DOCUMENTATION
34305AsmCilModuleRef.useSmallHeader(true);
34306#endif // !DOCUMENTATION
34307
34308#ifdef DOCUMENTATION
34311#endif // DOCUMENTATION
34312
34313#ifndef DOCUMENTATION
34314 AsmCilModuleRef.setDataPrototype(
34315 "uint32_t", "Name", "= 0",
34316 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34317#endif // !DOCUMENTATION
34318
34319 DECLARE_OTHERS(AsmCilModuleRef);
34320#if defined(SgAsmCilModuleRef_OTHERS) || defined(DOCUMENTATION)
34321
34322 //----------------------- Boost serialization for SgAsmCilModuleRef -----------------------
34323#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34324private:
34325 friend class boost::serialization::access;
34326
34327 template<class S>
34328 void serialize(S &s, const unsigned /*version*/) {
34329 debugSerializationBegin("SgAsmCilModuleRef");
34330 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34331 s & BOOST_SERIALIZATION_NVP(p_Name);
34332 debugSerializationEnd("SgAsmCilModuleRef");
34333 }
34334#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34335
34336public:
34342 uint32_t const& get_Name() const;
34343 void set_Name(uint32_t const&);
34345public:
34346 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34347 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34348 void dump(std::ostream&) const;
34349
34350 const std::uint8_t* get_Name_string() const;
34351public:
34354
34355public:
34358
34359protected:
34367#endif // SgAsmCilModuleRef_OTHERS
34368#ifdef DOCUMENTATION
34369};
34370#endif // DOCUMENTATION
34371
34372
34374// SgAsmCilModule -- MACHINE GENERATED; DO NOT MODIFY --
34376
34377DECLARE_LEAF_CLASS(AsmCilModule);
34378IS_SERIALIZABLE(AsmCilModule);
34379
34380#ifndef DOCUMENTATION
34381AsmCilModule.useSmallHeader(true);
34382#endif // !DOCUMENTATION
34383
34384#ifdef DOCUMENTATION
34387#endif // DOCUMENTATION
34388
34389#ifndef DOCUMENTATION
34390 AsmCilModule.setDataPrototype(
34391 "uint16_t", "Generation", "= 0",
34392 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34393#endif // !DOCUMENTATION
34394
34395#ifndef DOCUMENTATION
34396 AsmCilModule.setDataPrototype(
34397 "uint32_t", "Name", "= 0",
34398 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34399#endif // !DOCUMENTATION
34400
34401#ifndef DOCUMENTATION
34402 AsmCilModule.setDataPrototype(
34403 "uint32_t", "Mvid", "= 0",
34404 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34405#endif // !DOCUMENTATION
34406
34407#ifndef DOCUMENTATION
34408 AsmCilModule.setDataPrototype(
34409 "uint32_t", "Encld", "= 0",
34410 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34411#endif // !DOCUMENTATION
34412
34413#ifndef DOCUMENTATION
34414 AsmCilModule.setDataPrototype(
34415 "uint32_t", "EncBaseId", "= 0",
34416 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34417#endif // !DOCUMENTATION
34418
34419 DECLARE_OTHERS(AsmCilModule);
34420#if defined(SgAsmCilModule_OTHERS) || defined(DOCUMENTATION)
34421
34422 //----------------------- Boost serialization for SgAsmCilModule -----------------------
34423#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34424private:
34425 friend class boost::serialization::access;
34426
34427 template<class S>
34428 void serialize(S &s, const unsigned /*version*/) {
34429 debugSerializationBegin("SgAsmCilModule");
34430 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34431 s & BOOST_SERIALIZATION_NVP(p_Generation);
34432 s & BOOST_SERIALIZATION_NVP(p_Name);
34433 s & BOOST_SERIALIZATION_NVP(p_Mvid);
34434 s & BOOST_SERIALIZATION_NVP(p_Encld);
34435 s & BOOST_SERIALIZATION_NVP(p_EncBaseId);
34436 debugSerializationEnd("SgAsmCilModule");
34437 }
34438#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34439
34440public:
34446 uint16_t const& get_Generation() const;
34447 void set_Generation(uint16_t const&);
34450public:
34456 uint32_t const& get_Name() const;
34457 void set_Name(uint32_t const&);
34460public:
34466 uint32_t const& get_Mvid() const;
34467 void set_Mvid(uint32_t const&);
34470public:
34476 uint32_t const& get_Encld() const;
34477 void set_Encld(uint32_t const&);
34480public:
34486 uint32_t const& get_EncBaseId() const;
34487 void set_EncBaseId(uint32_t const&);
34489public:
34490 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34491 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34492 void dump(std::ostream&) const;
34493
34494 const std::uint8_t* get_Name_string() const;
34495 const std::uint32_t* get_Mvid_guid() const;
34496 const std::uint32_t* get_Encld_guid() const;
34497 const std::uint32_t* get_EncBaseId_guid() const;
34498public:
34501
34502public:
34505
34506protected:
34514#endif // SgAsmCilModule_OTHERS
34515#ifdef DOCUMENTATION
34516};
34517#endif // DOCUMENTATION
34518
34519
34521// SgAsmCilMethodSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
34523
34524DECLARE_LEAF_CLASS(AsmCilMethodSpecTable);
34525IS_SERIALIZABLE(AsmCilMethodSpecTable);
34526
34527#ifndef DOCUMENTATION
34528AsmCilMethodSpecTable.useSmallHeader(true);
34529#endif // !DOCUMENTATION
34530
34531#ifdef DOCUMENTATION
34534#endif // DOCUMENTATION
34535
34536#ifndef DOCUMENTATION
34537 AsmCilMethodSpecTable.setDataPrototype(
34538 "std::vector<SgAsmCilMethodSpec*>", "elements", "",
34539 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34540#endif // !DOCUMENTATION
34541
34542 DECLARE_OTHERS(AsmCilMethodSpecTable);
34543#if defined(SgAsmCilMethodSpecTable_OTHERS) || defined(DOCUMENTATION)
34544
34545 //----------------------- Boost serialization for SgAsmCilMethodSpecTable -----------------------
34546#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34547private:
34548 friend class boost::serialization::access;
34549
34550 template<class S>
34551 void serialize(S &s, const unsigned /*version*/) {
34552 debugSerializationBegin("SgAsmCilMethodSpecTable");
34553 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34554 s & BOOST_SERIALIZATION_NVP(p_elements);
34555 debugSerializationEnd("SgAsmCilMethodSpecTable");
34556 }
34557#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34558
34559public:
34560 std::vector<SgAsmCilMethodSpec*> const& get_elements() const;
34561 std::vector<SgAsmCilMethodSpec*>& get_elements();
34562public:
34564public:
34567
34568public:
34571
34572protected:
34580#endif // SgAsmCilMethodSpecTable_OTHERS
34581#ifdef DOCUMENTATION
34582};
34583#endif // DOCUMENTATION
34584
34585
34587// SgAsmCilMethodSpec -- MACHINE GENERATED; DO NOT MODIFY --
34589
34590DECLARE_LEAF_CLASS(AsmCilMethodSpec);
34591IS_SERIALIZABLE(AsmCilMethodSpec);
34592
34593#ifndef DOCUMENTATION
34594AsmCilMethodSpec.useSmallHeader(true);
34595#endif // !DOCUMENTATION
34596
34597#ifdef DOCUMENTATION
34600#endif // DOCUMENTATION
34601
34602#ifndef DOCUMENTATION
34603 AsmCilMethodSpec.setDataPrototype(
34604 "uint32_t", "Method", "= 0",
34605 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34606#endif // !DOCUMENTATION
34607
34608#ifndef DOCUMENTATION
34609 AsmCilMethodSpec.setDataPrototype(
34610 "uint32_t", "Instantiation", "= 0",
34611 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34612#endif // !DOCUMENTATION
34613
34614 DECLARE_OTHERS(AsmCilMethodSpec);
34615#if defined(SgAsmCilMethodSpec_OTHERS) || defined(DOCUMENTATION)
34616
34617 //----------------------- Boost serialization for SgAsmCilMethodSpec -----------------------
34618#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34619private:
34620 friend class boost::serialization::access;
34621
34622 template<class S>
34623 void serialize(S &s, const unsigned /*version*/) {
34624 debugSerializationBegin("SgAsmCilMethodSpec");
34625 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34626 s & BOOST_SERIALIZATION_NVP(p_Method);
34627 s & BOOST_SERIALIZATION_NVP(p_Instantiation);
34628 debugSerializationEnd("SgAsmCilMethodSpec");
34629 }
34630#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34631
34632public:
34638 uint32_t const& get_Method() const;
34639 void set_Method(uint32_t const&);
34642public:
34648 uint32_t const& get_Instantiation() const;
34649 void set_Instantiation(uint32_t const&);
34651public:
34652 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34653 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34654 void dump(std::ostream&) const;
34655
34656 const SgAsmCilMetadata* get_Method_object() const;
34657 const std::uint8_t* get_Instantiation_blob() const;
34658public:
34661
34662public:
34665
34666protected:
34674#endif // SgAsmCilMethodSpec_OTHERS
34675#ifdef DOCUMENTATION
34676};
34677#endif // DOCUMENTATION
34678
34679
34681// SgAsmCilMethodSemanticsTable -- MACHINE GENERATED; DO NOT MODIFY --
34683
34684DECLARE_LEAF_CLASS(AsmCilMethodSemanticsTable);
34685IS_SERIALIZABLE(AsmCilMethodSemanticsTable);
34686
34687#ifndef DOCUMENTATION
34688AsmCilMethodSemanticsTable.useSmallHeader(true);
34689#endif // !DOCUMENTATION
34690
34691#ifdef DOCUMENTATION
34694#endif // DOCUMENTATION
34695
34696#ifndef DOCUMENTATION
34697 AsmCilMethodSemanticsTable.setDataPrototype(
34698 "std::vector<SgAsmCilMethodSemantics*>", "elements", "",
34699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34700#endif // !DOCUMENTATION
34701
34702 DECLARE_OTHERS(AsmCilMethodSemanticsTable);
34703#if defined(SgAsmCilMethodSemanticsTable_OTHERS) || defined(DOCUMENTATION)
34704
34705 //----------------------- Boost serialization for SgAsmCilMethodSemanticsTable -----------------------
34706#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34707private:
34708 friend class boost::serialization::access;
34709
34710 template<class S>
34711 void serialize(S &s, const unsigned /*version*/) {
34712 debugSerializationBegin("SgAsmCilMethodSemanticsTable");
34713 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34714 s & BOOST_SERIALIZATION_NVP(p_elements);
34715 debugSerializationEnd("SgAsmCilMethodSemanticsTable");
34716 }
34717#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34718
34719public:
34720 std::vector<SgAsmCilMethodSemantics*> const& get_elements() const;
34721 std::vector<SgAsmCilMethodSemantics*>& get_elements();
34722public:
34724public:
34727
34728public:
34731
34732protected:
34740#endif // SgAsmCilMethodSemanticsTable_OTHERS
34741#ifdef DOCUMENTATION
34742};
34743#endif // DOCUMENTATION
34744
34745
34747// SgAsmCilMethodSemantics -- MACHINE GENERATED; DO NOT MODIFY --
34749
34750DECLARE_LEAF_CLASS(AsmCilMethodSemantics);
34751IS_SERIALIZABLE(AsmCilMethodSemantics);
34752
34753#ifndef DOCUMENTATION
34754AsmCilMethodSemantics.useSmallHeader(true);
34755#endif // !DOCUMENTATION
34756
34757#ifdef DOCUMENTATION
34760#endif // DOCUMENTATION
34761
34762#ifndef DOCUMENTATION
34763 AsmCilMethodSemantics.setDataPrototype(
34764 "uint16_t", "Semantics", "= 0",
34765 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34766#endif // !DOCUMENTATION
34767
34768#ifndef DOCUMENTATION
34769 AsmCilMethodSemantics.setDataPrototype(
34770 "uint32_t", "Method", "= 0",
34771 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34772#endif // !DOCUMENTATION
34773
34774#ifndef DOCUMENTATION
34775 AsmCilMethodSemantics.setDataPrototype(
34776 "uint32_t", "Association", "= 0",
34777 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34778#endif // !DOCUMENTATION
34779
34780 DECLARE_OTHERS(AsmCilMethodSemantics);
34781#if defined(SgAsmCilMethodSemantics_OTHERS) || defined(DOCUMENTATION)
34782
34783 //----------------------- Boost serialization for SgAsmCilMethodSemantics -----------------------
34784#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34785private:
34786 friend class boost::serialization::access;
34787
34788 template<class S>
34789 void serialize(S &s, const unsigned /*version*/) {
34790 debugSerializationBegin("SgAsmCilMethodSemantics");
34791 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34792 s & BOOST_SERIALIZATION_NVP(p_Semantics);
34793 s & BOOST_SERIALIZATION_NVP(p_Method);
34794 s & BOOST_SERIALIZATION_NVP(p_Association);
34795 debugSerializationEnd("SgAsmCilMethodSemantics");
34796 }
34797#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34798
34799public:
34805 uint16_t const& get_Semantics() const;
34806 void set_Semantics(uint16_t const&);
34809public:
34815 uint32_t const& get_Method() const;
34816 void set_Method(uint32_t const&);
34819public:
34825 uint32_t const& get_Association() const;
34826 void set_Association(uint32_t const&);
34828public:
34829 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34830 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34831 void dump(std::ostream&) const;
34832
34833 const SgAsmCilMetadata* get_Method_object() const;
34834 const SgAsmCilMetadata* get_Association_object() const;
34835public:
34838
34839public:
34842
34843protected:
34851#endif // SgAsmCilMethodSemantics_OTHERS
34852#ifdef DOCUMENTATION
34853};
34854#endif // DOCUMENTATION
34855
34856
34858// SgAsmCilMethodImplTable -- MACHINE GENERATED; DO NOT MODIFY --
34860
34861DECLARE_LEAF_CLASS(AsmCilMethodImplTable);
34862IS_SERIALIZABLE(AsmCilMethodImplTable);
34863
34864#ifndef DOCUMENTATION
34865AsmCilMethodImplTable.useSmallHeader(true);
34866#endif // !DOCUMENTATION
34867
34868#ifdef DOCUMENTATION
34871#endif // DOCUMENTATION
34872
34873#ifndef DOCUMENTATION
34874 AsmCilMethodImplTable.setDataPrototype(
34875 "std::vector<SgAsmCilMethodImpl*>", "elements", "",
34876 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34877#endif // !DOCUMENTATION
34878
34879 DECLARE_OTHERS(AsmCilMethodImplTable);
34880#if defined(SgAsmCilMethodImplTable_OTHERS) || defined(DOCUMENTATION)
34881
34882 //----------------------- Boost serialization for SgAsmCilMethodImplTable -----------------------
34883#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34884private:
34885 friend class boost::serialization::access;
34886
34887 template<class S>
34888 void serialize(S &s, const unsigned /*version*/) {
34889 debugSerializationBegin("SgAsmCilMethodImplTable");
34890 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34891 s & BOOST_SERIALIZATION_NVP(p_elements);
34892 debugSerializationEnd("SgAsmCilMethodImplTable");
34893 }
34894#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34895
34896public:
34897 std::vector<SgAsmCilMethodImpl*> const& get_elements() const;
34898 std::vector<SgAsmCilMethodImpl*>& get_elements();
34899public:
34901public:
34904
34905public:
34908
34909protected:
34917#endif // SgAsmCilMethodImplTable_OTHERS
34918#ifdef DOCUMENTATION
34919};
34920#endif // DOCUMENTATION
34921
34922
34924// SgAsmCilMethodImpl -- MACHINE GENERATED; DO NOT MODIFY --
34926
34927DECLARE_LEAF_CLASS(AsmCilMethodImpl);
34928IS_SERIALIZABLE(AsmCilMethodImpl);
34929
34930#ifndef DOCUMENTATION
34931AsmCilMethodImpl.useSmallHeader(true);
34932#endif // !DOCUMENTATION
34933
34934#ifdef DOCUMENTATION
34937#endif // DOCUMENTATION
34938
34939#ifndef DOCUMENTATION
34940 AsmCilMethodImpl.setDataPrototype(
34941 "uint32_t", "Class", "= 0",
34942 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34943#endif // !DOCUMENTATION
34944
34945#ifndef DOCUMENTATION
34946 AsmCilMethodImpl.setDataPrototype(
34947 "uint32_t", "MethodBody", "= 0",
34948 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34949#endif // !DOCUMENTATION
34950
34951#ifndef DOCUMENTATION
34952 AsmCilMethodImpl.setDataPrototype(
34953 "uint32_t", "MethodDeclaration", "= 0",
34954 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34955#endif // !DOCUMENTATION
34956
34957 DECLARE_OTHERS(AsmCilMethodImpl);
34958#if defined(SgAsmCilMethodImpl_OTHERS) || defined(DOCUMENTATION)
34959
34960 //----------------------- Boost serialization for SgAsmCilMethodImpl -----------------------
34961#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34962private:
34963 friend class boost::serialization::access;
34964
34965 template<class S>
34966 void serialize(S &s, const unsigned /*version*/) {
34967 debugSerializationBegin("SgAsmCilMethodImpl");
34968 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34969 s & BOOST_SERIALIZATION_NVP(p_Class);
34970 s & BOOST_SERIALIZATION_NVP(p_MethodBody);
34971 s & BOOST_SERIALIZATION_NVP(p_MethodDeclaration);
34972 debugSerializationEnd("SgAsmCilMethodImpl");
34973 }
34974#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34975
34976public:
34982 uint32_t const& get_Class() const;
34983 void set_Class(uint32_t const&);
34986public:
34992 uint32_t const& get_MethodBody() const;
34993 void set_MethodBody(uint32_t const&);
34996public:
35002 uint32_t const& get_MethodDeclaration() const;
35003 void set_MethodDeclaration(uint32_t const&);
35005public:
35006 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
35007 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
35008 void dump(std::ostream&) const;
35009
35010 const SgAsmCilMetadata* get_Class_object() const;
35011 const SgAsmCilMetadata* get_MethodBody_object() const;
35012 const SgAsmCilMetadata* get_MethodDeclaration_object() const;
35013public:
35016
35017public:
35020
35021protected:
35029#endif // SgAsmCilMethodImpl_OTHERS
35030#ifdef DOCUMENTATION
35031};
35032#endif // DOCUMENTATION
35033
35034
35036// SgAsmCilMethodDefTable -- MACHINE GENERATED; DO NOT MODIFY --
35038
35039DECLARE_LEAF_CLASS(AsmCilMethodDefTable);
35040IS_SERIALIZABLE(AsmCilMethodDefTable);
35041
35042#ifndef DOCUMENTATION
35043AsmCilMethodDefTable.useSmallHeader(true);
35044#endif // !DOCUMENTATION
35045
35046#ifdef DOCUMENTATION
35049#endif // DOCUMENTATION
35050
35051#ifndef DOCUMENTATION
35052 AsmCilMethodDefTable.setDataPrototype(
35053 "std::vector<SgAsmCilMethodDef*>", "elements", "",
35054 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35055#endif // !DOCUMENTATION
35056
35057 DECLARE_OTHERS(AsmCilMethodDefTable);
35058#if defined(SgAsmCilMethodDefTable_OTHERS) || defined(DOCUMENTATION)
35059
35060 //----------------------- Boost serialization for SgAsmCilMethodDefTable -----------------------
35061#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35062private:
35063 friend class boost::serialization::access;
35064
35065 template<class S>
35066 void serialize(S &s, const unsigned /*version*/) {
35067 debugSerializationBegin("SgAsmCilMethodDefTable");
35068 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35069 s & BOOST_SERIALIZATION_NVP(p_elements);
35070 debugSerializationEnd("SgAsmCilMethodDefTable");
35071 }
35072#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35073
35074public:
35075 std::vector<SgAsmCilMethodDef*> const& get_elements() const;
35076 std::vector<SgAsmCilMethodDef*>& get_elements();
35077public:
35079public:
35082
35083public:
35086
35087protected:
35095#endif // SgAsmCilMethodDefTable_OTHERS
35096#ifdef DOCUMENTATION
35097};
35098#endif // DOCUMENTATION
35099
35100
35102// SgAsmCilMethodDef -- MACHINE GENERATED; DO NOT MODIFY --
35104
35105DECLARE_LEAF_CLASS(AsmCilMethodDef);
35106IS_SERIALIZABLE(AsmCilMethodDef);
35107
35108#ifndef DOCUMENTATION
35109AsmCilMethodDef.useSmallHeader(true);
35110#endif // !DOCUMENTATION
35111
35112#ifdef DOCUMENTATION
35115#endif // DOCUMENTATION
35116
35117#ifndef DOCUMENTATION
35118 AsmCilMethodDef.setDataPrototype(
35119 "uint32_t", "RVA", "= 0",
35120 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35121#endif // !DOCUMENTATION
35122
35123#ifndef DOCUMENTATION
35124 AsmCilMethodDef.setDataPrototype(
35125 "uint16_t", "ImplFlags", "= 0",
35126 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35127#endif // !DOCUMENTATION
35128
35129#ifndef DOCUMENTATION
35130 AsmCilMethodDef.setDataPrototype(
35131 "uint16_t", "Flags", "= 0",
35132 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35133#endif // !DOCUMENTATION
35134
35135#ifndef DOCUMENTATION
35136 AsmCilMethodDef.setDataPrototype(
35137 "uint32_t", "Name", "= 0",
35138 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35139#endif // !DOCUMENTATION
35140
35141#ifndef DOCUMENTATION
35142 AsmCilMethodDef.setDataPrototype(
35143 "uint32_t", "Signature", "= 0",
35144 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35145#endif // !DOCUMENTATION
35146
35147#ifndef DOCUMENTATION
35148 AsmCilMethodDef.setDataPrototype(
35149 "uint32_t", "ParamList", "= 0",
35150 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35151#endif // !DOCUMENTATION
35152
35153#ifndef DOCUMENTATION
35154 AsmCilMethodDef.setDataPrototype(
35155 "SgAsmBlock*", "body", "= 0",
35156 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35157#endif // !DOCUMENTATION
35158
35159#ifndef DOCUMENTATION
35160 AsmCilMethodDef.setDataPrototype(
35161 "bool", "initLocals", "= 0",
35162 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35163#endif // !DOCUMENTATION
35164
35165#ifndef DOCUMENTATION
35166 AsmCilMethodDef.setDataPrototype(
35167 "uint32_t", "stackSize", "= 0",
35168 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35169#endif // !DOCUMENTATION
35170
35171#ifndef DOCUMENTATION
35172 AsmCilMethodDef.setDataPrototype(
35173 "bool", "hasMoreSections", "= 0",
35174 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35175#endif // !DOCUMENTATION
35176
35177#ifndef DOCUMENTATION
35178 AsmCilMethodDef.setDataPrototype(
35179 "uint32_t", "localVarSigTok", "= 0",
35180 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35181#endif // !DOCUMENTATION
35182
35183#ifndef DOCUMENTATION
35184 AsmCilMethodDef.setDataPrototype(
35185 "std::vector<SgAsmCilMethodData*>", "methodData", "",
35186 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35187#endif // !DOCUMENTATION
35188
35189#ifndef DOCUMENTATION
35190 AsmCilMethodDef.setDataPrototype(
35191 "int", "bodyState", "= BDY_NOT_PROCESSED",
35192 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35193#endif // !DOCUMENTATION
35194
35195 DECLARE_OTHERS(AsmCilMethodDef);
35196#if defined(SgAsmCilMethodDef_OTHERS) || defined(DOCUMENTATION)
35197
35198 //----------------------- Boost serialization for SgAsmCilMethodDef -----------------------
35199#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35200private:
35201 friend class boost::serialization::access;
35202
35203 template<class S>
35204 void serialize(S &s, const unsigned /*version*/) {
35205 debugSerializationBegin("SgAsmCilMethodDef");
35206 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35207 s & BOOST_SERIALIZATION_NVP(p_RVA);
35208 s & BOOST_SERIALIZATION_NVP(p_ImplFlags);
35209 s & BOOST_SERIALIZATION_NVP(p_Flags);
35210 s & BOOST_SERIALIZATION_NVP(p_Name);
35211 s & BOOST_SERIALIZATION_NVP(p_Signature);
35212 s & BOOST_SERIALIZATION_NVP(p_ParamList);
35213 s & BOOST_SERIALIZATION_NVP(p_body);
35214 s & BOOST_SERIALIZATION_NVP(p_initLocals);
35215 s & BOOST_SERIALIZATION_NVP(p_stackSize);
35216 s & BOOST_SERIALIZATION_NVP(p_hasMoreSections);
35217 s & BOOST_SERIALIZATION_NVP(p_localVarSigTok);
35218 s & BOOST_SERIALIZATION_NVP(p_methodData);
35219 s & BOOST_SERIALIZATION_NVP(p_bodyState);
35220 debugSerializationEnd("SgAsmCilMethodDef");
35221 }
35222#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35223 public:
35224 using BodyState = int;
35225
35226 enum : BodyState {
35227 // good states > 0
35231
35232 // default == 0
35234
35235 // fail states < 0
35246 };
35247
35248 private:
35249public:
35255 uint32_t const& get_RVA() const;
35256 void set_RVA(uint32_t const&);
35259public:
35265 uint16_t const& get_ImplFlags() const;
35266 void set_ImplFlags(uint16_t const&);
35269public:
35275 uint16_t const& get_Flags() const;
35276 void set_Flags(uint16_t const&);
35279public:
35285 uint32_t const& get_Name() const;
35286 void set_Name(uint32_t const&);
35289public:
35295 uint32_t const& get_Signature() const;
35296 void set_Signature(uint32_t const&);
35299public:
35305 uint32_t const& get_ParamList() const;
35306 void set_ParamList(uint32_t const&);
35309public:
35315 SgAsmBlock* const& get_body() const;
35316 void set_body(SgAsmBlock* const&);
35319public:
35325 bool const& get_initLocals() const;
35326 void set_initLocals(bool const&);
35329public:
35335 uint32_t const& get_stackSize() const;
35336 void set_stackSize(uint32_t const&);
35339public:
35345 bool const& get_hasMoreSections() const;
35346 void set_hasMoreSections(bool const&);
35348 //
35349 // additional fields
35350public:
35357 uint32_t const& get_localVarSigTok() const;
35358 void set_localVarSigTok(uint32_t const&);
35361public:
35367 std::vector<SgAsmCilMethodData*> const& get_methodData() const;
35368 std::vector<SgAsmCilMethodData*>& get_methodData();
35371public:
35378 int const& get_bodyState() const;
35379 void set_bodyState(int const&);
35381public:
35382 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
35383 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
35384 void dump(std::ostream&) const;
35385
35386 const std::uint8_t* get_Name_string() const;
35387 const std::uint8_t* get_Signature_blob() const;
35388 const SgAsmCilMetadata* get_ParamList_object() const;
35389public:
35392
35393public:
35396
35397protected:
35405#endif // SgAsmCilMethodDef_OTHERS
35406#ifdef DOCUMENTATION
35407};
35408#endif // DOCUMENTATION
35409
35410
35412// SgAsmCilMethodData -- MACHINE GENERATED; DO NOT MODIFY --
35414
35415DECLARE_LEAF_CLASS(AsmCilMethodData);
35416IS_SERIALIZABLE(AsmCilMethodData);
35417
35418#ifndef DOCUMENTATION
35419AsmCilMethodData.useSmallHeader(true);
35420#endif // !DOCUMENTATION
35421
35422DECLARE_HEADERS(AsmCilMethodData);
35423#if defined(SgAsmCilMethodData_HEADERS) || defined(DOCUMENTATION)
35424#include <vector>
35425#endif // SgAsmCilMethodData_HEADERS
35426
35427#ifdef DOCUMENTATION
35433#endif // DOCUMENTATION
35434
35435#ifndef DOCUMENTATION
35436 AsmCilMethodData.setDataPrototype(
35437 "uint64_t", "kind", "= 0",
35438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35439#endif // !DOCUMENTATION
35440
35441#ifndef DOCUMENTATION
35442 AsmCilMethodData.setDataPrototype(
35443 "std::uint32_t", "dataSize", "= 0",
35444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35445#endif // !DOCUMENTATION
35446
35447#ifndef DOCUMENTATION
35448 AsmCilMethodData.setDataPrototype(
35449 "std::vector<SgAsmCilExceptionData*>", "clauses", "",
35450 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35451#endif // !DOCUMENTATION
35452
35453 DECLARE_OTHERS(AsmCilMethodData);
35454#if defined(SgAsmCilMethodData_OTHERS) || defined(DOCUMENTATION)
35455
35456 //----------------------- Boost serialization for SgAsmCilMethodData -----------------------
35457#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35458private:
35459 friend class boost::serialization::access;
35460
35461 template<class S>
35462 void serialize(S &s, const unsigned /*version*/) {
35463 debugSerializationBegin("SgAsmCilMethodData");
35464 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
35465 s & BOOST_SERIALIZATION_NVP(p_kind);
35466 s & BOOST_SERIALIZATION_NVP(p_dataSize);
35467 s & BOOST_SERIALIZATION_NVP(p_clauses);
35468 debugSerializationEnd("SgAsmCilMethodData");
35469 }
35470#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35471public:
35472 enum
35473 {
35474 CorILMethod_Sect_EHTable = 0x01,
35475 CorILMethod_Sect_OptILTable = 0x02,
35476 CorILMethod_Sect_FatFormat = 0x40,
35477 CorILMethod_Sect_MoreSects = 0x80,
35478 };
35479
35480private:
35481public:
35482 uint64_t const& get_kind() const;
35483 void set_kind(uint64_t const&);
35484
35485public:
35486 std::uint32_t const& get_dataSize() const;
35487 void set_dataSize(std::uint32_t const&);
35488
35489public:
35490 std::vector<SgAsmCilExceptionData*> const& get_Clauses() const;
35491 std::vector<SgAsmCilExceptionData*>& get_Clauses();
35492public:
35493 bool isEHTable() const
35494 {
35495 return (p_kind & CorILMethod_Sect_EHTable) == CorILMethod_Sect_EHTable;
35496 }
35497
35498 bool isOptILTable() const
35499 {
35500 const bool res = (p_kind & CorILMethod_Sect_OptILTable) == CorILMethod_Sect_OptILTable;
35501
35502 ASSERT_require(!res);
35503 return res;
35504 }
35505
35506 bool usesFatFormat() const
35507 {
35508 return (p_kind & CorILMethod_Sect_FatFormat) == CorILMethod_Sect_FatFormat;
35509 }
35510
35511 bool hasMoreSections() const
35512 {
35513 return (p_kind & CorILMethod_Sect_MoreSects) == CorILMethod_Sect_MoreSects;
35514 }
35515public:
35518
35519public:
35522
35523protected:
35531#endif // SgAsmCilMethodData_OTHERS
35532#ifdef DOCUMENTATION
35533};
35534#endif // DOCUMENTATION
35535
35536
35538// SgAsmCilMetadataRoot -- MACHINE GENERATED; DO NOT MODIFY --
35540
35541DECLARE_LEAF_CLASS(AsmCilMetadataRoot);
35542IS_SERIALIZABLE(AsmCilMetadataRoot);
35543
35544#ifndef DOCUMENTATION
35545AsmCilMetadataRoot.useSmallHeader(true);
35546#endif // !DOCUMENTATION
35547
35548#ifdef DOCUMENTATION
35551#endif // DOCUMENTATION
35552
35553#ifndef DOCUMENTATION
35554 AsmCilMetadataRoot.setDataPrototype(
35555 "uint32_t", "Signature", "= 0",
35556 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35557#endif // !DOCUMENTATION
35558
35559#ifndef DOCUMENTATION
35560 AsmCilMetadataRoot.setDataPrototype(
35561 "uint16_t", "MajorVersion", "= 0",
35562 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35563#endif // !DOCUMENTATION
35564
35565#ifndef DOCUMENTATION
35566 AsmCilMetadataRoot.setDataPrototype(
35567 "uint16_t", "MinorVersion", "= 0",
35568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35569#endif // !DOCUMENTATION
35570
35571#ifndef DOCUMENTATION
35572 AsmCilMetadataRoot.setDataPrototype(
35573 "uint32_t", "Reserved0", "= 0",
35574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35575#endif // !DOCUMENTATION
35576
35577#ifndef DOCUMENTATION
35578 AsmCilMetadataRoot.setDataPrototype(
35579 "uint32_t", "Length", "= 0",
35580 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35581#endif // !DOCUMENTATION
35582
35583#ifndef DOCUMENTATION
35584 AsmCilMetadataRoot.setDataPrototype(
35585 "std::string", "Version", "",
35586 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35587#endif // !DOCUMENTATION
35588
35589#ifndef DOCUMENTATION
35590 AsmCilMetadataRoot.setDataPrototype(
35591 "uint32_t", "VersionPadding", "= 0",
35592 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35593#endif // !DOCUMENTATION
35594
35595#ifndef DOCUMENTATION
35596 AsmCilMetadataRoot.setDataPrototype(
35597 "uint16_t", "Flags", "= 0",
35598 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35599#endif // !DOCUMENTATION
35600
35601#ifndef DOCUMENTATION
35602 AsmCilMetadataRoot.setDataPrototype(
35603 "uint16_t", "NumberOfStreams", "= 0",
35604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35605#endif // !DOCUMENTATION
35606
35607#ifndef DOCUMENTATION
35608 AsmCilMetadataRoot.setDataPrototype(
35609 "std::vector<SgAsmCilDataStream*>", "Streams", "",
35610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35611#endif // !DOCUMENTATION
35612
35613#ifndef DOCUMENTATION
35614 AsmCilMetadataRoot.setDataPrototype(
35615 "bool", "ErrorFree", "= true",
35616 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35617#endif // !DOCUMENTATION
35618
35619 DECLARE_OTHERS(AsmCilMetadataRoot);
35620#if defined(SgAsmCilMetadataRoot_OTHERS) || defined(DOCUMENTATION)
35621
35622 //----------------------- Boost serialization for SgAsmCilMetadataRoot -----------------------
35623#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35624private:
35625 friend class boost::serialization::access;
35626
35627 template<class S>
35628 void serialize(S &s, const unsigned /*version*/) {
35629 debugSerializationBegin("SgAsmCilMetadataRoot");
35630 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
35631 s & BOOST_SERIALIZATION_NVP(p_Signature);
35632 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
35633 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
35634 s & BOOST_SERIALIZATION_NVP(p_Reserved0);
35635 s & BOOST_SERIALIZATION_NVP(p_Length);
35636 s & BOOST_SERIALIZATION_NVP(p_Version);
35637 s & BOOST_SERIALIZATION_NVP(p_VersionPadding);
35638 s & BOOST_SERIALIZATION_NVP(p_Flags);
35639 s & BOOST_SERIALIZATION_NVP(p_NumberOfStreams);
35640 s & BOOST_SERIALIZATION_NVP(p_Streams);
35641 s & BOOST_SERIALIZATION_NVP(p_ErrorFree);
35642 debugSerializationEnd("SgAsmCilMetadataRoot");
35643 }
35644#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35645
35646public:
35650 uint32_t const& get_Signature() const;
35651 void set_Signature(uint32_t const&);
35654public:
35658 uint16_t const& get_MajorVersion() const;
35659 void set_MajorVersion(uint16_t const&);
35662public:
35666 uint16_t const& get_MinorVersion() const;
35667 void set_MinorVersion(uint16_t const&);
35670public:
35674 uint32_t const& get_Reserved0() const;
35675 void set_Reserved0(uint32_t const&);
35678public:
35682 uint32_t const& get_Length() const;
35683 void set_Length(uint32_t const&);
35686public:
35690 std::string const& get_Version() const;
35691 void set_Version(std::string const&);
35694public:
35698 uint32_t const& get_VersionPadding() const;
35699 void set_VersionPadding(uint32_t const&);
35702public:
35706 uint16_t const& get_Flags() const;
35707 void set_Flags(uint16_t const&);
35710public:
35714 uint16_t const& get_NumberOfStreams() const;
35715 void set_NumberOfStreams(uint16_t const&);
35718public:
35722 std::vector<SgAsmCilDataStream*> const& get_Streams() const;
35723 std::vector<SgAsmCilDataStream*>& get_Streams();
35726public:
35730 bool const& get_ErrorFree() const;
35731 void set_ErrorFree(bool const&);
35733private:
35736 mutable int8_t idxStringHeap = -1;
35737 mutable int8_t idxBlobHeap = -1;
35738 mutable int8_t idxUsHeap = -1;
35739 mutable int8_t idxGuidHeap = -1;
35740 mutable int8_t idxMetadataHeap = -1;
35743public:
35746 static constexpr uint32_t MAGIC_SIGNATURE = 0x424A5342;
35747
35751 void parse();
35752
35758 void parse(const std::vector<uint8_t>& buf, size_t index);
35759
35761 void unparse(std::ostream& f) const;
35762
35764 void unparse(std::vector<uint8_t>&, std::size_t) const;
35765
35767 void dump(std::ostream& os) const;
35768
35778public:
35781
35782public:
35785
35786protected:
35794#endif // SgAsmCilMetadataRoot_OTHERS
35795#ifdef DOCUMENTATION
35796};
35797#endif // DOCUMENTATION
35798
35799
35801// SgAsmCilMetadataHeap -- MACHINE GENERATED; DO NOT MODIFY --
35803
35804DECLARE_LEAF_CLASS(AsmCilMetadataHeap);
35805IS_SERIALIZABLE(AsmCilMetadataHeap);
35806
35807#ifndef DOCUMENTATION
35808AsmCilMetadataHeap.useSmallHeader(true);
35809#endif // !DOCUMENTATION
35810
35811DECLARE_HEADERS(AsmCilMetadataHeap);
35812#if defined(SgAsmCilMetadataHeap_HEADERS) || defined(DOCUMENTATION)
35813#ifdef ROSE_SgAsmCilMetadataHeap_IMPL
35814#include <SgAsmCilAssemblyTable.h>
35815#include <SgAsmCilAssemblyOSTable.h>
35816#include <SgAsmCilAssemblyProcessorTable.h>
35817#include <SgAsmCilAssemblyRefTable.h>
35818#include <SgAsmCilAssemblyRefOSTable.h>
35819#include <SgAsmCilAssemblyRefProcessorTable.h>
35820#include <SgAsmCilClassLayoutTable.h>
35821#include <SgAsmCilConstantTable.h>
35822#include <SgAsmCilCustomAttributeTable.h>
35823#include <SgAsmCilDeclSecurityTable.h>
35824#include <SgAsmCilEventTable.h>
35825#include <SgAsmCilEventMapTable.h>
35826#include <SgAsmCilExportedTypeTable.h>
35827#include <SgAsmCilFieldTable.h>
35828#include <SgAsmCilFieldLayoutTable.h>
35829#include <SgAsmCilFieldMarshalTable.h>
35830#include <SgAsmCilFieldRVATable.h>
35831#include <SgAsmCilFileTable.h>
35832#include <SgAsmCilGenericParamTable.h>
35833#include <SgAsmCilGenericParamConstraintTable.h>
35834#include <SgAsmCilImplMapTable.h>
35835#include <SgAsmCilInterfaceImplTable.h>
35836#include <SgAsmCilManifestResourceTable.h>
35837#include <SgAsmCilMemberRefTable.h>
35838#include <SgAsmCilMethodDefTable.h>
35839#include <SgAsmCilMethodImplTable.h>
35840#include <SgAsmCilMethodSemanticsTable.h>
35841#include <SgAsmCilMethodSpecTable.h>
35842#include <SgAsmCilModuleTable.h>
35843#include <SgAsmCilModuleRefTable.h>
35844#include <SgAsmCilNestedClassTable.h>
35845#include <SgAsmCilParamTable.h>
35846#include <SgAsmCilPropertyTable.h>
35847#include <SgAsmCilPropertyMapTable.h>
35848#include <SgAsmCilStandAloneSigTable.h>
35849#include <SgAsmCilTypeDefTable.h>
35850#include <SgAsmCilTypeRefTable.h>
35851#include <SgAsmCilTypeSpecTable.h>
35852#endif
35853#endif // SgAsmCilMetadataHeap_HEADERS
35854
35855#ifdef DOCUMENTATION
35858#endif // DOCUMENTATION
35859
35860#ifndef DOCUMENTATION
35861 AsmCilMetadataHeap.setDataPrototype(
35862 "uint32_t", "ReservedAlwaysZero", "= 0",
35863 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35864#endif // !DOCUMENTATION
35865
35866#ifndef DOCUMENTATION
35867 AsmCilMetadataHeap.setDataPrototype(
35868 "uint8_t", "MajorVersion", "= 0",
35869 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35870#endif // !DOCUMENTATION
35871
35872#ifndef DOCUMENTATION
35873 AsmCilMetadataHeap.setDataPrototype(
35874 "uint8_t", "MinorVersion", "= 0",
35875 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35876#endif // !DOCUMENTATION
35877
35878#ifndef DOCUMENTATION
35879 AsmCilMetadataHeap.setDataPrototype(
35880 "uint8_t", "HeapSizes", "= 0",
35881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35882#endif // !DOCUMENTATION
35883
35884#ifndef DOCUMENTATION
35885 AsmCilMetadataHeap.setDataPrototype(
35886 "uint8_t", "ReservedAlwaysOne", "= 0",
35887 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35888#endif // !DOCUMENTATION
35889
35890#ifndef DOCUMENTATION
35891 AsmCilMetadataHeap.setDataPrototype(
35892 "uint64_t", "Valid", "= 0",
35893 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35894#endif // !DOCUMENTATION
35895
35896#ifndef DOCUMENTATION
35897 AsmCilMetadataHeap.setDataPrototype(
35898 "uint64_t", "Sorted", "= 0",
35899 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35900#endif // !DOCUMENTATION
35901
35902#ifndef DOCUMENTATION
35903 AsmCilMetadataHeap.setDataPrototype(
35904 "std::vector<uint32_t>", "NumberOfRows", "",
35905 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35906#endif // !DOCUMENTATION
35907
35908#ifndef DOCUMENTATION
35909 AsmCilMetadataHeap.setDataPrototype(
35910 "uint64_t", "DataSizeFlags", "= 0",
35911 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35912#endif // !DOCUMENTATION
35913
35914#ifndef DOCUMENTATION
35915 AsmCilMetadataHeap.setDataPrototype(
35916 "SgAsmCilAssemblyTable*", "AssemblyTable", "",
35917 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35918#endif // !DOCUMENTATION
35919
35920#ifndef DOCUMENTATION
35921 AsmCilMetadataHeap.setDataPrototype(
35922 "SgAsmCilAssemblyOSTable*", "AssemblyOSTable", "",
35923 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35924#endif // !DOCUMENTATION
35925
35926#ifndef DOCUMENTATION
35927 AsmCilMetadataHeap.setDataPrototype(
35928 "SgAsmCilAssemblyProcessorTable*", "AssemblyProcessorTable", "",
35929 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35930#endif // !DOCUMENTATION
35931
35932#ifndef DOCUMENTATION
35933 AsmCilMetadataHeap.setDataPrototype(
35934 "SgAsmCilAssemblyRefTable*", "AssemblyRefTable", "",
35935 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35936#endif // !DOCUMENTATION
35937
35938#ifndef DOCUMENTATION
35939 AsmCilMetadataHeap.setDataPrototype(
35940 "SgAsmCilAssemblyRefOSTable*", "AssemblyRefOSTable", "",
35941 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35942#endif // !DOCUMENTATION
35943
35944#ifndef DOCUMENTATION
35945 AsmCilMetadataHeap.setDataPrototype(
35946 "SgAsmCilAssemblyRefProcessorTable*", "AssemblyRefProcessorTable", "",
35947 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35948#endif // !DOCUMENTATION
35949
35950#ifndef DOCUMENTATION
35951 AsmCilMetadataHeap.setDataPrototype(
35952 "SgAsmCilClassLayoutTable*", "ClassLayoutTable", "",
35953 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35954#endif // !DOCUMENTATION
35955
35956#ifndef DOCUMENTATION
35957 AsmCilMetadataHeap.setDataPrototype(
35958 "SgAsmCilConstantTable*", "ConstantTable", "",
35959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35960#endif // !DOCUMENTATION
35961
35962#ifndef DOCUMENTATION
35963 AsmCilMetadataHeap.setDataPrototype(
35964 "SgAsmCilCustomAttributeTable*", "CustomAttributeTable", "",
35965 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35966#endif // !DOCUMENTATION
35967
35968#ifndef DOCUMENTATION
35969 AsmCilMetadataHeap.setDataPrototype(
35970 "SgAsmCilDeclSecurityTable*", "DeclSecurityTable", "",
35971 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35972#endif // !DOCUMENTATION
35973
35974#ifndef DOCUMENTATION
35975 AsmCilMetadataHeap.setDataPrototype(
35976 "SgAsmCilEventTable*", "EventTable", "",
35977 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35978#endif // !DOCUMENTATION
35979
35980#ifndef DOCUMENTATION
35981 AsmCilMetadataHeap.setDataPrototype(
35982 "SgAsmCilEventMapTable*", "EventMapTable", "",
35983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35984#endif // !DOCUMENTATION
35985
35986#ifndef DOCUMENTATION
35987 AsmCilMetadataHeap.setDataPrototype(
35988 "SgAsmCilExportedTypeTable*", "ExportedTypeTable", "",
35989 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35990#endif // !DOCUMENTATION
35991
35992#ifndef DOCUMENTATION
35993 AsmCilMetadataHeap.setDataPrototype(
35994 "SgAsmCilFieldTable*", "FieldTable", "",
35995 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35996#endif // !DOCUMENTATION
35997
35998#ifndef DOCUMENTATION
35999 AsmCilMetadataHeap.setDataPrototype(
36000 "SgAsmCilFieldLayoutTable*", "FieldLayoutTable", "",
36001 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36002#endif // !DOCUMENTATION
36003
36004#ifndef DOCUMENTATION
36005 AsmCilMetadataHeap.setDataPrototype(
36006 "SgAsmCilFieldMarshalTable*", "FieldMarshalTable", "",
36007 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36008#endif // !DOCUMENTATION
36009
36010#ifndef DOCUMENTATION
36011 AsmCilMetadataHeap.setDataPrototype(
36012 "SgAsmCilFieldRVATable*", "FieldRVATable", "",
36013 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36014#endif // !DOCUMENTATION
36015
36016#ifndef DOCUMENTATION
36017 AsmCilMetadataHeap.setDataPrototype(
36018 "SgAsmCilFileTable*", "FileTable", "",
36019 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36020#endif // !DOCUMENTATION
36021
36022#ifndef DOCUMENTATION
36023 AsmCilMetadataHeap.setDataPrototype(
36024 "SgAsmCilGenericParamTable*", "GenericParamTable", "",
36025 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36026#endif // !DOCUMENTATION
36027
36028#ifndef DOCUMENTATION
36029 AsmCilMetadataHeap.setDataPrototype(
36030 "SgAsmCilGenericParamConstraintTable*", "GenericParamConstraintTable", "",
36031 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36032#endif // !DOCUMENTATION
36033
36034#ifndef DOCUMENTATION
36035 AsmCilMetadataHeap.setDataPrototype(
36036 "SgAsmCilImplMapTable*", "ImplMapTable", "",
36037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36038#endif // !DOCUMENTATION
36039
36040#ifndef DOCUMENTATION
36041 AsmCilMetadataHeap.setDataPrototype(
36042 "SgAsmCilInterfaceImplTable*", "InterfaceImplTable", "",
36043 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36044#endif // !DOCUMENTATION
36045
36046#ifndef DOCUMENTATION
36047 AsmCilMetadataHeap.setDataPrototype(
36048 "SgAsmCilManifestResourceTable*", "ManifestResourceTable", "",
36049 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36050#endif // !DOCUMENTATION
36051
36052#ifndef DOCUMENTATION
36053 AsmCilMetadataHeap.setDataPrototype(
36054 "SgAsmCilMemberRefTable*", "MemberRefTable", "",
36055 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36056#endif // !DOCUMENTATION
36057
36058#ifndef DOCUMENTATION
36059 AsmCilMetadataHeap.setDataPrototype(
36060 "SgAsmCilMethodDefTable*", "MethodDefTable", "",
36061 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36062#endif // !DOCUMENTATION
36063
36064#ifndef DOCUMENTATION
36065 AsmCilMetadataHeap.setDataPrototype(
36066 "SgAsmCilMethodImplTable*", "MethodImplTable", "",
36067 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36068#endif // !DOCUMENTATION
36069
36070#ifndef DOCUMENTATION
36071 AsmCilMetadataHeap.setDataPrototype(
36072 "SgAsmCilMethodSemanticsTable*", "MethodSemanticsTable", "",
36073 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36074#endif // !DOCUMENTATION
36075
36076#ifndef DOCUMENTATION
36077 AsmCilMetadataHeap.setDataPrototype(
36078 "SgAsmCilMethodSpecTable*", "MethodSpecTable", "",
36079 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36080#endif // !DOCUMENTATION
36081
36082#ifndef DOCUMENTATION
36083 AsmCilMetadataHeap.setDataPrototype(
36084 "SgAsmCilModuleTable*", "ModuleTable", "",
36085 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36086#endif // !DOCUMENTATION
36087
36088#ifndef DOCUMENTATION
36089 AsmCilMetadataHeap.setDataPrototype(
36090 "SgAsmCilModuleRefTable*", "ModuleRefTable", "",
36091 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36092#endif // !DOCUMENTATION
36093
36094#ifndef DOCUMENTATION
36095 AsmCilMetadataHeap.setDataPrototype(
36096 "SgAsmCilNestedClassTable*", "NestedClassTable", "",
36097 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36098#endif // !DOCUMENTATION
36099
36100#ifndef DOCUMENTATION
36101 AsmCilMetadataHeap.setDataPrototype(
36102 "SgAsmCilParamTable*", "ParamTable", "",
36103 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36104#endif // !DOCUMENTATION
36105
36106#ifndef DOCUMENTATION
36107 AsmCilMetadataHeap.setDataPrototype(
36108 "SgAsmCilPropertyTable*", "PropertyTable", "",
36109 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36110#endif // !DOCUMENTATION
36111
36112#ifndef DOCUMENTATION
36113 AsmCilMetadataHeap.setDataPrototype(
36114 "SgAsmCilPropertyMapTable*", "PropertyMapTable", "",
36115 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36116#endif // !DOCUMENTATION
36117
36118#ifndef DOCUMENTATION
36119 AsmCilMetadataHeap.setDataPrototype(
36120 "SgAsmCilStandAloneSigTable*", "StandAloneSigTable", "",
36121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36122#endif // !DOCUMENTATION
36123
36124#ifndef DOCUMENTATION
36125 AsmCilMetadataHeap.setDataPrototype(
36126 "SgAsmCilTypeDefTable*", "TypeDefTable", "",
36127 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36128#endif // !DOCUMENTATION
36129
36130#ifndef DOCUMENTATION
36131 AsmCilMetadataHeap.setDataPrototype(
36132 "SgAsmCilTypeRefTable*", "TypeRefTable", "",
36133 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36134#endif // !DOCUMENTATION
36135
36136#ifndef DOCUMENTATION
36137 AsmCilMetadataHeap.setDataPrototype(
36138 "SgAsmCilTypeSpecTable*", "TypeSpecTable", "",
36139 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36140#endif // !DOCUMENTATION
36141
36142 DECLARE_OTHERS(AsmCilMetadataHeap);
36143#if defined(SgAsmCilMetadataHeap_OTHERS) || defined(DOCUMENTATION)
36144
36145 //----------------------- Boost serialization for SgAsmCilMetadataHeap -----------------------
36146#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36147private:
36148 friend class boost::serialization::access;
36149
36150 template<class S>
36151 void serialize(S &s, const unsigned /*version*/) {
36152 debugSerializationBegin("SgAsmCilMetadataHeap");
36153 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
36154 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysZero);
36155 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
36156 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
36157 s & BOOST_SERIALIZATION_NVP(p_HeapSizes);
36158 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysOne);
36159 s & BOOST_SERIALIZATION_NVP(p_Valid);
36160 s & BOOST_SERIALIZATION_NVP(p_Sorted);
36161 s & BOOST_SERIALIZATION_NVP(p_NumberOfRows);
36162 s & BOOST_SERIALIZATION_NVP(p_DataSizeFlags);
36163 s & BOOST_SERIALIZATION_NVP(p_AssemblyTable);
36164 s & BOOST_SERIALIZATION_NVP(p_AssemblyOSTable);
36165 s & BOOST_SERIALIZATION_NVP(p_AssemblyProcessorTable);
36166 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefTable);
36167 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefOSTable);
36168 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefProcessorTable);
36169 s & BOOST_SERIALIZATION_NVP(p_ClassLayoutTable);
36170 s & BOOST_SERIALIZATION_NVP(p_ConstantTable);
36171 s & BOOST_SERIALIZATION_NVP(p_CustomAttributeTable);
36172 s & BOOST_SERIALIZATION_NVP(p_DeclSecurityTable);
36173 s & BOOST_SERIALIZATION_NVP(p_EventTable);
36174 s & BOOST_SERIALIZATION_NVP(p_EventMapTable);
36175 s & BOOST_SERIALIZATION_NVP(p_ExportedTypeTable);
36176 s & BOOST_SERIALIZATION_NVP(p_FieldTable);
36177 s & BOOST_SERIALIZATION_NVP(p_FieldLayoutTable);
36178 s & BOOST_SERIALIZATION_NVP(p_FieldMarshalTable);
36179 s & BOOST_SERIALIZATION_NVP(p_FieldRVATable);
36180 s & BOOST_SERIALIZATION_NVP(p_FileTable);
36181 s & BOOST_SERIALIZATION_NVP(p_GenericParamTable);
36182 s & BOOST_SERIALIZATION_NVP(p_GenericParamConstraintTable);
36183 s & BOOST_SERIALIZATION_NVP(p_ImplMapTable);
36184 s & BOOST_SERIALIZATION_NVP(p_InterfaceImplTable);
36185 s & BOOST_SERIALIZATION_NVP(p_ManifestResourceTable);
36186 s & BOOST_SERIALIZATION_NVP(p_MemberRefTable);
36187 s & BOOST_SERIALIZATION_NVP(p_MethodDefTable);
36188 s & BOOST_SERIALIZATION_NVP(p_MethodImplTable);
36189 s & BOOST_SERIALIZATION_NVP(p_MethodSemanticsTable);
36190 s & BOOST_SERIALIZATION_NVP(p_MethodSpecTable);
36191 s & BOOST_SERIALIZATION_NVP(p_ModuleTable);
36192 s & BOOST_SERIALIZATION_NVP(p_ModuleRefTable);
36193 s & BOOST_SERIALIZATION_NVP(p_NestedClassTable);
36194 s & BOOST_SERIALIZATION_NVP(p_ParamTable);
36195 s & BOOST_SERIALIZATION_NVP(p_PropertyTable);
36196 s & BOOST_SERIALIZATION_NVP(p_PropertyMapTable);
36197 s & BOOST_SERIALIZATION_NVP(p_StandAloneSigTable);
36198 s & BOOST_SERIALIZATION_NVP(p_TypeDefTable);
36199 s & BOOST_SERIALIZATION_NVP(p_TypeRefTable);
36200 s & BOOST_SERIALIZATION_NVP(p_TypeSpecTable);
36201 debugSerializationEnd("SgAsmCilMetadataHeap");
36202 }
36203#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36204
36205public:
36209 uint32_t const& get_ReservedAlwaysZero() const;
36210 void set_ReservedAlwaysZero(uint32_t const&);
36213public:
36217 uint8_t const& get_MajorVersion() const;
36218 void set_MajorVersion(uint8_t const&);
36221public:
36225 uint8_t const& get_MinorVersion() const;
36226 void set_MinorVersion(uint8_t const&);
36229public:
36233 uint8_t const& get_HeapSizes() const;
36234 void set_HeapSizes(uint8_t const&);
36237public:
36241 uint8_t const& get_ReservedAlwaysOne() const;
36242 void set_ReservedAlwaysOne(uint8_t const&);
36245public:
36249 uint64_t const& get_Valid() const;
36250 void set_Valid(uint64_t const&);
36253public:
36257 uint64_t const& get_Sorted() const;
36258 void set_Sorted(uint64_t const&);
36261public:
36265 std::vector<uint32_t> const& get_NumberOfRows() const;
36266 void set_NumberOfRows(std::vector<uint32_t> const&);
36269public:
36273 uint64_t const& get_DataSizeFlags() const;
36274 void set_DataSizeFlags(uint64_t const&);
36277public:
36285public:
36293public:
36301public:
36309public:
36317public:
36325public:
36333public:
36341public:
36349public:
36357public:
36365public:
36373public:
36381public:
36389public:
36397public:
36405public:
36413public:
36421public:
36429public:
36437public:
36445public:
36453public:
36461public:
36469public:
36477public:
36485public:
36493public:
36501public:
36509public:
36517public:
36525public:
36533public:
36541public:
36549public:
36557public:
36565public:
36573public:
36580public:
36583 {
36584 // heaps
36585 e_ref_string_heap = 1 << 0,
36586 e_ref_guid_heap = 1 << 1,
36587 e_ref_blob_heap = 1 << 2,
36588 // single-table references
36589 e_ref_assembly_ref = 1 << 3,
36590 e_ref_type_def = 1 << 4,
36591 e_ref_event = 1 << 5,
36592 e_ref_field = 1 << 6,
36593 e_ref_generic_param = 1 << 7,
36594 e_ref_module_ref = 1 << 8,
36595 e_ref_method_def = 1 << 9,
36596 e_ref_param = 1 << 10,
36597 e_ref_property = 1 << 11,
36598 // multi-table references
36599 e_ref_has_constant = 1 << 12,
36600 e_ref_has_custom_attribute = 1 << 13,
36601 e_ref_has_decl_security = 1 << 14,
36602 e_ref_has_field_marshall = 1 << 15,
36603 e_ref_has_semantics = 1 << 16,
36604 e_ref_method_def_or_ref = 1 << 17,
36605 e_ref_type_def_or_ref = 1 << 18,
36606 e_ref_implementation = 1 << 19,
36607 e_ref_member_forwarded = 1 << 20,
36608 e_ref_member_ref_parent = 1 << 21,
36609 e_ref_type_or_method_def = 1 << 22,
36610 e_ref_custom_attribute_type = 1 << 23,
36611 e_ref_resolution_scope = 1 << 24,
36612 e_ref_last = 1 << 25,
36613 };
36614
36615 enum TableKind : std::uint8_t
36616 {
36617
36618 e_Assembly = 0x20,
36619 e_AssemblyOS = 0x22,
36620 e_AssemblyProcessor = 0x21,
36621 e_AssemblyRef = 0x23,
36622 e_AssemblyRefOS = 0x25,
36623 e_AssemblyRefProcessor = 0x24,
36624 e_ClassLayout = 0x0F,
36625 e_Constant = 0x0B,
36626 e_CustomAttribute = 0x0C,
36627 e_DeclSecurity = 0x0E,
36628 e_Event = 0x14,
36629 e_EventMap = 0x12,
36630 e_ExportedType = 0x27,
36631 e_Field = 0x04,
36632 e_FieldLayout = 0x10,
36633 e_FieldMarshal = 0x0D,
36634 e_FieldRVA = 0x1D,
36635 e_File = 0x26,
36636 e_GenericParam = 0x2A,
36637 e_GenericParamConstraint = 0x2C,
36638 e_ImplMap = 0x1C,
36639 e_InterfaceImpl = 0x09,
36640 e_ManifestResource = 0x28,
36641 e_MemberRef = 0x0A,
36642 e_MethodDef = 0x06,
36643 e_MethodImpl = 0x19,
36644 e_MethodSemantics = 0x18,
36645 e_MethodSpec = 0x2B,
36646 e_Module = 0x00,
36647 e_ModuleRef = 0x1A,
36648 e_NestedClass = 0x29,
36649 e_Param = 0x08,
36650 e_Property = 0x17,
36651 e_PropertyMap = 0x15,
36652 e_StandAloneSig = 0x11,
36653 e_TypeDef = 0x02,
36654 e_TypeRef = 0x01,
36655 e_TypeSpec = 0x1B,
36656 e_Unknown_table_kind = 0xFF
36657 };
36658
36660 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
36661
36663 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
36664
36666 void dump(std::ostream& os) const override;
36667
36671 SgAsmCilMetadata* get_MetadataNode(std::uint32_t idx, TableKind tblcode) const;
36672
36677 SgAsmCilMetadata* get_CodedMetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
36678
36683 SgAsmCilMetadata* get_MetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
36684public:
36687
36688public:
36691
36692public:
36694 SgAsmCilMetadataHeap(uint32_t const& Offset,
36695 uint32_t const& Size,
36696 std::string const& Name,
36697 uint32_t const& NamePadding);
36698
36699protected:
36707#endif // SgAsmCilMetadataHeap_OTHERS
36708#ifdef DOCUMENTATION
36709};
36710#endif // DOCUMENTATION
36711
36712
36714// SgAsmCilMemberRefTable -- MACHINE GENERATED; DO NOT MODIFY --
36716
36717DECLARE_LEAF_CLASS(AsmCilMemberRefTable);
36718IS_SERIALIZABLE(AsmCilMemberRefTable);
36719
36720#ifndef DOCUMENTATION
36721AsmCilMemberRefTable.useSmallHeader(true);
36722#endif // !DOCUMENTATION
36723
36724#ifdef DOCUMENTATION
36727#endif // DOCUMENTATION
36728
36729#ifndef DOCUMENTATION
36730 AsmCilMemberRefTable.setDataPrototype(
36731 "std::vector<SgAsmCilMemberRef*>", "elements", "",
36732 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36733#endif // !DOCUMENTATION
36734
36735 DECLARE_OTHERS(AsmCilMemberRefTable);
36736#if defined(SgAsmCilMemberRefTable_OTHERS) || defined(DOCUMENTATION)
36737
36738 //----------------------- Boost serialization for SgAsmCilMemberRefTable -----------------------
36739#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36740private:
36741 friend class boost::serialization::access;
36742
36743 template<class S>
36744 void serialize(S &s, const unsigned /*version*/) {
36745 debugSerializationBegin("SgAsmCilMemberRefTable");
36746 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36747 s & BOOST_SERIALIZATION_NVP(p_elements);
36748 debugSerializationEnd("SgAsmCilMemberRefTable");
36749 }
36750#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36751
36752public:
36753 std::vector<SgAsmCilMemberRef*> const& get_elements() const;
36754 std::vector<SgAsmCilMemberRef*>& get_elements();
36755public:
36757public:
36760
36761public:
36764
36765protected:
36773#endif // SgAsmCilMemberRefTable_OTHERS
36774#ifdef DOCUMENTATION
36775};
36776#endif // DOCUMENTATION
36777
36778
36780// SgAsmCilMemberRef -- MACHINE GENERATED; DO NOT MODIFY --
36782
36783DECLARE_LEAF_CLASS(AsmCilMemberRef);
36784IS_SERIALIZABLE(AsmCilMemberRef);
36785
36786#ifndef DOCUMENTATION
36787AsmCilMemberRef.useSmallHeader(true);
36788#endif // !DOCUMENTATION
36789
36790#ifdef DOCUMENTATION
36793#endif // DOCUMENTATION
36794
36795#ifndef DOCUMENTATION
36796 AsmCilMemberRef.setDataPrototype(
36797 "uint32_t", "Class", "= 0",
36798 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36799#endif // !DOCUMENTATION
36800
36801#ifndef DOCUMENTATION
36802 AsmCilMemberRef.setDataPrototype(
36803 "uint32_t", "Name", "= 0",
36804 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36805#endif // !DOCUMENTATION
36806
36807#ifndef DOCUMENTATION
36808 AsmCilMemberRef.setDataPrototype(
36809 "uint32_t", "Signature", "= 0",
36810 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36811#endif // !DOCUMENTATION
36812
36813 DECLARE_OTHERS(AsmCilMemberRef);
36814#if defined(SgAsmCilMemberRef_OTHERS) || defined(DOCUMENTATION)
36815
36816 //----------------------- Boost serialization for SgAsmCilMemberRef -----------------------
36817#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36818private:
36819 friend class boost::serialization::access;
36820
36821 template<class S>
36822 void serialize(S &s, const unsigned /*version*/) {
36823 debugSerializationBegin("SgAsmCilMemberRef");
36824 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36825 s & BOOST_SERIALIZATION_NVP(p_Class);
36826 s & BOOST_SERIALIZATION_NVP(p_Name);
36827 s & BOOST_SERIALIZATION_NVP(p_Signature);
36828 debugSerializationEnd("SgAsmCilMemberRef");
36829 }
36830#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36831
36832public:
36838 uint32_t const& get_Class() const;
36839 void set_Class(uint32_t const&);
36842public:
36848 uint32_t const& get_Name() const;
36849 void set_Name(uint32_t const&);
36852public:
36858 uint32_t const& get_Signature() const;
36859 void set_Signature(uint32_t const&);
36861public:
36862 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36863 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36864 void dump(std::ostream&) const;
36865
36866 const SgAsmCilMetadata* get_Class_object() const;
36867 const std::uint8_t* get_Name_string() const;
36868 const std::uint8_t* get_Signature_blob() const;
36869public:
36872
36873public:
36876
36877protected:
36885#endif // SgAsmCilMemberRef_OTHERS
36886#ifdef DOCUMENTATION
36887};
36888#endif // DOCUMENTATION
36889
36890
36892// SgAsmCilManifestResourceTable -- MACHINE GENERATED; DO NOT MODIFY --
36894
36895DECLARE_LEAF_CLASS(AsmCilManifestResourceTable);
36896IS_SERIALIZABLE(AsmCilManifestResourceTable);
36897
36898#ifndef DOCUMENTATION
36899AsmCilManifestResourceTable.useSmallHeader(true);
36900#endif // !DOCUMENTATION
36901
36902#ifdef DOCUMENTATION
36905#endif // DOCUMENTATION
36906
36907#ifndef DOCUMENTATION
36908 AsmCilManifestResourceTable.setDataPrototype(
36909 "std::vector<SgAsmCilManifestResource*>", "elements", "",
36910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36911#endif // !DOCUMENTATION
36912
36913 DECLARE_OTHERS(AsmCilManifestResourceTable);
36914#if defined(SgAsmCilManifestResourceTable_OTHERS) || defined(DOCUMENTATION)
36915
36916 //----------------------- Boost serialization for SgAsmCilManifestResourceTable -----------------------
36917#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36918private:
36919 friend class boost::serialization::access;
36920
36921 template<class S>
36922 void serialize(S &s, const unsigned /*version*/) {
36923 debugSerializationBegin("SgAsmCilManifestResourceTable");
36924 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36925 s & BOOST_SERIALIZATION_NVP(p_elements);
36926 debugSerializationEnd("SgAsmCilManifestResourceTable");
36927 }
36928#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36929
36930public:
36931 std::vector<SgAsmCilManifestResource*> const& get_elements() const;
36932 std::vector<SgAsmCilManifestResource*>& get_elements();
36933public:
36935public:
36938
36939public:
36942
36943protected:
36951#endif // SgAsmCilManifestResourceTable_OTHERS
36952#ifdef DOCUMENTATION
36953};
36954#endif // DOCUMENTATION
36955
36956
36958// SgAsmCilManifestResource -- MACHINE GENERATED; DO NOT MODIFY --
36960
36961DECLARE_LEAF_CLASS(AsmCilManifestResource);
36962IS_SERIALIZABLE(AsmCilManifestResource);
36963
36964#ifndef DOCUMENTATION
36965AsmCilManifestResource.useSmallHeader(true);
36966#endif // !DOCUMENTATION
36967
36968#ifdef DOCUMENTATION
36971#endif // DOCUMENTATION
36972
36973#ifndef DOCUMENTATION
36974 AsmCilManifestResource.setDataPrototype(
36975 "uint32_t", "Offset", "= 0",
36976 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36977#endif // !DOCUMENTATION
36978
36979#ifndef DOCUMENTATION
36980 AsmCilManifestResource.setDataPrototype(
36981 "uint32_t", "Flags", "= 0",
36982 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36983#endif // !DOCUMENTATION
36984
36985#ifndef DOCUMENTATION
36986 AsmCilManifestResource.setDataPrototype(
36987 "uint32_t", "Name", "= 0",
36988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36989#endif // !DOCUMENTATION
36990
36991#ifndef DOCUMENTATION
36992 AsmCilManifestResource.setDataPrototype(
36993 "uint32_t", "Implementation", "= 0",
36994 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36995#endif // !DOCUMENTATION
36996
36997 DECLARE_OTHERS(AsmCilManifestResource);
36998#if defined(SgAsmCilManifestResource_OTHERS) || defined(DOCUMENTATION)
36999
37000 //----------------------- Boost serialization for SgAsmCilManifestResource -----------------------
37001#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37002private:
37003 friend class boost::serialization::access;
37004
37005 template<class S>
37006 void serialize(S &s, const unsigned /*version*/) {
37007 debugSerializationBegin("SgAsmCilManifestResource");
37008 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37009 s & BOOST_SERIALIZATION_NVP(p_Offset);
37010 s & BOOST_SERIALIZATION_NVP(p_Flags);
37011 s & BOOST_SERIALIZATION_NVP(p_Name);
37012 s & BOOST_SERIALIZATION_NVP(p_Implementation);
37013 debugSerializationEnd("SgAsmCilManifestResource");
37014 }
37015#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37016
37017public:
37023 uint32_t const& get_Offset() const;
37024 void set_Offset(uint32_t const&);
37027public:
37033 uint32_t const& get_Flags() const;
37034 void set_Flags(uint32_t const&);
37037public:
37043 uint32_t const& get_Name() const;
37044 void set_Name(uint32_t const&);
37047public:
37053 uint32_t const& get_Implementation() const;
37054 void set_Implementation(uint32_t const&);
37056public:
37057 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37058 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37059 void dump(std::ostream&) const;
37060
37061 const std::uint8_t* get_Name_string() const;
37062 const SgAsmCilMetadata* get_Implementation_object() const;
37063public:
37066
37067public:
37070
37071protected:
37079#endif // SgAsmCilManifestResource_OTHERS
37080#ifdef DOCUMENTATION
37081};
37082#endif // DOCUMENTATION
37083
37084
37086// SgAsmCilInterfaceImplTable -- MACHINE GENERATED; DO NOT MODIFY --
37088
37089DECLARE_LEAF_CLASS(AsmCilInterfaceImplTable);
37090IS_SERIALIZABLE(AsmCilInterfaceImplTable);
37091
37092#ifndef DOCUMENTATION
37093AsmCilInterfaceImplTable.useSmallHeader(true);
37094#endif // !DOCUMENTATION
37095
37096#ifdef DOCUMENTATION
37099#endif // DOCUMENTATION
37100
37101#ifndef DOCUMENTATION
37102 AsmCilInterfaceImplTable.setDataPrototype(
37103 "std::vector<SgAsmCilInterfaceImpl*>", "elements", "",
37104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37105#endif // !DOCUMENTATION
37106
37107 DECLARE_OTHERS(AsmCilInterfaceImplTable);
37108#if defined(SgAsmCilInterfaceImplTable_OTHERS) || defined(DOCUMENTATION)
37109
37110 //----------------------- Boost serialization for SgAsmCilInterfaceImplTable -----------------------
37111#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37112private:
37113 friend class boost::serialization::access;
37114
37115 template<class S>
37116 void serialize(S &s, const unsigned /*version*/) {
37117 debugSerializationBegin("SgAsmCilInterfaceImplTable");
37118 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37119 s & BOOST_SERIALIZATION_NVP(p_elements);
37120 debugSerializationEnd("SgAsmCilInterfaceImplTable");
37121 }
37122#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37123
37124public:
37125 std::vector<SgAsmCilInterfaceImpl*> const& get_elements() const;
37126 std::vector<SgAsmCilInterfaceImpl*>& get_elements();
37127public:
37129public:
37132
37133public:
37136
37137protected:
37145#endif // SgAsmCilInterfaceImplTable_OTHERS
37146#ifdef DOCUMENTATION
37147};
37148#endif // DOCUMENTATION
37149
37150
37152// SgAsmCilInterfaceImpl -- MACHINE GENERATED; DO NOT MODIFY --
37154
37155DECLARE_LEAF_CLASS(AsmCilInterfaceImpl);
37156IS_SERIALIZABLE(AsmCilInterfaceImpl);
37157
37158#ifndef DOCUMENTATION
37159AsmCilInterfaceImpl.useSmallHeader(true);
37160#endif // !DOCUMENTATION
37161
37162#ifdef DOCUMENTATION
37165#endif // DOCUMENTATION
37166
37167#ifndef DOCUMENTATION
37168 AsmCilInterfaceImpl.setDataPrototype(
37169 "uint32_t", "Class", "= 0",
37170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37171#endif // !DOCUMENTATION
37172
37173#ifndef DOCUMENTATION
37174 AsmCilInterfaceImpl.setDataPrototype(
37175 "uint32_t", "Interface", "= 0",
37176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37177#endif // !DOCUMENTATION
37178
37179 DECLARE_OTHERS(AsmCilInterfaceImpl);
37180#if defined(SgAsmCilInterfaceImpl_OTHERS) || defined(DOCUMENTATION)
37181
37182 //----------------------- Boost serialization for SgAsmCilInterfaceImpl -----------------------
37183#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37184private:
37185 friend class boost::serialization::access;
37186
37187 template<class S>
37188 void serialize(S &s, const unsigned /*version*/) {
37189 debugSerializationBegin("SgAsmCilInterfaceImpl");
37190 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37191 s & BOOST_SERIALIZATION_NVP(p_Class);
37192 s & BOOST_SERIALIZATION_NVP(p_Interface);
37193 debugSerializationEnd("SgAsmCilInterfaceImpl");
37194 }
37195#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37196
37197public:
37203 uint32_t const& get_Class() const;
37204 void set_Class(uint32_t const&);
37207public:
37213 uint32_t const& get_Interface() const;
37214 void set_Interface(uint32_t const&);
37216public:
37217 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37218 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37219 void dump(std::ostream&) const;
37220
37221 const SgAsmCilMetadata* get_Class_object() const;
37222 const SgAsmCilMetadata* get_Interface_object() const;
37223public:
37226
37227public:
37230
37231protected:
37239#endif // SgAsmCilInterfaceImpl_OTHERS
37240#ifdef DOCUMENTATION
37241};
37242#endif // DOCUMENTATION
37243
37244
37246// SgAsmCilInstruction -- MACHINE GENERATED; DO NOT MODIFY --
37248
37249DECLARE_LEAF_CLASS(AsmCilInstruction);
37250IS_SERIALIZABLE(AsmCilInstruction);
37251
37252#ifndef DOCUMENTATION
37253AsmCilInstruction.useSmallHeader(true);
37254#endif // !DOCUMENTATION
37255
37256DECLARE_HEADERS(AsmCilInstruction);
37257#if defined(SgAsmCilInstruction_HEADERS) || defined(DOCUMENTATION)
37258#include <Rose/BinaryAnalysis/InstructionEnumsCil.h>
37259#endif // SgAsmCilInstruction_HEADERS
37260
37261#ifdef DOCUMENTATION
37263#endif // DOCUMENTATION
37264
37265#ifndef DOCUMENTATION
37266 AsmCilInstruction.setDataPrototype(
37267 "Rose::BinaryAnalysis::CilInstructionKind", "kind", "= Rose::BinaryAnalysis::Cil_unknown_instruction",
37268 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37269#endif // !DOCUMENTATION
37270
37271 DECLARE_OTHERS(AsmCilInstruction);
37272#if defined(SgAsmCilInstruction_OTHERS) || defined(DOCUMENTATION)
37273
37274 //----------------------- Boost serialization for SgAsmCilInstruction -----------------------
37275#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37276private:
37277 friend class boost::serialization::access;
37278
37279 template<class S>
37280 void serialize(S &s, const unsigned /*version*/) {
37281 debugSerializationBegin("SgAsmCilInstruction");
37282 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
37283 s & BOOST_SERIALIZATION_NVP(p_kind);
37284 debugSerializationEnd("SgAsmCilInstruction");
37285 }
37286#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37287public:
37288public:
37295 Rose::BinaryAnalysis::CilInstructionKind const& get_kind() const;
37296 void set_kind(Rose::BinaryAnalysis::CilInstructionKind const&);
37298public:
37299 // Overrides are documented in the base classa
37300 virtual unsigned get_anyKind() const override;
37301public:
37304
37305public:
37308
37309public:
37312 uint8_t const& architectureId,
37313 Rose::BinaryAnalysis::CilInstructionKind const& kind);
37314
37315protected:
37323#endif // SgAsmCilInstruction_OTHERS
37324#ifdef DOCUMENTATION
37325};
37326#endif // DOCUMENTATION
37327
37328
37330// SgAsmCilImplMapTable -- MACHINE GENERATED; DO NOT MODIFY --
37332
37333DECLARE_LEAF_CLASS(AsmCilImplMapTable);
37334IS_SERIALIZABLE(AsmCilImplMapTable);
37335
37336#ifndef DOCUMENTATION
37337AsmCilImplMapTable.useSmallHeader(true);
37338#endif // !DOCUMENTATION
37339
37340#ifdef DOCUMENTATION
37343#endif // DOCUMENTATION
37344
37345#ifndef DOCUMENTATION
37346 AsmCilImplMapTable.setDataPrototype(
37347 "std::vector<SgAsmCilImplMap*>", "elements", "",
37348 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37349#endif // !DOCUMENTATION
37350
37351 DECLARE_OTHERS(AsmCilImplMapTable);
37352#if defined(SgAsmCilImplMapTable_OTHERS) || defined(DOCUMENTATION)
37353
37354 //----------------------- Boost serialization for SgAsmCilImplMapTable -----------------------
37355#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37356private:
37357 friend class boost::serialization::access;
37358
37359 template<class S>
37360 void serialize(S &s, const unsigned /*version*/) {
37361 debugSerializationBegin("SgAsmCilImplMapTable");
37362 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37363 s & BOOST_SERIALIZATION_NVP(p_elements);
37364 debugSerializationEnd("SgAsmCilImplMapTable");
37365 }
37366#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37367
37368public:
37369 std::vector<SgAsmCilImplMap*> const& get_elements() const;
37370 std::vector<SgAsmCilImplMap*>& get_elements();
37371public:
37373public:
37376
37377public:
37380
37381protected:
37389#endif // SgAsmCilImplMapTable_OTHERS
37390#ifdef DOCUMENTATION
37391};
37392#endif // DOCUMENTATION
37393
37394
37396// SgAsmCilImplMap -- MACHINE GENERATED; DO NOT MODIFY --
37398
37399DECLARE_LEAF_CLASS(AsmCilImplMap);
37400IS_SERIALIZABLE(AsmCilImplMap);
37401
37402#ifndef DOCUMENTATION
37403AsmCilImplMap.useSmallHeader(true);
37404#endif // !DOCUMENTATION
37405
37406#ifdef DOCUMENTATION
37409#endif // DOCUMENTATION
37410
37411#ifndef DOCUMENTATION
37412 AsmCilImplMap.setDataPrototype(
37413 "uint16_t", "MappingFlags", "= 0",
37414 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37415#endif // !DOCUMENTATION
37416
37417#ifndef DOCUMENTATION
37418 AsmCilImplMap.setDataPrototype(
37419 "uint32_t", "MemberForwarded", "= 0",
37420 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37421#endif // !DOCUMENTATION
37422
37423#ifndef DOCUMENTATION
37424 AsmCilImplMap.setDataPrototype(
37425 "uint32_t", "ImportName", "= 0",
37426 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37427#endif // !DOCUMENTATION
37428
37429#ifndef DOCUMENTATION
37430 AsmCilImplMap.setDataPrototype(
37431 "uint32_t", "ImportScope", "= 0",
37432 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37433#endif // !DOCUMENTATION
37434
37435 DECLARE_OTHERS(AsmCilImplMap);
37436#if defined(SgAsmCilImplMap_OTHERS) || defined(DOCUMENTATION)
37437
37438 //----------------------- Boost serialization for SgAsmCilImplMap -----------------------
37439#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37440private:
37441 friend class boost::serialization::access;
37442
37443 template<class S>
37444 void serialize(S &s, const unsigned /*version*/) {
37445 debugSerializationBegin("SgAsmCilImplMap");
37446 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37447 s & BOOST_SERIALIZATION_NVP(p_MappingFlags);
37448 s & BOOST_SERIALIZATION_NVP(p_MemberForwarded);
37449 s & BOOST_SERIALIZATION_NVP(p_ImportName);
37450 s & BOOST_SERIALIZATION_NVP(p_ImportScope);
37451 debugSerializationEnd("SgAsmCilImplMap");
37452 }
37453#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37454
37455public:
37461 uint16_t const& get_MappingFlags() const;
37462 void set_MappingFlags(uint16_t const&);
37465public:
37471 uint32_t const& get_MemberForwarded() const;
37472 void set_MemberForwarded(uint32_t const&);
37475public:
37481 uint32_t const& get_ImportName() const;
37482 void set_ImportName(uint32_t const&);
37485public:
37491 uint32_t const& get_ImportScope() const;
37492 void set_ImportScope(uint32_t const&);
37494public:
37495 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37496 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37497 void dump(std::ostream&) const;
37498
37499 const SgAsmCilMetadata* get_MemberForwarded_object() const;
37500 const std::uint8_t* get_ImportName_string() const;
37501 const SgAsmCilMetadata* get_ImportScope_object() const;
37502public:
37505
37506public:
37509
37510protected:
37518#endif // SgAsmCilImplMap_OTHERS
37519#ifdef DOCUMENTATION
37520};
37521#endif // DOCUMENTATION
37522
37523
37525// SgAsmCilGenericParamTable -- MACHINE GENERATED; DO NOT MODIFY --
37527
37528DECLARE_LEAF_CLASS(AsmCilGenericParamTable);
37529IS_SERIALIZABLE(AsmCilGenericParamTable);
37530
37531#ifndef DOCUMENTATION
37532AsmCilGenericParamTable.useSmallHeader(true);
37533#endif // !DOCUMENTATION
37534
37535#ifdef DOCUMENTATION
37538#endif // DOCUMENTATION
37539
37540#ifndef DOCUMENTATION
37541 AsmCilGenericParamTable.setDataPrototype(
37542 "std::vector<SgAsmCilGenericParam*>", "elements", "",
37543 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37544#endif // !DOCUMENTATION
37545
37546 DECLARE_OTHERS(AsmCilGenericParamTable);
37547#if defined(SgAsmCilGenericParamTable_OTHERS) || defined(DOCUMENTATION)
37548
37549 //----------------------- Boost serialization for SgAsmCilGenericParamTable -----------------------
37550#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37551private:
37552 friend class boost::serialization::access;
37553
37554 template<class S>
37555 void serialize(S &s, const unsigned /*version*/) {
37556 debugSerializationBegin("SgAsmCilGenericParamTable");
37557 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37558 s & BOOST_SERIALIZATION_NVP(p_elements);
37559 debugSerializationEnd("SgAsmCilGenericParamTable");
37560 }
37561#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37562
37563public:
37564 std::vector<SgAsmCilGenericParam*> const& get_elements() const;
37565 std::vector<SgAsmCilGenericParam*>& get_elements();
37566public:
37568public:
37571
37572public:
37575
37576protected:
37584#endif // SgAsmCilGenericParamTable_OTHERS
37585#ifdef DOCUMENTATION
37586};
37587#endif // DOCUMENTATION
37588
37589
37591// SgAsmCilGenericParamConstraintTable -- MACHINE GENERATED; DO NOT MODIFY --
37593
37594DECLARE_LEAF_CLASS(AsmCilGenericParamConstraintTable);
37595IS_SERIALIZABLE(AsmCilGenericParamConstraintTable);
37596
37597#ifndef DOCUMENTATION
37598AsmCilGenericParamConstraintTable.useSmallHeader(true);
37599#endif // !DOCUMENTATION
37600
37601#ifdef DOCUMENTATION
37604#endif // DOCUMENTATION
37605
37606#ifndef DOCUMENTATION
37607 AsmCilGenericParamConstraintTable.setDataPrototype(
37608 "std::vector<SgAsmCilGenericParamConstraint*>", "elements", "",
37609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37610#endif // !DOCUMENTATION
37611
37612 DECLARE_OTHERS(AsmCilGenericParamConstraintTable);
37613#if defined(SgAsmCilGenericParamConstraintTable_OTHERS) || defined(DOCUMENTATION)
37614
37615 //----------------------- Boost serialization for SgAsmCilGenericParamConstraintTable -----------------------
37616#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37617private:
37618 friend class boost::serialization::access;
37619
37620 template<class S>
37621 void serialize(S &s, const unsigned /*version*/) {
37622 debugSerializationBegin("SgAsmCilGenericParamConstraintTable");
37623 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37624 s & BOOST_SERIALIZATION_NVP(p_elements);
37625 debugSerializationEnd("SgAsmCilGenericParamConstraintTable");
37626 }
37627#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37628
37629public:
37630 std::vector<SgAsmCilGenericParamConstraint*> const& get_elements() const;
37631 std::vector<SgAsmCilGenericParamConstraint*>& get_elements();
37632public:
37634public:
37637
37638public:
37641
37642protected:
37650#endif // SgAsmCilGenericParamConstraintTable_OTHERS
37651#ifdef DOCUMENTATION
37652};
37653#endif // DOCUMENTATION
37654
37655
37657// SgAsmCilGenericParamConstraint -- MACHINE GENERATED; DO NOT MODIFY --
37659
37660DECLARE_LEAF_CLASS(AsmCilGenericParamConstraint);
37661IS_SERIALIZABLE(AsmCilGenericParamConstraint);
37662
37663#ifndef DOCUMENTATION
37664AsmCilGenericParamConstraint.useSmallHeader(true);
37665#endif // !DOCUMENTATION
37666
37667#ifdef DOCUMENTATION
37670#endif // DOCUMENTATION
37671
37672#ifndef DOCUMENTATION
37673 AsmCilGenericParamConstraint.setDataPrototype(
37674 "uint32_t", "Owner", "= 0",
37675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37676#endif // !DOCUMENTATION
37677
37678#ifndef DOCUMENTATION
37679 AsmCilGenericParamConstraint.setDataPrototype(
37680 "uint32_t", "Constraint", "= 0",
37681 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37682#endif // !DOCUMENTATION
37683
37684 DECLARE_OTHERS(AsmCilGenericParamConstraint);
37685#if defined(SgAsmCilGenericParamConstraint_OTHERS) || defined(DOCUMENTATION)
37686
37687 //----------------------- Boost serialization for SgAsmCilGenericParamConstraint -----------------------
37688#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37689private:
37690 friend class boost::serialization::access;
37691
37692 template<class S>
37693 void serialize(S &s, const unsigned /*version*/) {
37694 debugSerializationBegin("SgAsmCilGenericParamConstraint");
37695 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37696 s & BOOST_SERIALIZATION_NVP(p_Owner);
37697 s & BOOST_SERIALIZATION_NVP(p_Constraint);
37698 debugSerializationEnd("SgAsmCilGenericParamConstraint");
37699 }
37700#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37701
37702public:
37708 uint32_t const& get_Owner() const;
37709 void set_Owner(uint32_t const&);
37712public:
37718 uint32_t const& get_Constraint() const;
37719 void set_Constraint(uint32_t const&);
37721public:
37722 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37723 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37724 void dump(std::ostream&) const;
37725
37726 const SgAsmCilMetadata* get_Owner_object() const;
37727 const SgAsmCilMetadata* get_Constraint_object() const;
37728public:
37731
37732public:
37735
37736protected:
37744#endif // SgAsmCilGenericParamConstraint_OTHERS
37745#ifdef DOCUMENTATION
37746};
37747#endif // DOCUMENTATION
37748
37749
37751// SgAsmCilGenericParam -- MACHINE GENERATED; DO NOT MODIFY --
37753
37754DECLARE_LEAF_CLASS(AsmCilGenericParam);
37755IS_SERIALIZABLE(AsmCilGenericParam);
37756
37757#ifndef DOCUMENTATION
37758AsmCilGenericParam.useSmallHeader(true);
37759#endif // !DOCUMENTATION
37760
37761#ifdef DOCUMENTATION
37764#endif // DOCUMENTATION
37765
37766#ifndef DOCUMENTATION
37767 AsmCilGenericParam.setDataPrototype(
37768 "uint16_t", "Number", "= 0",
37769 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37770#endif // !DOCUMENTATION
37771
37772#ifndef DOCUMENTATION
37773 AsmCilGenericParam.setDataPrototype(
37774 "uint16_t", "Flags", "= 0",
37775 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37776#endif // !DOCUMENTATION
37777
37778#ifndef DOCUMENTATION
37779 AsmCilGenericParam.setDataPrototype(
37780 "uint32_t", "Owner", "= 0",
37781 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37782#endif // !DOCUMENTATION
37783
37784#ifndef DOCUMENTATION
37785 AsmCilGenericParam.setDataPrototype(
37786 "uint32_t", "Name", "= 0",
37787 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37788#endif // !DOCUMENTATION
37789
37790 DECLARE_OTHERS(AsmCilGenericParam);
37791#if defined(SgAsmCilGenericParam_OTHERS) || defined(DOCUMENTATION)
37792
37793 //----------------------- Boost serialization for SgAsmCilGenericParam -----------------------
37794#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37795private:
37796 friend class boost::serialization::access;
37797
37798 template<class S>
37799 void serialize(S &s, const unsigned /*version*/) {
37800 debugSerializationBegin("SgAsmCilGenericParam");
37801 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37802 s & BOOST_SERIALIZATION_NVP(p_Number);
37803 s & BOOST_SERIALIZATION_NVP(p_Flags);
37804 s & BOOST_SERIALIZATION_NVP(p_Owner);
37805 s & BOOST_SERIALIZATION_NVP(p_Name);
37806 debugSerializationEnd("SgAsmCilGenericParam");
37807 }
37808#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37809
37810public:
37816 uint16_t const& get_Number() const;
37817 void set_Number(uint16_t const&);
37820public:
37826 uint16_t const& get_Flags() const;
37827 void set_Flags(uint16_t const&);
37830public:
37836 uint32_t const& get_Owner() const;
37837 void set_Owner(uint32_t const&);
37840public:
37846 uint32_t const& get_Name() const;
37847 void set_Name(uint32_t const&);
37849public:
37850 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37851 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37852 void dump(std::ostream&) const;
37853
37854 const SgAsmCilMetadata* get_Owner_object() const;
37855 const std::uint8_t* get_Name_string() const;
37856public:
37859
37860public:
37863
37864protected:
37872#endif // SgAsmCilGenericParam_OTHERS
37873#ifdef DOCUMENTATION
37874};
37875#endif // DOCUMENTATION
37876
37877
37879// SgAsmCilFileTable -- MACHINE GENERATED; DO NOT MODIFY --
37881
37882DECLARE_LEAF_CLASS(AsmCilFileTable);
37883IS_SERIALIZABLE(AsmCilFileTable);
37884
37885#ifndef DOCUMENTATION
37886AsmCilFileTable.useSmallHeader(true);
37887#endif // !DOCUMENTATION
37888
37889#ifdef DOCUMENTATION
37892#endif // DOCUMENTATION
37893
37894#ifndef DOCUMENTATION
37895 AsmCilFileTable.setDataPrototype(
37896 "std::vector<SgAsmCilFile*>", "elements", "",
37897 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37898#endif // !DOCUMENTATION
37899
37900 DECLARE_OTHERS(AsmCilFileTable);
37901#if defined(SgAsmCilFileTable_OTHERS) || defined(DOCUMENTATION)
37902
37903 //----------------------- Boost serialization for SgAsmCilFileTable -----------------------
37904#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37905private:
37906 friend class boost::serialization::access;
37907
37908 template<class S>
37909 void serialize(S &s, const unsigned /*version*/) {
37910 debugSerializationBegin("SgAsmCilFileTable");
37911 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37912 s & BOOST_SERIALIZATION_NVP(p_elements);
37913 debugSerializationEnd("SgAsmCilFileTable");
37914 }
37915#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37916
37917public:
37918 std::vector<SgAsmCilFile*> const& get_elements() const;
37919 std::vector<SgAsmCilFile*>& get_elements();
37920public:
37922public:
37925
37926public:
37929
37930protected:
37938#endif // SgAsmCilFileTable_OTHERS
37939#ifdef DOCUMENTATION
37940};
37941#endif // DOCUMENTATION
37942
37943
37945// SgAsmCilFile -- MACHINE GENERATED; DO NOT MODIFY --
37947
37948DECLARE_LEAF_CLASS(AsmCilFile);
37949IS_SERIALIZABLE(AsmCilFile);
37950
37951#ifndef DOCUMENTATION
37952AsmCilFile.useSmallHeader(true);
37953#endif // !DOCUMENTATION
37954
37955#ifdef DOCUMENTATION
37958#endif // DOCUMENTATION
37959
37960#ifndef DOCUMENTATION
37961 AsmCilFile.setDataPrototype(
37962 "uint32_t", "Flags", "= 0",
37963 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37964#endif // !DOCUMENTATION
37965
37966#ifndef DOCUMENTATION
37967 AsmCilFile.setDataPrototype(
37968 "uint32_t", "Name", "= 0",
37969 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37970#endif // !DOCUMENTATION
37971
37972#ifndef DOCUMENTATION
37973 AsmCilFile.setDataPrototype(
37974 "uint32_t", "HashValue", "= 0",
37975 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37976#endif // !DOCUMENTATION
37977
37978 DECLARE_OTHERS(AsmCilFile);
37979#if defined(SgAsmCilFile_OTHERS) || defined(DOCUMENTATION)
37980
37981 //----------------------- Boost serialization for SgAsmCilFile -----------------------
37982#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37983private:
37984 friend class boost::serialization::access;
37985
37986 template<class S>
37987 void serialize(S &s, const unsigned /*version*/) {
37988 debugSerializationBegin("SgAsmCilFile");
37989 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37990 s & BOOST_SERIALIZATION_NVP(p_Flags);
37991 s & BOOST_SERIALIZATION_NVP(p_Name);
37992 s & BOOST_SERIALIZATION_NVP(p_HashValue);
37993 debugSerializationEnd("SgAsmCilFile");
37994 }
37995#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37996
37997public:
38003 uint32_t const& get_Flags() const;
38004 void set_Flags(uint32_t const&);
38007public:
38013 uint32_t const& get_Name() const;
38014 void set_Name(uint32_t const&);
38017public:
38023 uint32_t const& get_HashValue() const;
38024 void set_HashValue(uint32_t const&);
38026public:
38027 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38028 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38029 void dump(std::ostream&) const;
38030
38031 const std::uint8_t* get_Name_string() const;
38032 const std::uint8_t* get_HashValue_blob() const;
38033public:
38035 virtual ~SgAsmCilFile();
38036
38037public:
38040
38041protected:
38049#endif // SgAsmCilFile_OTHERS
38050#ifdef DOCUMENTATION
38051};
38052#endif // DOCUMENTATION
38053
38054
38056// SgAsmCilFieldTable -- MACHINE GENERATED; DO NOT MODIFY --
38058
38059DECLARE_LEAF_CLASS(AsmCilFieldTable);
38060IS_SERIALIZABLE(AsmCilFieldTable);
38061
38062#ifndef DOCUMENTATION
38063AsmCilFieldTable.useSmallHeader(true);
38064#endif // !DOCUMENTATION
38065
38066#ifdef DOCUMENTATION
38069#endif // DOCUMENTATION
38070
38071#ifndef DOCUMENTATION
38072 AsmCilFieldTable.setDataPrototype(
38073 "std::vector<SgAsmCilField*>", "elements", "",
38074 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38075#endif // !DOCUMENTATION
38076
38077 DECLARE_OTHERS(AsmCilFieldTable);
38078#if defined(SgAsmCilFieldTable_OTHERS) || defined(DOCUMENTATION)
38079
38080 //----------------------- Boost serialization for SgAsmCilFieldTable -----------------------
38081#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38082private:
38083 friend class boost::serialization::access;
38084
38085 template<class S>
38086 void serialize(S &s, const unsigned /*version*/) {
38087 debugSerializationBegin("SgAsmCilFieldTable");
38088 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38089 s & BOOST_SERIALIZATION_NVP(p_elements);
38090 debugSerializationEnd("SgAsmCilFieldTable");
38091 }
38092#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38093
38094public:
38095 std::vector<SgAsmCilField*> const& get_elements() const;
38096 std::vector<SgAsmCilField*>& get_elements();
38097public:
38099public:
38102
38103public:
38106
38107protected:
38115#endif // SgAsmCilFieldTable_OTHERS
38116#ifdef DOCUMENTATION
38117};
38118#endif // DOCUMENTATION
38119
38120
38122// SgAsmCilFieldRVATable -- MACHINE GENERATED; DO NOT MODIFY --
38124
38125DECLARE_LEAF_CLASS(AsmCilFieldRVATable);
38126IS_SERIALIZABLE(AsmCilFieldRVATable);
38127
38128#ifndef DOCUMENTATION
38129AsmCilFieldRVATable.useSmallHeader(true);
38130#endif // !DOCUMENTATION
38131
38132#ifdef DOCUMENTATION
38135#endif // DOCUMENTATION
38136
38137#ifndef DOCUMENTATION
38138 AsmCilFieldRVATable.setDataPrototype(
38139 "std::vector<SgAsmCilFieldRVA*>", "elements", "",
38140 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38141#endif // !DOCUMENTATION
38142
38143 DECLARE_OTHERS(AsmCilFieldRVATable);
38144#if defined(SgAsmCilFieldRVATable_OTHERS) || defined(DOCUMENTATION)
38145
38146 //----------------------- Boost serialization for SgAsmCilFieldRVATable -----------------------
38147#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38148private:
38149 friend class boost::serialization::access;
38150
38151 template<class S>
38152 void serialize(S &s, const unsigned /*version*/) {
38153 debugSerializationBegin("SgAsmCilFieldRVATable");
38154 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38155 s & BOOST_SERIALIZATION_NVP(p_elements);
38156 debugSerializationEnd("SgAsmCilFieldRVATable");
38157 }
38158#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38159
38160public:
38161 std::vector<SgAsmCilFieldRVA*> const& get_elements() const;
38162 std::vector<SgAsmCilFieldRVA*>& get_elements();
38163public:
38165public:
38168
38169public:
38172
38173protected:
38181#endif // SgAsmCilFieldRVATable_OTHERS
38182#ifdef DOCUMENTATION
38183};
38184#endif // DOCUMENTATION
38185
38186
38188// SgAsmCilFieldRVA -- MACHINE GENERATED; DO NOT MODIFY --
38190
38191DECLARE_LEAF_CLASS(AsmCilFieldRVA);
38192IS_SERIALIZABLE(AsmCilFieldRVA);
38193
38194#ifndef DOCUMENTATION
38195AsmCilFieldRVA.useSmallHeader(true);
38196#endif // !DOCUMENTATION
38197
38198#ifdef DOCUMENTATION
38201#endif // DOCUMENTATION
38202
38203#ifndef DOCUMENTATION
38204 AsmCilFieldRVA.setDataPrototype(
38205 "uint32_t", "RVA", "= 0",
38206 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38207#endif // !DOCUMENTATION
38208
38209#ifndef DOCUMENTATION
38210 AsmCilFieldRVA.setDataPrototype(
38211 "uint32_t", "Field", "= 0",
38212 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38213#endif // !DOCUMENTATION
38214
38215 DECLARE_OTHERS(AsmCilFieldRVA);
38216#if defined(SgAsmCilFieldRVA_OTHERS) || defined(DOCUMENTATION)
38217
38218 //----------------------- Boost serialization for SgAsmCilFieldRVA -----------------------
38219#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38220private:
38221 friend class boost::serialization::access;
38222
38223 template<class S>
38224 void serialize(S &s, const unsigned /*version*/) {
38225 debugSerializationBegin("SgAsmCilFieldRVA");
38226 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38227 s & BOOST_SERIALIZATION_NVP(p_RVA);
38228 s & BOOST_SERIALIZATION_NVP(p_Field);
38229 debugSerializationEnd("SgAsmCilFieldRVA");
38230 }
38231#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38232
38233public:
38239 uint32_t const& get_RVA() const;
38240 void set_RVA(uint32_t const&);
38243public:
38249 uint32_t const& get_Field() const;
38250 void set_Field(uint32_t const&);
38252public:
38253 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38254 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38255 void dump(std::ostream&) const;
38256
38257 const SgAsmCilMetadata* get_Field_object() const;
38258public:
38261
38262public:
38265
38266protected:
38274#endif // SgAsmCilFieldRVA_OTHERS
38275#ifdef DOCUMENTATION
38276};
38277#endif // DOCUMENTATION
38278
38279
38281// SgAsmCilFieldMarshalTable -- MACHINE GENERATED; DO NOT MODIFY --
38283
38284DECLARE_LEAF_CLASS(AsmCilFieldMarshalTable);
38285IS_SERIALIZABLE(AsmCilFieldMarshalTable);
38286
38287#ifndef DOCUMENTATION
38288AsmCilFieldMarshalTable.useSmallHeader(true);
38289#endif // !DOCUMENTATION
38290
38291#ifdef DOCUMENTATION
38294#endif // DOCUMENTATION
38295
38296#ifndef DOCUMENTATION
38297 AsmCilFieldMarshalTable.setDataPrototype(
38298 "std::vector<SgAsmCilFieldMarshal*>", "elements", "",
38299 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38300#endif // !DOCUMENTATION
38301
38302 DECLARE_OTHERS(AsmCilFieldMarshalTable);
38303#if defined(SgAsmCilFieldMarshalTable_OTHERS) || defined(DOCUMENTATION)
38304
38305 //----------------------- Boost serialization for SgAsmCilFieldMarshalTable -----------------------
38306#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38307private:
38308 friend class boost::serialization::access;
38309
38310 template<class S>
38311 void serialize(S &s, const unsigned /*version*/) {
38312 debugSerializationBegin("SgAsmCilFieldMarshalTable");
38313 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38314 s & BOOST_SERIALIZATION_NVP(p_elements);
38315 debugSerializationEnd("SgAsmCilFieldMarshalTable");
38316 }
38317#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38318
38319public:
38320 std::vector<SgAsmCilFieldMarshal*> const& get_elements() const;
38321 std::vector<SgAsmCilFieldMarshal*>& get_elements();
38322public:
38324public:
38327
38328public:
38331
38332protected:
38340#endif // SgAsmCilFieldMarshalTable_OTHERS
38341#ifdef DOCUMENTATION
38342};
38343#endif // DOCUMENTATION
38344
38345
38347// SgAsmCilFieldMarshal -- MACHINE GENERATED; DO NOT MODIFY --
38349
38350DECLARE_LEAF_CLASS(AsmCilFieldMarshal);
38351IS_SERIALIZABLE(AsmCilFieldMarshal);
38352
38353#ifndef DOCUMENTATION
38354AsmCilFieldMarshal.useSmallHeader(true);
38355#endif // !DOCUMENTATION
38356
38357#ifdef DOCUMENTATION
38360#endif // DOCUMENTATION
38361
38362#ifndef DOCUMENTATION
38363 AsmCilFieldMarshal.setDataPrototype(
38364 "uint32_t", "Parent", "= 0",
38365 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38366#endif // !DOCUMENTATION
38367
38368#ifndef DOCUMENTATION
38369 AsmCilFieldMarshal.setDataPrototype(
38370 "uint32_t", "NativeType", "= 0",
38371 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38372#endif // !DOCUMENTATION
38373
38374 DECLARE_OTHERS(AsmCilFieldMarshal);
38375#if defined(SgAsmCilFieldMarshal_OTHERS) || defined(DOCUMENTATION)
38376
38377 //----------------------- Boost serialization for SgAsmCilFieldMarshal -----------------------
38378#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38379private:
38380 friend class boost::serialization::access;
38381
38382 template<class S>
38383 void serialize(S &s, const unsigned /*version*/) {
38384 debugSerializationBegin("SgAsmCilFieldMarshal");
38385 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38386 s & BOOST_SERIALIZATION_NVP(p_Parent);
38387 s & BOOST_SERIALIZATION_NVP(p_NativeType);
38388 debugSerializationEnd("SgAsmCilFieldMarshal");
38389 }
38390#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38391
38392public:
38398 uint32_t const& get_Parent() const;
38399 void set_Parent(uint32_t const&);
38402public:
38408 uint32_t const& get_NativeType() const;
38409 void set_NativeType(uint32_t const&);
38411public:
38412 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38413 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38414 void dump(std::ostream&) const;
38415
38416 const SgAsmCilMetadata* get_Parent_object() const;
38417 const std::uint8_t* get_NativeType_blob() const;
38418public:
38421
38422public:
38425
38426protected:
38434#endif // SgAsmCilFieldMarshal_OTHERS
38435#ifdef DOCUMENTATION
38436};
38437#endif // DOCUMENTATION
38438
38439
38441// SgAsmCilFieldLayoutTable -- MACHINE GENERATED; DO NOT MODIFY --
38443
38444DECLARE_LEAF_CLASS(AsmCilFieldLayoutTable);
38445IS_SERIALIZABLE(AsmCilFieldLayoutTable);
38446
38447#ifndef DOCUMENTATION
38448AsmCilFieldLayoutTable.useSmallHeader(true);
38449#endif // !DOCUMENTATION
38450
38451#ifdef DOCUMENTATION
38454#endif // DOCUMENTATION
38455
38456#ifndef DOCUMENTATION
38457 AsmCilFieldLayoutTable.setDataPrototype(
38458 "std::vector<SgAsmCilFieldLayout*>", "elements", "",
38459 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38460#endif // !DOCUMENTATION
38461
38462 DECLARE_OTHERS(AsmCilFieldLayoutTable);
38463#if defined(SgAsmCilFieldLayoutTable_OTHERS) || defined(DOCUMENTATION)
38464
38465 //----------------------- Boost serialization for SgAsmCilFieldLayoutTable -----------------------
38466#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38467private:
38468 friend class boost::serialization::access;
38469
38470 template<class S>
38471 void serialize(S &s, const unsigned /*version*/) {
38472 debugSerializationBegin("SgAsmCilFieldLayoutTable");
38473 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38474 s & BOOST_SERIALIZATION_NVP(p_elements);
38475 debugSerializationEnd("SgAsmCilFieldLayoutTable");
38476 }
38477#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38478
38479public:
38480 std::vector<SgAsmCilFieldLayout*> const& get_elements() const;
38481 std::vector<SgAsmCilFieldLayout*>& get_elements();
38482public:
38484public:
38487
38488public:
38491
38492protected:
38500#endif // SgAsmCilFieldLayoutTable_OTHERS
38501#ifdef DOCUMENTATION
38502};
38503#endif // DOCUMENTATION
38504
38505
38507// SgAsmCilFieldLayout -- MACHINE GENERATED; DO NOT MODIFY --
38509
38510DECLARE_LEAF_CLASS(AsmCilFieldLayout);
38511IS_SERIALIZABLE(AsmCilFieldLayout);
38512
38513#ifndef DOCUMENTATION
38514AsmCilFieldLayout.useSmallHeader(true);
38515#endif // !DOCUMENTATION
38516
38517#ifdef DOCUMENTATION
38520#endif // DOCUMENTATION
38521
38522#ifndef DOCUMENTATION
38523 AsmCilFieldLayout.setDataPrototype(
38524 "uint32_t", "Offset", "= 0",
38525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38526#endif // !DOCUMENTATION
38527
38528#ifndef DOCUMENTATION
38529 AsmCilFieldLayout.setDataPrototype(
38530 "uint32_t", "Field", "= 0",
38531 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38532#endif // !DOCUMENTATION
38533
38534 DECLARE_OTHERS(AsmCilFieldLayout);
38535#if defined(SgAsmCilFieldLayout_OTHERS) || defined(DOCUMENTATION)
38536
38537 //----------------------- Boost serialization for SgAsmCilFieldLayout -----------------------
38538#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38539private:
38540 friend class boost::serialization::access;
38541
38542 template<class S>
38543 void serialize(S &s, const unsigned /*version*/) {
38544 debugSerializationBegin("SgAsmCilFieldLayout");
38545 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38546 s & BOOST_SERIALIZATION_NVP(p_Offset);
38547 s & BOOST_SERIALIZATION_NVP(p_Field);
38548 debugSerializationEnd("SgAsmCilFieldLayout");
38549 }
38550#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38551
38552public:
38558 uint32_t const& get_Offset() const;
38559 void set_Offset(uint32_t const&);
38562public:
38568 uint32_t const& get_Field() const;
38569 void set_Field(uint32_t const&);
38571public:
38572 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38573 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38574 void dump(std::ostream&) const;
38575
38576 const SgAsmCilMetadata* get_Field_object() const;
38577public:
38580
38581public:
38584
38585protected:
38593#endif // SgAsmCilFieldLayout_OTHERS
38594#ifdef DOCUMENTATION
38595};
38596#endif // DOCUMENTATION
38597
38598
38600// SgAsmCilField -- MACHINE GENERATED; DO NOT MODIFY --
38602
38603DECLARE_LEAF_CLASS(AsmCilField);
38604IS_SERIALIZABLE(AsmCilField);
38605
38606#ifndef DOCUMENTATION
38607AsmCilField.useSmallHeader(true);
38608#endif // !DOCUMENTATION
38609
38610#ifdef DOCUMENTATION
38613#endif // DOCUMENTATION
38614
38615#ifndef DOCUMENTATION
38616 AsmCilField.setDataPrototype(
38617 "uint16_t", "Flags", "= 0",
38618 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38619#endif // !DOCUMENTATION
38620
38621#ifndef DOCUMENTATION
38622 AsmCilField.setDataPrototype(
38623 "uint32_t", "Name", "= 0",
38624 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38625#endif // !DOCUMENTATION
38626
38627#ifndef DOCUMENTATION
38628 AsmCilField.setDataPrototype(
38629 "uint32_t", "Signature", "= 0",
38630 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38631#endif // !DOCUMENTATION
38632
38633 DECLARE_OTHERS(AsmCilField);
38634#if defined(SgAsmCilField_OTHERS) || defined(DOCUMENTATION)
38635
38636 //----------------------- Boost serialization for SgAsmCilField -----------------------
38637#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38638private:
38639 friend class boost::serialization::access;
38640
38641 template<class S>
38642 void serialize(S &s, const unsigned /*version*/) {
38643 debugSerializationBegin("SgAsmCilField");
38644 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38645 s & BOOST_SERIALIZATION_NVP(p_Flags);
38646 s & BOOST_SERIALIZATION_NVP(p_Name);
38647 s & BOOST_SERIALIZATION_NVP(p_Signature);
38648 debugSerializationEnd("SgAsmCilField");
38649 }
38650#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38651
38652public:
38658 uint16_t const& get_Flags() const;
38659 void set_Flags(uint16_t const&);
38662public:
38668 uint32_t const& get_Name() const;
38669 void set_Name(uint32_t const&);
38672public:
38678 uint32_t const& get_Signature() const;
38679 void set_Signature(uint32_t const&);
38681public:
38682 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38683 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38684 void dump(std::ostream&) const;
38685
38686 const std::uint8_t* get_Name_string() const;
38687 const std::uint8_t* get_Signature_blob() const;
38688public:
38691
38692public:
38695
38696protected:
38704#endif // SgAsmCilField_OTHERS
38705#ifdef DOCUMENTATION
38706};
38707#endif // DOCUMENTATION
38708
38709
38711// SgAsmCilExportedTypeTable -- MACHINE GENERATED; DO NOT MODIFY --
38713
38714DECLARE_LEAF_CLASS(AsmCilExportedTypeTable);
38715IS_SERIALIZABLE(AsmCilExportedTypeTable);
38716
38717#ifndef DOCUMENTATION
38718AsmCilExportedTypeTable.useSmallHeader(true);
38719#endif // !DOCUMENTATION
38720
38721#ifdef DOCUMENTATION
38724#endif // DOCUMENTATION
38725
38726#ifndef DOCUMENTATION
38727 AsmCilExportedTypeTable.setDataPrototype(
38728 "std::vector<SgAsmCilExportedType*>", "elements", "",
38729 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38730#endif // !DOCUMENTATION
38731
38732 DECLARE_OTHERS(AsmCilExportedTypeTable);
38733#if defined(SgAsmCilExportedTypeTable_OTHERS) || defined(DOCUMENTATION)
38734
38735 //----------------------- Boost serialization for SgAsmCilExportedTypeTable -----------------------
38736#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38737private:
38738 friend class boost::serialization::access;
38739
38740 template<class S>
38741 void serialize(S &s, const unsigned /*version*/) {
38742 debugSerializationBegin("SgAsmCilExportedTypeTable");
38743 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38744 s & BOOST_SERIALIZATION_NVP(p_elements);
38745 debugSerializationEnd("SgAsmCilExportedTypeTable");
38746 }
38747#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38748
38749public:
38750 std::vector<SgAsmCilExportedType*> const& get_elements() const;
38751 std::vector<SgAsmCilExportedType*>& get_elements();
38752public:
38754public:
38757
38758public:
38761
38762protected:
38770#endif // SgAsmCilExportedTypeTable_OTHERS
38771#ifdef DOCUMENTATION
38772};
38773#endif // DOCUMENTATION
38774
38775
38777// SgAsmCilExportedType -- MACHINE GENERATED; DO NOT MODIFY --
38779
38780DECLARE_LEAF_CLASS(AsmCilExportedType);
38781IS_SERIALIZABLE(AsmCilExportedType);
38782
38783#ifndef DOCUMENTATION
38784AsmCilExportedType.useSmallHeader(true);
38785#endif // !DOCUMENTATION
38786
38787#ifdef DOCUMENTATION
38790#endif // DOCUMENTATION
38791
38792#ifndef DOCUMENTATION
38793 AsmCilExportedType.setDataPrototype(
38794 "uint32_t", "EventFlags", "= 0",
38795 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38796#endif // !DOCUMENTATION
38797
38798#ifndef DOCUMENTATION
38799 AsmCilExportedType.setDataPrototype(
38800 "uint32_t", "TypeDefIdName", "= 0",
38801 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38802#endif // !DOCUMENTATION
38803
38804#ifndef DOCUMENTATION
38805 AsmCilExportedType.setDataPrototype(
38806 "uint32_t", "TypeName", "= 0",
38807 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38808#endif // !DOCUMENTATION
38809
38810#ifndef DOCUMENTATION
38811 AsmCilExportedType.setDataPrototype(
38812 "uint32_t", "TypeNamespace", "= 0",
38813 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38814#endif // !DOCUMENTATION
38815
38816#ifndef DOCUMENTATION
38817 AsmCilExportedType.setDataPrototype(
38818 "uint32_t", "Implementation", "= 0",
38819 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38820#endif // !DOCUMENTATION
38821
38822 DECLARE_OTHERS(AsmCilExportedType);
38823#if defined(SgAsmCilExportedType_OTHERS) || defined(DOCUMENTATION)
38824
38825 //----------------------- Boost serialization for SgAsmCilExportedType -----------------------
38826#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38827private:
38828 friend class boost::serialization::access;
38829
38830 template<class S>
38831 void serialize(S &s, const unsigned /*version*/) {
38832 debugSerializationBegin("SgAsmCilExportedType");
38833 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38834 s & BOOST_SERIALIZATION_NVP(p_EventFlags);
38835 s & BOOST_SERIALIZATION_NVP(p_TypeDefIdName);
38836 s & BOOST_SERIALIZATION_NVP(p_TypeName);
38837 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
38838 s & BOOST_SERIALIZATION_NVP(p_Implementation);
38839 debugSerializationEnd("SgAsmCilExportedType");
38840 }
38841#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38842
38843public:
38849 uint32_t const& get_EventFlags() const;
38850 void set_EventFlags(uint32_t const&);
38853public:
38859 uint32_t const& get_TypeDefIdName() const;
38860 void set_TypeDefIdName(uint32_t const&);
38863public:
38869 uint32_t const& get_TypeName() const;
38870 void set_TypeName(uint32_t const&);
38873public:
38879 uint32_t const& get_TypeNamespace() const;
38880 void set_TypeNamespace(uint32_t const&);
38883public:
38889 uint32_t const& get_Implementation() const;
38890 void set_Implementation(uint32_t const&);
38892public:
38893 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38894 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38895 void dump(std::ostream&) const;
38896
38897 const std::uint8_t* get_TypeName_string() const;
38898 const std::uint8_t* get_TypeNamespace_string() const;
38899 const SgAsmCilMetadata* get_Implementation_object() const;
38900public:
38903
38904public:
38907
38908protected:
38916#endif // SgAsmCilExportedType_OTHERS
38917#ifdef DOCUMENTATION
38918};
38919#endif // DOCUMENTATION
38920
38921
38923// SgAsmCilExceptionData -- MACHINE GENERATED; DO NOT MODIFY --
38925
38926DECLARE_LEAF_CLASS(AsmCilExceptionData);
38927IS_SERIALIZABLE(AsmCilExceptionData);
38928
38929#ifndef DOCUMENTATION
38930AsmCilExceptionData.useSmallHeader(true);
38931#endif // !DOCUMENTATION
38932
38933#ifdef DOCUMENTATION
38939#endif // DOCUMENTATION
38940
38941#ifndef DOCUMENTATION
38942 AsmCilExceptionData.setDataPrototype(
38943 "std::uint32_t", "flags", "= 0",
38944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38945#endif // !DOCUMENTATION
38946
38947#ifndef DOCUMENTATION
38948 AsmCilExceptionData.setDataPrototype(
38949 "std::uint32_t", "tryOffset", "= 0",
38950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38951#endif // !DOCUMENTATION
38952
38953#ifndef DOCUMENTATION
38954 AsmCilExceptionData.setDataPrototype(
38955 "std::uint32_t", "tryLength", "= 0",
38956 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38957#endif // !DOCUMENTATION
38958
38959#ifndef DOCUMENTATION
38960 AsmCilExceptionData.setDataPrototype(
38961 "std::uint32_t", "handlerOffset", "= 0",
38962 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38963#endif // !DOCUMENTATION
38964
38965#ifndef DOCUMENTATION
38966 AsmCilExceptionData.setDataPrototype(
38967 "std::uint32_t", "handlerLength", "= 0",
38968 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38969#endif // !DOCUMENTATION
38970
38971#ifndef DOCUMENTATION
38972 AsmCilExceptionData.setDataPrototype(
38973 "std::uint32_t", "classTokenOrFilterOffset", "= 0",
38974 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38975#endif // !DOCUMENTATION
38976
38977 DECLARE_OTHERS(AsmCilExceptionData);
38978#if defined(SgAsmCilExceptionData_OTHERS) || defined(DOCUMENTATION)
38979
38980 //----------------------- Boost serialization for SgAsmCilExceptionData -----------------------
38981#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38982private:
38983 friend class boost::serialization::access;
38984
38985 template<class S>
38986 void serialize(S &s, const unsigned /*version*/) {
38987 debugSerializationBegin("SgAsmCilExceptionData");
38988 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
38989 s & BOOST_SERIALIZATION_NVP(p_flags);
38990 s & BOOST_SERIALIZATION_NVP(p_tryOffset);
38991 s & BOOST_SERIALIZATION_NVP(p_tryLength);
38992 s & BOOST_SERIALIZATION_NVP(p_handlerOffset);
38993 s & BOOST_SERIALIZATION_NVP(p_handlerLength);
38994 s & BOOST_SERIALIZATION_NVP(p_classTokenOrFilterOffset);
38995 debugSerializationEnd("SgAsmCilExceptionData");
38996 }
38997#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38998public:
38999 enum
39000 {
39001 COR_ILEXCEPTION_CLAUSE_EXCEPTION = 0x0000,
39002 COR_ILEXCEPTION_CLAUSE_FILTER = 0x0001,
39003 COR_ILEXCEPTION_CLAUSE_FINALLY = 0x0002,
39004 COR_ILEXCEPTION_CLAUSE_FAULT = 0x0004,
39005 COR_ILEXCEPTION_CLAUSE_MASK = ( COR_ILEXCEPTION_CLAUSE_EXCEPTION
39006 | COR_ILEXCEPTION_CLAUSE_FILTER
39007 | COR_ILEXCEPTION_CLAUSE_FINALLY
39008 | COR_ILEXCEPTION_CLAUSE_FAULT
39009 ),
39010 };
39011
39012private:
39013public:
39014 std::uint32_t const& get_flags() const;
39015 void set_flags(std::uint32_t const&);
39016
39017public:
39018 std::uint32_t const& get_tryOffset() const;
39019 void set_tryOffset(std::uint32_t const&);
39020
39021public:
39022 std::uint32_t const& get_tryLength() const;
39023 void set_tryLength(std::uint32_t const&);
39024
39025public:
39026 std::uint32_t const& get_handlerOffset() const;
39027 void set_handlerOffset(std::uint32_t const&);
39028
39029public:
39030 std::uint32_t const& get_handlerLength() const;
39031 void set_handlerLength(std::uint32_t const&);
39032
39033public:
39034 std::uint32_t const& get_classTokenOrFilterOffset() const;
39035 void set_classTokenOrFilterOffset(std::uint32_t const&);
39036public:
39041 bool isException() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_EXCEPTION; }
39042 bool isFilter() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_FILTER; }
39043 bool isFinally() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_FINALLY; }
39044 bool isFault() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_FAULT; }
39046public:
39049
39050public:
39053
39054protected:
39062#endif // SgAsmCilExceptionData_OTHERS
39063#ifdef DOCUMENTATION
39064};
39065#endif // DOCUMENTATION
39066
39067
39069// SgAsmCilEventTable -- MACHINE GENERATED; DO NOT MODIFY --
39071
39072DECLARE_LEAF_CLASS(AsmCilEventTable);
39073IS_SERIALIZABLE(AsmCilEventTable);
39074
39075#ifndef DOCUMENTATION
39076AsmCilEventTable.useSmallHeader(true);
39077#endif // !DOCUMENTATION
39078
39079#ifdef DOCUMENTATION
39082#endif // DOCUMENTATION
39083
39084#ifndef DOCUMENTATION
39085 AsmCilEventTable.setDataPrototype(
39086 "std::vector<SgAsmCilEvent*>", "elements", "",
39087 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39088#endif // !DOCUMENTATION
39089
39090 DECLARE_OTHERS(AsmCilEventTable);
39091#if defined(SgAsmCilEventTable_OTHERS) || defined(DOCUMENTATION)
39092
39093 //----------------------- Boost serialization for SgAsmCilEventTable -----------------------
39094#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39095private:
39096 friend class boost::serialization::access;
39097
39098 template<class S>
39099 void serialize(S &s, const unsigned /*version*/) {
39100 debugSerializationBegin("SgAsmCilEventTable");
39101 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39102 s & BOOST_SERIALIZATION_NVP(p_elements);
39103 debugSerializationEnd("SgAsmCilEventTable");
39104 }
39105#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39106
39107public:
39108 std::vector<SgAsmCilEvent*> const& get_elements() const;
39109 std::vector<SgAsmCilEvent*>& get_elements();
39110public:
39112public:
39115
39116public:
39119
39120protected:
39128#endif // SgAsmCilEventTable_OTHERS
39129#ifdef DOCUMENTATION
39130};
39131#endif // DOCUMENTATION
39132
39133
39135// SgAsmCilEventMapTable -- MACHINE GENERATED; DO NOT MODIFY --
39137
39138DECLARE_LEAF_CLASS(AsmCilEventMapTable);
39139IS_SERIALIZABLE(AsmCilEventMapTable);
39140
39141#ifndef DOCUMENTATION
39142AsmCilEventMapTable.useSmallHeader(true);
39143#endif // !DOCUMENTATION
39144
39145#ifdef DOCUMENTATION
39148#endif // DOCUMENTATION
39149
39150#ifndef DOCUMENTATION
39151 AsmCilEventMapTable.setDataPrototype(
39152 "std::vector<SgAsmCilEventMap*>", "elements", "",
39153 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39154#endif // !DOCUMENTATION
39155
39156 DECLARE_OTHERS(AsmCilEventMapTable);
39157#if defined(SgAsmCilEventMapTable_OTHERS) || defined(DOCUMENTATION)
39158
39159 //----------------------- Boost serialization for SgAsmCilEventMapTable -----------------------
39160#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39161private:
39162 friend class boost::serialization::access;
39163
39164 template<class S>
39165 void serialize(S &s, const unsigned /*version*/) {
39166 debugSerializationBegin("SgAsmCilEventMapTable");
39167 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39168 s & BOOST_SERIALIZATION_NVP(p_elements);
39169 debugSerializationEnd("SgAsmCilEventMapTable");
39170 }
39171#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39172
39173public:
39174 std::vector<SgAsmCilEventMap*> const& get_elements() const;
39175 std::vector<SgAsmCilEventMap*>& get_elements();
39176public:
39178public:
39181
39182public:
39185
39186protected:
39194#endif // SgAsmCilEventMapTable_OTHERS
39195#ifdef DOCUMENTATION
39196};
39197#endif // DOCUMENTATION
39198
39199
39201// SgAsmCilEventMap -- MACHINE GENERATED; DO NOT MODIFY --
39203
39204DECLARE_LEAF_CLASS(AsmCilEventMap);
39205IS_SERIALIZABLE(AsmCilEventMap);
39206
39207#ifndef DOCUMENTATION
39208AsmCilEventMap.useSmallHeader(true);
39209#endif // !DOCUMENTATION
39210
39211#ifdef DOCUMENTATION
39214#endif // DOCUMENTATION
39215
39216#ifndef DOCUMENTATION
39217 AsmCilEventMap.setDataPrototype(
39218 "uint32_t", "Parent", "= 0",
39219 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39220#endif // !DOCUMENTATION
39221
39222#ifndef DOCUMENTATION
39223 AsmCilEventMap.setDataPrototype(
39224 "uint32_t", "EventList", "= 0",
39225 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39226#endif // !DOCUMENTATION
39227
39228 DECLARE_OTHERS(AsmCilEventMap);
39229#if defined(SgAsmCilEventMap_OTHERS) || defined(DOCUMENTATION)
39230
39231 //----------------------- Boost serialization for SgAsmCilEventMap -----------------------
39232#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39233private:
39234 friend class boost::serialization::access;
39235
39236 template<class S>
39237 void serialize(S &s, const unsigned /*version*/) {
39238 debugSerializationBegin("SgAsmCilEventMap");
39239 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39240 s & BOOST_SERIALIZATION_NVP(p_Parent);
39241 s & BOOST_SERIALIZATION_NVP(p_EventList);
39242 debugSerializationEnd("SgAsmCilEventMap");
39243 }
39244#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39245
39246public:
39252 uint32_t const& get_Parent() const;
39253 void set_Parent(uint32_t const&);
39256public:
39262 uint32_t const& get_EventList() const;
39263 void set_EventList(uint32_t const&);
39265public:
39266 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39267 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39268 void dump(std::ostream&) const;
39269
39270 const SgAsmCilMetadata* get_Parent_object() const;
39271 const SgAsmCilMetadata* get_EventList_object() const;
39272public:
39275
39276public:
39279
39280protected:
39288#endif // SgAsmCilEventMap_OTHERS
39289#ifdef DOCUMENTATION
39290};
39291#endif // DOCUMENTATION
39292
39293
39295// SgAsmCilEvent -- MACHINE GENERATED; DO NOT MODIFY --
39297
39298DECLARE_LEAF_CLASS(AsmCilEvent);
39299IS_SERIALIZABLE(AsmCilEvent);
39300
39301#ifndef DOCUMENTATION
39302AsmCilEvent.useSmallHeader(true);
39303#endif // !DOCUMENTATION
39304
39305#ifdef DOCUMENTATION
39308#endif // DOCUMENTATION
39309
39310#ifndef DOCUMENTATION
39311 AsmCilEvent.setDataPrototype(
39312 "uint16_t", "EventFlags", "= 0",
39313 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39314#endif // !DOCUMENTATION
39315
39316#ifndef DOCUMENTATION
39317 AsmCilEvent.setDataPrototype(
39318 "uint32_t", "Name", "= 0",
39319 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39320#endif // !DOCUMENTATION
39321
39322#ifndef DOCUMENTATION
39323 AsmCilEvent.setDataPrototype(
39324 "uint32_t", "EventType", "= 0",
39325 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39326#endif // !DOCUMENTATION
39327
39328 DECLARE_OTHERS(AsmCilEvent);
39329#if defined(SgAsmCilEvent_OTHERS) || defined(DOCUMENTATION)
39330
39331 //----------------------- Boost serialization for SgAsmCilEvent -----------------------
39332#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39333private:
39334 friend class boost::serialization::access;
39335
39336 template<class S>
39337 void serialize(S &s, const unsigned /*version*/) {
39338 debugSerializationBegin("SgAsmCilEvent");
39339 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39340 s & BOOST_SERIALIZATION_NVP(p_EventFlags);
39341 s & BOOST_SERIALIZATION_NVP(p_Name);
39342 s & BOOST_SERIALIZATION_NVP(p_EventType);
39343 debugSerializationEnd("SgAsmCilEvent");
39344 }
39345#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39346
39347public:
39353 uint16_t const& get_EventFlags() const;
39354 void set_EventFlags(uint16_t const&);
39357public:
39363 uint32_t const& get_Name() const;
39364 void set_Name(uint32_t const&);
39367public:
39373 uint32_t const& get_EventType() const;
39374 void set_EventType(uint32_t const&);
39376public:
39377 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39378 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39379 void dump(std::ostream&) const;
39380
39381 const std::uint8_t* get_Name_string() const;
39382 const SgAsmCilMetadata* get_EventType_object() const;
39383public:
39386
39387public:
39390
39391protected:
39399#endif // SgAsmCilEvent_OTHERS
39400#ifdef DOCUMENTATION
39401};
39402#endif // DOCUMENTATION
39403
39404
39406// SgAsmCilErrorHeap -- MACHINE GENERATED; DO NOT MODIFY --
39408
39409DECLARE_LEAF_CLASS(AsmCilErrorHeap);
39410IS_SERIALIZABLE(AsmCilErrorHeap);
39411
39412#ifndef DOCUMENTATION
39413AsmCilErrorHeap.useSmallHeader(true);
39414#endif // !DOCUMENTATION
39415
39416#ifdef DOCUMENTATION
39419#endif // DOCUMENTATION
39420
39421 DECLARE_OTHERS(AsmCilErrorHeap);
39422#if defined(SgAsmCilErrorHeap_OTHERS) || defined(DOCUMENTATION)
39423
39424 //----------------------- Boost serialization for SgAsmCilErrorHeap -----------------------
39425#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39426private:
39427 friend class boost::serialization::access;
39428
39429 template<class S>
39430 void serialize(S &s, const unsigned /*version*/) {
39431 debugSerializationBegin("SgAsmCilErrorHeap");
39432 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
39433 debugSerializationEnd("SgAsmCilErrorHeap");
39434 }
39435#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39436public:
39437 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
39438 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
39439 void dump(std::ostream& os) const override;
39440public:
39443
39444public:
39447
39448public:
39450 SgAsmCilErrorHeap(uint32_t const& Offset,
39451 uint32_t const& Size,
39452 std::string const& Name,
39453 uint32_t const& NamePadding);
39454
39455protected:
39463#endif // SgAsmCilErrorHeap_OTHERS
39464#ifdef DOCUMENTATION
39465};
39466#endif // DOCUMENTATION
39467
39468
39470// SgAsmCilDeclSecurityTable -- MACHINE GENERATED; DO NOT MODIFY --
39472
39473DECLARE_LEAF_CLASS(AsmCilDeclSecurityTable);
39474IS_SERIALIZABLE(AsmCilDeclSecurityTable);
39475
39476#ifndef DOCUMENTATION
39477AsmCilDeclSecurityTable.useSmallHeader(true);
39478#endif // !DOCUMENTATION
39479
39480#ifdef DOCUMENTATION
39483#endif // DOCUMENTATION
39484
39485#ifndef DOCUMENTATION
39486 AsmCilDeclSecurityTable.setDataPrototype(
39487 "std::vector<SgAsmCilDeclSecurity*>", "elements", "",
39488 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39489#endif // !DOCUMENTATION
39490
39491 DECLARE_OTHERS(AsmCilDeclSecurityTable);
39492#if defined(SgAsmCilDeclSecurityTable_OTHERS) || defined(DOCUMENTATION)
39493
39494 //----------------------- Boost serialization for SgAsmCilDeclSecurityTable -----------------------
39495#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39496private:
39497 friend class boost::serialization::access;
39498
39499 template<class S>
39500 void serialize(S &s, const unsigned /*version*/) {
39501 debugSerializationBegin("SgAsmCilDeclSecurityTable");
39502 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39503 s & BOOST_SERIALIZATION_NVP(p_elements);
39504 debugSerializationEnd("SgAsmCilDeclSecurityTable");
39505 }
39506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39507
39508public:
39509 std::vector<SgAsmCilDeclSecurity*> const& get_elements() const;
39510 std::vector<SgAsmCilDeclSecurity*>& get_elements();
39511public:
39513public:
39516
39517public:
39520
39521protected:
39529#endif // SgAsmCilDeclSecurityTable_OTHERS
39530#ifdef DOCUMENTATION
39531};
39532#endif // DOCUMENTATION
39533
39534
39536// SgAsmCilDeclSecurity -- MACHINE GENERATED; DO NOT MODIFY --
39538
39539DECLARE_LEAF_CLASS(AsmCilDeclSecurity);
39540IS_SERIALIZABLE(AsmCilDeclSecurity);
39541
39542#ifndef DOCUMENTATION
39543AsmCilDeclSecurity.useSmallHeader(true);
39544#endif // !DOCUMENTATION
39545
39546#ifdef DOCUMENTATION
39549#endif // DOCUMENTATION
39550
39551#ifndef DOCUMENTATION
39552 AsmCilDeclSecurity.setDataPrototype(
39553 "uint16_t", "Action", "= 0",
39554 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39555#endif // !DOCUMENTATION
39556
39557#ifndef DOCUMENTATION
39558 AsmCilDeclSecurity.setDataPrototype(
39559 "uint32_t", "Parent", "= 0",
39560 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39561#endif // !DOCUMENTATION
39562
39563#ifndef DOCUMENTATION
39564 AsmCilDeclSecurity.setDataPrototype(
39565 "uint32_t", "PermissionSet", "= 0",
39566 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39567#endif // !DOCUMENTATION
39568
39569 DECLARE_OTHERS(AsmCilDeclSecurity);
39570#if defined(SgAsmCilDeclSecurity_OTHERS) || defined(DOCUMENTATION)
39571
39572 //----------------------- Boost serialization for SgAsmCilDeclSecurity -----------------------
39573#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39574private:
39575 friend class boost::serialization::access;
39576
39577 template<class S>
39578 void serialize(S &s, const unsigned /*version*/) {
39579 debugSerializationBegin("SgAsmCilDeclSecurity");
39580 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39581 s & BOOST_SERIALIZATION_NVP(p_Action);
39582 s & BOOST_SERIALIZATION_NVP(p_Parent);
39583 s & BOOST_SERIALIZATION_NVP(p_PermissionSet);
39584 debugSerializationEnd("SgAsmCilDeclSecurity");
39585 }
39586#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39587
39588public:
39594 uint16_t const& get_Action() const;
39595 void set_Action(uint16_t const&);
39598public:
39604 uint32_t const& get_Parent() const;
39605 void set_Parent(uint32_t const&);
39608public:
39614 uint32_t const& get_PermissionSet() const;
39615 void set_PermissionSet(uint32_t const&);
39617public:
39618 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39619 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39620 void dump(std::ostream&) const;
39621
39622 const SgAsmCilMetadata* get_Parent_object() const;
39623 const std::uint8_t* get_PermissionSet_blob() const;
39624public:
39627
39628public:
39631
39632protected:
39640#endif // SgAsmCilDeclSecurity_OTHERS
39641#ifdef DOCUMENTATION
39642};
39643#endif // DOCUMENTATION
39644
39645
39647// SgAsmCilDataStream -- MACHINE GENERATED; DO NOT MODIFY --
39649
39650#ifndef DOCUMENTATION
39651AstNodeClass& AsmCilDataStream = nonTerminalConstructor(
39652 "AsmCilDataStream",
39653 *this,
39654 "AsmCilDataStream",
39655 "AsmCilDataStreamTag",
39656 SubclassListBuilder()
39657 | AsmCilErrorHeap
39658 | AsmCilMetadataHeap
39659 | AsmCilUint32Heap
39660 | AsmCilUint8Heap
39661 , false);
39662assert(AsmCilDataStream.associatedGrammar != nullptr);
39663AsmCilDataStream.setCppCondition("!defined(DOCUMENTATION)");
39664AsmCilDataStream.isBoostSerializable(true);
39665AsmCilDataStream.setAutomaticGenerationOfConstructor(false);
39666AsmCilDataStream.setAutomaticGenerationOfDestructor(false);
39667#endif // !DOCUMENTATION
39668
39669#ifndef DOCUMENTATION
39670AsmCilDataStream.useSmallHeader(true);
39671#endif // !DOCUMENTATION
39672
39673#ifdef DOCUMENTATION
39676#endif // DOCUMENTATION
39677
39678#ifndef DOCUMENTATION
39679 AsmCilDataStream.setDataPrototype(
39680 "uint32_t", "Offset", "",
39681 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39682#endif // !DOCUMENTATION
39683
39684#ifndef DOCUMENTATION
39685 AsmCilDataStream.setDataPrototype(
39686 "uint32_t", "Size", "",
39687 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39688#endif // !DOCUMENTATION
39689
39690#ifndef DOCUMENTATION
39691 AsmCilDataStream.setDataPrototype(
39692 "std::string", "Name", "",
39693 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39694#endif // !DOCUMENTATION
39695
39696#ifndef DOCUMENTATION
39697 AsmCilDataStream.setDataPrototype(
39698 "uint32_t", "NamePadding", "",
39699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39700#endif // !DOCUMENTATION
39701
39702 DECLARE_OTHERS(AsmCilDataStream);
39703#if defined(SgAsmCilDataStream_OTHERS) || defined(DOCUMENTATION)
39704
39705 //----------------------- Boost serialization for SgAsmCilDataStream -----------------------
39706#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39707private:
39708 friend class boost::serialization::access;
39709
39710 template<class S>
39711 void serialize(S &s, const unsigned /*version*/) {
39712 debugSerializationBegin("SgAsmCilDataStream");
39713 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
39714 s & BOOST_SERIALIZATION_NVP(p_Offset);
39715 s & BOOST_SERIALIZATION_NVP(p_Size);
39716 s & BOOST_SERIALIZATION_NVP(p_Name);
39717 s & BOOST_SERIALIZATION_NVP(p_NamePadding);
39718 debugSerializationEnd("SgAsmCilDataStream");
39719 }
39720#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39721
39722public:
39726 uint32_t const& get_Offset() const;
39727 void set_Offset(uint32_t const&);
39730public:
39734 uint32_t const& get_Size() const;
39735 void set_Size(uint32_t const&);
39738public:
39742 std::string const& get_Name() const;
39743 void set_Name(std::string const&);
39746public:
39750 uint32_t const& get_NamePadding() const;
39751 void set_NamePadding(uint32_t const&);
39753public:
39757 static const std::string ID_STRING_HEAP;
39758 static const std::string ID_BLOB_HEAP;
39759 static const std::string ID_US_HEAP;
39760 static const std::string ID_GUID_HEAP;
39761 static const std::string ID_METADATA_HEAP;
39773 virtual void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData); /* FIXME: should be abstract */
39774
39776 virtual void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const; /* FIXME: should be abstract */
39777
39779 virtual void dump(std::ostream& os) const; /* FIXME: should be abstract */
39780public:
39783
39784protected:
39787
39788protected:
39790 SgAsmCilDataStream(uint32_t const& Offset,
39791 uint32_t const& Size,
39792 std::string const& Name,
39793 uint32_t const& NamePadding);
39794
39795protected:
39803#endif // SgAsmCilDataStream_OTHERS
39804#ifdef DOCUMENTATION
39805};
39806#endif // DOCUMENTATION
39807
39808
39810// SgAsmCilCustomAttributeTable -- MACHINE GENERATED; DO NOT MODIFY --
39812
39813DECLARE_LEAF_CLASS(AsmCilCustomAttributeTable);
39814IS_SERIALIZABLE(AsmCilCustomAttributeTable);
39815
39816#ifndef DOCUMENTATION
39817AsmCilCustomAttributeTable.useSmallHeader(true);
39818#endif // !DOCUMENTATION
39819
39820#ifdef DOCUMENTATION
39823#endif // DOCUMENTATION
39824
39825#ifndef DOCUMENTATION
39826 AsmCilCustomAttributeTable.setDataPrototype(
39827 "std::vector<SgAsmCilCustomAttribute*>", "elements", "",
39828 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39829#endif // !DOCUMENTATION
39830
39831 DECLARE_OTHERS(AsmCilCustomAttributeTable);
39832#if defined(SgAsmCilCustomAttributeTable_OTHERS) || defined(DOCUMENTATION)
39833
39834 //----------------------- Boost serialization for SgAsmCilCustomAttributeTable -----------------------
39835#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39836private:
39837 friend class boost::serialization::access;
39838
39839 template<class S>
39840 void serialize(S &s, const unsigned /*version*/) {
39841 debugSerializationBegin("SgAsmCilCustomAttributeTable");
39842 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39843 s & BOOST_SERIALIZATION_NVP(p_elements);
39844 debugSerializationEnd("SgAsmCilCustomAttributeTable");
39845 }
39846#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39847
39848public:
39849 std::vector<SgAsmCilCustomAttribute*> const& get_elements() const;
39850 std::vector<SgAsmCilCustomAttribute*>& get_elements();
39851public:
39853public:
39856
39857public:
39860
39861protected:
39869#endif // SgAsmCilCustomAttributeTable_OTHERS
39870#ifdef DOCUMENTATION
39871};
39872#endif // DOCUMENTATION
39873
39874
39876// SgAsmCilCustomAttribute -- MACHINE GENERATED; DO NOT MODIFY --
39878
39879DECLARE_LEAF_CLASS(AsmCilCustomAttribute);
39880IS_SERIALIZABLE(AsmCilCustomAttribute);
39881
39882#ifndef DOCUMENTATION
39883AsmCilCustomAttribute.useSmallHeader(true);
39884#endif // !DOCUMENTATION
39885
39886#ifdef DOCUMENTATION
39889#endif // DOCUMENTATION
39890
39891#ifndef DOCUMENTATION
39892 AsmCilCustomAttribute.setDataPrototype(
39893 "uint32_t", "Parent", "= 0",
39894 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39895#endif // !DOCUMENTATION
39896
39897#ifndef DOCUMENTATION
39898 AsmCilCustomAttribute.setDataPrototype(
39899 "uint32_t", "Type", "= 0",
39900 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39901#endif // !DOCUMENTATION
39902
39903#ifndef DOCUMENTATION
39904 AsmCilCustomAttribute.setDataPrototype(
39905 "uint32_t", "Value", "= 0",
39906 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39907#endif // !DOCUMENTATION
39908
39909 DECLARE_OTHERS(AsmCilCustomAttribute);
39910#if defined(SgAsmCilCustomAttribute_OTHERS) || defined(DOCUMENTATION)
39911
39912 //----------------------- Boost serialization for SgAsmCilCustomAttribute -----------------------
39913#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39914private:
39915 friend class boost::serialization::access;
39916
39917 template<class S>
39918 void serialize(S &s, const unsigned /*version*/) {
39919 debugSerializationBegin("SgAsmCilCustomAttribute");
39920 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39921 s & BOOST_SERIALIZATION_NVP(p_Parent);
39922 s & BOOST_SERIALIZATION_NVP(p_Type);
39923 s & BOOST_SERIALIZATION_NVP(p_Value);
39924 debugSerializationEnd("SgAsmCilCustomAttribute");
39925 }
39926#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39927
39928public:
39934 uint32_t const& get_Parent() const;
39935 void set_Parent(uint32_t const&);
39938public:
39944 uint32_t const& get_Type() const;
39945 void set_Type(uint32_t const&);
39948public:
39954 uint32_t const& get_Value() const;
39955 void set_Value(uint32_t const&);
39957public:
39958 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39959 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39960 void dump(std::ostream&) const;
39961
39962 const SgAsmCilMetadata* get_Parent_object() const;
39963 const SgAsmCilMetadata* get_Type_object() const;
39964 const std::uint8_t* get_Value_blob() const;
39965public:
39968
39969public:
39972
39973protected:
39981#endif // SgAsmCilCustomAttribute_OTHERS
39982#ifdef DOCUMENTATION
39983};
39984#endif // DOCUMENTATION
39985
39986
39988// SgAsmCilConstantTable -- MACHINE GENERATED; DO NOT MODIFY --
39990
39991DECLARE_LEAF_CLASS(AsmCilConstantTable);
39992IS_SERIALIZABLE(AsmCilConstantTable);
39993
39994#ifndef DOCUMENTATION
39995AsmCilConstantTable.useSmallHeader(true);
39996#endif // !DOCUMENTATION
39997
39998#ifdef DOCUMENTATION
40001#endif // DOCUMENTATION
40002
40003#ifndef DOCUMENTATION
40004 AsmCilConstantTable.setDataPrototype(
40005 "std::vector<SgAsmCilConstant*>", "elements", "",
40006 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40007#endif // !DOCUMENTATION
40008
40009 DECLARE_OTHERS(AsmCilConstantTable);
40010#if defined(SgAsmCilConstantTable_OTHERS) || defined(DOCUMENTATION)
40011
40012 //----------------------- Boost serialization for SgAsmCilConstantTable -----------------------
40013#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40014private:
40015 friend class boost::serialization::access;
40016
40017 template<class S>
40018 void serialize(S &s, const unsigned /*version*/) {
40019 debugSerializationBegin("SgAsmCilConstantTable");
40020 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40021 s & BOOST_SERIALIZATION_NVP(p_elements);
40022 debugSerializationEnd("SgAsmCilConstantTable");
40023 }
40024#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40025
40026public:
40027 std::vector<SgAsmCilConstant*> const& get_elements() const;
40028 std::vector<SgAsmCilConstant*>& get_elements();
40029public:
40031public:
40034
40035public:
40038
40039protected:
40047#endif // SgAsmCilConstantTable_OTHERS
40048#ifdef DOCUMENTATION
40049};
40050#endif // DOCUMENTATION
40051
40052
40054// SgAsmCilConstant -- MACHINE GENERATED; DO NOT MODIFY --
40056
40057DECLARE_LEAF_CLASS(AsmCilConstant);
40058IS_SERIALIZABLE(AsmCilConstant);
40059
40060#ifndef DOCUMENTATION
40061AsmCilConstant.useSmallHeader(true);
40062#endif // !DOCUMENTATION
40063
40064#ifdef DOCUMENTATION
40067#endif // DOCUMENTATION
40068
40069#ifndef DOCUMENTATION
40070 AsmCilConstant.setDataPrototype(
40071 "uint8_t", "Type", "= 0",
40072 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40073#endif // !DOCUMENTATION
40074
40075#ifndef DOCUMENTATION
40076 AsmCilConstant.setDataPrototype(
40077 "uint8_t", "Padding", "= 0",
40078 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40079#endif // !DOCUMENTATION
40080
40081#ifndef DOCUMENTATION
40082 AsmCilConstant.setDataPrototype(
40083 "uint32_t", "Parent", "= 0",
40084 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40085#endif // !DOCUMENTATION
40086
40087#ifndef DOCUMENTATION
40088 AsmCilConstant.setDataPrototype(
40089 "uint32_t", "Value", "= 0",
40090 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40091#endif // !DOCUMENTATION
40092
40093 DECLARE_OTHERS(AsmCilConstant);
40094#if defined(SgAsmCilConstant_OTHERS) || defined(DOCUMENTATION)
40095
40096 //----------------------- Boost serialization for SgAsmCilConstant -----------------------
40097#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40098private:
40099 friend class boost::serialization::access;
40100
40101 template<class S>
40102 void serialize(S &s, const unsigned /*version*/) {
40103 debugSerializationBegin("SgAsmCilConstant");
40104 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40105 s & BOOST_SERIALIZATION_NVP(p_Type);
40106 s & BOOST_SERIALIZATION_NVP(p_Padding);
40107 s & BOOST_SERIALIZATION_NVP(p_Parent);
40108 s & BOOST_SERIALIZATION_NVP(p_Value);
40109 debugSerializationEnd("SgAsmCilConstant");
40110 }
40111#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40112
40113public:
40119 uint8_t const& get_Type() const;
40120 void set_Type(uint8_t const&);
40123public:
40129 uint8_t const& get_Padding() const;
40130 void set_Padding(uint8_t const&);
40133public:
40139 uint32_t const& get_Parent() const;
40140 void set_Parent(uint32_t const&);
40143public:
40149 uint32_t const& get_Value() const;
40150 void set_Value(uint32_t const&);
40152public:
40153 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40154 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40155 void dump(std::ostream&) const;
40156
40157 const SgAsmCilMetadata* get_Parent_object() const;
40158 const std::uint8_t* get_Value_blob() const;
40159public:
40162
40163public:
40166
40167protected:
40175#endif // SgAsmCilConstant_OTHERS
40176#ifdef DOCUMENTATION
40177};
40178#endif // DOCUMENTATION
40179
40180
40182// SgAsmCilClassLayoutTable -- MACHINE GENERATED; DO NOT MODIFY --
40184
40185DECLARE_LEAF_CLASS(AsmCilClassLayoutTable);
40186IS_SERIALIZABLE(AsmCilClassLayoutTable);
40187
40188#ifndef DOCUMENTATION
40189AsmCilClassLayoutTable.useSmallHeader(true);
40190#endif // !DOCUMENTATION
40191
40192#ifdef DOCUMENTATION
40195#endif // DOCUMENTATION
40196
40197#ifndef DOCUMENTATION
40198 AsmCilClassLayoutTable.setDataPrototype(
40199 "std::vector<SgAsmCilClassLayout*>", "elements", "",
40200 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40201#endif // !DOCUMENTATION
40202
40203 DECLARE_OTHERS(AsmCilClassLayoutTable);
40204#if defined(SgAsmCilClassLayoutTable_OTHERS) || defined(DOCUMENTATION)
40205
40206 //----------------------- Boost serialization for SgAsmCilClassLayoutTable -----------------------
40207#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40208private:
40209 friend class boost::serialization::access;
40210
40211 template<class S>
40212 void serialize(S &s, const unsigned /*version*/) {
40213 debugSerializationBegin("SgAsmCilClassLayoutTable");
40214 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40215 s & BOOST_SERIALIZATION_NVP(p_elements);
40216 debugSerializationEnd("SgAsmCilClassLayoutTable");
40217 }
40218#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40219
40220public:
40221 std::vector<SgAsmCilClassLayout*> const& get_elements() const;
40222 std::vector<SgAsmCilClassLayout*>& get_elements();
40223public:
40225public:
40228
40229public:
40232
40233protected:
40241#endif // SgAsmCilClassLayoutTable_OTHERS
40242#ifdef DOCUMENTATION
40243};
40244#endif // DOCUMENTATION
40245
40246
40248// SgAsmCilClassLayout -- MACHINE GENERATED; DO NOT MODIFY --
40250
40251DECLARE_LEAF_CLASS(AsmCilClassLayout);
40252IS_SERIALIZABLE(AsmCilClassLayout);
40253
40254#ifndef DOCUMENTATION
40255AsmCilClassLayout.useSmallHeader(true);
40256#endif // !DOCUMENTATION
40257
40258#ifdef DOCUMENTATION
40261#endif // DOCUMENTATION
40262
40263#ifndef DOCUMENTATION
40264 AsmCilClassLayout.setDataPrototype(
40265 "uint16_t", "PackingSize", "= 0",
40266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40267#endif // !DOCUMENTATION
40268
40269#ifndef DOCUMENTATION
40270 AsmCilClassLayout.setDataPrototype(
40271 "uint32_t", "ClassSize", "= 0",
40272 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40273#endif // !DOCUMENTATION
40274
40275#ifndef DOCUMENTATION
40276 AsmCilClassLayout.setDataPrototype(
40277 "uint32_t", "Parent", "= 0",
40278 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40279#endif // !DOCUMENTATION
40280
40281 DECLARE_OTHERS(AsmCilClassLayout);
40282#if defined(SgAsmCilClassLayout_OTHERS) || defined(DOCUMENTATION)
40283
40284 //----------------------- Boost serialization for SgAsmCilClassLayout -----------------------
40285#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40286private:
40287 friend class boost::serialization::access;
40288
40289 template<class S>
40290 void serialize(S &s, const unsigned /*version*/) {
40291 debugSerializationBegin("SgAsmCilClassLayout");
40292 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40293 s & BOOST_SERIALIZATION_NVP(p_PackingSize);
40294 s & BOOST_SERIALIZATION_NVP(p_ClassSize);
40295 s & BOOST_SERIALIZATION_NVP(p_Parent);
40296 debugSerializationEnd("SgAsmCilClassLayout");
40297 }
40298#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40299
40300public:
40306 uint16_t const& get_PackingSize() const;
40307 void set_PackingSize(uint16_t const&);
40310public:
40316 uint32_t const& get_ClassSize() const;
40317 void set_ClassSize(uint32_t const&);
40320public:
40326 uint32_t const& get_Parent() const;
40327 void set_Parent(uint32_t const&);
40329public:
40330 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40331 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40332 void dump(std::ostream&) const;
40333
40334 const SgAsmCilMetadata* get_Parent_object() const;
40335public:
40338
40339public:
40342
40343protected:
40351#endif // SgAsmCilClassLayout_OTHERS
40352#ifdef DOCUMENTATION
40353};
40354#endif // DOCUMENTATION
40355
40356
40358// SgAsmCilAssemblyTable -- MACHINE GENERATED; DO NOT MODIFY --
40360
40361DECLARE_LEAF_CLASS(AsmCilAssemblyTable);
40362IS_SERIALIZABLE(AsmCilAssemblyTable);
40363
40364#ifndef DOCUMENTATION
40365AsmCilAssemblyTable.useSmallHeader(true);
40366#endif // !DOCUMENTATION
40367
40368#ifdef DOCUMENTATION
40371#endif // DOCUMENTATION
40372
40373#ifndef DOCUMENTATION
40374 AsmCilAssemblyTable.setDataPrototype(
40375 "std::vector<SgAsmCilAssembly*>", "elements", "",
40376 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40377#endif // !DOCUMENTATION
40378
40379 DECLARE_OTHERS(AsmCilAssemblyTable);
40380#if defined(SgAsmCilAssemblyTable_OTHERS) || defined(DOCUMENTATION)
40381
40382 //----------------------- Boost serialization for SgAsmCilAssemblyTable -----------------------
40383#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40384private:
40385 friend class boost::serialization::access;
40386
40387 template<class S>
40388 void serialize(S &s, const unsigned /*version*/) {
40389 debugSerializationBegin("SgAsmCilAssemblyTable");
40390 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40391 s & BOOST_SERIALIZATION_NVP(p_elements);
40392 debugSerializationEnd("SgAsmCilAssemblyTable");
40393 }
40394#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40395
40396public:
40397 std::vector<SgAsmCilAssembly*> const& get_elements() const;
40398 std::vector<SgAsmCilAssembly*>& get_elements();
40399public:
40401public:
40404
40405public:
40408
40409protected:
40417#endif // SgAsmCilAssemblyTable_OTHERS
40418#ifdef DOCUMENTATION
40419};
40420#endif // DOCUMENTATION
40421
40422
40424// SgAsmCilAssemblyRefTable -- MACHINE GENERATED; DO NOT MODIFY --
40426
40427DECLARE_LEAF_CLASS(AsmCilAssemblyRefTable);
40428IS_SERIALIZABLE(AsmCilAssemblyRefTable);
40429
40430#ifndef DOCUMENTATION
40431AsmCilAssemblyRefTable.useSmallHeader(true);
40432#endif // !DOCUMENTATION
40433
40434#ifdef DOCUMENTATION
40437#endif // DOCUMENTATION
40438
40439#ifndef DOCUMENTATION
40440 AsmCilAssemblyRefTable.setDataPrototype(
40441 "std::vector<SgAsmCilAssemblyRef*>", "elements", "",
40442 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40443#endif // !DOCUMENTATION
40444
40445 DECLARE_OTHERS(AsmCilAssemblyRefTable);
40446#if defined(SgAsmCilAssemblyRefTable_OTHERS) || defined(DOCUMENTATION)
40447
40448 //----------------------- Boost serialization for SgAsmCilAssemblyRefTable -----------------------
40449#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40450private:
40451 friend class boost::serialization::access;
40452
40453 template<class S>
40454 void serialize(S &s, const unsigned /*version*/) {
40455 debugSerializationBegin("SgAsmCilAssemblyRefTable");
40456 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40457 s & BOOST_SERIALIZATION_NVP(p_elements);
40458 debugSerializationEnd("SgAsmCilAssemblyRefTable");
40459 }
40460#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40461
40462public:
40463 std::vector<SgAsmCilAssemblyRef*> const& get_elements() const;
40464 std::vector<SgAsmCilAssemblyRef*>& get_elements();
40465public:
40467public:
40470
40471public:
40474
40475protected:
40483#endif // SgAsmCilAssemblyRefTable_OTHERS
40484#ifdef DOCUMENTATION
40485};
40486#endif // DOCUMENTATION
40487
40488
40490// SgAsmCilAssemblyRefProcessorTable -- MACHINE GENERATED; DO NOT MODIFY --
40492
40493DECLARE_LEAF_CLASS(AsmCilAssemblyRefProcessorTable);
40494IS_SERIALIZABLE(AsmCilAssemblyRefProcessorTable);
40495
40496#ifndef DOCUMENTATION
40497AsmCilAssemblyRefProcessorTable.useSmallHeader(true);
40498#endif // !DOCUMENTATION
40499
40500#ifdef DOCUMENTATION
40503#endif // DOCUMENTATION
40504
40505#ifndef DOCUMENTATION
40506 AsmCilAssemblyRefProcessorTable.setDataPrototype(
40507 "std::vector<SgAsmCilAssemblyRefProcessor*>", "elements", "",
40508 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40509#endif // !DOCUMENTATION
40510
40511 DECLARE_OTHERS(AsmCilAssemblyRefProcessorTable);
40512#if defined(SgAsmCilAssemblyRefProcessorTable_OTHERS) || defined(DOCUMENTATION)
40513
40514 //----------------------- Boost serialization for SgAsmCilAssemblyRefProcessorTable -----------------------
40515#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40516private:
40517 friend class boost::serialization::access;
40518
40519 template<class S>
40520 void serialize(S &s, const unsigned /*version*/) {
40521 debugSerializationBegin("SgAsmCilAssemblyRefProcessorTable");
40522 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40523 s & BOOST_SERIALIZATION_NVP(p_elements);
40524 debugSerializationEnd("SgAsmCilAssemblyRefProcessorTable");
40525 }
40526#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40527
40528public:
40529 std::vector<SgAsmCilAssemblyRefProcessor*> const& get_elements() const;
40530 std::vector<SgAsmCilAssemblyRefProcessor*>& get_elements();
40531public:
40533public:
40536
40537public:
40540
40541protected:
40549#endif // SgAsmCilAssemblyRefProcessorTable_OTHERS
40550#ifdef DOCUMENTATION
40551};
40552#endif // DOCUMENTATION
40553
40554
40556// SgAsmCilAssemblyRefProcessor -- MACHINE GENERATED; DO NOT MODIFY --
40558
40559DECLARE_LEAF_CLASS(AsmCilAssemblyRefProcessor);
40560IS_SERIALIZABLE(AsmCilAssemblyRefProcessor);
40561
40562#ifndef DOCUMENTATION
40563AsmCilAssemblyRefProcessor.useSmallHeader(true);
40564#endif // !DOCUMENTATION
40565
40566#ifdef DOCUMENTATION
40569#endif // DOCUMENTATION
40570
40571#ifndef DOCUMENTATION
40572 AsmCilAssemblyRefProcessor.setDataPrototype(
40573 "uint32_t", "Processor", "= 0",
40574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40575#endif // !DOCUMENTATION
40576
40577#ifndef DOCUMENTATION
40578 AsmCilAssemblyRefProcessor.setDataPrototype(
40579 "uint32_t", "AssemblyRef", "= 0",
40580 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40581#endif // !DOCUMENTATION
40582
40583 DECLARE_OTHERS(AsmCilAssemblyRefProcessor);
40584#if defined(SgAsmCilAssemblyRefProcessor_OTHERS) || defined(DOCUMENTATION)
40585
40586 //----------------------- Boost serialization for SgAsmCilAssemblyRefProcessor -----------------------
40587#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40588private:
40589 friend class boost::serialization::access;
40590
40591 template<class S>
40592 void serialize(S &s, const unsigned /*version*/) {
40593 debugSerializationBegin("SgAsmCilAssemblyRefProcessor");
40594 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40595 s & BOOST_SERIALIZATION_NVP(p_Processor);
40596 s & BOOST_SERIALIZATION_NVP(p_AssemblyRef);
40597 debugSerializationEnd("SgAsmCilAssemblyRefProcessor");
40598 }
40599#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40600
40601public:
40607 uint32_t const& get_Processor() const;
40608 void set_Processor(uint32_t const&);
40611public:
40617 uint32_t const& get_AssemblyRef() const;
40618 void set_AssemblyRef(uint32_t const&);
40620public:
40621 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40622 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40623 void dump(std::ostream&) const;
40624
40625 const SgAsmCilMetadata* get_AssemblyRef_object() const;
40626public:
40629
40630public:
40633
40634protected:
40642#endif // SgAsmCilAssemblyRefProcessor_OTHERS
40643#ifdef DOCUMENTATION
40644};
40645#endif // DOCUMENTATION
40646
40647
40649// SgAsmCilAssemblyRefOSTable -- MACHINE GENERATED; DO NOT MODIFY --
40651
40652DECLARE_LEAF_CLASS(AsmCilAssemblyRefOSTable);
40653IS_SERIALIZABLE(AsmCilAssemblyRefOSTable);
40654
40655#ifndef DOCUMENTATION
40656AsmCilAssemblyRefOSTable.useSmallHeader(true);
40657#endif // !DOCUMENTATION
40658
40659#ifdef DOCUMENTATION
40662#endif // DOCUMENTATION
40663
40664#ifndef DOCUMENTATION
40665 AsmCilAssemblyRefOSTable.setDataPrototype(
40666 "std::vector<SgAsmCilAssemblyRefOS*>", "elements", "",
40667 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40668#endif // !DOCUMENTATION
40669
40670 DECLARE_OTHERS(AsmCilAssemblyRefOSTable);
40671#if defined(SgAsmCilAssemblyRefOSTable_OTHERS) || defined(DOCUMENTATION)
40672
40673 //----------------------- Boost serialization for SgAsmCilAssemblyRefOSTable -----------------------
40674#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40675private:
40676 friend class boost::serialization::access;
40677
40678 template<class S>
40679 void serialize(S &s, const unsigned /*version*/) {
40680 debugSerializationBegin("SgAsmCilAssemblyRefOSTable");
40681 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40682 s & BOOST_SERIALIZATION_NVP(p_elements);
40683 debugSerializationEnd("SgAsmCilAssemblyRefOSTable");
40684 }
40685#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40686
40687public:
40688 std::vector<SgAsmCilAssemblyRefOS*> const& get_elements() const;
40689 std::vector<SgAsmCilAssemblyRefOS*>& get_elements();
40690public:
40692public:
40695
40696public:
40699
40700protected:
40708#endif // SgAsmCilAssemblyRefOSTable_OTHERS
40709#ifdef DOCUMENTATION
40710};
40711#endif // DOCUMENTATION
40712
40713
40715// SgAsmCilAssemblyRefOS -- MACHINE GENERATED; DO NOT MODIFY --
40717
40718DECLARE_LEAF_CLASS(AsmCilAssemblyRefOS);
40719IS_SERIALIZABLE(AsmCilAssemblyRefOS);
40720
40721#ifndef DOCUMENTATION
40722AsmCilAssemblyRefOS.useSmallHeader(true);
40723#endif // !DOCUMENTATION
40724
40725#ifdef DOCUMENTATION
40728#endif // DOCUMENTATION
40729
40730#ifndef DOCUMENTATION
40731 AsmCilAssemblyRefOS.setDataPrototype(
40732 "uint32_t", "OSPlatformID", "= 0",
40733 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40734#endif // !DOCUMENTATION
40735
40736#ifndef DOCUMENTATION
40737 AsmCilAssemblyRefOS.setDataPrototype(
40738 "uint32_t", "OSMajorVersion", "= 0",
40739 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40740#endif // !DOCUMENTATION
40741
40742#ifndef DOCUMENTATION
40743 AsmCilAssemblyRefOS.setDataPrototype(
40744 "uint32_t", "OSMinorVersion", "= 0",
40745 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40746#endif // !DOCUMENTATION
40747
40748#ifndef DOCUMENTATION
40749 AsmCilAssemblyRefOS.setDataPrototype(
40750 "uint32_t", "AssemblyRefOS", "= 0",
40751 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40752#endif // !DOCUMENTATION
40753
40754 DECLARE_OTHERS(AsmCilAssemblyRefOS);
40755#if defined(SgAsmCilAssemblyRefOS_OTHERS) || defined(DOCUMENTATION)
40756
40757 //----------------------- Boost serialization for SgAsmCilAssemblyRefOS -----------------------
40758#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40759private:
40760 friend class boost::serialization::access;
40761
40762 template<class S>
40763 void serialize(S &s, const unsigned /*version*/) {
40764 debugSerializationBegin("SgAsmCilAssemblyRefOS");
40765 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40766 s & BOOST_SERIALIZATION_NVP(p_OSPlatformID);
40767 s & BOOST_SERIALIZATION_NVP(p_OSMajorVersion);
40768 s & BOOST_SERIALIZATION_NVP(p_OSMinorVersion);
40769 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefOS);
40770 debugSerializationEnd("SgAsmCilAssemblyRefOS");
40771 }
40772#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40773
40774public:
40780 uint32_t const& get_OSPlatformID() const;
40781 void set_OSPlatformID(uint32_t const&);
40784public:
40790 uint32_t const& get_OSMajorVersion() const;
40791 void set_OSMajorVersion(uint32_t const&);
40794public:
40800 uint32_t const& get_OSMinorVersion() const;
40801 void set_OSMinorVersion(uint32_t const&);
40804public:
40810 uint32_t const& get_AssemblyRefOS() const;
40811 void set_AssemblyRefOS(uint32_t const&);
40813public:
40814 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40815 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40816 void dump(std::ostream&) const;
40817
40818 const SgAsmCilMetadata* get_AssemblyRefOS_object() const;
40819public:
40822
40823public:
40826
40827protected:
40835#endif // SgAsmCilAssemblyRefOS_OTHERS
40836#ifdef DOCUMENTATION
40837};
40838#endif // DOCUMENTATION
40839
40840
40842// SgAsmCilAssemblyRef -- MACHINE GENERATED; DO NOT MODIFY --
40844
40845DECLARE_LEAF_CLASS(AsmCilAssemblyRef);
40846IS_SERIALIZABLE(AsmCilAssemblyRef);
40847
40848#ifndef DOCUMENTATION
40849AsmCilAssemblyRef.useSmallHeader(true);
40850#endif // !DOCUMENTATION
40851
40852#ifdef DOCUMENTATION
40855#endif // DOCUMENTATION
40856
40857#ifndef DOCUMENTATION
40858 AsmCilAssemblyRef.setDataPrototype(
40859 "uint16_t", "MajorVersion", "= 0",
40860 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40861#endif // !DOCUMENTATION
40862
40863#ifndef DOCUMENTATION
40864 AsmCilAssemblyRef.setDataPrototype(
40865 "uint16_t", "MinorVersion", "= 0",
40866 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40867#endif // !DOCUMENTATION
40868
40869#ifndef DOCUMENTATION
40870 AsmCilAssemblyRef.setDataPrototype(
40871 "uint16_t", "BuildNumber", "= 0",
40872 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40873#endif // !DOCUMENTATION
40874
40875#ifndef DOCUMENTATION
40876 AsmCilAssemblyRef.setDataPrototype(
40877 "uint16_t", "RevisionNumber", "= 0",
40878 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40879#endif // !DOCUMENTATION
40880
40881#ifndef DOCUMENTATION
40882 AsmCilAssemblyRef.setDataPrototype(
40883 "uint32_t", "Flags", "= 0",
40884 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40885#endif // !DOCUMENTATION
40886
40887#ifndef DOCUMENTATION
40888 AsmCilAssemblyRef.setDataPrototype(
40889 "uint32_t", "PublicKeyOrToken", "= 0",
40890 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40891#endif // !DOCUMENTATION
40892
40893#ifndef DOCUMENTATION
40894 AsmCilAssemblyRef.setDataPrototype(
40895 "uint32_t", "Name", "= 0",
40896 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40897#endif // !DOCUMENTATION
40898
40899#ifndef DOCUMENTATION
40900 AsmCilAssemblyRef.setDataPrototype(
40901 "uint32_t", "Culture", "= 0",
40902 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40903#endif // !DOCUMENTATION
40904
40905#ifndef DOCUMENTATION
40906 AsmCilAssemblyRef.setDataPrototype(
40907 "uint32_t", "HashValue", "= 0",
40908 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40909#endif // !DOCUMENTATION
40910
40911 DECLARE_OTHERS(AsmCilAssemblyRef);
40912#if defined(SgAsmCilAssemblyRef_OTHERS) || defined(DOCUMENTATION)
40913
40914 //----------------------- Boost serialization for SgAsmCilAssemblyRef -----------------------
40915#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40916private:
40917 friend class boost::serialization::access;
40918
40919 template<class S>
40920 void serialize(S &s, const unsigned /*version*/) {
40921 debugSerializationBegin("SgAsmCilAssemblyRef");
40922 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40923 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
40924 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
40925 s & BOOST_SERIALIZATION_NVP(p_BuildNumber);
40926 s & BOOST_SERIALIZATION_NVP(p_RevisionNumber);
40927 s & BOOST_SERIALIZATION_NVP(p_Flags);
40928 s & BOOST_SERIALIZATION_NVP(p_PublicKeyOrToken);
40929 s & BOOST_SERIALIZATION_NVP(p_Name);
40930 s & BOOST_SERIALIZATION_NVP(p_Culture);
40931 s & BOOST_SERIALIZATION_NVP(p_HashValue);
40932 debugSerializationEnd("SgAsmCilAssemblyRef");
40933 }
40934#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40935
40936public:
40942 uint16_t const& get_MajorVersion() const;
40943 void set_MajorVersion(uint16_t const&);
40946public:
40952 uint16_t const& get_MinorVersion() const;
40953 void set_MinorVersion(uint16_t const&);
40956public:
40962 uint16_t const& get_BuildNumber() const;
40963 void set_BuildNumber(uint16_t const&);
40966public:
40972 uint16_t const& get_RevisionNumber() const;
40973 void set_RevisionNumber(uint16_t const&);
40976public:
40982 uint32_t const& get_Flags() const;
40983 void set_Flags(uint32_t const&);
40986public:
40992 uint32_t const& get_PublicKeyOrToken() const;
40993 void set_PublicKeyOrToken(uint32_t const&);
40996public:
41002 uint32_t const& get_Name() const;
41003 void set_Name(uint32_t const&);
41006public:
41012 uint32_t const& get_Culture() const;
41013 void set_Culture(uint32_t const&);
41016public:
41022 uint32_t const& get_HashValue() const;
41023 void set_HashValue(uint32_t const&);
41025public:
41026 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
41027 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
41028 void dump(std::ostream&) const;
41029
41030 const std::uint8_t* get_PublicKeyOrToken_blob() const;
41031 const std::uint8_t* get_Name_string() const;
41032 const std::uint8_t* get_Culture_string() const;
41033 const std::uint8_t* get_HashValue_blob() const;
41034public:
41037
41038public:
41041
41042protected:
41050#endif // SgAsmCilAssemblyRef_OTHERS
41051#ifdef DOCUMENTATION
41052};
41053#endif // DOCUMENTATION
41054
41055
41057// SgAsmCilAssemblyProcessorTable -- MACHINE GENERATED; DO NOT MODIFY --
41059
41060DECLARE_LEAF_CLASS(AsmCilAssemblyProcessorTable);
41061IS_SERIALIZABLE(AsmCilAssemblyProcessorTable);
41062
41063#ifndef DOCUMENTATION
41064AsmCilAssemblyProcessorTable.useSmallHeader(true);
41065#endif // !DOCUMENTATION
41066
41067#ifdef DOCUMENTATION
41070#endif // DOCUMENTATION
41071
41072#ifndef DOCUMENTATION
41073 AsmCilAssemblyProcessorTable.setDataPrototype(
41074 "std::vector<SgAsmCilAssemblyProcessor*>", "elements", "",
41075 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
41076#endif // !DOCUMENTATION
41077
41078 DECLARE_OTHERS(AsmCilAssemblyProcessorTable);
41079#if defined(SgAsmCilAssemblyProcessorTable_OTHERS) || defined(DOCUMENTATION)
41080
41081 //----------------------- Boost serialization for SgAsmCilAssemblyProcessorTable -----------------------
41082#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41083private:
41084 friend class boost::serialization::access;
41085
41086 template<class S>
41087 void serialize(S &s, const unsigned /*version*/) {
41088 debugSerializationBegin("SgAsmCilAssemblyProcessorTable");
41089 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
41090 s & BOOST_SERIALIZATION_NVP(p_elements);
41091 debugSerializationEnd("SgAsmCilAssemblyProcessorTable");
41092 }
41093#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41094
41095public:
41096 std::vector<SgAsmCilAssemblyProcessor*> const& get_elements() const;
41097 std::vector<SgAsmCilAssemblyProcessor*>& get_elements();
41098public:
41100public:
41103
41104public:
41107
41108protected:
41116#endif // SgAsmCilAssemblyProcessorTable_OTHERS
41117#ifdef DOCUMENTATION
41118};
41119#endif // DOCUMENTATION
41120
41121
41123// SgAsmCilAssemblyProcessor -- MACHINE GENERATED; DO NOT MODIFY --
41125
41126DECLARE_LEAF_CLASS(AsmCilAssemblyProcessor);
41127IS_SERIALIZABLE(AsmCilAssemblyProcessor);
41128
41129#ifndef DOCUMENTATION
41130AsmCilAssemblyProcessor.useSmallHeader(true);
41131#endif // !DOCUMENTATION
41132
41133#ifdef DOCUMENTATION
41136#endif // DOCUMENTATION
41137
41138#ifndef DOCUMENTATION
41139 AsmCilAssemblyProcessor.setDataPrototype(
41140 "uint32_t", "Processor", "= 0",
41141 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41142#endif // !DOCUMENTATION
41143
41144 DECLARE_OTHERS(AsmCilAssemblyProcessor);
41145#if defined(SgAsmCilAssemblyProcessor_OTHERS) || defined(DOCUMENTATION)
41146
41147 //----------------------- Boost serialization for SgAsmCilAssemblyProcessor -----------------------
41148#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41149private:
41150 friend class boost::serialization::access;
41151
41152 template<class S>
41153 void serialize(S &s, const unsigned /*version*/) {
41154 debugSerializationBegin("SgAsmCilAssemblyProcessor");
41155 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
41156 s & BOOST_SERIALIZATION_NVP(p_Processor);
41157 debugSerializationEnd("SgAsmCilAssemblyProcessor");
41158 }
41159#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41160
41161public:
41167 uint32_t const& get_Processor() const;
41168 void set_Processor(uint32_t const&);
41170public:
41171 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
41172 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
41173 void dump(std::ostream&) const;
41174public:
41177
41178public:
41181
41182protected:
41190#endif // SgAsmCilAssemblyProcessor_OTHERS
41191#ifdef DOCUMENTATION
41192};
41193#endif // DOCUMENTATION
41194
41195
41197// SgAsmCilAssemblyOSTable -- MACHINE GENERATED; DO NOT MODIFY --
41199
41200DECLARE_LEAF_CLASS(AsmCilAssemblyOSTable);
41201IS_SERIALIZABLE(AsmCilAssemblyOSTable);
41202
41203#ifndef DOCUMENTATION
41204AsmCilAssemblyOSTable.useSmallHeader(true);
41205#endif // !DOCUMENTATION
41206
41207#ifdef DOCUMENTATION
41210#endif // DOCUMENTATION
41211
41212#ifndef DOCUMENTATION
41213 AsmCilAssemblyOSTable.setDataPrototype(
41214 "std::vector<SgAsmCilAssemblyOS*>", "elements", "",
41215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
41216#endif // !DOCUMENTATION
41217
41218 DECLARE_OTHERS(AsmCilAssemblyOSTable);
41219#if defined(SgAsmCilAssemblyOSTable_OTHERS) || defined(DOCUMENTATION)
41220
41221 //----------------------- Boost serialization for SgAsmCilAssemblyOSTable -----------------------
41222#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41223private:
41224 friend class boost::serialization::access;
41225
41226 template<class S>
41227 void serialize(S &s, const unsigned /*version*/) {
41228 debugSerializationBegin("SgAsmCilAssemblyOSTable");
41229 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
41230 s & BOOST_SERIALIZATION_NVP(p_elements);
41231 debugSerializationEnd("SgAsmCilAssemblyOSTable");
41232 }
41233#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41234
41235public:
41236 std::vector<SgAsmCilAssemblyOS*> const& get_elements() const;
41237 std::vector<SgAsmCilAssemblyOS*>& get_elements();
41238public:
41240public:
41243
41244public:
41247
41248protected:
41256#endif // SgAsmCilAssemblyOSTable_OTHERS
41257#ifdef DOCUMENTATION
41258};
41259#endif // DOCUMENTATION
41260
41261
41263// SgAsmCilAssemblyOS -- MACHINE GENERATED; DO NOT MODIFY --
41265
41266DECLARE_LEAF_CLASS(AsmCilAssemblyOS);
41267IS_SERIALIZABLE(AsmCilAssemblyOS);
41268
41269#ifndef DOCUMENTATION
41270AsmCilAssemblyOS.useSmallHeader(true);
41271#endif // !DOCUMENTATION
41272
41273#ifdef DOCUMENTATION
41276#endif // DOCUMENTATION
41277
41278#ifndef DOCUMENTATION
41279 AsmCilAssemblyOS.setDataPrototype(
41280 "uint32_t", "OSPlatformID", "= 0",
41281 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41282#endif // !DOCUMENTATION
41283
41284#ifndef DOCUMENTATION
41285 AsmCilAssemblyOS.setDataPrototype(
41286 "uint32_t", "OSMajorVersion", "= 0",
41287 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41288#endif // !DOCUMENTATION
41289
41290#ifndef DOCUMENTATION
41291 AsmCilAssemblyOS.setDataPrototype(
41292 "uint32_t", "OSMinorVersion", "= 0",
41293 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41294#endif // !DOCUMENTATION
41295
41296 DECLARE_OTHERS(AsmCilAssemblyOS);
41297#if defined(SgAsmCilAssemblyOS_OTHERS) || defined(DOCUMENTATION)
41298
41299 //----------------------- Boost serialization for SgAsmCilAssemblyOS -----------------------
41300#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41301private:
41302 friend class boost::serialization::access;
41303
41304 template<class S>
41305 void serialize(S &s, const unsigned /*version*/) {
41306 debugSerializationBegin("SgAsmCilAssemblyOS");
41307 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
41308 s & BOOST_SERIALIZATION_NVP(p_OSPlatformID);
41309 s & BOOST_SERIALIZATION_NVP(p_OSMajorVersion);
41310 s & BOOST_SERIALIZATION_NVP(p_OSMinorVersion);
41311 debugSerializationEnd("SgAsmCilAssemblyOS");
41312 }
41313#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41314
41315public:
41321 uint32_t const& get_OSPlatformID() const;
41322 void set_OSPlatformID(uint32_t const&);
41325public:
41331 uint32_t const& get_OSMajorVersion() const;
41332 void set_OSMajorVersion(uint32_t const&);
41335public:
41341 uint32_t const& get_OSMinorVersion() const;
41342 void set_OSMinorVersion(uint32_t const&);
41344public:
41345 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
41346 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
41347 void dump(std::ostream&) const;
41348public:
41351
41352public:
41355
41356protected:
41364#endif // SgAsmCilAssemblyOS_OTHERS
41365#ifdef DOCUMENTATION
41366};
41367#endif // DOCUMENTATION
41368
41369
41371// SgAsmCilAssembly -- MACHINE GENERATED; DO NOT MODIFY --
41373
41374DECLARE_LEAF_CLASS(AsmCilAssembly);
41375IS_SERIALIZABLE(AsmCilAssembly);
41376
41377#ifndef DOCUMENTATION
41378AsmCilAssembly.useSmallHeader(true);
41379#endif // !DOCUMENTATION
41380
41381#ifdef DOCUMENTATION
41384#endif // DOCUMENTATION
41385
41386#ifndef DOCUMENTATION
41387 AsmCilAssembly.setDataPrototype(
41388 "uint32_t", "HashAlgId", "= 0",
41389 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41390#endif // !DOCUMENTATION
41391
41392#ifndef DOCUMENTATION
41393 AsmCilAssembly.setDataPrototype(
41394 "uint16_t", "MajorVersion", "= 0",
41395 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41396#endif // !DOCUMENTATION
41397
41398#ifndef DOCUMENTATION
41399 AsmCilAssembly.setDataPrototype(
41400 "uint16_t", "MinorVersion", "= 0",
41401 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41402#endif // !DOCUMENTATION
41403
41404#ifndef DOCUMENTATION
41405 AsmCilAssembly.setDataPrototype(
41406 "uint16_t", "BuildNumber", "= 0",
41407 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41408#endif // !DOCUMENTATION
41409
41410#ifndef DOCUMENTATION
41411 AsmCilAssembly.setDataPrototype(
41412 "uint16_t", "RevisionNumber", "= 0",
41413 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41414#endif // !DOCUMENTATION
41415
41416#ifndef DOCUMENTATION
41417 AsmCilAssembly.setDataPrototype(
41418 "uint32_t", "Flags", "= 0",
41419 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41420#endif // !DOCUMENTATION
41421
41422#ifndef DOCUMENTATION
41423 AsmCilAssembly.setDataPrototype(
41424 "uint32_t", "PublicKey", "= 0",
41425 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41426#endif // !DOCUMENTATION
41427
41428#ifndef DOCUMENTATION
41429 AsmCilAssembly.setDataPrototype(
41430 "uint32_t", "Name", "= 0",
41431 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41432#endif // !DOCUMENTATION
41433
41434#ifndef DOCUMENTATION
41435 AsmCilAssembly.setDataPrototype(
41436 "uint32_t", "Culture", "= 0",
41437 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41438#endif // !DOCUMENTATION
41439
41440 DECLARE_OTHERS(AsmCilAssembly);
41441#if defined(SgAsmCilAssembly_OTHERS) || defined(DOCUMENTATION)
41442
41443 //----------------------- Boost serialization for SgAsmCilAssembly -----------------------
41444#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41445private:
41446 friend class boost::serialization::access;
41447
41448 template<class S>
41449 void serialize(S &s, const unsigned /*version*/) {
41450 debugSerializationBegin("SgAsmCilAssembly");
41451 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
41452 s & BOOST_SERIALIZATION_NVP(p_HashAlgId);
41453 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
41454 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
41455 s & BOOST_SERIALIZATION_NVP(p_BuildNumber);
41456 s & BOOST_SERIALIZATION_NVP(p_RevisionNumber);
41457 s & BOOST_SERIALIZATION_NVP(p_Flags);
41458 s & BOOST_SERIALIZATION_NVP(p_PublicKey);
41459 s & BOOST_SERIALIZATION_NVP(p_Name);
41460 s & BOOST_SERIALIZATION_NVP(p_Culture);
41461 debugSerializationEnd("SgAsmCilAssembly");
41462 }
41463#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41464
41465public:
41471 uint32_t const& get_HashAlgId() const;
41472 void set_HashAlgId(uint32_t const&);
41475public:
41481 uint16_t const& get_MajorVersion() const;
41482 void set_MajorVersion(uint16_t const&);
41485public:
41491 uint16_t const& get_MinorVersion() const;
41492 void set_MinorVersion(uint16_t const&);
41495public:
41501 uint16_t const& get_BuildNumber() const;
41502 void set_BuildNumber(uint16_t const&);
41505public:
41511 uint16_t const& get_RevisionNumber() const;
41512 void set_RevisionNumber(uint16_t const&);
41515public:
41521 uint32_t const& get_Flags() const;
41522 void set_Flags(uint32_t const&);
41525public:
41531 uint32_t const& get_PublicKey() const;
41532 void set_PublicKey(uint32_t const&);
41535public:
41541 uint32_t const& get_Name() const;
41542 void set_Name(uint32_t const&);
41545public:
41551 uint32_t const& get_Culture() const;
41552 void set_Culture(uint32_t const&);
41554public:
41555 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
41556 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
41557 void dump(std::ostream&) const;
41558
41559 const std::uint8_t* get_PublicKey_blob() const;
41560 const std::uint8_t* get_Name_string() const;
41561 const std::uint8_t* get_Culture_string() const;
41562public:
41565
41566public:
41569
41570protected:
41578#endif // SgAsmCilAssembly_OTHERS
41579#ifdef DOCUMENTATION
41580};
41581#endif // DOCUMENTATION
41582
41583
41585// SgAsmCilMetadata -- MACHINE GENERATED; DO NOT MODIFY --
41587
41588#ifndef DOCUMENTATION
41589AstNodeClass& AsmCilMetadata = nonTerminalConstructor(
41590 "AsmCilMetadata",
41591 *this,
41592 "AsmCilMetadata",
41593 "AsmCilMetadataTag",
41594 SubclassListBuilder()
41595 | AsmCilAssembly
41596 | AsmCilAssemblyOS
41597 | AsmCilAssemblyOSTable
41598 | AsmCilAssemblyProcessor
41599 | AsmCilAssemblyProcessorTable
41600 | AsmCilAssemblyRef
41601 | AsmCilAssemblyRefOS
41602 | AsmCilAssemblyRefOSTable
41603 | AsmCilAssemblyRefProcessor
41604 | AsmCilAssemblyRefProcessorTable
41605 | AsmCilAssemblyRefTable
41606 | AsmCilAssemblyTable
41607 | AsmCilClassLayout
41608 | AsmCilClassLayoutTable
41609 | AsmCilConstant
41610 | AsmCilConstantTable
41611 | AsmCilCustomAttribute
41612 | AsmCilCustomAttributeTable
41613 | AsmCilDeclSecurity
41614 | AsmCilDeclSecurityTable
41615 | AsmCilEvent
41616 | AsmCilEventMap
41617 | AsmCilEventMapTable
41618 | AsmCilEventTable
41619 | AsmCilExportedType
41620 | AsmCilExportedTypeTable
41621 | AsmCilField
41622 | AsmCilFieldLayout
41623 | AsmCilFieldLayoutTable
41624 | AsmCilFieldMarshal
41625 | AsmCilFieldMarshalTable
41626 | AsmCilFieldRVA
41627 | AsmCilFieldRVATable
41628 | AsmCilFieldTable
41629 | AsmCilFile
41630 | AsmCilFileTable
41631 | AsmCilGenericParam
41632 | AsmCilGenericParamConstraint
41633 | AsmCilGenericParamConstraintTable
41634 | AsmCilGenericParamTable
41635 | AsmCilImplMap
41636 | AsmCilImplMapTable
41637 | AsmCilInterfaceImpl
41638 | AsmCilInterfaceImplTable
41639 | AsmCilManifestResource
41640 | AsmCilManifestResourceTable
41641 | AsmCilMemberRef
41642 | AsmCilMemberRefTable
41643 | AsmCilMethodDef
41644 | AsmCilMethodDefTable
41645 | AsmCilMethodImpl
41646 | AsmCilMethodImplTable
41647 | AsmCilMethodSemantics
41648 | AsmCilMethodSemanticsTable
41649 | AsmCilMethodSpec
41650 | AsmCilMethodSpecTable
41651 | AsmCilModule
41652 | AsmCilModuleRef
41653 | AsmCilModuleRefTable
41654 | AsmCilModuleTable
41655 | AsmCilNestedClass
41656 | AsmCilNestedClassTable
41657 | AsmCilParam
41658 | AsmCilParamTable
41659 | AsmCilProperty
41660 | AsmCilPropertyMap
41661 | AsmCilPropertyMapTable
41662 | AsmCilPropertyTable
41663 | AsmCilStandAloneSig
41664 | AsmCilStandAloneSigTable
41665 | AsmCilTypeDef
41666 | AsmCilTypeDefTable
41667 | AsmCilTypeRef
41668 | AsmCilTypeRefTable
41669 | AsmCilTypeSpec
41670 | AsmCilTypeSpecTable
41671 , false);
41672assert(AsmCilMetadata.associatedGrammar != nullptr);
41673AsmCilMetadata.setCppCondition("!defined(DOCUMENTATION)");
41674AsmCilMetadata.isBoostSerializable(true);
41675AsmCilMetadata.setAutomaticGenerationOfConstructor(false);
41676AsmCilMetadata.setAutomaticGenerationOfDestructor(false);
41677#endif // !DOCUMENTATION
41678
41679#ifndef DOCUMENTATION
41680AsmCilMetadata.useSmallHeader(true);
41681#endif // !DOCUMENTATION
41682
41683#ifdef DOCUMENTATION
41686#endif // DOCUMENTATION
41687
41688 DECLARE_OTHERS(AsmCilMetadata);
41689#if defined(SgAsmCilMetadata_OTHERS) || defined(DOCUMENTATION)
41690
41691 //----------------------- Boost serialization for SgAsmCilMetadata -----------------------
41692#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41693private:
41694 friend class boost::serialization::access;
41695
41696 template<class S>
41697 void serialize(S &s, const unsigned /*version*/) {
41698 debugSerializationBegin("SgAsmCilMetadata");
41699 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
41700 debugSerializationEnd("SgAsmCilMetadata");
41701 }
41702#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41703
41704public:
41707
41708protected:
41711
41712protected:
41720#endif // SgAsmCilMetadata_OTHERS
41721#ifdef DOCUMENTATION
41722};
41723#endif // DOCUMENTATION
41724
41725
41727// SgAsmCilNode -- MACHINE GENERATED; DO NOT MODIFY --
41729
41730#ifndef DOCUMENTATION
41731AstNodeClass& AsmCilNode = nonTerminalConstructor(
41732 "AsmCilNode",
41733 *this,
41734 "AsmCilNode",
41735 "AsmCilNodeTag",
41736 SubclassListBuilder()
41737 | AsmCilDataStream
41738 | AsmCilExceptionData
41739 | AsmCilMetadata
41740 | AsmCilMetadataRoot
41741 | AsmCilMethodData
41742 , false);
41743assert(AsmCilNode.associatedGrammar != nullptr);
41744AsmCilNode.setCppCondition("!defined(DOCUMENTATION)");
41745AsmCilNode.isBoostSerializable(true);
41746AsmCilNode.setAutomaticGenerationOfConstructor(false);
41747AsmCilNode.setAutomaticGenerationOfDestructor(false);
41748#endif // !DOCUMENTATION
41749
41750#ifndef DOCUMENTATION
41751AsmCilNode.useSmallHeader(true);
41752#endif // !DOCUMENTATION
41753
41754#ifdef DOCUMENTATION
41757#endif // DOCUMENTATION
41758
41759 DECLARE_OTHERS(AsmCilNode);
41760#if defined(SgAsmCilNode_OTHERS) || defined(DOCUMENTATION)
41761
41762 //----------------------- Boost serialization for SgAsmCilNode -----------------------
41763#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41764private:
41765 friend class boost::serialization::access;
41766
41767 template<class S>
41768 void serialize(S &s, const unsigned /*version*/) {
41769 debugSerializationBegin("SgAsmCilNode");
41770 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
41771 debugSerializationEnd("SgAsmCilNode");
41772 }
41773#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41774
41775public:
41777 virtual ~SgAsmCilNode();
41778
41779protected:
41782
41783protected:
41791#endif // SgAsmCilNode_OTHERS
41792#ifdef DOCUMENTATION
41793};
41794#endif // DOCUMENTATION
41795
41796
41798// SgAsmByteOrder -- MACHINE GENERATED; DO NOT MODIFY --
41800
41801DECLARE_LEAF_CLASS(AsmByteOrder);
41802IS_SERIALIZABLE(AsmByteOrder);
41803
41804#ifndef DOCUMENTATION
41805AsmByteOrder.useSmallHeader(true);
41806#endif // !DOCUMENTATION
41807
41808DECLARE_HEADERS(AsmByteOrder);
41809#if defined(SgAsmByteOrder_HEADERS) || defined(DOCUMENTATION)
41810#include <Rose/BinaryAnalysis/ByteOrder.h>
41811#endif // SgAsmByteOrder_HEADERS
41812
41813#ifdef DOCUMENTATION
41816#endif // DOCUMENTATION
41817
41818 DECLARE_OTHERS(AsmByteOrder);
41819#if defined(SgAsmByteOrder_OTHERS) || defined(DOCUMENTATION)
41820
41821 //----------------------- Boost serialization for SgAsmByteOrder -----------------------
41822#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41823private:
41824 friend class boost::serialization::access;
41825
41826 template<class S>
41827 void serialize(S &s, const unsigned /*version*/) {
41828 debugSerializationBegin("SgAsmByteOrder");
41829 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
41830 s & BOOST_SERIALIZATION_NVP(byteOrder_);
41831 debugSerializationEnd("SgAsmByteOrder");
41832 }
41833#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41834public:
41835private:
41837
41838public:
41846public:
41849
41850public:
41853
41854public:
41857
41858protected:
41866#endif // SgAsmByteOrder_OTHERS
41867#ifdef DOCUMENTATION
41868};
41869#endif // DOCUMENTATION
41870
41871
41873// SgAsmBlock -- MACHINE GENERATED; DO NOT MODIFY --
41875
41876DECLARE_LEAF_CLASS(AsmBlock);
41877IS_SERIALIZABLE(AsmBlock);
41878
41879#ifndef DOCUMENTATION
41880AsmBlock.useSmallHeader(true);
41881#endif // !DOCUMENTATION
41882
41883DECLARE_HEADERS(AsmBlock);
41884#if defined(SgAsmBlock_HEADERS) || defined(DOCUMENTATION)
41885#include <Rose/BinaryAnalysis/Address.h>
41886
41887#include <sageContainer.h>
41888
41889#ifdef ROSE_SgAsmBlock_IMPL
41890#include <SgAsmInstruction.h> // for SgAsmInstruction::INVALID_STACK_DELTA
41891#endif
41892#endif // SgAsmBlock_HEADERS
41893
41894#ifdef DOCUMENTATION
41916#endif // DOCUMENTATION
41917
41918#ifndef DOCUMENTATION
41919 AsmBlock.setDataPrototype(
41920 "Rose::BinaryAnalysis::Address", "id", "= 0",
41921 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41922#endif // !DOCUMENTATION
41923
41924#ifndef DOCUMENTATION
41925 AsmBlock.setDataPrototype(
41926 "unsigned", "reason", "= SgAsmBlock::BLK_NONE",
41927 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41928#endif // !DOCUMENTATION
41929
41930#ifndef DOCUMENTATION
41931 AsmBlock.setDataPrototype(
41932 "SgAsmStatementPtrList", "statementList", "",
41933 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
41934#endif // !DOCUMENTATION
41935
41936#ifndef DOCUMENTATION
41937 AsmBlock.setDataPrototype(
41938 "SgAsmIntegerValuePtrList", "successors", "",
41939 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41940#endif // !DOCUMENTATION
41941
41942#ifndef DOCUMENTATION
41943 AsmBlock.setDataPrototype(
41944 "bool", "successorsComplete", "= false",
41945 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41946#endif // !DOCUMENTATION
41947
41948#ifndef DOCUMENTATION
41949 AsmBlock.setDataPrototype(
41950 "SgAsmBlock*", "immediateDominator", "= nullptr",
41951 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41952#endif // !DOCUMENTATION
41953
41954#ifndef DOCUMENTATION
41955 AsmBlock.setDataPrototype(
41956 "size_t", "cachedVertex", "= (size_t)(-1)",
41957 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41958#endif // !DOCUMENTATION
41959
41960#ifndef DOCUMENTATION
41961 AsmBlock.setDataPrototype(
41962 "double", "codeLikelihood", "= 0.0",
41963 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41964#endif // !DOCUMENTATION
41965
41966#ifndef DOCUMENTATION
41967 AsmBlock.setDataPrototype(
41968 "int64_t", "stackDeltaOut", "= SgAsmInstruction::INVALID_STACK_DELTA",
41969 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41970#endif // !DOCUMENTATION
41971
41972 DECLARE_OTHERS(AsmBlock);
41973#if defined(SgAsmBlock_OTHERS) || defined(DOCUMENTATION)
41974
41975 //----------------------- Boost serialization for SgAsmBlock -----------------------
41976#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41977private:
41978 friend class boost::serialization::access;
41979
41980 template<class S>
41981 void serialize(S &s, const unsigned /*version*/) {
41982 debugSerializationBegin("SgAsmBlock");
41983 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
41984 s & BOOST_SERIALIZATION_NVP(p_reason);
41985 s & BOOST_SERIALIZATION_NVP(p_statementList);
41986 s & BOOST_SERIALIZATION_NVP(p_successors);
41987 s & BOOST_SERIALIZATION_NVP(p_successorsComplete);
41988 s & BOOST_SERIALIZATION_NVP(p_immediateDominator);
41989 s & BOOST_SERIALIZATION_NVP(p_cachedVertex);
41990 s & BOOST_SERIALIZATION_NVP(p_codeLikelihood);
41991 s & BOOST_SERIALIZATION_NVP(p_stackDeltaOut);
41992 debugSerializationEnd("SgAsmBlock");
41993 }
41994#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41996 // Local types
41998public:
42000 enum Reason {
42001 // Please update SgAsmBlock::reasonString() if you change this enum!
42002 BLK_NONE = 0x00000000,
42003 BLK_ENTRY_POINT = 0x00010000,
42004 BLK_PADDING = 0x00020000,
42005 BLK_FRAGMENT = 0x00080000,
42007 BLK_CFGHEAD = 0x00100000,
42008 BLK_USERDEF = 0x00200000,
42009 BLK_LEFTOVERS = 0x00400000,
42011 BLK_JUMPTABLE = 0x00800000,
42012 BLK_GRAPH1 = 0x01000000,
42013 BLK_GRAPH2 = 0x02000000,
42014 BLK_GRAPH3 = 0x04000000,
42016 BLK_DEFAULT = BLK_NONE, //NO_STRINGIFY
42017
42018 // ========= Miscellaneous Reasons ===========================================================================
42019 // The first half of the range (1-127, inclusive) is used for algorithms defined by ROSE. The second half is
42020 // availalble for users to use as they see fit.
42021 BLK_MISCMASK = 0x000000ff,
42023 BLK_FINDDATA = 0x00000001,
42025 BLK_POSTFUNC = 0x00000002
42028
42030 // Properties
42032public:
42033
42034 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
42035public:
42045public:
42051 unsigned const& get_reason() const;
42052 void set_reason(unsigned const&);
42054 // statementList and successors should have been pointers to nodes that contain the list rather than being the lists
42055 // themselves because ROSETTA doesn't allow traversals on multiple list data members--we can traverse either one list or
42056 // the other, but not both. It's too late to change how this part of the AST is structured because so much user code
42057 // already depends on it, therefore we can only traverse statementList and not successors. [Robb Matzke 2016-02-25]
42058public:
42065 SgAsmStatementPtrList const& get_statementList() const;
42066 SgAsmStatementPtrList& get_statementList();
42067 void set_statementList(SgAsmStatementPtrList const&);
42069 // statementList and successors should have been pointers to nodes that contain the list rather than being the lists
42070 // themselves because ROSETTA doesn't allow traversals on multiple list data members--we can traverse either one list or
42071 // the other, but not both. It's too late to change how this part of the AST is structured because so much user code
42072 // already depends on it, therefore we can only traverse statementList and not successors. [Robb Matzke 2016-02-25]
42073public:
42081 SgAsmIntegerValuePtrList const& get_successors() const;
42082 SgAsmIntegerValuePtrList& get_successors();
42083 void set_successors(SgAsmIntegerValuePtrList const&);
42086public:
42097 bool const& get_successorsComplete() const;
42098 void set_successorsComplete(bool const&);
42101public:
42115public:
42124 size_t const& get_cachedVertex() const;
42125 void set_cachedVertex(size_t const&);
42127 // see BinaryAnalysis::ControlFlow
42128public:
42135 double const& get_codeLikelihood() const;
42136 void set_codeLikelihood(double const&);
42139public:
42148 int64_t const& get_stackDeltaOut() const;
42149 void set_stackDeltaOut(int64_t const&);
42152 // Functions
42154public:
42159
42164
42165 // FIXME[Robb P Matzke 2017-02-13]: wrong name -- erases only statements, not all children
42171
42177
42182
42188 bool hasInstructions() const;
42189
42195 bool isBasicBlock() const;
42196
42207
42211 static std::string reasonKey(const std::string &prefix = "");
42212
42216 std::string reasonString(bool pad) const;
42217
42223 static std::string reasonString(bool pad, unsigned reason);
42224
42226 // Deprecated
42228
42229 // [Robb Matzke 2023-11-06]: deprecated 2023-11
42230 bool get_successors_complete() const ROSE_DEPRECATED("use get_successorsComplete");
42231 void set_successors_complete(bool) ROSE_DEPRECATED("use get_successorsComplete");
42232 SgAsmBlock* get_immediate_dominator() const ROSE_DEPRECATED("use get_immediateDominator");
42233 void set_immediate_dominator(SgAsmBlock*) ROSE_DEPRECATED("use set_immediateDominator");
42234 size_t get_cached_vertex() const ROSE_DEPRECATED("use get_cachedVertex");
42235 void set_cached_vertex(size_t) ROSE_DEPRECATED("use set_cachedVertex");
42236 double get_code_likelihood() const ROSE_DEPRECATED("use get_codeLikelihood");
42237 void set_code_likelihood(double) ROSE_DEPRECATED("use set_codeLikelihood");
42238 void append_statement(SgAsmStatement*) ROSE_DEPRECATED("use appendStatement");
42239 void remove_statement(SgAsmStatement*) ROSE_DEPRECATED("use removeStatement");
42240 void remove_children() ROSE_DEPRECATED("use removeChildren");
42241 Rose::BinaryAnalysis::Address get_fallthrough_va() ROSE_DEPRECATED("use getFallthroughVa");
42242 SgAsmFunction* get_enclosing_function() const ROSE_DEPRECATED("use get_enclosingFunction");
42243 bool has_instructions() const ROSE_DEPRECATED("use hasInstructions");
42244 bool is_basic_block() const ROSE_DEPRECATED("use isBasicBlock");
42245 bool is_function_call(Rose::BinaryAnalysis::Address&, Rose::BinaryAnalysis::Address&) ROSE_DEPRECATED("use isFunctionCall");
42246 static std::string reason_key(const std::string& = "") ROSE_DEPRECATED("use reasonKey");
42247 std::string reason_str(bool) const ROSE_DEPRECATED("use reasonString");
42248 static std::string reason_str(bool, unsigned) ROSE_DEPRECATED("use reasonString");
42249public:
42251 virtual ~SgAsmBlock();
42252
42253public:
42256
42257public:
42259 explicit SgAsmBlock(Rose::BinaryAnalysis::Address const& address);
42260
42261protected:
42269#endif // SgAsmBlock_OTHERS
42270#ifdef DOCUMENTATION
42271};
42272#endif // DOCUMENTATION
42273
42274
42276// SgAsmBinarySubtract -- MACHINE GENERATED; DO NOT MODIFY --
42278
42279DECLARE_LEAF_CLASS(AsmBinarySubtract);
42280IS_SERIALIZABLE(AsmBinarySubtract);
42281
42282#ifndef DOCUMENTATION
42283AsmBinarySubtract.useSmallHeader(true);
42284#endif // !DOCUMENTATION
42285
42286#ifdef DOCUMENTATION
42289#endif // DOCUMENTATION
42290
42291 DECLARE_OTHERS(AsmBinarySubtract);
42292#if defined(SgAsmBinarySubtract_OTHERS) || defined(DOCUMENTATION)
42293
42294 //----------------------- Boost serialization for SgAsmBinarySubtract -----------------------
42295#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42296private:
42297 friend class boost::serialization::access;
42298
42299 template<class S>
42300 void serialize(S &s, const unsigned /*version*/) {
42301 debugSerializationBegin("SgAsmBinarySubtract");
42302 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42303 debugSerializationEnd("SgAsmBinarySubtract");
42304 }
42305#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42306
42307public:
42310
42311public:
42314
42315public:
42318 SgAsmExpression* const& rhs);
42319
42320protected:
42328#endif // SgAsmBinarySubtract_OTHERS
42329#ifdef DOCUMENTATION
42330};
42331#endif // DOCUMENTATION
42332
42333
42335// SgAsmBinaryRor -- MACHINE GENERATED; DO NOT MODIFY --
42337
42338DECLARE_LEAF_CLASS(AsmBinaryRor);
42339IS_SERIALIZABLE(AsmBinaryRor);
42340
42341#ifndef DOCUMENTATION
42342AsmBinaryRor.useSmallHeader(true);
42343#endif // !DOCUMENTATION
42344
42345#ifdef DOCUMENTATION
42348#endif // DOCUMENTATION
42349
42350 DECLARE_OTHERS(AsmBinaryRor);
42351#if defined(SgAsmBinaryRor_OTHERS) || defined(DOCUMENTATION)
42352
42353 //----------------------- Boost serialization for SgAsmBinaryRor -----------------------
42354#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42355private:
42356 friend class boost::serialization::access;
42357
42358 template<class S>
42359 void serialize(S &s, const unsigned /*version*/) {
42360 debugSerializationBegin("SgAsmBinaryRor");
42361 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42362 debugSerializationEnd("SgAsmBinaryRor");
42363 }
42364#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42365
42366public:
42369
42370public:
42373
42374public:
42377 SgAsmExpression* const& rhs);
42378
42379protected:
42387#endif // SgAsmBinaryRor_OTHERS
42388#ifdef DOCUMENTATION
42389};
42390#endif // DOCUMENTATION
42391
42392
42394// SgAsmBinaryPreupdate -- MACHINE GENERATED; DO NOT MODIFY --
42396
42397DECLARE_LEAF_CLASS(AsmBinaryPreupdate);
42398IS_SERIALIZABLE(AsmBinaryPreupdate);
42399
42400#ifndef DOCUMENTATION
42401AsmBinaryPreupdate.useSmallHeader(true);
42402#endif // !DOCUMENTATION
42403
42404#ifdef DOCUMENTATION
42410#endif // DOCUMENTATION
42411
42412 DECLARE_OTHERS(AsmBinaryPreupdate);
42413#if defined(SgAsmBinaryPreupdate_OTHERS) || defined(DOCUMENTATION)
42414
42415 //----------------------- Boost serialization for SgAsmBinaryPreupdate -----------------------
42416#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42417private:
42418 friend class boost::serialization::access;
42419
42420 template<class S>
42421 void serialize(S &s, const unsigned /*version*/) {
42422 debugSerializationBegin("SgAsmBinaryPreupdate");
42423 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42424 debugSerializationEnd("SgAsmBinaryPreupdate");
42425 }
42426#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42427
42428public:
42431
42432public:
42435
42436public:
42439 SgAsmExpression* const& rhs);
42440
42441protected:
42449#endif // SgAsmBinaryPreupdate_OTHERS
42450#ifdef DOCUMENTATION
42451};
42452#endif // DOCUMENTATION
42453
42454
42456// SgAsmBinaryPostupdate -- MACHINE GENERATED; DO NOT MODIFY --
42458
42459DECLARE_LEAF_CLASS(AsmBinaryPostupdate);
42460IS_SERIALIZABLE(AsmBinaryPostupdate);
42461
42462#ifndef DOCUMENTATION
42463AsmBinaryPostupdate.useSmallHeader(true);
42464#endif // !DOCUMENTATION
42465
42466#ifdef DOCUMENTATION
42472#endif // DOCUMENTATION
42473
42474 DECLARE_OTHERS(AsmBinaryPostupdate);
42475#if defined(SgAsmBinaryPostupdate_OTHERS) || defined(DOCUMENTATION)
42476
42477 //----------------------- Boost serialization for SgAsmBinaryPostupdate -----------------------
42478#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42479private:
42480 friend class boost::serialization::access;
42481
42482 template<class S>
42483 void serialize(S &s, const unsigned /*version*/) {
42484 debugSerializationBegin("SgAsmBinaryPostupdate");
42485 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42486 debugSerializationEnd("SgAsmBinaryPostupdate");
42487 }
42488#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42489
42490public:
42493
42494public:
42497
42498public:
42501 SgAsmExpression* const& rhs);
42502
42503protected:
42511#endif // SgAsmBinaryPostupdate_OTHERS
42512#ifdef DOCUMENTATION
42513};
42514#endif // DOCUMENTATION
42515
42516
42518// SgAsmBinaryMultiply -- MACHINE GENERATED; DO NOT MODIFY --
42520
42521DECLARE_LEAF_CLASS(AsmBinaryMultiply);
42522IS_SERIALIZABLE(AsmBinaryMultiply);
42523
42524#ifndef DOCUMENTATION
42525AsmBinaryMultiply.useSmallHeader(true);
42526#endif // !DOCUMENTATION
42527
42528#ifdef DOCUMENTATION
42531#endif // DOCUMENTATION
42532
42533 DECLARE_OTHERS(AsmBinaryMultiply);
42534#if defined(SgAsmBinaryMultiply_OTHERS) || defined(DOCUMENTATION)
42535
42536 //----------------------- Boost serialization for SgAsmBinaryMultiply -----------------------
42537#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42538private:
42539 friend class boost::serialization::access;
42540
42541 template<class S>
42542 void serialize(S &s, const unsigned /*version*/) {
42543 debugSerializationBegin("SgAsmBinaryMultiply");
42544 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42545 debugSerializationEnd("SgAsmBinaryMultiply");
42546 }
42547#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42548
42549public:
42552
42553public:
42556
42557public:
42560 SgAsmExpression* const& rhs);
42561
42562protected:
42570#endif // SgAsmBinaryMultiply_OTHERS
42571#ifdef DOCUMENTATION
42572};
42573#endif // DOCUMENTATION
42574
42575
42577// SgAsmBinaryMsl -- MACHINE GENERATED; DO NOT MODIFY --
42579
42580DECLARE_LEAF_CLASS(AsmBinaryMsl);
42581IS_SERIALIZABLE(AsmBinaryMsl);
42582
42583#ifndef DOCUMENTATION
42584AsmBinaryMsl.useSmallHeader(true);
42585#endif // !DOCUMENTATION
42586
42587#ifdef DOCUMENTATION
42592#endif // DOCUMENTATION
42593
42594 DECLARE_OTHERS(AsmBinaryMsl);
42595#if defined(SgAsmBinaryMsl_OTHERS) || defined(DOCUMENTATION)
42596
42597 //----------------------- Boost serialization for SgAsmBinaryMsl -----------------------
42598#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42599private:
42600 friend class boost::serialization::access;
42601
42602 template<class S>
42603 void serialize(S &s, const unsigned /*version*/) {
42604 debugSerializationBegin("SgAsmBinaryMsl");
42605 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42606 debugSerializationEnd("SgAsmBinaryMsl");
42607 }
42608#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42609
42610public:
42613
42614public:
42617
42618public:
42621 SgAsmExpression* const& rhs);
42622
42623protected:
42631#endif // SgAsmBinaryMsl_OTHERS
42632#ifdef DOCUMENTATION
42633};
42634#endif // DOCUMENTATION
42635
42636
42638// SgAsmBinaryMod -- MACHINE GENERATED; DO NOT MODIFY --
42640
42641DECLARE_LEAF_CLASS(AsmBinaryMod);
42642IS_SERIALIZABLE(AsmBinaryMod);
42643
42644#ifndef DOCUMENTATION
42645AsmBinaryMod.useSmallHeader(true);
42646#endif // !DOCUMENTATION
42647
42648#ifdef DOCUMENTATION
42651#endif // DOCUMENTATION
42652
42653 DECLARE_OTHERS(AsmBinaryMod);
42654#if defined(SgAsmBinaryMod_OTHERS) || defined(DOCUMENTATION)
42655
42656 //----------------------- Boost serialization for SgAsmBinaryMod -----------------------
42657#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42658private:
42659 friend class boost::serialization::access;
42660
42661 template<class S>
42662 void serialize(S &s, const unsigned /*version*/) {
42663 debugSerializationBegin("SgAsmBinaryMod");
42664 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42665 debugSerializationEnd("SgAsmBinaryMod");
42666 }
42667#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42668
42669public:
42672
42673public:
42676
42677public:
42680 SgAsmExpression* const& rhs);
42681
42682protected:
42690#endif // SgAsmBinaryMod_OTHERS
42691#ifdef DOCUMENTATION
42692};
42693#endif // DOCUMENTATION
42694
42695
42697// SgAsmBinaryLsr -- MACHINE GENERATED; DO NOT MODIFY --
42699
42700DECLARE_LEAF_CLASS(AsmBinaryLsr);
42701IS_SERIALIZABLE(AsmBinaryLsr);
42702
42703#ifndef DOCUMENTATION
42704AsmBinaryLsr.useSmallHeader(true);
42705#endif // !DOCUMENTATION
42706
42707#ifdef DOCUMENTATION
42710#endif // DOCUMENTATION
42711
42712 DECLARE_OTHERS(AsmBinaryLsr);
42713#if defined(SgAsmBinaryLsr_OTHERS) || defined(DOCUMENTATION)
42714
42715 //----------------------- Boost serialization for SgAsmBinaryLsr -----------------------
42716#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42717private:
42718 friend class boost::serialization::access;
42719
42720 template<class S>
42721 void serialize(S &s, const unsigned /*version*/) {
42722 debugSerializationBegin("SgAsmBinaryLsr");
42723 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42724 debugSerializationEnd("SgAsmBinaryLsr");
42725 }
42726#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42727
42728public:
42731
42732public:
42735
42736public:
42739 SgAsmExpression* const& rhs);
42740
42741protected:
42749#endif // SgAsmBinaryLsr_OTHERS
42750#ifdef DOCUMENTATION
42751};
42752#endif // DOCUMENTATION
42753
42754
42756// SgAsmBinaryLsl -- MACHINE GENERATED; DO NOT MODIFY --
42758
42759DECLARE_LEAF_CLASS(AsmBinaryLsl);
42760IS_SERIALIZABLE(AsmBinaryLsl);
42761
42762#ifndef DOCUMENTATION
42763AsmBinaryLsl.useSmallHeader(true);
42764#endif // !DOCUMENTATION
42765
42766#ifdef DOCUMENTATION
42769#endif // DOCUMENTATION
42770
42771 DECLARE_OTHERS(AsmBinaryLsl);
42772#if defined(SgAsmBinaryLsl_OTHERS) || defined(DOCUMENTATION)
42773
42774 //----------------------- Boost serialization for SgAsmBinaryLsl -----------------------
42775#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42776private:
42777 friend class boost::serialization::access;
42778
42779 template<class S>
42780 void serialize(S &s, const unsigned /*version*/) {
42781 debugSerializationBegin("SgAsmBinaryLsl");
42782 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42783 debugSerializationEnd("SgAsmBinaryLsl");
42784 }
42785#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42786
42787public:
42790
42791public:
42794
42795public:
42798 SgAsmExpression* const& rhs);
42799
42800protected:
42808#endif // SgAsmBinaryLsl_OTHERS
42809#ifdef DOCUMENTATION
42810};
42811#endif // DOCUMENTATION
42812
42813
42815// SgAsmBinaryDivide -- MACHINE GENERATED; DO NOT MODIFY --
42817
42818DECLARE_LEAF_CLASS(AsmBinaryDivide);
42819IS_SERIALIZABLE(AsmBinaryDivide);
42820
42821#ifndef DOCUMENTATION
42822AsmBinaryDivide.useSmallHeader(true);
42823#endif // !DOCUMENTATION
42824
42825#ifdef DOCUMENTATION
42828#endif // DOCUMENTATION
42829
42830 DECLARE_OTHERS(AsmBinaryDivide);
42831#if defined(SgAsmBinaryDivide_OTHERS) || defined(DOCUMENTATION)
42832
42833 //----------------------- Boost serialization for SgAsmBinaryDivide -----------------------
42834#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42835private:
42836 friend class boost::serialization::access;
42837
42838 template<class S>
42839 void serialize(S &s, const unsigned /*version*/) {
42840 debugSerializationBegin("SgAsmBinaryDivide");
42841 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42842 debugSerializationEnd("SgAsmBinaryDivide");
42843 }
42844#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42845
42846public:
42849
42850public:
42853
42854public:
42857 SgAsmExpression* const& rhs);
42858
42859protected:
42867#endif // SgAsmBinaryDivide_OTHERS
42868#ifdef DOCUMENTATION
42869};
42870#endif // DOCUMENTATION
42871
42872
42874// SgAsmBinaryConcat -- MACHINE GENERATED; DO NOT MODIFY --
42876
42877DECLARE_LEAF_CLASS(AsmBinaryConcat);
42878IS_SERIALIZABLE(AsmBinaryConcat);
42879
42880#ifndef DOCUMENTATION
42881AsmBinaryConcat.useSmallHeader(true);
42882#endif // !DOCUMENTATION
42883
42884#ifdef DOCUMENTATION
42887#endif // DOCUMENTATION
42888
42889 DECLARE_OTHERS(AsmBinaryConcat);
42890#if defined(SgAsmBinaryConcat_OTHERS) || defined(DOCUMENTATION)
42891
42892 //----------------------- Boost serialization for SgAsmBinaryConcat -----------------------
42893#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42894private:
42895 friend class boost::serialization::access;
42896
42897 template<class S>
42898 void serialize(S &s, const unsigned /*version*/) {
42899 debugSerializationBegin("SgAsmBinaryConcat");
42900 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42901 debugSerializationEnd("SgAsmBinaryConcat");
42902 }
42903#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42904
42905public:
42908
42909public:
42912
42913public:
42916 SgAsmExpression* const& rhs);
42917
42918protected:
42926#endif // SgAsmBinaryConcat_OTHERS
42927#ifdef DOCUMENTATION
42928};
42929#endif // DOCUMENTATION
42930
42931
42933// SgAsmBinaryAsr -- MACHINE GENERATED; DO NOT MODIFY --
42935
42936DECLARE_LEAF_CLASS(AsmBinaryAsr);
42937IS_SERIALIZABLE(AsmBinaryAsr);
42938
42939#ifndef DOCUMENTATION
42940AsmBinaryAsr.useSmallHeader(true);
42941#endif // !DOCUMENTATION
42942
42943#ifdef DOCUMENTATION
42946#endif // DOCUMENTATION
42947
42948 DECLARE_OTHERS(AsmBinaryAsr);
42949#if defined(SgAsmBinaryAsr_OTHERS) || defined(DOCUMENTATION)
42950
42951 //----------------------- Boost serialization for SgAsmBinaryAsr -----------------------
42952#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42953private:
42954 friend class boost::serialization::access;
42955
42956 template<class S>
42957 void serialize(S &s, const unsigned /*version*/) {
42958 debugSerializationBegin("SgAsmBinaryAsr");
42959 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42960 debugSerializationEnd("SgAsmBinaryAsr");
42961 }
42962#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42963
42964public:
42967
42968public:
42971
42972public:
42975 SgAsmExpression* const& rhs);
42976
42977protected:
42985#endif // SgAsmBinaryAsr_OTHERS
42986#ifdef DOCUMENTATION
42987};
42988#endif // DOCUMENTATION
42989
42990
42992// SgAsmBinaryAdd -- MACHINE GENERATED; DO NOT MODIFY --
42994
42995DECLARE_LEAF_CLASS(AsmBinaryAdd);
42996IS_SERIALIZABLE(AsmBinaryAdd);
42997
42998#ifndef DOCUMENTATION
42999AsmBinaryAdd.useSmallHeader(true);
43000#endif // !DOCUMENTATION
43001
43002#ifdef DOCUMENTATION
43005#endif // DOCUMENTATION
43006
43007 DECLARE_OTHERS(AsmBinaryAdd);
43008#if defined(SgAsmBinaryAdd_OTHERS) || defined(DOCUMENTATION)
43009
43010 //----------------------- Boost serialization for SgAsmBinaryAdd -----------------------
43011#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43012private:
43013 friend class boost::serialization::access;
43014
43015 template<class S>
43016 void serialize(S &s, const unsigned /*version*/) {
43017 debugSerializationBegin("SgAsmBinaryAdd");
43018 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
43019 debugSerializationEnd("SgAsmBinaryAdd");
43020 }
43021#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43022
43023public:
43026
43027public:
43030
43031public:
43034 SgAsmExpression* const& rhs);
43035
43036protected:
43044#endif // SgAsmBinaryAdd_OTHERS
43045#ifdef DOCUMENTATION
43046};
43047#endif // DOCUMENTATION
43048
43049
43051// SgAsmBinaryExpression -- MACHINE GENERATED; DO NOT MODIFY --
43053
43054#ifndef DOCUMENTATION
43055AstNodeClass& AsmBinaryExpression = nonTerminalConstructor(
43056 "AsmBinaryExpression",
43057 *this,
43058 "AsmBinaryExpression",
43059 "AsmBinaryExpressionTag",
43060 SubclassListBuilder()
43061 | AsmBinaryAdd
43062 | AsmBinaryAsr
43063 | AsmBinaryConcat
43064 | AsmBinaryDivide
43065 | AsmBinaryLsl
43066 | AsmBinaryLsr
43067 | AsmBinaryMod
43068 | AsmBinaryMsl
43069 | AsmBinaryMultiply
43070 | AsmBinaryPostupdate
43071 | AsmBinaryPreupdate
43072 | AsmBinaryRor
43073 | AsmBinarySubtract
43074 , false);
43075assert(AsmBinaryExpression.associatedGrammar != nullptr);
43076AsmBinaryExpression.setCppCondition("!defined(DOCUMENTATION)");
43077AsmBinaryExpression.isBoostSerializable(true);
43078AsmBinaryExpression.setAutomaticGenerationOfConstructor(false);
43079AsmBinaryExpression.setAutomaticGenerationOfDestructor(false);
43080#endif // !DOCUMENTATION
43081
43082#ifndef DOCUMENTATION
43083AsmBinaryExpression.useSmallHeader(true);
43084#endif // !DOCUMENTATION
43085
43086#ifdef DOCUMENTATION
43089#endif // DOCUMENTATION
43090
43091#ifndef DOCUMENTATION
43092 AsmBinaryExpression.setDataPrototype(
43093 "SgAsmExpression*", "lhs", "= nullptr",
43094 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
43095#endif // !DOCUMENTATION
43096
43097#ifndef DOCUMENTATION
43098 AsmBinaryExpression.setDataPrototype(
43099 "SgAsmExpression*", "rhs", "= nullptr",
43100 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
43101#endif // !DOCUMENTATION
43102
43103 DECLARE_OTHERS(AsmBinaryExpression);
43104#if defined(SgAsmBinaryExpression_OTHERS) || defined(DOCUMENTATION)
43105
43106 //----------------------- Boost serialization for SgAsmBinaryExpression -----------------------
43107#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43108private:
43109 friend class boost::serialization::access;
43110
43111 template<class S>
43112 void serialize(S &s, const unsigned /*version*/) {
43113 debugSerializationBegin("SgAsmBinaryExpression");
43114 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43115 s & BOOST_SERIALIZATION_NVP(p_lhs);
43116 s & BOOST_SERIALIZATION_NVP(p_rhs);
43117 debugSerializationEnd("SgAsmBinaryExpression");
43118 }
43119#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43120public:
43121public:
43125 SgAsmExpression* const& get_lhs() const;
43129public:
43133 SgAsmExpression* const& get_rhs() const;
43137public:
43140
43141protected:
43144
43145protected:
43148 SgAsmExpression* const& rhs);
43149
43150protected:
43158#endif // SgAsmBinaryExpression_OTHERS
43159#ifdef DOCUMENTATION
43160};
43161#endif // DOCUMENTATION
43162
43163
43165// SgAsmBasicString -- MACHINE GENERATED; DO NOT MODIFY --
43167
43168DECLARE_LEAF_CLASS(AsmBasicString);
43169IS_SERIALIZABLE(AsmBasicString);
43170
43171#ifndef DOCUMENTATION
43172AsmBasicString.useSmallHeader(true);
43173#endif // !DOCUMENTATION
43174
43175DECLARE_HEADERS(AsmBasicString);
43176#if defined(SgAsmBasicString_HEADERS) || defined(DOCUMENTATION)
43177#include <Rose/BinaryAnalysis/Address.h>
43178#endif // SgAsmBasicString_HEADERS
43179
43180#ifdef DOCUMENTATION
43186#endif // DOCUMENTATION
43187
43188#ifndef DOCUMENTATION
43189 AsmBasicString.setDataPrototype(
43190 "std::string", "string", "",
43191 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43192#endif // !DOCUMENTATION
43193
43194 DECLARE_OTHERS(AsmBasicString);
43195#if defined(SgAsmBasicString_OTHERS) || defined(DOCUMENTATION)
43196
43197 //----------------------- Boost serialization for SgAsmBasicString -----------------------
43198#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43199private:
43200 friend class boost::serialization::access;
43201
43202 template<class S>
43203 void serialize(S &s, const unsigned /*version*/) {
43204 debugSerializationBegin("SgAsmBasicString");
43205 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericString);
43206 s & BOOST_SERIALIZATION_NVP(p_string);
43207 debugSerializationEnd("SgAsmBasicString");
43208 }
43209#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43210public:
43211public:
43212 virtual std::string get_string(bool escape=false) const override;
43213 virtual void set_string(const std::string&) override;
43215
43216public:
43220 explicit SgAsmBasicString(const std::string&);
43221 explicit SgAsmBasicString(const char*);
43224 // Overrides documented in base class
43225 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
43226public:
43229
43230public:
43233
43234protected:
43242#endif // SgAsmBasicString_OTHERS
43243#ifdef DOCUMENTATION
43244};
43245#endif // DOCUMENTATION
43246
43247
43249// SgAsmGenericString -- MACHINE GENERATED; DO NOT MODIFY --
43251
43252#ifndef DOCUMENTATION
43253AstNodeClass& AsmGenericString = nonTerminalConstructor(
43254 "AsmGenericString",
43255 *this,
43256 "AsmGenericString",
43257 "AsmGenericStringTag",
43258 SubclassListBuilder()
43259 | AsmBasicString
43260 | AsmStoredString
43261 , false);
43262assert(AsmGenericString.associatedGrammar != nullptr);
43263AsmGenericString.setCppCondition("!defined(DOCUMENTATION)");
43264AsmGenericString.isBoostSerializable(true);
43265AsmGenericString.setAutomaticGenerationOfConstructor(false);
43266AsmGenericString.setAutomaticGenerationOfDestructor(false);
43267#endif // !DOCUMENTATION
43268
43269#ifndef DOCUMENTATION
43270AsmGenericString.useSmallHeader(true);
43271#endif // !DOCUMENTATION
43272
43273DECLARE_HEADERS(AsmGenericString);
43274#if defined(SgAsmGenericString_HEADERS) || defined(DOCUMENTATION)
43275#include <Rose/BinaryAnalysis/Address.h>
43276#endif // SgAsmGenericString_HEADERS
43277
43278#ifdef DOCUMENTATION
43281#endif // DOCUMENTATION
43282
43283 DECLARE_OTHERS(AsmGenericString);
43284#if defined(SgAsmGenericString_OTHERS) || defined(DOCUMENTATION)
43285
43286 //----------------------- Boost serialization for SgAsmGenericString -----------------------
43287#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43288private:
43289 friend class boost::serialization::access;
43290
43291 template<class S>
43292 void serialize(S &s, const unsigned /*version*/) {
43293 debugSerializationBegin("SgAsmGenericString");
43294 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
43295 debugSerializationEnd("SgAsmGenericString");
43296 }
43297#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43298public:
43301
43310 virtual std::string get_string(bool escape=false) const;
43311 virtual void set_string(const std::string &s);
43315 virtual Rose::BinaryAnalysis::Address get_offset() const {return unallocated;}
43316
43317 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
43318public:
43321
43322protected:
43325
43326protected:
43334#endif // SgAsmGenericString_OTHERS
43335#ifdef DOCUMENTATION
43336};
43337#endif // DOCUMENTATION
43338
43339
43341// SgAsmExecutableFileFormat -- MACHINE GENERATED; DO NOT MODIFY --
43343
43344#ifndef DOCUMENTATION
43345AstNodeClass& AsmExecutableFileFormat = nonTerminalConstructor(
43346 "AsmExecutableFileFormat",
43347 *this,
43348 "AsmExecutableFileFormat",
43349 "AsmExecutableFileFormatTag",
43350 SubclassListBuilder()
43351 | AsmCoffSymbolList
43352 | AsmDwarfInformation
43353 | AsmElfDynamicEntry
43354 | AsmElfDynamicEntryList
43355 | AsmElfEHFrameEntryCI
43356 | AsmElfEHFrameEntryCIList
43357 | AsmElfEHFrameEntryFD
43358 | AsmElfEHFrameEntryFDList
43359 | AsmElfNoteEntry
43360 | AsmElfNoteEntryList
43361 | AsmElfRelocEntry
43362 | AsmElfRelocEntryList
43363 | AsmElfSectionTableEntry
43364 | AsmElfSegmentTableEntry
43365 | AsmElfSegmentTableEntryList
43366 | AsmElfSymbolList
43367 | AsmElfSymverDefinedAux
43368 | AsmElfSymverDefinedAuxList
43369 | AsmElfSymverDefinedEntry
43370 | AsmElfSymverDefinedEntryList
43371 | AsmElfSymverEntry
43372 | AsmElfSymverEntryList
43373 | AsmElfSymverNeededAux
43374 | AsmElfSymverNeededAuxList
43375 | AsmElfSymverNeededEntry
43376 | AsmElfSymverNeededEntryList
43377 | AsmGenericDLL
43378 | AsmGenericDLLList
43379 | AsmGenericFile
43380 | AsmGenericFormat
43381 | AsmGenericHeaderList
43382 | AsmGenericSection
43383 | AsmGenericSectionList
43384 | AsmGenericString
43385 | AsmGenericStrtab
43386 | AsmGenericSymbol
43387 | AsmGenericSymbolList
43388 | AsmLEEntryPoint
43389 | AsmLEPageTableEntry
43390 | AsmLESectionTableEntry
43391 | AsmNEEntryPoint
43392 | AsmNERelocEntry
43393 | AsmNESectionTableEntry
43394 | AsmPEExportDirectory
43395 | AsmPEExportEntry
43396 | AsmPEExportEntryList
43397 | AsmPEImportDirectory
43398 | AsmPEImportDirectoryList
43399 | AsmPEImportItem
43400 | AsmPEImportItemList
43401 | AsmPERVASizePair
43402 | AsmPERVASizePairList
43403 | AsmPESectionTableEntry
43404 | AsmStringStorage
43405 , false);
43406assert(AsmExecutableFileFormat.associatedGrammar != nullptr);
43407AsmExecutableFileFormat.setCppCondition("!defined(DOCUMENTATION)");
43408AsmExecutableFileFormat.isBoostSerializable(true);
43409AsmExecutableFileFormat.setAutomaticGenerationOfConstructor(false);
43410AsmExecutableFileFormat.setAutomaticGenerationOfDestructor(false);
43411#endif // !DOCUMENTATION
43412
43413#ifndef DOCUMENTATION
43414AsmExecutableFileFormat.useSmallHeader(true);
43415#endif // !DOCUMENTATION
43416
43417DECLARE_HEADERS(AsmExecutableFileFormat);
43418#if defined(SgAsmExecutableFileFormat_HEADERS) || defined(DOCUMENTATION)
43419#include <Rose/BinaryAnalysis/Address.h>
43420#include <Rose/Exception.h>
43421#endif // SgAsmExecutableFileFormat_HEADERS
43422
43423#ifdef DOCUMENTATION
43426#endif // DOCUMENTATION
43427
43428 DECLARE_OTHERS(AsmExecutableFileFormat);
43429#if defined(SgAsmExecutableFileFormat_OTHERS) || defined(DOCUMENTATION)
43430
43431 //----------------------- Boost serialization for SgAsmExecutableFileFormat -----------------------
43432#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43433private:
43434 friend class boost::serialization::access;
43435
43436 template<class S>
43437 void serialize(S &s, const unsigned /*version*/) {
43438 debugSerializationBegin("SgAsmExecutableFileFormat");
43439 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
43440 debugSerializationEnd("SgAsmExecutableFileFormat");
43441 }
43442#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43444 // Local types
43446public:
43451 public:
43456 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size)
43457 : Rose::Exception("short read"), section(section), offset(offset), size(size) {}
43458 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size, const std::string &mesg)
43460 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size, const char *mesg)
43462 ~ShortRead() throw () {}
43463 };
43464
43469 public:
43474 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size)
43476 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size, const std::string &mesg)
43478 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size, const char *mesg)
43480 };
43481
43486 public:
43487 FormatError(const std::string &mesg)
43488 : Rose::Exception(mesg) {}
43489 FormatError(const char *mesg)
43490 : Rose::Exception(mesg) {}
43491 ~FormatError() throw () {}
43492 };
43493
43495 typedef struct stat fileDetails;
43496
43508
43533
43537 ISA_OTHER = 0xffff,
43541 ISA_IA32_286 = 0x0101,
43542 ISA_IA32_386 = 0x0102,
43543 ISA_IA32_486 = 0x0103,
43560 ISA_SPARC_V7 = 0x0301,
43561 ISA_SPARC_V8 = 0x0302,
43562 ISA_SPARC_V8E = 0x0303,
43563 ISA_SPARC_V9 = 0x0304,
43564 ISA_SPARC_V9JPS1 = 0x0305,
43565 ISA_SPARC_V9UA = 0x0306,
43566 ISA_SPARC_V9JPS2 = 0x0307,
43567
43570 ISA_M68K_68EC000 = 0x0402,
43571 ISA_M68K_68HC000 = 0x0403,
43572 ISA_M68K_68008 = 0x0404,
43573 ISA_M68K_68010 = 0x0405,
43574 ISA_M68K_68012 = 0x0406,
43576 ISA_M68K_68EC020 = 0x0408,
43577 ISA_M68K_68030 = 0x0409,
43578 ISA_M68K_68EC030 = 0x040a,
43580 ISA_M68K_68EC040 = 0x040c,
43581 ISA_M68K_68LC040 = 0x040d,
43611 ISA_MIPS_R16000A = 0x0613,
43612 ISA_MIPS_16 = 0x0614,
43613 ISA_MIPS_FPU = 0x0615,
43624 // See http://en.wikipedia.org/wiki/ARM_architecture
43626 ISA_ARM_ARM1 = 0x0901,
43627 ISA_ARM_ARM2 = 0x0902,
43628 ISA_ARM_ARM3 = 0x0903,
43629 ISA_ARM_ARM6 = 0x0904,
43630 ISA_ARM_ARM7 = 0x0905,
43633 ISA_ARM_ARM8 = 0x0908,
43635 ISA_ARM_ARM9E = 0x090a,
43637 ISA_ARM_XScale = 0x090c,
43641 ISA_ARM_ARM11 = 0x090d,
43643 ISA_ARM_A64 = 0x090f,
43645 ISA_JVM = 0x0a00,
43647 // Others, not yet incorporated into this enum
43648 ISA_OTHER_Family = 0xf000,
43649
43651 ISA_IBM_System_370 = 0xf002,
43652 ISA_HPPA = 0xf003,
43653 ISA_Fujitsu_VPP500 = 0xf004,
43654 ISA_Sun_v8plus = 0xf005,
43655 ISA_PowerPC = 0xf006,
43656 ISA_PowerPC_64bit = 0xf007,
43657 ISA_IBM_S390 = 0xf008,
43658 ISA_NEC_V800_series = 0xf009,
43659 ISA_Fujitsu_FR20 = 0xf00a,
43660 ISA_TRW_RH_32 = 0xf00b,
43661 ISA_Motorola_RCE = 0xf00c,
43662 ISA_Digital_Alpha_fake = 0xf00e,
43663 ISA_Hitachi_SH = 0xf00f,
43664 ISA_Siemens_Tricore = 0xf010,
43665 ISA_Argonaut_RISC_Core = 0xf011,
43666 ISA_Hitachi_H8_300 = 0xf012,
43667 ISA_Hitachi_H8_300H = 0xf013,
43668 ISA_Hitachi_H8S = 0xf014,
43669 ISA_Hitachi_H8_500 = 0xf015,
43670 ISA_Stanford_MIPS_X = 0xf016,
43671 ISA_Motorola_M68HC12 = 0xf017,
43672 ISA_Fujitsu_MMA_Multimedia_Accelerator=0xf018,
43673 ISA_Siemens_PCP = 0xf019,
43674 ISA_Sony_nCPU_embeeded_RISC = 0xf01a,
43675 ISA_Denso_NDR1_microprocessor=0xf01b,
43676 ISA_Motorola_Start_Core_processor=0xf01c,
43677 ISA_Toyota_ME16_processor = 0xf01d,
43678 ISA_STMicroelectronic_ST100_processor=0xf01e,
43679 ISA_Advanced_Logic_Corp_Tinyj_emb_family=0xf01f,
43680 ISA_AMD_x86_64_architecture = 0xf020,
43681 ISA_Sony_DSP_Processor = 0xf021,
43682 ISA_Siemens_FX66_microcontroller=0xf022,
43683 ISA_STMicroelectronics_ST9_plus_8_16_microcontroller=0xf023,
43684 ISA_STMicroelectronics_ST7_8bit_microcontroller=0xf024,
43685 ISA_Motorola_MC68HC16_microcontroller=0xf025,
43686 ISA_Motorola_MC68HC11_microcontroller=0xf026,
43687 ISA_Motorola_MC68HC08_microcontroller=0xf027,
43688 ISA_Motorola_MC68HC05_microcontroller=0xf028,
43689 ISA_Silicon_Graphics_SVx = 0xf029,
43690 ISA_STMicroelectronics_ST19_8bit_microcontroller=0xf02a,
43691 ISA_Digital_VAX = 0xf02b,
43692 ISA_Axis_Communications_32bit_embedded_processor=0xf02c,
43693 ISA_Infineon_Technologies_32bit_embedded_processor=0xf02d,
43694 ISA_Element_14_64bit_DSP_Processor=0xf02e,
43695 ISA_LSI_Logic_16bit_DSP_Processor=0xf02f,
43696 ISA_Donald_Knuths_educational_64bit_processor=0xf030,
43697 ISA_Harvard_University_machine_independent_object_files=0xf031,
43698 ISA_SiTera_Prism = 0xf032,
43699 ISA_Atmel_AVR_8bit_microcontroller=0xf033,
43700 ISA_Fujitsu_FR30 = 0xf034,
43701 ISA_Mitsubishi_D10V = 0xf035,
43702 ISA_Mitsubishi_D30V = 0xf036,
43703 ISA_NEC_v850 = 0xf037,
43704 ISA_Mitsubishi_M32R = 0xf038,
43705 ISA_Matsushita_MN10300 = 0xf039,
43706 ISA_Matsushita_MN10200 = 0xf03a,
43707 ISA_picoJava = 0xf03b,
43708 ISA_OpenRISC_32bit_embedded_processor=0xf03c,
43709 ISA_ARC_Cores_Tangent_A5 = 0xf03d,
43710 ISA_Tensilica_Xtensa_Architecture=0xf03e,
43711 ISA_Digital_Alpha = 0xf03f,
43712 ISA_Matsushita_AM33 = 0xf040,
43713 ISA_EFI_ByteCode = 0xf041
43714 };
43715
43726
43728 // Functions
43730public:
43732 static SgAsmGenericFile *parseBinaryFormat(const char *name);
43733
43738 static void unparseBinaryFormat(const std::string &name, SgAsmGenericFile*);
43739
43744 static void unparseBinaryFormat(std::ostream&, SgAsmGenericFile*);
43745
43748
43752 static void initDiagnostics();
43753
43754 // These convert enums to strings. It is better to use the automatic enum stringification instead. They have names like
43755 // Rose::stringifySgAsmExecutableFileFormatInsnSetArchitecture, etc. */
43756 static std::string isaFamilyToString(SgAsmExecutableFileFormat::InsSetArchitecture);
43757 static std::string isaToString(SgAsmExecutableFileFormat::InsSetArchitecture);
43758 static std::string toString(SgAsmExecutableFileFormat::InsSetArchitecture);
43759 static std::string toString(SgAsmExecutableFileFormat::ExecFamily);
43760 static std::string toString(SgAsmExecutableFileFormat::ExecABI);
43761 static std::string toString(SgAsmExecutableFileFormat::ExecPurpose);
43762
43764 // Deprecated 2023-11
43766public:
43767 static std::string isa_family_to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use isaFamilyToString");
43768 static std::string isa_to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use isaToString");
43769 static std::string to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use toString");
43770 static std::string to_string(SgAsmExecutableFileFormat::ExecFamily) ROSE_DEPRECATED("use toString");
43771 static std::string to_string(SgAsmExecutableFileFormat::ExecABI) ROSE_DEPRECATED("use toString");
43772 static std::string to_string(SgAsmExecutableFileFormat::ExecPurpose) ROSE_DEPRECATED("use toString");
43773public:
43776
43777protected:
43780
43781protected:
43789#endif // SgAsmExecutableFileFormat_OTHERS
43790#ifdef DOCUMENTATION
43791};
43792#endif // DOCUMENTATION
43793
43794
43796// SgAsmAarch64SysMoveOperand -- MACHINE GENERATED; DO NOT MODIFY --
43798
43799#ifdef ROSE_ENABLE_ASM_AARCH64
43800DECLARE_LEAF_CLASS(AsmAarch64SysMoveOperand);
43801IS_SERIALIZABLE(AsmAarch64SysMoveOperand);
43802
43803#ifndef DOCUMENTATION
43804AsmAarch64SysMoveOperand.useSmallHeader(true);
43805#endif // !DOCUMENTATION
43806
43807DECLARE_HEADERS(AsmAarch64SysMoveOperand);
43808#if defined(SgAsmAarch64SysMoveOperand_HEADERS) || defined(DOCUMENTATION)
43809#ifdef ROSE_ENABLE_ASM_AARCH64
43810#endif
43811#endif // SgAsmAarch64SysMoveOperand_HEADERS
43812
43813#ifdef DOCUMENTATION
43815class SgAsmAarch64SysMoveOperand: public SgAsmExpression {
43816#endif // DOCUMENTATION
43817
43818 DECLARE_OTHERS(AsmAarch64SysMoveOperand);
43819#if defined(SgAsmAarch64SysMoveOperand_OTHERS) || defined(DOCUMENTATION)
43820
43821 //----------------------- Boost serialization for SgAsmAarch64SysMoveOperand -----------------------
43822#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43823private:
43824 friend class boost::serialization::access;
43825
43826 template<class S>
43827 void serialize(S &s, const unsigned /*version*/) {
43828 debugSerializationBegin("SgAsmAarch64SysMoveOperand");
43829 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43830 s & BOOST_SERIALIZATION_NVP(access_);
43831 debugSerializationEnd("SgAsmAarch64SysMoveOperand");
43832 }
43833#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43834public:
43835private:
43836 unsigned access_;
43837
43838public:
43844 unsigned const& access() const;
43845 void access(unsigned const&);
43848public:
43850 virtual ~SgAsmAarch64SysMoveOperand();
43851
43852public:
43854 SgAsmAarch64SysMoveOperand();
43855
43856public:
43858 explicit SgAsmAarch64SysMoveOperand(unsigned const& access);
43859
43860protected:
43867 void initializeProperties();
43868#endif // SgAsmAarch64SysMoveOperand_OTHERS
43869#ifdef DOCUMENTATION
43870};
43871#endif // DOCUMENTATION
43872#endif
43873
43874
43876// SgAsmAarch64PState -- MACHINE GENERATED; DO NOT MODIFY --
43878
43879#ifdef ROSE_ENABLE_ASM_AARCH64
43880DECLARE_LEAF_CLASS(AsmAarch64PState);
43881IS_SERIALIZABLE(AsmAarch64PState);
43882
43883#ifndef DOCUMENTATION
43884AsmAarch64PState.useSmallHeader(true);
43885#endif // !DOCUMENTATION
43886
43887DECLARE_HEADERS(AsmAarch64PState);
43888#if defined(SgAsmAarch64PState_HEADERS) || defined(DOCUMENTATION)
43889#ifdef ROSE_ENABLE_ASM_AARCH64
43890
43891#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
43892#endif
43893#endif // SgAsmAarch64PState_HEADERS
43894
43895#ifdef DOCUMENTATION
43897class SgAsmAarch64PState: public SgAsmExpression {
43898#endif // DOCUMENTATION
43899
43900 DECLARE_OTHERS(AsmAarch64PState);
43901#if defined(SgAsmAarch64PState_OTHERS) || defined(DOCUMENTATION)
43902
43903 //----------------------- Boost serialization for SgAsmAarch64PState -----------------------
43904#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43905private:
43906 friend class boost::serialization::access;
43907
43908 template<class S>
43909 void serialize(S &s, const unsigned /*version*/) {
43910 debugSerializationBegin("SgAsmAarch64PState");
43911 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43912 s & BOOST_SERIALIZATION_NVP(pstate_);
43913 debugSerializationEnd("SgAsmAarch64PState");
43914 }
43915#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43916public:
43917private:
43918 Rose::BinaryAnalysis::Aarch64PState pstate_;
43919
43920public:
43926 Rose::BinaryAnalysis::Aarch64PState const& pstate() const;
43927 void pstate(Rose::BinaryAnalysis::Aarch64PState const&);
43930public:
43932 virtual ~SgAsmAarch64PState();
43933
43934public:
43936 SgAsmAarch64PState();
43937
43938public:
43940 explicit SgAsmAarch64PState(Rose::BinaryAnalysis::Aarch64PState const& pstate);
43941
43942protected:
43949 void initializeProperties();
43950#endif // SgAsmAarch64PState_OTHERS
43951#ifdef DOCUMENTATION
43952};
43953#endif // DOCUMENTATION
43954#endif
43955
43956
43958// SgAsmAarch64PrefetchOperand -- MACHINE GENERATED; DO NOT MODIFY --
43960
43961#ifdef ROSE_ENABLE_ASM_AARCH64
43962DECLARE_LEAF_CLASS(AsmAarch64PrefetchOperand);
43963IS_SERIALIZABLE(AsmAarch64PrefetchOperand);
43964
43965#ifndef DOCUMENTATION
43966AsmAarch64PrefetchOperand.useSmallHeader(true);
43967#endif // !DOCUMENTATION
43968
43969DECLARE_HEADERS(AsmAarch64PrefetchOperand);
43970#if defined(SgAsmAarch64PrefetchOperand_HEADERS) || defined(DOCUMENTATION)
43971#ifdef ROSE_ENABLE_ASM_AARCH64
43972
43973#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
43974#endif
43975#endif // SgAsmAarch64PrefetchOperand_HEADERS
43976
43977#ifdef DOCUMENTATION
43979class SgAsmAarch64PrefetchOperand: public SgAsmExpression {
43980#endif // DOCUMENTATION
43981
43982 DECLARE_OTHERS(AsmAarch64PrefetchOperand);
43983#if defined(SgAsmAarch64PrefetchOperand_OTHERS) || defined(DOCUMENTATION)
43984
43985 //----------------------- Boost serialization for SgAsmAarch64PrefetchOperand -----------------------
43986#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43987private:
43988 friend class boost::serialization::access;
43989
43990 template<class S>
43991 void serialize(S &s, const unsigned /*version*/) {
43992 debugSerializationBegin("SgAsmAarch64PrefetchOperand");
43993 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43994 s & BOOST_SERIALIZATION_NVP(operation_);
43995 debugSerializationEnd("SgAsmAarch64PrefetchOperand");
43996 }
43997#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43998public:
43999private:
44000 Rose::BinaryAnalysis::Aarch64PrefetchOperation operation_;
44001
44002public:
44008 Rose::BinaryAnalysis::Aarch64PrefetchOperation const& operation() const;
44009 void operation(Rose::BinaryAnalysis::Aarch64PrefetchOperation const&);
44012public:
44014 virtual ~SgAsmAarch64PrefetchOperand();
44015
44016public:
44018 SgAsmAarch64PrefetchOperand();
44019
44020public:
44022 explicit SgAsmAarch64PrefetchOperand(Rose::BinaryAnalysis::Aarch64PrefetchOperation const& operation);
44023
44024protected:
44031 void initializeProperties();
44032#endif // SgAsmAarch64PrefetchOperand_OTHERS
44033#ifdef DOCUMENTATION
44034};
44035#endif // DOCUMENTATION
44036#endif
44037
44038
44040// SgAsmAarch64Instruction -- MACHINE GENERATED; DO NOT MODIFY --
44042
44043#ifdef ROSE_ENABLE_ASM_AARCH64
44044DECLARE_LEAF_CLASS(AsmAarch64Instruction);
44045IS_SERIALIZABLE(AsmAarch64Instruction);
44046
44047#ifndef DOCUMENTATION
44048AsmAarch64Instruction.useSmallHeader(true);
44049#endif // !DOCUMENTATION
44050
44051DECLARE_HEADERS(AsmAarch64Instruction);
44052#if defined(SgAsmAarch64Instruction_HEADERS) || defined(DOCUMENTATION)
44053#ifdef ROSE_ENABLE_ASM_AARCH64
44054#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
44055#endif
44056#endif // SgAsmAarch64Instruction_HEADERS
44057
44058#ifdef DOCUMENTATION
44060class SgAsmAarch64Instruction: public SgAsmInstruction {
44061#endif // DOCUMENTATION
44062
44063#ifndef DOCUMENTATION
44064 AsmAarch64Instruction.setDataPrototype(
44065 "Rose::BinaryAnalysis::Aarch64InstructionKind", "kind", "= Rose::BinaryAnalysis::Aarch64InstructionKind::ARM64_INS_INVALID",
44066 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44067#endif // !DOCUMENTATION
44068
44069#ifndef DOCUMENTATION
44070 AsmAarch64Instruction.setDataPrototype(
44071 "Rose::BinaryAnalysis::Aarch64InstructionCondition", "condition", "= Rose::BinaryAnalysis::Aarch64InstructionCondition::ARM64_CC_INVALID",
44072 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44073#endif // !DOCUMENTATION
44074
44075#ifndef DOCUMENTATION
44076 AsmAarch64Instruction.setDataPrototype(
44077 "bool", "updatesFlags", "= false",
44078 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44079#endif // !DOCUMENTATION
44080
44081 DECLARE_OTHERS(AsmAarch64Instruction);
44082#if defined(SgAsmAarch64Instruction_OTHERS) || defined(DOCUMENTATION)
44083
44084 //----------------------- Boost serialization for SgAsmAarch64Instruction -----------------------
44085#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44086private:
44087 friend class boost::serialization::access;
44088
44089 template<class S>
44090 void serialize(S &s, const unsigned /*version*/) {
44091 debugSerializationBegin("SgAsmAarch64Instruction");
44092 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
44093 s & BOOST_SERIALIZATION_NVP(p_kind);
44094 s & BOOST_SERIALIZATION_NVP(p_condition);
44095 debugSerializationEnd("SgAsmAarch64Instruction");
44096 }
44097#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44098public:
44099public:
44106 Rose::BinaryAnalysis::Aarch64InstructionKind const& get_kind() const;
44107 void set_kind(Rose::BinaryAnalysis::Aarch64InstructionKind const&);
44110public:
44114 Rose::BinaryAnalysis::Aarch64InstructionCondition const& get_condition() const;
44115 void set_condition(Rose::BinaryAnalysis::Aarch64InstructionCondition const&);
44117 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
44118public:
44122 bool const& get_updatesFlags() const;
44123 void set_updatesFlags(bool const&);
44125public:
44126 // Overrides are documented in the base class
44127 virtual unsigned get_anyKind() const override;
44128public:
44130 virtual ~SgAsmAarch64Instruction();
44131
44132public:
44134 SgAsmAarch64Instruction();
44135
44136public:
44138 SgAsmAarch64Instruction(Rose::BinaryAnalysis::Address const& address,
44139 uint8_t const& architectureId,
44140 Rose::BinaryAnalysis::Aarch64InstructionKind const& kind,
44141 Rose::BinaryAnalysis::Aarch64InstructionCondition const& condition);
44142
44143protected:
44150 void initializeProperties();
44151#endif // SgAsmAarch64Instruction_OTHERS
44152#ifdef DOCUMENTATION
44153};
44154#endif // DOCUMENTATION
44155#endif
44156
44157
44159// SgAsmAarch64CImmediateOperand -- MACHINE GENERATED; DO NOT MODIFY --
44161
44162#ifdef ROSE_ENABLE_ASM_AARCH64
44163DECLARE_LEAF_CLASS(AsmAarch64CImmediateOperand);
44164IS_SERIALIZABLE(AsmAarch64CImmediateOperand);
44165
44166#ifndef DOCUMENTATION
44167AsmAarch64CImmediateOperand.useSmallHeader(true);
44168#endif // !DOCUMENTATION
44169
44170DECLARE_HEADERS(AsmAarch64CImmediateOperand);
44171#if defined(SgAsmAarch64CImmediateOperand_HEADERS) || defined(DOCUMENTATION)
44172#ifdef ROSE_ENABLE_ASM_AARCH64
44173#endif
44174#endif // SgAsmAarch64CImmediateOperand_HEADERS
44175
44176#ifdef DOCUMENTATION
44178class SgAsmAarch64CImmediateOperand: public SgAsmExpression {
44179#endif // DOCUMENTATION
44180
44181 DECLARE_OTHERS(AsmAarch64CImmediateOperand);
44182#if defined(SgAsmAarch64CImmediateOperand_OTHERS) || defined(DOCUMENTATION)
44183
44184 //----------------------- Boost serialization for SgAsmAarch64CImmediateOperand -----------------------
44185#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44186private:
44187 friend class boost::serialization::access;
44188
44189 template<class S>
44190 void serialize(S &s, const unsigned /*version*/) {
44191 debugSerializationBegin("SgAsmAarch64CImmediateOperand");
44192 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
44193 s & BOOST_SERIALIZATION_NVP(immediate_);
44194 debugSerializationEnd("SgAsmAarch64CImmediateOperand");
44195 }
44196#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44197public:
44198private:
44199 unsigned immediate_;
44200
44201public:
44207 unsigned const& immediate() const;
44208 void immediate(unsigned const&);
44211public:
44213 virtual ~SgAsmAarch64CImmediateOperand();
44214
44215public:
44217 SgAsmAarch64CImmediateOperand();
44218
44219public:
44221 explicit SgAsmAarch64CImmediateOperand(unsigned const& immediate);
44222
44223protected:
44230 void initializeProperties();
44231#endif // SgAsmAarch64CImmediateOperand_OTHERS
44232#ifdef DOCUMENTATION
44233};
44234#endif // DOCUMENTATION
44235#endif
44236
44237
44239// SgAsmAarch64BarrierOperand -- MACHINE GENERATED; DO NOT MODIFY --
44241
44242#ifdef ROSE_ENABLE_ASM_AARCH64
44243DECLARE_LEAF_CLASS(AsmAarch64BarrierOperand);
44244IS_SERIALIZABLE(AsmAarch64BarrierOperand);
44245
44246#ifndef DOCUMENTATION
44247AsmAarch64BarrierOperand.useSmallHeader(true);
44248#endif // !DOCUMENTATION
44249
44250DECLARE_HEADERS(AsmAarch64BarrierOperand);
44251#if defined(SgAsmAarch64BarrierOperand_HEADERS) || defined(DOCUMENTATION)
44252#ifdef ROSE_ENABLE_ASM_AARCH64
44253
44254#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
44255#endif
44256#endif // SgAsmAarch64BarrierOperand_HEADERS
44257
44258#ifdef DOCUMENTATION
44260class SgAsmAarch64BarrierOperand: public SgAsmExpression {
44261#endif // DOCUMENTATION
44262
44263 DECLARE_OTHERS(AsmAarch64BarrierOperand);
44264#if defined(SgAsmAarch64BarrierOperand_OTHERS) || defined(DOCUMENTATION)
44265
44266 //----------------------- Boost serialization for SgAsmAarch64BarrierOperand -----------------------
44267#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44268private:
44269 friend class boost::serialization::access;
44270
44271 template<class S>
44272 void serialize(S &s, const unsigned /*version*/) {
44273 debugSerializationBegin("SgAsmAarch64BarrierOperand");
44274 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
44275 s & BOOST_SERIALIZATION_NVP(operation_);
44276 debugSerializationEnd("SgAsmAarch64BarrierOperand");
44277 }
44278#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44279public:
44280private:
44281 Rose::BinaryAnalysis::Aarch64BarrierOperation operation_;
44282
44283public:
44287 Rose::BinaryAnalysis::Aarch64BarrierOperation const& operation() const;
44288 void operation(Rose::BinaryAnalysis::Aarch64BarrierOperation const&);
44291public:
44293 virtual ~SgAsmAarch64BarrierOperand();
44294
44295public:
44297 SgAsmAarch64BarrierOperand();
44298
44299public:
44301 explicit SgAsmAarch64BarrierOperand(Rose::BinaryAnalysis::Aarch64BarrierOperation const& operation);
44302
44303protected:
44310 void initializeProperties();
44311#endif // SgAsmAarch64BarrierOperand_OTHERS
44312#ifdef DOCUMENTATION
44313};
44314#endif // DOCUMENTATION
44315#endif
44316
44317
44319// SgAsmAarch64AtOperand -- MACHINE GENERATED; DO NOT MODIFY --
44321
44322#ifdef ROSE_ENABLE_ASM_AARCH64
44323DECLARE_LEAF_CLASS(AsmAarch64AtOperand);
44324IS_SERIALIZABLE(AsmAarch64AtOperand);
44325
44326#ifndef DOCUMENTATION
44327AsmAarch64AtOperand.useSmallHeader(true);
44328#endif // !DOCUMENTATION
44329
44330DECLARE_HEADERS(AsmAarch64AtOperand);
44331#if defined(SgAsmAarch64AtOperand_HEADERS) || defined(DOCUMENTATION)
44332#ifdef ROSE_ENABLE_ASM_AARCH64
44333
44334#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
44335#endif
44336#endif // SgAsmAarch64AtOperand_HEADERS
44337
44338#ifdef DOCUMENTATION
44340class SgAsmAarch64AtOperand: public SgAsmExpression {
44341#endif // DOCUMENTATION
44342
44343 DECLARE_OTHERS(AsmAarch64AtOperand);
44344#if defined(SgAsmAarch64AtOperand_OTHERS) || defined(DOCUMENTATION)
44345
44346 //----------------------- Boost serialization for SgAsmAarch64AtOperand -----------------------
44347#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44348private:
44349 friend class boost::serialization::access;
44350
44351 template<class S>
44352 void serialize(S &s, const unsigned /*version*/) {
44353 debugSerializationBegin("SgAsmAarch64AtOperand");
44354 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
44355 s & BOOST_SERIALIZATION_NVP(operation_);
44356 debugSerializationEnd("SgAsmAarch64AtOperand");
44357 }
44358#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44359public:
44360private:
44361 Rose::BinaryAnalysis::Aarch64AtOperation operation_;
44362
44363public:
44369 Rose::BinaryAnalysis::Aarch64AtOperation const& operation() const;
44370 void operation(Rose::BinaryAnalysis::Aarch64AtOperation const&);
44373public:
44375 virtual ~SgAsmAarch64AtOperand();
44376
44377public:
44379 SgAsmAarch64AtOperand();
44380
44381public:
44383 explicit SgAsmAarch64AtOperand(Rose::BinaryAnalysis::Aarch64AtOperation const& operation);
44384
44385protected:
44392 void initializeProperties();
44393#endif // SgAsmAarch64AtOperand_OTHERS
44394#ifdef DOCUMENTATION
44395};
44396#endif // DOCUMENTATION
44397#endif
44398
44399
44401// SgAsmAarch32Instruction -- MACHINE GENERATED; DO NOT MODIFY --
44403
44404#ifdef ROSE_ENABLE_ASM_AARCH32
44405DECLARE_LEAF_CLASS(AsmAarch32Instruction);
44406IS_SERIALIZABLE(AsmAarch32Instruction);
44407
44408#ifndef DOCUMENTATION
44409AsmAarch32Instruction.useSmallHeader(true);
44410#endif // !DOCUMENTATION
44411
44412DECLARE_HEADERS(AsmAarch32Instruction);
44413#if defined(SgAsmAarch32Instruction_HEADERS) || defined(DOCUMENTATION)
44414#ifdef ROSE_ENABLE_ASM_AARCH32
44415#include <Rose/BinaryAnalysis/InstructionEnumsAarch32.h>
44416#endif
44417#endif // SgAsmAarch32Instruction_HEADERS
44418
44419#ifdef DOCUMENTATION
44421class SgAsmAarch32Instruction: public SgAsmInstruction {
44422#endif // DOCUMENTATION
44423
44424#ifndef DOCUMENTATION
44425 AsmAarch32Instruction.setDataPrototype(
44426 "Rose::BinaryAnalysis::Aarch32InstructionKind", "kind", "= Rose::BinaryAnalysis::Aarch32InstructionKind::ARM_INS_INVALID",
44427 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44428#endif // !DOCUMENTATION
44429
44430#ifndef DOCUMENTATION
44431 AsmAarch32Instruction.setDataPrototype(
44432 "Rose::BinaryAnalysis::Aarch32InstructionCondition", "condition", "= Rose::BinaryAnalysis::Aarch32InstructionCondition::ARM_CC_INVALID",
44433 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44434#endif // !DOCUMENTATION
44435
44436#ifndef DOCUMENTATION
44437 AsmAarch32Instruction.setDataPrototype(
44438 "bool", "updatesFlags", "= false",
44439 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44440#endif // !DOCUMENTATION
44441
44442#ifndef DOCUMENTATION
44443 AsmAarch32Instruction.setDataPrototype(
44444 "bool", "writesBack", "= false",
44445 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44446#endif // !DOCUMENTATION
44447
44448#ifndef DOCUMENTATION
44449 AsmAarch32Instruction.setDataPrototype(
44450 "bool", "writesToIp", "= false",
44451 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44452#endif // !DOCUMENTATION
44453
44454 DECLARE_OTHERS(AsmAarch32Instruction);
44455#if defined(SgAsmAarch32Instruction_OTHERS) || defined(DOCUMENTATION)
44456
44457 //----------------------- Boost serialization for SgAsmAarch32Instruction -----------------------
44458#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44459private:
44460 friend class boost::serialization::access;
44461
44462 template<class S>
44463 void serialize(S &s, const unsigned /*version*/) {
44464 debugSerializationBegin("SgAsmAarch32Instruction");
44465 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
44466 s & BOOST_SERIALIZATION_NVP(p_kind);
44467 s & BOOST_SERIALIZATION_NVP(p_condition);
44468 s & BOOST_SERIALIZATION_NVP(p_updatesFlags);
44469 s & BOOST_SERIALIZATION_NVP(p_writesBack);
44470 s & BOOST_SERIALIZATION_NVP(p_writesToIp);
44471 debugSerializationEnd("SgAsmAarch32Instruction");
44472 }
44473#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44474public:
44475public:
44482 Rose::BinaryAnalysis::Aarch32InstructionKind const& get_kind() const;
44483 void set_kind(Rose::BinaryAnalysis::Aarch32InstructionKind const&);
44486public:
44492 Rose::BinaryAnalysis::Aarch32InstructionCondition const& get_condition() const;
44493 void set_condition(Rose::BinaryAnalysis::Aarch32InstructionCondition const&);
44496public:
44500 bool const& get_updatesFlags() const;
44501 void set_updatesFlags(bool const&);
44504public:
44508 bool const& get_writesBack() const;
44509 void set_writesBack(bool const&);
44512public:
44519 bool const& get_writesToIp() const;
44520 void set_writesToIp(bool const&);
44522public:
44523 // Overrides are documented in the base class
44524 virtual unsigned get_anyKind() const override;
44525public:
44527 virtual ~SgAsmAarch32Instruction();
44528
44529public:
44531 SgAsmAarch32Instruction();
44532
44533public:
44535 SgAsmAarch32Instruction(Rose::BinaryAnalysis::Address const& address,
44536 uint8_t const& architectureId,
44537 Rose::BinaryAnalysis::Aarch32InstructionKind const& kind,
44538 Rose::BinaryAnalysis::Aarch32InstructionCondition const& condition);
44539
44540protected:
44547 void initializeProperties();
44548#endif // SgAsmAarch32Instruction_OTHERS
44549#ifdef DOCUMENTATION
44550};
44551#endif // DOCUMENTATION
44552#endif
44553
44554
44556// SgAsmInstruction -- MACHINE GENERATED; DO NOT MODIFY --
44558
44559#ifndef DOCUMENTATION
44560AstNodeClass& AsmInstruction = nonTerminalConstructor(
44561 "AsmInstruction",
44562 *this,
44563 "AsmInstruction",
44564 "AsmInstructionTag",
44565 SubclassListBuilder()
44566#ifdef ROSE_ENABLE_ASM_AARCH32
44567 | AsmAarch32Instruction
44568#endif
44569#ifdef ROSE_ENABLE_ASM_AARCH64
44570 | AsmAarch64Instruction
44571#endif
44572 | AsmCilInstruction
44573 | AsmJvmInstruction
44574 | AsmM68kInstruction
44575 | AsmMipsInstruction
44576 | AsmNullInstruction
44577 | AsmPowerpcInstruction
44578 | AsmUserInstruction
44579 | AsmX86Instruction
44580 , true);
44581assert(AsmInstruction.associatedGrammar != nullptr);
44582AsmInstruction.setCppCondition("!defined(DOCUMENTATION)");
44583AsmInstruction.isBoostSerializable(true);
44584AsmInstruction.setAutomaticGenerationOfConstructor(false);
44585AsmInstruction.setAutomaticGenerationOfDestructor(false);
44586#endif // !DOCUMENTATION
44587
44588#ifndef DOCUMENTATION
44589AsmInstruction.useSmallHeader(true);
44590#endif // !DOCUMENTATION
44591
44592DECLARE_HEADERS(AsmInstruction);
44593#if defined(SgAsmInstruction_HEADERS) || defined(DOCUMENTATION)
44594#include <Rose/BinaryAnalysis/Address.h>
44595#include <Rose/BinaryAnalysis/Architecture/BasicTypes.h>
44596#include <Rose/BinaryAnalysis/MemoryMap.h>
44597#include <sageContainer.h>
44598#include <Sawyer/Cached.h>
44599
44600#ifdef ROSE_SgAsmInstruction_IMPL
44601#include <SgAsmExprListExp.h>
44602#include <SgAsmOperandList.h>
44603#endif
44604#endif // SgAsmInstruction_HEADERS
44605
44606#ifdef DOCUMENTATION
44629#endif // DOCUMENTATION
44630
44631#ifndef DOCUMENTATION
44632 AsmInstruction.setDataPrototype(
44633 "uint8_t", "architectureId", "",
44634 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44635#endif // !DOCUMENTATION
44636
44637#ifndef DOCUMENTATION
44638 AsmInstruction.setDataPrototype(
44639 "SgUnsignedCharList", "rawBytes", "",
44640 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44641#endif // !DOCUMENTATION
44642
44643#ifndef DOCUMENTATION
44644 AsmInstruction.setDataPrototype(
44645 "SgAsmOperandList*", "operandList", "= nullptr",
44646 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
44647#endif // !DOCUMENTATION
44648
44649#ifndef DOCUMENTATION
44650 AsmInstruction.setDataPrototype(
44651 "SgAsmInstruction*", "delaySlot", "= nullptr",
44652 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44653#endif // !DOCUMENTATION
44654
44655#ifndef DOCUMENTATION
44656 AsmInstruction.setDataPrototype(
44657 "SgAsmExprListExp*", "semantics", "= nullptr",
44658 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
44659#endif // !DOCUMENTATION
44660
44661 DECLARE_OTHERS(AsmInstruction);
44662#if defined(SgAsmInstruction_OTHERS) || defined(DOCUMENTATION)
44663
44664 //----------------------- Boost serialization for SgAsmInstruction -----------------------
44665#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44666private:
44667 friend class boost::serialization::access;
44668
44669 template<class S>
44670 void serialize(S &s, const unsigned /*version*/) {
44671 debugSerializationBegin("SgAsmInstruction");
44672 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
44673 {
44674 auto temp = architectureIdSerialize(p_architectureId);
44675 s & boost::serialization::make_nvp("p_architectureId", temp);
44676 p_architectureId = architectureIdDeserialize(temp);
44677 }
44678 s & BOOST_SERIALIZATION_NVP(p_rawBytes);
44679 s & BOOST_SERIALIZATION_NVP(p_operandList);
44680 s & BOOST_SERIALIZATION_NVP(p_delaySlot);
44681 userSerializeBoost(s);
44682 debugSerializationEnd("SgAsmInstruction");
44683 }
44684#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44686 // Local types
44688private:
44689 struct SemanticFailure {
44690 size_t n;
44691 SemanticFailure(): n(0) {}
44692
44693#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44694 private:
44695 friend class boost::serialization::access;
44696 template<class S>
44697 void serialize(S &s, const unsigned /*version*/) {
44698 s & BOOST_SERIALIZATION_NVP(n);
44699 }
44700#endif
44701 };
44702
44704 // Properties
44706public:
44707public:
44719 uint8_t const& get_architectureId() const;
44721 // Architecture registration IDs change from run to run, so serialize the architecture name instead. The architecture names
44722 // will probably not change as frequently as their registration IDs.
44723 std::string architectureIdSerialize(uint8_t id) const;
44724 uint8_t architectureIdDeserialize(const std::string &name) const;
44725public:
44731 SgUnsignedCharList const& get_rawBytes() const;
44732 void set_rawBytes(SgUnsignedCharList const&);
44735public:
44746public:
44762 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
44763public:
44775 // Non-property data members
44777private:
44778 SemanticFailure semanticFailure_;
44779
44780public:
44785 static const int64_t INVALID_STACK_DELTA; // [Robb Matzke 2024-10-01]: deprecated; use an optional type instead
44786
44788 // Functions
44790public:
44799
44806 std::string get_mnemonic() const;
44807
44808 // [Robb Matzke 2023-12-04]: deprecated
44809 virtual std::string description() const final ROSE_DEPRECATED("use Architecture::Base::instructionDescription");
44810
44812 size_t nOperands() const;
44813
44817 SgAsmExpression* operand(size_t) const;
44818
44819 // [Robb Matzke 2023-12-04]: deprecated
44820 virtual bool terminatesBasicBlock() final ROSE_DEPRECATED("use Architecture::Base::terminatesBasicBlock");
44821 virtual bool isFunctionCallFast(const std::vector<SgAsmInstruction*>&, Rose::BinaryAnalysis::Address *target,
44822 Rose::BinaryAnalysis::Address *ret) final
44823 ROSE_DEPRECATED("use Architecture::Base::isFunctionCallFast");
44824 virtual bool isFunctionCallSlow(const std::vector<SgAsmInstruction*>&, Rose::BinaryAnalysis::Address *target,
44825 Rose::BinaryAnalysis::Address *ret) final
44826 ROSE_DEPRECATED("use Architecture::Base::isFunctionCallSlow");
44827 virtual bool isFunctionReturnFast(const std::vector<SgAsmInstruction*>&) final
44828 ROSE_DEPRECATED("use Architecture::Base::isFunctionReturnFast");
44829 virtual bool isFunctionReturnSlow(const std::vector<SgAsmInstruction*>&) final
44830 ROSE_DEPRECATED("use Architecture::Base::isFunctionReturnSlow");
44831 virtual Sawyer::Optional<Rose::BinaryAnalysis::Address> branchTarget() final
44832 ROSE_DEPRECATED("use Architecture::Base::branchTarget");
44833
44838
44843
44978 virtual bool hasEffect();
44979
44988 virtual bool hasEffect(const std::vector<SgAsmInstruction*>&, bool allow_branch=false,
44989 bool relax_stack_semantics=false);
44990
45000 virtual std::vector<std::pair<size_t,size_t> >
45001 findNoopSubsequences(const std::vector<SgAsmInstruction*>& insns, bool allow_branch=false,
45002 bool relax_stack_semantics=false);
45003
45004 // [Robb Matzke 2023-12-04]: deprecated
45005 virtual Rose::BinaryAnalysis::AddressSet getSuccessors(bool &complete)
45006 ROSE_DEPRECATED("use Architecture::Base::getSuccessors");
45007 virtual Rose::BinaryAnalysis::AddressSet getSuccessors(const std::vector<SgAsmInstruction*> &basicBlock,
45008 bool &complete,
45009 const Rose::BinaryAnalysis::MemoryMap::Ptr &initial_memory =
45010 Rose::BinaryAnalysis::MemoryMap::Ptr())
45011 ROSE_DEPRECATED("use Architecture::Base::getSuccessors");
45012
45018 virtual size_t get_size() const;
45019
45020 // [Robb Matzke 2023-12-05]: deprecated
45021 virtual bool isUnknown() const final ROSE_DEPRECATED("use Architecture::Base::isUnknown");
45022
45056 virtual unsigned get_anyKind() const;
45057
45061 virtual std::string toString() const;
45062
45066 virtual std::string toStringNoAddr() const;
45067
45071 virtual std::string toStringNoColor() const;
45072
45077 virtual std::string toStringNoAddrNoColor() const;
45078
45083 virtual std::set<Rose::BinaryAnalysis::Address> explicitConstants() const;
45084
45094 size_t semanticFailure() const;
45095 void semanticFailure(size_t);
45108
45110 // Serialization
45112#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
45113private:
45114 template<class S>
45115 void userSerializeBoost(S &s) {
45116 s & BOOST_SERIALIZATION_NVP(semanticFailure_);
45117 }
45118#endif
45119
45121 // Deprecated
45123public:
45124 // [Robb Matzke 2023-11-07]: deprecated
45125 const SgUnsignedCharList& get_raw_bytes() const ROSE_DEPRECATED("use get_rawBytes");
45126 void set_raw_bytes(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_rawBytes");
45127public:
45130
45131public:
45134
45135public:
45137 SgAsmInstruction(Rose::BinaryAnalysis::Address const& address,
45138 uint8_t const& architectureId);
45139
45140protected:
45148#endif // SgAsmInstruction_OTHERS
45149#ifdef DOCUMENTATION
45150};
45151#endif // DOCUMENTATION
45152
45153
45155// SgAsmStatement -- MACHINE GENERATED; DO NOT MODIFY --
45157
45158#ifndef DOCUMENTATION
45159AstNodeClass& AsmStatement = nonTerminalConstructor(
45160 "AsmStatement",
45161 *this,
45162 "AsmStatement",
45163 "AsmStatementTag",
45164 SubclassListBuilder()
45165 | AsmBlock
45166 | AsmInstruction
45167 | AsmStaticData
45168 | AsmSynthesizedDeclaration
45169 , false);
45170assert(AsmStatement.associatedGrammar != nullptr);
45171AsmStatement.setCppCondition("!defined(DOCUMENTATION)");
45172AsmStatement.isBoostSerializable(true);
45173AsmStatement.setAutomaticGenerationOfConstructor(false);
45174AsmStatement.setAutomaticGenerationOfDestructor(false);
45175#endif // !DOCUMENTATION
45176
45177#ifndef DOCUMENTATION
45178AsmStatement.useSmallHeader(true);
45179#endif // !DOCUMENTATION
45180
45181DECLARE_HEADERS(AsmStatement);
45182#if defined(SgAsmStatement_HEADERS) || defined(DOCUMENTATION)
45183#include <Rose/BinaryAnalysis/Address.h>
45184#endif // SgAsmStatement_HEADERS
45185
45186#ifdef DOCUMENTATION
45192#endif // DOCUMENTATION
45193
45194#ifndef DOCUMENTATION
45195 AsmStatement.setDataPrototype(
45196 "Rose::BinaryAnalysis::Address", "address", "= 0",
45197 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
45198#endif // !DOCUMENTATION
45199
45200#ifndef DOCUMENTATION
45201 AsmStatement.setDataPrototype(
45202 "std::string", "comment", "",
45203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
45204#endif // !DOCUMENTATION
45205
45206 DECLARE_OTHERS(AsmStatement);
45207#if defined(SgAsmStatement_OTHERS) || defined(DOCUMENTATION)
45208
45209 //----------------------- Boost serialization for SgAsmStatement -----------------------
45210#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
45211private:
45212 friend class boost::serialization::access;
45213
45214 template<class S>
45215 void serialize(S &s, const unsigned /*version*/) {
45216 debugSerializationBegin("SgAsmStatement");
45217 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
45218 s & BOOST_SERIALIZATION_NVP(p_address);
45219 s & BOOST_SERIALIZATION_NVP(p_comment);
45220 debugSerializationEnd("SgAsmStatement");
45221 }
45222#endif // ROSE_ENABLE_BOOST_SERIALIZATION
45223public:
45224public:
45234public:
45238 std::string const& get_comment() const;
45239 void set_comment(std::string const&);
45242public:
45245
45246protected:
45249
45250protected:
45253
45254protected:
45262#endif // SgAsmStatement_OTHERS
45263#ifdef DOCUMENTATION
45264};
45265#endif // DOCUMENTATION
45266
45267
45269// SgAsmAarch32Coprocessor -- MACHINE GENERATED; DO NOT MODIFY --
45271
45272DECLARE_LEAF_CLASS(AsmAarch32Coprocessor);
45273IS_SERIALIZABLE(AsmAarch32Coprocessor);
45274
45275#ifndef DOCUMENTATION
45276AsmAarch32Coprocessor.useSmallHeader(true);
45277#endif // !DOCUMENTATION
45278
45279#ifdef DOCUMENTATION
45282#endif // DOCUMENTATION
45283
45284 DECLARE_OTHERS(AsmAarch32Coprocessor);
45285#if defined(SgAsmAarch32Coprocessor_OTHERS) || defined(DOCUMENTATION)
45286
45287 //----------------------- Boost serialization for SgAsmAarch32Coprocessor -----------------------
45288#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
45289private:
45290 friend class boost::serialization::access;
45291
45292 template<class S>
45293 void serialize(S &s, const unsigned /*version*/) {
45294 debugSerializationBegin("SgAsmAarch32Coprocessor");
45295 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
45296 s & BOOST_SERIALIZATION_NVP(coprocessor_);
45297 debugSerializationEnd("SgAsmAarch32Coprocessor");
45298 }
45299#endif // ROSE_ENABLE_BOOST_SERIALIZATION
45300public:
45301private:
45302 int coprocessor_;
45303
45304public:
45308 int const& coprocessor() const;
45309 void coprocessor(int const&);
45312public:
45315
45316public:
45319
45320public:
45323
45324protected:
45332#endif // SgAsmAarch32Coprocessor_OTHERS
45333#ifdef DOCUMENTATION
45334};
45335#endif // DOCUMENTATION
45336
45337
45339// SgAsmExpression -- MACHINE GENERATED; DO NOT MODIFY --
45341
45342#ifndef DOCUMENTATION
45343AstNodeClass& AsmExpression = nonTerminalConstructor(
45344 "AsmExpression",
45345 *this,
45346 "AsmExpression",
45347 "AsmExpressionTag",
45348 SubclassListBuilder()
45349 | AsmAarch32Coprocessor
45350#ifdef ROSE_ENABLE_ASM_AARCH64
45351 | AsmAarch64AtOperand
45352#endif
45353#ifdef ROSE_ENABLE_ASM_AARCH64
45354 | AsmAarch64BarrierOperand
45355#endif
45356#ifdef ROSE_ENABLE_ASM_AARCH64
45357 | AsmAarch64CImmediateOperand
45358#endif
45359#ifdef ROSE_ENABLE_ASM_AARCH64
45360 | AsmAarch64PrefetchOperand
45361#endif
45362#ifdef ROSE_ENABLE_ASM_AARCH64
45363 | AsmAarch64PState
45364#endif
45365#ifdef ROSE_ENABLE_ASM_AARCH64
45366 | AsmAarch64SysMoveOperand
45367#endif
45368 | AsmBinaryExpression
45369 | AsmByteOrder
45370 | AsmCommonSubExpression
45371 | AsmControlFlagsExpression
45372 | AsmExprListExp
45373 | AsmMemoryReferenceExpression
45374 | AsmRegisterNames
45375 | AsmRegisterReferenceExpression
45376 | AsmRiscOperation
45377 | AsmStackExpression
45378 | AsmUnaryExpression
45379 | AsmValueExpression
45380 , false);
45381assert(AsmExpression.associatedGrammar != nullptr);
45382AsmExpression.setCppCondition("!defined(DOCUMENTATION)");
45383AsmExpression.isBoostSerializable(true);
45384AsmExpression.setAutomaticGenerationOfConstructor(false);
45385AsmExpression.setAutomaticGenerationOfDestructor(false);
45386#endif // !DOCUMENTATION
45387
45388#ifndef DOCUMENTATION
45389AsmExpression.useSmallHeader(true);
45390#endif // !DOCUMENTATION
45391
45392#ifdef DOCUMENTATION
45395#endif // DOCUMENTATION
45396
45397#ifndef DOCUMENTATION
45398 AsmExpression.setDataPrototype(
45399 "SgAsmType*", "type", "= nullptr",
45400 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
45401#endif // !DOCUMENTATION
45402
45403#ifndef DOCUMENTATION
45404 AsmExpression.setDataPrototype(
45405 "std::string", "comment", "",
45406 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
45407#endif // !DOCUMENTATION
45408
45409 DECLARE_OTHERS(AsmExpression);
45410#if defined(SgAsmExpression_OTHERS) || defined(DOCUMENTATION)
45411
45412 //----------------------- Boost serialization for SgAsmExpression -----------------------
45413#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
45414private:
45415 friend class boost::serialization::access;
45416
45417 template<class S>
45418 void serialize(S &s, const unsigned /*version*/) {
45419 debugSerializationBegin("SgAsmExpression");
45420 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
45421 s & BOOST_SERIALIZATION_NVP(p_type);
45422 s & BOOST_SERIALIZATION_NVP(p_comment);
45423 debugSerializationEnd("SgAsmExpression");
45424 }
45425#endif // ROSE_ENABLE_BOOST_SERIALIZATION
45426public:
45427public:
45433 SgAsmType* const& get_type() const;
45434 void set_type(SgAsmType* const&);
45437public:
45443 std::string const& get_comment() const;
45444 void set_comment(std::string const&);
45446public:
45450 size_t get_nBits() const;
45451
45457
45463
45473 virtual std::string toString() const;
45474public:
45477
45478protected:
45481
45482protected:
45490#endif // SgAsmExpression_OTHERS
45491#ifdef DOCUMENTATION
45492};
45493#endif // DOCUMENTATION
45494
45495
45497// SgAsmNode -- MACHINE GENERATED; DO NOT MODIFY --
45499
45500#ifndef DOCUMENTATION
45501AstNodeClass& AsmNode = nonTerminalConstructor(
45502 "AsmNode",
45503 *this,
45504 "AsmNode",
45505 "AsmNodeTag",
45506 SubclassListBuilder()
45507 | AsmCilNode
45508 | AsmExecutableFileFormat
45509 | AsmExpression
45510 | AsmGenericFileList
45511 | AsmInstructionList
45512 | AsmInterpretation
45513 | AsmInterpretationList
45514 | AsmJvmNode
45515 | AsmOperandList
45516 | AsmStatement
45517 | AsmType
45518 , false);
45519assert(AsmNode.associatedGrammar != nullptr);
45520AsmNode.setCppCondition("!defined(DOCUMENTATION)");
45521AsmNode.isBoostSerializable(true);
45522AsmNode.setAutomaticGenerationOfConstructor(false);
45523AsmNode.setAutomaticGenerationOfDestructor(false);
45524#endif // !DOCUMENTATION
45525
45526#ifndef DOCUMENTATION
45527AsmNode.useSmallHeader(true);
45528#endif // !DOCUMENTATION
45529
45530DECLARE_HEADERS(AsmNode);
45531#if defined(SgAsmNode_HEADERS) || defined(DOCUMENTATION)
45532#include <Sawyer/Attribute.h>
45533#include <boost/format.hpp>
45534#endif // SgAsmNode_HEADERS
45535
45536#ifdef DOCUMENTATION
45538class SgAsmNode: public SgNode {
45539#endif // DOCUMENTATION
45540
45541 DECLARE_OTHERS(AsmNode);
45542#if defined(SgAsmNode_OTHERS) || defined(DOCUMENTATION)
45543
45544 //----------------------- Boost serialization for SgAsmNode -----------------------
45545#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
45546private:
45547 friend class boost::serialization::access;
45548
45549 template<class S>
45550 void serialize(S &s, const unsigned /*version*/) {
45551 debugSerializationBegin("SgAsmNode");
45552 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgNode);
45553 debugSerializationEnd("SgAsmNode");
45554 }
45555#endif // ROSE_ENABLE_BOOST_SERIALIZATION
45556public:
45557private:
45558 Sawyer::Attribute::Storage<> attributes_;
45559
45560public:
45575public:
45577 virtual ~SgAsmNode();
45578
45579protected:
45582
45583protected:
45591#endif // SgAsmNode_OTHERS
45592#ifdef DOCUMENTATION
45593};
45594#endif // DOCUMENTATION
45595
45596#ifndef DOCUMENTATION
45597} // Grammar::setUpBinaryInstructions
45598#endif // !DOCUMENTATION
45599#endif // defined(ROSE_ENABLE_BINARY_ANALYSIS)
Encodes and decodes a buffer using an algorithm defined in subclasses.
A contiguous range of values.
Definition rangemap.h:50
Describes (part of) a physical CPU register.
Optionally bound relative virtual address.
Stores a vector of enum bit flags.
Base class for all ROSE exceptions.
Exception(const std::string &s)
Construct an exception with an error message.
API and storage for attributes.
Definition Attribute.h:215
Container associating values with keys.
Definition Sawyer/Map.h:72
Value & insertMaybe(const Key &key, const Value &value)
Conditionally insert a new key/value pair.
Definition Sawyer/Map.h:700
Collection of streams.
Definition Message.h:1606
Holds a value or nothing.
Definition Optional.h:54
Result containing a value or an error.
Definition Result.h:315
Operand referencing a Co-processor.
SgAsmAarch32Coprocessor()
Default constructor.
void coprocessor(int const &)
Property: Coprocessor number.
int const & coprocessor() const
Property: Coprocessor number.
SgAsmAarch32Coprocessor(int const &coprocessor)
Constructor.
virtual ~SgAsmAarch32Coprocessor()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
String associated with a binary file.
virtual ~SgAsmBasicString()
Destructor.
virtual std::string get_string(bool escape=false) const override
Property: String value.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void set_string(const std::string &) override
Property: String value.
SgAsmBasicString(const std::string &)
Constructor that gives a value to the object.
SgAsmBasicString()
Default constructor.
virtual void set_string(Rose::BinaryAnalysis::Address) override
Property: String value.
SgAsmBasicString(const char *)
Constructor that gives a value to the object.
Expression that adds two operands.
SgAsmBinaryAdd()
Default constructor.
virtual ~SgAsmBinaryAdd()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmBinaryAdd(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
Expression that performs an arithmetic, sign-bit preserving right shift.
SgAsmBinaryAsr(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
SgAsmBinaryAsr()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmBinaryAsr()
Destructor.
Expression that concatenates two values to form a wider value.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmBinaryConcat(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
SgAsmBinaryConcat()
Default constructor.
virtual ~SgAsmBinaryConcat()
Destructor.
Expression that divides the first operand by the second.
SgAsmBinaryDivide()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmBinaryDivide(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
virtual ~SgAsmBinaryDivide()
Destructor.
Base class for binary expressions.
void set_rhs(SgAsmExpression *const &)
Property: Right-hand side operand.
SgAsmExpression *const & get_lhs() const
Property: Left-hand side operand.
SgAsmExpression *const & get_rhs() const
Property: Right-hand side operand.
SgAsmBinaryExpression(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
SgAsmBinaryExpression()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_lhs(SgAsmExpression *const &)
Property: Left-hand side operand.
virtual ~SgAsmBinaryExpression()
Destructor.
Expression that performs a logical left shift operation.
SgAsmBinaryLsl(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
SgAsmBinaryLsl()
Default constructor.
virtual ~SgAsmBinaryLsl()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Expression that performs a logical, sign-bit non-preserving right shift.
SgAsmBinaryLsr(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmBinaryLsr()
Default constructor.
virtual ~SgAsmBinaryLsr()
Destructor.
Expression that returns the remainder when dividing the first operand by the second.
SgAsmBinaryMod()
Default constructor.
SgAsmBinaryMod(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmBinaryMod()
Destructor.
Expression that performs a logical left shift operation filling low-order bits with one.
SgAsmBinaryMsl()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmBinaryMsl()
Destructor.
SgAsmBinaryMsl(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
Expression that multiplies two operands.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmBinaryMultiply()
Default constructor.
virtual ~SgAsmBinaryMultiply()
Destructor.
SgAsmBinaryMultiply(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
Expression that represents an update to a storage location.
virtual ~SgAsmBinaryPostupdate()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmBinaryPostupdate()
Default constructor.
SgAsmBinaryPostupdate(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
Expression that represents an update to a storage location.
SgAsmBinaryPreupdate()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmBinaryPreupdate()
Destructor.
SgAsmBinaryPreupdate(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
Expression that performs a right rotate.
SgAsmBinaryRor()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmBinaryRor(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
virtual ~SgAsmBinaryRor()
Destructor.
Expression that subtracts the second operand from the first.
virtual ~SgAsmBinarySubtract()
Destructor.
SgAsmBinarySubtract()
Default constructor.
SgAsmBinarySubtract(SgAsmExpression *const &lhs, SgAsmExpression *const &rhs)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Instruction basic block.
void set_id(Rose::BinaryAnalysis::Address const &)
Property: Identification.
void set_statementList(SgAsmStatementPtrList const &)
Property: Statements of which this block is composed.
int64_t const & get_stackDeltaOut() const
Property: Stack pointer at block exit w.r.t.
void set_cachedVertex(size_t const &)
Property: Cached vertex for control flow graphs.
Rose::BinaryAnalysis::Address const & get_id() const
Property: Identification.
SgAsmIntegerValuePtrList & get_successors()
Property: Control flow successors.
void set_immediateDominator(SgAsmBlock *const &)
Property: Holds the immediate dominator block in the control flow graph.
bool const & get_successorsComplete() const
Property: Whether the successors list is complete.
SgAsmIntegerValuePtrList const & get_successors() const
Property: Control flow successors.
void set_successorsComplete(bool const &)
Property: Whether the successors list is complete.
void removeStatement(SgAsmStatement *)
Erase the specified statement.
void initializeProperties()
Initialize all properties that have explicit initial values.
Rose::BinaryAnalysis::Address get_fallthroughVa()
Fall-through virtual address.
void set_stackDeltaOut(int64_t const &)
Property: Stack pointer at block exit w.r.t.
std::string reasonString(bool pad) const
Returns reason string for this block.
void appendStatement(SgAsmStatement *)
Add the specified statement to the end of the statement list.
unsigned const & get_reason() const
Property: Reasons this block was created.
Reason
Reasons why a basic block might have been assigned to a function.
@ BLK_FINDDATA
Added by Partitioner::FindData, which attaches unassigned parts of the disassembly address space to t...
@ BLK_PADDING
Block is used for padding.
@ BLK_JUMPTABLE
Table of code addresses used by indirect branches.
@ BLK_FRAGMENT
This block created because it seems to belong to the function although CFG traversal did not find it.
@ BLK_GRAPH3
Block was added by a third pass of CFG analysis.
@ BLK_LEFTOVERS
Block is being assigned to a FUNC_LEFTOVERS function because it could not be assigned to any other fu...
@ BLK_POSTFUNC
Added by Partitioner::FindPostFunctionInsns, which adds unassigned instructions to the immediately pr...
@ BLK_USERDEF
User says block belongs to the function.
@ BLK_GRAPH2
Block was added by a second pass of CFG analysis.
@ BLK_NONE
No particular reason.
@ BLK_MISCMASK
Miscellaneous reasons go here.
@ BLK_ENTRY_POINT
Block is an entry point for the function.
@ BLK_GRAPH1
Block was added by the main CFG analysis.
@ BLK_CFGHEAD
Block serves as an explicit starting point for CFG analysis.
SgAsmStatementPtrList const & get_statementList() const
Property: Statements of which this block is composed.
static std::string reasonKey(const std::string &prefix="")
Multi-line string describing the letters used for basic block reasons.
static std::string reasonString(bool pad, unsigned reason)
Converts a reason bit vector to a human-friendly string.
double const & get_codeLikelihood() const
Property: Likelihood that this block represents real instructions.
SgAsmStatementPtrList & get_statementList()
Property: Statements of which this block is composed.
void removeChildren()
Removes all statements from the block.
void set_reason(unsigned const &)
Property: Reasons this block was created.
bool hasInstructions() const
Determins if a block contains instructions.
SgAsmFunction * get_enclosingFunction() const
Returns the function that owns this block.
void set_codeLikelihood(double const &)
Property: Likelihood that this block represents real instructions.
SgAsmBlock *const & get_immediateDominator() const
Property: Holds the immediate dominator block in the control flow graph.
bool isFunctionCall(Rose::BinaryAnalysis::Address &target_va, Rose::BinaryAnalysis::Address &return_va)
Returns true if basic block appears to be a function call.
void set_successors(SgAsmIntegerValuePtrList const &)
Property: Control flow successors.
size_t const & get_cachedVertex() const
Property: Cached vertex for control flow graphs.
bool isBasicBlock() const
Determine if a block contains instructions.
Byte order specification.
void byteOrder(Rose::BinaryAnalysis::ByteOrder::Endianness const &)
Property: Byte order.
virtual ~SgAsmByteOrder()
Destructor.
Rose::BinaryAnalysis::ByteOrder::Endianness const & byteOrder() const
Property: Byte order.
SgAsmByteOrder(Rose::BinaryAnalysis::ByteOrder::Endianness const &byteOrder)
Constructor.
SgAsmByteOrder()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL AssemblyOS tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilAssemblyOSTable()
Default constructor.
virtual ~SgAsmCilAssemblyOSTable()
Destructor.
CIL AssemblyOS node (II.22.3).
SgAsmCilAssemblyOS()
Default constructor.
uint32_t const & get_OSMajorVersion() const
Property: OSMajorVersion.
virtual ~SgAsmCilAssemblyOS()
Destructor.
uint32_t const & get_OSMinorVersion() const
Property: OSMinorVersion.
void set_OSMinorVersion(uint32_t const &)
Property: OSMinorVersion.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_OSPlatformID(uint32_t const &)
Property: OSPlatformID.
void set_OSMajorVersion(uint32_t const &)
Property: OSMajorVersion.
uint32_t const & get_OSPlatformID() const
Property: OSPlatformID.
CIL AssemblyProcessor tables.
virtual ~SgAsmCilAssemblyProcessorTable()
Destructor.
SgAsmCilAssemblyProcessorTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL AssemblyProcessor node (II.22.4).
SgAsmCilAssemblyProcessor()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilAssemblyProcessor()
Destructor.
void set_Processor(uint32_t const &)
Property: Processor.
uint32_t const & get_Processor() const
Property: Processor.
CIL AssemblyRefOS tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilAssemblyRefOSTable()
Destructor.
SgAsmCilAssemblyRefOSTable()
Default constructor.
CIL AssemblyRefOS node (II.22.6).
void set_OSMinorVersion(uint32_t const &)
Property: OSMinorVersion.
virtual ~SgAsmCilAssemblyRefOS()
Destructor.
uint32_t const & get_AssemblyRefOS() const
Property: AssemblyRefOS.
uint32_t const & get_OSPlatformID() const
Property: OSPlatformID.
void set_OSMajorVersion(uint32_t const &)
Property: OSMajorVersion.
void set_OSPlatformID(uint32_t const &)
Property: OSPlatformID.
SgAsmCilAssemblyRefOS()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_OSMajorVersion() const
Property: OSMajorVersion.
uint32_t const & get_OSMinorVersion() const
Property: OSMinorVersion.
void set_AssemblyRefOS(uint32_t const &)
Property: AssemblyRefOS.
CIL AssemblyRefProcessor tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilAssemblyRefProcessorTable()
Default constructor.
virtual ~SgAsmCilAssemblyRefProcessorTable()
Destructor.
CIL AssemblyRefProcessor node (II.22.7).
virtual ~SgAsmCilAssemblyRefProcessor()
Destructor.
void set_AssemblyRef(uint32_t const &)
Property: AssemblyRef.
SgAsmCilAssemblyRefProcessor()
Default constructor.
uint32_t const & get_AssemblyRef() const
Property: AssemblyRef.
void set_Processor(uint32_t const &)
Property: Processor.
uint32_t const & get_Processor() const
Property: Processor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL AssemblyRef tables.
virtual ~SgAsmCilAssemblyRefTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilAssemblyRefTable()
Default constructor.
CIL AssemblyRef node (II.22.5).
uint32_t const & get_PublicKeyOrToken() const
Property: PublicKeyOrToken.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_BuildNumber(uint16_t const &)
Property: BuildNumber.
void set_Name(uint32_t const &)
Property: Name.
uint32_t const & get_Name() const
Property: Name.
uint16_t const & get_MinorVersion() const
Property: MinorVersion.
uint16_t const & get_MajorVersion() const
Property: MajorVersion.
uint32_t const & get_Flags() const
Property: Flags.
void set_Flags(uint32_t const &)
Property: Flags.
uint16_t const & get_BuildNumber() const
Property: BuildNumber.
void set_HashValue(uint32_t const &)
Property: HashValue.
SgAsmCilAssemblyRef()
Default constructor.
uint32_t const & get_Culture() const
Property: Culture.
uint32_t const & get_HashValue() const
Property: HashValue.
uint16_t const & get_RevisionNumber() const
Property: RevisionNumber.
void set_RevisionNumber(uint16_t const &)
Property: RevisionNumber.
virtual ~SgAsmCilAssemblyRef()
Destructor.
void set_Culture(uint32_t const &)
Property: Culture.
void set_MinorVersion(uint16_t const &)
Property: MinorVersion.
void set_PublicKeyOrToken(uint32_t const &)
Property: PublicKeyOrToken.
void set_MajorVersion(uint16_t const &)
Property: MajorVersion.
CIL Assembly tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilAssemblyTable()
Default constructor.
virtual ~SgAsmCilAssemblyTable()
Destructor.
CIL Assembly node (II.22.2).
void set_Name(uint32_t const &)
Property: Name.
uint16_t const & get_MajorVersion() const
Property: MajorVersion.
uint32_t const & get_Name() const
Property: Name.
uint32_t const & get_Culture() const
Property: Culture.
uint32_t const & get_HashAlgId() const
Property: HashAlgId.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilAssembly()
Destructor.
void set_RevisionNumber(uint16_t const &)
Property: RevisionNumber.
uint32_t const & get_Flags() const
Property: Flags.
void set_MajorVersion(uint16_t const &)
Property: MajorVersion.
void set_Culture(uint32_t const &)
Property: Culture.
SgAsmCilAssembly()
Default constructor.
void set_Flags(uint32_t const &)
Property: Flags.
uint16_t const & get_MinorVersion() const
Property: MinorVersion.
void set_HashAlgId(uint32_t const &)
Property: HashAlgId.
uint16_t const & get_RevisionNumber() const
Property: RevisionNumber.
uint16_t const & get_BuildNumber() const
Property: BuildNumber.
void set_MinorVersion(uint16_t const &)
Property: MinorVersion.
void set_PublicKey(uint32_t const &)
Property: PublicKey.
void set_BuildNumber(uint16_t const &)
Property: BuildNumber.
uint32_t const & get_PublicKey() const
Property: PublicKey.
CIL ClassLayout tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilClassLayoutTable()
Destructor.
SgAsmCilClassLayoutTable()
Default constructor.
CIL ClassLayout node (II.22.8).
void set_ClassSize(uint32_t const &)
Property: ClassSize.
uint16_t const & get_PackingSize() const
Property: PackingSize.
virtual ~SgAsmCilClassLayout()
Destructor.
uint32_t const & get_Parent() const
Property: Parent.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_Parent(uint32_t const &)
Property: Parent.
void set_PackingSize(uint16_t const &)
Property: PackingSize.
SgAsmCilClassLayout()
Default constructor.
uint32_t const & get_ClassSize() const
Property: ClassSize.
CIL Constant tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilConstantTable()
Destructor.
SgAsmCilConstantTable()
Default constructor.
CIL Constant node (II.22.9).
uint8_t const & get_Padding() const
Property: Padding.
void set_Padding(uint8_t const &)
Property: Padding.
SgAsmCilConstant()
Default constructor.
void set_Parent(uint32_t const &)
Property: Parent.
uint32_t const & get_Parent() const
Property: Parent.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint8_t const & get_Type() const
Property: Type.
virtual ~SgAsmCilConstant()
Destructor.
void set_Type(uint8_t const &)
Property: Type.
void set_Value(uint32_t const &)
Property: Value.
uint32_t const & get_Value() const
Property: Value.
CIL CustomAttribute tables.
SgAsmCilCustomAttributeTable()
Default constructor.
virtual ~SgAsmCilCustomAttributeTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL CustomAttribute node (II.22.10).
virtual ~SgAsmCilCustomAttribute()
Destructor.
uint32_t const & get_Parent() const
Property: Parent.
uint32_t const & get_Value() const
Property: Value.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_Value(uint32_t const &)
Property: Value.
SgAsmCilCustomAttribute()
Default constructor.
void set_Type(uint32_t const &)
Property: Type.
void set_Parent(uint32_t const &)
Property: Parent.
uint32_t const & get_Type() const
Property: Type.
Base class for CIL branch of binary analysis IR nodes.
virtual void dump(std::ostream &os) const
Prints the object's data in a human readable form.
virtual ~SgAsmCilDataStream()
Destructor.
void set_Offset(uint32_t const &)
Property: Start offset of the byte stream.
virtual void parse(const std::vector< uint8_t > &buf, size_t startOfMetaData)
}@
static const std::string ID_STRING_HEAP
Define constant strings for the known stream types.
void set_Name(std::string const &)
Property: Name of the byte stream.
static const std::string ID_BLOB_HEAP
Define constant strings for the known stream types.
SgAsmCilDataStream(uint32_t const &Offset, uint32_t const &Size, std::string const &Name, uint32_t const &NamePadding)
Constructor.
virtual void unparse(std::vector< uint8_t > &buf, size_t startOfMetaData) const
Unparses the metadata objects into the buffer.
std::string const & get_Name() const
Property: Name of the byte stream.
void initializeProperties()
Initialize all properties that have explicit initial values.
static const std::string ID_US_HEAP
Define constant strings for the known stream types.
void set_NamePadding(uint32_t const &)
Property: Name of the byte stream.
SgAsmCilDataStream()
Default constructor.
void set_Size(uint32_t const &)
Property: Length of the byte stream.
static const std::string ID_GUID_HEAP
Define constant strings for the known stream types.
uint32_t const & get_Offset() const
Property: Start offset of the byte stream.
uint32_t const & get_NamePadding() const
Property: Name of the byte stream.
uint32_t const & get_Size() const
Property: Length of the byte stream.
static const std::string ID_METADATA_HEAP
Define constant strings for the known stream types.
CIL DeclSecurity tables.
virtual ~SgAsmCilDeclSecurityTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilDeclSecurityTable()
Default constructor.
CIL DeclSecurity node (II.22.11).
void set_Parent(uint32_t const &)
Property: Parent.
uint32_t const & get_PermissionSet() const
Property: PermissionSet.
uint16_t const & get_Action() const
Property: Action.
uint32_t const & get_Parent() const
Property: Parent.
void set_PermissionSet(uint32_t const &)
Property: PermissionSet.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilDeclSecurity()
Default constructor.
virtual ~SgAsmCilDeclSecurity()
Destructor.
void set_Action(uint16_t const &)
Property: Action.
Base class for CIL branch of binary analysis IR nodes.
SgAsmCilErrorHeap(uint32_t const &Offset, uint32_t const &Size, std::string const &Name, uint32_t const &NamePadding)
Constructor.
void dump(std::ostream &os) const override
Prints the object's data in a human readable form.
void parse(const std::vector< uint8_t > &buf, size_t startOfMetaData) override
}@
virtual ~SgAsmCilErrorHeap()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void unparse(std::vector< uint8_t > &buf, size_t startOfMetaData) const override
Unparses the metadata objects into the buffer.
SgAsmCilErrorHeap()
Default constructor.
CIL EventMap tables.
virtual ~SgAsmCilEventMapTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilEventMapTable()
Default constructor.
CIL EventMap node (II.22.12).
void set_EventList(uint32_t const &)
Property: EventList.
void set_Parent(uint32_t const &)
Property: Parent.
uint32_t const & get_Parent() const
Property: Parent.
virtual ~SgAsmCilEventMap()
Destructor.
SgAsmCilEventMap()
Default constructor.
uint32_t const & get_EventList() const
Property: EventList.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilEventTable()
Destructor.
SgAsmCilEventTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL Event node (II.22.13).
uint32_t const & get_EventType() const
Property: EventType.
uint32_t const & get_Name() const
Property: Name.
virtual ~SgAsmCilEvent()
Destructor.
void set_EventFlags(uint16_t const &)
Property: EventFlags.
SgAsmCilEvent()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_Name(uint32_t const &)
Property: Name.
uint16_t const & get_EventFlags() const
Property: EventFlags.
void set_EventType(uint32_t const &)
Property: EventType.
Property class representing CIL Exception clauses (II.25.4.6).
SgAsmCilExceptionData()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilExceptionData()
Destructor.
bool isFault() const
Convenience functions to query the flags property.
bool isFilter() const
Convenience functions to query the flags property.
bool isException() const
Convenience functions to query the flags property.
bool isFinally() const
Convenience functions to query the flags property.
CIL ExportedType tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilExportedTypeTable()
Destructor.
SgAsmCilExportedTypeTable()
Default constructor.
CIL ExportedType node (II.22.14).
void set_Implementation(uint32_t const &)
Property: Implementation.
SgAsmCilExportedType()
Default constructor.
void set_TypeNamespace(uint32_t const &)
Property: TypeNamespace.
virtual ~SgAsmCilExportedType()
Destructor.
uint32_t const & get_TypeName() const
Property: TypeName.
uint32_t const & get_Implementation() const
Property: Implementation.
void set_TypeName(uint32_t const &)
Property: TypeName.
void set_EventFlags(uint32_t const &)
Property: EventFlags.
uint32_t const & get_EventFlags() const
Property: EventFlags.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_TypeDefIdName() const
Property: TypeDefIdName.
uint32_t const & get_TypeNamespace() const
Property: TypeNamespace.
void set_TypeDefIdName(uint32_t const &)
Property: TypeDefIdName.
CIL FieldLayout tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilFieldLayoutTable()
Destructor.
SgAsmCilFieldLayoutTable()
Default constructor.
CIL FieldLayout node (II.22.16).
virtual ~SgAsmCilFieldLayout()
Destructor.
void set_Field(uint32_t const &)
Property: Field.
uint32_t const & get_Offset() const
Property: Offset.
SgAsmCilFieldLayout()
Default constructor.
void set_Offset(uint32_t const &)
Property: Offset.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_Field() const
Property: Field.
CIL FieldMarshal tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilFieldMarshalTable()
Destructor.
SgAsmCilFieldMarshalTable()
Default constructor.
CIL FieldMarshal node (II.22.17).
virtual ~SgAsmCilFieldMarshal()
Destructor.
uint32_t const & get_NativeType() const
Property: NativeType.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_Parent() const
Property: Parent.
void set_NativeType(uint32_t const &)
Property: NativeType.
void set_Parent(uint32_t const &)
Property: Parent.
SgAsmCilFieldMarshal()
Default constructor.
CIL FieldRVA tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilFieldRVATable()
Default constructor.
virtual ~SgAsmCilFieldRVATable()
Destructor.
CIL FieldRVA node (II.22.18).
virtual ~SgAsmCilFieldRVA()
Destructor.
void set_RVA(uint32_t const &)
Property: RVA.
void set_Field(uint32_t const &)
Property: Field.
uint32_t const & get_RVA() const
Property: RVA.
uint32_t const & get_Field() const
Property: Field.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilFieldRVA()
Default constructor.
virtual ~SgAsmCilFieldTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilFieldTable()
Default constructor.
CIL Field node (II.22.15).
void set_Signature(uint32_t const &)
Property: Signature.
void set_Name(uint32_t const &)
Property: Name.
void set_Flags(uint16_t const &)
Property: Flags.
uint16_t const & get_Flags() const
Property: Flags.
SgAsmCilField()
Default constructor.
virtual ~SgAsmCilField()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_Name() const
Property: Name.
uint32_t const & get_Signature() const
Property: Signature.
virtual ~SgAsmCilFileTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilFileTable()
Default constructor.
CIL File node (II.22.19).
void set_HashValue(uint32_t const &)
Property: HashValue.
SgAsmCilFile()
Default constructor.
uint32_t const & get_HashValue() const
Property: HashValue.
void set_Name(uint32_t const &)
Property: Name.
uint32_t const & get_Flags() const
Property: Flags.
uint32_t const & get_Name() const
Property: Name.
virtual ~SgAsmCilFile()
Destructor.
void set_Flags(uint32_t const &)
Property: Flags.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL GenericParamConstraint tables.
virtual ~SgAsmCilGenericParamConstraintTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilGenericParamConstraintTable()
Default constructor.
CIL GenericParamConstraint node (II.22.21).
uint32_t const & get_Owner() const
Property: Owner.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilGenericParamConstraint()
Destructor.
SgAsmCilGenericParamConstraint()
Default constructor.
void set_Owner(uint32_t const &)
Property: Owner.
uint32_t const & get_Constraint() const
Property: Constraint.
void set_Constraint(uint32_t const &)
Property: Constraint.
CIL GenericParam tables.
SgAsmCilGenericParamTable()
Default constructor.
virtual ~SgAsmCilGenericParamTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL GenericParam node (II.22.20).
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_Owner() const
Property: Owner.
void set_Owner(uint32_t const &)
Property: Owner.
virtual ~SgAsmCilGenericParam()
Destructor.
void set_Number(uint16_t const &)
Property: Number.
uint16_t const & get_Flags() const
Property: Flags.
uint32_t const & get_Name() const
Property: Name.
uint16_t const & get_Number() const
Property: Number.
void set_Name(uint32_t const &)
Property: Name.
SgAsmCilGenericParam()
Default constructor.
void set_Flags(uint16_t const &)
Property: Flags.
CIL ImplMap tables.
SgAsmCilImplMapTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilImplMapTable()
Destructor.
CIL ImplMap node (II.22.22).
virtual ~SgAsmCilImplMap()
Destructor.
void set_ImportScope(uint32_t const &)
Property: ImportScope.
uint32_t const & get_ImportName() const
Property: ImportName.
uint32_t const & get_ImportScope() const
Property: ImportScope.
uint16_t const & get_MappingFlags() const
Property: MappingFlags.
void set_MemberForwarded(uint32_t const &)
Property: MemberForwarded.
void set_ImportName(uint32_t const &)
Property: ImportName.
uint32_t const & get_MemberForwarded() const
Property: MemberForwarded.
void set_MappingFlags(uint16_t const &)
Property: MappingFlags.
SgAsmCilImplMap()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilInstruction()
Default constructor.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
SgAsmCilInstruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::CilInstructionKind const &kind)
Constructor.
virtual ~SgAsmCilInstruction()
Destructor.
void set_kind(Rose::BinaryAnalysis::CilInstructionKind const &)
Property: Instruction kind.
Rose::BinaryAnalysis::CilInstructionKind const & get_kind() const
Property: Instruction kind.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL InterfaceImpl tables.
SgAsmCilInterfaceImplTable()
Default constructor.
virtual ~SgAsmCilInterfaceImplTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL InterfaceImpl node (II.22.23).
SgAsmCilInterfaceImpl()
Default constructor.
virtual ~SgAsmCilInterfaceImpl()
Destructor.
void set_Interface(uint32_t const &)
Property: Interface.
void set_Class(uint32_t const &)
Property: Class.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_Interface() const
Property: Interface.
uint32_t const & get_Class() const
Property: Class.
CIL ManifestResource tables.
virtual ~SgAsmCilManifestResourceTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilManifestResourceTable()
Default constructor.
CIL ManifestResource node (II.22.24).
uint32_t const & get_Implementation() const
Property: Implementation.
void set_Flags(uint32_t const &)
Property: Flags.
SgAsmCilManifestResource()
Default constructor.
uint32_t const & get_Name() const
Property: Name.
void set_Implementation(uint32_t const &)
Property: Implementation.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_Offset(uint32_t const &)
Property: Offset.
uint32_t const & get_Flags() const
Property: Flags.
virtual ~SgAsmCilManifestResource()
Destructor.
uint32_t const & get_Offset() const
Property: Offset.
void set_Name(uint32_t const &)
Property: Name.
CIL MemberRef tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilMemberRefTable()
Destructor.
SgAsmCilMemberRefTable()
Default constructor.
CIL MemberRef node (II.22.25).
uint32_t const & get_Name() const
Property: Name.
void set_Signature(uint32_t const &)
Property: Signature.
void set_Name(uint32_t const &)
Property: Name.
virtual ~SgAsmCilMemberRef()
Destructor.
uint32_t const & get_Class() const
Property: Class.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_Class(uint32_t const &)
Property: Class.
uint32_t const & get_Signature() const
Property: Signature.
SgAsmCilMemberRef()
Default constructor.
CIL SgAsmCilMetadataHeap node.
SgAsmCilMethodImplTable *const & get_MethodImplTable() const
Property: MethodImplTable.
SgAsmCilStandAloneSigTable *const & get_StandAloneSigTable() const
Property: StandAloneSigTable.
SgAsmCilTypeDefTable *const & get_TypeDefTable() const
Property: TypeDefTable.
void set_PropertyTable(SgAsmCilPropertyTable *const &)
Property: PropertyTable.
SgAsmCilAssemblyOSTable *const & get_AssemblyOSTable() const
Property: AssemblyOSTable.
void set_EventTable(SgAsmCilEventTable *const &)
Property: EventTable.
ReferenceKind
reference kinds in the metadata tables
void unparse(std::vector< uint8_t > &buf, size_t startOfMetaData) const override
unparses the metadata objects into the buffer
SgAsmCilMethodDefTable *const & get_MethodDefTable() const
Property: MethodDefTable.
void set_CustomAttributeTable(SgAsmCilCustomAttributeTable *const &)
Property: CustomAttributeTable.
SgAsmCilInterfaceImplTable *const & get_InterfaceImplTable() const
Property: InterfaceImplTable.
void set_ModuleTable(SgAsmCilModuleTable *const &)
Property: ModuleTable.
void set_AssemblyOSTable(SgAsmCilAssemblyOSTable *const &)
Property: AssemblyOSTable.
void set_AssemblyRefOSTable(SgAsmCilAssemblyRefOSTable *const &)
Property: AssemblyRefOSTable.
SgAsmCilModuleTable *const & get_ModuleTable() const
Property: ModuleTable.
void set_InterfaceImplTable(SgAsmCilInterfaceImplTable *const &)
Property: InterfaceImplTable.
std::vector< uint32_t > const & get_NumberOfRows() const
Property: A vector indicating how many rows the present tables contain.
SgAsmCilImplMapTable *const & get_ImplMapTable() const
Property: ImplMapTable.
SgAsmCilPropertyMapTable *const & get_PropertyMapTable() const
Property: PropertyMapTable.
void set_TypeDefTable(SgAsmCilTypeDefTable *const &)
Property: TypeDefTable.
SgAsmCilFieldRVATable *const & get_FieldRVATable() const
Property: FieldRVATable.
void set_ConstantTable(SgAsmCilConstantTable *const &)
Property: ConstantTable.
SgAsmCilGenericParamConstraintTable *const & get_GenericParamConstraintTable() const
Property: GenericParamConstraintTable.
SgAsmCilAssemblyRefProcessorTable *const & get_AssemblyRefProcessorTable() const
Property: AssemblyRefProcessorTable.
void set_NestedClassTable(SgAsmCilNestedClassTable *const &)
Property: NestedClassTable.
void set_TypeRefTable(SgAsmCilTypeRefTable *const &)
Property: TypeRefTable.
void set_ReservedAlwaysOne(uint8_t const &)
Property: A 1-byte constant.
void set_ClassLayoutTable(SgAsmCilClassLayoutTable *const &)
Property: ClassLayoutTable.
SgAsmCilParamTable *const & get_ParamTable() const
Property: ParamTable.
SgAsmCilFieldTable *const & get_FieldTable() const
Property: FieldTable.
SgAsmCilFileTable *const & get_FileTable() const
Property: FileTable.
void set_FieldMarshalTable(SgAsmCilFieldMarshalTable *const &)
Property: FieldMarshalTable.
void set_MemberRefTable(SgAsmCilMemberRefTable *const &)
Property: MemberRefTable.
void parse(const std::vector< uint8_t > &buf, size_t startOfMetaData) override
parses the metadata objects from the buffer.
void set_NumberOfRows(std::vector< uint32_t > const &)
Property: A vector indicating how many rows the present tables contain.
uint8_t const & get_HeapSizes() const
Property: A 1-byte constant indicating the index sizes of streams.
void set_ParamTable(SgAsmCilParamTable *const &)
Property: ParamTable.
SgAsmCilAssemblyTable *const & get_AssemblyTable() const
Property: AssemblyTable.
void set_GenericParamTable(SgAsmCilGenericParamTable *const &)
Property: GenericParamTable.
void set_AssemblyRefTable(SgAsmCilAssemblyRefTable *const &)
Property: AssemblyRefTable.
SgAsmCilEventMapTable *const & get_EventMapTable() const
Property: EventMapTable.
void set_FieldTable(SgAsmCilFieldTable *const &)
Property: FieldTable.
SgAsmCilDeclSecurityTable *const & get_DeclSecurityTable() const
Property: DeclSecurityTable.
SgAsmCilTypeRefTable *const & get_TypeRefTable() const
Property: TypeRefTable.
void set_FileTable(SgAsmCilFileTable *const &)
Property: FileTable.
SgAsmCilMetadataHeap(uint32_t const &Offset, uint32_t const &Size, std::string const &Name, uint32_t const &NamePadding)
Constructor.
SgAsmCilModuleRefTable *const & get_ModuleRefTable() const
Property: ModuleRefTable.
SgAsmCilMethodSemanticsTable *const & get_MethodSemanticsTable() const
Property: MethodSemanticsTable.
SgAsmCilCustomAttributeTable *const & get_CustomAttributeTable() const
Property: CustomAttributeTable.
SgAsmCilMetadata * get_MetadataNode(std::uint32_t idx, TableKind tblcode) const
Look up node by index.
void set_ImplMapTable(SgAsmCilImplMapTable *const &)
Property: ImplMapTable.
void dump(std::ostream &os) const override
Prints the object's data in a human readable form.
void set_DataSizeFlags(uint64_t const &)
Property: precomputed flags that determine whether a metadata reference is stored as 2 or 4 byte valu...
void set_GenericParamConstraintTable(SgAsmCilGenericParamConstraintTable *const &)
Property: GenericParamConstraintTable.
SgAsmCilMetadata * get_CodedMetadataNode(std::uint32_t refcode, ReferenceKind knd) const
Look up node by index.
void set_DeclSecurityTable(SgAsmCilDeclSecurityTable *const &)
Property: DeclSecurityTable.
void set_FieldLayoutTable(SgAsmCilFieldLayoutTable *const &)
Property: FieldLayoutTable.
void set_MethodSpecTable(SgAsmCilMethodSpecTable *const &)
Property: MethodSpecTable.
virtual ~SgAsmCilMetadataHeap()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilMethodSpecTable *const & get_MethodSpecTable() const
Property: MethodSpecTable.
SgAsmCilConstantTable *const & get_ConstantTable() const
Property: ConstantTable.
SgAsmCilTypeSpecTable *const & get_TypeSpecTable() const
Property: TypeSpecTable.
void set_Sorted(uint64_t const &)
Property: A 4-byte value.
SgAsmCilExportedTypeTable *const & get_ExportedTypeTable() const
Property: ExportedTypeTable.
void set_ReservedAlwaysZero(uint32_t const &)
Property: 4 reserved bytes.
void set_ExportedTypeTable(SgAsmCilExportedTypeTable *const &)
Property: ExportedTypeTable.
void set_MethodImplTable(SgAsmCilMethodImplTable *const &)
Property: MethodImplTable.
void set_StandAloneSigTable(SgAsmCilStandAloneSigTable *const &)
Property: StandAloneSigTable.
SgAsmCilEventTable *const & get_EventTable() const
Property: EventTable.
SgAsmCilAssemblyProcessorTable *const & get_AssemblyProcessorTable() const
Property: AssemblyProcessorTable.
SgAsmCilAssemblyRefOSTable *const & get_AssemblyRefOSTable() const
Property: AssemblyRefOSTable.
uint64_t const & get_DataSizeFlags() const
Property: precomputed flags that determine whether a metadata reference is stored as 2 or 4 byte valu...
void set_MethodDefTable(SgAsmCilMethodDefTable *const &)
Property: MethodDefTable.
void set_Valid(uint64_t const &)
Property: A 4-byte value indicating which metadata tables are present.
uint32_t const & get_ReservedAlwaysZero() const
Property: 4 reserved bytes.
SgAsmCilAssemblyRefTable *const & get_AssemblyRefTable() const
Property: AssemblyRefTable.
void set_HeapSizes(uint8_t const &)
Property: A 1-byte constant indicating the index sizes of streams.
void set_FieldRVATable(SgAsmCilFieldRVATable *const &)
Property: FieldRVATable.
void set_AssemblyProcessorTable(SgAsmCilAssemblyProcessorTable *const &)
Property: AssemblyProcessorTable.
void set_AssemblyTable(SgAsmCilAssemblyTable *const &)
Property: AssemblyTable.
SgAsmCilFieldMarshalTable *const & get_FieldMarshalTable() const
Property: FieldMarshalTable.
SgAsmCilManifestResourceTable *const & get_ManifestResourceTable() const
Property: ManifestResourceTable.
SgAsmCilNestedClassTable *const & get_NestedClassTable() const
Property: NestedClassTable.
SgAsmCilPropertyTable *const & get_PropertyTable() const
Property: PropertyTable.
void set_ModuleRefTable(SgAsmCilModuleRefTable *const &)
Property: ModuleRefTable.
uint8_t const & get_MajorVersion() const
Property: A 1-byte constant.
void set_TypeSpecTable(SgAsmCilTypeSpecTable *const &)
Property: TypeSpecTable.
uint64_t const & get_Valid() const
Property: A 4-byte value indicating which metadata tables are present.
void set_MethodSemanticsTable(SgAsmCilMethodSemanticsTable *const &)
Property: MethodSemanticsTable.
void set_MinorVersion(uint8_t const &)
Property: A 1-byte constant.
SgAsmCilMetadata * get_MetadataNode(std::uint32_t refcode, ReferenceKind knd) const
Look up node by index.
uint8_t const & get_MinorVersion() const
Property: A 1-byte constant.
SgAsmCilClassLayoutTable *const & get_ClassLayoutTable() const
Property: ClassLayoutTable.
SgAsmCilGenericParamTable *const & get_GenericParamTable() const
Property: GenericParamTable.
SgAsmCilMetadataHeap()
Default constructor.
uint64_t const & get_Sorted() const
Property: A 4-byte value.
void set_AssemblyRefProcessorTable(SgAsmCilAssemblyRefProcessorTable *const &)
Property: AssemblyRefProcessorTable.
void set_ManifestResourceTable(SgAsmCilManifestResourceTable *const &)
Property: ManifestResourceTable.
uint8_t const & get_ReservedAlwaysOne() const
Property: A 1-byte constant.
SgAsmCilFieldLayoutTable *const & get_FieldLayoutTable() const
Property: FieldLayoutTable.
void set_PropertyMapTable(SgAsmCilPropertyMapTable *const &)
Property: PropertyMapTable.
SgAsmCilMemberRefTable *const & get_MemberRefTable() const
Property: MemberRefTable.
void set_MajorVersion(uint8_t const &)
Property: A 1-byte constant.
void set_EventMapTable(SgAsmCilEventMapTable *const &)
Property: EventMapTable.
CIL SgAsmCilMetadataRoot.
virtual ~SgAsmCilMetadataRoot()
}@
uint16_t const & get_NumberOfStreams() const
Property: Reserved space.
void unparse(std::vector< uint8_t > &, std::size_t) const
Unparses the metadata objects into a buffer starting at index idx.
bool const & get_ErrorFree() const
Property: Flag indicating whether the entire CIL metadata section was parsed without errors.
uint32_t const & get_Length() const
Property: Number of bytes allocated to hold version string (including null terminator).
SgAsmCilMetadataRoot()
Default constructor.
SgAsmCilUint8Heap * get_BlobHeap() const
indices to efficiently access the different heaps
SgAsmCilUint8Heap * get_UsHeap() const
indices to efficiently access the different heaps
void parse()
Declares the parse function as called from the Cli section header object.
SgAsmCilUint32Heap * get_GuidHeap() const
indices to efficiently access the different heaps
SgAsmCilMetadataHeap * get_MetadataHeap() const
indices to efficiently access the different heaps
std::vector< SgAsmCilDataStream * > const & get_Streams() const
Property: Metadata streams.
uint16_t const & get_Flags() const
Property: Reserved space.
void parse(const std::vector< uint8_t > &buf, size_t index)
Declares the parse function.
void set_Signature(uint32_t const &)
Property: Magic signature for physical metadata (always 0x424A5342)
SgAsmCilUint8Heap * get_StringHeap() const
Accessor function to return a specific heap.
uint32_t const & get_Reserved0() const
Property: Reserved space.
uint32_t const & get_Signature() const
Property: Magic signature for physical metadata (always 0x424A5342)
void set_NumberOfStreams(uint16_t const &)
Property: Reserved space.
void dump(std::ostream &os) const
Prints the object's data in a human readable form to os.
void set_Length(uint32_t const &)
Property: Number of bytes allocated to hold version string (including null terminator).
void unparse(std::ostream &f) const
Declares the unparse function as called from the Cli section header object.
uint32_t const & get_VersionPadding() const
Property: Padding to next 4-byte boundary.
uint16_t const & get_MajorVersion() const
Property: Major version number.
void set_Flags(uint16_t const &)
Property: Reserved space.
void set_MinorVersion(uint16_t const &)
Property: Minor version number.
std::string const & get_Version() const
Property: Version string.
void set_ErrorFree(bool const &)
Property: Flag indicating whether the entire CIL metadata section was parsed without errors.
static constexpr uint32_t MAGIC_SIGNATURE
}@
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_MajorVersion(uint16_t const &)
Property: Major version number.
std::vector< SgAsmCilDataStream * > & get_Streams()
Property: Metadata streams.
void set_Version(std::string const &)
Property: Version string.
uint16_t const & get_MinorVersion() const
Property: Minor version number.
void set_VersionPadding(uint32_t const &)
Property: Padding to next 4-byte boundary.
void set_Reserved0(uint32_t const &)
Property: Reserved space.
Base class for CIL branch of binary analysis IR nodes.
virtual ~SgAsmCilMetadata()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilMetadata()
Default constructor.
Property class representing CIL Extra Sections (II.25.4.5).
virtual ~SgAsmCilMethodData()
Destructor.
SgAsmCilMethodData()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL MethodDef tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilMethodDefTable()
Default constructor.
virtual ~SgAsmCilMethodDefTable()
Destructor.
CIL MethodDef node (II.22.26).
virtual ~SgAsmCilMethodDef()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_hasMoreSections(bool const &)
Property: hasMoreSections.
std::vector< SgAsmCilMethodData * > & get_methodData()
Property: methodData (II.24.4.5).
uint32_t const & get_ParamList() const
Property: ParamList.
void set_Signature(uint32_t const &)
Property: Signature.
void set_ParamList(uint32_t const &)
Property: ParamList.
void set_stackSize(uint32_t const &)
Property: stackSize.
void set_body(SgAsmBlock *const &)
Property: body.
uint16_t const & get_ImplFlags() const
Property: ImplFlags.
int const & get_bodyState() const
Property: status (ROSE extension)
uint32_t const & get_stackSize() const
Property: stackSize.
SgAsmCilMethodDef()
Default constructor.
uint32_t const & get_Name() const
Property: Name.
void set_localVarSigTok(uint32_t const &)
Property: localVarSigTok (II.24.4.3).
SgAsmBlock *const & get_body() const
Property: body.
void set_RVA(uint32_t const &)
Property: RVA.
bool const & get_hasMoreSections() const
Property: hasMoreSections.
uint32_t const & get_localVarSigTok() const
Property: localVarSigTok (II.24.4.3).
void set_Name(uint32_t const &)
Property: Name.
uint32_t const & get_RVA() const
Property: RVA.
bool const & get_initLocals() const
Property: initLocals.
void set_Flags(uint16_t const &)
Property: Flags.
uint32_t const & get_Signature() const
Property: Signature.
uint16_t const & get_Flags() const
Property: Flags.
std::vector< SgAsmCilMethodData * > const & get_methodData() const
Property: methodData (II.24.4.5).
void set_initLocals(bool const &)
Property: initLocals.
void set_ImplFlags(uint16_t const &)
Property: ImplFlags.
@ BDY_INVALID_SECTION_ALIGN
extra sections are misaligned
@ BDY_INVALID_HEADER_ALIGN
fat header is improperly aligned
@ BDY_FULLY_DECODED
decoded successfully
@ BDY_INVALID_INSTRUCTION_LENGTH
decoding instructions exceeded body length
@ BDY_INVALID_HEADER_KIND
method header kind is neither tiny nor fat
@ BDY_INVALID_CLAUSE_KIND
clauses section length and kind do not match
@ BDY_NOT_AVAILABLE
RVA is 0 -> body is null.
@ BDY_INVALID_INSTRUCTION
encountered unknown instruction
@ BDY_INVALID_CLAUSE_LENGTH
clause could not be read completely
@ BDY_NOT_PROCESSED
method has not been processed
@ BDY_INVALID_HEADER_BYTE
method header leading byte cannot be read
@ BDY_RUNTIME_SUPPORTED
body is runtime supported (looking for specimen)
@ BDY_INVALID_CODE_LENGTH
could not read all bytes as specified by header
@ BDY_INVALID_SECTION_HEADER
extra section could not be read completely or is inconsistent
void set_bodyState(int const &)
Property: status (ROSE extension)
CIL MethodImpl tables.
SgAsmCilMethodImplTable()
Default constructor.
virtual ~SgAsmCilMethodImplTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL MethodImpl node (II.22.27).
uint32_t const & get_MethodDeclaration() const
Property: MethodDeclaration.
void set_MethodDeclaration(uint32_t const &)
Property: MethodDeclaration.
virtual ~SgAsmCilMethodImpl()
Destructor.
void set_MethodBody(uint32_t const &)
Property: MethodBody.
void set_Class(uint32_t const &)
Property: Class.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_MethodBody() const
Property: MethodBody.
SgAsmCilMethodImpl()
Default constructor.
uint32_t const & get_Class() const
Property: Class.
CIL MethodSemantics tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilMethodSemanticsTable()
Destructor.
SgAsmCilMethodSemanticsTable()
Default constructor.
CIL MethodSemantics node (II.22.28).
void set_Method(uint32_t const &)
Property: Method.
void set_Semantics(uint16_t const &)
Property: Semantics.
SgAsmCilMethodSemantics()
Default constructor.
uint16_t const & get_Semantics() const
Property: Semantics.
uint32_t const & get_Method() const
Property: Method.
virtual ~SgAsmCilMethodSemantics()
Destructor.
void set_Association(uint32_t const &)
Property: Association.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_Association() const
Property: Association.
CIL MethodSpec tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilMethodSpecTable()
Default constructor.
virtual ~SgAsmCilMethodSpecTable()
Destructor.
CIL MethodSpec node (II.22.29).
uint32_t const & get_Method() const
Property: Method.
uint32_t const & get_Instantiation() const
Property: Instantiation.
SgAsmCilMethodSpec()
Default constructor.
void set_Method(uint32_t const &)
Property: Method.
virtual ~SgAsmCilMethodSpec()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_Instantiation(uint32_t const &)
Property: Instantiation.
CIL ModuleRef tables.
virtual ~SgAsmCilModuleRefTable()
Destructor.
SgAsmCilModuleRefTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL ModuleRef node (II.22.31).
virtual ~SgAsmCilModuleRef()
Destructor.
SgAsmCilModuleRef()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_Name(uint32_t const &)
Property: Name.
uint32_t const & get_Name() const
Property: Name.
virtual ~SgAsmCilModuleTable()
Destructor.
SgAsmCilModuleTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL Module node (II.22.30).
void set_Generation(uint16_t const &)
Property: Generation.
virtual ~SgAsmCilModule()
Destructor.
uint32_t const & get_Mvid() const
Property: Mvid.
uint16_t const & get_Generation() const
Property: Generation.
void set_Name(uint32_t const &)
Property: Name.
SgAsmCilModule()
Default constructor.
void set_EncBaseId(uint32_t const &)
Property: EncBaseId.
uint32_t const & get_Encld() const
Property: Encld.
void set_Encld(uint32_t const &)
Property: Encld.
void set_Mvid(uint32_t const &)
Property: Mvid.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_EncBaseId() const
Property: EncBaseId.
uint32_t const & get_Name() const
Property: Name.
CIL NestedClass tables.
virtual ~SgAsmCilNestedClassTable()
Destructor.
SgAsmCilNestedClassTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL NestedClass node (II.22.32).
virtual ~SgAsmCilNestedClass()
Destructor.
uint32_t const & get_EnclosingClass() const
Property: EnclosingClass.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_NestedClass() const
Property: NestedClass.
void set_EnclosingClass(uint32_t const &)
Property: EnclosingClass.
void set_NestedClass(uint32_t const &)
Property: NestedClass.
SgAsmCilNestedClass()
Default constructor.
Base class for CIL branch of binary analysis IR nodes.
SgAsmCilNode()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilNode()
Destructor.
SgAsmCilParamTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilParamTable()
Destructor.
CIL Param node (II.22.33).
void set_Name(uint32_t const &)
Property: Name.
void set_Flags(uint16_t const &)
Property: Flags.
uint32_t const & get_Name() const
Property: Name.
void set_Sequence(uint16_t const &)
Property: Sequence.
virtual ~SgAsmCilParam()
Destructor.
uint16_t const & get_Sequence() const
Property: Sequence.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilParam()
Default constructor.
uint16_t const & get_Flags() const
Property: Flags.
CIL PropertyMap tables.
virtual ~SgAsmCilPropertyMapTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilPropertyMapTable()
Default constructor.
CIL PropertyMap node (II.22.35).
uint32_t const & get_PropertyList() const
Property: PropertyList.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_Parent() const
Property: Parent.
virtual ~SgAsmCilPropertyMap()
Destructor.
void set_Parent(uint32_t const &)
Property: Parent.
SgAsmCilPropertyMap()
Default constructor.
void set_PropertyList(uint32_t const &)
Property: PropertyList.
CIL Property tables.
virtual ~SgAsmCilPropertyTable()
Destructor.
SgAsmCilPropertyTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL Property node (II.22.34).
uint32_t const & get_Name() const
Property: Name.
SgAsmCilProperty()
Default constructor.
uint16_t const & get_Flags() const
Property: Flags.
uint32_t const & get_Type() const
Property: Type.
void set_Flags(uint16_t const &)
Property: Flags.
void set_Name(uint32_t const &)
Property: Name.
void set_Type(uint32_t const &)
Property: Type.
virtual ~SgAsmCilProperty()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL StandAloneSig tables.
SgAsmCilStandAloneSigTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilStandAloneSigTable()
Destructor.
CIL StandAloneSig node (II.22.36).
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCilStandAloneSig()
Default constructor.
uint32_t const & get_Signature() const
Property: Signature.
void set_Signature(uint32_t const &)
Property: Signature.
virtual ~SgAsmCilStandAloneSig()
Destructor.
CIL TypeDef tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilTypeDefTable()
Destructor.
SgAsmCilTypeDefTable()
Default constructor.
CIL TypeDef node (II.22.37).
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_MethodList(uint32_t const &)
Property: MethodList.
void set_Flags(uint32_t const &)
Property: Flags.
void set_FieldList(uint32_t const &)
Property: FieldList.
void set_TypeName(uint32_t const &)
Property: TypeName.
SgAsmCilTypeDef()
Default constructor.
void set_Extends(uint32_t const &)
Property: Extends.
uint32_t const & get_TypeNamespace() const
Property: TypeNamespace.
virtual ~SgAsmCilTypeDef()
Destructor.
uint32_t const & get_Extends() const
Property: Extends.
uint32_t const & get_FieldList() const
Property: FieldList.
void set_TypeNamespace(uint32_t const &)
Property: TypeNamespace.
uint32_t const & get_Flags() const
Property: Flags.
uint32_t const & get_MethodList() const
Property: MethodList.
uint32_t const & get_TypeName() const
Property: TypeName.
CIL TypeRef tables.
virtual ~SgAsmCilTypeRefTable()
Destructor.
SgAsmCilTypeRefTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
CIL TypeRef node (II.22.38).
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_TypeNamespace() const
Property: TypeNamespace.
void set_TypeName(uint32_t const &)
Property: TypeName.
void set_TypeNamespace(uint32_t const &)
Property: TypeNamespace.
virtual ~SgAsmCilTypeRef()
Destructor.
void set_ResolutionScope(uint16_t const &)
Property: ResolutionScope.
uint32_t const & get_TypeName() const
Property: TypeName.
SgAsmCilTypeRef()
Default constructor.
uint16_t const & get_ResolutionScope() const
Property: ResolutionScope.
CIL TypeSpec tables.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilTypeSpecTable()
Destructor.
SgAsmCilTypeSpecTable()
Default constructor.
CIL TypeSpec node (II.22.39).
uint32_t const & get_Signature() const
Property: Signature.
void set_Signature(uint32_t const &)
Property: Signature.
SgAsmCilTypeSpec()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilTypeSpec()
Destructor.
Base class for CIL branch of binary analysis IR nodes.
void initializeProperties()
Initialize all properties that have explicit initial values.
void parse(const std::vector< uint8_t > &buf, size_t startOfMetaData) override
}@
virtual ~SgAsmCilUint32Heap()
Destructor.
void dump(std::ostream &os) const override
Prints the object's data in a human readable form.
SgAsmCilUint32Heap(uint32_t const &Offset, uint32_t const &Size, std::string const &Name, uint32_t const &NamePadding)
Constructor.
SgAsmCilUint32Heap()
Default constructor.
void unparse(std::vector< uint8_t > &buf, size_t startOfMetaData) const override
Unparses the metadata objects into the buffer.
Base class for CIL branch of binary analysis IR nodes.
void parse(const std::vector< uint8_t > &buf, size_t startOfMetaData) override
}@
SgAsmCilUint8Heap(uint32_t const &Offset, uint32_t const &Size, std::string const &Name, uint32_t const &NamePadding)
Constructor.
void unparse(std::vector< uint8_t > &buf, size_t startOfMetaData) const override
Unparses the metadata objects into the buffer.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmCilUint8Heap()
Destructor.
SgAsmCilUint8Heap()
Default constructor.
void dump(std::ostream &os) const override
Prints the object's data in a human readable form.
CIL Managed Code section.
void set_codeManagerTable(uint64_t const &)
Property: CodeManagerTable.
void set_metadataRoot(SgAsmCilMetadataRoot *const &)
Property: pointer to the root of the CIL Metadata.
uint64_t const & get_vTableFixups() const
Property: VTableFixups.
SgAsmCilMetadataRoot *const & get_metadataRoot() const
Property: pointer to the root of the CIL Metadata.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void set_entryPointToken(uint32_t const &)
Property: EntryPointToken.
void set_cb(uint32_t const &)
Property: Cb.
uint32_t const & get_entryPointToken() const
Property: EntryPointToken.
void set_vTableFixups(uint64_t const &)
Property: VTableFixups.
void set_minorRuntimeVersion(uint16_t const &)
Property: MinorRuntimeVersion.
SgAsmCliHeader()
Default constructor.
uint32_t const & get_flags() const
Property: Flags.
void set_resources(uint64_t const &)
Property: Resources.
virtual ~SgAsmCliHeader()
Destructor.
uint64_t const & get_codeManagerTable() const
Property: CodeManagerTable.
uint16_t const & get_minorRuntimeVersion() const
Property: MinorRuntimeVersion.
void set_strongNameSignature(uint64_t const &)
Property: StrongNameSignature.
uint16_t const & get_majorRuntimeVersion() const
Property: MajorRuntimeVersion.
void set_exportAddressTableJumps(uint64_t const &)
Property: ExportAddressTableJumps.
uint64_t const & get_managedNativeHeader() const
Property: ManagedNativeHeader.
void set_flags(uint32_t const &)
Property: Flags.
uint64_t const & get_metaData() const
Property: MetaData.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmCliHeader * parse() override
Initialize the object by parsing content from the PE file.
void set_managedNativeHeader(uint64_t const &)
Property: ManagedNativeHeader.
void set_majorRuntimeVersion(uint16_t const &)
Property: MajorRuntimeVersion.
void set_metaData(uint64_t const &)
Property: MetaData.
SgAsmCliHeader(SgAsmPEFileHeader *)
Initialize the object before parsing.
uint64_t const & get_resources() const
Property: Resources.
uint32_t const & get_cb() const
Property: Cb.
uint64_t const & get_strongNameSignature() const
Property: StrongNameSignature.
uint64_t const & get_exportAddressTableJumps() const
Property: ExportAddressTableJumps.
COFF symbol string table.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCoffStrtab()
Default constructor.
void destructorHelper() override
This gets called by all Rosebud-generated destructors.
virtual ~SgAsmCoffStrtab()
Destructor.
List of COFF symbols.
void set_symbols(SgAsmCoffSymbolPtrList const &)
Property: List of symbol pointers.
SgAsmCoffSymbolPtrList const & get_symbols() const
Property: List of symbol pointers.
SgAsmCoffSymbolPtrList & get_symbols()
Property: List of symbol pointers.
virtual ~SgAsmCoffSymbolList()
Destructor.
SgAsmCoffSymbolList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmCoffSymbolTable * parse() override
Parse contents of the section.
SgAsmCoffSymbolTable()
Default constructor.
SgAsmGenericSection *const & get_strtab() const
Property: String table.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_symbols(SgAsmCoffSymbolList *const &)
Property: List of symbols.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void set_strtab(SgAsmGenericSection *const &)
Property: String table.
SgAsmCoffSymbolList *const & get_symbols() const
Property: List of symbols.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
virtual ~SgAsmCoffSymbolTable()
Destructor.
void set_auxiliaryData(SgUnsignedCharList const &)
Property: Auxilliary data.
void set_st_name(std::string const &)
Property: Symbol name.
unsigned const & get_st_num_aux_entries() const
Property: Number of auxilliary entries.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override
Print some debugging info.
SgAsmCoffSymbol()
Default constructor.
void set_st_num_aux_entries(unsigned const &)
Property: Number of auxilliary entries.
void set_st_name_offset(Rose::BinaryAnalysis::Address const &)
Property: Symbol name offset.
unsigned const & get_st_type() const
Property: Symbol type constant.
void set_st_section_num(int const &)
Property: Section number.
Rose::BinaryAnalysis::Address const & get_st_name_offset() const
Property: Symbol name offset.
SgUnsignedCharList const & get_auxiliaryData() const
Property: Auxilliary data.
unsigned const & get_st_storage_class() const
Property: Symbol storage class.
void initializeProperties()
Initialize all properties that have explicit initial values.
int const & get_st_section_num() const
Property: Section number.
SgUnsignedCharList & get_auxiliaryData()
Property: Auxilliary data.
void set_st_storage_class(unsigned const &)
Property: Symbol storage class.
void set_st_type(unsigned const &)
Property: Symbol type constant.
std::string const & get_st_name() const
Property: Symbol name.
virtual ~SgAsmCommonSubExpression()
Destructor.
SgAsmCommonSubExpression()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Base class for constants.
Sawyer::Container::BitVector & get_bitVector()
Property: Bits for constant.
void set_bitVector(Sawyer::Container::BitVector const &)
Property: Bits for constant.
virtual ~SgAsmConstantExpression()
Destructor.
Sawyer::Container::BitVector const & get_bitVector() const
Property: Bits for constant.
SgAsmConstantExpression()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmControlFlagsExpression()
Default constructor.
virtual ~SgAsmControlFlagsExpression()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void set_e_res1(unsigned const &)
Property: Rerserved area 1.
unsigned const & get_e_res4() const
Property: Rerserved area 4.
unsigned const & get_e_res1() const
Property: Rerserved area 1.
virtual ~SgAsmDOSExtendedHeader()
Destructor.
unsigned const & get_e_res6() const
Property: Rerserved area 6.
void set_e_res6(unsigned const &)
Property: Rerserved area 6.
void set_e_res5(unsigned const &)
Property: Rerserved area 5.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
void set_e_lfanew(Rose::BinaryAnalysis::Address const &)
Property: lfanew.
unsigned const & get_e_oeminfo() const
Property: OEM info.
unsigned const & get_e_res3() const
Property: Rerserved area 3.
void set_e_oeminfo(unsigned const &)
Property: OEM info.
unsigned const & get_e_oemid() const
Property: OEM ID.
void set_e_res3(unsigned const &)
Property: Rerserved area 3.
void set_e_oemid(unsigned const &)
Property: OEM ID.
virtual SgAsmDOSExtendedHeader * parse() override
Parse contents of the section.
void set_e_res2(unsigned const &)
Property: Rerserved area 2.
void set_e_res4(unsigned const &)
Property: Rerserved area 4.
Rose::BinaryAnalysis::Address const & get_e_lfanew() const
Property: lfanew.
SgAsmDOSExtendedHeader()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
unsigned const & get_e_res2() const
Property: Rerserved area 2.
unsigned const & get_e_res5() const
Property: Rerserved area 5.
Represents the file header for DOS executables.
void set_e_nrelocs(uint16_t const &)
Property: Number of relocations.
uint16_t const & get_e_total_pages() const
Property: Total number of pages.
uint16_t const & get_e_cs() const
Property: CS.
uint16_t const & get_e_overlay() const
Property: Overlay.
uint16_t const & get_e_maxalloc() const
Property: Max alloc.
void set_relocs(SgAsmGenericSection *const &)
Property: Section containing relocation information.
void updateFromRealModeSection()
Update DOS header with data from real-mode section.
uint16_t const & get_e_last_page_size() const
Property: Last page size.
void set_e_total_pages(uint16_t const &)
Property: Total number of pages.
virtual const char * formatName() const override
Returns the name of the file format.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
void set_e_res1(unsigned const &)
Property: Reserved field 1.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_e_last_page_size(uint16_t const &)
Property: Last page size.
void set_e_minalloc(uint16_t const &)
Property: Min alloc.
unsigned const & get_e_res1() const
Property: Reserved field 1.
SgAsmGenericSection *const & get_rm_section() const
Property: Real mode section.
void set_e_relocs_offset(Rose::BinaryAnalysis::Address const &)
Property: Relocs offset.
SgAsmGenericSection * parseRealModeSection(Rose::BinaryAnalysis::Address max_offset=0)
Parses the DOS real-mode text+data section and adds it to the AST.
virtual void unparse(std::ostream &) const override
Unparse headers and all they point to.
uint16_t const & get_e_header_paragraphs() const
Property: Number of header paragraphs.
void set_e_ip(uint16_t const &)
Property: IP.
void set_e_header_paragraphs(uint16_t const &)
Property: Number of header paragraphs.
Rose::BinaryAnalysis::Address const & get_e_relocs_offset() const
Property: Relocs offset.
uint16_t const & get_e_ip() const
Property: IP.
SgAsmDOSFileHeader()
Default constructor.
uint16_t const & get_e_nrelocs() const
Property: Number of relocations.
uint16_t const & get_e_sp() const
Property: SP.
static bool isDos(SgAsmGenericFile *)
Returns true if a cursory look at the file indicates that it could be a DOS executable file.
void set_e_ss(uint16_t const &)
Property: SS.
SgAsmGenericSection *const & get_relocs() const
Property: Section containing relocation information.
void set_rm_section(SgAsmGenericSection *const &)
Property: Real mode section.
void set_e_maxalloc(uint16_t const &)
Property: Max alloc.
void set_e_cs(uint16_t const &)
Property: CS.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
uint16_t const & get_e_cksum() const
Property: Checksum.
void set_e_sp(uint16_t const &)
Property: SP.
void set_e_cksum(uint16_t const &)
Property: Checksum.
uint16_t const & get_e_ss() const
Property: SS.
virtual SgAsmDOSFileHeader * parse() override
Parse contents of the section.
void set_e_overlay(uint16_t const &)
Property: Overlay.
uint16_t const & get_e_minalloc() const
Property: Min alloc.
Expression representing a machine register.
SgAsmDirectRegisterExpression()
Default constructor.
SgAsmDirectRegisterExpression(Rose::BinaryAnalysis::RegisterDescriptor const &descriptor)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDirectRegisterExpression()
Destructor.
SgAsmDwarfAccessDeclaration(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfAccessDeclaration()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfAccessDeclaration()
Default constructor.
SgAsmDwarfArrayType()
Default constructor.
virtual ~SgAsmDwarfArrayType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfArrayType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfBaseType()
Default constructor.
SgAsmDwarfBaseType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfBaseType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfCatchBlock()
Default constructor.
SgAsmDwarfCatchBlock(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfCatchBlock()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfClassTemplate(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfClassTemplate()
Destructor.
SgAsmDwarfClassTemplate()
Default constructor.
SgAsmDwarfClassType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfClassType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfClassType()
Default constructor.
SgAsmDwarfCommonBlock(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfCommonBlock()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfCommonBlock()
Default constructor.
SgAsmDwarfCommonInclusion()
Default constructor.
SgAsmDwarfCommonInclusion(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfCommonInclusion()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfCompilationUnitList()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfCompilationUnitList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfCompilationUnit(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfCompilationUnit()
Default constructor.
virtual ~SgAsmDwarfCompilationUnit()
Destructor.
SgAsmDwarfCondition()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfCondition()
Destructor.
SgAsmDwarfCondition(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfConstType()
Destructor.
SgAsmDwarfConstType()
Default constructor.
SgAsmDwarfConstType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfConstant(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfConstant()
Destructor.
SgAsmDwarfConstant()
Default constructor.
SgAsmDwarfConstructList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfConstructList()
Destructor.
static SgAsmDwarfConstruct * createDwarfConstruct(int tag, int nesting_level, uint64_t offset, uint64_t overall_offset)
Factory pattern to build IR nodes based on the tag.
SgAsmDwarfConstruct(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfConstruct()
Destructor.
SgAsmDwarfConstruct()
Default constructor.
SgAsmDwarfDwarfProcedure()
Default constructor.
virtual ~SgAsmDwarfDwarfProcedure()
Destructor.
SgAsmDwarfDwarfProcedure(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfEntryPoint(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfEntryPoint()
Destructor.
SgAsmDwarfEntryPoint()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfEnumerationType()
Default constructor.
virtual ~SgAsmDwarfEnumerationType()
Destructor.
SgAsmDwarfEnumerationType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfEnumerator(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfEnumerator()
Destructor.
SgAsmDwarfEnumerator()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfFileType()
Destructor.
SgAsmDwarfFileType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfFileType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfFormalParameter(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfFormalParameter()
Default constructor.
virtual ~SgAsmDwarfFormalParameter()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfFormatLabel(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfFormatLabel()
Default constructor.
virtual ~SgAsmDwarfFormatLabel()
Destructor.
SgAsmDwarfFriend()
Default constructor.
virtual ~SgAsmDwarfFriend()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfFriend(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfFunctionTemplate()
Default constructor.
virtual ~SgAsmDwarfFunctionTemplate()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfFunctionTemplate(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfImportedDeclaration()
Destructor.
SgAsmDwarfImportedDeclaration()
Default constructor.
SgAsmDwarfImportedDeclaration(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfImportedModule(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfImportedModule()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfImportedModule()
Destructor.
SgAsmDwarfImportedUnit(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfImportedUnit()
Default constructor.
virtual ~SgAsmDwarfImportedUnit()
Destructor.
SgAsmDwarfInformation()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfInformation()
Destructor.
SgAsmDwarfInheritance(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfInheritance()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfInheritance()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfInlinedSubroutine(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfInlinedSubroutine()
Destructor.
SgAsmDwarfInlinedSubroutine()
Default constructor.
SgAsmDwarfInterfaceType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfInterfaceType()
Destructor.
SgAsmDwarfInterfaceType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfLabel()
Default constructor.
virtual ~SgAsmDwarfLabel()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfLabel(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfLexicalBlock()
Default constructor.
virtual ~SgAsmDwarfLexicalBlock()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfLexicalBlock(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void display(const std::string &label)
Output information about instruction address <--> source position.
static DwarfInstructionSourceMapReturnType buildInstructionAddressSourcePositionMaps(SgAsmDwarfCompilationUnit *dwarf_cu=NULL)
Support for building maps to and from instruction addresses to source positions (files,...
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfLineList()
Destructor.
SgAsmDwarfLineList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfLine()
Default constructor.
SgAsmDwarfLine(uint64_t const &address, int const &file_id, int const &line, int const &column)
Constructor.
virtual ~SgAsmDwarfLine()
Destructor.
virtual ~SgAsmDwarfMacroList()
Destructor.
SgAsmDwarfMacroList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfMacro()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfMacro()
Destructor.
virtual ~SgAsmDwarfMember()
Destructor.
SgAsmDwarfMember()
Default constructor.
SgAsmDwarfMember(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfModule()
Default constructor.
virtual ~SgAsmDwarfModule()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfModule(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfMutableType()
Default constructor.
virtual ~SgAsmDwarfMutableType()
Destructor.
SgAsmDwarfMutableType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfNamelistItem()
Destructor.
SgAsmDwarfNamelistItem()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfNamelistItem(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfNamelist(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfNamelist()
Default constructor.
virtual ~SgAsmDwarfNamelist()
Destructor.
virtual ~SgAsmDwarfNamespace()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfNamespace()
Default constructor.
SgAsmDwarfNamespace(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfPackedType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfPackedType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfPackedType()
Destructor.
SgAsmDwarfPartialUnit(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfPartialUnit()
Default constructor.
virtual ~SgAsmDwarfPartialUnit()
Destructor.
virtual ~SgAsmDwarfPointerType()
Destructor.
SgAsmDwarfPointerType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfPointerType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfPtrToMemberType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfPtrToMemberType()
Default constructor.
virtual ~SgAsmDwarfPtrToMemberType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfReferenceType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfReferenceType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfReferenceType()
Destructor.
virtual ~SgAsmDwarfRestrictType()
Destructor.
SgAsmDwarfRestrictType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfRestrictType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfSetType()
Destructor.
SgAsmDwarfSetType()
Default constructor.
SgAsmDwarfSetType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfSharedType()
Destructor.
SgAsmDwarfSharedType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfSharedType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfStringType()
Default constructor.
SgAsmDwarfStringType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfStringType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfStructureType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfStructureType()
Default constructor.
virtual ~SgAsmDwarfStructureType()
Destructor.
SgAsmDwarfSubprogram(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfSubprogram()
Destructor.
SgAsmDwarfSubprogram()
Default constructor.
SgAsmDwarfSubrangeType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfSubrangeType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfSubrangeType()
Destructor.
SgAsmDwarfSubroutineType()
Default constructor.
virtual ~SgAsmDwarfSubroutineType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfSubroutineType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfTemplateTypeParameter()
Default constructor.
SgAsmDwarfTemplateTypeParameter(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfTemplateTypeParameter()
Destructor.
SgAsmDwarfTemplateValueParameter(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfTemplateValueParameter()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfTemplateValueParameter()
Default constructor.
SgAsmDwarfThrownType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfThrownType()
Destructor.
SgAsmDwarfThrownType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfTryBlock(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfTryBlock()
Default constructor.
virtual ~SgAsmDwarfTryBlock()
Destructor.
SgAsmDwarfTypedef(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfTypedef()
Destructor.
SgAsmDwarfTypedef()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfUnionType()
Destructor.
SgAsmDwarfUnionType()
Default constructor.
SgAsmDwarfUnionType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfUnknownConstruct()
Default constructor.
virtual ~SgAsmDwarfUnknownConstruct()
Destructor.
SgAsmDwarfUnknownConstruct(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfUnspecifiedParameters()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfUnspecifiedParameters()
Default constructor.
SgAsmDwarfUnspecifiedParameters(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfUnspecifiedType()
Default constructor.
virtual ~SgAsmDwarfUnspecifiedType()
Destructor.
SgAsmDwarfUnspecifiedType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfUpcRelaxedType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfUpcRelaxedType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfUpcRelaxedType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmDwarfUpcSharedType()
Destructor.
SgAsmDwarfUpcSharedType()
Default constructor.
SgAsmDwarfUpcSharedType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfUpcStrictType()
Default constructor.
virtual ~SgAsmDwarfUpcStrictType()
Destructor.
SgAsmDwarfUpcStrictType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfVariable()
Default constructor.
virtual ~SgAsmDwarfVariable()
Destructor.
SgAsmDwarfVariable(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfVariantPart(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfVariantPart()
Default constructor.
virtual ~SgAsmDwarfVariantPart()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfVariant()
Default constructor.
virtual ~SgAsmDwarfVariant()
Destructor.
SgAsmDwarfVariant(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
virtual ~SgAsmDwarfVolatileType()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfVolatileType(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
SgAsmDwarfVolatileType()
Default constructor.
SgAsmDwarfWithStmt(int const &nesting_level, uint64_t const &offset, uint64_t const &overall_offset)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmDwarfWithStmt()
Default constructor.
virtual ~SgAsmDwarfWithStmt()
Destructor.
List of dynamic linking section entries.
SgAsmElfDynamicEntryList()
Default constructor.
SgAsmElfDynamicEntryPtrList & get_entries()
Property: List of entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_entries(SgAsmElfDynamicEntryPtrList const &)
Property: List of entries.
virtual ~SgAsmElfDynamicEntryList()
Destructor.
SgAsmElfDynamicEntryPtrList const & get_entries() const
Property: List of entries.
One entry from the dynamic linking table.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfDynamicEntry::Elf64DynamicEntry_disk *)
Initialize object by parsing the file.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfDynamicEntry::Elf32DynamicEntry_disk *) const
Convert object to disk representation.
virtual ~SgAsmElfDynamicEntry()
Destructor.
void set_d_val(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Value.
static std::string toString(SgAsmElfDynamicEntry::EntryType)
Convert Dynamic Entry Tag to a string.
SgAsmElfDynamicEntry(SgAsmElfDynamicSection *dynsec)
Constructor that links the object into the AST.
void set_d_tag(SgAsmElfDynamicEntry::EntryType const &)
Property: Tag.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_d_val() const
Property: Value.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_d_val()
Property: Value.
SgUnsignedCharList & get_extra()
Property: Padding byte values.
SgAsmElfDynamicEntry::EntryType const & get_d_tag() const
Property: Tag.
void set_name(SgAsmGenericString *)
Property: Name.
SgAsmElfDynamicEntry()
Default constructor.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfDynamicEntry::Elf64DynamicEntry_disk *) const
Convert object to disk representation.
SgUnsignedCharList const & get_extra() const
Property: Padding byte values.
SgAsmGenericString *const & get_name() const
Property: Name.
void set_extra(SgUnsignedCharList const &)
Property: Padding byte values.
void initializeProperties()
Initialize all properties that have explicit initial values.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfDynamicEntry::Elf32DynamicEntry_disk *)
Initialize object by parsing the file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
ELF section containing dynamic linking information.
virtual void unparse(std::ostream &) const override
Write the dynamic section back to disk.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override
Return sizes for various parts of the table.
virtual void finishParsing() override
Finish initializing the section entries.
SgAsmElfDynamicEntryList *const & get_entries() const
Property: List of entries.
void set_entries(SgAsmElfDynamicEntryList *const &)
Property: List of entries.
virtual SgAsmElfDynamicSection * parse() override
Initialize object by parsing file.
SgAsmElfDynamicSection(SgAsmElfFileHeader *fhdr, SgAsmElfStringSection *strsec)
Constructor that links object into the AST.
void initializeProperties()
Initialize all properties that have explicit initial values.
List of ELF EH frame CI entries.
virtual ~SgAsmElfEHFrameEntryCIList()
Destructor.
SgAsmElfEHFrameEntryCIList()
Default constructor.
void set_entries(SgAsmElfEHFrameEntryCIPtrList const &)
Property: List of pointers to ELF EH frame CI entries.
SgAsmElfEHFrameEntryCIPtrList & get_entries()
Property: List of pointers to ELF EH frame CI entries.
SgAsmElfEHFrameEntryCIPtrList const & get_entries() const
Property: List of pointers to ELF EH frame CI entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
ELF error handling frame entry, common information entry.
SgAsmElfEHFrameEntryFDList *const & get_fd_entries() const
Property: FD entries.
int const & get_prh_encoding() const
Property: PRH encoding.
void set_augmentation_string(std::string const &)
Property: Augmentation string.
void set_code_alignment_factor(uint64_t const &)
Property: Code alignment factor.
void set_version(int const &)
Property: Version number.
SgAsmElfEHFrameEntryCI(SgAsmElfEHFrameSection *ehframe)
Non-parsing constructor.
std::string unparse(const SgAsmElfEHFrameSection *) const
Unparse an entry.
void set_prh_addr(Rose::BinaryAnalysis::Address const &)
Property: PRH address.
void set_prh_encoding(int const &)
Property: PRH encoding.
std::string const & get_augmentation_string() const
Property: Augmentation string.
void set_eh_data(uint64_t const &)
Property: Data value.
int64_t const & get_data_alignment_factor() const
Property: Data alignment factor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
void set_instructions(SgUnsignedCharList const &)
Property: Instructions.
void set_data_alignment_factor(int64_t const &)
Property: Data alignment factor.
uint64_t const & get_augmentation_data_length() const
Property: Augmentation data length.
int const & get_addr_encoding() const
Property: Address encoding.
SgUnsignedCharList & get_instructions()
Property: Instructions.
void set_augmentation_data_length(uint64_t const &)
Property: Augmentation data length.
void set_sig_frame(bool const &)
Property: Signal frame.
Rose::BinaryAnalysis::Address const & get_prh_addr() const
Property: PRH address.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint64_t const & get_eh_data() const
Property: Data value.
int const & get_version() const
Property: Version number.
void set_lsda_encoding(int const &)
Property: LSDA encoding.
SgUnsignedCharList const & get_instructions() const
Property: Instructions.
bool const & get_sig_frame() const
Property: Signal frame.
void set_fd_entries(SgAsmElfEHFrameEntryFDList *const &)
Property: FD entries.
uint64_t const & get_code_alignment_factor() const
Property: Code alignment factor.
void set_prh_arg(unsigned const &)
Property: PRH argument.
SgAsmElfEHFrameEntryCI()
Default constructor.
virtual ~SgAsmElfEHFrameEntryCI()
Destructor.
int const & get_lsda_encoding() const
Property: LSDA encoding.
void set_addr_encoding(int const &)
Property: Address encoding.
unsigned const & get_prh_arg() const
Property: PRH argument.
List of ELF error handling frame descriptor entries.
SgAsmElfEHFrameEntryFDPtrList & get_entries()
Property: List of pointers to error handling frame descriptor entries.
SgAsmElfEHFrameEntryFDPtrList const & get_entries() const
Property: List of pointers to error handling frame descriptor entries.
void set_entries(SgAsmElfEHFrameEntryFDPtrList const &)
Property: List of pointers to error handling frame descriptor entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmElfEHFrameEntryFDList()
Destructor.
SgAsmElfEHFrameEntryFDList()
Default constructor.
ELF error handling frame entry frame description entry.
Rose::BinaryAnalysis::Address const & get_size() const
Property: Size in bytes.
SgUnsignedCharList const & get_instructions() const
Property: Instructions.
virtual ~SgAsmElfEHFrameEntryFD()
Destructor.
void set_size(Rose::BinaryAnalysis::Address const &)
Property: Size in bytes.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_begin_rva() const
Property: Beginning relative virtual address.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_instructions(SgUnsignedCharList const &)
Property: Instructions.
SgAsmElfEHFrameEntryFD()
Default constructor.
void set_begin_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Beginning relative virtual address.
SgUnsignedCharList & get_instructions()
Property: Instructions.
void set_augmentation_data(SgUnsignedCharList const &)
Property: Augmentation data.
SgAsmElfEHFrameEntryFD(SgAsmElfEHFrameEntryCI *)
Non-parsing constructor.
std::string unparse(const SgAsmElfEHFrameSection *, SgAsmElfEHFrameEntryCI *) const
Unparse to string.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_begin_rva()
Property: Beginning relative virtual address.
SgUnsignedCharList const & get_augmentation_data() const
Property: Augmentation data.
SgUnsignedCharList & get_augmentation_data()
Property: Augmentation data.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
Represents an ELF EH frame section.
SgAsmElfEHFrameSection(SgAsmElfFileHeader *)
Non-parsing constructor.
SgAsmElfEHFrameEntryCIList *const & get_ci_entries() const
Property: CI entries.
virtual void unparse(std::ostream &) const override
Write data to .eh_frame section.
virtual ~SgAsmElfEHFrameSection()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override
Return sizes for various parts of the table.
virtual SgAsmElfEHFrameSection * parse() override
Initialize by parsing a file.
SgAsmElfEHFrameSection()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
Rose::BinaryAnalysis::Address unparse(std::ostream *) const
Unparses the section into the optional output stream and returns the number of bytes written.
void set_ci_entries(SgAsmElfEHFrameEntryCIList *const &)
Property: CI entries.
Represents the file header of an ELF binary container.
unsigned char const & get_e_ident_file_class() const
Property: File class.
unsigned long const & get_e_machine() const
Property: Machine.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
unsigned isaToMachine(SgAsmExecutableFileFormat::InsSetArchitecture isa) const
Convert architecture value to an ELF "machine" value.
unsigned long const & get_e_ehsize() const
Property: ehsize.
SgAsmElfFileHeader(SgAsmGenericFile *)
Construct a new ELF File Header with default values.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
unsigned long const & get_shextrasz() const
Property: shextrasz.
void set_e_phnum(unsigned long const &)
Property: phnum.
SgAsmElfSectionTable *const & get_sectionTable() const
Property: Section table.
void set_e_shstrndx(unsigned long const &)
Property: shstrndx.
void set_e_ident_data_encoding(unsigned char const &)
Property: Data encoding.
unsigned char const & get_e_ident_file_version() const
Property: File version.
void set_phextrasz(unsigned long const &)
Property: phextrasz.
void set_e_machine(unsigned long const &)
Property: Machine.
uint64_t maximumPageSize()
Maximum page size according to the ABI.
void set_sectionTable(SgAsmElfSectionTable *const &)
Property: Section table.
unsigned long const & get_phextrasz() const
Property: phextrasz.
void initializeProperties()
Initialize all properties that have explicit initial values.
static bool isElf(SgAsmGenericFile *)
Return true if the file looks like it might be an ELF file according to the magic number.
SgAsmElfSegmentTable *const & get_segmentTable() const
Property: Segment table.
virtual SgAsmElfFileHeader * parse() override
Parse header from file.
unsigned long const & get_e_type() const
Property: Type.
unsigned long const & get_e_shstrndx() const
Property: shstrndx.
unsigned char const & get_e_ident_data_encoding() const
Property: Data encoding.
ObjectType
Enum for the e_type property.
@ ET_EXEC
Executable file.
@ ET_HIOS
OS-specific range end.
@ ET_DYN
Shared object file.
@ ET_LOOS
OS-specific range start.
@ ET_REL
Relocatable file.
@ ET_LOPROC
Processor-specific range start.
@ ET_HIPROC
Processor-specific range end.
void set_e_flags(unsigned long const &)
Property: Flags.
unsigned long const & get_e_shnum() const
Property: shnum.
virtual void unparse(std::ostream &) const override
Write ELF contents back to a file.
SgUnsignedCharList const & get_e_ident_padding() const
Property: Padding.
virtual const char * formatName() const override
Returns the name of the file format.
void set_e_type(unsigned long const &)
Property: Type.
void set_e_ident_padding(SgUnsignedCharList const &)
Property: Padding.
void set_segmentTable(SgAsmElfSegmentTable *const &)
Property: Segment table.
void set_e_ehsize(unsigned long const &)
Property: ehsize.
SgAsmGenericSectionPtrList get_sectionTableSections()
Get the list of sections defined in the ELF Section Table.
void set_e_shnum(unsigned long const &)
Property: shnum.
void set_shextrasz(unsigned long const &)
Property: shextrasz.
unsigned long const & get_e_phnum() const
Property: phnum.
SgAsmGenericSectionPtrList get_segmentTableSections()
Get the list of sections defined in the ELF Segment Table.
void set_e_ident_file_version(unsigned char const &)
Property: File version.
static SgAsmExecutableFileFormat::InsSetArchitecture machineToIsa(unsigned machine)
Convert ELF "machine" identifier to generic instruction set architecture value.
unsigned long const & get_e_flags() const
Property: Flags.
void set_e_ident_file_class(unsigned char const &)
Property: File class.
Node to hold list of ELF note entries.
virtual ~SgAsmElfNoteEntryList()
Destructor.
SgAsmElfNoteEntryPtrList & get_entries()
Property: List of ELF not entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfNoteEntryPtrList const & get_entries() const
Property: List of ELF not entries.
SgAsmElfNoteEntryList()
Default constructor.
void set_entries(SgAsmElfNoteEntryPtrList const &)
Property: List of ELF not entries.
One entry of an ELF notes table.
SgUnsignedCharList & get_payload()
Property: Note name.
Rose::BinaryAnalysis::Address unparse(std::ostream &f, Rose::BinaryAnalysis::Address starting_offset)
Write a note at the specified offset to the section containing the note.
SgUnsignedCharList const & get_payload() const
Property: Note name.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging information.
void set_name(SgAsmGenericString *name)
Property: Note name.
unsigned const & get_type() const
Property: Type of note.
Rose::BinaryAnalysis::Address parse(Rose::BinaryAnalysis::Address starting_offset)
Initialize a note by parsing it from the specified location in the note section.
void set_payload(SgUnsignedCharList const &)
Property: Note name.
SgAsmGenericString * get_name() const
Property: Note name.
SgAsmElfNoteEntry(SgAsmElfNoteSection *)
Constructor adds the new note to the list of notes for the note section.
Rose::BinaryAnalysis::Address calculateSize() const
Returns the number of bytes needed to store this note.
void set_type(unsigned const &)
Property: Type of note.
void set_payload(const void *, size_t nbytes)
Property: Note payload.
virtual void unparse(std::ostream &) const override
Write data to note section.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmElfNoteEntryList *const & get_entries() const
Property: List of note entries.
virtual SgAsmElfNoteSection * parse() override
Parse contents of the section.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfNoteSection(SgAsmElfFileHeader *)
Non-parsing constructor.
SgAsmElfNoteSection()
Default constructor.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
virtual ~SgAsmElfNoteSection()
Destructor.
void set_entries(SgAsmElfNoteEntryList *const &)
Property: List of note entries.
List of ELF relocation entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfRelocEntryList()
Default constructor.
virtual ~SgAsmElfRelocEntryList()
Destructor.
SgAsmElfRelocEntryPtrList & get_entries()
Property: List of relocation entries.
SgAsmElfRelocEntryPtrList const & get_entries() const
Property: List of relocation entries.
void set_entries(SgAsmElfRelocEntryPtrList const &)
Property: List of relocation entries.
One entry of an ELF relocation table.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfRelocEntry::Elf64RelEntry_disk *) const
Convert object to on-disk format.
SgUnsignedCharList const & get_extra() const
Property: Value of padding bytes.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const
Print debugging information.
void dump(FILE *f, const char *prefix, ssize_t idx, SgAsmElfSymbolSection *symtab) const
Print debugging information.
void set_sym(unsigned long const &)
Property: Sym.
RelocType
Relocation Type.
@ R_386_TLS_GOTIE
GOT entry for static TLS block offset.
@ R_386_JMP_SLOT
Create PLT entry.
@ R_386_TLS_GD_PUSH
Tag for pushl in GD TLS code.
@ R_386_TLS_LDM_PUSH
Tag for pushl in LDM TLS code.
@ R_X86_64_TPOFF64
Offset in initial TLS block.
@ R_X86_64_GOTTPOFF
32 bit signed PC relative offset to GOT entry for IE symbol
@ R_X86_64_PC16
16 bit sign extended pc relative
@ R_X86_64_GOT32
32 bit GOT entry
@ R_X86_64_RELATIVE
Adjust by program base.
@ R_X86_64_TLSLD
32 bit signed PC relative offset to two GOT entries for LD symbol
@ R_X86_64_TLSGD
32 bit signed PC relative offset to two GOT entries for GD symbol
@ R_X86_64_GOTPCREL
32 bit signed PC relative offset to GOT
@ R_X86_64_32S
Direct 32 bit sign extended.
@ R_386_GLOB_DAT
Create GOT entry.
@ R_386_TLS_DTPOFF32
Offset in TLS block.
@ R_386_GOTPC
32 bit PC relative offset to GOT
@ R_X86_64_DTPOFF32
Offset in TLS block.
@ R_386_GOT32
32 bit GOT entry
@ R_386_TLS_LDM_CALL
Relocation for call to __tls_get_addr() in LDM code.
@ R_X86_64_PC8
8 bit sign extended pc relative
@ R_386_TLS_GD_32
Direct 32 bit for general dynamic thread local data.
@ R_386_TLS_GD
Direct 32 bit for GNU version of general dynamic thread local data.
@ R_386_GOTOFF
32 bit offset to GOT
@ R_X86_64_GLOB_DAT
Create GOT entry.
@ R_386_TLS_LDM_32
Direct 32 bit for local dynamic thread local data in LE code.
@ R_386_TLS_TPOFF32
Negated offset in static TLS block.
@ R_386_TLS_GD_CALL
Relocation for call to __tls_get_addr()
@ R_386_PC32
PC relative 32 bit.
@ R_386_RELATIVE
Adjust by program base.
@ R_386_TLS_IE
Address of GOT entry for static TLS block offset.
@ R_386_PLT32
32 bit PLT address
@ R_X86_64_8
Direct 8 bit sign extended
@ R_386_TLS_IE_32
GOT entry for negated static TLS block offset.
@ R_X86_64_16
Direct 16 bit zero extended.
@ R_386_TLS_LDM
Direct 32 bit for GNU version of local dynamic thread local data in LE code.
@ R_386_TLS_TPOFF
Offset in static TLS block.
@ R_X86_64_DTPMOD64
ID of module containing symbol.
@ R_X86_64_JUMP_SLOT
Create PLT entry.
@ R_386_COPY
Copy symbol at runtime.
@ R_X86_64_COPY
Copy symbol at runtime.
@ R_386_TLS_LE
Offset relative to static TLS block.
@ R_386_TLS_LE_32
Negated offset relative to static TLS block.
@ R_386_TLS_GD_POP
Tag for popl in GD TLS code.
@ R_386_TLS_LDM_POP
Tag for popl in LDM TLS code.
@ R_X86_64_DTPOFF64
Offset in module's TLS block.
@ R_386_TLS_DTPMOD32
ID of module containing symbol.
@ R_X86_64_TPOFF32
Offset in initial TLS block.
@ R_X86_64_PC32
PC relative 32 bit signed.
@ R_X86_64_PLT32
32 bit PLT address
@ R_386_TLS_LDO_32
Offset relative to TLS block.
@ R_X86_64_32
Direct 32 bit zero extended.
void set_r_addend(Rose::BinaryAnalysis::Address const &)
Property: Addend.
Rose::BinaryAnalysis::Address const & get_r_offset() const
Property: Offset.
SgAsmElfRelocEntry(SgAsmElfRelocSection *)
Constructor that adds the new entry to the relocation table.
Rose::BinaryAnalysis::Address const & get_r_addend() const
Property: Addend.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfRelocEntry::Elf64RelaEntry_disk *disk)
Initialize object by parsing from file.
SgAsmElfRelocEntry::RelocType const & get_type() const
Property: Type.
unsigned long const & get_sym() const
Property: Sym.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfRelocEntry::Elf32RelaEntry_disk *) const
Convert object to on-disk format.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfRelocEntry::Elf32RelEntry_disk *disk)
Initialize object by parsing from file.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfRelocEntry::Elf32RelEntry_disk *) const
Convert object to on-disk format.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfRelocEntry::Elf64RelaEntry_disk *) const
Convert object to on-disk format.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfRelocEntry::Elf32RelaEntry_disk *disk)
Initialize object by parsing from file.
void set_r_offset(Rose::BinaryAnalysis::Address const &)
Property: Offset.
void set_type(SgAsmElfRelocEntry::RelocType const &)
Property: Type.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfRelocEntry::Elf64RelEntry_disk *disk)
Initialize object by parsing from file.
SgUnsignedCharList & get_extra()
Property: Value of padding bytes.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_extra(SgUnsignedCharList const &)
Property: Value of padding bytes.
std::string toString() const
Convert relocation to string for debugging.
Represents an ELF relocation section.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual SgAsmElfRelocSection * parse() override
Parse an existing ELF Rela Section.
bool const & get_usesAddend() const
Property: Whether entries in this section use the addend format.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSection *const & get_targetSection() const
Property: Section targeted by these relocations.
virtual void unparse(std::ostream &) const override
Write section back to disk.
void set_entries(SgAsmElfRelocEntryList *const &)
Property: List of entries.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
SgAsmElfRelocSection()
Default constructor.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override
Return sizes for various parts of the table.
void set_targetSection(SgAsmElfSection *const &)
Property: Section targeted by these relocations.
void set_usesAddend(bool const &)
Property: Whether entries in this section use the addend format.
SgAsmElfRelocEntryList *const & get_entries() const
Property: List of entries.
Represents one entry in an ELF section table.
Rose::BinaryAnalysis::Address const & get_sh_addr() const
Property: sh_addr.
Rose::BinaryAnalysis::Address const & get_sh_addralign() const
Property: sh_addralign.
Rose::BinaryAnalysis::Address const & get_sh_size() const
Property: sh_size.
void set_sh_flags(uint64_t const &)
Property: sh_flags.
unsigned long const & get_sh_link() const
Property: sh_link.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
void set_sh_size(Rose::BinaryAnalysis::Address const &)
Property: sh_size.
uint64_t const & get_sh_flags() const
Property: sh_flags.
unsigned const & get_sh_name() const
Property: sh_name.
Rose::BinaryAnalysis::Address const & get_sh_offset() const
Property: sh_offset.
virtual ~SgAsmElfSectionTableEntry()
Destructor.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness sex, SgAsmElfSectionTableEntry::Elf64SectionTableEntry_disk *disk) const
Encode a section table entry into the disk structure.
void updateFromSection(SgAsmElfSection *)
Update this section table entry with newer information from the section.
Rose::BinaryAnalysis::Address const & get_sh_entsize() const
Property: sh_entsize.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_sh_entsize(Rose::BinaryAnalysis::Address const &)
Property: sh_entsize.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness sex, SgAsmElfSectionTableEntry::Elf32SectionTableEntry_disk *disk) const
Encode a section table entry into the disk structure.
void set_sh_info(unsigned long const &)
Property: sh_info.
void set_sh_addralign(Rose::BinaryAnalysis::Address const &)
Property: sh_addralign.
SgAsmElfSectionTableEntry()
Default constructor.
void set_sh_addr(Rose::BinaryAnalysis::Address const &)
Property: sh_addr.
void set_extra(SgUnsignedCharList const &)
Property: Extra bytes not officially part of the table entry.
void set_sh_type(SgAsmElfSectionTableEntry::SectionType const &)
Property: sh_type.
void set_sh_offset(Rose::BinaryAnalysis::Address const &)
Property: sh_offset.
void set_sh_name(unsigned const &)
Property: sh_name.
SgAsmElfSectionTableEntry(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfSectionTableEntry::Elf64SectionTableEntry_disk *disk)
Converts 64-bit disk representation to host representation.
SgAsmElfSectionTableEntry::SectionType const & get_sh_type() const
Property: sh_type.
unsigned long const & get_sh_info() const
Property: sh_info.
void set_sh_link(unsigned long const &)
Property: sh_link.
SectionType
Section types (host order).
@ SHT_SYMTAB
Complete symbol table.
@ SHT_GNU_verneed
Symbol Version Requirements [gnu extension] .gnu.version_r.
@ SHT_GNU_versym
Symbol Version Table [gnu extension] .gnu.version.
@ SHT_GNU_verdef
Symbol Version Definitions [gnu extension] .gnu.version_d.
@ SHT_DYNAMIC
Information for dynamic linking.
@ SHT_NOTE
Information that marks the file in some way.
@ SHT_PROGBITS
Info defined by the program; format and meaning determined by prog.
@ SHT_SHLIB
Reserved, unspecified semantics; Present only in non-conforming files.
@ SHT_NOBITS
Like SHT_PROGBITS but occupies no file space.
@ SHT_REL
Relocation entries without explicit addends (e.g., Elf32_Rel types)
@ SHT_LOOS
OS specific semantics.
@ SHT_NULL
Section header is inactive.
@ SHT_HASH
Symbol hash table (used by dynamic linking)
@ SHT_RELA
Relocation entries with explicit addends (e.g., Elf32_Rela types)
@ SHT_HIOS
End OS specific semantics.
@ SHT_DYNSYM
Minimal set of dynamic linking symbols.
SgUnsignedCharList & get_extra()
Property: Extra bytes not officially part of the table entry.
SectionFlags
Section Flags (host order).
@ SHF_GROUP
Section is member of a group.
@ SHF_ALLOC
Occupies memory during execution.
@ SHF_MASKPROC
Processor-specific.
@ SHF_TLS
Section hold thread-local data.
@ SHF_STRINGS
Contains nul-terminated strings.
@ SHF_NULL
Invalid section flag (added for rose)
@ SHF_LINK_ORDER
Preserve order after combining.
@ SHF_INFO_LINK
'sh_info' contains SHT index
@ SHF_OS_NONCONFORMING
Non-standard OS specific handling required.
SgAsmElfSectionTableEntry(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfSectionTableEntry::Elf32SectionTableEntry_disk *disk)
Converts 32-bit disk representation to host representation.
SgUnsignedCharList const & get_extra() const
Property: Extra bytes not officially part of the table entry.
Represents an ELF section table.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
SgAsmElfSectionTableEntry * addSection(SgAsmElfSection *)
Attaches a previously unattached ELF Section to the section table.
virtual ~SgAsmElfSectionTable()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void unparse(std::ostream &) const override
Write the section table section back to disk.
SgAsmElfSectionTable()
Default constructor.
Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const
Returns info about the size of the entries based on information already available.
virtual SgAsmElfSectionTable * parse() override
Parses an ELF Section Table.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSectionTable(SgAsmElfFileHeader *)
Constructor creates section table within the AST.
Base class for ELF file sections.
SgAsmElfSection *const & get_linkedSection() const
Property: Linked section.
Rose::BinaryAnalysis::Address calculateSizes(size_t r32size, size_t r64size, const std::vector< size_t > &optsizes, size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const
Returns info about the size of the entries based on information already available.
SgAsmElfSegmentTableEntry *const & get_segmentEntry() const
Property: The segment table entry corresponding to this section.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void set_sectionEntry(SgAsmElfSectionTableEntry *const &)
Property: The section table entry corresponding to this section.
SgAsmElfSection(SgAsmGenericHeader *)
Constructor for sections not yet in a table.
virtual void set_linkedSection(SgAsmElfSection *)
Property: Linked section.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
SgAsmElfSectionTableEntry *const & get_sectionEntry() const
Property: The section table entry corresponding to this section.
void allocateNameToStorage(SgAsmElfStringSection *)
Make this section's name to be stored in the specified string table.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const
Base implementation for calculating sizes.
SgAsmElfSection * initFromSegmentTable(SgAsmElfSegmentTableEntry *, bool mmapOnly=false)
Initializes the section from data parse from the ELF Segment Table.
SgAsmElfFileHeader * get_elfHeader() const
Obtain ELF header.
SgAsmElfSection * initFromSectionTable(SgAsmElfSectionTableEntry *, SgAsmElfStringSection *, int id)
Initializes the section from data parsed from the ELF Section Table.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_segmentEntry(SgAsmElfSegmentTableEntry *const &)
Property: The segment table entry corresponding to this section.
SgAsmElfSegmentTableEntryList()
Default constructor.
void set_entries(SgAsmElfSegmentTableEntryPtrList const &)
Property: Segment table entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSegmentTableEntryPtrList const & get_entries() const
Property: Segment table entries.
virtual ~SgAsmElfSegmentTableEntryList()
Destructor.
SgAsmElfSegmentTableEntryPtrList & get_entries()
Property: Segment table entries.
Represents one entry of a segment table.
Rose::BinaryAnalysis::Address const & get_paddr() const
Property: ELF paddr field.
SgAsmElfSegmentTableEntry::SegmentType const & get_type() const
Property: Segment type.
void set_offset(Rose::BinaryAnalysis::Address const &)
Property: Offset of segment in the file.
void set_vaddr(Rose::BinaryAnalysis::Address const &)
Property: Virtual address.
Rose::BinaryAnalysis::Address const & get_vaddr() const
Property: Virtual address.
static std::string toString(SgAsmElfSegmentTableEntry::SegmentFlags)
Convert segment flags to string.
static std::string toString(SgAsmElfSegmentTableEntry::SegmentType)
Convert segment type to string.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
Rose::BinaryAnalysis::Address const & get_memsz() const
Property: Size of segment in memory.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSegmentTableEntry::Elf64SegmentTableEntry_disk *) const
Converts segment table entry back into disk structure.
virtual ~SgAsmElfSegmentTableEntry()
Destructor.
SgAsmElfSegmentTableEntry(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfSegmentTableEntry::Elf32SegmentTableEntry_disk *disk)
Construct node from 32-bit file data.
SgAsmElfSegmentTableEntry(Rose::BinaryAnalysis::ByteOrder::Endianness sex, const SgAsmElfSegmentTableEntry::Elf64SegmentTableEntry_disk *disk)
Construct node from 64-bit file data.
void set_paddr(Rose::BinaryAnalysis::Address const &)
Property: ELF paddr field.
void set_filesz(Rose::BinaryAnalysis::Address const &)
Property: Size of segment in file.
Rose::BinaryAnalysis::Address const & get_align() const
Property: Alignment.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSegmentTableEntry::Elf32SegmentTableEntry_disk *) const
Converts segment table entry back into disk structure.
void set_flags(SgAsmElfSegmentTableEntry::SegmentFlags const &)
Property: Segment flags.
SgAsmElfSegmentTableEntry()
Default constructor.
SegmentType
Segment types (host order).
@ PT_NOTE
Auxiliary information.
@ PT_GNU_RELRO
Read-only after relocation.
@ PT_PAX_FLAGS
Indicates PaX flag markings.
@ PT_SUNWBSS
Sun Specific segment.
@ PT_INTERP
Segment contains NUL-terminated path name of interpreter.
@ PT_LOAD
Loadable by mapping file contents into memory.
@ PT_GNU_STACK
Indicates stack executability.
@ PT_PHDR
Segment contains the segment table itself (program header array)
@ PT_DYNAMIC
Dynamic linking information.
@ PT_GNU_EH_FRAME
GCC .eh_frame_hdr segment.
@ PT_LOPROC
Values reserved for processor-specific semantics.
@ PT_LOOS
Values reserved for OS-specific semantics.
@ PT_TLS
Thread local storage.
@ PT_SHLIB
Reserved w/unspecified semantics.
void set_extra(SgUnsignedCharList const &)
Property: Extra bytes.
@ PF_PROC_MASK
Processor-specific bits.
@ PF_NONE
Initial value in c'tor.
@ PF_XPERM
Execute permission.
void set_align(Rose::BinaryAnalysis::Address const &)
Property: Alignment.
Rose::BinaryAnalysis::Address const & get_offset() const
Property: Offset of segment in the file.
Rose::BinaryAnalysis::Address const & get_filesz() const
Property: Size of segment in file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgUnsignedCharList const & get_extra() const
Property: Extra bytes.
SgUnsignedCharList & get_extra()
Property: Extra bytes.
SgAsmElfSegmentTableEntry::SegmentFlags const & get_flags() const
Property: Segment flags.
void set_memsz(Rose::BinaryAnalysis::Address const &)
Property: Size of segment in memory.
void set_type(SgAsmElfSegmentTableEntry::SegmentType const &)
Property: Segment type.
void set_index(size_t const &)
Property: Index into table.
void updateFromSection(SgAsmElfSection *)
Update this segment table entry with newer information from the section.
size_t const & get_index() const
Property: Index into table.
Represents an ELF segment table.
virtual void unparse(std::ostream &) const override
Write the segment table to disk.
Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const
Returns info about the size of the entries based on information already available.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
SgAsmElfSegmentTableEntry * addSection(SgAsmElfSection *)
Attaches new segments to the segment table.
virtual ~SgAsmElfSegmentTable()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
SgAsmElfSegmentTable(SgAsmElfFileHeader *)
Constuct segment table linked into the AST.
SgAsmElfSegmentTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmElfSegmentTable * parse() override
Parses an ELF Segment (Program Header) Table.
ELF string table section.
SgAsmElfStringSection()
Default constructor.
virtual void set_size(Rose::BinaryAnalysis::Address newsize) override
Adjust size of table.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfStrtab *const & get_strtab() const
Property: String table.
virtual void unparse(std::ostream &) const override
Unparse an ElfStringSection by unparsing the ElfStrtab.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Dump debugging information.
SgAsmElfStringSection(SgAsmElfFileHeader *)
Constructor that links new object into AST.
void set_strtab(SgAsmElfStrtab *const &)
Property: String table.
virtual SgAsmElfStringSection * parse() override
Initialize object by parsing binary specimen.
virtual ~SgAsmElfStringSection()
Destructor.
virtual bool reallocate() override
Reallocate space for the string section if necessary.
ELF string table.
SgAsmElfStrtab()
Default constructor.
SgAsmElfStrtab(class SgAsmElfSection *containing_section)
Non-parsing constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual Rose::BinaryAnalysis::Address get_storageSize(const SgAsmStringStorage *) override
Returns the number of bytes required to store the string in the string table.
void destructorHelper() override
Free StringStorage objects associated with this string table.
virtual void unparse(std::ostream &) const
Write string table back to disk.
virtual SgAsmElfStrtab * parse() override
Parses the string table.
virtual ~SgAsmElfStrtab()
Destructor.
virtual void allocateOverlap(SgAsmStringStorage *) override
Find offset for a string.
virtual void rebind(SgAsmStringStorage *, Rose::BinaryAnalysis::Address) override
Similar to create_storage but uses a storage object that's already been allocated.
virtual SgAsmStringStorage * createStorage(Rose::BinaryAnalysis::Address offset, bool shared) override
Creates the storage item for the string at the specified offset.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSymbolList()
Default constructor.
SgAsmElfSymbolPtrList & get_symbols()
Property: Symbol list.
void set_symbols(SgAsmElfSymbolPtrList const &)
Property: Symbol list.
virtual ~SgAsmElfSymbolList()
Destructor.
SgAsmElfSymbolPtrList const & get_symbols() const
Property: Symbol list.
ELF file section containing symbols.
virtual bool reallocate() override
Called prior to unparsing.
virtual SgAsmElfSymbolSection * parse() override
Initialize by parsing a file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void finishParsing() override
Update section pointers for locally-bound symbols.
SgAsmElfSymbolSection(SgAsmElfFileHeader *fhdr, SgAsmElfStringSection *strsec)
Non-parsing constructor.
virtual void unparse(std::ostream &) const override
Write symbol table sections back to disk.
size_t indexOf(SgAsmElfSymbol *)
Given a symbol, return its index in this symbol table.
void set_isDynamic(bool const &)
Property: Whether this section represents dynamic linking symbols.
void set_symbols(SgAsmElfSymbolList *const &)
Property: Symbols.
bool const & get_isDynamic() const
Property: Whether this section represents dynamic linking symbols.
SgAsmElfSymbolList *const & get_symbols() const
Property: Symbols.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override
Return sizes for various parts of the table.
void initializeProperties()
Initialize all properties that have explicit initial values.
Represents a single ELF symbol.
void set_st_shndx(unsigned const &)
Property: shndx.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSymbol::Elf32SymbolEntry_disk *) const
Encode a symbol into disk format.
Rose::BinaryAnalysis::Address const & get_st_size() const
Property: size.
SgAsmElfSymbol::ElfSymBinding get_elfBinding() const
Returns binding as an enum constant.
SgUnsignedCharList const & get_extra() const
Property: Extra data.
void set_extra(SgUnsignedCharList const &)
Property: Extra data.
void set_st_info(unsigned char const &)
Property: Info.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfSymbol::Elf64SymbolEntry_disk *)
Initialize symbol by parsing a symbol table entry.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override
Print some debugging info.
void set_st_res1(unsigned char const &)
Property: Reserved byte.
static std::string toString(SgAsmElfSymbol::ElfSymBinding)
Converts enum constant to string.
static std::string toString(SgAsmElfSymbol::ElfSymType)
Converts enum constant to string.
@ STT_COMMON
Common data object.
@ STT_FUNC
Code object.
@ STT_TLS
Thread-local data object.
@ STT_SECTION
Associated with a section.
@ STT_NOTYPE
Unspecified type.
@ STT_OBJECT
Data object.
@ STT_FILE
Name of a file.
@ STT_IFUNC
Indirect function.
SgUnsignedCharList & get_extra()
Property: Extra data.
void dump(FILE *, const char *prefix, ssize_t idx, SgAsmGenericSection *) const
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_st_size(Rose::BinaryAnalysis::Address const &)
Property: size.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSymbol::Elf64SymbolEntry_disk *) const
Encode a symbol into disk format.
unsigned char const & get_st_info() const
Property: Info.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfSymbol::Elf32SymbolEntry_disk *)
Initialize symbol by parsing a symbol table entry.
SgAsmElfSymbol::ElfSymType get_elfType() const
Returns type as an enum constant.
SgAsmElfSymbol(SgAsmElfSymbolSection *)
Constructor that adds the symbol to a symbol table.
unsigned char const & get_st_res1() const
Property: Reserved byte.
unsigned const & get_st_shndx() const
Property: shndx.
List of symbol version aux entries.
SgAsmElfSymverDefinedAuxPtrList const & get_entries() const
Property: List of entries.
void set_entries(SgAsmElfSymverDefinedAuxPtrList const &)
Property: List of entries.
SgAsmElfSymverDefinedAuxPtrList & get_entries()
Property: List of entries.
virtual ~SgAsmElfSymverDefinedAuxList()
Destructor.
SgAsmElfSymverDefinedAuxList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Auxiliary data for an ELF Symbol Version.
virtual ~SgAsmElfSymverDefinedAux()
Destructor.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSymverDefinedAux::ElfSymverDefinedAux_disk *) const
Convert this object into the disk format record to be written back to the Symbol Version Definition T...
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_name(SgAsmGenericString *const &)
Property: Name.
SgAsmGenericString *const & get_name() const
Property: Name.
SgAsmElfSymverDefinedAux(SgAsmElfSymverDefinedEntry *symver_def_entry, SgAsmElfSymverDefinedSection *symver_def_sec)
Constructor linking object into AST.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const
Print debugging information.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfSymverDefinedAux::ElfSymverDefinedAux_disk *)
Initialize this object with data parsed from a file.
SgAsmElfSymverDefinedAux()
Default constructor.
List of entries for the ELF symbol version definition table.
virtual ~SgAsmElfSymverDefinedEntryList()
Destructor.
void set_entries(SgAsmElfSymverDefinedEntryPtrList const &)
Property: List of table entries.
SgAsmElfSymverDefinedEntryPtrList const & get_entries() const
Property: List of table entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSymverDefinedEntryPtrList & get_entries()
Property: List of table entries.
SgAsmElfSymverDefinedEntryList()
Default constructor.
One entry from an ELF symbol version definition table.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSymverDefinedEntry::ElfSymverDefinedEntry_disk *) const
Convert to the disk format.
void set_index(size_t const &)
Property: Index.
virtual ~SgAsmElfSymverDefinedEntry()
Destructor.
SgAsmElfSymverDefinedEntry()
Default constructor.
void set_flags(int const &)
Property: Flags.
size_t const & get_version() const
Property: Version.
void set_entries(SgAsmElfSymverDefinedAuxList *const &)
Property: Entries.
int const & get_flags() const
Property: Flags.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const
Print some debugging info.
size_t const & get_index() const
Property: Index.
SgAsmElfSymverDefinedAuxList *const & get_entries() const
Property: Entries.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfSymverDefinedEntry::ElfSymverDefinedEntry_disk *)
Initialize by parsing information from the file.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_hash() const
Property: Hash.
void set_version(size_t const &)
Property: Version.
void set_hash(uint32_t const &)
Property: Hash.
SgAsmElfSymverDefinedEntry(SgAsmElfSymverDefinedSection *symver_defined)
Constructor linking ojbec into the AST.
The GNU symbol version definitions.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void set_entries(SgAsmElfSymverDefinedEntryList *const &)
Property: List of entries.
virtual void unparse(std::ostream &) const override
Write SymverDefined section back to disk.
virtual ~SgAsmElfSymverDefinedSection()
Destructor.
SgAsmElfSymverDefinedSection(SgAsmElfFileHeader *fhdr, SgAsmElfStringSection *strsec)
Constructor linking object into AST.
SgAsmElfSymverDefinedEntryList *const & get_entries() const
Property: List of entries.
virtual SgAsmElfSymverDefinedSection * parse() override
Initializes this ELF SymverDefined Section by parsing a file.
SgAsmElfSymverDefinedSection()
Default constructor.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override
Return sizes for various parts of the table.
List of entries from a symbol version table.
void set_entries(SgAsmElfSymverEntryPtrList const &)
Property: List of symbol version table entries.
virtual ~SgAsmElfSymverEntryList()
Destructor.
SgAsmElfSymverEntryList()
Default constructor.
SgAsmElfSymverEntryPtrList & get_entries()
Property: List of symbol version table entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSymverEntryPtrList const & get_entries() const
Property: List of symbol version table entries.
Entry in an ELF symbol version table.
SgAsmElfSymverEntry(SgAsmElfSymverSection *)
Constructor that links new entry into the AST.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const
Prints some debugging info.
size_t const & get_value() const
Property: Value.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_value(size_t const &)
Property: Value.
SgAsmElfSymverEntry()
Default constructor.
virtual ~SgAsmElfSymverEntry()
Destructor.
Hods a list of symbol version aux entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSymverNeededAuxPtrList const & get_entries() const
Property: List of entries.
virtual ~SgAsmElfSymverNeededAuxList()
Destructor.
SgAsmElfSymverNeededAuxPtrList & get_entries()
Property: List of entries.
SgAsmElfSymverNeededAuxList()
Default constructor.
void set_entries(SgAsmElfSymverNeededAuxPtrList const &)
Property: List of entries.
Auxiliary info for needed symbol version.
int const & get_flags() const
Property: Flags.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const
Print debugging information.
SgAsmElfSymverNeededAux(SgAsmElfSymverNeededEntry *entry, SgAsmElfSymverNeededSection *symver)
Constructor linking object into AST.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfSymverNeededAux::ElfSymverNeededAux_disk *)
Initialize this auxiliary record by parsing data from the file.
size_t const & get_other() const
Property: Other.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSymverNeededAux::ElfSymverNeededAux_disk *) const
Encode this auxiliary record into a format that can be written to a file.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint32_t const & get_hash() const
Property: Hash.
void set_name(SgAsmGenericString *const &)
Property: Name.
void set_hash(uint32_t const &)
Property: Hash.
virtual ~SgAsmElfSymverNeededAux()
Destructor.
void set_other(size_t const &)
Property: Other.
SgAsmGenericString *const & get_name() const
Property: Name.
void set_flags(int const &)
Property: Flags.
SgAsmElfSymverNeededAux()
Default constructor.
List of symbol version needed entries.
virtual ~SgAsmElfSymverNeededEntryList()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_entries(SgAsmElfSymverNeededEntryPtrList const &)
Property: List of entries.
SgAsmElfSymverNeededEntryPtrList & get_entries()
Property: List of entries.
SgAsmElfSymverNeededEntryList()
Default constructor.
SgAsmElfSymverNeededEntryPtrList const & get_entries() const
Property: List of entries.
One entry of the ELF symbol version needed table.
SgAsmElfSymverNeededEntry(SgAsmElfSymverNeededSection *)
Constructor that links object into the AST.
void set_version(size_t const &)
Property: Version.
void set_entries(SgAsmElfSymverNeededAuxList *const &)
Property: List of entries.
void set_fileName(SgAsmGenericString *const &)
Property: File name.
size_t const & get_version() const
Property: Version.
void parse(Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmElfSymverNeededEntry::ElfSymverNeededEntry_disk *)
Initialize object by parsing file.
SgAsmElfSymverNeededAuxList *const & get_entries() const
Property: List of entries.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSymverNeededEntry::ElfSymverNeededEntry_disk *) const
Encode object to disk representation.
SgAsmGenericString *const & get_fileName() const
Property: File name.
virtual void dump(FILE *f, const char *prefix, ssize_t idx) const
Print debugging information.
void initializeProperties()
Initialize all properties that have explicit initial values.
GNU symbol version requirements table.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override
Return sizes for various parts of the table.
SgAsmElfSymverNeededEntryList *const & get_entries() const
Property: List of entries.
virtual void unparse(std::ostream &) const override
Write SymverNeeded section back to disk.
SgAsmElfSymverNeededSection()
Default constructor.
virtual SgAsmElfSymverNeededSection * parse() override
Parse a GNU Symbol Version Requirements Table.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmElfSymverNeededSection(SgAsmElfFileHeader *fhdr, SgAsmElfStringSection *strsec)
Constructor that links objec into AST.
virtual ~SgAsmElfSymverNeededSection()
Destructor.
void set_entries(SgAsmElfSymverNeededEntryList *const &)
Property: List of entries.
The ELF symbol version table.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_entries(SgAsmElfSymverEntryList *const &)
Property: List of table entries.
virtual SgAsmElfSymverSection * parse() override
Initializes section by parsing the file.
SgAsmElfSymverEntryList *const & get_entries() const
Property: List of table entries.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void unparse(std::ostream &) const override
Write symver table sections back to disk.
virtual Rose::BinaryAnalysis::Address calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override
Return sizes for various parts of the table.
virtual ~SgAsmElfSymverSection()
Destructor.
SgAsmElfSymverSection()
Default constructor.
SgAsmElfSymverSection(SgAsmElfFileHeader *)
Construct section and link it into the AST.
Exception for container syntax errors.
Exception for reading past the end of something.
Rose::BinaryAnalysis::Address size
Number of bytes of attempted read.
Rose::BinaryAnalysis::Address offset
Byte offset into section (or file).
const SgAsmGenericSection * section
Section from which read occurred; null implies file-level write.
Exception for writing past the end of something.
Rose::BinaryAnalysis::Address offset
Byte offset into section (or file).
const SgAsmGenericSection * section
Section to which write occurred; null implies file-level write.
Rose::BinaryAnalysis::Address size
Number of bytes of attempted write.
Base class for many binary analysis nodes.
static Sawyer::Message::Facility mlog
Diagnostic stream.
ExecPurpose
General purpose of a binary executable file.
@ PURPOSE_OS_SPECIFIC
Some operating system specific purpose.
@ PURPOSE_OTHER
A purpose other than any defined below.
@ PURPOSE_UNSPECIFIED
Purpose is not specified and could not be inferred.
@ PURPOSE_EXECUTABLE
Executable program.
@ PURPOSE_CORE_DUMP
Post mortem image.
@ PURPOSE_PROC_SPECIFIC
Some processor specific purpose.
@ PURPOSE_LIBRARY
Library (shared or relocatable)
static void initDiagnostics()
Initialize diagnostic streams.
static void unparseBinaryFormat(const std::string &name, SgAsmGenericFile *)
Dump debugging information into a named text file.
static SgAsmGenericFile * parseBinaryFormat(const char *name)
Factory method that parses a binary file.
struct stat fileDetails
Information about the file in the filesystem.
ExecABI
Application binary interface.
@ ABI_UNSPECIFIED
Not specified in file and could not be inferred.
@ ABI_OTHER
Anything other than values below.
@ ABI_JVM
Java Virtual Machine (JVM).
static void unparseBinaryFormat(std::ostream &, SgAsmGenericFile *)
Dump debugging information to specified stream.
SgAsmExecutableFileFormat()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
@ FAMILY_ELF
Unix Executable and Linking Format.
@ FAMILY_DOS
Microsoft DOS format.
@ FAMILY_PE
Microsoft Portable Executable Format.
@ FAMILY_JVM
Java Virtual Machine (JVM) format.
@ FAMILY_NE
Microsoft New Executable Format.
@ FAMILY_LE
Microsft Linear Executable format.
@ FAMILY_UNSPECIFIED
Unspecified family.
@ FAMILY_LX
OS/2 LX (Windows 9x VxD device drivers, extension of LE).
virtual ~SgAsmExecutableFileFormat()
Destructor.
InsSetArchitecture
Instruction sets organized by families.
@ ISA_ARM_ARM1
ARM evaluation system.
@ ISA_MIPS_R4200
low-cost version of R4000
@ ISA_JVM
Java Virtual Machine (JVM) instruction set.
@ ISA_UNSPECIFIED
File does not specify an architecture.
@ ISA_M68K_68040
generation three: pipelined
@ ISA_ARM_A64
ARM AArch64 A64 instruction set.
@ ISA_M68K_68020
generation two: fully 32-bit
@ ISA_IA32_AMDK5
micro-op translation
@ ISA_IA32_Family
x86 IA-32 family of architectures; Intel, AMD, VIA, ...
@ ISA_M88K_88110MP
on-chip comm for use in multi-processor systems
@ ISA_M88K_Family
Motorola m88k family (not very popular)
@ ISA_ARM_StrongARM
SA-110, SA-1110 cores.
@ ISA_ARM_ARM7
ARM{700,710,710a,7100,7500,7500FE} cores.
@ ISA_M68K_68000
generation one: 16/32 internal; 8-, 16-, 32-bit interface
@ ISA_X8664_IntelCore
low power, multi-core, lower clock frequency
@ ISA_MIPS_R2000
32-bit, Big or little endian
@ ISA_MIPS_R16000
R14000 + increased freq, more L1, smaller die.
@ ISA_MIPS_R14000
R12000 + support for DDR SRAM; 200MHz front side bus.
@ ISA_M88K_88120
superscalar (never actually released)
@ ISA_X8664_AMDPhenom
quad core, 128-bit FPUs, SSE4a, native mem ctrl, on-die L3 cache
@ ISA_ARM_Family
Acorn RISC Machine, Advanced RISC Machines, ARM Limited.
@ ISA_I860_860XP
(code named N11) larger caches; 40-50MHz; same IS as XR
@ ISA_IA32_PentiumII
L3-cache, 3D Now, SSE.
@ ISA_MIPS_R8000
superscalar, fairly rare
@ ISA_MIPS_R4600
"Orion" by Qauntum Effect Devices (QED); larger caches
@ ISA_IA32_Pentium4
deeply pipelined, high frequency, SSE2, hyper-threading
@ ISA_ARM_ARM11
ARMv{6,6T2,6KZ,6K} cores.
@ ISA_SPARC_Family
SPARC family of architectures; Sun Microsystems.
@ ISA_ARM_Cortex
Cortex-{A8,A9,A9 MPCore,R4(F),M3,M1} cores.
@ ISA_MIPS_RM7000
by PMC-Sierra; 256kB L2 and optional L3
@ ISA_OTHER
Architecture is something other than below.
@ ISA_IA64_Itanium
First generation.
@ ISA_IA64_Itanium2
Second generation starting Nov 2007.
@ ISA_MIPS_R4000
64-bit; others in the series had larger caches and bug fixes
@ ISA_MIPS_R10000
R8000 on a single chip; 32kB caches; out-of-order.
@ ISA_ARM_ARM6
ARM60, ARM600, ARM610 cores.
@ ISA_X8664_Prescott
deeply pipelined, high frequency, SSE3
@ ISA_ARM_ARM2
ARM2, ARM250 cores.
@ ISA_MIPS_R4300
low-cost version of R4000 with 32-bit external bus
@ ISA_M68K_68060
generation four: superscalar
@ ISA_ARM_ARM10E
ARM{1020E,1022E,1026EJ-S} cores.
@ ISA_X8664_Athlon64
on-die memory controller, 40-bit phys address space
@ ISA_M68K_Family
Motorala m68k family.
@ ISA_IA32_486
risc-like pipelining, integrated FPU, on-chip cache
@ ISA_I860_Family
Intel i860 family; 1989-mid 90's; RISC VLIW.
@ ISA_ARM_ARM7TDMI
ARM{7TDMI,7TDMI-S,710T,720T,740T,7EJ-S} cores.
@ ISA_IA32_Athlon
superscalar FPU, wide design
@ ISA_FAMILY_MASK
Mask to get family part of ISA.
@ ISA_MIPS_R3000
virtual identical: Pacempi's R3400, IDT's R3500, Toshiba R3900
@ ISA_IA32_Pentium
superscalar, 64-bit databus, MMX
@ ISA_IA32_PentiumPro
PAE, integrated L2 cache.
@ ISA_ARM_ARM9TDMI
ARM{9TDMI,920T,922T,940T} cores.
@ ISA_ARM_XScale
80200, IOP310, IOP315, 80219, IOP321, IOP33x, IOP34x, PXA210, PXA250, PXA255, PXA26x,...
@ ISA_M88K_88110
single package of 88100+88200
@ ISA_IA32_Cyrix6x86
register renaming, speculative execution
@ ISA_M88K_88100
32-bit, integrated FPU mated with 88200 MMU and cache controller
@ ISA_ARM_ARM9E
ARM{946E-S,966E-S,968E-S,926EJ-S,966HS} cores.
@ ISA_I860_860XR
(code named N10) 25-40MHz
@ ISA_IA64_Family
Intel 64-bit architecture.
@ ISA_MIPS_R12000
R10000 + higher clock rates.
@ ISA_MIPS_Family
32/64-bit RISC; MIPS Technologies, Inc.
@ ISA_ATT_WE_32100
Sometimes simply "M32".
@ ISA_X8664_Family
x86-64 family of architectures: Intel, AMD, VIA, ...
List of expression nodes.
SgAsmExpressionPtrList const & get_expressions() const
Property: Pointers to expressions.
SgAsmExprListExp()
Default constructor.
SgAsmExpressionPtrList & get_expressions()
Property: Pointers to expressions.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmExprListExp()
Destructor.
void set_expressions(SgAsmExpressionPtrList const &)
Property: Pointers to expressions.
Base class for expressions.
SgAsmExpression()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Sawyer::Optional< int64_t > asSigned() const
Return a signed constant if possible.
SgAsmType *const & get_type() const
Property: Type of expression.
virtual ~SgAsmExpression()
Destructor.
void set_comment(std::string const &)
Property: Comment.
void set_type(SgAsmType *const &)
Property: Type of expression.
Sawyer::Optional< uint64_t > asUnsigned() const
Return a constant if possible.
virtual std::string toString() const
Converts an expression to a string.
std::string const & get_comment() const
Property: Comment.
size_t get_nBits() const
Property: Width of expression in bits.
Floating point types.
SgAsmFloatType(Rose::BinaryAnalysis::ByteOrder::Endianness, size_t nBits, const BitRange &significandBits, const BitRange exponentBits, size_t signBit, uint64_t exponentBias, Flags flags)
Construct a new floating-point type.
Sawyer::Container::BitVector::BitRange BitRange
Range of bits used for various purposes within the values of this type.
BitRange significandBits() const
Property: Offset to significand least significant bit.
virtual ~SgAsmFloatType()
Destructor.
static Flags ieeeFlags()
Default IEEE 754 flags.
bool implicitBitConvention() const
Property: Whether the type follows the IEEE 754 significand implicit bit convention.
bool gradualUnderflow() const
Property: Whether type has gradual underflow.
Flags flags() const
Property: Bit vector of all boolean properties.
virtual void check() const override
Validate properties collectively.
static SgAsmFloatType * instanceIeee32(Rose::BinaryAnalysis::ByteOrder::Endianness)
Construct an IEEE 754 floating point type of the specified width.
virtual std::string toString() const override
Convert a type to a string.
uint64_t exponentBias() const
Property: Zero-point of exponent.
Rose::BitFlags< Flag > Flags
Collective bit flags for this floating-point type.
static SgAsmFloatType * instanceIeee64(Rose::BinaryAnalysis::ByteOrder::Endianness)
Construct an IEEE 754 floating point type of the specified width.
size_t signBit() const
Property: Offset to significand sign bit.
SgAsmFloatType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Flag
Individual bit flags for this floating-point type.
@ GRADUAL_UNDERFLOW
De-normalized signifand when exponent field is clear.
@ IMPLICIT_BIT_CONVENTION
Use IEEE 754 implicit bit convention for signicand.
BitRange exponentBits() const
Property: Number of bits in the exponent.
void updateBitVector()
Update bit vector from native representation.
virtual ~SgAsmFloatValueExpression()
Destructor.
void set_nativeValue(double)
Set AST node value to specified native value.
SgAsmFloatValueExpression(double nativeValue, SgAsmType *)
Construct specified floating-point value.
SgAsmFloatValueExpression()
Default constructor.
void updateNativeValue() const
Update cached native value from bit vector.
void initializeProperties()
Initialize all properties that have explicit initial values.
double get_nativeValue() const
Get value in native format.
SgAsmFloatValueExpression(const Sawyer::Container::BitVector &, SgAsmType *)
Construct specified floating-point value.
Selection functor for SgAsmFunction::get_extent().
Represents a synthesized function.
int64_t const & get_stackDelta() const
Property: Net effect of function on the stack pointer.
void set_statementList(SgAsmStatementPtrList const &)
Property: Statements that make up a function.
void set_symbolTable(SgSymbolTable *const &)
Property: Symbol table.
bool get_sha1(uint8_t digest[20], NodeSelector *selector=NULL)
Computes the SHA1 message digest for the bytes of a function.
SgAsmFunction::function_kind_enum const & get_functionKind() const
Property: Kind of function.
void set_stackDelta(int64_t const &)
Property: Net effect of function on the stack pointer.
static std::string reasonString(bool pad, unsigned reason)
Class method that converts a reason bit vector to a human-friendly string.
void set_name(std::string const &)
Property: Name.
std::string const & get_reasonComment() const
Property: Additional function existance reason comment.
size_t get_extent(Rose::BinaryAnalysis::AddressIntervalSet *emap=NULL, Rose::BinaryAnalysis::Address *lo_addr=NULL, Rose::BinaryAnalysis::Address *hi_addr=NULL, NodeSelector *selector=NULL)
Returns information about the function addresses.
void removeStatement(SgAsmStatement *statement)
Erases statement from statement list.
unsigned const & get_reason() const
Property: Reason that function exists.
SgAsmBlock * get_entryBlock() const
Function entry basic block.
void set_nameMd5(std::string const &)
Property: Hash of the function.
SgAsmStatementPtrList & get_statementList()
Property: Statements that make up a function.
void set_callingConvention(std::string const &)
Property: Primary calling convention.
void set_entryVa(Rose::BinaryAnalysis::Address const &)
Property: Primary entry address.
void set_functionKind(SgAsmFunction::function_kind_enum const &)
Property: Kind of function.
SgAsmStatementPtrList const & get_statementList() const
Property: Statements that make up a function.
static std::string reasonKey(const std::string &prefix="")
Multi-line description of function reason keys from unparser.
void appendStatement(SgAsmStatement *)
Adds statement to end of statement list.
SgSymbolTable *const & get_symbolTable() const
Property: Symbol table.
void set_mayReturn(SgAsmFunction::MayReturn const &)
Property: Whether a function could return to its caller.
void set_reason(unsigned const &)
Property: Reason that function exists.
function_kind_enum
Constants for the "function_kind" property.
std::string const & get_callingConvention() const
Property: Primary calling convention.
std::string const & get_name() const
Property: Name.
MayReturn
Whether a function returns.
@ RET_UNKNOWN
It is unknown whether this function ever returns or not.
@ RET_ALWAYS
This function returns each time it is called.
@ RET_SOMETIMES
This function may return or not, depending on how it is called.
@ RET_NEVER
This function is known to never return.
Rose::BinaryAnalysis::Address const & get_entryVa() const
Property: Primary entry address.
std::string const & get_nameMd5() const
Property: Hash of the function.
FunctionReason
Reasons why an instruction might be considered the beginning of a function.
@ FUNC_SYMBOL
Address of a function symbol in a symbol table.
@ FUNC_CMDLINE
Function mentioned on the command-line.
@ FUNC_EXPORT
Exported function.
@ FUNC_ENTRY_POINT
An entry point specified in the file header.
@ FUNC_THUNK
Function is a thunk.
@ FUNC_DEFAULT
Default value for Partitioner class.
@ FUNC_PESCRAMBLER_DISPATCH
Dispatcher function for code generated by pescrambler.
@ FUNC_IMPORT
Functions dynamically linked.
@ FUNC_INSNHEAD
Initial instructions not in any other function.
@ FUNC_NONE
Used for initialization; not a bit flag.
@ FUNC_USERDEF
User-defined algorithm.
@ FUNC_LEFTOVERS
Generated function to hold blocks that are otherwise not part of any function.
@ FUNC_INTRABLOCK
Function contains basic blocks that were inserted by searching the address space between the blocks d...
@ FUNC_CONFIGURED
Function is defined in a configuration file.
@ FUNC_GRAPH
Implied by inter-basicblock branching.
@ FUNC_SCAN_RO_DATA
Address was found in read-only data area by scanning the data.
@ FUNC_EXCEPTION_HANDLER
Function for handling an exception.
@ FUNC_DISCONT
Blocks of function are not contiguous in memory.
@ FUNC_CALL_INSN
Target of call, possibly not in the CFG (see Partitioner::mark_call_insns).
@ FUNC_MISCMASK
Miscellaneous.
@ FUNC_THUNK_TARGET
Function is the target of a thunk.
@ FUNC_PATTERN
Appears to be a function based on pattern of instructions.
@ FUNC_INSN_RO_DATA
Address was found in read-only data referenced by an existing instruction.
@ FUNC_INTERPADFUNC
Detected by Partitioner::FindInterPadFunctions, which looks for unassigned space between two inter-fu...
@ FUNC_EH_FRAME
Address mentioned in the ELF .eh_frame section.
@ FUNC_PADDING
Created to represent NOP padding between other functions.
@ FUNC_CALL_TARGET
Target of a function call instruction sequence in the CFG.
void set_reasonComment(std::string const &)
Property: Additional function existance reason comment.
void initializeProperties()
Initialize all properties that have explicit initial values.
std::string reasonString(bool pad) const
Returns a very short string describing the reason mask.
SgAsmFunction::MayReturn const & get_mayReturn() const
Property: Whether a function could return to its caller.
List of pointers to other nodes.
SgAsmGenericDLLList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmGenericDLLList()
Destructor.
SgAsmGenericDLLPtrList & get_dlls()
Property: List of AST node pointers.
void set_dlls(SgAsmGenericDLLPtrList const &)
Property: List of AST node pointers.
SgAsmGenericDLLPtrList const & get_dlls() const
Property: List of AST node pointers.
Base class for dynamically linked library information.
virtual ~SgAsmGenericDLL()
Destructor.
void addSymbol(const std::string &)
Add a needed symbol to the import list for this DLL.
SgAsmGenericString *const & get_name() const
Property: Name.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgStringList const & get_symbols() const
Property: Symbols.
SgAsmGenericDLL()
Default constructor.
void set_symbols(SgStringList const &)
Property: Symbols.
void set_name(SgAsmGenericString *s)
Property: Name.
SgAsmGenericDLL(SgAsmGenericString *s)
Constructor that initializes the name.
List of AST file node pointers.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericFilePtrList const & get_files() const
Property: List of AST node pointers.
SgAsmGenericFilePtrList & get_files()
Property: List of AST node pointers.
virtual ~SgAsmGenericFileList()
Destructor.
void set_files(SgAsmGenericFilePtrList const &)
Property: List of AST node pointers.
SgAsmGenericFileList()
Default constructor.
Base class for binary files.
bool const & get_neuter() const
Property: If set, refuse to unparse file.
SgAsmGenericSectionPtrList get_sectionsById(int id) const
Returns sections having specified ID across all headers, including headers and holes.
SgFileContentList const & get_data() const
Property: Contents of the file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericSectionPtrList get_mappedSections() const
Returns list of all sections in the file that are memory mapped, including headers and holes.
Rose::BinaryAnalysis::Address get_nextSectionOffset(Rose::BinaryAnalysis::Address offset)
File offset of next section.
SgAsmGenericSection * get_sectionByRva(Rose::BinaryAnalysis::Address rva, size_t *nfound=0) const
Find section by address.
SgAsmGenericSectionList *const & get_holes() const
Property: Addresses unreferenced during parsing.
void set_data(SgFileContentList const &)
Property: Contents of the file.
void addHole(SgAsmGenericSection *)
Adds a new hole to the file.
void dumpAll(const std::string &dumpname)
Print text file containing all known information about a binary file.
void set_fd(int const &)
Property: Read-only file descriptor.
SgAsmGenericHeaderList *const & get_headers() const
Property: List of all headers in file.
void set_holes(SgAsmGenericSectionList *const &)
Property: Addresses unreferenced during parsing.
void set_truncateZeros(bool const &)
Property: Whether to truncate zeros on writes.
SgAsmGenericSection * get_sectionByVa(Rose::BinaryAnalysis::Address va, size_t *nfound=0) const
Find section by address.
SgFileContentList content(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size)
Returns a vector that points to part of the file.
size_t readContent(Rose::BinaryAnalysis::Address offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true)
Reads data from a file.
SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep='\0') const
Returns all sections having specified name across all headers, including headers and holes.
const char * formatName() const
Return a string describing the file format.
void extendToEof(std::ostream &) const
Extend the output file by writing the last byte if it hasn't been written yet.
void set_trackingReferences(bool const &)
Property: Whether to track referenced areas during parsing.
SgAsmDwarfCompilationUnitList *const & get_dwarfInfo() const
Property: DWARF debugging hiearchy.
void fillHoles()
Find holes in file and create sections to fill them.
void set_neuter(bool const &)
Property: If set, refuse to unparse file.
Rose::BinaryAnalysis::Address get_currentSize() const
Returns current size of file based on section with highest ending address.
void addHeader(SgAsmGenericHeader *)
Adds a new header to the file.
SgAsmGenericSectionPtrList get_sectionsByOffset(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size) const
Find sections by their offset.
void markReferencedExtent(Rose::BinaryAnalysis::Address start_rva, Rose::BinaryAnalysis::Address size)
Marks part of a file as having been referenced if tracking references.
void dumpAll(bool in_cwd=true, const char *ext=NULL)
Print text file containing all known information about a binary file.
SgAsmGenericSection * get_sectionByOffset(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size, size_t *nfound=0) const
Find section by file offset.
void dump(FILE *) const
Print basic info about the sections of a file.
void set_referencedExtents(Rose::BinaryAnalysis::AddressIntervalSet const &)
Property: Addresses referenced during parsing.
int const & get_fd() const
Property: Read-only file descriptor.
void unparse(std::ostream &) const
Mirror image of parsing an executable file.
std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true)
Reads a string from a file.
std::string readContentString(const Rose::BinaryAnalysis::MemoryMap::Ptr &, Rose::BinaryAnalysis::Address va, bool strict=true)
Reads a string from a file.
static SgAsmGenericSection * bestSectionByVa(const SgAsmGenericSectionPtrList &sections, Rose::BinaryAnalysis::Address va)
Definition for "best".
Rose::BinaryAnalysis::Address get_originalSize() const
Returns original size of file, based on file system.
const Rose::BinaryAnalysis::AddressIntervalSet & get_unreferencedExtents() const
Returns the parts of the file that have never been referenced.
virtual void destructorHelper() override
This gets called by all Rosebud-generated destructors.
void set_dataConverter(DataConverter *)
Property: Data converter.
SgAsmGenericSectionPtrList get_sections(bool include_holes=true) const
Returns list of all sections in the file (including headers, holes, etc).
void set_dwarfInfo(SgAsmDwarfCompilationUnitList *const &)
Property: DWARF debugging hiearchy.
SgAsmGenericSection * get_sectionById(int id, size_t *nfound=0) const
Find section with specified ID.
DataConverter * get_dataConverter() const
Property: Data converter.
SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va) const
Find sections by address.
Rose::BinaryAnalysis::AddressIntervalSet const & get_referencedExtents() const
Property: Addresses referenced during parsing.
SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const
Find sections by address.
SgAsmGenericFile * parse(std::string file_name)
Loads file contents into memory.
SgAsmGenericSection * get_sectionByName(const std::string &, char sep=0, size_t *nfound=0) const
Find section by name.
void unfillHoles()
Deletes "hole" sections.
SgAsmGenericHeader * get_header(SgAsmExecutableFileFormat::ExecFamily)
Returns the header for the specified format.
void removeHole(SgAsmGenericSection *)
Removes a hole from the list of holes in a file.
void set_name(std::string const &)
Property: Name of file.
void set_headers(SgAsmGenericHeaderList *const &)
Property: List of all headers in file.
bool const & get_truncateZeros() const
Property: Whether to truncate zeros on writes.
void removeHeader(SgAsmGenericHeader *)
Removes a header from the header list in a file.
size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr &, Rose::BinaryAnalysis::Address va, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true)
Reads data from a file.
std::string const & get_name() const
Property: Name of file.
AddressSpace
Section modification functions for shiftExtend.
bool const & get_trackingReferences() const
Property: Whether to track referenced areas during parsing.
Elasticity
Elasticity argument for shiftExtend.
@ ELASTIC_UNREF
Unreferenced address space is elastic.
@ ELASTIC_NONE
Nothing is elastic; other parts of space are shifted.
@ ELASTIC_HOLE
Unreferenced and "hole" sections are elastic.
void shiftExtend(SgAsmGenericSection *, Rose::BinaryAnalysis::Address sa, Rose::BinaryAnalysis::Address sn, AddressSpace, Elasticity)
Moves and enlarges a section.
void shiftExtend(SgAsmGenericSection *s, Rose::BinaryAnalysis::Address sa, Rose::BinaryAnalysis::Address sn)
Moves and enlarges a section.
const SgFileContentList & content()
Property: Entire file contents.
SgAsmGenericSection * get_bestSectionByVa(Rose::BinaryAnalysis::Address va, size_t *nfound=0) const
Find section by address.
Basic information about an executable container.
void set_wordSize(size_t const &)
Property: Natural word size in bytes.
void set_isCurrentVersion(bool const &)
Property: Whether version is considered current.
size_t const & get_wordSize() const
Property: Natural word size in bytes.
void set_sex(Rose::BinaryAnalysis::ByteOrder::Endianness const &)
Property: Byte order.
void set_purpose(SgAsmGenericFormat::ExecPurpose const &)
Property: Purpose.
void set_abiVersion(unsigned const &)
Property: Application binary interface version.
unsigned const & get_version() const
Property: File format version number.
void set_version(unsigned const &)
Property: File format version number.
void set_abi(SgAsmGenericFormat::ExecABI const &)
Property: Application binary interface.
void set_family(SgAsmGenericFormat::ExecFamily const &)
Property: Family.
void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
SgAsmGenericFormat::ExecFamily const & get_family() const
Property: Family.
SgAsmGenericFormat::ExecPurpose const & get_purpose() const
Property: Purpose.
void initializeProperties()
Initialize all properties that have explicit initial values.
bool const & get_isCurrentVersion() const
Property: Whether version is considered current.
Rose::BinaryAnalysis::ByteOrder::Endianness const & get_sex() const
Property: Byte order.
unsigned const & get_abiVersion() const
Property: Application binary interface version.
SgAsmGenericFormat::ExecABI const & get_abi() const
Property: Application binary interface.
List of generic file headers.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericHeaderList()
Default constructor.
virtual ~SgAsmGenericHeaderList()
Destructor.
SgAsmGenericHeaderPtrList const & get_headers() const
Property: List of file header nodes.
SgAsmGenericHeaderPtrList & get_headers()
Property: List of file header nodes.
void set_headers(SgAsmGenericHeaderPtrList const &)
Property: List of file header nodes.
Base class for container file headers.
Rose::BinaryAnalysis::Address get_entryRva() const
Returns the RVA of the first entry point.
SgAsmGenericSection * get_sectionByRva(Rose::BinaryAnalysis::Address rva, size_t *nfound=0) const
Returns the single section having a preferred mapping that includes the specified relative virtual ad...
std::vector< SgAsmGenericDLL * > & get_dlls()
Vector of dynamically loaded libraries.
SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep=0) const
Returns sections in this header that have the specified name.
virtual const char * formatName() const
Returns the name of the file format.
SgAsmGenericSection * get_sectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const
Returns the section having a preferred or actual mapping that includes the specified virtual address.
SgAsmGenericSectionPtrList get_sectionsById(int id) const
Returns sections in this header that have the specified ID.
SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va, bool use_preferred) const
Returns sections having a preferred or actual mapping that includes the specified virtual address.
SgAsmGenericSectionPtrList get_sectionsByOffset(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size) const
Returns sectons in this header that contain all of the specified portion of the file.
SgAsmGenericSectionPtrList get_mappedSections() const
Returns the list of sections that are memory mapped.
SgAsmGenericSection * get_sectionById(int id, size_t *nfound=0) const
Returns single section in this header that has the specified ID.
void set_entryRvas(SgRVAList const &)
Property: Code entry point wrt base virtual address.
void addSection(SgAsmGenericSection *)
Adds a new section to the header.
SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const
Returns sections that have a preferred mapping that includes the specified relative virtual address.
SgAsmGenericHeader(SgAsmGenericFile *)
Constructor.
Rose::BinaryAnalysis::Address const & get_baseVa() const
Property: Base virtual address used by all relative virtual addresses.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericSection * get_bestSectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const
Like SgAsmGenericFile::get_best_section_by_va() except considers only sections defined in this header...
void set_dlls(SgAsmGenericDLLList *const &)
Property: List of dynamically linked libraries.
void set_baseVa(Rose::BinaryAnalysis::Address const &)
Property: Base virtual address used by all relative virtual addresses.
void set_isa(SgAsmGenericFormat::InsSetArchitecture const &)
Property: Machine for which this header and its sections, etc.
SgRVAList const & get_entryRvas() const
Property: Code entry point wrt base virtual address.
SgAsmGenericFormat::InsSetArchitecture const & get_isa() const
Property: Machine for which this header and its sections, etc.
SgRVAList & get_entryRvas()
Property: Code entry point wrt base virtual address.
SgCharList & get_magic()
Property: Optional magic number in file byte order.
SgAsmGenericDLLList *const & get_dlls() const
Property: List of dynamically linked libraries.
void addDll(SgAsmGenericDLL *dll)
Add a new DLL to the header DLL list.
SgAsmGenericFormat *const & get_executableFormat() const
Property: General info about the executable format.
void set_executableFormat(SgAsmGenericFormat *const &)
Property: General info about the executable format.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
SgAsmGenericSection * get_sectionByOffset(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size, size_t *nfound=0) const
Returns single section in this header that contains all of the specified portion of the file.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
SgAsmGenericSectionList *const & get_sections() const
Property: List of file sections.
void set_sections(SgAsmGenericSectionList *const &)
Property: List of file sections.
void removeSection(SgAsmGenericSection *)
Removes a secton from the header's section list.
SgAsmGenericSection * get_sectionByName(const std::string &, char sep=0, size_t *nfound=0) const
Returns single section in this header that has the specified name.
virtual void unparse(std::ostream &) const override
Unparse headers and all they point to.
void addEntryRva(const Rose::BinaryAnalysis::RelativeVirtualAddress &)
Append an RVA to the list of entry points.
SgCharList const & get_magic() const
Property: Optional magic number in file byte order.
void set_magic(SgCharList const &)
Property: Optional magic number in file byte order.
List of pointers to file sections.
void set_sections(SgAsmGenericSectionPtrList const &)
Property: List of section pointers.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericSectionList()
Default constructor.
SgAsmGenericSectionPtrList & get_sections()
Property: List of section pointers.
virtual ~SgAsmGenericSectionList()
Destructor.
SgAsmGenericSectionPtrList const & get_sections() const
Property: List of section pointers.
Contiguous region of a file.
bool isMapped() const
Whether section desires to be mapped to memory.
void set_data(SgFileContentList const &)
Property: Original content of just this section.
size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr &, const Rose::BinaryAnalysis::RelativeVirtualAddress &start, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true)
Reads data from a file.
virtual SgAsmGenericSection * parse()
Parse contents of the section.
void set_shortName(std::string const &)
Property: Abbreviated name.
void set_mappedReadPermission(bool const &)
Property: Whether mapped with read permission.
Rose::BinaryAnalysis::AddressIntervalSet get_unreferencedExtents() const
Returns a list of parts of a single section that have not been referenced.
virtual void set_mappedSize(Rose::BinaryAnalysis::Address)
Property: Mapped size.
std::string readContentLocalString(Rose::BinaryAnalysis::Address rel_offset, bool strict=true)
Reads a string from the file.
Extent get_fileExtent() const
Returns the file extent for the section.
Rose::BinaryAnalysis::Address const & get_mappedPreferredRva() const
Property: Relative virtual address where section prefers to be mapped.
Rose::BinaryAnalysis::Address const & get_mappedActualVa() const
Property: Virtual address where ROSE maps this section.
size_t readContentLocal(Rose::BinaryAnalysis::Address rel_offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true)
Reads data from a file.
virtual void destructorHelper() override
This gets called by all Rosebud-generated destructors.
void set_name(SgAsmGenericString *s)
Property: Non-unique name of section.
Rose::BinaryAnalysis::Address get_mappedPreferredVa() const
Virtual address where section prefers to be mapped.
Rose::BinaryAnalysis::Address get_size() const
Property: Size of section in file in bytes.
bool const & get_synthesized() const
Property: Whether section really exists.
SgAsmGenericFile *const & get_file() const
Property: File to which this section belongs.
void set_file(SgAsmGenericFile *const &)
Property: File to which this section belongs.
void set_mappedActualVa(Rose::BinaryAnalysis::Address const &)
Property: Virtual address where ROSE maps this section.
SgAsmGenericHeader *const & get_header() const
Property: File header that owns this section.
std::string get_shortName() const
Property: Abbreviated name.
bool const & get_containsCode() const
Property: Whether a section is known to contain code.
bool const & get_mappedExecutePermission() const
Property: Whether mapped with execute permission.
void extend(Rose::BinaryAnalysis::Address nbytes)
Extend a section by some number of bytes during the construction and/or parsing phase.
void set_header(SgAsmGenericHeader *const &)
Property: File header that owns this section.
Rose::BinaryAnalysis::Address writeSleb128(unsigned char *, Rose::BinaryAnalysis::Address offset, int64_t) const
Write a signed little-endian 128-bit value.
size_t readContent(Rose::BinaryAnalysis::Address abs_offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true)
Reads data from a file.
Rose::BinaryAnalysis::Address get_endOffset() const
File offset for end of section.
virtual void set_offset(Rose::BinaryAnalysis::Address)
Property: Offset to start of section in file.
void set_id(int const &)
Property: Non-unique section ID or negative.
std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true)
Reads a string from the file.
bool align()
Increase file offset and mapping address to satisfy alignment constraints.
Rose::BinaryAnalysis::Address write(std::ostream &, Rose::BinaryAnalysis::Address offset, const SgFileContentList &buf) const
Write data to a file section.
SgFileContentList const & get_data() const
Property: Original content of just this section.
bool const & get_mappedReadPermission() const
Property: Whether mapped with read permission.
SgAsmGenericHeader * isFileHeader()
Predicate determining whether this section is also a top-level file header.
Rose::BinaryAnalysis::Address const & get_mappedSize() const
Property: Mapped size.
void set_mappedAlignment(Rose::BinaryAnalysis::Address const &)
Property: Alignment in virtual memory.
SectionPurpose
Reason for section's existence.
@ SP_HEADER
Section contains a header for the executable file format.
@ SP_PROGRAM
Program-supplied data, code, etc.
@ SP_UNSPECIFIED
File format did not specify a reason and none could be determined.
@ SP_OTHER
File-specified purpose other than any given in this enum.
void clearMapped()
Causes section to not be mapped to memory.
SgAsmGenericSection::SectionPurpose const & get_purpose() const
Property: General contents of the section.
Rose::BinaryAnalysis::Address write(std::ostream &, Rose::BinaryAnalysis::Address offset, char c) const
Write data to a file section.
void set_purpose(SgAsmGenericSection::SectionPurpose const &)
Property: General contents of the section.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericString *const & get_name() const
Property: Non-unique name of section.
static void dumpContainingSections(FILE *, const std::string &prefix, Rose::BinaryAnalysis::RelativeVirtualAddress, const SgAsmGenericSectionPtrList &)
Prints info about offsets into known sections.
Rose::BinaryAnalysis::Address get_vaOffset(Rose::BinaryAnalysis::Address va) const
File offset for specified virtual address.
void set_synthesized(bool const &)
Property: Whether section really exists.
Rose::BinaryAnalysis::Address const & get_fileAlignment() const
Property: Required file alignment.
void grabContent()
Saves a reference to the original file data for a section based on the section's current offset and s...
void set_containsCode(bool const &)
Property: Whether a section is known to contain code.
void set_mappedExecutePermission(bool const &)
Property: Whether mapped with execute permission.
void unparse(std::ostream &, const ExtentMap &) const
Write just the specified regions back to the file.
std::string readContentString(const Rose::BinaryAnalysis::MemoryMap::Ptr &map, Rose::BinaryAnalysis::RelativeVirtualAddress rva, bool strict=true)
Reads a string from the file.
Extent get_mappedPreferredExtent() const
Returns the memory extent for a mapped section.
unsigned char * writableContent(size_t nbytes)
Obtain a local, writable pool to hold content.
void set_mappedWritePermission(bool const &)
Property: Whether mapped with write permission.
Rose::BinaryAnalysis::Address get_offset() const
Property: Offset to start of section in file.
Rose::BinaryAnalysis::Address writeUleb128(unsigned char *, Rose::BinaryAnalysis::Address offset, uint64_t) const
Write an unsigned little-endian 128-bit value.
Rose::BinaryAnalysis::Address write(std::ostream &, Rose::BinaryAnalysis::Address offset, const std::string &str) const
Write data to a file section.
Rose::BinaryAnalysis::Address get_rvaOffset(Rose::BinaryAnalysis::Address rva) const
File offset for specified relative virtual address.
int const & get_id() const
Property: Non-unique section ID or negative.
void unparseHoles(std::ostream &) const
Write holes (unreferenced areas) back to the file.
Rose::BinaryAnalysis::Address write(std::ostream &, Rose::BinaryAnalysis::Address offset, size_t bufsize, const void *buf) const
Write data to a file section.
size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr &, Rose::BinaryAnalysis::Address start, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true)
Reads data from a file.
SgUnsignedCharList readContentLocalUcl(Rose::BinaryAnalysis::Address rel_offset, Rose::BinaryAnalysis::Address size)
Reads content of a section and returns it as a container.
bool const & get_mappedWritePermission() const
Property: Whether mapped with write permission.
int64_t readContentLocalSleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true)
Read a signed little-endian 128-bit value.
std::string readContentString(const Rose::BinaryAnalysis::MemoryMap::Ptr &, Rose::BinaryAnalysis::Address va, bool strict=true)
Reads a string from the file.
uint64_t readContentLocalUleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true)
Read an unsigned little-endian 128-bit value.
virtual void set_mappedPreferredRva(Rose::BinaryAnalysis::Address)
Property: Relative virtual address where section prefers to be mapped.
Rose::BinaryAnalysis::AddressIntervalSet get_referencedExtents() const
Returns a list of parts of a single section that have been referenced.
virtual void set_size(Rose::BinaryAnalysis::Address)
Property: Size of section in file in bytes.
SgAsmGenericSection(SgAsmGenericFile *, SgAsmGenericHeader *)
Constructor linking object into ASt.
void set_fileAlignment(Rose::BinaryAnalysis::Address const &)
Property: Required file alignment.
Rose::BinaryAnalysis::Address get_baseVa() const
Base virtual address for a section.
Rose::BinaryAnalysis::Address const & get_mappedAlignment() const
Property: Alignment in virtual memory.
virtual bool reallocate()
Called prior to unparse to make things consistent.
Rose::BinaryAnalysis::Address write(std::ostream &, Rose::BinaryAnalysis::Address offset, const SgUnsignedCharList &buf) const
Write data to a file section.
virtual void unparse(std::ostream &) const
Write a section back to the file.
Base class for strings related to binary specimens.
virtual std::string get_string(bool escape=false) const
Property: String value.
void initializeProperties()
Initialize all properties that have explicit initial values.
static const Rose::BinaryAnalysis::Address unallocated
Constant for addresses of unallocated strings.
virtual void set_string(Rose::BinaryAnalysis::Address)
Property: String value.
virtual ~SgAsmGenericString()
Destructor.
virtual void set_string(const std::string &s)
Property: String value.
SgAsmGenericString()
Default constructor.
Base class for string tables.
void free(SgAsmStringStorage *)
Free area of this string table that corresponds to the string currently stored.
Rose::BinaryAnalysis::AddressIntervalSet const & get_freeList() const
Property: Free space list.
void set_dontFree(SgAsmStringStorage *const &)
Property: Space that should never be freed.
SgAsmStoredString * createString(Rose::BinaryAnalysis::Address offset, bool shared)
Constructs an SgAsmStoredString from an offset into this string table.
SgAsmGenericSection *const & get_container() const
Property: Section storing this string table.
SgAsmStringStorage *const & get_dontFree() const
Property: Space that should never be freed.
SgAsmGenericStrtab(SgAsmGenericSection *container)
Constructs table inside file section.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
bool reallocate(bool shrink)
Allocates storage for strings that have been modified but not allocated.
void free(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size)
Add a range of bytes to the free list after subtracting areas that are referenced by other strings.
void set_numberFreed(size_t const &)
Property: Number of strings freed thus far.
void freeAllStrings(bool blow_away_holes=false)
Free all strings so they will be reallocated later.
SgAsmGenericStrtab::referenced_t const & get_storageList() const
Property: String storage list.
virtual SgAsmGenericStrtab * parse()
Parse a string table.
Rose::BinaryAnalysis::AddressIntervalSet & get_freeList()
Property: Free space list.
size_t const & get_numberFreed() const
Property: Number of strings freed thus far.
void set_container(SgAsmGenericSection *const &)
Property: Section storing this string table.
void set_storageList(SgAsmGenericStrtab::referenced_t const &)
Property: String storage list.
Node to hold a list of symbol node pointers.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericSymbolList()
Default constructor.
void set_symbols(SgAsmGenericSymbolPtrList const &)
Property: List of symbol nodes.
virtual ~SgAsmGenericSymbolList()
Destructor.
SgAsmGenericSymbolPtrList const & get_symbols() const
Property: List of symbol nodes.
SgAsmGenericSymbolPtrList & get_symbols()
Property: List of symbol nodes.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
SgAsmGenericSymbol::SymbolBinding const & get_binding() const
Property: Symbol binding.
@ SYM_NO_TYPE
No type or type is unknown.
@ SYM_ARRAY
Array of some other type.
@ SYM_IFUNC
Indirection function.
@ SYM_SECTION
Section of a file.
@ SYM_DATA
Normal variable definitions.
@ SYM_TLS
Thread-local storage.
@ SYM_REGISTER
CPU register value.
@ SYM_FILE
Name of a file.
@ SYM_FUNC
Function or other code.
Rose::BinaryAnalysis::Address const & get_value() const
Property: Symbol value.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericSection *const & get_bound() const
Property: Associated file section.
SymbolBinding
Symbol binding.
@ SYM_GLOBAL
Global binding.
@ SYM_LOCAL
Local binding.
@ SYM_NO_BINDING
Unknown binding.
void set_name(SgAsmGenericString *)
Property: Name.
void set_definitionState(SgAsmGenericSymbol::SymbolDefState const &)
Property: Definition state.
SgAsmGenericString * get_name() const
Property: Name.
void set_value(Rose::BinaryAnalysis::Address const &)
Property: Symbol value.
Rose::BinaryAnalysis::Address const & get_size() const
Property: Symbol size in bytes.
void set_type(SgAsmGenericSymbol::SymbolType const &)
Property: Symbol type.
void set_binding(SgAsmGenericSymbol::SymbolBinding const &)
Property: Symbol binding.
SgAsmGenericSymbol::SymbolType const & get_type() const
Property: Symbol type.
void set_bound(SgAsmGenericSection *const &)
Property: Associated file section.
void set_size(Rose::BinaryAnalysis::Address const &)
Property: Symbol size in bytes.
SymbolDefState
Symbol definition state.
@ SYM_DEFINED
Created and assigned storage.
@ SYM_UNDEFINED
Symbol has not been defined yet.
@ SYM_TENTATIVE
Does not have size/value yet.
SgAsmGenericSymbol::SymbolDefState const & get_definitionState() const
Property: Definition state.
Registers accessed indirectly.
size_t const & get_modulus() const
Property: Register descriptor modulus.
void set_offset(Rose::BinaryAnalysis::RegisterDescriptor const &)
Property: Register descriptor offset.
Rose::BinaryAnalysis::RegisterDescriptor const & get_stride() const
Property: Register descriptor stride.
SgAsmIndirectRegisterExpression()
Default constructor.
void set_modulus(size_t const &)
Property: Register descriptor modulus.
void set_stride(Rose::BinaryAnalysis::RegisterDescriptor const &)
Property: Register descriptor stride.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmIndirectRegisterExpression()
Destructor.
SgAsmIndirectRegisterExpression(Rose::BinaryAnalysis::RegisterDescriptor const &descriptor, Rose::BinaryAnalysis::RegisterDescriptor const &stride, Rose::BinaryAnalysis::RegisterDescriptor const &offset, size_t const &index, size_t const &modulus)
Constructor.
Rose::BinaryAnalysis::RegisterDescriptor const & get_offset() const
Property: Register descriptor offset.
size_t const & get_index() const
Property: Register descriptor index.
void set_index(size_t const &)
Property: Register descriptor index.
List of SgAsmInstruction nodes.
virtual ~SgAsmInstructionList()
Destructor.
SgAsmInstructionList()
Default constructor.
void set_instructions(SgAsmInstructionPtrList const &)
Property: List of SgAsmInstruction entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmInstructionPtrList & get_instructions()
Property: List of SgAsmInstruction entries.
SgAsmInstructionPtrList const & get_instructions() const
Property: List of SgAsmInstruction entries.
Base class for machine instructions.
bool normalizeOperands()
Rewrite certain addressing modes for operands.
bool isLastInBlock()
Returns true if this instruction is the last instruction in a basic block.
virtual std::string toStringNoAddrNoColor() const
Converts the instruction to a string without address or color.
void set_semantics(SgAsmExprListExp *const &)
Property: Ordered list of instruction semantics.
Rose::BinaryAnalysis::Architecture::BaseConstPtr architecture() const
Architecture for instruction.
size_t nOperands() const
Number of operands.
uint8_t const & get_architectureId() const
Property: Architecture registration ID.
SgAsmExprListExp *const & get_semantics() const
Property: Ordered list of instruction semantics.
size_t semanticFailure() const
Property: Whether instruction semantics failed at this location.
std::string get_mnemonic() const
Property: Instruction mnemonic string.
static const int64_t INVALID_STACK_DELTA
Represents an invalid stack delta.
void set_rawBytes(SgUnsignedCharList const &)
Property: Raw bytes of an instruction.
virtual bool hasEffect()
Determines whether a single instruction has an effect.
virtual std::vector< std::pair< size_t, size_t > > findNoopSubsequences(const std::vector< SgAsmInstruction * > &insns, bool allow_branch=false, bool relax_stack_semantics=false)
Determines what subsequences of an instruction sequence have no cumulative effect.
virtual std::string toStringNoColor() const
Converts the instruction to a string without any ANSI color escapes.
virtual std::string toStringNoAddr() const
Converts the instruction to a string.
SgUnsignedCharList const & get_rawBytes() const
Property: Raw bytes of an instruction.
virtual std::string toString() const
Converts the instruction to a string.
virtual size_t get_size() const
Returns the size of an instruction in bytes.
SgAsmExpression * operand(size_t) const
Nth operand.
void set_delaySlot(SgAsmInstruction *const &)
Property: Delay slot instructions.
bool isFirstInBlock()
Returns true if this instruction is the first instruction in a basic block.
SgAsmOperandList *const & get_operandList() const
Property: AST node that holds all operands.
virtual std::set< Rose::BinaryAnalysis::Address > explicitConstants() const
Explicit constants.
void set_operandList(SgAsmOperandList *const &)
Property: AST node that holds all operands.
void incrementSemanticFailure()
Property: Whether instruction semantics failed at this location.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmInstruction *const & get_delaySlot() const
Property: Delay slot instructions.
virtual unsigned get_anyKind() const
Returns instruction kind for any architecture.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmIntegerType()
Default constructor.
virtual ~SgAsmIntegerType()
Destructor.
virtual std::string toString() const override
Convert a type to a string.
bool get_isSigned() const
Property: whether the integral type is signed or unsigned.
static SgAsmIntegerType * instanceSigned(Rose::BinaryAnalysis::ByteOrder::Endianness, size_t nBits)
Make an instance for a signed type.
static SgAsmIntegerType * instanceUnsigned(Rose::BinaryAnalysis::ByteOrder::Endianness, size_t nBits)
Make an instance for an unsigned type.
virtual void check() const override
Validate properties collectively.
SgAsmIntegerType(Rose::BinaryAnalysis::ByteOrder::Endianness, size_t nBits, bool isSigned)
Constructor with specified member values.
Base class for integer values.
SgAsmIntegerValueExpression()
Default constructor.
static uint64_t virtualAddress(SgNode *)
Returns the base address of an addressable IR node.
int64_t get_signedValue() const
Returns the current absolute value (base+offset) as a signed value.
void set_baseNode(SgNode *const &)
Property: Base node associated with an integer.
SgAsmIntegerValueExpression(uint64_t n, SgAsmType *type)
Construct a new value of specified type.
SgNode *const & get_baseNode() const
Property: Base node associated with an integer.
uint64_t get_absoluteValue(size_t nbits=0) const
Returns the current absolute value zero filled to 64 bits.
std::string get_label(bool quiet=false) const
Returns a label for the value.
uint64_t get_baseAddress() const
Returns the base address.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmIntegerValueExpression()
Destructor.
SgAsmIntegerValueExpression(const Sawyer::Container::BitVector &bv, SgAsmType *type)
Construct a new value of specified type.
void set_absoluteValue(uint64_t)
Set absolute value.
void makeRelativeTo(SgNode *baseNode)
Makes the value of this integer relative to some other addressable node.
int64_t get_relativeValue() const
Get relative value.
size_t get_significantBits() const
Return the number of significant bits in the value.
void set_relativeValue(int64_t v, size_t nbits=64)
Set relative value without changing the base value.
SgAsmInterpretationList()
Default constructor.
SgAsmInterpretationPtrList & get_interpretations()
Property: Interpretation list.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_interpretations(SgAsmInterpretationPtrList const &)
Property: Interpretation list.
virtual ~SgAsmInterpretationList()
Destructor.
SgAsmInterpretationPtrList const & get_interpretations() const
Property: Interpretation list.
Represents an interpretation of a binary container.
SgAsmGenericHeaderList *const & get_headers() const
Property: File headers.
void set_instructionMap(const Rose::BinaryAnalysis::InstructionMap &)
Property: Cached map of instructions by address.
void set_coverageComputed(bool const &)
Property: code coverage percent.
void set_percentageCoverage(double const &)
Property: code coverage percent.
void set_headers(SgAsmGenericHeaderList *const &)
Property: File headers.
void eraseInstructions(Rose::BinaryAnalysis::InstructionMap &)
Erase instructions from a map.
void set_map(Rose::BinaryAnalysis::MemoryMap::Ptr const &)
Property: Memory map.
double const & get_percentageCoverage() const
Property: code coverage percent.
Rose::BinaryAnalysis::InstructionMap & get_instructionMap(bool recompute=false)
Property: Cached map of instructions by address.
SgAsmBlock *const & get_globalBlock() const
Property: Global block.
void set_globalBlock(SgAsmBlock *const &)
Property: Global block.
Rose::BinaryAnalysis::MemoryMap::Ptr const & get_map() const
Property: Memory map.
void initializeProperties()
Initialize all properties that have explicit initial values.
void insertInstructions(Rose::BinaryAnalysis::InstructionMap &)
Populate a map of instructions indexed by their virtual addresses.
bool const & get_coverageComputed() const
Property: code coverage percent.
SgAsmGenericFilePtrList get_files() const
Returns a list of all files referenced by an interpretation.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_default_value(SgAsmJvmRuntimeAnnotationValue *const &)
Property: value.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual SgAsmJvmAnnotationDefault * parse(SgAsmJvmConstantPool *) override
Initialize the object by parsing content from the class file.
virtual void unparse(std::ostream &) const override
Write line number entry to a binary file.
SgAsmJvmRuntimeAnnotationValue *const & get_default_value() const
Property: value.
SgAsmJvmAnnotationDefault()
Default constructor.
SgAsmJvmAnnotationDefault(SgAsmJvmAttributeTable *)
Initialize the object before parsing.
virtual ~SgAsmJvmAnnotationDefault()
Destructor.
Represents a JVM attribute_info table/array.
void set_attributes(SgAsmJvmAttributePtrList const &)
Property: List of pointers to attributes.
virtual SgAsmGenericSection * parse()
Parses a JVM attribute table.
SgAsmJvmAttributePtrList & get_attributes()
Property: List of pointers to attributes.
virtual void unparse(std::ostream &) const override
Write attribute table to a binary file.
virtual ~SgAsmJvmAttributeTable()
Destructor.
SgAsmJvmAttributeTable(SgAsmJvmFileHeader *, SgAsmNode *)
Initialize the attribute table before parsing.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmAttributeTable()
Default constructor.
SgAsmJvmAttributePtrList const & get_attributes() const
Property: List of pointers to attributes.
Base class for a JVM attribute.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmAttribute * parse(SgAsmJvmConstantPool *pool)
Initialize an attribute by parsing the file.
static SgAsmJvmAttribute * instance(SgAsmJvmConstantPool *pool, SgAsmJvmAttributeTable *parent)
Factory method returning a derived class instance.
uint16_t const & get_attribute_name_index() const
Property: attribute_name_index.
uint32_t const & get_attribute_length() const
Property: attribute_length.
virtual void unparse(std::ostream &) const override
Write attribute to a binary file.
void set_attribute_name_index(uint16_t const &)
Property: attribute_name_index.
SgAsmJvmAttribute()
Default constructor.
virtual ~SgAsmJvmAttribute()
Destructor.
void set_attribute_length(uint32_t const &)
Property: attribute_length.
virtual void unparse(std::ostream &) const override
Write object to a binary file.
SgAsmJvmBootstrapMethod * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void set_bootstrap_method_ref(uint16_t const &)
Property: bootstrap_method_ref.
SgAsmJvmBootstrapMethod(SgAsmJvmBootstrapMethods *)
Initialize the object before parsing.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint16_t const & get_bootstrap_method_ref() const
Property: bootstrap_method_ref.
SgAsmJvmBootstrapMethod()
Default constructor.
void set_bootstrap_arguments(SgUnsigned16List const &)
Property: bootstrap_arguments.
virtual ~SgAsmJvmBootstrapMethod()
Destructor.
SgUnsigned16List const & get_bootstrap_arguments() const
Property: bootstrap_arguments.
The BootstrapMethods attribute is a variable-length attribute in the attributes table of a ClassFile ...
virtual void unparse(std::ostream &) const override
Write the BootstrapMethods attribute to a binary file.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual ~SgAsmJvmBootstrapMethods()
Destructor.
SgAsmJvmBootstrapMethodPtrList const & get_bootstrap_methods() const
Property: List of bootstrap method entries.
virtual SgAsmJvmBootstrapMethods * parse(SgAsmJvmConstantPool *pool) override
Initialize the object by parsing content from the class file.
SgAsmJvmBootstrapMethods()
Default constructor.
SgAsmJvmBootstrapMethodPtrList & get_bootstrap_methods()
Property: List of bootstrap method entries.
SgAsmJvmBootstrapMethods(SgAsmJvmAttributeTable *)
Initialize the bootstrap methods object before parsing.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_bootstrap_methods(SgAsmJvmBootstrapMethodPtrList const &)
Property: List of bootstrap method entries.
virtual ~SgAsmJvmClass()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmClass()
Default constructor.
void set_max_locals(uint16_t const &)
Property: max_locals.
virtual SgAsmJvmAttribute * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
SgAsmJvmCodeAttribute()
Default constructor.
uint16_t const & get_max_locals() const
Property: max_locals.
SgAsmJvmAttributeTable *const & get_attribute_table() const
Property: Attribute table.
void set_code_offset(Rose::BinaryAnalysis::Address const &)
Property: Code offset.
void set_code(const char *const &)
Property: code.
void set_attribute_table(SgAsmJvmAttributeTable *const &)
Property: Attribute table.
void set_max_stack(uint16_t const &)
Property: max_stack.
void set_exception_table(SgAsmJvmExceptionTable *const &)
Property: Exception table.
SgAsmJvmCodeAttribute(SgAsmJvmAttributeTable *table)
Initialize the object before parsing.
uint32_t const & get_code_length() const
Property: code_length.
virtual void unparse(std::ostream &) const override
Write code attribute to a binary file.
uint16_t const & get_max_stack() const
Property: max_stack.
virtual ~SgAsmJvmCodeAttribute()
Destructor.
void set_code_length(uint32_t const &)
Property: code_length.
void initializeProperties()
Initialize all properties that have explicit initial values.
const char *const & get_code() const
Property: code.
SgAsmJvmExceptionTable *const & get_exception_table() const
Property: Exception table.
Rose::BinaryAnalysis::Address const & get_code_offset() const
Property: Code offset.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
Represents an entry in a JVM constant pool.
uint16_t const & get_class_index() const
Property: class_index.
virtual ~SgAsmJvmConstantPoolEntry()
Destructor.
void set_bootstrap_method_attr_index(uint16_t const &)
Property: bootstrap_method_attr_index.
SgAsmJvmConstantPoolEntry(SgAsmJvmConstantPoolEntry::Kind tag)
Constructor creating an object ready to be initialized via parse().
void set_utf8_bytes(char *const &)
Property: utf8_bytes (bytes in CONSTANT_Utf8_info structure).
SgAsmJvmConstantPoolEntry()
Default constructor.
uint16_t const & get_name_index() const
Property: name_index.
SgAsmJvmConstantPoolEntry * parse(SgAsmJvmConstantPool *pool)
Initialize a constant pool entry by parsing the file.
uint32_t const & get_hi_bytes() const
Properties: hi_bytes.
static std::string to_string(SgAsmJvmConstantPoolEntry::Kind)
Convert constant pool entry kind to a string.
void set_tag(SgAsmJvmConstantPoolEntry::Kind const &)
Property: tag.
void set_class_index(uint16_t const &)
Property: class_index.
void set_descriptor_index(uint16_t const &)
Property: descriptor_index.
uint16_t const & get_reference_index() const
Property: reference_index.
void set_hi_bytes(uint32_t const &)
Properties: hi_bytes.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmConstantPoolEntry::Kind const & get_tag() const
Property: tag.
uint8_t const & get_reference_kind() const
Property: reference_kind.
void set_name_and_type_index(uint16_t const &)
Property: name_and_type_index.
void set_string_index(uint16_t const &)
Property: string_index.
uint16_t const & get_name_and_type_index() const
Property: name_and_type_index.
uint32_t const & get_low_bytes() const
Properties: low_bytes.
void set_name_index(uint16_t const &)
Property: name_index.
void set_length(uint16_t const &)
Property: length.
void set_reference_kind(uint8_t const &)
Property: reference_kind.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual void unparse(std::ostream &) const override
Write constant pool entry to a binary file.
char *const & get_utf8_bytes() const
Property: utf8_bytes (bytes in CONSTANT_Utf8_info structure).
uint32_t const & get_bytes() const
Property: bytes.
void set_reference_index(uint16_t const &)
Property: reference_index.
void set_low_bytes(uint32_t const &)
Properties: low_bytes.
uint16_t const & get_length() const
Property: length.
uint16_t const & get_bootstrap_method_attr_index() const
Property: bootstrap_method_attr_index.
uint16_t const & get_string_index() const
Property: string_index.
void set_bytes(uint32_t const &)
Property: bytes.
uint16_t const & get_descriptor_index() const
Property: descriptor_index.
Represents an JVM constant pool.
virtual ~SgAsmJvmConstantPool()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmConstantPoolEntryPtrList const & get_entries() const
Property: List of constant pool entries.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void unparse(std::ostream &) const override
Write constant pool to a binary file.
void set_entries(SgAsmJvmConstantPoolEntryPtrList const &)
Property: List of constant pool entries.
std::string get_utf8_string(size_t index) const
Return a string at the given index.
virtual SgAsmJvmConstantPool * parse() override
Parses a JVM Constant Pool.
SgAsmJvmConstantPool(SgAsmJvmFileHeader *)
Non-parsing constructor.
SgAsmJvmConstantPoolEntry * get_entry(size_t index) const
Returns constant pool entry at given index.
SgAsmJvmConstantPoolEntryPtrList & get_entries()
Property: List of constant pool entries.
SgAsmJvmConstantPool()
Default constructor.
virtual void destructorHelper() override
This gets called by all Rosebud-generated destructors.
JVM EnclosingMethod attribute.
virtual SgAsmJvmEnclosingMethod * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
virtual ~SgAsmJvmEnclosingMethod()
Destructor.
void set_class_index(uint16_t const &)
Property: class_index.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint16_t const & get_method_index() const
Property: method_index.
uint16_t const & get_class_index() const
Property: class_index.
virtual void unparse(std::ostream &) const override
Write enclosing method to a binary file.
void set_method_index(uint16_t const &)
Property: method_index.
SgAsmJvmEnclosingMethod(SgAsmJvmAttributeTable *table)
Initialize the object before parsing.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmEnclosingMethod()
Default constructor.
virtual void unparse(std::ostream &) const override
Write the object to a binary file.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
uint16_t const & get_end_pc() const
Property: end_pc.
uint16_t const & get_catch_type() const
Property: catch_type.
void set_start_pc(uint16_t const &)
Property: start_pc.
virtual ~SgAsmJvmExceptionHandler()
Destructor.
void set_handler_pc(uint16_t const &)
Property: handler_pc.
uint16_t const & get_start_pc() const
Property: start_pc.
void set_catch_type(uint16_t const &)
Property: catch_type.
SgAsmJvmExceptionHandler()
Default constructor.
SgAsmJvmExceptionHandler * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
SgAsmJvmExceptionHandler(SgAsmJvmExceptionTable *table)
Initialize the object before parsing.
uint16_t const & get_handler_pc() const
Property: handler_pc.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_end_pc(uint16_t const &)
Property: end_pc.
Represents a JVM exception_info table/array.
SgAsmJvmExceptionHandlerPtrList & get_handlers()
Property: List of pointers to exceptions.
SgAsmJvmExceptionTable(SgAsmJvmCodeAttribute *)
Initialize the exception table before parsing.
virtual void unparse(std::ostream &) const override
Write exception table to a binary file.
SgAsmJvmExceptionTable * parse(SgAsmJvmConstantPool *)
Parses a JVM exception table.
SgAsmJvmExceptionTable()
Default constructor.
void set_handlers(SgAsmJvmExceptionHandlerPtrList const &)
Property: List of pointers to exceptions.
SgAsmJvmExceptionHandlerPtrList const & get_handlers() const
Property: List of pointers to exceptions.
virtual ~SgAsmJvmExceptionTable()
Destructor.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void initializeProperties()
Initialize all properties that have explicit initial values.
Represents a JVM field_info table/array.
SgAsmJvmFieldPtrList & get_fields()
Property: List of pointers to fields.
void set_fields(SgAsmJvmFieldPtrList const &)
Property: List of pointers to fields.
virtual SgAsmJvmFieldTable * parse() override
Parses a JVM field table.
SgAsmJvmFieldPtrList const & get_fields() const
Property: List of pointers to fields.
virtual void unparse(std::ostream &) const override
Write field table to a binary file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmJvmFieldTable()
Destructor.
SgAsmJvmFieldTable()
Default constructor.
SgAsmJvmFieldTable(SgAsmJvmFileHeader *)
Initialize the field table before parsing.
uint16_t const & get_descriptor_index() const
Property: descriptor_index.
virtual void unparse(std::ostream &) const override
Write field to a binary file.
SgAsmJvmField(SgAsmJvmFieldTable *)
Initialize the object before parsing.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void set_access_flags(uint16_t const &)
Property: access_flags.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_attribute_table(SgAsmJvmAttributeTable *const &)
Property: Table of attributes.
SgAsmJvmField()
Default constructor.
virtual ~SgAsmJvmField()
Destructor.
uint16_t const & get_access_flags() const
Property: access_flags.
SgAsmJvmAttributeTable *const & get_attribute_table() const
Property: Table of attributes.
uint16_t const & get_name_index() const
Property: name_index.
SgAsmJvmField * parse(SgAsmJvmConstantPool *pool)
Initialize the object by parsing content from the class file.
void set_descriptor_index(uint16_t const &)
Property: descriptor_index.
void set_name_index(uint16_t const &)
Property: name_index.
Represents the file header of an JVM binary container.
void set_method_table(SgAsmJvmMethodTable *const &)
Property: Method table.
SgAsmJvmFileHeader(SgAsmGenericFile *)
Construct a new JVM File Header with default values; ready to be initialized via parse().
void set_interfaces(std::list< uint16_t > const &)
Property: Interfaces.
SgAsmJvmAttributeTable *const & get_attribute_table() const
Property: Attribute table.
virtual void unparse(std::ostream &) const override
Write the section to a binary file.
void set_field_table(SgAsmJvmFieldTable *const &)
Property: Field table.
static bool is_JVM(SgAsmGenericFile *)
Returns true if a cursory look at the file indicates that it could be a JVM class file.
std::list< uint16_t > & get_interfaces()
Property: Interfaces.
void set_constant_pool(SgAsmJvmConstantPool *const &)
Property: Constant pool.
SgAsmJvmMethodTable *const & get_method_table() const
Property: Method table.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint16_t const & get_super_class() const
Property: Super class.
uint16_t const & get_this_class() const
Property: This class index.
SgAsmJvmConstantPool *const & get_constant_pool() const
Property: Constant pool.
void set_this_class(uint16_t const &)
Property: This class index.
uint16_t const & get_access_flags() const
Property: Access flags.
void set_attribute_table(SgAsmJvmAttributeTable *const &)
Property: Attribute table.
virtual void destructorHelper() override
This gets called by all Rosebud-generated destructors.
void set_major_version(uint16_t const &)
Property: Major version.
virtual SgAsmJvmFileHeader * parse() override
Parse header from file.
void set_access_flags(uint16_t const &)
Property: Access flags.
uint16_t const & get_major_version() const
Property: Major version.
uint16_t const & get_minor_version() const
Property: Minor version.
virtual ~SgAsmJvmFileHeader()
Destructor.
SgAsmJvmFileHeader()
Default constructor.
std::list< uint16_t > const & get_interfaces() const
Property: Interfaces.
SgAsmJvmFieldTable *const & get_field_table() const
Property: Field table.
void set_minor_version(uint16_t const &)
Property: Minor version.
void set_super_class(uint16_t const &)
Property: Super class.
unsigned const & get_attribute_type() const
Property: attribute_type.
void initializeProperties()
Initialize all properties that have explicit initial values.
std::vector< uint16_t > const & get_table() const
Property: table.
AttributeType
Type of JVM attribute.
virtual ~SgAsmJvmIndexTableAttr()
Destructor.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
virtual SgAsmJvmIndexTableAttr * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmIndexTableAttr(SgAsmJvmAttributeTable *table, unsigned type)
Initialize the IndexTableAttr attribute before parsing.
std::vector< uint16_t > & get_table()
Property: table.
SgAsmJvmIndexTableAttr()
Default constructor.
void set_attribute_type(unsigned const &)
Property: attribute_type.
void set_index(uint16_t const &)
Property: index.
void set_attribute_type(unsigned const &)
Property: attribute_type.
unsigned const & get_attribute_type() const
Property: attribute_type.
virtual ~SgAsmJvmIndexedAttr()
Destructor.
AttributeType
Type of JVM attribute.
SgAsmJvmIndexedAttr(SgAsmJvmAttributeTable *table, unsigned type)
Initialize the IndexedAttr attribute before parsing.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual SgAsmJvmIndexedAttr * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
uint16_t const & get_index() const
Property: index.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmIndexedAttr()
Default constructor.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
Represents a JVM InnerClasses attribute.
SgAsmJvmInnerClasses()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmInnerClasses(SgAsmJvmAttributeTable *table)
Initialize the InnerClasses attribute before parsing.
std::vector< SgAsmJvmInnerClasses::Entry * > const & get_classes() const
Property: List of pointers to InnerClasses attribute entry.
virtual void unparse(std::ostream &) const override
Write the InnerClasses attribute to a binary file.
virtual ~SgAsmJvmInnerClasses()
Destructor.
SgAsmJvmInnerClasses * parse(SgAsmJvmConstantPool *) override
Parses a JVM InnerClasses attribute.
std::vector< SgAsmJvmInnerClasses::Entry * > & get_classes()
Property: List of pointers to InnerClasses attribute entry.
Represents one JVS machine instruction.
virtual ~SgAsmJvmInstruction()
Destructor.
void set_kind(Rose::BinaryAnalysis::JvmInstructionKind const &)
Property: Instruction kind.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
SgAsmJvmInstruction()
Default constructor.
Rose::BinaryAnalysis::JvmInstructionKind const & get_kind() const
Property: Instruction kind.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmInstruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::JvmInstructionKind const &kind)
Constructor.
JVM LineNumberTable attribute.
SgAsmJvmLineNumberTable()
Default constructor.
std::vector< SgAsmJvmLineNumberTable::Entry * > & get_line_number_table()
Property: line_number_table.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmLineNumberTable * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
SgAsmJvmLineNumberTable(SgAsmJvmAttributeTable *table)
Initialize the LineNumberTable attribute before parsing.
std::vector< SgAsmJvmLineNumberTable::Entry * > const & get_line_number_table() const
Property: line_number_table.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual void unparse(std::ostream &) const override
Write the line number table to a binary file.
virtual ~SgAsmJvmLineNumberTable()
Destructor.
JVM LocalVariableEntry.
void set_start_pc(uint16_t const &)
Property: start_pc.
uint16_t const & get_descriptor_index() const
Property: descriptor_index.
uint16_t const & get_index() const
Property: index.
void set_length(uint16_t const &)
Property: length.
SgAsmJvmLocalVariableEntry * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
void set_descriptor_index(uint16_t const &)
Property: descriptor_index.
SgAsmJvmLocalVariableEntry()
Default constructor.
SgAsmJvmLocalVariableEntry(SgAsmJvmLocalVariableTable *)
Initialize the object before parsing.
uint16_t const & get_name_index() const
Property: name_index.
uint16_t const & get_start_pc() const
Property: start_pc.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void unparse(std::ostream &) const override
Write the local variable entry to a binary file.
void set_name_index(uint16_t const &)
Property: name_index.
void set_index(uint16_t const &)
Property: index.
virtual ~SgAsmJvmLocalVariableEntry()
Destructor.
uint16_t const & get_length() const
Property: length.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
JVM LocalVariableTable attribute.
SgAsmJvmLocalVariableTable(SgAsmJvmAttributeTable *table)
Initialize the LocalVariableTable attribute before parsing.
SgAsmJvmLocalVariableEntryPtrList const & get_local_variable_table() const
Property: local_variable_table.
virtual SgAsmJvmLocalVariableTable * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
SgAsmJvmLocalVariableEntryPtrList & get_local_variable_table()
Property: local_variable_table.
void set_local_variable_table(SgAsmJvmLocalVariableEntryPtrList const &)
Property: local_variable_table.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmJvmLocalVariableTable()
Destructor.
SgAsmJvmLocalVariableTable()
Default constructor.
JVM LocalVariableTypeEntry.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
uint16_t const & get_length() const
Property: length.
uint16_t const & get_name_index() const
Property: name_index.
virtual void unparse(std::ostream &) const override
Write the local variable entry to a binary file.
void set_signature_index(uint16_t const &)
Property: signature_index.
uint16_t const & get_start_pc() const
Property: start_pc.
uint16_t const & get_signature_index() const
Property: signature_index.
SgAsmJvmLocalVariableTypeEntry * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
SgAsmJvmLocalVariableTypeEntry(SgAsmJvmLocalVariableTypeTable *)
Initialize the object before parsing.
SgAsmJvmLocalVariableTypeEntry()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_length(uint16_t const &)
Property: length.
void set_index(uint16_t const &)
Property: index.
uint16_t const & get_index() const
Property: index.
void set_name_index(uint16_t const &)
Property: name_index.
virtual ~SgAsmJvmLocalVariableTypeEntry()
Destructor.
void set_start_pc(uint16_t const &)
Property: start_pc.
JVM LocalVariableTypeTable attribute.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmLocalVariableTypeTable * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
SgAsmJvmLocalVariableTypeEntryPtrList const & get_local_variable_type_table() const
Property: local_variable_table.
SgAsmJvmLocalVariableTypeTable()
Default constructor.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
SgAsmJvmLocalVariableTypeEntryPtrList & get_local_variable_type_table()
Property: local_variable_table.
SgAsmJvmLocalVariableTypeTable(SgAsmJvmAttributeTable *table)
Initialize the LocalVariableTypeTable attribute before parsing.
virtual ~SgAsmJvmLocalVariableTypeTable()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void set_local_variable_type_table(SgAsmJvmLocalVariableTypeEntryPtrList const &)
Property: local_variable_table.
JVM MethodParametersEntry.
void set_access_flags(uint16_t const &)
Property: access_flags.
uint16_t const & get_name_index() const
Property: name_index.
virtual ~SgAsmJvmMethodParametersEntry()
Destructor.
void set_name_index(uint16_t const &)
Property: name_index.
uint16_t const & get_access_flags() const
Property: access_flags.
SgAsmJvmMethodParametersEntry()
Default constructor.
SgAsmJvmMethodParametersEntry * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
SgAsmJvmMethodParametersEntry(SgAsmJvmMethodParameters *)
Initialize the object before parsing.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void unparse(std::ostream &) const override
Write line number entry to a binary file.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
JVM MethodParameters attribute.
virtual SgAsmJvmMethodParameters * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
SgAsmJvmMethodParameters()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmMethodParametersEntryPtrList const & get_parameters() const
Property: parameters.
SgAsmJvmMethodParameters(SgAsmJvmAttributeTable *table)
Initialize the MethodParameters attribute before parsing.
void set_parameters(SgAsmJvmMethodParametersEntryPtrList const &)
Property: parameters.
SgAsmJvmMethodParametersEntryPtrList & get_parameters()
Property: parameters.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmJvmMethodParameters()
Destructor.
virtual void unparse(std::ostream &) const override
Write the line number table to a binary file.
Represents a JVM method_info table/array.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmMethodPtrList & get_methods()
Property: List of pointers to methods.
virtual ~SgAsmJvmMethodTable()
Destructor.
virtual void unparse(std::ostream &) const override
Write method table to a binary file.
SgAsmJvmMethodTable()
Default constructor.
SgAsmJvmMethodTable(SgAsmJvmFileHeader *)
Initialize the method table before parsing.
SgAsmJvmMethodPtrList const & get_methods() const
Property: List of pointers to methods.
virtual SgAsmJvmMethodTable * parse() override
Parses a JVM method table.
void set_methods(SgAsmJvmMethodPtrList const &)
Property: List of pointers to methods.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmMethod * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
SgAsmJvmMethod(SgAsmJvmMethodTable *)
Initialize the object before parsing.
virtual void unparse(std::ostream &) const override
Write method to a binary file.
virtual ~SgAsmJvmMethod()
Destructor.
SgAsmJvmMethod()
Default constructor.
SgAsmInstructionList *const & get_instruction_list() const
Property: Instruction list.
SgAsmJvmAttributeTable *const & get_attribute_table() const
Property: Table of attributes.
uint16_t const & get_descriptor_index() const
Property: descriptor_index.
void set_descriptor_index(uint16_t const &)
Property: descriptor_index.
void set_access_flags(uint16_t const &)
Property: access_flags.
void set_instruction_list(SgAsmInstructionList *const &)
Property: Instruction list.
uint16_t const & get_access_flags() const
Property: access_flags.
void initializeProperties()
Initialize all properties that have explicit initial values.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
void set_attribute_table(SgAsmJvmAttributeTable *const &)
Property: Table of attributes.
void set_name_index(uint16_t const &)
Property: name_index.
uint16_t const & get_name_index() const
Property: name_index.
JVM Module attribute.
void set_module_name_index(uint16_t const &)
Property: module_name_index.
void set_module_flags(uint16_t const &)
Property: module_flags.
std::vector< SgAsmJvmModule::Provides * > const & get_provides() const
Property: provides.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmJvmModule()
Destructor.
void set_uses_index(std::vector< uint16_t > const &)
Property: uses_index.
uint16_t const & get_module_name_index() const
Property: module_name_index.
std::vector< SgAsmJvmModule::Exports * > & get_exports()
Property: exports.
void set_provides(std::vector< SgAsmJvmModule::Provides * > const &)
Property: provides.
virtual SgAsmJvmModule * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
void set_requires(std::vector< SgAsmJvmModule::Requires * > const &)
Property: requires.
SgAsmJvmModule(SgAsmJvmAttributeTable *table)
Initialize the Module attribute before parsing.
std::vector< SgAsmJvmModule::Exports * > const & get_exports() const
Property: exports.
uint16_t const & get_module_version_index() const
Property: module_version_index.
std::vector< uint16_t > const & get_uses_index() const
Property: uses_index.
std::vector< SgAsmJvmModule::Requires * > & get_requires()
Property: requires.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
uint16_t const & get_module_flags() const
Property: module_flags.
void set_module_version_index(uint16_t const &)
Property: module_version_index.
std::vector< SgAsmJvmModule::Requires * > const & get_requires() const
Property: requires.
void set_exports(std::vector< SgAsmJvmModule::Exports * > const &)
Property: exports.
std::vector< SgAsmJvmModule::Opens * > & get_opens()
Property: opens.
std::vector< SgAsmJvmModule::Provides * > & get_provides()
Property: provides.
std::vector< SgAsmJvmModule::Opens * > const & get_opens() const
Property: opens.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmModule()
Default constructor.
void set_opens(std::vector< SgAsmJvmModule::Opens * > const &)
Property: opens.
std::vector< uint16_t > & get_uses_index()
Property: uses_index.
Base class for JVM branch of binary analysis IR nodes.
virtual void unparse(std::ostream &) const
Write node to a binary file.
SgAsmJvmNode()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging information.
virtual ~SgAsmJvmNode()
Destructor.
JVM RuntimeAnnotationPair.
void set_value(SgAsmJvmRuntimeAnnotationValue *const &)
Property: value.
virtual void unparse(std::ostream &) const override
Write line number entry to a binary file.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmRuntimeAnnotationValue *const & get_value() const
Property: value.
SgAsmJvmRuntimeAnnotationPair(SgAsmJvmRuntimeAnnotation *)
Initialize the object before parsing.
uint16_t const & get_element_name_index() const
Property: element_name_index.
virtual ~SgAsmJvmRuntimeAnnotationPair()
Destructor.
SgAsmJvmRuntimeAnnotationPair * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
void set_element_name_index(uint16_t const &)
Property: element_name_index.
SgAsmJvmRuntimeAnnotationPair()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
JVM RuntimeAnnotationValue.
void set_tag(uint8_t const &)
Property: tag.
void set_type_name_index(uint16_t const &)
Property: type_name_index.
uint16_t const & get_const_name_index() const
Property: const_name_index.
bool const & get_is_annotation_value() const
Property: is_annotation_value.
virtual void unparse(std::ostream &) const override
Write line number entry to a binary file.
SgAsmJvmRuntimeAnnotationValue(SgAsmJvmRuntimeAnnotationPair *)
Initialize the object before parsing.
std::vector< SgAsmJvmRuntimeAnnotationValue * > const & get_values() const
Property: values.
uint16_t const & get_type_name_index() const
Property: type_name_index.
void set_class_info_index(uint16_t const &)
Property: class_info_index.
virtual ~SgAsmJvmRuntimeAnnotationValue()
Destructor.
SgAsmJvmRuntimeAnnotationValue * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
uint8_t const & get_tag() const
Property: tag.
void set_is_annotation_value(bool const &)
Property: is_annotation_value.
uint16_t const & get_const_value_index() const
Property: const_value_index.
void set_const_value_index(uint16_t const &)
Property: const_value_index.
SgAsmJvmRuntimeAnnotationValue()
Default constructor.
std::vector< SgAsmJvmRuntimeAnnotationValue * > & get_values()
Property: values.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmRuntimeAnnotationValue(SgAsmJvmAnnotationDefault *)
Initialize the object before parsing.
SgAsmJvmRuntimeAnnotation *const & get_annotation_value() const
Property: annotation_value.
uint16_t const & get_class_info_index() const
Property: class_info_index.
SgAsmJvmRuntimeAnnotationValue(SgAsmJvmRuntimeAnnotationValue *)
Initialize the object before parsing.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_annotation_value(SgAsmJvmRuntimeAnnotation *const &)
Property: annotation_value.
void set_const_name_index(uint16_t const &)
Property: const_name_index.
SgAsmJvmRuntimeAnnotation()
Default constructor.
SgAsmJvmRuntimeAnnotation(SgAsmJvmRuntimeInvisibleAnnotations *)
Initialize the object before parsing.
SgAsmJvmRuntimeAnnotation(SgAsmJvmRuntimeAnnotationValue *)
Initialize the object before parsing.
virtual void unparse(std::ostream &) const override
Write line number entry to a binary file.
SgAsmJvmRuntimeAnnotation(SgAsmJvmRuntimeParameterAnnotation *)
Initialize the object before parsing.
std::vector< SgAsmJvmRuntimeAnnotationPair * > const & get_element_value_pairs() const
Property: element_value_pairs.
uint16_t const & get_type_index() const
Property: type_index.
virtual ~SgAsmJvmRuntimeAnnotation()
Destructor.
void set_type_index(uint16_t const &)
Property: type_index.
std::vector< SgAsmJvmRuntimeAnnotationPair * > & get_element_value_pairs()
Property: element_value_pairs.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmRuntimeAnnotation(SgAsmJvmRuntimeVisibleAnnotations *)
Initialize the object before parsing.
SgAsmJvmRuntimeAnnotation * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
JVM RuntimeInvisibleAnnotations attribute.
SgAsmJvmRuntimeInvisibleAnnotations(SgAsmJvmAttributeTable *)
Initialize the RuntimeInvisibleAnnotations attribute before parsing.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmRuntimeInvisibleAnnotations()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmRuntimeInvisibleAnnotations * parse(SgAsmJvmConstantPool *) override
Initialize the attribute by parsing the file.
std::vector< SgAsmJvmRuntimeAnnotation * > & get_annotations()
Property: annotations.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
std::vector< SgAsmJvmRuntimeAnnotation * > const & get_annotations() const
Property: annotations.
virtual ~SgAsmJvmRuntimeInvisibleAnnotations()
Destructor.
JVM RuntimeParameterAnnotation.
SgAsmJvmRuntimeParameterAnnotation()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
std::vector< SgAsmJvmRuntimeAnnotation * > const & get_annotations() const
Property: annotations.
SgAsmJvmRuntimeParameterAnnotation(SgAsmJvmRuntimeVisibilityParamAnnotations *)
Initialize the object before parsing.
SgAsmJvmRuntimeParameterAnnotation * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class file.
void initializeProperties()
Initialize all properties that have explicit initial values.
std::vector< SgAsmJvmRuntimeAnnotation * > & get_annotations()
Property: annotations.
virtual void unparse(std::ostream &) const override
Write line number entry to a binary file.
virtual ~SgAsmJvmRuntimeParameterAnnotation()
Destructor.
JVM RuntimeVisibleParameterAnnotations and RuntimeInvisibleParameterAnnotations attribute.
virtual SgAsmJvmRuntimeVisibilityParamAnnotations * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual ~SgAsmJvmRuntimeVisibilityParamAnnotations()
Destructor.
void set_isVisible(bool const &)
Property: isVisible.
SgAsmJvmRuntimeVisibilityParamAnnotations(SgAsmJvmAttributeTable *table, bool visibility)
Initialize an SgAsmJvmRuntimeVisibilityParamAnnotations object before parsing.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
std::vector< SgAsmJvmRuntimeParameterAnnotation * > & get_parameter_annotations()
Property: parameter_annotations.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmRuntimeVisibilityParamAnnotations()
Default constructor.
std::vector< SgAsmJvmRuntimeParameterAnnotation * > const & get_parameter_annotations() const
Property: parameter_annotations.
bool const & get_isVisible() const
Property: isVisible.
JVM RuntimeVisibleAnnotations attribute.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmRuntimeVisibleAnnotations(SgAsmJvmAttributeTable *table)
Initialize the RuntimeVisibleAnnotations attribute before parsing.
std::vector< SgAsmJvmRuntimeAnnotation * > const & get_annotations() const
Property: annotations.
std::vector< SgAsmJvmRuntimeAnnotation * > & get_annotations()
Property: annotations.
virtual ~SgAsmJvmRuntimeVisibleAnnotations()
Destructor.
SgAsmJvmRuntimeVisibleAnnotations()
Default constructor.
virtual SgAsmJvmRuntimeVisibleAnnotations * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual void unparse(std::ostream &) const override
Write the local variable table to a binary file.
Represents a frame in a stack map table.
SgAsmJvmStackMapVerificationTypePtrList const & get_locals() const
Property: List of verification_type_info local variables.
SgAsmJvmStackMapVerificationTypePtrList & get_stack()
Property: List of verification_type_info stack variables.
void set_frame_type(uint8_t const &)
Property: frame_type.
SgAsmJvmStackMapVerificationTypePtrList & get_locals()
Property: List of verification_type_info local variables.
void set_stack(SgAsmJvmStackMapVerificationTypePtrList const &)
Property: List of verification_type_info stack variables.
SgAsmJvmStackMapVerificationTypePtrList const & get_stack() const
Property: List of verification_type_info stack variables.
SgAsmJvmStackMapFrame(SgAsmJvmStackMapTable *table)
Initialize the object before parsing.
void set_locals(SgAsmJvmStackMapVerificationTypePtrList const &)
Property: List of verification_type_info local variables.
void set_offset_delta(uint16_t const &)
Property: offset_delta.
virtual void unparse(std::ostream &) const override
Write the stack map table frame to a binary file.
uint8_t const & get_frame_type() const
Property: frame_type.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmStackMapFrame * parse(SgAsmJvmConstantPool *pool)
Initialize the object by parsing content from the class file.
virtual ~SgAsmJvmStackMapFrame()
Destructor.
SgAsmJvmStackMapFrame()
Default constructor.
uint16_t const & get_offset_delta() const
Property: offset_delta.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
The StackMapTable attribute is a variable-length attribute in the attributes table of a Code attribut...
virtual ~SgAsmJvmStackMapTable()
Destructor.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmStackMapFramePtrList & get_entries()
Property: List of stack map table entries/frames.
void set_entries(SgAsmJvmStackMapFramePtrList const &)
Property: List of stack map table entries/frames.
virtual void unparse(std::ostream &) const override
Write stack map table to a binary file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmStackMapTable(SgAsmJvmAttributeTable *table)
Initialize the object before parsing.
virtual SgAsmJvmStackMapTable * parse(SgAsmJvmConstantPool *pool) override
Initialize the object by parsing content from the class file.
SgAsmJvmStackMapTable()
Default constructor.
SgAsmJvmStackMapFramePtrList const & get_entries() const
Property: List of stack map table entries/frames.
Represents an entry in a stack map table.
virtual ~SgAsmJvmStackMapVerificationType()
Destructor.
uint16_t const & get_cpool_index() const
Property: cpool_index.
SgAsmJvmStackMapVerificationType(SgAsmJvmStackMapFrame *frame)
Initialize the object before parsing.
void set_offset(uint16_t const &)
Property: offset.
void set_cpool_index(uint16_t const &)
Property: cpool_index.
SgAsmJvmStackMapVerificationType * parse(SgAsmJvmConstantPool *pool)
Initialize the object by parsing content from the class file.
void set_tag(uint8_t const &)
Property: tag.
SgAsmJvmStackMapVerificationType()
Default constructor.
void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
uint8_t const & get_tag() const
Property: tag.
uint16_t const & get_offset() const
Property: offset.
virtual void unparse(std::ostream &) const override
Write stack map table to a binary file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmLEEntryPoint()
Default constructor.
virtual ~SgAsmLEEntryPoint()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
SgAsmLEEntryTable()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmLEEntryTable()
Destructor.
virtual void unparse(std::ostream &) const override
Unparse headers and all they point to.
SgAsmLEFileHeader()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
const char * formatName() const override
Returns the name of the file format.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual ~SgAsmLENameTable()
Destructor.
SgAsmLENameTable()
Default constructor.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
SgAsmLEPageTableEntry()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmLEPageTableEntry()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmLEPageTable()
Default constructor.
virtual ~SgAsmLEPageTable()
Destructor.
virtual ~SgAsmLERelocTable()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmLERelocTable()
Default constructor.
@ SF_SHARED
Section is shared.
@ SF_WRITABLE
Write permission granted when mapped.
@ SF_TYPE_ZERO
Section has zero-filled pages.
@ SF_TYPE_RESIDENT
Section is resident (valid for VDDs and PDDs only)
@ SF_DISCARDABLE
Discardable section.
@ SF_BIG_BIT
Big/default bit setting (80x86 specific); see note above.
@ SF_RES_LONG_LOCK
Section is resident and "long-lockable" (VDDs and PDDs only)
@ SF_PRELOAD_PAGES
Section has preload pages.
@ SF_RESOURCE
Section contains resource objects.
@ SF_IO_PRIV
Section I/O privilege level (80x86 specific; used only for 16:16 alias objects)
@ SF_1616_ALIAS
16:16 alias required (80x86 specific)
@ SF_INVALID_PAGES
Section has invalid pages.
@ SF_READABLE
Read permission granted when mapped.
@ SF_EXECUTABLE
Execute permission granted when mapped.
@ SF_CODE_CONFORM
Section is conforming for code (80x86 specific)
@ SF_TYPE_RESCONT
Section is resident and contiguous.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmLESectionTableEntry()
Default constructor.
SgAsmLESectionTable()
Default constructor.
virtual ~SgAsmLESectionTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmLESection()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
Rose::BinaryAnalysis::M68kDataFormat const & get_dataFormat() const
Property: Data format.
SgAsmM68kInstruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::M68kInstructionKind const &kind, Rose::BinaryAnalysis::M68kDataFormat const &dataFormat)
Constructor.
Rose::BinaryAnalysis::M68kInstructionKind const & get_kind() const
Property: Instruction kind.
void set_kind(Rose::BinaryAnalysis::M68kInstructionKind const &)
Property: Instruction kind.
void set_dataFormat(Rose::BinaryAnalysis::M68kDataFormat const &)
Property: Data format.
virtual ~SgAsmM68kInstruction()
Destructor.
SgAsmM68kInstruction()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Reference to memory locations.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmExpression *const & get_segment() const
Property: Optional memory segment register.
virtual ~SgAsmMemoryReferenceExpression()
Destructor.
SgAsmMemoryReferenceExpression()
Default constructor.
SgAsmMemoryReferenceExpression(SgAsmExpression *const &address, SgAsmExpression *const &segment)
Constructor.
SgAsmExpression *const & get_address() const
Property: Memory address expression.
void set_segment(SgAsmExpression *const &)
Property: Optional memory segment register.
void set_address(SgAsmExpression *const &)
Property: Memory address expression.
Represents one MIPS machine instruction.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmMipsInstruction()
Destructor.
SgAsmMipsInstruction()
Default constructor.
SgAsmMipsInstruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::MipsInstructionKind const &kind)
Constructor.
void set_kind(Rose::BinaryAnalysis::MipsInstructionKind const &)
Property: Instruction kind.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
Rose::BinaryAnalysis::MipsInstructionKind const & get_kind() const
Property: Instruction kind.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmNEEntryPoint()
Destructor.
SgAsmNEEntryPoint()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual ~SgAsmNEEntryTable()
Destructor.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
SgAsmNEEntryTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual const char * formatName() const override
Returns the name of the file format.
virtual void unparse(std::ostream &) const override
Unparse headers and all they point to.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmNEFileHeader()
Default constructor.
SgAsmNEModuleTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
virtual ~SgAsmNENameTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
SgAsmNENameTable()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmNERelocEntry()
Default constructor.
virtual ~SgAsmNERelocEntry()
Destructor.
SgAsmNERelocTable()
Default constructor.
virtual ~SgAsmNERelocTable()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmNESectionTableEntry()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
SgAsmNESectionTable()
Default constructor.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
SgAsmNESection()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmNEStringTable()
Default constructor.
virtual ~SgAsmNEStringTable()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
Base class for all binary analysis IR nodes.
SgAsmNode()
Default constructor.
Sawyer::Attribute::Storage const & attributes() const
Attribute storage.
Sawyer::Attribute::Storage & attributes()
Attribute storage.
virtual ~SgAsmNode()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
virtual ~SgAsmNullInstruction()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmNullInstruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId)
Constructor.
SgAsmNullInstruction()
Default constructor.
List of operands for an instruction.
SgAsmExpressionPtrList const & get_operands() const
Property: Ordered list of instruction operands.
virtual ~SgAsmOperandList()
Destructor.
void appendOperand(SgAsmExpression *operand)
Append another operand expression to this node.
SgAsmOperandList()
Default constructor.
void set_operands(SgAsmExpressionPtrList const &)
Property: Ordered list of instruction operands.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmExpressionPtrList & get_operands()
Property: Ordered list of instruction operands.
unsigned const & get_vmajor() const
Property: VMajor.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_name_rva()
Property: RVA for name.
size_t const & get_expaddr_n() const
Property: Expaddr_n.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_name_rva() const
Property: RVA for name.
void set_name_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: RVA for name.
SgAsmGenericString *const & get_name() const
Property: Name.
unsigned const & get_ord_base() const
Property: Ordinal base.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_nameptr_rva() const
Property: Name pointer RVA.
void set_vminor(unsigned const &)
Property: VMinor.
void initializeProperties()
Initialize all properties that have explicit initial values.
unsigned const & get_res1() const
Property: Reserved aread #1.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_expaddr_rva()
Property: Expaddr RVA.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_ordinals_rva()
Property: Ordinals RVA.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_nameptr_rva()
Property: Name pointer RVA.
void set_res1(unsigned const &)
Property: Reserved aread #1.
void set_expaddr_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Expaddr RVA.
void set_nameptr_n(size_t const &)
Property: Nameptr_n.
virtual ~SgAsmPEExportDirectory()
Destructor.
void set_ordinals_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Ordinals RVA.
void set_ord_base(unsigned const &)
Property: Ordinal base.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_ordinals_rva() const
Property: Ordinals RVA.
unsigned const & get_vminor() const
Property: VMinor.
SgAsmPEExportDirectory()
Default constructor.
time_t const & get_timestamp() const
Property: Time stamp.
void set_timestamp(time_t const &)
Property: Time stamp.
void set_vmajor(unsigned const &)
Property: VMajor.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_expaddr_rva() const
Property: Expaddr RVA.
void set_nameptr_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Name pointer RVA.
size_t const & get_nameptr_n() const
Property: Nameptr_n.
void set_name(SgAsmGenericString *const &)
Property: Name.
void set_expaddr_n(size_t const &)
Property: Expaddr_n.
List of pointers to other AST nodes.
virtual ~SgAsmPEExportEntryList()
Destructor.
SgAsmPEExportEntryPtrList & get_exports()
Property: List of pointers to nodes.
SgAsmPEExportEntryPtrList const & get_exports() const
Property: List of pointers to nodes.
void set_exports(SgAsmPEExportEntryPtrList const &)
Property: List of pointers to nodes.
SgAsmPEExportEntryList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_forwarder(SgAsmGenericString *)
Property: Forwarder.
void set_ordinal(unsigned const &)
Property: Ordinal.
void set_exportRva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Export RVA.
void set_name(SgAsmGenericString *)
Property: Name.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_exportRva() const
Property: Export RVA.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_exportRva()
Property: Export RVA.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmPEExportEntry()
Default constructor.
Sawyer::Result< unsigned, std::string > biasedOrdinal() const
Property: Biased ordinal.
unsigned const & get_ordinal() const
Property: Ordinal.
SgAsmGenericString *const & get_name() const
Property: Name.
SgAsmGenericString *const & get_forwarder() const
Property: Forwarder.
Export file section.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
SgAsmPEExportEntryList *const & get_exports() const
Property: List of export entries.
void set_exports(SgAsmPEExportEntryList *const &)
Property: List of export entries.
uint32_t ExportAddress_disk
The PE Export Address Table is an array of expaddr_n 4-byte RVAs.
void initializeProperties()
Initialize all properties that have explicit initial values.
uint16_t ExportOrdinal_disk
The PE Export Ordinal Table is an array of nameptr_n (yes) 2-byte indices into the Export Address Tab...
SgAsmPEExportSection()
Default constructor.
SgAsmPEExportDirectory *const & get_exportDirectory() const
Property: Export directory.
virtual SgAsmPEExportSection * parse() override
Parse contents of the section.
void set_exportDirectory(SgAsmPEExportDirectory *const &)
Property: Export directory.
uint32_t ExportNamePtr_disk
The PE Export Name Pointer Table is an array of nameptr_n 4-byte RVAs pointing into the Export Name T...
Windows PE file header.
void set_e_code_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Code RVA.
void set_e_dll_flags(unsigned const &)
Property: DLL flags.
void initializeProperties()
Initialize all properties that have explicit initial values.
unsigned const & get_e_bss_size() const
Property: BSS size.
unsigned const & get_e_file_align() const
Property: File alignment.
void set_e_stack_commit_size(unsigned const &)
Property: Stack commit size.
PairPurpose
Reason for each rva/size pair in the PE header.
unsigned const & get_e_dll_flags() const
Property: DLL flags.
void set_coffSymbolTable(SgAsmCoffSymbolTable *const &)
Property: COFF symbol table.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_e_code_rva() const
Property: Code RVA.
static bool isPe(SgAsmGenericFile *)
Return true if the file looks like it might be a PE file according to the magic number.
unsigned const & get_e_stack_commit_size() const
Property: Stack commit size.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_e_code_rva()
Property: Code RVA.
void set_e_bss_size(unsigned const &)
Property: BSS size.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
void set_e_lminor(unsigned const &)
Property: lminor.
unsigned const & get_e_lmajor() const
Property: lmajor.
void set_e_cpu_type(unsigned const &)
Property: CPU type.
void set_e_user_major(unsigned const &)
Property: User major number.
unsigned const & get_e_file_checksum() const
Property: File checksum.
void set_e_heap_reserve_size(unsigned const &)
Property: Heap reserve size.
void set_e_header_size(unsigned const &)
Property: Header size.
virtual void unparse(std::ostream &) const override
Unparse headers and all they point to.
void set_e_heap_commit_size(unsigned const &)
Property: Heap commit size.
void set_e_file_align(unsigned const &)
Property: File alignment.
void set_e_coff_nsyms(unsigned const &)
Property: Number of COFF symbols.
void set_rvaSizePairs(SgAsmPERVASizePairList *const &)
Property: RVA/size pairs.
virtual const char * formatName() const override
Returns the name of the file format.
std::string rvaSizePairName(PairPurpose, const char **short_name)
Convert an RVA/Size Pair index number into a section name.
void set_e_flags(unsigned const &)
Property: Flags.
void set_e_coff_symtab(Rose::BinaryAnalysis::Address const &)
Property: COFF symbol table.
unsigned const & get_e_data_size() const
Property: Data size.
SgAsmPEFileHeader()
Default constructor.
void set_e_os_minor(unsigned const &)
Property: OS minor number.
void set_e_nsections(unsigned const &)
Property: Number of sections.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void set_e_reserved9(unsigned const &)
Property: Reserved area #9.
Rose::BinaryAnalysis::Address const & get_e_nt_hdr_size() const
Property: Size of NT header.
Rose::BinaryAnalysis::Address const & get_e_coff_symtab() const
Property: COFF symbol table.
void set_e_file_checksum(unsigned const &)
Property: File checksum.
unsigned const & get_e_section_align() const
Property: Section alignment.
unsigned const & get_e_coff_nsyms() const
Property: Number of COFF symbols.
unsigned const & get_e_flags() const
Property: Flags.
unsigned const & get_e_stack_reserve_size() const
Property: Stack reserve size.
unsigned const & get_e_nsections() const
Property: Number of sections.
void set_e_opt_magic(unsigned const &)
Property: Magic.
void set_e_time(unsigned const &)
Property: Time.
void set_e_data_size(unsigned const &)
Property: Data size.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_e_data_rva() const
Property: Data RVA.
void set_e_loader_flags(unsigned const &)
Property: Loader flags.
virtual SgAsmPEFileHeader * parse() override
Parse contents of the section.
unsigned const & get_e_reserved9() const
Property: Reserved area #9.
void set_e_image_size(unsigned const &)
Property: Image size.
unsigned const & get_e_user_minor() const
Property: User minor number.
unsigned const & get_e_header_size() const
Property: Header size.
void set_e_subsystem(unsigned const &)
Property: Subsystem.
void set_e_stack_reserve_size(unsigned const &)
Property: Stack reserve size.
unsigned const & get_e_user_major() const
Property: User major number.
SgAsmPERVASizePairList *const & get_rvaSizePairs() const
Property: RVA/size pairs.
void set_e_code_size(unsigned const &)
Property: Code size.
void set_e_subsys_minor(unsigned const &)
Property: Subsystem minor number.
unsigned const & get_e_subsystem() const
Property: Subsystem.
unsigned const & get_e_subsys_major() const
Property: Subsystem major number.
unsigned const & get_e_os_minor() const
Property: OS minor number.
void set_e_lmajor(unsigned const &)
Property: lmajor.
SgAsmCoffSymbolTable *const & get_coffSymbolTable() const
Property: COFF symbol table.
unsigned const & get_e_time() const
Property: Time.
SgAsmPESectionTable *const & get_sectionTable() const
Property: Section table.
unsigned const & get_e_cpu_type() const
Property: CPU type.
unsigned const & get_e_code_size() const
Property: Code size.
unsigned const & get_e_subsys_minor() const
Property: Subsystem minor number.
void set_e_os_major(unsigned const &)
Property: OS major number.
void set_e_section_align(unsigned const &)
Property: Section alignment.
unsigned const & get_e_image_size() const
Property: Image size.
unsigned const & get_e_loader_flags() const
Property: Loader flags.
void set_e_user_minor(unsigned const &)
Property: User minor number.
unsigned const & get_e_lminor() const
Property: lminor.
void set_e_num_rvasize_pairs(unsigned const &)
Property: Number of RVA/size pairs.
unsigned const & get_e_opt_magic() const
Property: Magic.
void updateRvaSizePairs()
Update all the RVA/Size pair info from the section to which it points.
unsigned const & get_e_num_rvasize_pairs() const
Property: Number of RVA/size pairs.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_e_data_rva()
Property: Data RVA.
unsigned const & get_e_heap_reserve_size() const
Property: Heap reserve size.
void set_e_data_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Data RVA.
void set_sectionTable(SgAsmPESectionTable *const &)
Property: Section table.
unsigned const & get_e_heap_commit_size() const
Property: Heap commit size.
void set_e_subsys_major(unsigned const &)
Property: Subsystem major number.
unsigned const & get_e_os_major() const
Property: OS major number.
void set_rvaSizePair(PairPurpose, SgAsmPESection *)
Define an RVA/Size pair in the PE file header.
void set_e_nt_hdr_size(Rose::BinaryAnalysis::Address const &)
Property: Size of NT header.
A list of PE Import Directories.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmPEImportDirectoryPtrList & get_vector()
Property: List of nodes.
SgAsmPEImportDirectoryList()
Default constructor.
SgAsmPEImportDirectoryPtrList const & get_vector() const
Property: List of nodes.
virtual ~SgAsmPEImportDirectoryList()
Destructor.
void set_vector(SgAsmPEImportDirectoryPtrList const &)
Property: List of nodes.
One import directory per library.
void set_iat_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: IAT RVA.
void set_imports(SgAsmPEImportItemList *const &)
Property: List of imports.
unsigned const & get_forwarder_chain() const
Property: Forwarder chain.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_ilt_rva() const
Property: Starting address of the ILT.
void * encode(SgAsmPEImportDirectory::PEImportDirectory_disk *) const
Encode an import directory entry back into disk format.
void set_ilt_nalloc(size_t const &)
Property: Bytes allocated in the file for the ILT.
SgAsmPEImportItemList *const & get_imports() const
Property: List of imports.
size_t hintNameTableExtent(Rose::BinaryAnalysis::AddressIntervalSet &extent) const
Obtains the virtual address of the Hint/Name Table.
void set_iat_nalloc(size_t const &)
Property: Bytes allocated in the file for the IAT.
void set_dllNameRva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Address of the import library name.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_dllNameRva()
Property: Address of the import library name.
time_t const & get_time() const
Property: Time.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_iat_rva() const
Property: IAT RVA.
SgAsmPEImportDirectory()
Default constructor.
size_t const & get_dll_name_nalloc() const
Property: Bytes allocated in the file for the name.
int findImportItem(const SgAsmPEImportItem *item, int hint=0) const
Find an import item in an import directory.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_iat_rva()
Property: IAT RVA.
SgAsmGenericString *const & get_dllName() const
Property: Name of library from which to import.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_dllNameRva() const
Property: Address of the import library name.
SgAsmPEImportDirectory * parse(Rose::BinaryAnalysis::Address va, bool isLastEntry)
Parse an import directory.
void set_dll_name_nalloc(size_t const &)
Property: Bytes allocated in the file for the name.
size_t reallocate(Rose::BinaryAnalysis::RelativeVirtualAddress starting_rva)
Allocates space for this import directory's name, import lookup table, and import address table.
void set_ilt_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Starting address of the ILT.
void set_forwarder_chain(unsigned const &)
Property: Forwarder chain.
void set_time(time_t const &)
Property: Time.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_ilt_rva()
Property: Starting address of the ILT.
size_t const & get_ilt_nalloc() const
Property: Bytes allocated in the file for the ILT.
size_t const & get_iat_nalloc() const
Property: Bytes allocated in the file for the IAT.
void set_dllName(SgAsmGenericString *const &)
Property: Name of library from which to import.
size_t iatRequiredSize() const
Number of bytes required for the table.
void initializeProperties()
Initialize all properties that have explicit initial values.
A list of imported items.
SgAsmPEImportItemPtrList const & get_vector() const
Property: List of pointers to other nodes.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_vector(SgAsmPEImportItemPtrList const &)
Property: List of pointers to other nodes.
virtual ~SgAsmPEImportItemList()
Destructor.
SgAsmPEImportItemList()
Default constructor.
SgAsmPEImportItemPtrList & get_vector()
Property: List of pointers to other nodes.
A single imported object.
void set_iat_written(bool const &)
Property: Whether the resolved address has been written to the memory map.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_bound_rva() const
Property: Bound RVA from IAT if not a copy of ILT.
bool const & get_iat_written() const
Property: Whether the resolved address has been written to the memory map.
void set_bound_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: Bound RVA from IAT if not a copy of ILT.
void set_hint(unsigned const &)
Property: Export name table hint if not ordinal.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmGenericString *const & get_name() const
Property: Name if not by ordinal.
unsigned const & get_ordinal() const
Property: Ordinal number.
SgAsmPEImportItem()
Default constructor.
bool const & get_by_ordinal() const
Property: Whether ordinal number is stored.
void set_ordinal(unsigned const &)
Property: Ordinal number.
void set_hintname_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: RVA of hint/name pair.
void set_by_ordinal(bool const &)
Property: Whether ordinal number is stored.
void set_hintname_nalloc(size_t const &)
Property: File bytes allocated for hint/name pair.
size_t const & get_hintname_nalloc() const
Property: File bytes allocated for hint/name pair.
unsigned const & get_hint() const
Property: Export name table hint if not ordinal.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_hintname_rva()
Property: RVA of hint/name pair.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_hintname_rva() const
Property: RVA of hint/name pair.
void set_name(SgAsmGenericString *const &)
Property: Name if not by ordinal.
Rose::BinaryAnalysis::Address get_iatEntryVa() const
Virtual address of an IAT entry.
size_t hintNameRequiredSize() const
Bytes needed to store hint/name pair.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_bound_rva()
Property: Bound RVA from IAT if not a copy of ILT.
Portable Executable Import Section.
void set_importDirectories(SgAsmPEImportDirectoryList *const &)
Property: List of import directories.
SgAsmPEImportDirectoryList *const & get_importDirectories() const
Property: List of import directories.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
void addImportDirectory(SgAsmPEImportDirectory *)
Add an import directory to the end of the import directory list.
SgAsmPEImportSection()
Default constructor.
virtual SgAsmPEImportSection * parse() override
Parse contents of the section.
size_t reallocateIats(Rose::BinaryAnalysis::RelativeVirtualAddress start_at)
Reallocate space for all Import Address Table.
void initializeProperties()
Initialize all properties that have explicit initial values.
void removeImportDirectory(SgAsmPEImportDirectory *)
Remove an import directory from the import directory list.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
List of SgAsmPERVASizePair AST nodes.
SgAsmPERVASizePairPtrList const & get_pairs() const
Property: List of pointers to other nodes.
virtual ~SgAsmPERVASizePairList()
Destructor.
SgAsmPERVASizePairPtrList & get_pairs()
Property: List of pointers to other nodes.
SgAsmPERVASizePairList()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_pairs(SgAsmPERVASizePairPtrList const &)
Property: List of pointers to other nodes.
Rose::BinaryAnalysis::RelativeVirtualAddress & get_e_rva()
Property: RVA.
SgAsmPERVASizePair(SgAsmPERVASizePairList *parent, const SgAsmPERVASizePair::RVASizePair_disk *)
Property: Section.
SgAsmGenericSection * get_section() const
Returns the section associated with an RVA/size pair.
void set_e_size(Rose::BinaryAnalysis::Address const &)
Property: Size.
virtual ~SgAsmPERVASizePair()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmPERVASizePair()
Default constructor.
void set_section(SgAsmGenericSection *section)
Sets or removes the section associated with an RVA/size pair.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_e_rva() const
Property: RVA.
void set_e_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: RVA.
Rose::BinaryAnalysis::Address const & get_e_size() const
Property: Size.
unsigned const & get_coff_line_nums() const
Property: COFF line numbers.
unsigned const & get_n_relocs() const
Property: Number of relocations.
void set_virtual_size(Rose::BinaryAnalysis::Address const &)
Property: Virtual size.
void set_physical_size(Rose::BinaryAnalysis::Address const &)
Property: Physical size.
void set_flags(unsigned const &)
Property: Flags.
void set_coff_line_nums(unsigned const &)
Property: COFF line numbers.
Rose::BinaryAnalysis::Address const & get_rva() const
Property: RVA.
void set_name(std::string const &)
Property: Name.
Rose::BinaryAnalysis::Address const & get_virtual_size() const
Property: Virtual size.
void updateFromSection(SgAsmPESection *section)
Update this section table entry with newer information from the section.
void set_rva(Rose::BinaryAnalysis::Address const &)
Property: RVA.
void set_n_coff_line_nums(unsigned const &)
Property: Number of COFF line numbers.
void set_physical_offset(Rose::BinaryAnalysis::Address const &)
Property: Physical offset.
Rose::BinaryAnalysis::Address const & get_physical_size() const
Property: Physical size.
unsigned const & get_flags() const
Property: Flags.
unsigned const & get_n_coff_line_nums() const
Property: Number of COFF line numbers.
std::string const & get_name() const
Property: Name.
Rose::BinaryAnalysis::Address const & get_physical_offset() const
Property: Physical offset.
void set_n_relocs(unsigned const &)
Property: Number of relocations.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
void addSection(SgAsmPESection *section)
Attaches a previously unattached PE Section to the PE Section Table.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
virtual SgAsmPESectionTable * parse() override
Parse contents of the section.
Base class for PE sections.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmPESection()
Default constructor.
void set_section_entry(SgAsmPESectionTableEntry *const &)
Property: Section table entry.
SgAsmPESection * initFromSectionTable(SgAsmPESectionTableEntry *entry, int id)
Initializes the section from data parsed from the PE Section Table.
SgAsmPESectionTableEntry *const & get_section_entry() const
Property: Section table entry.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
virtual ~SgAsmPESection()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
virtual SgAsmPEStringSection * parse() override
Parse contents of the section.
virtual void unparse(std::ostream &) const override
Write a section back to the file.
virtual ~SgAsmPEStringSection()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmCoffStrtab *const & get_strtab() const
Property: String table.
void set_strtab(SgAsmCoffStrtab *const &)
Property: String table.
virtual void set_size(Rose::BinaryAnalysis::Address newsize) override
Property: Size of section in file in bytes.
SgAsmPEStringSection()
Default constructor.
static SgAsmPointerType * instance(Rose::BinaryAnalysis::ByteOrder::Endianness, size_t nBits, SgAsmType *subtype)
Make instance wrapped around a subtype.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmPointerType()
Destructor.
virtual void check() const override
Validate properties collectively.
SgAsmPointerType(Rose::BinaryAnalysis::ByteOrder::Endianness, size_t nBits, SgAsmType *subtype)
Construct new pointer type.
virtual std::string toString() const override
Convert a type to a string.
SgAsmPointerType()
Default constructor.
Represents one PowerPC machine instruction.
virtual ~SgAsmPowerpcInstruction()
Destructor.
static Rose::BinaryAnalysis::RegisterDictionaryPtr registersForWidth(size_t)
Return the register dictionary for a PowerPC architecture.
Rose::BinaryAnalysis::PowerpcInstructionKind const & get_kind() const
Property: Instruction kind.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_kind(Rose::BinaryAnalysis::PowerpcInstructionKind const &)
Property: Instruction kind.
std::string conditionalBranchDescription() const
Description of conditional branch BO constant.
SgAsmPowerpcInstruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::PowerpcInstructionKind const &kind)
Constructor.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
SgAsmPowerpcInstruction()
Default constructor.
An ordered list of registers.
SgAsmRegisterReferenceExpressionPtrList & get_registers()
Property: List of registers.
SgAsmRegisterNames()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_registers(SgAsmRegisterReferenceExpressionPtrList const &)
Property: List of registers.
unsigned const & get_mask() const
Property: Bit mask.
SgAsmRegisterReferenceExpressionPtrList const & get_registers() const
Property: List of registers.
virtual ~SgAsmRegisterNames()
Destructor.
void set_mask(unsigned const &)
Property: Bit mask.
Base class for references to a machine register.
Rose::BinaryAnalysis::RegisterDescriptor const & get_descriptor() const
Property: Descriptor for accessed register.
SgAsmRegisterReferenceExpression()
Default constructor.
int const & get_adjustment() const
Property: Post-increment or pre-decrement amount.
virtual ~SgAsmRegisterReferenceExpression()
Destructor.
void set_descriptor(Rose::BinaryAnalysis::RegisterDescriptor const &)
Property: Descriptor for accessed register.
SgAsmRegisterReferenceExpression(Rose::BinaryAnalysis::RegisterDescriptor const &descriptor)
Constructor.
void set_adjustment(int const &)
Property: Post-increment or pre-decrement amount.
void initializeProperties()
Initialize all properties that have explicit initial values.
Static representation of instruction semantics.
SgAsmRiscOperation::RiscOperator const & get_riscOperator() const
Property: Low-level semantic operation.
SgAsmRiscOperation(SgAsmRiscOperation::RiscOperator const &riscOperator)
Constructor.
SgAsmExprListExp *const & get_operands() const
Property: Operands for the low-level operation.
void set_riscOperator(SgAsmRiscOperation::RiscOperator const &)
Property: Low-level semantic operation.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_operands(SgAsmExprListExp *const &)
Property: Operands for the low-level operation.
virtual ~SgAsmRiscOperation()
Destructor.
SgAsmRiscOperation()
Default constructor.
RiscOperator
One enum per RISC operator.
@ OP_N_OPERATORS
Number of operators in this enum.
@ OP_add
Two args + optional carry bit.
@ OP_writeMemory
Three or four args depending on whether segment reg is present.
@ OP_addCarries
Carries from a 3-arg add operation.
@ OP_readMemory
Three or four args depending on whether segment reg is present.
Base class for scalar types.
virtual size_t get_nBits() const override
Property: Number of bits.
SgAsmScalarType()
Default constructor.
Rose::BinaryAnalysis::ByteOrder::Endianness get_minorOrder() const
Property: Minor byte order.
virtual void check() const override
Validate properties collectively.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmScalarType(Rose::BinaryAnalysis::ByteOrder::Endianness, size_t nBits)
Property: Major byte order for mixed-order types.
virtual ~SgAsmScalarType()
Destructor.
Rose::BinaryAnalysis::ByteOrder::Endianness get_majorOrder() const
Property: Major byte order for mixed-order types.
size_t get_majorNBytes() const
Property: Stride of major byte order for mixed order types.
virtual std::string toString() const override
Convert a type to a string.
Base class for references to a machine register.
void set_stackPosition(int const &)
Property: Position of element referenced on the stack.
int const & get_stackPosition() const
Property: Position of element referenced on the stack.
Base class for statement-like subclasses.
virtual ~SgAsmStatement()
Destructor.
Rose::BinaryAnalysis::Address const & get_address() const
Property: Starting virtual address.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_comment(std::string const &)
Property: Commentary.
SgAsmStatement()
Default constructor.
SgAsmStatement(Rose::BinaryAnalysis::Address const &address)
Constructor.
std::string const & get_comment() const
Property: Commentary.
void set_address(Rose::BinaryAnalysis::Address const &)
Property: Starting virtual address.
Represents static data in an executable.
size_t get_size() const
Property: Size of static data in bytes.
void set_rawBytes(SgUnsignedCharList const &)
Property: Raw bytes.
SgUnsignedCharList const & get_rawBytes() const
Property: Raw bytes.
Strings stored in an ELF or PE container.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_storage(SgAsmStringStorage *const &)
Property: Storage area for this string.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
virtual ~SgAsmStoredString()
Destructor.
SgAsmStoredString(SgAsmGenericStrtab *, const std::string &)
Construct a new string in a string table.
SgAsmStoredString(class SgAsmStringStorage *)
Construct a string that shares storage with another.
SgAsmStoredString(SgAsmGenericStrtab *, Rose::BinaryAnalysis::Address offset)
Construct a string existing in a string table.
SgAsmGenericStrtab * get_strtab()
Returns the string table that holds this string.
SgAsmStoredString()
Default constructor.
virtual void set_string(Rose::BinaryAnalysis::Address) override
Give the string a new value.
virtual Rose::BinaryAnalysis::Address get_offset() const override
Returns the offset into the string table where the string is allocated.
virtual std::string get_string(bool escape=false) const override
Returns the std::string associated with the SgAsmStoredString.
virtual void set_string(const std::string &) override
Give the string a new value.
SgAsmStringStorage *const & get_storage() const
Property: Storage area for this string.
Strings stored in an ELF or PE container.
void set_offset(Rose::BinaryAnalysis::Address const &)
Property: Location of string in storage table.
void set_strtab(SgAsmGenericStrtab *const &)
Property: String table holding the string.
std::string const & get_string() const
Property: String value.
Rose::BinaryAnalysis::Address const & get_offset() const
Property: Location of string in storage table.
virtual ~SgAsmStringStorage()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmStringStorage()
Default constructor.
void set_string(std::string const &)
Property: String value.
SgAsmGenericStrtab *const & get_strtab() const
Property: String table holding the string.
Declaration-like nodes that encapsulate multiple instructions.
void appendDeclaration(SgAsmSynthesizedDeclaration *declaration)
Appends another declaration.
Base class for synthesized declarations.
SgAsmSynthesizedDeclaration(Rose::BinaryAnalysis::Address const &address)
Constructor.
virtual ~SgAsmSynthesizedDeclaration()
Destructor.
SgAsmSynthesizedDeclaration()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_name(std::string const &)
Property: Name.
SgAsmSynthesizedFieldDeclaration()
Default constructor.
std::string const & get_name() const
Property: Name.
uint64_t const & get_offset() const
Property: Offset.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmSynthesizedFieldDeclaration(Rose::BinaryAnalysis::Address const &address)
Constructor.
virtual ~SgAsmSynthesizedFieldDeclaration()
Destructor.
void set_offset(uint64_t const &)
Property: Offset.
Base class for binary types.
virtual std::string toString() const
Convert a type to a string.
virtual size_t get_nBytes() const
Width of type in bytes.
virtual size_t get_nBits() const
Width of type in bits.
SgAsmType()
Default constructor.
static Type * registerOrDelete(Type *toInsert)
Registers a type with the type system.
virtual ~SgAsmType()
Destructor.
virtual void check() const
Validate properties collectively.
void initializeProperties()
Initialize all properties that have explicit initial values.
Base class for unary expressions.
virtual ~SgAsmUnaryExpression()
Destructor.
SgAsmUnaryExpression()
Default constructor.
void set_operand(SgAsmExpression *const &)
Property: Operand for a unary expression.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmUnaryExpression(SgAsmExpression *const &operand)
Constructor.
SgAsmExpression *const & get_operand() const
Property: Operand for a unary expression.
Expression represting negation.
SgAsmUnaryMinus()
Default constructor.
SgAsmUnaryMinus(SgAsmExpression *const &operand)
Constructor.
virtual ~SgAsmUnaryMinus()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Expression representing a (no-op) unary plus operation.
virtual ~SgAsmUnaryPlus()
Destructor.
SgAsmUnaryPlus(SgAsmExpression *const &operand)
Constructor.
SgAsmUnaryPlus()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmUnaryRrx(SgAsmExpression *const &operand)
Constructor.
SgAsmUnaryRrx()
Default constructor.
virtual ~SgAsmUnaryRrx()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Expression representing sign extending.
SgAsmUnarySignedExtend()
Default constructor.
SgAsmUnarySignedExtend(SgAsmExpression *const &operand)
Constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmUnarySignedExtend()
Destructor.
Expression representing truncation.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmUnaryTruncate()
Destructor.
SgAsmUnaryTruncate()
Default constructor.
SgAsmUnaryTruncate(SgAsmExpression *const &operand)
Constructor.
Expression representing unsigned extending.
SgAsmUnaryUnsignedExtend()
Default constructor.
SgAsmUnaryUnsignedExtend(SgAsmExpression *const &operand)
Constructor.
virtual ~SgAsmUnaryUnsignedExtend()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Instructions defined at runtime.
unsigned const & get_kind() const
Property: Instruction kind.
void set_kind(unsigned const &)
Property: Instruction kind.
SgAsmUserInstruction()
Default constructor.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
SgAsmUserInstruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId, unsigned const &kind)
Constructor.
virtual ~SgAsmUserInstruction()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Base class for values.
SgSymbol *const & get_symbol() const
Property: Symbol corresponding to this expression.
void initializeProperties()
Initialize all properties that have explicit initial values.
unsigned short const & get_bitOffset() const
Property: Where this expression is encoded within the instruction.
void set_bitSize(unsigned short const &)
Property: Where this expression is encoded within the instruction.
void set_unfoldedExpression(SgAsmValueExpression *const &)
Property: Alternate expression without constant folding.
void set_symbol(SgSymbol *const &)
Property: Symbol corresponding to this expression.
SgAsmValueExpression *const & get_unfoldedExpression() const
Property: Alternate expression without constant folding.
unsigned short const & get_bitSize() const
Property: Where this expression is encoded within the instruction.
void set_bitOffset(unsigned short const &)
Property: Where this expression is encoded within the instruction.
Base class for vector types.
size_t get_nElmts() const
Property: Number of elements in vector.
SgAsmType * get_elmtType() const
Property: Type of each vector element.
virtual ~SgAsmVectorType()
Destructor.
virtual size_t get_nBits() const override
Width of type in bits.
virtual std::string toString() const override
Convert a type to a string.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void check() const override
Validate properties collectively.
SgAsmVectorType()
Default constructor.
SgAsmVectorType(size_t nElmts, SgAsmType *elmtType)
Property: Number of elements in vector.
A type that doesn't represent any data.
virtual ~SgAsmVoidType()
Destructor.
virtual std::string toString() const override
Convert a type to a string.
virtual size_t get_nBits() const override
Width of type in bits.
SgAsmVoidType()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
Represents one Intel x86 machine instruction.
void set_kind(Rose::BinaryAnalysis::X86InstructionKind const &)
Property: Instruction kind.
SgAsmX86Instruction()
Default constructor.
Rose::BinaryAnalysis::X86InstructionSize const & get_baseSize() const
Property: An enum constant describing the base size of an x86 instruction.
Rose::BinaryAnalysis::X86InstructionSize const & get_addressSize() const
Property: An enum describing the x86 address size.
static Rose::BinaryAnalysis::RegisterDictionaryPtr registersForWidth(size_t)
Return the register dictionary for an x86 architecture.
Rose::BinaryAnalysis::X86InstructionSize const & get_operandSize() const
Property: An enum describing the x86 instruction operand size.
static size_t widthForInstructionSize(Rose::BinaryAnalysis::X86InstructionSize)
Converts a size enum constant to a size.
virtual ~SgAsmX86Instruction()
Destructor.
bool const & get_lockPrefix() const
Property: Whether the x86 lock prefix was present.
void set_branchPrediction(Rose::BinaryAnalysis::X86BranchPrediction const &)
Property: An enum constant describing branch prediction.
void set_baseSize(Rose::BinaryAnalysis::X86InstructionSize const &)
Property: An enum constant describing the base size of an x86 instruction.
Rose::BinaryAnalysis::X86InstructionKind const & get_kind() const
Property: Instruction kind.
static Rose::BinaryAnalysis::X86InstructionSize instructionSizeForWidth(size_t)
Converts a size to an instruction size enum.
Rose::BinaryAnalysis::X86BranchPrediction const & get_branchPrediction() const
Property: An enum constant describing branch prediction.
static Rose::BinaryAnalysis::RegisterDictionaryPtr registersForInstructionSize(Rose::BinaryAnalysis::X86InstructionSize)
Return the register dictionary for an x86 architecture.
void set_lockPrefix(bool const &)
Property: Whether the x86 lock prefix was present.
void set_repeatPrefix(Rose::BinaryAnalysis::X86RepeatPrefix const &)
Property: An enum constant describing whether the instruction is repeated.
void set_addressSize(Rose::BinaryAnalysis::X86InstructionSize const &)
Property: An enum describing the x86 address size.
void set_operandSize(Rose::BinaryAnalysis::X86InstructionSize const &)
Property: An enum describing the x86 instruction operand size.
SgAsmX86Instruction(Rose::BinaryAnalysis::Address const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::X86InstructionKind const &kind, Rose::BinaryAnalysis::X86InstructionSize const &baseSize, Rose::BinaryAnalysis::X86InstructionSize const &operandSize, Rose::BinaryAnalysis::X86InstructionSize const &addressSize)
Constructor.
Rose::BinaryAnalysis::X86RepeatPrefix const & get_repeatPrefix() const
Property: An enum constant describing whether the instruction is repeated.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
Rose::BinaryAnalysis::X86SegmentRegister const & get_segmentOverride() const
Property: The segment override register.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_segmentOverride(Rose::BinaryAnalysis::X86SegmentRegister const &)
Property: The segment override register.
This class represents the base class for all IR nodes within Sage III.
virtual void debugSerializationEnd(const char *className)
Called by generated serializers.
virtual void debugSerializationBegin(const char *className)
Called by generated serializers.
This class represents the symbol tables used in both SgScopeStatement and the SgFunctionTypeSymbolTab...
This class represents the concept of a name within the compiler.
std::shared_ptr< const Base > BaseConstPtr
Reference counted pointer for Architecture::Base.
X86InstructionKind
List of all x86 instructions known to the ROSE disassembler/assembler.
std::uint64_t Address
Address.
Definition Address.h:11
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.
The ROSE library.
Sawyer support library.
On-disk format of DOS file header.
uint16_t e_cksum
0x12 checksum; 16-bit sum of all words in file should be zero (usually not filled in).
uint16_t e_minalloc
0x0a number of extra paragraphs needed, similar to BSS in Unix.
uint16_t e_relocs_offset
0x18 file address of relocation table.
uint16_t e_header_paragraphs
0x08 header size in paragraphs (16-byte blocks) inc.
uint16_t e_ip
0x14 initial value for IP register.
uint16_t e_ss
0x0e initial value of SS register relative to program load segment.
uint16_t e_maxalloc
0x0c max paragraphs to allocate for BSS.
uint16_t e_total_pages
0x04 number of pages (inc.
uint16_t e_overlay
0x1a overlay number (zero indicates main program).
uint16_t e_last_page_size
0x02 bytes used on last page of file (1 page == 512 bytes); zero implies if last page is full.
uint16_t e_sp
0x10 initial value for SP register.
uint16_t e_cs
0x16 initial value for CS register relative to program load segment.
uint16_t e_nrelocs
0x06 number of relocation entries stored after this header.
uint32_t d_tag
Entry type, one of the DT_* constants.
uint64_t d_tag
Entry type, one of the DT_* constants.
uint16_t e_shnum
Number of section headers, or zero for extended entries.
uint16_t e_phnum
Number of program headers, or PN_XNUM, or zero.
unsigned char e_ident_magic[4]
0x7f, 'E', 'L', 'F'
uint16_t e_type
Object file type: relocatable, executable, lib, core.
uint32_t e_phoff
File offset of program header table or zero if none.
uint16_t e_ehsize
Size of ELF header in bytes.
unsigned char e_ident_padding[9]
Padding to byte 16; must be zero.
unsigned char e_ident_file_version
Format version number (same as e_version); must be 1.
uint32_t e_version
Object file version, currently zero or one.
uint32_t e_flags
Processor-specific flags (EF_* constants in docs)
uint32_t e_shoff
File offset of section header table or zero if none.
unsigned char e_ident_file_class
1=>32-bit; 2=>64-bit; other is error
uint16_t e_shstrndx
Index of name section, or SHN_UNDEF, or SHN_XINDEX.
uint32_t e_entry
Entry virtual address or zero if none.
unsigned char e_ident_data_encoding
1=>LSB; 2=>MSB; other is error
uint16_t e_phentsize
Size of each entry in the program header table.
uint16_t e_machine
Required architecture for an individual file.
uint16_t e_shentsize
Size of each entry in the section header table.
uint32_t p_vaddr
0x08 desired mapped address of segment
uint32_t p_memsz
0x24 number of bytes when mapped (may be zero)
uint32_t p_paddr
0x0c physical address where supported (unused by System V)
uint32_t p_align
0x2c alignment for file and memory (0,1=>none); power of two
uint32_t p_filesz
0x20 bytes in file (may be zero or other value smaller than p_memsz)
32-bit format of an ELF symbol.
uint32_t st_size
Symbol size in bytes.
uint32_t st_value
Value: absolute value, address, etc.
uint32_t st_name
Name offset into string table.
unsigned char st_info
Type and binding attributes.
uint16_t st_shndx
Section index or special meaning.
unsigned char st_res1
Reserved; always zero.
uint32_t vda_name
Offset (in bytes) to strings table to name string.
uint32_t vda_next
Offset (in bytes) to next verdaux entry.
uint32_t vd_next
Offset (in bytes) to next verdef entry.
uint16_t vd_flags
Version information flag bitmask.
uint32_t vd_aux
Offset (in bytes) to start of array of verdaux entries.
uint16_t vd_version
version of this struct: This field shall be set to 1
uint32_t vna_next
Offset (in bytes) to next vernaux entry.
uint32_t vna_name
Offset (in bytes) to strings table to name string.
uint16_t vna_other
Version index of this entry (bit 15 is special)
uint16_t vna_flags
Version information flag bitmask.
uint32_t vn_aux
Offset (in bytes) to start of array of vernaux entries.
uint32_t vn_next
Offset (in bytes) to next verneed entry.
uint32_t vn_file
Offset (in bytes) to strings table to file string.
uint16_t vn_version
version of this struct: This field shall be set to 1
These following structs are documented below to indicate which fields are active for each tag of an S...
4.4.10 CONSTANT_Dynamic_info table entry.
4.4.2 CONSTANT_Fieldref_info, CONSTANT_Methodref_info, and CONSTANT_InterfaceMethodref_info table ent...
4.4.4 CONSTANT_Integer_info table entry.
4.4.8 CONSTANT_MethodHandle_info table entry.
4.4.9 CONSTANT_MethodType_info table entry.
4.4.11 CONSTANT_Module_info table entry.
4.4.6 CONSTANT_NameAndType_info table entry.
4.4.12 CONSTANT_Package_info table entry.
4.4.3 CONSTANT_String_info table entry.
4.4.7 CONSTANT_Utf8_info table entry.
File format for an RVA/Size pair.
The following discriminated union is documented below and indicates which item of the union is in use...