ROSE 0.11.145.250
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// SgAsmJvmSynthetic -- MACHINE GENERATED; DO NOT MODIFY --
9328
9329DECLARE_LEAF_CLASS(AsmJvmSynthetic);
9330IS_SERIALIZABLE(AsmJvmSynthetic);
9331
9332#ifndef DOCUMENTATION
9333AsmJvmSynthetic.useSmallHeader(true);
9334#endif // !DOCUMENTATION
9335
9336#ifdef DOCUMENTATION
9342#endif // DOCUMENTATION
9343
9344 DECLARE_OTHERS(AsmJvmSynthetic);
9345#if defined(SgAsmJvmSynthetic_OTHERS) || defined(DOCUMENTATION)
9346
9347 //----------------------- Boost serialization for SgAsmJvmSynthetic -----------------------
9348#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9349private:
9350 friend class boost::serialization::access;
9351
9352 template<class S>
9353 void serialize(S &s, const unsigned /*version*/) {
9354 debugSerializationBegin("SgAsmJvmSynthetic");
9355 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9356 debugSerializationEnd("SgAsmJvmSynthetic");
9357 }
9358#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9359public:
9364
9367public:
9370
9371public:
9374
9375protected:
9383#endif // SgAsmJvmSynthetic_OTHERS
9384#ifdef DOCUMENTATION
9385};
9386#endif // DOCUMENTATION
9387
9388
9390// SgAsmJvmStackMapVerificationType -- MACHINE GENERATED; DO NOT MODIFY --
9392
9393DECLARE_LEAF_CLASS(AsmJvmStackMapVerificationType);
9394IS_SERIALIZABLE(AsmJvmStackMapVerificationType);
9395
9396#ifndef DOCUMENTATION
9397AsmJvmStackMapVerificationType.useSmallHeader(true);
9398#endif // !DOCUMENTATION
9399
9400#ifdef DOCUMENTATION
9405#endif // DOCUMENTATION
9406
9407#ifndef DOCUMENTATION
9408 AsmJvmStackMapVerificationType.setDataPrototype(
9409 "uint8_t", "tag", "= 9",
9410 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9411#endif // !DOCUMENTATION
9412
9413#ifndef DOCUMENTATION
9414 AsmJvmStackMapVerificationType.setDataPrototype(
9415 "uint16_t", "cpool_index", "= 0",
9416 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9417#endif // !DOCUMENTATION
9418
9419#ifndef DOCUMENTATION
9420 AsmJvmStackMapVerificationType.setDataPrototype(
9421 "uint16_t", "offset", "= 0",
9422 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9423#endif // !DOCUMENTATION
9424
9425 DECLARE_OTHERS(AsmJvmStackMapVerificationType);
9426#if defined(SgAsmJvmStackMapVerificationType_OTHERS) || defined(DOCUMENTATION)
9427
9428 //----------------------- Boost serialization for SgAsmJvmStackMapVerificationType -----------------------
9429#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9430private:
9431 friend class boost::serialization::access;
9432
9433 template<class S>
9434 void serialize(S &s, const unsigned /*version*/) {
9435 debugSerializationBegin("SgAsmJvmStackMapVerificationType");
9436 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9437 s & BOOST_SERIALIZATION_NVP(p_tag);
9438 s & BOOST_SERIALIZATION_NVP(p_cpool_index);
9439 s & BOOST_SERIALIZATION_NVP(p_offset);
9440 debugSerializationEnd("SgAsmJvmStackMapVerificationType");
9441 }
9442#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9443private:
9448 enum verification_type_tag {
9449 ITEM_Top = 0,
9450 ITEM_Integer = 1,
9451 ITEM_Float = 2,
9452 ITEM_Double = 3,
9453 ITEM_Long = 4,
9454 ITEM_Null = 5,
9455 ITEM_UninitializedThis = 6,
9456 ITEM_Object = 7,
9457 ITEM_Uninitialized = 8
9458 };
9459
9461 // Local types (for documentation purposes only)
9463#ifdef DOCUMENTATION
9467 union verification_type_info {
9468 Top_variable_info;
9469 Integer_variable_info;
9470 Float_variable_info;
9471 Long_variable_info;
9472 Double_variable_info;
9473 Null_variable_info;
9474 UninitializedThis_variable_info;
9475 Object_variable_info;
9476 Uninitialized_variable_info;
9477 };
9478
9480 struct Top_variable_info {
9481 uint8_t tag;
9482 };
9483 struct Integer_variable_info {
9484 uint8_t tag;
9485 };
9486 struct Float_variable_info {
9487 uint8_t tag;
9488 };
9489 struct Long_variable_info {
9490 uint8_t tag;
9491 };
9492 struct Double_variable_info {
9493 uint8_t tag;
9494 };
9495 struct Null_variable_info {
9496 uint8_t tag;
9497 };
9498 struct UnitializedThis_variable_info {
9499 uint8_t tag;
9500 };
9501 struct Object_variable_info {
9502 uint8_t tag;
9503 uint16_t cpool_index;
9504 };
9505 struct Unitialized_variable_info {
9506 uint8_t tag;
9507 uint16_t offset;
9508 };
9509#endif
9510
9512 // Properties
9514public:
9515public:
9521 uint8_t const& get_tag() const;
9522 void set_tag(uint8_t const&);
9524 /* Not a legal entry */
9525public:
9531 uint16_t const& get_cpool_index() const;
9532 void set_cpool_index(uint16_t const&);
9535public:
9541 uint16_t const& get_offset() const;
9542 void set_offset(uint16_t const&);
9545 // Functions
9547public:
9552
9555
9557 virtual void unparse(std::ostream&) const override;
9558
9560 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9561public:
9564
9565public:
9568
9569protected:
9577#endif // SgAsmJvmStackMapVerificationType_OTHERS
9578#ifdef DOCUMENTATION
9579};
9580#endif // DOCUMENTATION
9581
9582
9584// SgAsmJvmStackMapTable -- MACHINE GENERATED; DO NOT MODIFY --
9586
9587DECLARE_LEAF_CLASS(AsmJvmStackMapTable);
9588IS_SERIALIZABLE(AsmJvmStackMapTable);
9589
9590#ifndef DOCUMENTATION
9591AsmJvmStackMapTable.useSmallHeader(true);
9592#endif // !DOCUMENTATION
9593
9594DECLARE_HEADERS(AsmJvmStackMapTable);
9595#if defined(SgAsmJvmStackMapTable_HEADERS) || defined(DOCUMENTATION)
9596#include <sageContainer.h>
9597#endif // SgAsmJvmStackMapTable_HEADERS
9598
9599#ifdef DOCUMENTATION
9605#endif // DOCUMENTATION
9606
9607#ifndef DOCUMENTATION
9608 AsmJvmStackMapTable.setDataPrototype(
9609 "SgAsmJvmStackMapFramePtrList", "entries", "",
9610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9611#endif // !DOCUMENTATION
9612
9613 DECLARE_OTHERS(AsmJvmStackMapTable);
9614#if defined(SgAsmJvmStackMapTable_OTHERS) || defined(DOCUMENTATION)
9615
9616 //----------------------- Boost serialization for SgAsmJvmStackMapTable -----------------------
9617#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9618private:
9619 friend class boost::serialization::access;
9620
9621 template<class S>
9622 void serialize(S &s, const unsigned /*version*/) {
9623 debugSerializationBegin("SgAsmJvmStackMapTable");
9624 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9625 s & BOOST_SERIALIZATION_NVP(p_entries);
9626 debugSerializationEnd("SgAsmJvmStackMapTable");
9627 }
9628#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9630 // Properties
9632public:
9633public:
9637 SgAsmJvmStackMapFramePtrList const& get_entries() const;
9638 SgAsmJvmStackMapFramePtrList& get_entries();
9639 void set_entries(SgAsmJvmStackMapFramePtrList const&);
9642 // Functions
9644public:
9649
9652
9654 virtual void unparse(std::ostream&) const override;
9655
9657 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9658public:
9661
9662public:
9665
9666protected:
9674#endif // SgAsmJvmStackMapTable_OTHERS
9675#ifdef DOCUMENTATION
9676};
9677#endif // DOCUMENTATION
9678
9679
9681// SgAsmJvmStackMapFrame -- MACHINE GENERATED; DO NOT MODIFY --
9683
9684DECLARE_LEAF_CLASS(AsmJvmStackMapFrame);
9685IS_SERIALIZABLE(AsmJvmStackMapFrame);
9686
9687#ifndef DOCUMENTATION
9688AsmJvmStackMapFrame.useSmallHeader(true);
9689#endif // !DOCUMENTATION
9690
9691DECLARE_HEADERS(AsmJvmStackMapFrame);
9692#if defined(SgAsmJvmStackMapFrame_HEADERS) || defined(DOCUMENTATION)
9693#include <sageContainer.h>
9694#endif // SgAsmJvmStackMapFrame_HEADERS
9695
9696#ifdef DOCUMENTATION
9701#endif // DOCUMENTATION
9702
9703#ifndef DOCUMENTATION
9704 AsmJvmStackMapFrame.setDataPrototype(
9705 "SgAsmJvmStackMapVerificationTypePtrList", "stack", "",
9706 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9707#endif // !DOCUMENTATION
9708
9709#ifndef DOCUMENTATION
9710 AsmJvmStackMapFrame.setDataPrototype(
9711 "SgAsmJvmStackMapVerificationTypePtrList", "locals", "",
9712 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9713#endif // !DOCUMENTATION
9714
9715#ifndef DOCUMENTATION
9716 AsmJvmStackMapFrame.setDataPrototype(
9717 "uint8_t", "frame_type", "= 0",
9718 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9719#endif // !DOCUMENTATION
9720
9721#ifndef DOCUMENTATION
9722 AsmJvmStackMapFrame.setDataPrototype(
9723 "uint16_t", "offset_delta", "= 0",
9724 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9725#endif // !DOCUMENTATION
9726
9727 DECLARE_OTHERS(AsmJvmStackMapFrame);
9728#if defined(SgAsmJvmStackMapFrame_OTHERS) || defined(DOCUMENTATION)
9729
9730 //----------------------- Boost serialization for SgAsmJvmStackMapFrame -----------------------
9731#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9732private:
9733 friend class boost::serialization::access;
9734
9735 template<class S>
9736 void serialize(S &s, const unsigned /*version*/) {
9737 debugSerializationBegin("SgAsmJvmStackMapFrame");
9738 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9739 s & BOOST_SERIALIZATION_NVP(p_stack);
9740 s & BOOST_SERIALIZATION_NVP(p_locals);
9741 s & BOOST_SERIALIZATION_NVP(p_frame_type);
9742 s & BOOST_SERIALIZATION_NVP(p_offset_delta);
9743 debugSerializationEnd("SgAsmJvmStackMapFrame");
9744 }
9745#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9746private:
9747public:
9748public:
9752 SgAsmJvmStackMapVerificationTypePtrList const& get_stack() const;
9753 SgAsmJvmStackMapVerificationTypePtrList& get_stack();
9754 void set_stack(SgAsmJvmStackMapVerificationTypePtrList const&);
9757public:
9761 SgAsmJvmStackMapVerificationTypePtrList const& get_locals() const;
9762 SgAsmJvmStackMapVerificationTypePtrList& get_locals();
9763 void set_locals(SgAsmJvmStackMapVerificationTypePtrList const&);
9766 // Local types (for documentation purposes only)
9768#ifdef DOCUMENTATION
9773 same_frame;
9775 same_locals_1_stack_item_frame_extended;
9776 chop_frame;
9779 full_frame;
9780 };
9781
9782 struct same_frame {
9783 uint8_t frame_type; /* 0-63 */
9784 };
9786 uint8_t frame_type; /* 64-127 */
9787 verification_type_info stack;
9788 };
9790 uint8_t frame_type; /* 247 */
9791 uint16_t offset_delta;
9792 verification_type_info stack;
9793 };
9794 struct chop_frame {
9795 uint8_t frame_type; /* 248-250 */
9796 uint16_t offset_delta;
9797 };
9799 uint8_t frame_type; /* 251 */
9800 uint16_t offset_delta;
9801 };
9803 uint8_t frame_type; /* 252-254 */
9804 uint16_t offset_delta;
9805 verification_type_info stack;
9806 };
9807 struct full_frame {
9808 uint8_t frame_type; /* 252-254 */
9809 uint16_t offset_delta;
9810 uint16_t number_of_locals;
9811 verification_type_info stack[number_of_locals];
9812 uint16_t number_of_stack_items;
9813 verification_type_info stack[number_of_stack_items];
9814 };
9815#endif
9816
9818 // Properties
9820private:
9821public:
9827 uint8_t const& get_frame_type() const;
9828 void set_frame_type(uint8_t const&);
9831public:
9837 uint16_t const& get_offset_delta() const;
9838 void set_offset_delta(uint16_t const&);
9841 // Functions
9843public:
9848
9851
9853 virtual void unparse(std::ostream&) const override;
9854
9856 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9857public:
9860
9861public:
9864
9865protected:
9873#endif // SgAsmJvmStackMapFrame_OTHERS
9874#ifdef DOCUMENTATION
9875};
9876#endif // DOCUMENTATION
9877
9878
9880// SgAsmJvmSourceFile -- MACHINE GENERATED; DO NOT MODIFY --
9882
9883DECLARE_LEAF_CLASS(AsmJvmSourceFile);
9884IS_SERIALIZABLE(AsmJvmSourceFile);
9885
9886#ifndef DOCUMENTATION
9887AsmJvmSourceFile.useSmallHeader(true);
9888#endif // !DOCUMENTATION
9889
9890#ifdef DOCUMENTATION
9895#endif // DOCUMENTATION
9896
9897#ifndef DOCUMENTATION
9898 AsmJvmSourceFile.setDataPrototype(
9899 "uint16_t", "sourcefile_index", "= 0",
9900 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9901#endif // !DOCUMENTATION
9902
9903 DECLARE_OTHERS(AsmJvmSourceFile);
9904#if defined(SgAsmJvmSourceFile_OTHERS) || defined(DOCUMENTATION)
9905
9906 //----------------------- Boost serialization for SgAsmJvmSourceFile -----------------------
9907#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9908private:
9909 friend class boost::serialization::access;
9910
9911 template<class S>
9912 void serialize(S &s, const unsigned /*version*/) {
9913 debugSerializationBegin("SgAsmJvmSourceFile");
9914 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9915 s & BOOST_SERIALIZATION_NVP(p_sourcefile_index);
9916 debugSerializationEnd("SgAsmJvmSourceFile");
9917 }
9918#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9919public:
9920public:
9926 uint16_t const& get_sourcefile_index() const;
9927 void set_sourcefile_index(uint16_t const&);
9929public:
9934
9937
9939 virtual void unparse(std::ostream&) const override;
9940
9942 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9943public:
9946
9947public:
9950
9951protected:
9959#endif // SgAsmJvmSourceFile_OTHERS
9960#ifdef DOCUMENTATION
9961};
9962#endif // DOCUMENTATION
9963
9964
9966// SgAsmJvmSignature -- MACHINE GENERATED; DO NOT MODIFY --
9968
9969DECLARE_LEAF_CLASS(AsmJvmSignature);
9970IS_SERIALIZABLE(AsmJvmSignature);
9971
9972#ifndef DOCUMENTATION
9973AsmJvmSignature.useSmallHeader(true);
9974#endif // !DOCUMENTATION
9975
9976#ifdef DOCUMENTATION
9982#endif // DOCUMENTATION
9983
9984#ifndef DOCUMENTATION
9985 AsmJvmSignature.setDataPrototype(
9986 "uint16_t", "signature_index", "= 0",
9987 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9988#endif // !DOCUMENTATION
9989
9990 DECLARE_OTHERS(AsmJvmSignature);
9991#if defined(SgAsmJvmSignature_OTHERS) || defined(DOCUMENTATION)
9992
9993 //----------------------- Boost serialization for SgAsmJvmSignature -----------------------
9994#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9995private:
9996 friend class boost::serialization::access;
9997
9998 template<class S>
9999 void serialize(S &s, const unsigned /*version*/) {
10000 debugSerializationBegin("SgAsmJvmSignature");
10001 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10002 s & BOOST_SERIALIZATION_NVP(p_signature_index);
10003 debugSerializationEnd("SgAsmJvmSignature");
10004 }
10005#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10006public:
10007public:
10013 uint16_t const& get_signature_index() const;
10014 void set_signature_index(uint16_t const&);
10016public:
10021
10024
10026 virtual void unparse(std::ostream&) const override;
10027
10029 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10030public:
10033
10034public:
10037
10038protected:
10046#endif // SgAsmJvmSignature_OTHERS
10047#ifdef DOCUMENTATION
10048};
10049#endif // DOCUMENTATION
10050
10051
10053// SgAsmJvmNestMembers -- MACHINE GENERATED; DO NOT MODIFY --
10055
10056DECLARE_LEAF_CLASS(AsmJvmNestMembers);
10057IS_SERIALIZABLE(AsmJvmNestMembers);
10058
10059#ifndef DOCUMENTATION
10060AsmJvmNestMembers.useSmallHeader(true);
10061#endif // !DOCUMENTATION
10062
10063DECLARE_HEADERS(AsmJvmNestMembers);
10064#if defined(SgAsmJvmNestMembers_HEADERS) || defined(DOCUMENTATION)
10065#include <sageContainer.h>
10066#endif // SgAsmJvmNestMembers_HEADERS
10067
10068#ifdef DOCUMENTATION
10075#endif // DOCUMENTATION
10076
10077#ifndef DOCUMENTATION
10078 AsmJvmNestMembers.setDataPrototype(
10079 "SgUnsigned16List", "classes", "",
10080 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10081#endif // !DOCUMENTATION
10082
10083 DECLARE_OTHERS(AsmJvmNestMembers);
10084#if defined(SgAsmJvmNestMembers_OTHERS) || defined(DOCUMENTATION)
10085
10086 //----------------------- Boost serialization for SgAsmJvmNestMembers -----------------------
10087#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10088private:
10089 friend class boost::serialization::access;
10090
10091 template<class S>
10092 void serialize(S &s, const unsigned /*version*/) {
10093 debugSerializationBegin("SgAsmJvmNestMembers");
10094 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10095 s & BOOST_SERIALIZATION_NVP(p_classes);
10096 debugSerializationEnd("SgAsmJvmNestMembers");
10097 }
10098#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10099public:
10100public:
10109 SgUnsigned16List const& get_classes() const;
10110 void set_classes(SgUnsigned16List const&);
10112public:
10117
10120
10122 virtual void unparse(std::ostream&) const override;
10123
10125 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10126public:
10129
10130public:
10133
10134protected:
10142#endif // SgAsmJvmNestMembers_OTHERS
10143#ifdef DOCUMENTATION
10144};
10145#endif // DOCUMENTATION
10146
10147
10149// SgAsmJvmNestHost -- MACHINE GENERATED; DO NOT MODIFY --
10151
10152DECLARE_LEAF_CLASS(AsmJvmNestHost);
10153IS_SERIALIZABLE(AsmJvmNestHost);
10154
10155#ifndef DOCUMENTATION
10156AsmJvmNestHost.useSmallHeader(true);
10157#endif // !DOCUMENTATION
10158
10159#ifdef DOCUMENTATION
10165#endif // DOCUMENTATION
10166
10167#ifndef DOCUMENTATION
10168 AsmJvmNestHost.setDataPrototype(
10169 "uint16_t", "host_class_index", "= 0",
10170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10171#endif // !DOCUMENTATION
10172
10173 DECLARE_OTHERS(AsmJvmNestHost);
10174#if defined(SgAsmJvmNestHost_OTHERS) || defined(DOCUMENTATION)
10175
10176 //----------------------- Boost serialization for SgAsmJvmNestHost -----------------------
10177#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10178private:
10179 friend class boost::serialization::access;
10180
10181 template<class S>
10182 void serialize(S &s, const unsigned /*version*/) {
10183 debugSerializationBegin("SgAsmJvmNestHost");
10184 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10185 s & BOOST_SERIALIZATION_NVP(p_host_class_index);
10186 debugSerializationEnd("SgAsmJvmNestHost");
10187 }
10188#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10189public:
10190public:
10199 uint16_t const& get_host_class_index() const;
10200 void set_host_class_index(uint16_t const&);
10202public:
10207
10210
10212 virtual void unparse(std::ostream&) const override;
10213
10215 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10216public:
10219
10220public:
10223
10224protected:
10232#endif // SgAsmJvmNestHost_OTHERS
10233#ifdef DOCUMENTATION
10234};
10235#endif // DOCUMENTATION
10236
10237
10239// SgAsmJvmModuleMainClass -- MACHINE GENERATED; DO NOT MODIFY --
10241
10242DECLARE_LEAF_CLASS(AsmJvmModuleMainClass);
10243IS_SERIALIZABLE(AsmJvmModuleMainClass);
10244
10245#ifndef DOCUMENTATION
10246AsmJvmModuleMainClass.useSmallHeader(true);
10247#endif // !DOCUMENTATION
10248
10249#ifdef DOCUMENTATION
10255#endif // DOCUMENTATION
10256
10257#ifndef DOCUMENTATION
10258 AsmJvmModuleMainClass.setDataPrototype(
10259 "uint16_t", "main_class_index", "= 0",
10260 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10261#endif // !DOCUMENTATION
10262
10263 DECLARE_OTHERS(AsmJvmModuleMainClass);
10264#if defined(SgAsmJvmModuleMainClass_OTHERS) || defined(DOCUMENTATION)
10265
10266 //----------------------- Boost serialization for SgAsmJvmModuleMainClass -----------------------
10267#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10268private:
10269 friend class boost::serialization::access;
10270
10271 template<class S>
10272 void serialize(S &s, const unsigned /*version*/) {
10273 debugSerializationBegin("SgAsmJvmModuleMainClass");
10274 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10275 s & BOOST_SERIALIZATION_NVP(p_main_class_index);
10276 debugSerializationEnd("SgAsmJvmModuleMainClass");
10277 }
10278#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10279public:
10280public:
10286 uint16_t const& get_main_class_index() const;
10287 void set_main_class_index(uint16_t const&);
10289public:
10294
10297
10299 virtual void unparse(std::ostream&) const override;
10300
10302 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10303public:
10306
10307public:
10310
10311protected:
10319#endif // SgAsmJvmModuleMainClass_OTHERS
10320#ifdef DOCUMENTATION
10321};
10322#endif // DOCUMENTATION
10323
10324
10326// SgAsmJvmMethodTable -- MACHINE GENERATED; DO NOT MODIFY --
10328
10329DECLARE_LEAF_CLASS(AsmJvmMethodTable);
10330IS_SERIALIZABLE(AsmJvmMethodTable);
10331
10332#ifndef DOCUMENTATION
10333AsmJvmMethodTable.useSmallHeader(true);
10334#endif // !DOCUMENTATION
10335
10336#ifdef DOCUMENTATION
10343#endif // DOCUMENTATION
10344
10345#ifndef DOCUMENTATION
10346 AsmJvmMethodTable.setDataPrototype(
10347 "SgAsmJvmMethodPtrList", "methods", "",
10348 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10349#endif // !DOCUMENTATION
10350
10351 DECLARE_OTHERS(AsmJvmMethodTable);
10352#if defined(SgAsmJvmMethodTable_OTHERS) || defined(DOCUMENTATION)
10353
10354 //----------------------- Boost serialization for SgAsmJvmMethodTable -----------------------
10355#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10356private:
10357 friend class boost::serialization::access;
10358
10359 template<class S>
10360 void serialize(S &s, const unsigned /*version*/) {
10361 debugSerializationBegin("SgAsmJvmMethodTable");
10362 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
10363 s & BOOST_SERIALIZATION_NVP(p_methods);
10364 debugSerializationEnd("SgAsmJvmMethodTable");
10365 }
10366#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10367public:
10368public:
10372 SgAsmJvmMethodPtrList const& get_methods() const;
10373 SgAsmJvmMethodPtrList& get_methods();
10374 void set_methods(SgAsmJvmMethodPtrList const&);
10376public:
10381
10386 virtual SgAsmJvmMethodTable* parse() override;
10387
10389 virtual void unparse(std::ostream&) const override;
10390
10392 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10393public:
10396
10397public:
10400
10401protected:
10409#endif // SgAsmJvmMethodTable_OTHERS
10410#ifdef DOCUMENTATION
10411};
10412#endif // DOCUMENTATION
10413
10414
10416// SgAsmJvmMethodParametersEntry -- MACHINE GENERATED; DO NOT MODIFY --
10418
10419DECLARE_LEAF_CLASS(AsmJvmMethodParametersEntry);
10420IS_SERIALIZABLE(AsmJvmMethodParametersEntry);
10421
10422#ifndef DOCUMENTATION
10423AsmJvmMethodParametersEntry.useSmallHeader(true);
10424#endif // !DOCUMENTATION
10425
10426#ifdef DOCUMENTATION
10432#endif // DOCUMENTATION
10433
10434#ifndef DOCUMENTATION
10435 AsmJvmMethodParametersEntry.setDataPrototype(
10436 "uint16_t", "name_index", "= 0",
10437 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10438#endif // !DOCUMENTATION
10439
10440#ifndef DOCUMENTATION
10441 AsmJvmMethodParametersEntry.setDataPrototype(
10442 "uint16_t", "access_flags", "= 0",
10443 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10444#endif // !DOCUMENTATION
10445
10446 DECLARE_OTHERS(AsmJvmMethodParametersEntry);
10447#if defined(SgAsmJvmMethodParametersEntry_OTHERS) || defined(DOCUMENTATION)
10448
10449 //----------------------- Boost serialization for SgAsmJvmMethodParametersEntry -----------------------
10450#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10451private:
10452 friend class boost::serialization::access;
10453
10454 template<class S>
10455 void serialize(S &s, const unsigned /*version*/) {
10456 debugSerializationBegin("SgAsmJvmMethodParametersEntry");
10457 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10458 s & BOOST_SERIALIZATION_NVP(p_name_index);
10459 s & BOOST_SERIALIZATION_NVP(p_access_flags);
10460 debugSerializationEnd("SgAsmJvmMethodParametersEntry");
10461 }
10462#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10463public:
10464public:
10471 uint16_t const& get_name_index() const;
10472 void set_name_index(uint16_t const&);
10475public:
10481 uint16_t const& get_access_flags() const;
10482 void set_access_flags(uint16_t const&);
10484 public:
10489
10492
10494 virtual void unparse(std::ostream&) const override;
10495
10497 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10498public:
10501
10502public:
10505
10506protected:
10514#endif // SgAsmJvmMethodParametersEntry_OTHERS
10515#ifdef DOCUMENTATION
10516};
10517#endif // DOCUMENTATION
10518
10519
10521// SgAsmJvmMethodParameters -- MACHINE GENERATED; DO NOT MODIFY --
10523
10524DECLARE_LEAF_CLASS(AsmJvmMethodParameters);
10525IS_SERIALIZABLE(AsmJvmMethodParameters);
10526
10527#ifndef DOCUMENTATION
10528AsmJvmMethodParameters.useSmallHeader(true);
10529#endif // !DOCUMENTATION
10530
10531DECLARE_HEADERS(AsmJvmMethodParameters);
10532#if defined(SgAsmJvmMethodParameters_HEADERS) || defined(DOCUMENTATION)
10533#include <sageContainer.h>
10534#endif // SgAsmJvmMethodParameters_HEADERS
10535
10536#ifdef DOCUMENTATION
10543#endif // DOCUMENTATION
10544
10545#ifndef DOCUMENTATION
10546 AsmJvmMethodParameters.setDataPrototype(
10547 "SgAsmJvmMethodParametersEntryPtrList", "parameters", "",
10548 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10549#endif // !DOCUMENTATION
10550
10551 DECLARE_OTHERS(AsmJvmMethodParameters);
10552#if defined(SgAsmJvmMethodParameters_OTHERS) || defined(DOCUMENTATION)
10553
10554 //----------------------- Boost serialization for SgAsmJvmMethodParameters -----------------------
10555#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10556private:
10557 friend class boost::serialization::access;
10558
10559 template<class S>
10560 void serialize(S &s, const unsigned /*version*/) {
10561 debugSerializationBegin("SgAsmJvmMethodParameters");
10562 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10563 s & BOOST_SERIALIZATION_NVP(p_parameters);
10564 debugSerializationEnd("SgAsmJvmMethodParameters");
10565 }
10566#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10567public:
10568public:
10574 SgAsmJvmMethodParametersEntryPtrList const& get_parameters() const;
10575 SgAsmJvmMethodParametersEntryPtrList& get_parameters();
10576 void set_parameters(SgAsmJvmMethodParametersEntryPtrList const&);
10578public:
10583
10586
10588 virtual void unparse(std::ostream&) const override;
10589
10591 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10592public:
10595
10596public:
10599
10600protected:
10608#endif // SgAsmJvmMethodParameters_OTHERS
10609#ifdef DOCUMENTATION
10610};
10611#endif // DOCUMENTATION
10612
10613
10615// SgAsmJvmMethod -- MACHINE GENERATED; DO NOT MODIFY --
10617
10618DECLARE_LEAF_CLASS(AsmJvmMethod);
10619IS_SERIALIZABLE(AsmJvmMethod);
10620
10621#ifndef DOCUMENTATION
10622AsmJvmMethod.useSmallHeader(true);
10623#endif // !DOCUMENTATION
10624
10625DECLARE_HEADERS(AsmJvmMethod);
10626#if defined(SgAsmJvmMethod_HEADERS) || defined(DOCUMENTATION)
10627#ifdef ROSE_SgAsmJvmMethod_IMPL
10628#include <SgAsmInstructionList.h>
10629#include <SgAsmJvmAttributeTable.h>
10630#endif
10631#endif // SgAsmJvmMethod_HEADERS
10632
10633#ifdef DOCUMENTATION
10639#endif // DOCUMENTATION
10640
10641#ifndef DOCUMENTATION
10642 AsmJvmMethod.setDataPrototype(
10643 "uint16_t", "access_flags", "= 0",
10644 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10645#endif // !DOCUMENTATION
10646
10647#ifndef DOCUMENTATION
10648 AsmJvmMethod.setDataPrototype(
10649 "uint16_t", "name_index", "= 0",
10650 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10651#endif // !DOCUMENTATION
10652
10653#ifndef DOCUMENTATION
10654 AsmJvmMethod.setDataPrototype(
10655 "uint16_t", "descriptor_index", "= 0",
10656 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10657#endif // !DOCUMENTATION
10658
10659#ifndef DOCUMENTATION
10660 AsmJvmMethod.setDataPrototype(
10661 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
10662 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10663#endif // !DOCUMENTATION
10664
10665#ifndef DOCUMENTATION
10666 AsmJvmMethod.setDataPrototype(
10667 "SgAsmInstructionList*", "instruction_list", "= createAndParent<SgAsmInstructionList>(this)",
10668 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10669#endif // !DOCUMENTATION
10670
10671 DECLARE_OTHERS(AsmJvmMethod);
10672#if defined(SgAsmJvmMethod_OTHERS) || defined(DOCUMENTATION)
10673
10674 //----------------------- Boost serialization for SgAsmJvmMethod -----------------------
10675#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10676private:
10677 friend class boost::serialization::access;
10678
10679 template<class S>
10680 void serialize(S &s, const unsigned /*version*/) {
10681 debugSerializationBegin("SgAsmJvmMethod");
10682 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10683 s & BOOST_SERIALIZATION_NVP(p_access_flags);
10684 s & BOOST_SERIALIZATION_NVP(p_name_index);
10685 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
10686 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
10687 s & BOOST_SERIALIZATION_NVP(p_instruction_list);
10688 debugSerializationEnd("SgAsmJvmMethod");
10689 }
10690#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10691public:
10692public:
10699 uint16_t const& get_access_flags() const;
10700 void set_access_flags(uint16_t const&);
10703public:
10709 uint16_t const& get_name_index() const;
10710 void set_name_index(uint16_t const&);
10713public:
10719 uint16_t const& get_descriptor_index() const;
10720 void set_descriptor_index(uint16_t const&);
10723public:
10731public:
10740public:
10745
10748
10750 virtual void unparse(std::ostream&) const override;
10751
10753 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10754public:
10757
10758public:
10761
10762protected:
10770#endif // SgAsmJvmMethod_OTHERS
10771#ifdef DOCUMENTATION
10772};
10773#endif // DOCUMENTATION
10774
10775
10777// SgAsmJvmLocalVariableTypeTable -- MACHINE GENERATED; DO NOT MODIFY --
10779
10780DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeTable);
10781IS_SERIALIZABLE(AsmJvmLocalVariableTypeTable);
10782
10783#ifndef DOCUMENTATION
10784AsmJvmLocalVariableTypeTable.useSmallHeader(true);
10785#endif // !DOCUMENTATION
10786
10787DECLARE_HEADERS(AsmJvmLocalVariableTypeTable);
10788#if defined(SgAsmJvmLocalVariableTypeTable_HEADERS) || defined(DOCUMENTATION)
10789#include <sageContainer.h>
10790#endif // SgAsmJvmLocalVariableTypeTable_HEADERS
10791
10792#ifdef DOCUMENTATION
10799#endif // DOCUMENTATION
10800
10801#ifndef DOCUMENTATION
10802 AsmJvmLocalVariableTypeTable.setDataPrototype(
10803 "SgAsmJvmLocalVariableTypeEntryPtrList", "local_variable_type_table", "",
10804 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10805#endif // !DOCUMENTATION
10806
10807 DECLARE_OTHERS(AsmJvmLocalVariableTypeTable);
10808#if defined(SgAsmJvmLocalVariableTypeTable_OTHERS) || defined(DOCUMENTATION)
10809
10810 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeTable -----------------------
10811#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10812private:
10813 friend class boost::serialization::access;
10814
10815 template<class S>
10816 void serialize(S &s, const unsigned /*version*/) {
10817 debugSerializationBegin("SgAsmJvmLocalVariableTypeTable");
10818 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10819 s & BOOST_SERIALIZATION_NVP(p_local_variable_type_table);
10820 debugSerializationEnd("SgAsmJvmLocalVariableTypeTable");
10821 }
10822#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10823public:
10824public:
10830 SgAsmJvmLocalVariableTypeEntryPtrList const& get_local_variable_type_table() const;
10831 SgAsmJvmLocalVariableTypeEntryPtrList& get_local_variable_type_table();
10832 void set_local_variable_type_table(SgAsmJvmLocalVariableTypeEntryPtrList const&);
10834public:
10839
10842
10844 virtual void unparse(std::ostream&) const override;
10845
10847 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10848public:
10851
10852public:
10855
10856protected:
10864#endif // SgAsmJvmLocalVariableTypeTable_OTHERS
10865#ifdef DOCUMENTATION
10866};
10867#endif // DOCUMENTATION
10868
10869
10871// SgAsmJvmLocalVariableTypeEntry -- MACHINE GENERATED; DO NOT MODIFY --
10873
10874DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeEntry);
10875IS_SERIALIZABLE(AsmJvmLocalVariableTypeEntry);
10876
10877#ifndef DOCUMENTATION
10878AsmJvmLocalVariableTypeEntry.useSmallHeader(true);
10879#endif // !DOCUMENTATION
10880
10881#ifdef DOCUMENTATION
10886#endif // DOCUMENTATION
10887
10888#ifndef DOCUMENTATION
10889 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10890 "uint16_t", "start_pc", "= 0",
10891 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10892#endif // !DOCUMENTATION
10893
10894#ifndef DOCUMENTATION
10895 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10896 "uint16_t", "length", "= 0",
10897 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10898#endif // !DOCUMENTATION
10899
10900#ifndef DOCUMENTATION
10901 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10902 "uint16_t", "name_index", "= 0",
10903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10904#endif // !DOCUMENTATION
10905
10906#ifndef DOCUMENTATION
10907 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10908 "uint16_t", "signature_index", "= 0",
10909 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10910#endif // !DOCUMENTATION
10911
10912#ifndef DOCUMENTATION
10913 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10914 "uint16_t", "index", "= 0",
10915 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10916#endif // !DOCUMENTATION
10917
10918 DECLARE_OTHERS(AsmJvmLocalVariableTypeEntry);
10919#if defined(SgAsmJvmLocalVariableTypeEntry_OTHERS) || defined(DOCUMENTATION)
10920
10921 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeEntry -----------------------
10922#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10923private:
10924 friend class boost::serialization::access;
10925
10926 template<class S>
10927 void serialize(S &s, const unsigned /*version*/) {
10928 debugSerializationBegin("SgAsmJvmLocalVariableTypeEntry");
10929 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10930 s & BOOST_SERIALIZATION_NVP(p_start_pc);
10931 s & BOOST_SERIALIZATION_NVP(p_length);
10932 s & BOOST_SERIALIZATION_NVP(p_name_index);
10933 s & BOOST_SERIALIZATION_NVP(p_signature_index);
10934 s & BOOST_SERIALIZATION_NVP(p_index);
10935 debugSerializationEnd("SgAsmJvmLocalVariableTypeEntry");
10936 }
10937#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10938public:
10939public:
10946 uint16_t const& get_start_pc() const;
10947 void set_start_pc(uint16_t const&);
10950public:
10958 uint16_t const& get_length() const;
10959 void set_length(uint16_t const&);
10962public:
10970 uint16_t const& get_name_index() const;
10971 void set_name_index(uint16_t const&);
10974public:
10982 uint16_t const& get_signature_index() const;
10983 void set_signature_index(uint16_t const&);
10986public:
10993 uint16_t const& get_index() const;
10994 void set_index(uint16_t const&);
10996 public:
11001
11004
11006 virtual void unparse(std::ostream&) const override;
11007
11009 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11010public:
11013
11014public:
11017
11018protected:
11026#endif // SgAsmJvmLocalVariableTypeEntry_OTHERS
11027#ifdef DOCUMENTATION
11028};
11029#endif // DOCUMENTATION
11030
11031
11033// SgAsmJvmLocalVariableTable -- MACHINE GENERATED; DO NOT MODIFY --
11035
11036DECLARE_LEAF_CLASS(AsmJvmLocalVariableTable);
11037IS_SERIALIZABLE(AsmJvmLocalVariableTable);
11038
11039#ifndef DOCUMENTATION
11040AsmJvmLocalVariableTable.useSmallHeader(true);
11041#endif // !DOCUMENTATION
11042
11043DECLARE_HEADERS(AsmJvmLocalVariableTable);
11044#if defined(SgAsmJvmLocalVariableTable_HEADERS) || defined(DOCUMENTATION)
11045#include <sageContainer.h>
11046#endif // SgAsmJvmLocalVariableTable_HEADERS
11047
11048#ifdef DOCUMENTATION
11055#endif // DOCUMENTATION
11056
11057#ifndef DOCUMENTATION
11058 AsmJvmLocalVariableTable.setDataPrototype(
11059 "SgAsmJvmLocalVariableEntryPtrList", "local_variable_table", "",
11060 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11061#endif // !DOCUMENTATION
11062
11063 DECLARE_OTHERS(AsmJvmLocalVariableTable);
11064#if defined(SgAsmJvmLocalVariableTable_OTHERS) || defined(DOCUMENTATION)
11065
11066 //----------------------- Boost serialization for SgAsmJvmLocalVariableTable -----------------------
11067#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11068private:
11069 friend class boost::serialization::access;
11070
11071 template<class S>
11072 void serialize(S &s, const unsigned /*version*/) {
11073 debugSerializationBegin("SgAsmJvmLocalVariableTable");
11074 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11075 s & BOOST_SERIALIZATION_NVP(p_local_variable_table);
11076 debugSerializationEnd("SgAsmJvmLocalVariableTable");
11077 }
11078#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11079public:
11080public:
11086 SgAsmJvmLocalVariableEntryPtrList const& get_local_variable_table() const;
11087 SgAsmJvmLocalVariableEntryPtrList& get_local_variable_table();
11088 void set_local_variable_table(SgAsmJvmLocalVariableEntryPtrList const&);
11090public:
11095
11098
11100 virtual void unparse(std::ostream&) const override;
11101
11103 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11104public:
11107
11108public:
11111
11112protected:
11120#endif // SgAsmJvmLocalVariableTable_OTHERS
11121#ifdef DOCUMENTATION
11122};
11123#endif // DOCUMENTATION
11124
11125
11127// SgAsmJvmLocalVariableEntry -- MACHINE GENERATED; DO NOT MODIFY --
11129
11130DECLARE_LEAF_CLASS(AsmJvmLocalVariableEntry);
11131IS_SERIALIZABLE(AsmJvmLocalVariableEntry);
11132
11133#ifndef DOCUMENTATION
11134AsmJvmLocalVariableEntry.useSmallHeader(true);
11135#endif // !DOCUMENTATION
11136
11137#ifdef DOCUMENTATION
11142#endif // DOCUMENTATION
11143
11144#ifndef DOCUMENTATION
11145 AsmJvmLocalVariableEntry.setDataPrototype(
11146 "uint16_t", "start_pc", "= 0",
11147 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11148#endif // !DOCUMENTATION
11149
11150#ifndef DOCUMENTATION
11151 AsmJvmLocalVariableEntry.setDataPrototype(
11152 "uint16_t", "length", "= 0",
11153 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11154#endif // !DOCUMENTATION
11155
11156#ifndef DOCUMENTATION
11157 AsmJvmLocalVariableEntry.setDataPrototype(
11158 "uint16_t", "name_index", "= 0",
11159 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11160#endif // !DOCUMENTATION
11161
11162#ifndef DOCUMENTATION
11163 AsmJvmLocalVariableEntry.setDataPrototype(
11164 "uint16_t", "descriptor_index", "= 0",
11165 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11166#endif // !DOCUMENTATION
11167
11168#ifndef DOCUMENTATION
11169 AsmJvmLocalVariableEntry.setDataPrototype(
11170 "uint16_t", "index", "= 0",
11171 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11172#endif // !DOCUMENTATION
11173
11174 DECLARE_OTHERS(AsmJvmLocalVariableEntry);
11175#if defined(SgAsmJvmLocalVariableEntry_OTHERS) || defined(DOCUMENTATION)
11176
11177 //----------------------- Boost serialization for SgAsmJvmLocalVariableEntry -----------------------
11178#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11179private:
11180 friend class boost::serialization::access;
11181
11182 template<class S>
11183 void serialize(S &s, const unsigned /*version*/) {
11184 debugSerializationBegin("SgAsmJvmLocalVariableEntry");
11185 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11186 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11187 s & BOOST_SERIALIZATION_NVP(p_length);
11188 s & BOOST_SERIALIZATION_NVP(p_name_index);
11189 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
11190 s & BOOST_SERIALIZATION_NVP(p_index);
11191 debugSerializationEnd("SgAsmJvmLocalVariableEntry");
11192 }
11193#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11194public:
11195public:
11202 uint16_t const& get_start_pc() const;
11203 void set_start_pc(uint16_t const&);
11206public:
11214 uint16_t const& get_length() const;
11215 void set_length(uint16_t const&);
11218public:
11226 uint16_t const& get_name_index() const;
11227 void set_name_index(uint16_t const&);
11230public:
11238 uint16_t const& get_descriptor_index() const;
11239 void set_descriptor_index(uint16_t const&);
11242public:
11249 uint16_t const& get_index() const;
11250 void set_index(uint16_t const&);
11252 public:
11257
11260
11262 virtual void unparse(std::ostream&) const override;
11263
11265 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11266public:
11269
11270public:
11273
11274protected:
11282#endif // SgAsmJvmLocalVariableEntry_OTHERS
11283#ifdef DOCUMENTATION
11284};
11285#endif // DOCUMENTATION
11286
11287
11289// SgAsmJvmLineNumberTable -- MACHINE GENERATED; DO NOT MODIFY --
11291
11292DECLARE_LEAF_CLASS(AsmJvmLineNumberTable);
11293IS_SERIALIZABLE(AsmJvmLineNumberTable);
11294
11295#ifndef DOCUMENTATION
11296AsmJvmLineNumberTable.useSmallHeader(true);
11297#endif // !DOCUMENTATION
11298
11299DECLARE_HEADERS(AsmJvmLineNumberTable);
11300#if defined(SgAsmJvmLineNumberTable_HEADERS) || defined(DOCUMENTATION)
11301#include <sageContainer.h>
11302#endif // SgAsmJvmLineNumberTable_HEADERS
11303
11304#ifdef DOCUMENTATION
11311#endif // DOCUMENTATION
11312
11313#ifndef DOCUMENTATION
11314 AsmJvmLineNumberTable.setDataPrototype(
11315 "SgAsmJvmLineNumberEntryPtrList", "line_number_table", "",
11316 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11317#endif // !DOCUMENTATION
11318
11319 DECLARE_OTHERS(AsmJvmLineNumberTable);
11320#if defined(SgAsmJvmLineNumberTable_OTHERS) || defined(DOCUMENTATION)
11321
11322 //----------------------- Boost serialization for SgAsmJvmLineNumberTable -----------------------
11323#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11324private:
11325 friend class boost::serialization::access;
11326
11327 template<class S>
11328 void serialize(S &s, const unsigned /*version*/) {
11329 debugSerializationBegin("SgAsmJvmLineNumberTable");
11330 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11331 s & BOOST_SERIALIZATION_NVP(p_line_number_table);
11332 debugSerializationEnd("SgAsmJvmLineNumberTable");
11333 }
11334#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11335public:
11336public:
11342 SgAsmJvmLineNumberEntryPtrList const& get_line_number_table() const;
11343 SgAsmJvmLineNumberEntryPtrList& get_line_number_table();
11344 void set_line_number_table(SgAsmJvmLineNumberEntryPtrList const&);
11346public:
11351
11354
11356 virtual void unparse(std::ostream&) const override;
11357
11359 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11360public:
11363
11364public:
11367
11368protected:
11376#endif // SgAsmJvmLineNumberTable_OTHERS
11377#ifdef DOCUMENTATION
11378};
11379#endif // DOCUMENTATION
11380
11381
11383// SgAsmJvmLineNumberEntry -- MACHINE GENERATED; DO NOT MODIFY --
11385
11386DECLARE_LEAF_CLASS(AsmJvmLineNumberEntry);
11387IS_SERIALIZABLE(AsmJvmLineNumberEntry);
11388
11389#ifndef DOCUMENTATION
11390AsmJvmLineNumberEntry.useSmallHeader(true);
11391#endif // !DOCUMENTATION
11392
11393#ifdef DOCUMENTATION
11398#endif // DOCUMENTATION
11399
11400#ifndef DOCUMENTATION
11401 AsmJvmLineNumberEntry.setDataPrototype(
11402 "uint16_t", "start_pc", "= 0",
11403 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11404#endif // !DOCUMENTATION
11405
11406#ifndef DOCUMENTATION
11407 AsmJvmLineNumberEntry.setDataPrototype(
11408 "uint16_t", "line_number", "= 0",
11409 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11410#endif // !DOCUMENTATION
11411
11412 DECLARE_OTHERS(AsmJvmLineNumberEntry);
11413#if defined(SgAsmJvmLineNumberEntry_OTHERS) || defined(DOCUMENTATION)
11414
11415 //----------------------- Boost serialization for SgAsmJvmLineNumberEntry -----------------------
11416#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11417private:
11418 friend class boost::serialization::access;
11419
11420 template<class S>
11421 void serialize(S &s, const unsigned /*version*/) {
11422 debugSerializationBegin("SgAsmJvmLineNumberEntry");
11423 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11424 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11425 s & BOOST_SERIALIZATION_NVP(p_line_number);
11426 debugSerializationEnd("SgAsmJvmLineNumberEntry");
11427 }
11428#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11429public:
11430public:
11436 uint16_t const& get_start_pc() const;
11437 void set_start_pc(uint16_t const&);
11440public:
11446 uint16_t const& get_line_number() const;
11447 void set_line_number(uint16_t const&);
11449 public:
11454
11457
11459 virtual void unparse(std::ostream&) const override;
11460
11462 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11463public:
11466
11467public:
11470
11471protected:
11479#endif // SgAsmJvmLineNumberEntry_OTHERS
11480#ifdef DOCUMENTATION
11481};
11482#endif // DOCUMENTATION
11483
11484
11486// SgAsmJvmInstruction -- MACHINE GENERATED; DO NOT MODIFY --
11488
11489DECLARE_LEAF_CLASS(AsmJvmInstruction);
11490IS_SERIALIZABLE(AsmJvmInstruction);
11491
11492#ifndef DOCUMENTATION
11493AsmJvmInstruction.useSmallHeader(true);
11494#endif // !DOCUMENTATION
11495
11496DECLARE_HEADERS(AsmJvmInstruction);
11497#if defined(SgAsmJvmInstruction_HEADERS) || defined(DOCUMENTATION)
11498#include <Rose/BinaryAnalysis/InstructionEnumsJvm.h>
11499#endif // SgAsmJvmInstruction_HEADERS
11500
11501#ifdef DOCUMENTATION
11504#endif // DOCUMENTATION
11505
11506#ifndef DOCUMENTATION
11507 AsmJvmInstruction.setDataPrototype(
11508 "Rose::BinaryAnalysis::JvmInstructionKind", "kind", "= Rose::BinaryAnalysis::JvmInstructionKind::unknown",
11509 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11510#endif // !DOCUMENTATION
11511
11512 DECLARE_OTHERS(AsmJvmInstruction);
11513#if defined(SgAsmJvmInstruction_OTHERS) || defined(DOCUMENTATION)
11514
11515 //----------------------- Boost serialization for SgAsmJvmInstruction -----------------------
11516#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11517private:
11518 friend class boost::serialization::access;
11519
11520 template<class S>
11521 void serialize(S &s, const unsigned /*version*/) {
11522 debugSerializationBegin("SgAsmJvmInstruction");
11523 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
11524 s & BOOST_SERIALIZATION_NVP(p_kind);
11525 debugSerializationEnd("SgAsmJvmInstruction");
11526 }
11527#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11528public:
11529public:
11536 Rose::BinaryAnalysis::JvmInstructionKind const& get_kind() const;
11537 void set_kind(Rose::BinaryAnalysis::JvmInstructionKind const&);
11539public:
11540 // Overrides are documented in the base class
11541 virtual unsigned get_anyKind() const override;
11542public:
11545
11546public:
11549
11550public:
11553 uint8_t const& architectureId,
11554 Rose::BinaryAnalysis::JvmInstructionKind const& kind);
11555
11556protected:
11564#endif // SgAsmJvmInstruction_OTHERS
11565#ifdef DOCUMENTATION
11566};
11567#endif // DOCUMENTATION
11568
11569
11571// SgAsmJvmInnerClassesEntry -- MACHINE GENERATED; DO NOT MODIFY --
11573
11574DECLARE_LEAF_CLASS(AsmJvmInnerClassesEntry);
11575IS_SERIALIZABLE(AsmJvmInnerClassesEntry);
11576
11577#ifndef DOCUMENTATION
11578AsmJvmInnerClassesEntry.useSmallHeader(true);
11579#endif // !DOCUMENTATION
11580
11581#ifdef DOCUMENTATION
11587#endif // DOCUMENTATION
11588
11589#ifndef DOCUMENTATION
11590 AsmJvmInnerClassesEntry.setDataPrototype(
11591 "uint16_t", "inner_class_info_index", "= 0",
11592 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11593#endif // !DOCUMENTATION
11594
11595#ifndef DOCUMENTATION
11596 AsmJvmInnerClassesEntry.setDataPrototype(
11597 "uint16_t", "outer_class_info_index", "= 0",
11598 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11599#endif // !DOCUMENTATION
11600
11601#ifndef DOCUMENTATION
11602 AsmJvmInnerClassesEntry.setDataPrototype(
11603 "uint16_t", "inner_name_index", "= 0",
11604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11605#endif // !DOCUMENTATION
11606
11607#ifndef DOCUMENTATION
11608 AsmJvmInnerClassesEntry.setDataPrototype(
11609 "uint16_t", "inner_class_access_flags", "= 0",
11610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11611#endif // !DOCUMENTATION
11612
11613 DECLARE_OTHERS(AsmJvmInnerClassesEntry);
11614#if defined(SgAsmJvmInnerClassesEntry_OTHERS) || defined(DOCUMENTATION)
11615
11616 //----------------------- Boost serialization for SgAsmJvmInnerClassesEntry -----------------------
11617#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11618private:
11619 friend class boost::serialization::access;
11620
11621 template<class S>
11622 void serialize(S &s, const unsigned /*version*/) {
11623 debugSerializationBegin("SgAsmJvmInnerClassesEntry");
11624 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11625 s & BOOST_SERIALIZATION_NVP(p_inner_class_info_index);
11626 s & BOOST_SERIALIZATION_NVP(p_outer_class_info_index);
11627 s & BOOST_SERIALIZATION_NVP(p_inner_name_index);
11628 s & BOOST_SERIALIZATION_NVP(p_inner_class_access_flags);
11629 debugSerializationEnd("SgAsmJvmInnerClassesEntry");
11630 }
11631#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11632public:
11633public:
11640 uint16_t const& get_inner_class_info_index() const;
11641 void set_inner_class_info_index(uint16_t const&);
11644public:
11651 uint16_t const& get_outer_class_info_index() const;
11652 void set_outer_class_info_index(uint16_t const&);
11655public:
11662 uint16_t const& get_inner_name_index() const;
11663 void set_inner_name_index(uint16_t const&);
11666public:
11674 uint16_t const& get_inner_class_access_flags() const;
11675 void set_inner_class_access_flags(uint16_t const&);
11677public:
11682
11685
11687 virtual void unparse(std::ostream&) const override;
11688
11690 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11691public:
11694
11695public:
11698
11699protected:
11707#endif // SgAsmJvmInnerClassesEntry_OTHERS
11708#ifdef DOCUMENTATION
11709};
11710#endif // DOCUMENTATION
11711
11712
11714// SgAsmJvmInnerClasses -- MACHINE GENERATED; DO NOT MODIFY --
11716
11717DECLARE_LEAF_CLASS(AsmJvmInnerClasses);
11718IS_SERIALIZABLE(AsmJvmInnerClasses);
11719
11720#ifndef DOCUMENTATION
11721AsmJvmInnerClasses.useSmallHeader(true);
11722#endif // !DOCUMENTATION
11723
11724DECLARE_HEADERS(AsmJvmInnerClasses);
11725#if defined(SgAsmJvmInnerClasses_HEADERS) || defined(DOCUMENTATION)
11726#include <sageContainer.h>
11727#endif // SgAsmJvmInnerClasses_HEADERS
11728
11729#ifdef DOCUMENTATION
11736#endif // DOCUMENTATION
11737
11738#ifndef DOCUMENTATION
11739 AsmJvmInnerClasses.setDataPrototype(
11740 "SgAsmJvmInnerClassesEntryPtrList", "classes", "",
11741 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11742#endif // !DOCUMENTATION
11743
11744 DECLARE_OTHERS(AsmJvmInnerClasses);
11745#if defined(SgAsmJvmInnerClasses_OTHERS) || defined(DOCUMENTATION)
11746
11747 //----------------------- Boost serialization for SgAsmJvmInnerClasses -----------------------
11748#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11749private:
11750 friend class boost::serialization::access;
11751
11752 template<class S>
11753 void serialize(S &s, const unsigned /*version*/) {
11754 debugSerializationBegin("SgAsmJvmInnerClasses");
11755 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11756 s & BOOST_SERIALIZATION_NVP(p_classes);
11757 debugSerializationEnd("SgAsmJvmInnerClasses");
11758 }
11759#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11760public:
11761public:
11765 SgAsmJvmInnerClassesEntryPtrList const& get_classes() const;
11766 SgAsmJvmInnerClassesEntryPtrList& get_classes();
11767 void set_classes(SgAsmJvmInnerClassesEntryPtrList const&);
11769public:
11774
11780
11782 virtual void unparse(std::ostream&) const override;
11783
11785 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11786public:
11789
11790public:
11793
11794protected:
11802#endif // SgAsmJvmInnerClasses_OTHERS
11803#ifdef DOCUMENTATION
11804};
11805#endif // DOCUMENTATION
11806
11807
11809// SgAsmJvmFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
11811
11812DECLARE_LEAF_CLASS(AsmJvmFileHeader);
11813IS_SERIALIZABLE(AsmJvmFileHeader);
11814
11815#ifndef DOCUMENTATION
11816AsmJvmFileHeader.useSmallHeader(true);
11817#endif // !DOCUMENTATION
11818
11819#ifdef DOCUMENTATION
11827#endif // DOCUMENTATION
11828
11829#ifndef DOCUMENTATION
11830 AsmJvmFileHeader.setDataPrototype(
11831 "uint16_t", "minor_version", "= 0",
11832 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11833#endif // !DOCUMENTATION
11834
11835#ifndef DOCUMENTATION
11836 AsmJvmFileHeader.setDataPrototype(
11837 "uint16_t", "major_version", "= 0",
11838 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11839#endif // !DOCUMENTATION
11840
11841#ifndef DOCUMENTATION
11842 AsmJvmFileHeader.setDataPrototype(
11843 "uint16_t", "access_flags", "= 0",
11844 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11845#endif // !DOCUMENTATION
11846
11847#ifndef DOCUMENTATION
11848 AsmJvmFileHeader.setDataPrototype(
11849 "uint16_t", "this_class", "= 0",
11850 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11851#endif // !DOCUMENTATION
11852
11853#ifndef DOCUMENTATION
11854 AsmJvmFileHeader.setDataPrototype(
11855 "uint16_t", "super_class", "= 0",
11856 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11857#endif // !DOCUMENTATION
11858
11859#ifndef DOCUMENTATION
11860 AsmJvmFileHeader.setDataPrototype(
11861 "SgAsmJvmConstantPool*", "constant_pool", "= nullptr",
11862 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11863#endif // !DOCUMENTATION
11864
11865#ifndef DOCUMENTATION
11866 AsmJvmFileHeader.setDataPrototype(
11867 "std::list<uint16_t>", "interfaces", "",
11868 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11869#endif // !DOCUMENTATION
11870
11871#ifndef DOCUMENTATION
11872 AsmJvmFileHeader.setDataPrototype(
11873 "SgAsmJvmFieldTable*", "field_table", "= nullptr",
11874 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11875#endif // !DOCUMENTATION
11876
11877#ifndef DOCUMENTATION
11878 AsmJvmFileHeader.setDataPrototype(
11879 "SgAsmJvmMethodTable*", "method_table", "= nullptr",
11880 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11881#endif // !DOCUMENTATION
11882
11883#ifndef DOCUMENTATION
11884 AsmJvmFileHeader.setDataPrototype(
11885 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
11886 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11887#endif // !DOCUMENTATION
11888
11889 DECLARE_OTHERS(AsmJvmFileHeader);
11890#if defined(SgAsmJvmFileHeader_OTHERS) || defined(DOCUMENTATION)
11891
11892 //----------------------- Boost serialization for SgAsmJvmFileHeader -----------------------
11893#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11894private:
11895 friend class boost::serialization::access;
11896
11897 template<class S>
11898 void serialize(S &s, const unsigned /*version*/) {
11899 debugSerializationBegin("SgAsmJvmFileHeader");
11900 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
11901 s & BOOST_SERIALIZATION_NVP(p_minor_version);
11902 s & BOOST_SERIALIZATION_NVP(p_major_version);
11903 s & BOOST_SERIALIZATION_NVP(p_access_flags);
11904 s & BOOST_SERIALIZATION_NVP(p_this_class);
11905 s & BOOST_SERIALIZATION_NVP(p_super_class);
11906 s & BOOST_SERIALIZATION_NVP(p_constant_pool);
11907 s & BOOST_SERIALIZATION_NVP(p_interfaces);
11908 s & BOOST_SERIALIZATION_NVP(p_field_table);
11909 s & BOOST_SERIALIZATION_NVP(p_method_table);
11910 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
11911 debugSerializationEnd("SgAsmJvmFileHeader");
11912 }
11913#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11914public:
11915public:
11921 uint16_t const& get_minor_version() const;
11922 void set_minor_version(uint16_t const&);
11925public:
11931 uint16_t const& get_major_version() const;
11932 void set_major_version(uint16_t const&);
11935public:
11941 uint16_t const& get_access_flags() const;
11942 void set_access_flags(uint16_t const&);
11945public:
11951 uint16_t const& get_this_class() const;
11952 void set_this_class(uint16_t const&);
11955public:
11961 uint16_t const& get_super_class() const;
11962 void set_super_class(uint16_t const&);
11965public:
11978public:
11986 std::list<uint16_t> const& get_interfaces() const;
11987 std::list<uint16_t>& get_interfaces();
11988 void set_interfaces(std::list<uint16_t> const&);
11991public:
12004public:
12017public:
12029public:
12032
12038 virtual SgAsmJvmFileHeader* parse() override;
12039
12041 virtual void unparse(std::ostream&) const override;
12042
12045
12046protected:
12047 // Some extra clean-up actions on destruction
12048 virtual void destructorHelper() override;
12049public:
12052
12053public:
12056
12057protected:
12065#endif // SgAsmJvmFileHeader_OTHERS
12066#ifdef DOCUMENTATION
12067};
12068#endif // DOCUMENTATION
12069
12070
12072// SgAsmJvmFieldTable -- MACHINE GENERATED; DO NOT MODIFY --
12074
12075DECLARE_LEAF_CLASS(AsmJvmFieldTable);
12076IS_SERIALIZABLE(AsmJvmFieldTable);
12077
12078#ifndef DOCUMENTATION
12079AsmJvmFieldTable.useSmallHeader(true);
12080#endif // !DOCUMENTATION
12081
12082#ifdef DOCUMENTATION
12089#endif // DOCUMENTATION
12090
12091#ifndef DOCUMENTATION
12092 AsmJvmFieldTable.setDataPrototype(
12093 "SgAsmJvmFieldPtrList", "fields", "",
12094 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
12095#endif // !DOCUMENTATION
12096
12097 DECLARE_OTHERS(AsmJvmFieldTable);
12098#if defined(SgAsmJvmFieldTable_OTHERS) || defined(DOCUMENTATION)
12099
12100 //----------------------- Boost serialization for SgAsmJvmFieldTable -----------------------
12101#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12102private:
12103 friend class boost::serialization::access;
12104
12105 template<class S>
12106 void serialize(S &s, const unsigned /*version*/) {
12107 debugSerializationBegin("SgAsmJvmFieldTable");
12108 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
12109 s & BOOST_SERIALIZATION_NVP(p_fields);
12110 debugSerializationEnd("SgAsmJvmFieldTable");
12111 }
12112#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12113public:
12114public:
12118 SgAsmJvmFieldPtrList const& get_fields() const;
12119 SgAsmJvmFieldPtrList& get_fields();
12120 void set_fields(SgAsmJvmFieldPtrList const&);
12122public:
12127
12131 virtual SgAsmJvmFieldTable* parse() override;
12132
12134 virtual void unparse(std::ostream&) const override;
12135
12137 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12138public:
12141
12142public:
12145
12146protected:
12154#endif // SgAsmJvmFieldTable_OTHERS
12155#ifdef DOCUMENTATION
12156};
12157#endif // DOCUMENTATION
12158
12159
12161// SgAsmJvmField -- MACHINE GENERATED; DO NOT MODIFY --
12163
12164DECLARE_LEAF_CLASS(AsmJvmField);
12165IS_SERIALIZABLE(AsmJvmField);
12166
12167#ifndef DOCUMENTATION
12168AsmJvmField.useSmallHeader(true);
12169#endif // !DOCUMENTATION
12170
12171DECLARE_HEADERS(AsmJvmField);
12172#if defined(SgAsmJvmField_HEADERS) || defined(DOCUMENTATION)
12173#ifdef ROSE_SgAsmJvmField_IMPL
12174#include <SgAsmJvmAttributeTable.h>
12175#endif
12176#endif // SgAsmJvmField_HEADERS
12177
12178#ifdef DOCUMENTATION
12183#endif // DOCUMENTATION
12184
12185#ifndef DOCUMENTATION
12186 AsmJvmField.setDataPrototype(
12187 "uint16_t", "access_flags", "= 0",
12188 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12189#endif // !DOCUMENTATION
12190
12191#ifndef DOCUMENTATION
12192 AsmJvmField.setDataPrototype(
12193 "uint16_t", "name_index", "= 0",
12194 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12195#endif // !DOCUMENTATION
12196
12197#ifndef DOCUMENTATION
12198 AsmJvmField.setDataPrototype(
12199 "uint16_t", "descriptor_index", "= 0",
12200 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12201#endif // !DOCUMENTATION
12202
12203#ifndef DOCUMENTATION
12204 AsmJvmField.setDataPrototype(
12205 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
12206 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
12207#endif // !DOCUMENTATION
12208
12209 DECLARE_OTHERS(AsmJvmField);
12210#if defined(SgAsmJvmField_OTHERS) || defined(DOCUMENTATION)
12211
12212 //----------------------- Boost serialization for SgAsmJvmField -----------------------
12213#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12214private:
12215 friend class boost::serialization::access;
12216
12217 template<class S>
12218 void serialize(S &s, const unsigned /*version*/) {
12219 debugSerializationBegin("SgAsmJvmField");
12220 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
12221 s & BOOST_SERIALIZATION_NVP(p_access_flags);
12222 s & BOOST_SERIALIZATION_NVP(p_name_index);
12223 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
12224 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
12225 debugSerializationEnd("SgAsmJvmField");
12226 }
12227#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12228public:
12229public:
12236 uint16_t const& get_access_flags() const;
12237 void set_access_flags(uint16_t const&);
12240public:
12246 uint16_t const& get_name_index() const;
12247 void set_name_index(uint16_t const&);
12250public:
12256 uint16_t const& get_descriptor_index() const;
12257 void set_descriptor_index(uint16_t const&);
12260public:
12267 public:
12272
12275
12277 virtual void unparse(std::ostream&) const override;
12278
12280 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12281public:
12284
12285public:
12288
12289protected:
12297#endif // SgAsmJvmField_OTHERS
12298#ifdef DOCUMENTATION
12299};
12300#endif // DOCUMENTATION
12301
12302
12304// SgAsmJvmExceptions -- MACHINE GENERATED; DO NOT MODIFY --
12306
12307DECLARE_LEAF_CLASS(AsmJvmExceptions);
12308IS_SERIALIZABLE(AsmJvmExceptions);
12309
12310#ifndef DOCUMENTATION
12311AsmJvmExceptions.useSmallHeader(true);
12312#endif // !DOCUMENTATION
12313
12314DECLARE_HEADERS(AsmJvmExceptions);
12315#if defined(SgAsmJvmExceptions_HEADERS) || defined(DOCUMENTATION)
12316#include <sageContainer.h>
12317#endif // SgAsmJvmExceptions_HEADERS
12318
12319#ifdef DOCUMENTATION
12326#endif // DOCUMENTATION
12327
12328#ifndef DOCUMENTATION
12329 AsmJvmExceptions.setDataPrototype(
12330 "SgUnsigned16List", "exception_index_table", "",
12331 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12332#endif // !DOCUMENTATION
12333
12334 DECLARE_OTHERS(AsmJvmExceptions);
12335#if defined(SgAsmJvmExceptions_OTHERS) || defined(DOCUMENTATION)
12336
12337 //----------------------- Boost serialization for SgAsmJvmExceptions -----------------------
12338#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12339private:
12340 friend class boost::serialization::access;
12341
12342 template<class S>
12343 void serialize(S &s, const unsigned /*version*/) {
12344 debugSerializationBegin("SgAsmJvmExceptions");
12345 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12346 s & BOOST_SERIALIZATION_NVP(p_exception_index_table);
12347 debugSerializationEnd("SgAsmJvmExceptions");
12348 }
12349#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12350public:
12351public:
12359 SgUnsigned16List const& get_exception_index_table() const;
12360 void set_exception_index_table(SgUnsigned16List const&);
12362 public:
12367
12370
12372 virtual void unparse(std::ostream&) const override;
12373
12375 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12376public:
12379
12380public:
12383
12384protected:
12392#endif // SgAsmJvmExceptions_OTHERS
12393#ifdef DOCUMENTATION
12394};
12395#endif // DOCUMENTATION
12396
12397
12399// SgAsmJvmExceptionTable -- MACHINE GENERATED; DO NOT MODIFY --
12401
12402DECLARE_LEAF_CLASS(AsmJvmExceptionTable);
12403IS_SERIALIZABLE(AsmJvmExceptionTable);
12404
12405#ifndef DOCUMENTATION
12406AsmJvmExceptionTable.useSmallHeader(true);
12407#endif // !DOCUMENTATION
12408
12409DECLARE_HEADERS(AsmJvmExceptionTable);
12410#if defined(SgAsmJvmExceptionTable_HEADERS) || defined(DOCUMENTATION)
12411#include <sageContainer.h>
12412#endif // SgAsmJvmExceptionTable_HEADERS
12413
12414#ifdef DOCUMENTATION
12420#endif // DOCUMENTATION
12421
12422#ifndef DOCUMENTATION
12423 AsmJvmExceptionTable.setDataPrototype(
12424 "SgAsmJvmExceptionHandlerPtrList", "handlers", "",
12425 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12426#endif // !DOCUMENTATION
12427
12428 DECLARE_OTHERS(AsmJvmExceptionTable);
12429#if defined(SgAsmJvmExceptionTable_OTHERS) || defined(DOCUMENTATION)
12430
12431 //----------------------- Boost serialization for SgAsmJvmExceptionTable -----------------------
12432#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12433private:
12434 friend class boost::serialization::access;
12435
12436 template<class S>
12437 void serialize(S &s, const unsigned /*version*/) {
12438 debugSerializationBegin("SgAsmJvmExceptionTable");
12439 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
12440 s & BOOST_SERIALIZATION_NVP(p_handlers);
12441 debugSerializationEnd("SgAsmJvmExceptionTable");
12442 }
12443#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12444public:
12445public:
12449 SgAsmJvmExceptionHandlerPtrList const& get_handlers() const;
12450 SgAsmJvmExceptionHandlerPtrList& get_handlers();
12451 void set_handlers(SgAsmJvmExceptionHandlerPtrList const&);
12453public:
12458
12464
12466 virtual void unparse(std::ostream&) const override;
12467
12469 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12470public:
12473
12474public:
12477
12478protected:
12486#endif // SgAsmJvmExceptionTable_OTHERS
12487#ifdef DOCUMENTATION
12488};
12489#endif // DOCUMENTATION
12490
12491
12493// SgAsmJvmExceptionHandler -- MACHINE GENERATED; DO NOT MODIFY --
12495
12496DECLARE_LEAF_CLASS(AsmJvmExceptionHandler);
12497IS_SERIALIZABLE(AsmJvmExceptionHandler);
12498
12499#ifndef DOCUMENTATION
12500AsmJvmExceptionHandler.useSmallHeader(true);
12501#endif // !DOCUMENTATION
12502
12503#ifdef DOCUMENTATION
12508#endif // DOCUMENTATION
12509
12510#ifndef DOCUMENTATION
12511 AsmJvmExceptionHandler.setDataPrototype(
12512 "uint16_t", "start_pc", "= 0",
12513 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12514#endif // !DOCUMENTATION
12515
12516#ifndef DOCUMENTATION
12517 AsmJvmExceptionHandler.setDataPrototype(
12518 "uint16_t", "end_pc", "= 0",
12519 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12520#endif // !DOCUMENTATION
12521
12522#ifndef DOCUMENTATION
12523 AsmJvmExceptionHandler.setDataPrototype(
12524 "uint16_t", "handler_pc", "= 0",
12525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12526#endif // !DOCUMENTATION
12527
12528#ifndef DOCUMENTATION
12529 AsmJvmExceptionHandler.setDataPrototype(
12530 "uint16_t", "catch_type", "= 0",
12531 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12532#endif // !DOCUMENTATION
12533
12534 DECLARE_OTHERS(AsmJvmExceptionHandler);
12535#if defined(SgAsmJvmExceptionHandler_OTHERS) || defined(DOCUMENTATION)
12536
12537 //----------------------- Boost serialization for SgAsmJvmExceptionHandler -----------------------
12538#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12539private:
12540 friend class boost::serialization::access;
12541
12542 template<class S>
12543 void serialize(S &s, const unsigned /*version*/) {
12544 debugSerializationBegin("SgAsmJvmExceptionHandler");
12545 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
12546 s & BOOST_SERIALIZATION_NVP(p_start_pc);
12547 s & BOOST_SERIALIZATION_NVP(p_end_pc);
12548 s & BOOST_SERIALIZATION_NVP(p_handler_pc);
12549 s & BOOST_SERIALIZATION_NVP(p_catch_type);
12550 debugSerializationEnd("SgAsmJvmExceptionHandler");
12551 }
12552#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12553public:
12554public:
12561 uint16_t const& get_start_pc() const;
12562 void set_start_pc(uint16_t const&);
12565public:
12572 uint16_t const& get_end_pc() const;
12573 void set_end_pc(uint16_t const&);
12576public:
12583 uint16_t const& get_handler_pc() const;
12584 void set_handler_pc(uint16_t const&);
12587public:
12594 uint16_t const& get_catch_type() const;
12595 void set_catch_type(uint16_t const&);
12597 public:
12602
12605
12607 virtual void unparse(std::ostream&) const override;
12608
12610 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12611public:
12614
12615public:
12618
12619protected:
12627#endif // SgAsmJvmExceptionHandler_OTHERS
12628#ifdef DOCUMENTATION
12629};
12630#endif // DOCUMENTATION
12631
12632
12634// SgAsmJvmEnclosingMethod -- MACHINE GENERATED; DO NOT MODIFY --
12636
12637DECLARE_LEAF_CLASS(AsmJvmEnclosingMethod);
12638IS_SERIALIZABLE(AsmJvmEnclosingMethod);
12639
12640#ifndef DOCUMENTATION
12641AsmJvmEnclosingMethod.useSmallHeader(true);
12642#endif // !DOCUMENTATION
12643
12644#ifdef DOCUMENTATION
12651#endif // DOCUMENTATION
12652
12653#ifndef DOCUMENTATION
12654 AsmJvmEnclosingMethod.setDataPrototype(
12655 "uint16_t", "class_index", "= 0",
12656 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12657#endif // !DOCUMENTATION
12658
12659#ifndef DOCUMENTATION
12660 AsmJvmEnclosingMethod.setDataPrototype(
12661 "uint16_t", "method_index", "= 0",
12662 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12663#endif // !DOCUMENTATION
12664
12665 DECLARE_OTHERS(AsmJvmEnclosingMethod);
12666#if defined(SgAsmJvmEnclosingMethod_OTHERS) || defined(DOCUMENTATION)
12667
12668 //----------------------- Boost serialization for SgAsmJvmEnclosingMethod -----------------------
12669#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12670private:
12671 friend class boost::serialization::access;
12672
12673 template<class S>
12674 void serialize(S &s, const unsigned /*version*/) {
12675 debugSerializationBegin("SgAsmJvmEnclosingMethod");
12676 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12677 s & BOOST_SERIALIZATION_NVP(p_class_index);
12678 s & BOOST_SERIALIZATION_NVP(p_method_index);
12679 debugSerializationEnd("SgAsmJvmEnclosingMethod");
12680 }
12681#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12682public:
12683public:
12689 uint16_t const& get_class_index() const;
12690 void set_class_index(uint16_t const&);
12693public:
12700 uint16_t const& get_method_index() const;
12701 void set_method_index(uint16_t const&);
12703public:
12708
12711
12713 virtual void unparse(std::ostream&) const override;
12714
12716 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12717public:
12720
12721public:
12724
12725protected:
12733#endif // SgAsmJvmEnclosingMethod_OTHERS
12734#ifdef DOCUMENTATION
12735};
12736#endif // DOCUMENTATION
12737
12738
12740// SgAsmJvmDeprecated -- MACHINE GENERATED; DO NOT MODIFY --
12742
12743DECLARE_LEAF_CLASS(AsmJvmDeprecated);
12744IS_SERIALIZABLE(AsmJvmDeprecated);
12745
12746#ifndef DOCUMENTATION
12747AsmJvmDeprecated.useSmallHeader(true);
12748#endif // !DOCUMENTATION
12749
12750#ifdef DOCUMENTATION
12756#endif // DOCUMENTATION
12757
12758 DECLARE_OTHERS(AsmJvmDeprecated);
12759#if defined(SgAsmJvmDeprecated_OTHERS) || defined(DOCUMENTATION)
12760
12761 //----------------------- Boost serialization for SgAsmJvmDeprecated -----------------------
12762#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12763private:
12764 friend class boost::serialization::access;
12765
12766 template<class S>
12767 void serialize(S &s, const unsigned /*version*/) {
12768 debugSerializationBegin("SgAsmJvmDeprecated");
12769 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12770 debugSerializationEnd("SgAsmJvmDeprecated");
12771 }
12772#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12773public:
12778
12781public:
12784
12785public:
12788
12789protected:
12797#endif // SgAsmJvmDeprecated_OTHERS
12798#ifdef DOCUMENTATION
12799};
12800#endif // DOCUMENTATION
12801
12802
12804// SgAsmJvmConstantValue -- MACHINE GENERATED; DO NOT MODIFY --
12806
12807DECLARE_LEAF_CLASS(AsmJvmConstantValue);
12808IS_SERIALIZABLE(AsmJvmConstantValue);
12809
12810#ifndef DOCUMENTATION
12811AsmJvmConstantValue.useSmallHeader(true);
12812#endif // !DOCUMENTATION
12813
12814#ifdef DOCUMENTATION
12820#endif // DOCUMENTATION
12821
12822#ifndef DOCUMENTATION
12823 AsmJvmConstantValue.setDataPrototype(
12824 "uint16_t", "constantvalue_index", "= 0",
12825 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12826#endif // !DOCUMENTATION
12827
12828 DECLARE_OTHERS(AsmJvmConstantValue);
12829#if defined(SgAsmJvmConstantValue_OTHERS) || defined(DOCUMENTATION)
12830
12831 //----------------------- Boost serialization for SgAsmJvmConstantValue -----------------------
12832#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12833private:
12834 friend class boost::serialization::access;
12835
12836 template<class S>
12837 void serialize(S &s, const unsigned /*version*/) {
12838 debugSerializationBegin("SgAsmJvmConstantValue");
12839 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12840 s & BOOST_SERIALIZATION_NVP(p_constantvalue_index);
12841 debugSerializationEnd("SgAsmJvmConstantValue");
12842 }
12843#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12844public:
12845public:
12851 uint16_t const& get_constantvalue_index() const;
12852 void set_constantvalue_index(uint16_t const&);
12854public:
12859
12862
12864 virtual void unparse(std::ostream&) const override;
12865
12867 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12868public:
12871
12872public:
12875
12876protected:
12884#endif // SgAsmJvmConstantValue_OTHERS
12885#ifdef DOCUMENTATION
12886};
12887#endif // DOCUMENTATION
12888
12889
12891// SgAsmJvmConstantPoolEntry -- MACHINE GENERATED; DO NOT MODIFY --
12893
12894DECLARE_LEAF_CLASS(AsmJvmConstantPoolEntry);
12895IS_SERIALIZABLE(AsmJvmConstantPoolEntry);
12896
12897#ifndef DOCUMENTATION
12898AsmJvmConstantPoolEntry.useSmallHeader(true);
12899#endif // !DOCUMENTATION
12900
12901#ifdef DOCUMENTATION
12907#endif // DOCUMENTATION
12908
12909#ifndef DOCUMENTATION
12910 AsmJvmConstantPoolEntry.setDataPrototype(
12911 "SgAsmJvmConstantPoolEntry::Kind", "tag", "= SgAsmJvmConstantPoolEntry::EMPTY",
12912 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12913#endif // !DOCUMENTATION
12914
12915#ifndef DOCUMENTATION
12916 AsmJvmConstantPoolEntry.setDataPrototype(
12917 "uint32_t", "bytes", "= 0",
12918 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12919#endif // !DOCUMENTATION
12920
12921#ifndef DOCUMENTATION
12922 AsmJvmConstantPoolEntry.setDataPrototype(
12923 "uint32_t", "hi_bytes", "= 0",
12924 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12925#endif // !DOCUMENTATION
12926
12927#ifndef DOCUMENTATION
12928 AsmJvmConstantPoolEntry.setDataPrototype(
12929 "uint32_t", "low_bytes", "= 0",
12930 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12931#endif // !DOCUMENTATION
12932
12933#ifndef DOCUMENTATION
12934 AsmJvmConstantPoolEntry.setDataPrototype(
12935 "uint16_t", "bootstrap_method_attr_index", "= 0",
12936 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12937#endif // !DOCUMENTATION
12938
12939#ifndef DOCUMENTATION
12940 AsmJvmConstantPoolEntry.setDataPrototype(
12941 "uint16_t", "class_index", "= 0",
12942 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12943#endif // !DOCUMENTATION
12944
12945#ifndef DOCUMENTATION
12946 AsmJvmConstantPoolEntry.setDataPrototype(
12947 "uint16_t", "descriptor_index", "= 0",
12948 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12949#endif // !DOCUMENTATION
12950
12951#ifndef DOCUMENTATION
12952 AsmJvmConstantPoolEntry.setDataPrototype(
12953 "uint16_t", "name_index", "= 0",
12954 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12955#endif // !DOCUMENTATION
12956
12957#ifndef DOCUMENTATION
12958 AsmJvmConstantPoolEntry.setDataPrototype(
12959 "uint16_t", "name_and_type_index", "= 0",
12960 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12961#endif // !DOCUMENTATION
12962
12963#ifndef DOCUMENTATION
12964 AsmJvmConstantPoolEntry.setDataPrototype(
12965 "uint16_t", "reference_index", "= 0",
12966 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12967#endif // !DOCUMENTATION
12968
12969#ifndef DOCUMENTATION
12970 AsmJvmConstantPoolEntry.setDataPrototype(
12971 "uint8_t", "reference_kind", "= 0",
12972 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12973#endif // !DOCUMENTATION
12974
12975#ifndef DOCUMENTATION
12976 AsmJvmConstantPoolEntry.setDataPrototype(
12977 "uint16_t", "string_index", "= 0",
12978 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12979#endif // !DOCUMENTATION
12980
12981#ifndef DOCUMENTATION
12982 AsmJvmConstantPoolEntry.setDataPrototype(
12983 "uint16_t", "length", "= 0",
12984 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12985#endif // !DOCUMENTATION
12986
12987#ifndef DOCUMENTATION
12988 AsmJvmConstantPoolEntry.setDataPrototype(
12989 "char*", "utf8_bytes", "= nullptr",
12990 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12991#endif // !DOCUMENTATION
12992
12993 DECLARE_OTHERS(AsmJvmConstantPoolEntry);
12994#if defined(SgAsmJvmConstantPoolEntry_OTHERS) || defined(DOCUMENTATION)
12995
12996 //----------------------- Boost serialization for SgAsmJvmConstantPoolEntry -----------------------
12997#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12998private:
12999 friend class boost::serialization::access;
13000
13001 template<class S>
13002 void serialize(S &s, const unsigned /*version*/) {
13003 debugSerializationBegin("SgAsmJvmConstantPoolEntry");
13004 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13005 s & BOOST_SERIALIZATION_NVP(p_tag);
13006 s & BOOST_SERIALIZATION_NVP(p_bytes);
13007 s & BOOST_SERIALIZATION_NVP(p_hi_bytes);
13008 s & BOOST_SERIALIZATION_NVP(p_low_bytes);
13009 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_attr_index);
13010 s & BOOST_SERIALIZATION_NVP(p_class_index);
13011 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
13012 s & BOOST_SERIALIZATION_NVP(p_name_index);
13013 s & BOOST_SERIALIZATION_NVP(p_name_and_type_index);
13014 s & BOOST_SERIALIZATION_NVP(p_reference_index);
13015 s & BOOST_SERIALIZATION_NVP(p_reference_kind);
13016 s & BOOST_SERIALIZATION_NVP(p_string_index);
13017 s & BOOST_SERIALIZATION_NVP(p_length);
13018 debugSerializationEnd("SgAsmJvmConstantPoolEntry");
13019 }
13020#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13022 // Local types
13024public:
13029 enum Kind {
13030 EMPTY = 0,
13031 CONSTANT_Utf8 = 1,
13032 CONSTANT_Integer = 3,
13033 CONSTANT_Float = 4,
13034 CONSTANT_Long = 5,
13035 CONSTANT_Double = 6,
13036 CONSTANT_Class = 7,
13037 CONSTANT_String = 8,
13038 CONSTANT_Fieldref = 9,
13039 CONSTANT_Methodref = 10,
13040 CONSTANT_InterfaceMethodref = 11,
13041 CONSTANT_NameAndType = 12,
13042 CONSTANT_MethodHandle = 15,
13043 CONSTANT_MethodType = 16,
13044 CONSTANT_Dynamic = 17,
13045 CONSTANT_InvokeDynamic = 18,
13046 CONSTANT_Module = 19,
13047 CONSTANT_Package = 20
13048 };
13049
13050#ifdef DOCUMENTATION
13054#endif
13057 uint8_t tag;
13058 uint16_t name_index;
13059 };
13060
13064 uint8_t tag;
13065 uint16_t class_index;
13066 uint16_t name_and_type_index;
13067 };
13069 uint8_t tag;
13070 uint16_t class_index;
13071 uint16_t name_and_type_index;
13072 };
13074 uint8_t tag;
13075 uint16_t class_index;
13076 uint16_t name_and_type_index;
13077 };
13078
13081 uint8_t tag;
13082 uint16_t string_index;
13083 };
13084
13087 uint8_t tag;
13088 uint32_t bytes;
13089 };
13091 uint8_t tag;
13092 uint32_t bytes;
13093 };
13095 uint8_t tag;
13096 uint32_t hi_bytes;
13097 uint32_t low_bytes;
13098 };
13100 uint8_t tag;
13101 uint32_t hi_bytes;
13102 uint32_t low_bytes;
13103 };
13104
13107 uint8_t tag;
13108 uint16_t name_index;
13109 uint16_t descriptor_index;
13110 };
13111
13114 uint8_t tag;
13115 uint16_t length;
13116 uint8_t* bytes;
13117 };
13118
13121 uint8_t tag;
13122 uint8_t reference_kind;
13123 uint16_t reference_index;
13124 };
13125
13128 uint8_t tag;
13129 uint16_t descriptor_index;
13130 };
13131
13134 uint8_t tag;
13135 uint16_t bootstrap_method_attr_index;
13136 uint16_t name_and_type_index;
13137 };
13139 uint8_t tag;
13140 uint16_t bootstrap_method_attr_index;
13141 uint16_t name_and_type_index;
13142 };
13143
13146 uint8_t tag;
13147 uint16_t name_index;
13148 };
13149
13152 uint8_t tag;
13153 uint16_t name_index;
13154 };
13155
13157 // Properties
13159public:
13160public:
13170public:
13177 uint32_t const& get_bytes() const;
13178 void set_bytes(uint32_t const&);
13181public:
13189 uint32_t const& get_hi_bytes() const;
13190 void set_hi_bytes(uint32_t const&);
13193public:
13201 uint32_t const& get_low_bytes() const;
13202 void set_low_bytes(uint32_t const&);
13205public:
13212 uint16_t const& get_bootstrap_method_attr_index() const;
13213 void set_bootstrap_method_attr_index(uint16_t const&);
13216public:
13223 uint16_t const& get_class_index() const;
13224 void set_class_index(uint16_t const&);
13227public:
13234 uint16_t const& get_descriptor_index() const;
13235 void set_descriptor_index(uint16_t const&);
13238public:
13245 uint16_t const& get_name_index() const;
13246 void set_name_index(uint16_t const&);
13249public:
13257 uint16_t const& get_name_and_type_index() const;
13258 void set_name_and_type_index(uint16_t const&);
13261public:
13268 uint16_t const& get_reference_index() const;
13269 void set_reference_index(uint16_t const&);
13272public:
13279 uint8_t const& get_reference_kind() const;
13280 void set_reference_kind(uint8_t const&);
13283public:
13290 uint16_t const& get_string_index() const;
13291 void set_string_index(uint16_t const&);
13294public:
13301 uint16_t const& get_length() const;
13302 void set_length(uint16_t const&);
13304 // [Robb Matzke 2023-03-22]: I (and the serialization) have no idea what this points to, and therefore it cannot be
13305 // serialized. E.g., how many 'chars' should be serialized? Is the length stored in the `length` property? If so, `utf8_bytes`
13306 // should probably be an std::vector instead, which is a serializable thing. Furthermore, the data member cannot be 'const'
13307 // because that prevents it from being initialized by some de-serialization mechanisms (e.g., boost::serialize creates a default
13308 // constructed object and then fills it in).
13309public:
13315 char* const& get_utf8_bytes() const;
13316 void set_utf8_bytes(char* const&);
13319 // Functions
13321public:
13324
13332 virtual void unparse(std::ostream&) const override;
13333
13335 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13336
13339public:
13342
13343public:
13346
13347protected:
13355#endif // SgAsmJvmConstantPoolEntry_OTHERS
13356#ifdef DOCUMENTATION
13357};
13358#endif // DOCUMENTATION
13359
13360
13362// SgAsmJvmConstantPool -- MACHINE GENERATED; DO NOT MODIFY --
13364
13365DECLARE_LEAF_CLASS(AsmJvmConstantPool);
13366IS_SERIALIZABLE(AsmJvmConstantPool);
13367
13368#ifndef DOCUMENTATION
13369AsmJvmConstantPool.useSmallHeader(true);
13370#endif // !DOCUMENTATION
13371
13372#ifdef DOCUMENTATION
13379#endif // DOCUMENTATION
13380
13381#ifndef DOCUMENTATION
13382 AsmJvmConstantPool.setDataPrototype(
13383 "SgAsmJvmConstantPoolEntryPtrList", "entries", "",
13384 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13385#endif // !DOCUMENTATION
13386
13387 DECLARE_OTHERS(AsmJvmConstantPool);
13388#if defined(SgAsmJvmConstantPool_OTHERS) || defined(DOCUMENTATION)
13389
13390 //----------------------- Boost serialization for SgAsmJvmConstantPool -----------------------
13391#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13392private:
13393 friend class boost::serialization::access;
13394
13395 template<class S>
13396 void serialize(S &s, const unsigned /*version*/) {
13397 debugSerializationBegin("SgAsmJvmConstantPool");
13398 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
13399 s & BOOST_SERIALIZATION_NVP(p_entries);
13400 debugSerializationEnd("SgAsmJvmConstantPool");
13401 }
13402#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13403public:
13404public:
13408 SgAsmJvmConstantPoolEntryPtrList const& get_entries() const;
13409 SgAsmJvmConstantPoolEntryPtrList& get_entries();
13410 void set_entries(SgAsmJvmConstantPoolEntryPtrList const&);
13412public:
13415
13421 virtual SgAsmJvmConstantPool* parse() override;
13422
13435 std::string get_utf8_string(size_t index) const;
13436
13438 virtual void unparse(std::ostream&) const override;
13439
13441 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13442
13443protected:
13444 // Some extra clean-up actions on destruction
13445 virtual void destructorHelper() override;
13446public:
13449
13450public:
13453
13454protected:
13462#endif // SgAsmJvmConstantPool_OTHERS
13463#ifdef DOCUMENTATION
13464};
13465#endif // DOCUMENTATION
13466
13467
13469// SgAsmJvmCodeAttribute -- MACHINE GENERATED; DO NOT MODIFY --
13471
13472DECLARE_LEAF_CLASS(AsmJvmCodeAttribute);
13473IS_SERIALIZABLE(AsmJvmCodeAttribute);
13474
13475#ifndef DOCUMENTATION
13476AsmJvmCodeAttribute.useSmallHeader(true);
13477#endif // !DOCUMENTATION
13478
13479DECLARE_HEADERS(AsmJvmCodeAttribute);
13480#if defined(SgAsmJvmCodeAttribute_HEADERS) || defined(DOCUMENTATION)
13481#include <Rose/BinaryAnalysis/Address.h>
13482#endif // SgAsmJvmCodeAttribute_HEADERS
13483
13484#ifdef DOCUMENTATION
13491#endif // DOCUMENTATION
13492
13493#ifndef DOCUMENTATION
13494 AsmJvmCodeAttribute.setDataPrototype(
13495 "uint16_t", "max_stack", "= 0",
13496 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13497#endif // !DOCUMENTATION
13498
13499#ifndef DOCUMENTATION
13500 AsmJvmCodeAttribute.setDataPrototype(
13501 "uint16_t", "max_locals", "= 0",
13502 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13503#endif // !DOCUMENTATION
13504
13505#ifndef DOCUMENTATION
13506 AsmJvmCodeAttribute.setDataPrototype(
13507 "uint32_t", "code_length", "= 0",
13508 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13509#endif // !DOCUMENTATION
13510
13511#ifndef DOCUMENTATION
13512 AsmJvmCodeAttribute.setDataPrototype(
13513 "const char*", "code", "= nullptr",
13514 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13515#endif // !DOCUMENTATION
13516
13517#ifndef DOCUMENTATION
13518 AsmJvmCodeAttribute.setDataPrototype(
13519 "SgAsmJvmExceptionTable*", "exception_table", "= nullptr",
13520 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13521#endif // !DOCUMENTATION
13522
13523#ifndef DOCUMENTATION
13524 AsmJvmCodeAttribute.setDataPrototype(
13525 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
13526 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13527#endif // !DOCUMENTATION
13528
13529#ifndef DOCUMENTATION
13530 AsmJvmCodeAttribute.setDataPrototype(
13531 "Rose::BinaryAnalysis::Address", "code_offset", "= 0",
13532 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13533#endif // !DOCUMENTATION
13534
13535 DECLARE_OTHERS(AsmJvmCodeAttribute);
13536#if defined(SgAsmJvmCodeAttribute_OTHERS) || defined(DOCUMENTATION)
13537
13538 //----------------------- Boost serialization for SgAsmJvmCodeAttribute -----------------------
13539#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13540private:
13541 friend class boost::serialization::access;
13542
13543 template<class S>
13544 void serialize(S &s, const unsigned /*version*/) {
13545 debugSerializationBegin("SgAsmJvmCodeAttribute");
13546 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
13547 s & BOOST_SERIALIZATION_NVP(p_max_stack);
13548 s & BOOST_SERIALIZATION_NVP(p_max_locals);
13549 s & BOOST_SERIALIZATION_NVP(p_code_length);
13550 s & BOOST_SERIALIZATION_NVP(p_exception_table);
13551 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
13552 s & BOOST_SERIALIZATION_NVP(p_code_offset);
13553 debugSerializationEnd("SgAsmJvmCodeAttribute");
13554 }
13555#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13556public:
13557public:
13564 uint16_t const& get_max_stack() const;
13565 void set_max_stack(uint16_t const&);
13568public:
13575 uint16_t const& get_max_locals() const;
13576 void set_max_locals(uint16_t const&);
13579public:
13586 uint32_t const& get_code_length() const;
13587 void set_code_length(uint32_t const&);
13589 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
13590public:
13596 const char* const& get_code() const;
13597 void set_code(const char* const&);
13600public:
13610public:
13620public:
13630public:
13635
13638
13640 virtual void unparse(std::ostream&) const override;
13641
13643 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13644public:
13647
13648public:
13651
13652protected:
13660#endif // SgAsmJvmCodeAttribute_OTHERS
13661#ifdef DOCUMENTATION
13662};
13663#endif // DOCUMENTATION
13664
13665
13667// SgAsmJvmClass -- MACHINE GENERATED; DO NOT MODIFY --
13669
13670DECLARE_LEAF_CLASS(AsmJvmClass);
13671IS_SERIALIZABLE(AsmJvmClass);
13672
13673#ifndef DOCUMENTATION
13674AsmJvmClass.useSmallHeader(true);
13675#endif // !DOCUMENTATION
13676
13677#ifdef DOCUMENTATION
13682#endif // DOCUMENTATION
13683
13684 DECLARE_OTHERS(AsmJvmClass);
13685#if defined(SgAsmJvmClass_OTHERS) || defined(DOCUMENTATION)
13686
13687 //----------------------- Boost serialization for SgAsmJvmClass -----------------------
13688#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13689private:
13690 friend class boost::serialization::access;
13691
13692 template<class S>
13693 void serialize(S &s, const unsigned /*version*/) {
13694 debugSerializationBegin("SgAsmJvmClass");
13695 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13696 debugSerializationEnd("SgAsmJvmClass");
13697 }
13698#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13699
13700public:
13703
13704public:
13707
13708protected:
13716#endif // SgAsmJvmClass_OTHERS
13717#ifdef DOCUMENTATION
13718};
13719#endif // DOCUMENTATION
13720
13721
13723// SgAsmJvmBootstrapMethods -- MACHINE GENERATED; DO NOT MODIFY --
13725
13726DECLARE_LEAF_CLASS(AsmJvmBootstrapMethods);
13727IS_SERIALIZABLE(AsmJvmBootstrapMethods);
13728
13729#ifndef DOCUMENTATION
13730AsmJvmBootstrapMethods.useSmallHeader(true);
13731#endif // !DOCUMENTATION
13732
13733DECLARE_HEADERS(AsmJvmBootstrapMethods);
13734#if defined(SgAsmJvmBootstrapMethods_HEADERS) || defined(DOCUMENTATION)
13735#include <sageContainer.h>
13736#endif // SgAsmJvmBootstrapMethods_HEADERS
13737
13738#ifdef DOCUMENTATION
13744#endif // DOCUMENTATION
13745
13746#ifndef DOCUMENTATION
13747 AsmJvmBootstrapMethods.setDataPrototype(
13748 "SgAsmJvmBootstrapMethodPtrList", "bootstrap_methods", "",
13749 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13750#endif // !DOCUMENTATION
13751
13752 DECLARE_OTHERS(AsmJvmBootstrapMethods);
13753#if defined(SgAsmJvmBootstrapMethods_OTHERS) || defined(DOCUMENTATION)
13754
13755 //----------------------- Boost serialization for SgAsmJvmBootstrapMethods -----------------------
13756#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13757private:
13758 friend class boost::serialization::access;
13759
13760 template<class S>
13761 void serialize(S &s, const unsigned /*version*/) {
13762 debugSerializationBegin("SgAsmJvmBootstrapMethods");
13763 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
13764 s & BOOST_SERIALIZATION_NVP(p_bootstrap_methods);
13765 debugSerializationEnd("SgAsmJvmBootstrapMethods");
13766 }
13767#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13769 // Properties
13771public:
13772public:
13776 SgAsmJvmBootstrapMethodPtrList const& get_bootstrap_methods() const;
13777 SgAsmJvmBootstrapMethodPtrList& get_bootstrap_methods();
13778 void set_bootstrap_methods(SgAsmJvmBootstrapMethodPtrList const&);
13781 // Functions
13783public:
13788
13791
13793 virtual void unparse(std::ostream&) const override;
13794
13796 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13797public:
13800
13801public:
13804
13805protected:
13813#endif // SgAsmJvmBootstrapMethods_OTHERS
13814#ifdef DOCUMENTATION
13815};
13816#endif // DOCUMENTATION
13817
13818
13820// SgAsmJvmBootstrapMethod -- MACHINE GENERATED; DO NOT MODIFY --
13822
13823DECLARE_LEAF_CLASS(AsmJvmBootstrapMethod);
13824IS_SERIALIZABLE(AsmJvmBootstrapMethod);
13825
13826#ifndef DOCUMENTATION
13827AsmJvmBootstrapMethod.useSmallHeader(true);
13828#endif // !DOCUMENTATION
13829
13830DECLARE_HEADERS(AsmJvmBootstrapMethod);
13831#if defined(SgAsmJvmBootstrapMethod_HEADERS) || defined(DOCUMENTATION)
13832#include <sageContainer.h>
13833#endif // SgAsmJvmBootstrapMethod_HEADERS
13834
13835#ifdef DOCUMENTATION
13842#endif // DOCUMENTATION
13843
13844#ifndef DOCUMENTATION
13845 AsmJvmBootstrapMethod.setDataPrototype(
13846 "uint16_t", "bootstrap_method_ref", "= 0",
13847 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13848#endif // !DOCUMENTATION
13849
13850#ifndef DOCUMENTATION
13851 AsmJvmBootstrapMethod.setDataPrototype(
13852 "SgUnsigned16List", "bootstrap_arguments", "",
13853 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13854#endif // !DOCUMENTATION
13855
13856 DECLARE_OTHERS(AsmJvmBootstrapMethod);
13857#if defined(SgAsmJvmBootstrapMethod_OTHERS) || defined(DOCUMENTATION)
13858
13859 //----------------------- Boost serialization for SgAsmJvmBootstrapMethod -----------------------
13860#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13861private:
13862 friend class boost::serialization::access;
13863
13864 template<class S>
13865 void serialize(S &s, const unsigned /*version*/) {
13866 debugSerializationBegin("SgAsmJvmBootstrapMethod");
13867 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13868 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_ref);
13869 s & BOOST_SERIALIZATION_NVP(p_bootstrap_arguments);
13870 debugSerializationEnd("SgAsmJvmBootstrapMethod");
13871 }
13872#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13873public:
13874public:
13881 uint16_t const& get_bootstrap_method_ref() const;
13882 void set_bootstrap_method_ref(uint16_t const&);
13885public:
13892 SgUnsigned16List const& get_bootstrap_arguments() const;
13893 void set_bootstrap_arguments(SgUnsigned16List const&);
13895 public:
13900
13903
13905 virtual void unparse(std::ostream&) const override;
13906
13908 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13909public:
13912
13913public:
13916
13917protected:
13925#endif // SgAsmJvmBootstrapMethod_OTHERS
13926#ifdef DOCUMENTATION
13927};
13928#endif // DOCUMENTATION
13929
13930
13932// SgAsmJvmAttributeTable -- MACHINE GENERATED; DO NOT MODIFY --
13934
13935DECLARE_LEAF_CLASS(AsmJvmAttributeTable);
13936IS_SERIALIZABLE(AsmJvmAttributeTable);
13937
13938#ifndef DOCUMENTATION
13939AsmJvmAttributeTable.useSmallHeader(true);
13940#endif // !DOCUMENTATION
13941
13942#ifdef DOCUMENTATION
13949#endif // DOCUMENTATION
13950
13951#ifndef DOCUMENTATION
13952 AsmJvmAttributeTable.setDataPrototype(
13953 "SgAsmJvmAttributePtrList", "attributes", "",
13954 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
13955#endif // !DOCUMENTATION
13956
13957 DECLARE_OTHERS(AsmJvmAttributeTable);
13958#if defined(SgAsmJvmAttributeTable_OTHERS) || defined(DOCUMENTATION)
13959
13960 //----------------------- Boost serialization for SgAsmJvmAttributeTable -----------------------
13961#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13962private:
13963 friend class boost::serialization::access;
13964
13965 template<class S>
13966 void serialize(S &s, const unsigned /*version*/) {
13967 debugSerializationBegin("SgAsmJvmAttributeTable");
13968 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
13969 s & BOOST_SERIALIZATION_NVP(p_attributes);
13970 debugSerializationEnd("SgAsmJvmAttributeTable");
13971 }
13972#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13973public:
13974public:
13978 SgAsmJvmAttributePtrList const& get_attributes() const;
13979 SgAsmJvmAttributePtrList& get_attributes();
13980 void set_attributes(SgAsmJvmAttributePtrList const&);
13982public:
13987
13992 using SgAsmGenericSection::parse; // Removes warning messages on some compilers
13993 // ("hidden virtual overloaded function")
13995
13997 virtual void unparse(std::ostream&) const override;
13998
14000 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14001public:
14004
14005public:
14008
14009protected:
14017#endif // SgAsmJvmAttributeTable_OTHERS
14018#ifdef DOCUMENTATION
14019};
14020#endif // DOCUMENTATION
14021
14022
14024// SgAsmJvmAttribute -- MACHINE GENERATED; DO NOT MODIFY --
14026
14027#ifndef DOCUMENTATION
14028AstNodeClass& AsmJvmAttribute = nonTerminalConstructor(
14029 "AsmJvmAttribute",
14030 *this,
14031 "AsmJvmAttribute",
14032 "AsmJvmAttributeTag",
14033 SubclassListBuilder()
14034 | AsmJvmBootstrapMethods
14035 | AsmJvmCodeAttribute
14036 | AsmJvmConstantValue
14037 | AsmJvmDeprecated
14038 | AsmJvmEnclosingMethod
14039 | AsmJvmExceptions
14040 | AsmJvmInnerClasses
14041 | AsmJvmLineNumberTable
14042 | AsmJvmLocalVariableTable
14043 | AsmJvmLocalVariableTypeTable
14044 | AsmJvmMethodParameters
14045 | AsmJvmModuleMainClass
14046 | AsmJvmNestHost
14047 | AsmJvmNestMembers
14048 | AsmJvmSignature
14049 | AsmJvmSourceFile
14050 | AsmJvmStackMapTable
14051 | AsmJvmSynthetic
14052 , false);
14053assert(AsmJvmAttribute.associatedGrammar != nullptr);
14054AsmJvmAttribute.setCppCondition("!defined(DOCUMENTATION)");
14055AsmJvmAttribute.isBoostSerializable(true);
14056AsmJvmAttribute.setAutomaticGenerationOfConstructor(false);
14057AsmJvmAttribute.setAutomaticGenerationOfDestructor(false);
14058#endif // !DOCUMENTATION
14059
14060#ifndef DOCUMENTATION
14061AsmJvmAttribute.useSmallHeader(true);
14062#endif // !DOCUMENTATION
14063
14064#ifdef DOCUMENTATION
14067#endif // DOCUMENTATION
14068
14069#ifndef DOCUMENTATION
14070 AsmJvmAttribute.setDataPrototype(
14071 "uint16_t", "attribute_name_index", "= 0",
14072 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14073#endif // !DOCUMENTATION
14074
14075#ifndef DOCUMENTATION
14076 AsmJvmAttribute.setDataPrototype(
14077 "uint32_t", "attribute_length", "= 0",
14078 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14079#endif // !DOCUMENTATION
14080
14081 DECLARE_OTHERS(AsmJvmAttribute);
14082#if defined(SgAsmJvmAttribute_OTHERS) || defined(DOCUMENTATION)
14083
14084 //----------------------- Boost serialization for SgAsmJvmAttribute -----------------------
14085#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14086private:
14087 friend class boost::serialization::access;
14088
14089 template<class S>
14090 void serialize(S &s, const unsigned /*version*/) {
14091 debugSerializationBegin("SgAsmJvmAttribute");
14092 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
14093 s & BOOST_SERIALIZATION_NVP(p_attribute_name_index);
14094 s & BOOST_SERIALIZATION_NVP(p_attribute_length);
14095 debugSerializationEnd("SgAsmJvmAttribute");
14096 }
14097#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14098public:
14099public:
14105 uint16_t const& get_attribute_name_index() const;
14106 void set_attribute_name_index(uint16_t const&);
14109public:
14116 uint32_t const& get_attribute_length() const;
14117 void set_attribute_length(uint32_t const&);
14119public:
14122
14125
14127 virtual void unparse(std::ostream&) const override;
14128
14130 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14131public:
14134
14135protected:
14138
14139protected:
14147#endif // SgAsmJvmAttribute_OTHERS
14148#ifdef DOCUMENTATION
14149};
14150#endif // DOCUMENTATION
14151
14152
14154// SgAsmJvmNode -- MACHINE GENERATED; DO NOT MODIFY --
14156
14157#ifndef DOCUMENTATION
14158AstNodeClass& AsmJvmNode = nonTerminalConstructor(
14159 "AsmJvmNode",
14160 *this,
14161 "AsmJvmNode",
14162 "AsmJvmNodeTag",
14163 SubclassListBuilder()
14164 | AsmJvmAttribute
14165 | AsmJvmBootstrapMethod
14166 | AsmJvmClass
14167 | AsmJvmConstantPoolEntry
14168 | AsmJvmExceptionHandler
14169 | AsmJvmExceptionTable
14170 | AsmJvmField
14171 | AsmJvmInnerClassesEntry
14172 | AsmJvmLineNumberEntry
14173 | AsmJvmLocalVariableEntry
14174 | AsmJvmLocalVariableTypeEntry
14175 | AsmJvmMethod
14176 | AsmJvmMethodParametersEntry
14177 | AsmJvmStackMapFrame
14178 | AsmJvmStackMapVerificationType
14179 , false);
14180assert(AsmJvmNode.associatedGrammar != nullptr);
14181AsmJvmNode.setCppCondition("!defined(DOCUMENTATION)");
14182AsmJvmNode.isBoostSerializable(true);
14183AsmJvmNode.setAutomaticGenerationOfConstructor(false);
14184AsmJvmNode.setAutomaticGenerationOfDestructor(false);
14185#endif // !DOCUMENTATION
14186
14187#ifndef DOCUMENTATION
14188AsmJvmNode.useSmallHeader(true);
14189#endif // !DOCUMENTATION
14190
14191#ifdef DOCUMENTATION
14194#endif // DOCUMENTATION
14195
14196 DECLARE_OTHERS(AsmJvmNode);
14197#if defined(SgAsmJvmNode_OTHERS) || defined(DOCUMENTATION)
14198
14199 //----------------------- Boost serialization for SgAsmJvmNode -----------------------
14200#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14201private:
14202 friend class boost::serialization::access;
14203
14204 template<class S>
14205 void serialize(S &s, const unsigned /*version*/) {
14206 debugSerializationBegin("SgAsmJvmNode");
14207 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14208 debugSerializationEnd("SgAsmJvmNode");
14209 }
14210#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14211public:
14213 virtual void unparse(std::ostream&) const;
14214
14216 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
14217public:
14219 virtual ~SgAsmJvmNode();
14220
14221protected:
14224
14225protected:
14233#endif // SgAsmJvmNode_OTHERS
14234#ifdef DOCUMENTATION
14235};
14236#endif // DOCUMENTATION
14237
14238
14240// SgAsmInterpretationList -- MACHINE GENERATED; DO NOT MODIFY --
14242
14243DECLARE_LEAF_CLASS(AsmInterpretationList);
14244IS_SERIALIZABLE(AsmInterpretationList);
14245
14246#ifndef DOCUMENTATION
14247AsmInterpretationList.useSmallHeader(true);
14248#endif // !DOCUMENTATION
14249
14250DECLARE_HEADERS(AsmInterpretationList);
14251#if defined(SgAsmInterpretationList_HEADERS) || defined(DOCUMENTATION)
14252#include <sageContainer.h>
14253#endif // SgAsmInterpretationList_HEADERS
14254
14255#ifdef DOCUMENTATION
14257#endif // DOCUMENTATION
14258
14259#ifndef DOCUMENTATION
14260 AsmInterpretationList.setDataPrototype(
14261 "SgAsmInterpretationPtrList", "interpretations", "",
14262 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14263#endif // !DOCUMENTATION
14264
14265 DECLARE_OTHERS(AsmInterpretationList);
14266#if defined(SgAsmInterpretationList_OTHERS) || defined(DOCUMENTATION)
14267
14268 //----------------------- Boost serialization for SgAsmInterpretationList -----------------------
14269#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14270private:
14271 friend class boost::serialization::access;
14272
14273 template<class S>
14274 void serialize(S &s, const unsigned /*version*/) {
14275 debugSerializationBegin("SgAsmInterpretationList");
14276 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14277 s & BOOST_SERIALIZATION_NVP(p_interpretations);
14278 debugSerializationEnd("SgAsmInterpretationList");
14279 }
14280#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14281public:
14282public:
14289 SgAsmInterpretationPtrList const& get_interpretations() const;
14290 SgAsmInterpretationPtrList& get_interpretations();
14291 void set_interpretations(SgAsmInterpretationPtrList const&);
14294public:
14297
14298public:
14301
14302protected:
14310#endif // SgAsmInterpretationList_OTHERS
14311#ifdef DOCUMENTATION
14312};
14313#endif // DOCUMENTATION
14314
14315
14317// SgAsmInterpretation -- MACHINE GENERATED; DO NOT MODIFY --
14319
14320DECLARE_LEAF_CLASS(AsmInterpretation);
14321IS_SERIALIZABLE(AsmInterpretation);
14322
14323#ifndef DOCUMENTATION
14324AsmInterpretation.useSmallHeader(true);
14325#endif // !DOCUMENTATION
14326
14327DECLARE_HEADERS(AsmInterpretation);
14328#if defined(SgAsmInterpretation_HEADERS) || defined(DOCUMENTATION)
14329#include <Rose/BinaryAnalysis/BasicTypes.h>
14330#include <Rose/BinaryAnalysis/InstructionMap.h>
14331#include <Rose/BinaryAnalysis/MemoryMap.h>
14332
14333#ifdef ROSE_SgAsmInterpretation_IMPL
14334#include <SgAsmBlock.h>
14335#include <SgAsmGenericHeaderList.h>
14336#endif
14337#endif // SgAsmInterpretation_HEADERS
14338
14339#ifdef DOCUMENTATION
14347#endif // DOCUMENTATION
14348
14349#ifndef DOCUMENTATION
14350 AsmInterpretation.setDataPrototype(
14351 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
14352 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14353#endif // !DOCUMENTATION
14354
14355#ifndef DOCUMENTATION
14356 AsmInterpretation.setDataPrototype(
14357 "SgAsmBlock*", "globalBlock", "= nullptr",
14358 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14359#endif // !DOCUMENTATION
14360
14361#ifndef DOCUMENTATION
14362 AsmInterpretation.setDataPrototype(
14363 "bool", "coverageComputed", "= false",
14364 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14365#endif // !DOCUMENTATION
14366
14367#ifndef DOCUMENTATION
14368 AsmInterpretation.setDataPrototype(
14369 "double", "percentageCoverage", "= NAN",
14370 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14371#endif // !DOCUMENTATION
14372
14373 DECLARE_OTHERS(AsmInterpretation);
14374#if defined(SgAsmInterpretation_OTHERS) || defined(DOCUMENTATION)
14375
14376 //----------------------- Boost serialization for SgAsmInterpretation -----------------------
14377#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14378private:
14379 friend class boost::serialization::access;
14380
14381 template<class S>
14382 void serialize(S &s, const unsigned /*version*/) {
14383 debugSerializationBegin("SgAsmInterpretation");
14384 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14385 s & BOOST_SERIALIZATION_NVP(p_headers);
14386 s & BOOST_SERIALIZATION_NVP(p_globalBlock);
14387 s & BOOST_SERIALIZATION_NVP(p_map);
14388 s & BOOST_SERIALIZATION_NVP(instruction_map);
14389 s & BOOST_SERIALIZATION_NVP(p_coverageComputed);
14390 s & BOOST_SERIALIZATION_NVP(p_percentageCoverage);
14391 debugSerializationEnd("SgAsmInterpretation");
14392 }
14393#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14394public:
14395public:
14408public:
14417 // ROSETTA doesn't understand this type, but we want this treated like a property whose data member name is "p_map"
14418 // and which has automatically generator accessors and mutators named "get_map" and "set_map" and is serialized.
14419private:
14421
14422public:
14431 // ROSETTA doesn't understand this type, but we want it serialized. Therfore, we'll define it as a property, but we'll
14432 // supply our own accessor and no mutator.
14433private:
14434 mutable Rose::BinaryAnalysis::InstructionMap instruction_map;
14435
14436public:
14444 // cached instruction map
14445
14449public:
14457 bool const& get_coverageComputed() const;
14458 void set_coverageComputed(bool const&);
14461public:
14468 double const& get_percentageCoverage() const;
14469 void set_percentageCoverage(double const&);
14471public:
14476 SgAsmGenericFilePtrList get_files() const;
14477
14483
14489
14491 // Deprecated 2023-11
14493public:
14494 SgAsmBlock* get_global_block() const ROSE_DEPRECATED("use get_globalBlock");
14495 void set_global_block(SgAsmBlock*) ROSE_DEPRECATED("use set_globalBlock");
14496 Rose::BinaryAnalysis::InstructionMap& get_instruction_map(bool=false) ROSE_DEPRECATED("use get_instructionMap");
14497 void set_instruction_map(const Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use set_instructionMap");
14498 void insert_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use insertInstructions");
14499 void erase_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use eraseInstructions");
14500public:
14503
14504public:
14507
14508protected:
14516#endif // SgAsmInterpretation_OTHERS
14517#ifdef DOCUMENTATION
14518};
14519#endif // DOCUMENTATION
14520
14521
14523// SgAsmIntegerValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
14525
14526DECLARE_LEAF_CLASS(AsmIntegerValueExpression);
14527IS_SERIALIZABLE(AsmIntegerValueExpression);
14528
14529#ifndef DOCUMENTATION
14530AsmIntegerValueExpression.useSmallHeader(true);
14531#endif // !DOCUMENTATION
14532
14533#ifdef DOCUMENTATION
14550#endif // DOCUMENTATION
14551
14552#ifndef DOCUMENTATION
14553 AsmIntegerValueExpression.setDataPrototype(
14554 "SgNode*", "baseNode", "= nullptr",
14555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14556#endif // !DOCUMENTATION
14557
14558 DECLARE_OTHERS(AsmIntegerValueExpression);
14559#if defined(SgAsmIntegerValueExpression_OTHERS) || defined(DOCUMENTATION)
14560
14561 //----------------------- Boost serialization for SgAsmIntegerValueExpression -----------------------
14562#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14563private:
14564 friend class boost::serialization::access;
14565
14566 template<class S>
14567 void serialize(S &s, const unsigned /*version*/) {
14568 debugSerializationBegin("SgAsmIntegerValueExpression");
14569 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
14570 s & BOOST_SERIALIZATION_NVP(p_baseNode);
14571 debugSerializationEnd("SgAsmIntegerValueExpression");
14572 }
14573#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14574public:
14575public:
14586 SgNode* const& get_baseNode() const;
14587 void set_baseNode(SgNode* const&);
14589public:
14595
14602
14604 static uint64_t virtualAddress(SgNode*);
14605
14625 std::string get_label(bool quiet=false) const;
14626
14628 size_t get_significantBits() const;
14629
14635 void makeRelativeTo(SgNode *baseNode);
14636
14641 uint64_t get_baseAddress() const;
14642
14648 uint64_t get_absoluteValue(size_t nbits=0) const;
14649
14653 void set_absoluteValue(uint64_t);
14654
14656 int64_t get_signedValue() const;
14657
14661 int64_t get_relativeValue() const;
14662
14667 void set_relativeValue(int64_t v, size_t nbits=64);
14668
14669 uint64_t get_value() const { return get_absoluteValue(); }
14670public:
14673
14674public:
14677
14678protected:
14686#endif // SgAsmIntegerValueExpression_OTHERS
14687#ifdef DOCUMENTATION
14688};
14689#endif // DOCUMENTATION
14690
14691
14693// SgAsmIntegerType -- MACHINE GENERATED; DO NOT MODIFY --
14695
14696DECLARE_LEAF_CLASS(AsmIntegerType);
14697IS_SERIALIZABLE(AsmIntegerType);
14698
14699#ifndef DOCUMENTATION
14700AsmIntegerType.useSmallHeader(true);
14701#endif // !DOCUMENTATION
14702
14703DECLARE_HEADERS(AsmIntegerType);
14704#if defined(SgAsmIntegerType_HEADERS) || defined(DOCUMENTATION)
14705#include <Rose/BinaryAnalysis/ByteOrder.h>
14706#endif // SgAsmIntegerType_HEADERS
14707
14708#ifdef DOCUMENTATION
14711#endif // DOCUMENTATION
14712
14713#ifndef DOCUMENTATION
14714 AsmIntegerType.setDataPrototype(
14715 "bool", "isSigned", "= false",
14716 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14717#endif // !DOCUMENTATION
14718
14719 DECLARE_OTHERS(AsmIntegerType);
14720#if defined(SgAsmIntegerType_OTHERS) || defined(DOCUMENTATION)
14721
14722 //----------------------- Boost serialization for SgAsmIntegerType -----------------------
14723#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14724private:
14725 friend class boost::serialization::access;
14726
14727 template<class S>
14728 void serialize(S &s, const unsigned /*version*/) {
14729 debugSerializationBegin("SgAsmIntegerType");
14730 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
14731 s & BOOST_SERIALIZATION_NVP(p_isSigned);
14732 debugSerializationEnd("SgAsmIntegerType");
14733 }
14734#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14735public:
14736public:
14742 bool get_isSigned() const;
14745public:
14750
14753
14756
14757 // Overrides documented in base class
14758 virtual void check() const override;
14759 virtual std::string toString() const override;
14760public:
14763
14764public:
14767
14768protected:
14776#endif // SgAsmIntegerType_OTHERS
14777#ifdef DOCUMENTATION
14778};
14779#endif // DOCUMENTATION
14780
14781
14783// SgAsmInstructionList -- MACHINE GENERATED; DO NOT MODIFY --
14785
14786DECLARE_LEAF_CLASS(AsmInstructionList);
14787IS_SERIALIZABLE(AsmInstructionList);
14788
14789#ifndef DOCUMENTATION
14790AsmInstructionList.useSmallHeader(true);
14791#endif // !DOCUMENTATION
14792
14793DECLARE_HEADERS(AsmInstructionList);
14794#if defined(SgAsmInstructionList_HEADERS) || defined(DOCUMENTATION)
14795#include <sageContainer.h>
14796#endif // SgAsmInstructionList_HEADERS
14797
14798#ifdef DOCUMENTATION
14801#endif // DOCUMENTATION
14802
14803#ifndef DOCUMENTATION
14804 AsmInstructionList.setDataPrototype(
14805 "SgAsmInstructionPtrList", "instructions", "",
14806 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14807#endif // !DOCUMENTATION
14808
14809 DECLARE_OTHERS(AsmInstructionList);
14810#if defined(SgAsmInstructionList_OTHERS) || defined(DOCUMENTATION)
14811
14812 //----------------------- Boost serialization for SgAsmInstructionList -----------------------
14813#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14814private:
14815 friend class boost::serialization::access;
14816
14817 template<class S>
14818 void serialize(S &s, const unsigned /*version*/) {
14819 debugSerializationBegin("SgAsmInstructionList");
14820 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14821 s & BOOST_SERIALIZATION_NVP(p_instructions);
14822 debugSerializationEnd("SgAsmInstructionList");
14823 }
14824#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14825public:
14826public:
14834 SgAsmInstructionPtrList const& get_instructions() const;
14835 SgAsmInstructionPtrList& get_instructions();
14836 void set_instructions(SgAsmInstructionPtrList const&);
14839public:
14842
14843public:
14846
14847protected:
14855#endif // SgAsmInstructionList_OTHERS
14856#ifdef DOCUMENTATION
14857};
14858#endif // DOCUMENTATION
14859
14860
14862// SgAsmIndirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
14864
14865DECLARE_LEAF_CLASS(AsmIndirectRegisterExpression);
14866IS_SERIALIZABLE(AsmIndirectRegisterExpression);
14867
14868#ifndef DOCUMENTATION
14869AsmIndirectRegisterExpression.useSmallHeader(true);
14870#endif // !DOCUMENTATION
14871
14872#ifdef DOCUMENTATION
14889#endif // DOCUMENTATION
14890
14891#ifndef DOCUMENTATION
14892 AsmIndirectRegisterExpression.setDataPrototype(
14893 "Rose::BinaryAnalysis::RegisterDescriptor", "stride", "",
14894 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14895#endif // !DOCUMENTATION
14896
14897#ifndef DOCUMENTATION
14898 AsmIndirectRegisterExpression.setDataPrototype(
14899 "Rose::BinaryAnalysis::RegisterDescriptor", "offset", "",
14900 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14901#endif // !DOCUMENTATION
14902
14903#ifndef DOCUMENTATION
14904 AsmIndirectRegisterExpression.setDataPrototype(
14905 "size_t", "index", "= 0",
14906 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14907#endif // !DOCUMENTATION
14908
14909#ifndef DOCUMENTATION
14910 AsmIndirectRegisterExpression.setDataPrototype(
14911 "size_t", "modulus", "= 0",
14912 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14913#endif // !DOCUMENTATION
14914
14915 DECLARE_OTHERS(AsmIndirectRegisterExpression);
14916#if defined(SgAsmIndirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
14917
14918 //----------------------- Boost serialization for SgAsmIndirectRegisterExpression -----------------------
14919#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14920private:
14921 friend class boost::serialization::access;
14922
14923 template<class S>
14924 void serialize(S &s, const unsigned /*version*/) {
14925 debugSerializationBegin("SgAsmIndirectRegisterExpression");
14926 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
14927 s & BOOST_SERIALIZATION_NVP(p_stride);
14928 s & BOOST_SERIALIZATION_NVP(p_offset);
14929 s & BOOST_SERIALIZATION_NVP(p_index);
14930 s & BOOST_SERIALIZATION_NVP(p_modulus);
14931 debugSerializationEnd("SgAsmIndirectRegisterExpression");
14932 }
14933#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14934public:
14935public:
14945public:
14955public:
14961 size_t const& get_index() const;
14962 void set_index(size_t const&);
14965public:
14971 size_t const& get_modulus() const;
14972 void set_modulus(size_t const&);
14975public:
14978
14979public:
14982
14983public:
14988 size_t const& index,
14989 size_t const& modulus);
14990
14991protected:
14999#endif // SgAsmIndirectRegisterExpression_OTHERS
15000#ifdef DOCUMENTATION
15001};
15002#endif // DOCUMENTATION
15003
15004
15006// SgAsmGenericSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
15008
15009DECLARE_LEAF_CLASS(AsmGenericSymbolList);
15010IS_SERIALIZABLE(AsmGenericSymbolList);
15011
15012#ifndef DOCUMENTATION
15013AsmGenericSymbolList.useSmallHeader(true);
15014#endif // !DOCUMENTATION
15015
15016DECLARE_HEADERS(AsmGenericSymbolList);
15017#if defined(SgAsmGenericSymbolList_HEADERS) || defined(DOCUMENTATION)
15018#include <sageContainer.h>
15019#endif // SgAsmGenericSymbolList_HEADERS
15020
15021#ifdef DOCUMENTATION
15027#endif // DOCUMENTATION
15028
15029#ifndef DOCUMENTATION
15030 AsmGenericSymbolList.setDataPrototype(
15031 "SgAsmGenericSymbolPtrList", "symbols", "",
15032 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15033#endif // !DOCUMENTATION
15034
15035 DECLARE_OTHERS(AsmGenericSymbolList);
15036#if defined(SgAsmGenericSymbolList_OTHERS) || defined(DOCUMENTATION)
15037
15038 //----------------------- Boost serialization for SgAsmGenericSymbolList -----------------------
15039#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15040private:
15041 friend class boost::serialization::access;
15042
15043 template<class S>
15044 void serialize(S &s, const unsigned /*version*/) {
15045 debugSerializationBegin("SgAsmGenericSymbolList");
15046 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15047 s & BOOST_SERIALIZATION_NVP(p_symbols);
15048 debugSerializationEnd("SgAsmGenericSymbolList");
15049 }
15050#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15051public:
15052public:
15056 SgAsmGenericSymbolPtrList const& get_symbols() const;
15057 SgAsmGenericSymbolPtrList& get_symbols();
15058 void set_symbols(SgAsmGenericSymbolPtrList const&);
15061public:
15064
15065public:
15068
15069protected:
15077#endif // SgAsmGenericSymbolList_OTHERS
15078#ifdef DOCUMENTATION
15079};
15080#endif // DOCUMENTATION
15081
15082
15084// SgAsmGenericSectionList -- MACHINE GENERATED; DO NOT MODIFY --
15086
15087DECLARE_LEAF_CLASS(AsmGenericSectionList);
15088IS_SERIALIZABLE(AsmGenericSectionList);
15089
15090#ifndef DOCUMENTATION
15091AsmGenericSectionList.useSmallHeader(true);
15092#endif // !DOCUMENTATION
15093
15094DECLARE_HEADERS(AsmGenericSectionList);
15095#if defined(SgAsmGenericSectionList_HEADERS) || defined(DOCUMENTATION)
15096#include <sageContainer.h>
15097#endif // SgAsmGenericSectionList_HEADERS
15098
15099#ifdef DOCUMENTATION
15105#endif // DOCUMENTATION
15106
15107#ifndef DOCUMENTATION
15108 AsmGenericSectionList.setDataPrototype(
15109 "SgAsmGenericSectionPtrList", "sections", "",
15110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15111#endif // !DOCUMENTATION
15112
15113 DECLARE_OTHERS(AsmGenericSectionList);
15114#if defined(SgAsmGenericSectionList_OTHERS) || defined(DOCUMENTATION)
15115
15116 //----------------------- Boost serialization for SgAsmGenericSectionList -----------------------
15117#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15118private:
15119 friend class boost::serialization::access;
15120
15121 template<class S>
15122 void serialize(S &s, const unsigned /*version*/) {
15123 debugSerializationBegin("SgAsmGenericSectionList");
15124 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15125 s & BOOST_SERIALIZATION_NVP(p_sections);
15126 debugSerializationEnd("SgAsmGenericSectionList");
15127 }
15128#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15129public:
15130public:
15134 SgAsmGenericSectionPtrList const& get_sections() const;
15135 SgAsmGenericSectionPtrList& get_sections();
15136 void set_sections(SgAsmGenericSectionPtrList const&);
15139public:
15142
15143public:
15146
15147protected:
15155#endif // SgAsmGenericSectionList_OTHERS
15156#ifdef DOCUMENTATION
15157};
15158#endif // DOCUMENTATION
15159
15160
15162// SgAsmGenericHeaderList -- MACHINE GENERATED; DO NOT MODIFY --
15164
15165DECLARE_LEAF_CLASS(AsmGenericHeaderList);
15166IS_SERIALIZABLE(AsmGenericHeaderList);
15167
15168#ifndef DOCUMENTATION
15169AsmGenericHeaderList.useSmallHeader(true);
15170#endif // !DOCUMENTATION
15171
15172DECLARE_HEADERS(AsmGenericHeaderList);
15173#if defined(SgAsmGenericHeaderList_HEADERS) || defined(DOCUMENTATION)
15174#include <sageContainer.h>
15175#endif // SgAsmGenericHeaderList_HEADERS
15176
15177#ifdef DOCUMENTATION
15183#endif // DOCUMENTATION
15184
15185#ifndef DOCUMENTATION
15186 AsmGenericHeaderList.setDataPrototype(
15187 "SgAsmGenericHeaderPtrList", "headers", "",
15188 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15189#endif // !DOCUMENTATION
15190
15191 DECLARE_OTHERS(AsmGenericHeaderList);
15192#if defined(SgAsmGenericHeaderList_OTHERS) || defined(DOCUMENTATION)
15193
15194 //----------------------- Boost serialization for SgAsmGenericHeaderList -----------------------
15195#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15196private:
15197 friend class boost::serialization::access;
15198
15199 template<class S>
15200 void serialize(S &s, const unsigned /*version*/) {
15201 debugSerializationBegin("SgAsmGenericHeaderList");
15202 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15203 s & BOOST_SERIALIZATION_NVP(p_headers);
15204 debugSerializationEnd("SgAsmGenericHeaderList");
15205 }
15206#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15207public:
15208public:
15212 SgAsmGenericHeaderPtrList const& get_headers() const;
15213 SgAsmGenericHeaderPtrList& get_headers();
15214 void set_headers(SgAsmGenericHeaderPtrList const&);
15217public:
15220
15221public:
15224
15225protected:
15233#endif // SgAsmGenericHeaderList_OTHERS
15234#ifdef DOCUMENTATION
15235};
15236#endif // DOCUMENTATION
15237
15238
15240// SgAsmGenericFormat -- MACHINE GENERATED; DO NOT MODIFY --
15242
15243DECLARE_LEAF_CLASS(AsmGenericFormat);
15244IS_SERIALIZABLE(AsmGenericFormat);
15245
15246#ifndef DOCUMENTATION
15247AsmGenericFormat.useSmallHeader(true);
15248#endif // !DOCUMENTATION
15249
15250DECLARE_HEADERS(AsmGenericFormat);
15251#if defined(SgAsmGenericFormat_HEADERS) || defined(DOCUMENTATION)
15252#include <Rose/BinaryAnalysis/ByteOrder.h>
15253#endif // SgAsmGenericFormat_HEADERS
15254
15255#ifdef DOCUMENTATION
15258#endif // DOCUMENTATION
15259
15260#ifndef DOCUMENTATION
15261 AsmGenericFormat.setDataPrototype(
15262 "SgAsmGenericFormat::ExecFamily", "family", "= SgAsmGenericFormat::FAMILY_UNSPECIFIED",
15263 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15264#endif // !DOCUMENTATION
15265
15266#ifndef DOCUMENTATION
15267 AsmGenericFormat.setDataPrototype(
15268 "SgAsmGenericFormat::ExecPurpose", "purpose", "= SgAsmGenericFormat::PURPOSE_EXECUTABLE",
15269 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15270#endif // !DOCUMENTATION
15271
15272#ifndef DOCUMENTATION
15273 AsmGenericFormat.setDataPrototype(
15274 "Rose::BinaryAnalysis::ByteOrder::Endianness", "sex", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
15275 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15276#endif // !DOCUMENTATION
15277
15278#ifndef DOCUMENTATION
15279 AsmGenericFormat.setDataPrototype(
15280 "unsigned", "version", "= 0",
15281 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15282#endif // !DOCUMENTATION
15283
15284#ifndef DOCUMENTATION
15285 AsmGenericFormat.setDataPrototype(
15286 "bool", "isCurrentVersion", "= false",
15287 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15288#endif // !DOCUMENTATION
15289
15290#ifndef DOCUMENTATION
15291 AsmGenericFormat.setDataPrototype(
15292 "SgAsmGenericFormat::ExecABI", "abi", "= SgAsmGenericFormat::ABI_UNSPECIFIED",
15293 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15294#endif // !DOCUMENTATION
15295
15296#ifndef DOCUMENTATION
15297 AsmGenericFormat.setDataPrototype(
15298 "unsigned", "abiVersion", "= 0",
15299 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15300#endif // !DOCUMENTATION
15301
15302#ifndef DOCUMENTATION
15303 AsmGenericFormat.setDataPrototype(
15304 "size_t", "wordSize", "= 0",
15305 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15306#endif // !DOCUMENTATION
15307
15308 DECLARE_OTHERS(AsmGenericFormat);
15309#if defined(SgAsmGenericFormat_OTHERS) || defined(DOCUMENTATION)
15310
15311 //----------------------- Boost serialization for SgAsmGenericFormat -----------------------
15312#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15313private:
15314 friend class boost::serialization::access;
15315
15316 template<class S>
15317 void serialize(S &s, const unsigned /*version*/) {
15318 debugSerializationBegin("SgAsmGenericFormat");
15319 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15320 s & BOOST_SERIALIZATION_NVP(p_family);
15321 s & BOOST_SERIALIZATION_NVP(p_purpose);
15322 s & BOOST_SERIALIZATION_NVP(p_sex);
15323 s & BOOST_SERIALIZATION_NVP(p_version);
15324 s & BOOST_SERIALIZATION_NVP(p_isCurrentVersion);
15325 s & BOOST_SERIALIZATION_NVP(p_abi);
15326 s & BOOST_SERIALIZATION_NVP(p_abiVersion);
15327 s & BOOST_SERIALIZATION_NVP(p_wordSize);
15328 debugSerializationEnd("SgAsmGenericFormat");
15329 }
15330#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15331public:
15332public:
15340public:
15348public:
15356public:
15360 unsigned const& get_version() const;
15361 void set_version(unsigned const&);
15364public:
15371 bool const& get_isCurrentVersion() const;
15372 void set_isCurrentVersion(bool const&);
15375public:
15383public:
15387 unsigned const& get_abiVersion() const;
15388 void set_abiVersion(unsigned const&);
15391public:
15395 size_t const& get_wordSize() const;
15396 void set_wordSize(size_t const&);
15398public:
15400 void dump(FILE*, const char *prefix, ssize_t idx) const;
15401
15403 // Deprecated 2023-11
15405public:
15406 bool get_is_current_version() const ROSE_DEPRECATED("use get_isCurrentVersion");
15407 void set_is_current_version(bool) ROSE_DEPRECATED("use set_isCurrentVersion");
15408 unsigned get_abi_version() const ROSE_DEPRECATED("use get_abiVersion");
15409 void set_abi_version(unsigned) ROSE_DEPRECATED("use set_abiVersion");
15410 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
15411 void set_word_size(size_t) ROSE_DEPRECATED("use set_wordSize");
15412public:
15415
15416public:
15419
15420protected:
15428#endif // SgAsmGenericFormat_OTHERS
15429#ifdef DOCUMENTATION
15430};
15431#endif // DOCUMENTATION
15432
15433
15435// SgAsmGenericFileList -- MACHINE GENERATED; DO NOT MODIFY --
15437
15438DECLARE_LEAF_CLASS(AsmGenericFileList);
15439IS_SERIALIZABLE(AsmGenericFileList);
15440
15441#ifndef DOCUMENTATION
15442AsmGenericFileList.useSmallHeader(true);
15443#endif // !DOCUMENTATION
15444
15445DECLARE_HEADERS(AsmGenericFileList);
15446#if defined(SgAsmGenericFileList_HEADERS) || defined(DOCUMENTATION)
15447#include <sageContainer.h>
15448#endif // SgAsmGenericFileList_HEADERS
15449
15450#ifdef DOCUMENTATION
15456#endif // DOCUMENTATION
15457
15458#ifndef DOCUMENTATION
15459 AsmGenericFileList.setDataPrototype(
15460 "SgAsmGenericFilePtrList", "files", "",
15461 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15462#endif // !DOCUMENTATION
15463
15464 DECLARE_OTHERS(AsmGenericFileList);
15465#if defined(SgAsmGenericFileList_OTHERS) || defined(DOCUMENTATION)
15466
15467 //----------------------- Boost serialization for SgAsmGenericFileList -----------------------
15468#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15469private:
15470 friend class boost::serialization::access;
15471
15472 template<class S>
15473 void serialize(S &s, const unsigned /*version*/) {
15474 debugSerializationBegin("SgAsmGenericFileList");
15475 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
15476 s & BOOST_SERIALIZATION_NVP(p_files);
15477 debugSerializationEnd("SgAsmGenericFileList");
15478 }
15479#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15480public:
15481public:
15485 SgAsmGenericFilePtrList const& get_files() const;
15486 SgAsmGenericFilePtrList& get_files();
15487 void set_files(SgAsmGenericFilePtrList const&);
15490public:
15493
15494public:
15497
15498protected:
15506#endif // SgAsmGenericFileList_OTHERS
15507#ifdef DOCUMENTATION
15508};
15509#endif // DOCUMENTATION
15510
15511
15513// SgAsmGenericFile -- MACHINE GENERATED; DO NOT MODIFY --
15515
15516DECLARE_LEAF_CLASS(AsmGenericFile);
15517IS_SERIALIZABLE(AsmGenericFile);
15518
15519#ifndef DOCUMENTATION
15520AsmGenericFile.useSmallHeader(true);
15521#endif // !DOCUMENTATION
15522
15523DECLARE_HEADERS(AsmGenericFile);
15524#if defined(SgAsmGenericFile_HEADERS) || defined(DOCUMENTATION)
15525#include <Rose/BinaryAnalysis/Address.h>
15526#include <Rose/BinaryAnalysis/MemoryMap.h>
15527#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
15528
15529#include "DataConversion.h"
15530#include "StatSerializer.h" // non-intrusive serialization of struct stat
15531
15532#ifdef ROSE_SgAsmGenericFile_IMPL
15533#include <SgAsmDwarfCompilationUnitList.h>
15534#include <SgAsmGenericSectionList.h>
15535#include <SgAsmGenericHeaderList.h>
15536#endif
15537
15538#include <sys/stat.h>
15539#endif // SgAsmGenericFile_HEADERS
15540
15541#ifdef DOCUMENTATION
15544#endif // DOCUMENTATION
15545
15546#ifndef DOCUMENTATION
15547 AsmGenericFile.setDataPrototype(
15548 "SgAsmDwarfCompilationUnitList*", "dwarfInfo", "= nullptr",
15549 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15550#endif // !DOCUMENTATION
15551
15552#ifndef DOCUMENTATION
15553 AsmGenericFile.setDataPrototype(
15554 "std::string", "name", "",
15555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15556#endif // !DOCUMENTATION
15557
15558#ifndef DOCUMENTATION
15559 AsmGenericFile.setDataPrototype(
15560 "int", "fd", "= -1",
15561 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15562#endif // !DOCUMENTATION
15563
15564#ifndef DOCUMENTATION
15565 AsmGenericFile.setDataPrototype(
15566 "struct stat", "sb", "",
15567 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15568#endif // !DOCUMENTATION
15569
15570#ifndef DOCUMENTATION
15571 AsmGenericFile.setDataPrototype(
15572 "SgFileContentList", "data", "",
15573 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15574#endif // !DOCUMENTATION
15575
15576#ifndef DOCUMENTATION
15577 AsmGenericFile.setDataPrototype(
15578 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
15579 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15580#endif // !DOCUMENTATION
15581
15582#ifndef DOCUMENTATION
15583 AsmGenericFile.setDataPrototype(
15584 "SgAsmGenericSectionList*", "holes", "= createAndParent<SgAsmGenericSectionList>(this)",
15585 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15586#endif // !DOCUMENTATION
15587
15588#ifndef DOCUMENTATION
15589 AsmGenericFile.setDataPrototype(
15590 "bool", "truncateZeros", "= false",
15591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15592#endif // !DOCUMENTATION
15593
15594#ifndef DOCUMENTATION
15595 AsmGenericFile.setDataPrototype(
15596 "bool", "trackingReferences", "= true",
15597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15598#endif // !DOCUMENTATION
15599
15600#ifndef DOCUMENTATION
15601 AsmGenericFile.setDataPrototype(
15602 "Rose::BinaryAnalysis::AddressIntervalSet", "referencedExtents", "",
15603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15604#endif // !DOCUMENTATION
15605
15606#ifndef DOCUMENTATION
15607 AsmGenericFile.setDataPrototype(
15608 "bool", "neuter", "= false",
15609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15610#endif // !DOCUMENTATION
15611
15612 DECLARE_OTHERS(AsmGenericFile);
15613#if defined(SgAsmGenericFile_OTHERS) || defined(DOCUMENTATION)
15614
15615 //----------------------- Boost serialization for SgAsmGenericFile -----------------------
15616#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15617private:
15618 friend class boost::serialization::access;
15619
15620 template<class S>
15621 void serialize(S &s, const unsigned /*version*/) {
15622 debugSerializationBegin("SgAsmGenericFile");
15623 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15624 s & BOOST_SERIALIZATION_NVP(p_dwarfInfo);
15625 s & BOOST_SERIALIZATION_NVP(p_name);
15626 s & BOOST_SERIALIZATION_NVP(p_sb);
15627 s & BOOST_SERIALIZATION_NVP(p_data);
15628 s & BOOST_SERIALIZATION_NVP(p_headers);
15629 s & BOOST_SERIALIZATION_NVP(p_holes);
15630 s & BOOST_SERIALIZATION_NVP(p_truncateZeros);
15631 s & BOOST_SERIALIZATION_NVP(p_trackingReferences);
15632 s & BOOST_SERIALIZATION_NVP(p_referencedExtents);
15633 s & BOOST_SERIALIZATION_NVP(p_neuter);
15634 debugSerializationEnd("SgAsmGenericFile");
15635 }
15636#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15638 // Local types
15640public:
15643 ADDRSP_MEMORY = 0x0001,
15644 ADDRSP_FILE = 0x0002,
15645 ADDRSP_ALL = 0x0003
15646 };
15647
15654
15656 // Properties
15658public:
15659public:
15667public:
15671 std::string const& get_name() const;
15672 void set_name(std::string const&);
15675public:
15681 int const& get_fd() const;
15682 void set_fd(int const&);
15685public:
15686 struct stat const& get_sb() const;
15687
15688public:
15696public:
15706public:
15717public:
15721 bool const& get_truncateZeros() const;
15722 void set_truncateZeros(bool const&);
15725public:
15729 bool const& get_trackingReferences() const;
15730 void set_trackingReferences(bool const&);
15733public:
15741public:
15745 bool const& get_neuter() const;
15746 void set_neuter(bool const&);
15749 // Non-property data members
15751private:
15752 mutable Rose::BinaryAnalysis::AddressIntervalSet *p_unreferenced_cache = nullptr;
15753 DataConverter *p_data_converter = nullptr;
15754
15756 // Functions
15758public:
15760 SgAsmGenericFile* parse(std::string file_name);
15761
15762 void reallocate();
15763
15770 void unparse(std::ostream&) const;
15771
15773 void extendToEof(std::ostream&) const;
15774
15776 void dump(FILE*) const;
15777
15784 void dumpAll(bool in_cwd=true, const char *ext=NULL);
15785
15787 void dumpAll(const std::string& dumpname);
15788
15791
15794
15806
15809
15817 size_t readContent(Rose::BinaryAnalysis::Address offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
15818
15826 Rose::BinaryAnalysis::Address size, bool strict=true);
15827
15836
15844 std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true);
15845
15847 const SgFileContentList& content() { return p_data; }
15848
15856
15858 SgAsmGenericSectionPtrList get_mappedSections() const;
15859
15861 SgAsmGenericSectionPtrList get_sections(bool include_holes=true) const;
15862
15864 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
15865
15867 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep='\0') const;
15868
15874
15879 SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const;
15880
15885 SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va) const;
15886
15891 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
15892
15898 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
15899
15906
15912
15918
15925
15936 static SgAsmGenericSection *bestSectionByVa(const SgAsmGenericSectionPtrList &sections, Rose::BinaryAnalysis::Address va);
15937
15978 Elasticity);
15987
15992
15995
16002
16007
16012
16015
16018
16023 const char *formatName() const;
16024
16025protected:
16026 // Some extra clean-up actions on destruction
16027 virtual void destructorHelper() override;
16028
16030 // Deprecated 2023-11
16032public:
16033 SgAsmDwarfCompilationUnitList* get_dwarf_info() const ROSE_DEPRECATED("use get_dwarfInfo");
16034 void set_dwarf_info(SgAsmDwarfCompilationUnitList*) ROSE_DEPRECATED("use set_dwarfInfo");
16035 bool get_truncate_zeros() const ROSE_DEPRECATED("use get_truncateZeros");
16036 void set_truncate_zeros(bool) ROSE_DEPRECATED("use set_truncateZeros");
16037 bool get_tracking_references() const ROSE_DEPRECATED("use get_trackingReferences");
16038 void set_tracking_references(bool) ROSE_DEPRECATED("use set_trackingReferences");
16039 const Rose::BinaryAnalysis::AddressIntervalSet& get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
16040 void set_referenced_extents(const Rose::BinaryAnalysis::AddressIntervalSet&) ROSE_DEPRECATED("use set_referencedExtents");
16041 void extend_to_eof(std::ostream&) const ROSE_DEPRECATED("use extendToEof");
16042 void dump_all(bool in_cwd=true, const char *ext=NULL) ROSE_DEPRECATED("use dumpAll");
16043 void dump_all(const std::string& dumpname) ROSE_DEPRECATED("use dumpAll");
16044 const Rose::BinaryAnalysis::AddressIntervalSet& get_unreferenced_extents() const
16045 ROSE_DEPRECATED("use get_unreferencedExtents");
16046 void mark_referenced_extent(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
16047 ROSE_DEPRECATED("use markReferencedExtent");
16048 DataConverter* get_data_converter() const ROSE_DEPRECATED("use get_dataConverter");
16049 void set_data_converter(DataConverter*) ROSE_DEPRECATED("use set_dataConverter");
16050 Rose::BinaryAnalysis::Address get_current_size() const ROSE_DEPRECATED("use get_currentSize");
16051 Rose::BinaryAnalysis::Address get_orig_size() const ROSE_DEPRECATED("use get_originalSize");
16052 size_t read_content(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
16053 ROSE_DEPRECATED("use readContent");
16054 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, void*,
16055 Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContent");
16056 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, bool=true)
16057 ROSE_DEPRECATED("use readContentString");
16058 std::string read_content_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentString");
16059 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
16060 SgAsmGenericSectionPtrList get_sections_by_id(int id) const ROSE_DEPRECATED("use get_sectionById");
16061 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char='\0') const ROSE_DEPRECATED("use get_sectionsByName");
16062 SgAsmGenericSectionPtrList get_sections_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address) const
16063 ROSE_DEPRECATED("use get_sectionsByOffset");
16064 SgAsmGenericSectionPtrList get_sections_by_rva(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByRva");
16065 SgAsmGenericSectionPtrList get_sections_by_va(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByVa");
16066 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
16067 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
16068 ROSE_DEPRECATED("use get_sectionByName");
16069 SgAsmGenericSection*get_section_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16070 ROSE_DEPRECATED("use get_sectionByOffset");
16071 SgAsmGenericSection *get_section_by_rva(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16072 ROSE_DEPRECATED("use get_sectionByRva");
16073 SgAsmGenericSection *get_section_by_va(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16074 ROSE_DEPRECATED("use get_sectionByVa");
16075 SgAsmGenericSection *get_best_section_by_va(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16076 ROSE_DEPRECATED("use get_bestSectionByVa");
16077 static SgAsmGenericSection *best_section_by_va(const SgAsmGenericSectionPtrList&, Rose::BinaryAnalysis::Address)
16078 ROSE_DEPRECATED("use bestSectionByVa");
16079 void shift_extend(SgAsmGenericSection*, Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address, AddressSpace, Elasticity)
16080 ROSE_DEPRECATED("use shiftExtend");
16081 void shift_extend(SgAsmGenericSection*, Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
16082 ROSE_DEPRECATED("use shiftExtend");
16083 Rose::BinaryAnalysis::Address get_next_section_offset(Rose::BinaryAnalysis::Address)
16084 ROSE_DEPRECATED("use get_nextSectionOffset");
16085 void add_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use addHole");
16086 void remove_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use remoeHole");
16087 void fill_holes() ROSE_DEPRECATED("use fillHoles");
16088 void unfill_holes() ROSE_DEPRECATED("use unfillHoles");
16089 void add_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use addHeader");
16090 void remove_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use removeHeader");
16091 const char *format_name() const ROSE_DEPRECATED("use formatName");
16092public:
16095
16096public:
16099
16100protected:
16108#endif // SgAsmGenericFile_OTHERS
16109#ifdef DOCUMENTATION
16110};
16111#endif // DOCUMENTATION
16112
16113
16115// SgAsmGenericDLLList -- MACHINE GENERATED; DO NOT MODIFY --
16117
16118DECLARE_LEAF_CLASS(AsmGenericDLLList);
16119IS_SERIALIZABLE(AsmGenericDLLList);
16120
16121#ifndef DOCUMENTATION
16122AsmGenericDLLList.useSmallHeader(true);
16123#endif // !DOCUMENTATION
16124
16125DECLARE_HEADERS(AsmGenericDLLList);
16126#if defined(SgAsmGenericDLLList_HEADERS) || defined(DOCUMENTATION)
16127#include <sageContainer.h>
16128#endif // SgAsmGenericDLLList_HEADERS
16129
16130#ifdef DOCUMENTATION
16136#endif // DOCUMENTATION
16137
16138#ifndef DOCUMENTATION
16139 AsmGenericDLLList.setDataPrototype(
16140 "SgAsmGenericDLLPtrList", "dlls", "",
16141 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16142#endif // !DOCUMENTATION
16143
16144 DECLARE_OTHERS(AsmGenericDLLList);
16145#if defined(SgAsmGenericDLLList_OTHERS) || defined(DOCUMENTATION)
16146
16147 //----------------------- Boost serialization for SgAsmGenericDLLList -----------------------
16148#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16149private:
16150 friend class boost::serialization::access;
16151
16152 template<class S>
16153 void serialize(S &s, const unsigned /*version*/) {
16154 debugSerializationBegin("SgAsmGenericDLLList");
16155 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16156 s & BOOST_SERIALIZATION_NVP(p_dlls);
16157 debugSerializationEnd("SgAsmGenericDLLList");
16158 }
16159#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16160public:
16161public:
16165 SgAsmGenericDLLPtrList const& get_dlls() const;
16166 SgAsmGenericDLLPtrList& get_dlls();
16167 void set_dlls(SgAsmGenericDLLPtrList const&);
16170public:
16173
16174public:
16177
16178protected:
16186#endif // SgAsmGenericDLLList_OTHERS
16187#ifdef DOCUMENTATION
16188};
16189#endif // DOCUMENTATION
16190
16191
16193// SgAsmGenericDLL -- MACHINE GENERATED; DO NOT MODIFY --
16195
16196DECLARE_LEAF_CLASS(AsmGenericDLL);
16197IS_SERIALIZABLE(AsmGenericDLL);
16198
16199#ifndef DOCUMENTATION
16200AsmGenericDLL.useSmallHeader(true);
16201#endif // !DOCUMENTATION
16202
16203DECLARE_HEADERS(AsmGenericDLL);
16204#if defined(SgAsmGenericDLL_HEADERS) || defined(DOCUMENTATION)
16205#include <sageContainer.h>
16206
16207#ifdef ROSE_SgAsmGenericDLL_IMPL
16208#include <SgAsmBasicString.h>
16209#endif
16210#endif // SgAsmGenericDLL_HEADERS
16211
16212#ifdef DOCUMENTATION
16215#endif // DOCUMENTATION
16216
16217#ifndef DOCUMENTATION
16218 AsmGenericDLL.setDataPrototype(
16219 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
16220 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16221#endif // !DOCUMENTATION
16222
16223#ifndef DOCUMENTATION
16224 AsmGenericDLL.setDataPrototype(
16225 "SgStringList", "symbols", "",
16226 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16227#endif // !DOCUMENTATION
16228
16229 DECLARE_OTHERS(AsmGenericDLL);
16230#if defined(SgAsmGenericDLL_OTHERS) || defined(DOCUMENTATION)
16231
16232 //----------------------- Boost serialization for SgAsmGenericDLL -----------------------
16233#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16234private:
16235 friend class boost::serialization::access;
16236
16237 template<class S>
16238 void serialize(S &s, const unsigned /*version*/) {
16239 debugSerializationBegin("SgAsmGenericDLL");
16240 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16241 s & BOOST_SERIALIZATION_NVP(p_name);
16242 s & BOOST_SERIALIZATION_NVP(p_symbols);
16243 debugSerializationEnd("SgAsmGenericDLL");
16244 }
16245#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16246public:
16247public:
16254public:
16258 SgStringList const& get_symbols() const;
16259 void set_symbols(SgStringList const&);
16261public:
16264
16266 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
16267
16269 void addSymbol(const std::string&);
16270
16272 // Deprecated 2023-11
16274public:
16275 void add_symbol(const std::string&) ROSE_DEPRECATED("use addSymbol");
16276public:
16279
16280public:
16283
16284protected:
16292#endif // SgAsmGenericDLL_OTHERS
16293#ifdef DOCUMENTATION
16294};
16295#endif // DOCUMENTATION
16296
16297
16299// SgAsmFunction -- MACHINE GENERATED; DO NOT MODIFY --
16301
16302DECLARE_LEAF_CLASS(AsmFunction);
16303IS_SERIALIZABLE(AsmFunction);
16304
16305#ifndef DOCUMENTATION
16306AsmFunction.useSmallHeader(true);
16307#endif // !DOCUMENTATION
16308
16309DECLARE_HEADERS(AsmFunction);
16310#if defined(SgAsmFunction_HEADERS) || defined(DOCUMENTATION)
16311#include <Rose/BinaryAnalysis/Address.h>
16312#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
16313#include <sageContainer.h>
16314
16315#ifdef ROSE_SgAsmFunction_IMPL
16316#include <SgAsmInstruction.h>
16317#endif
16318#endif // SgAsmFunction_HEADERS
16319
16320#ifdef DOCUMENTATION
16337#endif // DOCUMENTATION
16338
16339#ifndef DOCUMENTATION
16340 AsmFunction.setDataPrototype(
16341 "std::string", "name", "",
16342 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16343#endif // !DOCUMENTATION
16344
16345#ifndef DOCUMENTATION
16346 AsmFunction.setDataPrototype(
16347 "unsigned", "reason", "= SgAsmFunction::FUNC_NONE",
16348 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16349#endif // !DOCUMENTATION
16350
16351#ifndef DOCUMENTATION
16352 AsmFunction.setDataPrototype(
16353 "std::string", "reasonComment", "",
16354 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16355#endif // !DOCUMENTATION
16356
16357#ifndef DOCUMENTATION
16358 AsmFunction.setDataPrototype(
16359 "SgAsmFunction::function_kind_enum", "functionKind", "= SgAsmFunction::e_unknown",
16360 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16361#endif // !DOCUMENTATION
16362
16363#ifndef DOCUMENTATION
16364 AsmFunction.setDataPrototype(
16365 "SgAsmFunction::MayReturn", "mayReturn", "= SgAsmFunction::RET_UNKNOWN",
16366 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16367#endif // !DOCUMENTATION
16368
16369#ifndef DOCUMENTATION
16370 AsmFunction.setDataPrototype(
16371 "std::string", "nameMd5", "",
16372 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16373#endif // !DOCUMENTATION
16374
16375#ifndef DOCUMENTATION
16376 AsmFunction.setDataPrototype(
16377 "SgAsmStatementPtrList", "statementList", "",
16378 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16379#endif // !DOCUMENTATION
16380
16381#ifndef DOCUMENTATION
16382 AsmFunction.setDataPrototype(
16383 "SgAsmStatementPtrList", "dest", "",
16384 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16385#endif // !DOCUMENTATION
16386
16387#ifndef DOCUMENTATION
16388 AsmFunction.setDataPrototype(
16389 "Rose::BinaryAnalysis::Address", "entryVa", "= 0",
16390 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16391#endif // !DOCUMENTATION
16392
16393#ifndef DOCUMENTATION
16394 AsmFunction.setDataPrototype(
16395 "SgSymbolTable*", "symbolTable", "= nullptr",
16396 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16397#endif // !DOCUMENTATION
16398
16399#ifndef DOCUMENTATION
16400 AsmFunction.setDataPrototype(
16401 "size_t", "cachedVertex", "= (size_t)(-1)",
16402 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16403#endif // !DOCUMENTATION
16404
16405#ifndef DOCUMENTATION
16406 AsmFunction.setDataPrototype(
16407 "int64_t", "stackDelta", "= SgAsmInstruction::INVALID_STACK_DELTA",
16408 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16409#endif // !DOCUMENTATION
16410
16411#ifndef DOCUMENTATION
16412 AsmFunction.setDataPrototype(
16413 "std::string", "callingConvention", "",
16414 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16415#endif // !DOCUMENTATION
16416
16417 DECLARE_OTHERS(AsmFunction);
16418#if defined(SgAsmFunction_OTHERS) || defined(DOCUMENTATION)
16419
16420 //----------------------- Boost serialization for SgAsmFunction -----------------------
16421#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16422private:
16423 friend class boost::serialization::access;
16424
16425 template<class S>
16426 void serialize(S &s, const unsigned /*version*/) {
16427 debugSerializationBegin("SgAsmFunction");
16428 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
16429 s & BOOST_SERIALIZATION_NVP(p_name);
16430 s & BOOST_SERIALIZATION_NVP(p_reason);
16431 s & BOOST_SERIALIZATION_NVP(p_reasonComment);
16432 s & BOOST_SERIALIZATION_NVP(p_functionKind);
16433 s & BOOST_SERIALIZATION_NVP(p_mayReturn);
16434 s & BOOST_SERIALIZATION_NVP(p_nameMd5);
16435 s & BOOST_SERIALIZATION_NVP(p_statementList);
16436 s & BOOST_SERIALIZATION_NVP(p_dest);
16437 s & BOOST_SERIALIZATION_NVP(p_entryVa);
16438 s & BOOST_SERIALIZATION_NVP(p_cachedVertex);
16439 s & BOOST_SERIALIZATION_NVP(p_stackDelta);
16440 s & BOOST_SERIALIZATION_NVP(p_callingConvention);
16441 debugSerializationEnd("SgAsmFunction");
16442 }
16443#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16445 // Local types
16447public:
16455
16460 // NOTE: If you add more here, then fix Partitioner::parse_switches()
16461 // Also fix SgAsmFunction::reason_key()
16462 FUNC_NONE = 0x00000000,
16463 FUNC_THUNK_TARGET= 0x00004000,
16465 = 0x00008000,
16466 FUNC_ENTRY_POINT = 0x00010000,
16467 FUNC_CALL_TARGET = 0x00020000,
16470 FUNC_CALL_INSN = 0x00040000,
16476 FUNC_EH_FRAME = 0x00080000,
16477 FUNC_SYMBOL = 0x00100000,
16478 FUNC_PATTERN = 0x00200000,
16483 FUNC_GRAPH = 0x00400000,
16487 FUNC_USERDEF = 0x00800000,
16488 FUNC_PADDING = 0x01000000,
16493 FUNC_DISCONT = 0x02000000,
16496 FUNC_INSNHEAD = 0x04000000,
16497 FUNC_IMPORT = 0x08000000,
16500 FUNC_LEFTOVERS = 0x10000000,
16504 FUNC_INTRABLOCK = 0x20000000,
16512 FUNC_THUNK = 0x40000000,
16521 FUNC_EXPORT = 0x80000000,
16523 FUNC_DEFAULT = 0xefff80ff,
16525 /*========= Miscellaneous Reasons ===========================================================================
16526 * The first half of the range (1-127, inclusive) is used for algorithms defined by ROSE. The second half is
16527 * availalble for users to use as they see fit. */
16528 FUNC_MISCMASK = 0x000000ff,
16534 FUNC_INTERPADFUNC = 1,
16541 FUNC_INSN_RO_DATA = 6,
16543 };
16544
16547 e_unknown = 0,
16548 e_standard = 1,
16549 e_library = 2,
16550 e_imported = 3,
16551 e_thunk = 4,
16552 e_last
16553 };
16554
16556 // Properties
16558public:
16559public:
16565 std::string const& get_name() const;
16566 void set_name(std::string const&);
16569public:
16576 unsigned const& get_reason() const;
16577 void set_reason(unsigned const&);
16580public:
16588 std::string const& get_reasonComment() const;
16589 void set_reasonComment(std::string const&);
16592public:
16602public:
16610public:
16616 std::string const& get_nameMd5() const;
16617 void set_nameMd5(std::string const&);
16620public:
16626 SgAsmStatementPtrList const& get_statementList() const;
16627 SgAsmStatementPtrList& get_statementList();
16628 void set_statementList(SgAsmStatementPtrList const&);
16630 // FIXME[Robb P Matzke 2017-02-13]: unused?
16631public:
16632 SgAsmStatementPtrList const& get_dest() const;
16633 void set_dest(SgAsmStatementPtrList const&);
16634
16635public:
16646public:
16656 // FIXME[Robb P Matzke 2017-02-13]: what is this?
16657public:
16658 size_t const& get_cachedVertex() const;
16659 void set_cachedVertex(size_t const&);
16660
16661public:
16671 int64_t const& get_stackDelta() const;
16672 void set_stackDelta(int64_t const&);
16675public:
16684 std::string const& get_callingConvention() const;
16685 void set_callingConvention(std::string const&);
16688 // Functions
16690public:
16693
16698
16704
16708 static std::string reasonKey(const std::string &prefix = "");
16709
16711 std::string reasonString(bool pad) const;
16712
16716 static std::string reasonString(bool pad, unsigned reason);
16717
16720 public:
16721 virtual ~NodeSelector() {}
16722 virtual bool operator()(SgNode*) = 0;
16723 };
16724
16765 Rose::BinaryAnalysis::Address *hi_addr=NULL, NodeSelector *selector=NULL);
16766
16772 bool get_sha1(uint8_t digest[20]/*out*/, NodeSelector *selector=NULL);
16773
16775 // Deprecated 2023-11
16777public:
16778 function_kind_enum get_function_kind() const ROSE_DEPRECATED("use get_functionKind");
16779 void set_function_kind(function_kind_enum) ROSE_DEPRECATED("use set_functionKind");
16780 MayReturn get_may_return() const ROSE_DEPRECATED("use get_mayReturn");
16781 void set_may_return(MayReturn) ROSE_DEPRECATED("use set_mayReturn");
16782 const std::string& get_name_md5() const ROSE_DEPRECATED("use get_nameMd5");
16783 void set_name_md5(const std::string&) ROSE_DEPRECATED("use set_nameMd5");
16784 Rose::BinaryAnalysis::Address get_entry_va() const ROSE_DEPRECATED("use get_entryVa");
16785 void set_entry_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_entryVa");
16786 SgSymbolTable* get_symbol_table() const ROSE_DEPRECATED("use get_symbolTable");
16787 void set_symbol_table(SgSymbolTable*) ROSE_DEPRECATED("use set_symbolTable");
16788 size_t get_cached_vertex() const ROSE_DEPRECATED("use get_cachedVertex");
16789 void set_cached_vertex(size_t) ROSE_DEPRECATED("use set_cachedVertex");
16790 void append_statement(SgAsmStatement*) ROSE_DEPRECATED("use appendStatement");
16791 void remove_statement(SgAsmStatement* statement) ROSE_DEPRECATED("use removeStatement");
16792 SgAsmBlock* get_entry_block() const ROSE_DEPRECATED("use get_entryBlock");
16793 static std::string reason_key(const std::string &prefix="") ROSE_DEPRECATED("use reasonKey");
16794 std::string reason_str(bool) const ROSE_DEPRECATED("use reasonString");
16795 static std::string reason_str(bool, unsigned) ROSE_DEPRECATED("use reasonString");
16796public:
16798 virtual ~SgAsmFunction();
16799
16800public:
16803
16804public:
16806 SgAsmFunction(Rose::BinaryAnalysis::Address const& address,
16807 std::string const& name,
16808 unsigned const& reason,
16809 SgAsmFunction::function_kind_enum const& functionKind);
16810
16811protected:
16819#endif // SgAsmFunction_OTHERS
16820#ifdef DOCUMENTATION
16821};
16822#endif // DOCUMENTATION
16823
16824
16826// SgAsmSynthesizedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
16828
16829#ifndef DOCUMENTATION
16830AstNodeClass& AsmSynthesizedDeclaration = nonTerminalConstructor(
16831 "AsmSynthesizedDeclaration",
16832 *this,
16833 "AsmSynthesizedDeclaration",
16834 "AsmSynthesizedDeclarationTag",
16835 SubclassListBuilder()
16836 | AsmFunction
16837 | AsmSynthesizedDataStructureDeclaration
16838 | AsmSynthesizedFieldDeclaration
16839 , false);
16840assert(AsmSynthesizedDeclaration.associatedGrammar != nullptr);
16841AsmSynthesizedDeclaration.setCppCondition("!defined(DOCUMENTATION)");
16842AsmSynthesizedDeclaration.isBoostSerializable(true);
16843AsmSynthesizedDeclaration.setAutomaticGenerationOfConstructor(false);
16844AsmSynthesizedDeclaration.setAutomaticGenerationOfDestructor(false);
16845#endif // !DOCUMENTATION
16846
16847#ifndef DOCUMENTATION
16848AsmSynthesizedDeclaration.useSmallHeader(true);
16849#endif // !DOCUMENTATION
16850
16851#ifdef DOCUMENTATION
16859#endif // DOCUMENTATION
16860
16861 DECLARE_OTHERS(AsmSynthesizedDeclaration);
16862#if defined(SgAsmSynthesizedDeclaration_OTHERS) || defined(DOCUMENTATION)
16863
16864 //----------------------- Boost serialization for SgAsmSynthesizedDeclaration -----------------------
16865#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16866private:
16867 friend class boost::serialization::access;
16868
16869 template<class S>
16870 void serialize(S &s, const unsigned /*version*/) {
16871 debugSerializationBegin("SgAsmSynthesizedDeclaration");
16872 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
16873 debugSerializationEnd("SgAsmSynthesizedDeclaration");
16874 }
16875#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16876
16877public:
16880
16881protected:
16884
16885protected:
16888
16889protected:
16897#endif // SgAsmSynthesizedDeclaration_OTHERS
16898#ifdef DOCUMENTATION
16899};
16900#endif // DOCUMENTATION
16901
16902
16904// SgAsmFloatValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
16906
16907DECLARE_LEAF_CLASS(AsmFloatValueExpression);
16908IS_SERIALIZABLE(AsmFloatValueExpression);
16909
16910#ifndef DOCUMENTATION
16911AsmFloatValueExpression.useSmallHeader(true);
16912#endif // !DOCUMENTATION
16913
16914#ifdef DOCUMENTATION
16920#endif // DOCUMENTATION
16921
16922 DECLARE_OTHERS(AsmFloatValueExpression);
16923#if defined(SgAsmFloatValueExpression_OTHERS) || defined(DOCUMENTATION)
16924
16925 //----------------------- Boost serialization for SgAsmFloatValueExpression -----------------------
16926#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16927private:
16928 friend class boost::serialization::access;
16929
16930 template<class S>
16931 void serialize(S &s, const unsigned /*version*/) {
16932 debugSerializationBegin("SgAsmFloatValueExpression");
16933 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
16934 s & BOOST_SERIALIZATION_NVP(p_nativeValue);
16935 s & BOOST_SERIALIZATION_NVP(p_nativeValueIsValid);
16936 debugSerializationEnd("SgAsmFloatValueExpression");
16937 }
16938#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16939private:
16940 // This node stores its primary representation of the value in the p_bitVector of a parent class. However, since we
16941 // often access the value as a native "double", and since converting to/from a bit vector is costly, we want to cache
16942 // the native double value whenever we compute it. ROSETTA does not need to be aware of the cached value since it can
16943 // be recomputed from the bit vector, and in fact, ROSETTA can't handle cache data members because it doesn't
16944 // understand "mutable".
16945 //
16946 // However, Rosebud handles this just fine.
16947private:
16948 mutable double p_nativeValue;
16949
16950public:
16951
16952private:
16953 mutable bool p_nativeValueIsValid;
16954
16955public:
16956public:
16966
16973
16975 void set_nativeValue(double);
16976
16978 double get_nativeValue() const;
16979
16985
16990 void updateNativeValue() const;
16991public:
16994
16995public:
16998
16999protected:
17007#endif // SgAsmFloatValueExpression_OTHERS
17008#ifdef DOCUMENTATION
17009};
17010#endif // DOCUMENTATION
17011
17012
17014// SgAsmFloatType -- MACHINE GENERATED; DO NOT MODIFY --
17016
17017DECLARE_LEAF_CLASS(AsmFloatType);
17018IS_SERIALIZABLE(AsmFloatType);
17019
17020#ifndef DOCUMENTATION
17021AsmFloatType.useSmallHeader(true);
17022#endif // !DOCUMENTATION
17023
17024DECLARE_HEADERS(AsmFloatType);
17025#if defined(SgAsmFloatType_HEADERS) || defined(DOCUMENTATION)
17026#include <Sawyer/BitVector.h>
17027#include <Rose/BitFlags.h>
17028#include <Rose/BinaryAnalysis/ByteOrder.h>
17029#endif // SgAsmFloatType_HEADERS
17030
17031#ifdef DOCUMENTATION
17034#endif // DOCUMENTATION
17035
17036#ifndef DOCUMENTATION
17037 AsmFloatType.setDataPrototype(
17038 "size_t", "significandOffset", "= (size_t)(-1)",
17039 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17040#endif // !DOCUMENTATION
17041
17042#ifndef DOCUMENTATION
17043 AsmFloatType.setDataPrototype(
17044 "size_t", "significandNBits", "= (size_t)(-1)",
17045 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17046#endif // !DOCUMENTATION
17047
17048#ifndef DOCUMENTATION
17049 AsmFloatType.setDataPrototype(
17050 "size_t", "signBitOffset", "= (size_t)(-1)",
17051 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17052#endif // !DOCUMENTATION
17053
17054#ifndef DOCUMENTATION
17055 AsmFloatType.setDataPrototype(
17056 "size_t", "exponentOffset", "= (size_t)(-1)",
17057 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17058#endif // !DOCUMENTATION
17059
17060#ifndef DOCUMENTATION
17061 AsmFloatType.setDataPrototype(
17062 "size_t", "exponentNBits", "= (size_t)(-1)",
17063 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17064#endif // !DOCUMENTATION
17065
17066#ifndef DOCUMENTATION
17067 AsmFloatType.setDataPrototype(
17068 "uint64_t", "exponentBias", "= 0",
17069 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17070#endif // !DOCUMENTATION
17071
17072#ifndef DOCUMENTATION
17073 AsmFloatType.setDataPrototype(
17074 "unsigned", "flags", "= 0",
17075 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17076#endif // !DOCUMENTATION
17077
17078 DECLARE_OTHERS(AsmFloatType);
17079#if defined(SgAsmFloatType_OTHERS) || defined(DOCUMENTATION)
17080
17081 //----------------------- Boost serialization for SgAsmFloatType -----------------------
17082#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17083private:
17084 friend class boost::serialization::access;
17085
17086 template<class S>
17087 void serialize(S &s, const unsigned /*version*/) {
17088 debugSerializationBegin("SgAsmFloatType");
17089 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
17090 s & BOOST_SERIALIZATION_NVP(p_significandOffset);
17091 s & BOOST_SERIALIZATION_NVP(p_significandNBits);
17092 s & BOOST_SERIALIZATION_NVP(p_signBitOffset);
17093 s & BOOST_SERIALIZATION_NVP(p_exponentOffset);
17094 s & BOOST_SERIALIZATION_NVP(p_exponentNBits);
17095 s & BOOST_SERIALIZATION_NVP(p_exponentBias);
17096 s & BOOST_SERIALIZATION_NVP(p_flags);
17097 debugSerializationEnd("SgAsmFloatType");
17098 }
17099#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17100public:
17102 enum Flag {
17103 GRADUAL_UNDERFLOW = 0x00000001,
17104 IMPLICIT_BIT_CONVENTION = 0x00000002
17106
17109
17112
17113public:
17114public:
17115
17116public:
17117
17118public:
17119
17120public:
17121
17122public:
17123
17124public:
17125
17126public:
17127public:
17131 uint64_t exponentBias, Flags flags);
17132
17142
17145
17147 size_t signBit() const;
17148
17150 uint64_t exponentBias() const;
17151
17153 Flags flags() const;
17154
17160
17166 bool gradualUnderflow() const;
17167
17174
17175 // Overrides documented in base class
17176 virtual void check() const override;
17177 virtual std::string toString() const override;
17178public:
17181
17182public:
17185
17186protected:
17194#endif // SgAsmFloatType_OTHERS
17195#ifdef DOCUMENTATION
17196};
17197#endif // DOCUMENTATION
17198
17199
17201// SgAsmScalarType -- MACHINE GENERATED; DO NOT MODIFY --
17203
17204#ifndef DOCUMENTATION
17205AstNodeClass& AsmScalarType = nonTerminalConstructor(
17206 "AsmScalarType",
17207 *this,
17208 "AsmScalarType",
17209 "AsmScalarTypeTag",
17210 SubclassListBuilder()
17211 | AsmFloatType
17212 | AsmIntegerType
17213 | AsmPointerType
17214 , false);
17215assert(AsmScalarType.associatedGrammar != nullptr);
17216AsmScalarType.setCppCondition("!defined(DOCUMENTATION)");
17217AsmScalarType.isBoostSerializable(true);
17218AsmScalarType.setAutomaticGenerationOfConstructor(false);
17219AsmScalarType.setAutomaticGenerationOfDestructor(false);
17220#endif // !DOCUMENTATION
17221
17222#ifndef DOCUMENTATION
17223AsmScalarType.useSmallHeader(true);
17224#endif // !DOCUMENTATION
17225
17226DECLARE_HEADERS(AsmScalarType);
17227#if defined(SgAsmScalarType_HEADERS) || defined(DOCUMENTATION)
17228#include <Rose/BinaryAnalysis/ByteOrder.h>
17229#endif // SgAsmScalarType_HEADERS
17230
17231#ifdef DOCUMENTATION
17234#endif // DOCUMENTATION
17235
17236#ifndef DOCUMENTATION
17237 AsmScalarType.setDataPrototype(
17238 "Rose::BinaryAnalysis::ByteOrder::Endianness", "minorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17239 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17240#endif // !DOCUMENTATION
17241
17242#ifndef DOCUMENTATION
17243 AsmScalarType.setDataPrototype(
17244 "Rose::BinaryAnalysis::ByteOrder::Endianness", "majorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17245 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17246#endif // !DOCUMENTATION
17247
17248#ifndef DOCUMENTATION
17249 AsmScalarType.setDataPrototype(
17250 "size_t", "majorNBytes", "= 0",
17251 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17252#endif // !DOCUMENTATION
17253
17254#ifndef DOCUMENTATION
17255 AsmScalarType.setDataPrototype(
17256 "size_t", "nBits", "= 0",
17257 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17258#endif // !DOCUMENTATION
17259
17260 DECLARE_OTHERS(AsmScalarType);
17261#if defined(SgAsmScalarType_OTHERS) || defined(DOCUMENTATION)
17262
17263 //----------------------- Boost serialization for SgAsmScalarType -----------------------
17264#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17265private:
17266 friend class boost::serialization::access;
17267
17268 template<class S>
17269 void serialize(S &s, const unsigned /*version*/) {
17270 debugSerializationBegin("SgAsmScalarType");
17271 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
17272 s & BOOST_SERIALIZATION_NVP(p_minorOrder);
17273 s & BOOST_SERIALIZATION_NVP(p_majorOrder);
17274 s & BOOST_SERIALIZATION_NVP(p_majorNBytes);
17275 s & BOOST_SERIALIZATION_NVP(p_nBits);
17276 debugSerializationEnd("SgAsmScalarType");
17277 }
17278#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17279public:
17280public:
17281
17282public:
17288public:
17294public:
17299protected:
17305
17306public:
17308 virtual size_t get_nBits() const override;
17309
17312
17315
17317 size_t get_majorNBytes() const;
17318
17319 // Overrides documented in base class
17320 virtual void check() const override;
17321 virtual std::string toString() const override;
17322public:
17325
17326protected:
17329
17330protected:
17338#endif // SgAsmScalarType_OTHERS
17339#ifdef DOCUMENTATION
17340};
17341#endif // DOCUMENTATION
17342
17343
17345// SgAsmType -- MACHINE GENERATED; DO NOT MODIFY --
17347
17348#ifndef DOCUMENTATION
17349AstNodeClass& AsmType = nonTerminalConstructor(
17350 "AsmType",
17351 *this,
17352 "AsmType",
17353 "AsmTypeTag",
17354 SubclassListBuilder()
17355 | AsmScalarType
17356 | AsmVectorType
17357 | AsmVoidType
17358 , false);
17359assert(AsmType.associatedGrammar != nullptr);
17360AsmType.setCppCondition("!defined(DOCUMENTATION)");
17361AsmType.isBoostSerializable(true);
17362AsmType.setAutomaticGenerationOfConstructor(false);
17363AsmType.setAutomaticGenerationOfDestructor(false);
17364#endif // !DOCUMENTATION
17365
17366#ifndef DOCUMENTATION
17367AsmType.useSmallHeader(true);
17368#endif // !DOCUMENTATION
17369
17370#ifdef DOCUMENTATION
17372class SgAsmType: public SgAsmNode {
17373#endif // DOCUMENTATION
17374
17375 DECLARE_OTHERS(AsmType);
17376#if defined(SgAsmType_OTHERS) || defined(DOCUMENTATION)
17377
17378 //----------------------- Boost serialization for SgAsmType -----------------------
17379#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17380private:
17381 friend class boost::serialization::access;
17382
17383 template<class S>
17384 void serialize(S &s, const unsigned /*version*/) {
17385 debugSerializationBegin("SgAsmType");
17386 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
17387 debugSerializationEnd("SgAsmType");
17388 }
17389#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17390private:
17392
17393public:
17401 virtual void check() const;
17402
17408 virtual std::string toString() const {
17409 abort(); // ROSETTA limitation: intended pure virtual
17410 return NULL; // Windows limitation: return value required [Too, 2014-08-11]
17411 }
17412
17414 virtual size_t get_nBits() const {
17415 abort(); // ROSETTA limitation: intended pure virtual
17416 return (size_t)-1; // Windows limitation: return value required [Too, 2014-08-11]
17417 }
17418
17420 virtual size_t get_nBytes() const;
17421
17427 template<class Type> // Type is a subclass of SgAsmType
17428 static Type* registerOrDelete(Type *toInsert) {
17429 ASSERT_not_null(toInsert);
17430 std::string key = toInsert->toString();
17431 Type *retval = dynamic_cast<Type*>(p_typeRegistry.insertMaybe(key, toInsert));
17432 ASSERT_not_null(retval);
17433 if (retval!=toInsert)
17434 delete toInsert;
17435 return retval;
17436 }
17437public:
17439 virtual ~SgAsmType();
17440
17441protected:
17444
17445protected:
17453#endif // SgAsmType_OTHERS
17454#ifdef DOCUMENTATION
17455};
17456#endif // DOCUMENTATION
17457
17458
17460// SgAsmExprListExp -- MACHINE GENERATED; DO NOT MODIFY --
17462
17463DECLARE_LEAF_CLASS(AsmExprListExp);
17464IS_SERIALIZABLE(AsmExprListExp);
17465
17466#ifndef DOCUMENTATION
17467AsmExprListExp.useSmallHeader(true);
17468#endif // !DOCUMENTATION
17469
17470DECLARE_HEADERS(AsmExprListExp);
17471#if defined(SgAsmExprListExp_HEADERS) || defined(DOCUMENTATION)
17472#include <sageContainer.h>
17473#endif // SgAsmExprListExp_HEADERS
17474
17475#ifdef DOCUMENTATION
17478#endif // DOCUMENTATION
17479
17480#ifndef DOCUMENTATION
17481 AsmExprListExp.setDataPrototype(
17482 "SgAsmExpressionPtrList", "expressions", "",
17483 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17484#endif // !DOCUMENTATION
17485
17486 DECLARE_OTHERS(AsmExprListExp);
17487#if defined(SgAsmExprListExp_OTHERS) || defined(DOCUMENTATION)
17488
17489 //----------------------- Boost serialization for SgAsmExprListExp -----------------------
17490#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17491private:
17492 friend class boost::serialization::access;
17493
17494 template<class S>
17495 void serialize(S &s, const unsigned /*version*/) {
17496 debugSerializationBegin("SgAsmExprListExp");
17497 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
17498 s & BOOST_SERIALIZATION_NVP(p_expressions);
17499 debugSerializationEnd("SgAsmExprListExp");
17500 }
17501#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17502public:
17503public:
17510 SgAsmExpressionPtrList const& get_expressions() const;
17511 SgAsmExpressionPtrList& get_expressions();
17512 void set_expressions(SgAsmExpressionPtrList const&);
17515public:
17518
17519public:
17522
17523protected:
17531#endif // SgAsmExprListExp_OTHERS
17532#ifdef DOCUMENTATION
17533};
17534#endif // DOCUMENTATION
17535
17536
17538// SgAsmElfSymverSection -- MACHINE GENERATED; DO NOT MODIFY --
17540
17541DECLARE_LEAF_CLASS(AsmElfSymverSection);
17542IS_SERIALIZABLE(AsmElfSymverSection);
17543
17544#ifndef DOCUMENTATION
17545AsmElfSymverSection.useSmallHeader(true);
17546#endif // !DOCUMENTATION
17547
17548DECLARE_HEADERS(AsmElfSymverSection);
17549#if defined(SgAsmElfSymverSection_HEADERS) || defined(DOCUMENTATION)
17550#include <Rose/BinaryAnalysis/Address.h>
17551
17552#ifdef ROSE_SgAsmElfSymverSection_IMPL
17553#include <SgAsmElfSymverEntryList.h>
17554#endif
17555#endif // SgAsmElfSymverSection_HEADERS
17556
17557#ifdef DOCUMENTATION
17563#endif // DOCUMENTATION
17564
17565#ifndef DOCUMENTATION
17566 AsmElfSymverSection.setDataPrototype(
17567 "SgAsmElfSymverEntryList*", "entries", "= createAndParent<SgAsmElfSymverEntryList>(this)",
17568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17569#endif // !DOCUMENTATION
17570
17571 DECLARE_OTHERS(AsmElfSymverSection);
17572#if defined(SgAsmElfSymverSection_OTHERS) || defined(DOCUMENTATION)
17573
17574 //----------------------- Boost serialization for SgAsmElfSymverSection -----------------------
17575#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17576private:
17577 friend class boost::serialization::access;
17578
17579 template<class S>
17580 void serialize(S &s, const unsigned /*version*/) {
17581 debugSerializationBegin("SgAsmElfSymverSection");
17582 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
17583 s & BOOST_SERIALIZATION_NVP(p_entries);
17584 debugSerializationEnd("SgAsmElfSymverSection");
17585 }
17586#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17587public:
17588public:
17598public:
17601
17603 virtual SgAsmElfSymverSection* parse() override;
17604
17610 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
17611
17613 virtual void unparse(std::ostream&) const override;
17614
17616 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
17617
17619 // Deprecated 2023-11
17621public:
17622 using SgAsmElfSection::calculate_sizes;
17623 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
17624 ROSE_DEPRECATED("use calculateSizes");
17625public:
17628
17629public:
17632
17633protected:
17641#endif // SgAsmElfSymverSection_OTHERS
17642#ifdef DOCUMENTATION
17643};
17644#endif // DOCUMENTATION
17645
17646
17648// SgAsmElfSymverNeededSection -- MACHINE GENERATED; DO NOT MODIFY --
17650
17651DECLARE_LEAF_CLASS(AsmElfSymverNeededSection);
17652IS_SERIALIZABLE(AsmElfSymverNeededSection);
17653
17654#ifndef DOCUMENTATION
17655AsmElfSymverNeededSection.useSmallHeader(true);
17656#endif // !DOCUMENTATION
17657
17658DECLARE_HEADERS(AsmElfSymverNeededSection);
17659#if defined(SgAsmElfSymverNeededSection_HEADERS) || defined(DOCUMENTATION)
17660#include <Rose/BinaryAnalysis/Address.h>
17661
17662#ifdef ROSE_SgAsmElfSymverNeededSection_IMPL
17663#include <SgAsmElfSymverNeededEntryList.h>
17664#endif
17665#endif // SgAsmElfSymverNeededSection_HEADERS
17666
17667#ifdef DOCUMENTATION
17674#endif // DOCUMENTATION
17675
17676#ifndef DOCUMENTATION
17677 AsmElfSymverNeededSection.setDataPrototype(
17678 "SgAsmElfSymverNeededEntryList*", "entries", "= createAndParent<SgAsmElfSymverNeededEntryList>(this)",
17679 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17680#endif // !DOCUMENTATION
17681
17682 DECLARE_OTHERS(AsmElfSymverNeededSection);
17683#if defined(SgAsmElfSymverNeededSection_OTHERS) || defined(DOCUMENTATION)
17684
17685 //----------------------- Boost serialization for SgAsmElfSymverNeededSection -----------------------
17686#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17687private:
17688 friend class boost::serialization::access;
17689
17690 template<class S>
17691 void serialize(S &s, const unsigned /*version*/) {
17692 debugSerializationBegin("SgAsmElfSymverNeededSection");
17693 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
17694 s & BOOST_SERIALIZATION_NVP(p_entries);
17695 debugSerializationEnd("SgAsmElfSymverNeededSection");
17696 }
17697#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17698public:
17699public:
17709public:
17714
17725
17726 using SgAsmElfSection::calculate_sizes;
17731 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
17732
17736 virtual void unparse(std::ostream&) const override;
17737
17739 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
17740
17742 // Deprecated 2023-11
17744public:
17745 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
17746 ROSE_DEPRECATED("use calculateSizes");
17747public:
17750
17751public:
17754
17755protected:
17763#endif // SgAsmElfSymverNeededSection_OTHERS
17764#ifdef DOCUMENTATION
17765};
17766#endif // DOCUMENTATION
17767
17768
17770// SgAsmElfSymverNeededEntryList -- MACHINE GENERATED; DO NOT MODIFY --
17772
17773DECLARE_LEAF_CLASS(AsmElfSymverNeededEntryList);
17774IS_SERIALIZABLE(AsmElfSymverNeededEntryList);
17775
17776#ifndef DOCUMENTATION
17777AsmElfSymverNeededEntryList.useSmallHeader(true);
17778#endif // !DOCUMENTATION
17779
17780DECLARE_HEADERS(AsmElfSymverNeededEntryList);
17781#if defined(SgAsmElfSymverNeededEntryList_HEADERS) || defined(DOCUMENTATION)
17782#include <sageContainer.h>
17783#endif // SgAsmElfSymverNeededEntryList_HEADERS
17784
17785#ifdef DOCUMENTATION
17791#endif // DOCUMENTATION
17792
17793#ifndef DOCUMENTATION
17794 AsmElfSymverNeededEntryList.setDataPrototype(
17795 "SgAsmElfSymverNeededEntryPtrList", "entries", "",
17796 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17797#endif // !DOCUMENTATION
17798
17799 DECLARE_OTHERS(AsmElfSymverNeededEntryList);
17800#if defined(SgAsmElfSymverNeededEntryList_OTHERS) || defined(DOCUMENTATION)
17801
17802 //----------------------- Boost serialization for SgAsmElfSymverNeededEntryList -----------------------
17803#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17804private:
17805 friend class boost::serialization::access;
17806
17807 template<class S>
17808 void serialize(S &s, const unsigned /*version*/) {
17809 debugSerializationBegin("SgAsmElfSymverNeededEntryList");
17810 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
17811 s & BOOST_SERIALIZATION_NVP(p_entries);
17812 debugSerializationEnd("SgAsmElfSymverNeededEntryList");
17813 }
17814#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17815public:
17816public:
17820 SgAsmElfSymverNeededEntryPtrList const& get_entries() const;
17821 SgAsmElfSymverNeededEntryPtrList& get_entries();
17822 void set_entries(SgAsmElfSymverNeededEntryPtrList const&);
17825public:
17828
17829public:
17832
17833protected:
17841#endif // SgAsmElfSymverNeededEntryList_OTHERS
17842#ifdef DOCUMENTATION
17843};
17844#endif // DOCUMENTATION
17845
17846
17848// SgAsmElfSymverNeededEntry -- MACHINE GENERATED; DO NOT MODIFY --
17850
17851DECLARE_LEAF_CLASS(AsmElfSymverNeededEntry);
17852IS_SERIALIZABLE(AsmElfSymverNeededEntry);
17853
17854#ifndef DOCUMENTATION
17855AsmElfSymverNeededEntry.useSmallHeader(true);
17856#endif // !DOCUMENTATION
17857
17858DECLARE_HEADERS(AsmElfSymverNeededEntry);
17859#if defined(SgAsmElfSymverNeededEntry_HEADERS) || defined(DOCUMENTATION)
17860#include <Rose/BinaryAnalysis/ByteOrder.h>
17861
17862#ifdef ROSE_SgAsmElfSymverNeededEntry_IMPL
17863#include <SgAsmElfSymverNeededAuxList.h>
17864#include <SgAsmGenericString.h>
17865#endif
17866#endif // SgAsmElfSymverNeededEntry_HEADERS
17867
17868#ifdef DOCUMENTATION
17871#endif // DOCUMENTATION
17872
17873#ifndef DOCUMENTATION
17874 AsmElfSymverNeededEntry.setDataPrototype(
17875 "size_t", "version", "= 0",
17876 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17877#endif // !DOCUMENTATION
17878
17879#ifndef DOCUMENTATION
17880 AsmElfSymverNeededEntry.setDataPrototype(
17881 "SgAsmGenericString*", "fileName", "= nullptr",
17882 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17883#endif // !DOCUMENTATION
17884
17885#ifndef DOCUMENTATION
17886 AsmElfSymverNeededEntry.setDataPrototype(
17887 "SgAsmElfSymverNeededAuxList*", "entries", "= createAndParent<SgAsmElfSymverNeededAuxList>(this)",
17888 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17889#endif // !DOCUMENTATION
17890
17891 DECLARE_OTHERS(AsmElfSymverNeededEntry);
17892#if defined(SgAsmElfSymverNeededEntry_OTHERS) || defined(DOCUMENTATION)
17893
17894 //----------------------- Boost serialization for SgAsmElfSymverNeededEntry -----------------------
17895#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17896private:
17897 friend class boost::serialization::access;
17898
17899 template<class S>
17900 void serialize(S &s, const unsigned /*version*/) {
17901 debugSerializationBegin("SgAsmElfSymverNeededEntry");
17902 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
17903 s & BOOST_SERIALIZATION_NVP(p_version);
17904 s & BOOST_SERIALIZATION_NVP(p_fileName);
17905 s & BOOST_SERIALIZATION_NVP(p_entries);
17906 debugSerializationEnd("SgAsmElfSymverNeededEntry");
17907 }
17908#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17910 // Local types
17912public:
17913#ifdef _MSC_VER
17914# pragma pack (1)
17915#endif
17916
17919 uint16_t vn_version;
17920 uint16_t vn_cnt;
17921 uint32_t vn_file;
17922 uint32_t vn_aux;
17923 uint32_t vn_next;
17924 }
17925#if !defined(SWIG) && !defined(_MSC_VER)
17926 __attribute__((packed))
17927#endif
17928 ;
17929
17930#ifdef _MSC_VER
17931# pragma pack ()
17932#endif
17933
17935 // Properties
17937public:
17938public:
17944 size_t const& get_version() const;
17945 void set_version(size_t const&);
17948public:
17956public:
17967 // Functions
17969public:
17972
17975
17978
17980 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
17981
17983 // Deprecated 2023-11
17985public:
17986 SgAsmGenericString* get_file_name() const ROSE_DEPRECATED("use get_fileName");
17987 void set_file_name(SgAsmGenericString*) ROSE_DEPRECATED("use set_fileName");
17988public:
17991
17992public:
17995
17996protected:
18004#endif // SgAsmElfSymverNeededEntry_OTHERS
18005#ifdef DOCUMENTATION
18006};
18007#endif // DOCUMENTATION
18008
18009
18011// SgAsmElfSymverNeededAuxList -- MACHINE GENERATED; DO NOT MODIFY --
18013
18014DECLARE_LEAF_CLASS(AsmElfSymverNeededAuxList);
18015IS_SERIALIZABLE(AsmElfSymverNeededAuxList);
18016
18017#ifndef DOCUMENTATION
18018AsmElfSymverNeededAuxList.useSmallHeader(true);
18019#endif // !DOCUMENTATION
18020
18021DECLARE_HEADERS(AsmElfSymverNeededAuxList);
18022#if defined(SgAsmElfSymverNeededAuxList_HEADERS) || defined(DOCUMENTATION)
18023#include <sageContainer.h>
18024#endif // SgAsmElfSymverNeededAuxList_HEADERS
18025
18026#ifdef DOCUMENTATION
18032#endif // DOCUMENTATION
18033
18034#ifndef DOCUMENTATION
18035 AsmElfSymverNeededAuxList.setDataPrototype(
18036 "SgAsmElfSymverNeededAuxPtrList", "entries", "",
18037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18038#endif // !DOCUMENTATION
18039
18040 DECLARE_OTHERS(AsmElfSymverNeededAuxList);
18041#if defined(SgAsmElfSymverNeededAuxList_OTHERS) || defined(DOCUMENTATION)
18042
18043 //----------------------- Boost serialization for SgAsmElfSymverNeededAuxList -----------------------
18044#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18045private:
18046 friend class boost::serialization::access;
18047
18048 template<class S>
18049 void serialize(S &s, const unsigned /*version*/) {
18050 debugSerializationBegin("SgAsmElfSymverNeededAuxList");
18051 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18052 s & BOOST_SERIALIZATION_NVP(p_entries);
18053 debugSerializationEnd("SgAsmElfSymverNeededAuxList");
18054 }
18055#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18056public:
18057public:
18061 SgAsmElfSymverNeededAuxPtrList const& get_entries() const;
18062 SgAsmElfSymverNeededAuxPtrList& get_entries();
18063 void set_entries(SgAsmElfSymverNeededAuxPtrList const&);
18066public:
18069
18070public:
18073
18074protected:
18082#endif // SgAsmElfSymverNeededAuxList_OTHERS
18083#ifdef DOCUMENTATION
18084};
18085#endif // DOCUMENTATION
18086
18087
18089// SgAsmElfSymverNeededAux -- MACHINE GENERATED; DO NOT MODIFY --
18091
18092DECLARE_LEAF_CLASS(AsmElfSymverNeededAux);
18093IS_SERIALIZABLE(AsmElfSymverNeededAux);
18094
18095#ifndef DOCUMENTATION
18096AsmElfSymverNeededAux.useSmallHeader(true);
18097#endif // !DOCUMENTATION
18098
18099DECLARE_HEADERS(AsmElfSymverNeededAux);
18100#if defined(SgAsmElfSymverNeededAux_HEADERS) || defined(DOCUMENTATION)
18101#include <Rose/BinaryAnalysis/ByteOrder.h>
18102
18103#ifdef ROSE_SgAsmElfSymverNeededAux_IMPL
18104#include <SgAsmGenericString.h>
18105#endif
18106#endif // SgAsmElfSymverNeededAux_HEADERS
18107
18108#ifdef DOCUMENTATION
18111#endif // DOCUMENTATION
18112
18113#ifndef DOCUMENTATION
18114 AsmElfSymverNeededAux.setDataPrototype(
18115 "uint32_t", "hash", "= 0",
18116 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18117#endif // !DOCUMENTATION
18118
18119#ifndef DOCUMENTATION
18120 AsmElfSymverNeededAux.setDataPrototype(
18121 "int", "flags", "= 0",
18122 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18123#endif // !DOCUMENTATION
18124
18125#ifndef DOCUMENTATION
18126 AsmElfSymverNeededAux.setDataPrototype(
18127 "size_t", "other", "= 0",
18128 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18129#endif // !DOCUMENTATION
18130
18131#ifndef DOCUMENTATION
18132 AsmElfSymverNeededAux.setDataPrototype(
18133 "SgAsmGenericString*", "name", "= 0",
18134 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18135#endif // !DOCUMENTATION
18136
18137 DECLARE_OTHERS(AsmElfSymverNeededAux);
18138#if defined(SgAsmElfSymverNeededAux_OTHERS) || defined(DOCUMENTATION)
18139
18140 //----------------------- Boost serialization for SgAsmElfSymverNeededAux -----------------------
18141#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18142private:
18143 friend class boost::serialization::access;
18144
18145 template<class S>
18146 void serialize(S &s, const unsigned /*version*/) {
18147 debugSerializationBegin("SgAsmElfSymverNeededAux");
18148 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18149 s & BOOST_SERIALIZATION_NVP(p_hash);
18150 s & BOOST_SERIALIZATION_NVP(p_flags);
18151 s & BOOST_SERIALIZATION_NVP(p_other);
18152 s & BOOST_SERIALIZATION_NVP(p_name);
18153 debugSerializationEnd("SgAsmElfSymverNeededAux");
18154 }
18155#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18157 // Local types
18159public:
18160#ifdef _MSC_VER
18161# pragma pack (1)
18162#endif
18163
18166 uint32_t vna_hash;
18167 uint16_t vna_flags;
18168 uint16_t vna_other;
18169 uint32_t vna_name;
18170 uint32_t vna_next;
18171 }
18172#if !defined(SWIG) && !defined(_MSC_VER)
18173 __attribute__((packed))
18174#endif
18175 ;
18176
18177#ifdef _MSC_VER
18178# pragma pack ()
18179#endif
18180
18182 // Properties
18184public:
18185public:
18191 uint32_t const& get_hash() const;
18192 void set_hash(uint32_t const&);
18195public:
18201 int const& get_flags() const;
18202 void set_flags(int const&);
18205public:
18211 size_t const& get_other() const;
18212 void set_other(size_t const&);
18215public:
18223 // Functions
18225public:
18231
18234
18237
18243 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18244public:
18247
18248public:
18251
18252protected:
18260#endif // SgAsmElfSymverNeededAux_OTHERS
18261#ifdef DOCUMENTATION
18262};
18263#endif // DOCUMENTATION
18264
18265
18267// SgAsmElfSymverEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18269
18270DECLARE_LEAF_CLASS(AsmElfSymverEntryList);
18271IS_SERIALIZABLE(AsmElfSymverEntryList);
18272
18273#ifndef DOCUMENTATION
18274AsmElfSymverEntryList.useSmallHeader(true);
18275#endif // !DOCUMENTATION
18276
18277DECLARE_HEADERS(AsmElfSymverEntryList);
18278#if defined(SgAsmElfSymverEntryList_HEADERS) || defined(DOCUMENTATION)
18279#include <sageContainer.h>
18280#endif // SgAsmElfSymverEntryList_HEADERS
18281
18282#ifdef DOCUMENTATION
18288#endif // DOCUMENTATION
18289
18290#ifndef DOCUMENTATION
18291 AsmElfSymverEntryList.setDataPrototype(
18292 "SgAsmElfSymverEntryPtrList", "entries", "",
18293 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18294#endif // !DOCUMENTATION
18295
18296 DECLARE_OTHERS(AsmElfSymverEntryList);
18297#if defined(SgAsmElfSymverEntryList_OTHERS) || defined(DOCUMENTATION)
18298
18299 //----------------------- Boost serialization for SgAsmElfSymverEntryList -----------------------
18300#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18301private:
18302 friend class boost::serialization::access;
18303
18304 template<class S>
18305 void serialize(S &s, const unsigned /*version*/) {
18306 debugSerializationBegin("SgAsmElfSymverEntryList");
18307 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18308 s & BOOST_SERIALIZATION_NVP(p_entries);
18309 debugSerializationEnd("SgAsmElfSymverEntryList");
18310 }
18311#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18312public:
18313public:
18317 SgAsmElfSymverEntryPtrList const& get_entries() const;
18318 SgAsmElfSymverEntryPtrList& get_entries();
18319 void set_entries(SgAsmElfSymverEntryPtrList const&);
18322public:
18325
18326public:
18329
18330protected:
18338#endif // SgAsmElfSymverEntryList_OTHERS
18339#ifdef DOCUMENTATION
18340};
18341#endif // DOCUMENTATION
18342
18343
18345// SgAsmElfSymverEntry -- MACHINE GENERATED; DO NOT MODIFY --
18347
18348DECLARE_LEAF_CLASS(AsmElfSymverEntry);
18349IS_SERIALIZABLE(AsmElfSymverEntry);
18350
18351#ifndef DOCUMENTATION
18352AsmElfSymverEntry.useSmallHeader(true);
18353#endif // !DOCUMENTATION
18354
18355#ifdef DOCUMENTATION
18358#endif // DOCUMENTATION
18359
18360#ifndef DOCUMENTATION
18361 AsmElfSymverEntry.setDataPrototype(
18362 "size_t", "value", "= 0",
18363 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18364#endif // !DOCUMENTATION
18365
18366 DECLARE_OTHERS(AsmElfSymverEntry);
18367#if defined(SgAsmElfSymverEntry_OTHERS) || defined(DOCUMENTATION)
18368
18369 //----------------------- Boost serialization for SgAsmElfSymverEntry -----------------------
18370#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18371private:
18372 friend class boost::serialization::access;
18373
18374 template<class S>
18375 void serialize(S &s, const unsigned /*version*/) {
18376 debugSerializationBegin("SgAsmElfSymverEntry");
18377 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18378 s & BOOST_SERIALIZATION_NVP(p_value);
18379 debugSerializationEnd("SgAsmElfSymverEntry");
18380 }
18381#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18382public:
18383public:
18389 size_t const& get_value() const;
18390 void set_value(size_t const&);
18392public:
18395
18397 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18398public:
18401
18402public:
18405
18406protected:
18414#endif // SgAsmElfSymverEntry_OTHERS
18415#ifdef DOCUMENTATION
18416};
18417#endif // DOCUMENTATION
18418
18419
18421// SgAsmElfSymverDefinedSection -- MACHINE GENERATED; DO NOT MODIFY --
18423
18424DECLARE_LEAF_CLASS(AsmElfSymverDefinedSection);
18425IS_SERIALIZABLE(AsmElfSymverDefinedSection);
18426
18427#ifndef DOCUMENTATION
18428AsmElfSymverDefinedSection.useSmallHeader(true);
18429#endif // !DOCUMENTATION
18430
18431DECLARE_HEADERS(AsmElfSymverDefinedSection);
18432#if defined(SgAsmElfSymverDefinedSection_HEADERS) || defined(DOCUMENTATION)
18433#include <Rose/BinaryAnalysis/Address.h>
18434
18435#ifdef ROSE_SgAsmElfSymverDefinedSection_IMPL
18436#include <SgAsmElfSymverDefinedEntryList.h>
18437#endif
18438#endif // SgAsmElfSymverDefinedSection_HEADERS
18439
18440#ifdef DOCUMENTATION
18447#endif // DOCUMENTATION
18448
18449#ifndef DOCUMENTATION
18450 AsmElfSymverDefinedSection.setDataPrototype(
18451 "SgAsmElfSymverDefinedEntryList*", "entries", "= createAndParent<SgAsmElfSymverDefinedEntryList>(this)",
18452 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18453#endif // !DOCUMENTATION
18454
18455 DECLARE_OTHERS(AsmElfSymverDefinedSection);
18456#if defined(SgAsmElfSymverDefinedSection_OTHERS) || defined(DOCUMENTATION)
18457
18458 //----------------------- Boost serialization for SgAsmElfSymverDefinedSection -----------------------
18459#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18460private:
18461 friend class boost::serialization::access;
18462
18463 template<class S>
18464 void serialize(S &s, const unsigned /*version*/) {
18465 debugSerializationBegin("SgAsmElfSymverDefinedSection");
18466 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
18467 s & BOOST_SERIALIZATION_NVP(p_entries);
18468 debugSerializationEnd("SgAsmElfSymverDefinedSection");
18469 }
18470#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18471public:
18472public:
18482public:
18485
18555
18559 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
18560
18564 virtual void unparse(std::ostream&) const override;
18565
18567 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
18568
18570 // Deprecated 2023-11
18572public:
18573 using SgAsmElfSection::calculate_sizes;
18574 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
18575 ROSE_DEPRECATED("use calculateSizes");
18576public:
18579
18580public:
18583
18584protected:
18592#endif // SgAsmElfSymverDefinedSection_OTHERS
18593#ifdef DOCUMENTATION
18594};
18595#endif // DOCUMENTATION
18596
18597
18599// SgAsmElfSymverDefinedEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18601
18602DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntryList);
18603IS_SERIALIZABLE(AsmElfSymverDefinedEntryList);
18604
18605#ifndef DOCUMENTATION
18606AsmElfSymverDefinedEntryList.useSmallHeader(true);
18607#endif // !DOCUMENTATION
18608
18609DECLARE_HEADERS(AsmElfSymverDefinedEntryList);
18610#if defined(SgAsmElfSymverDefinedEntryList_HEADERS) || defined(DOCUMENTATION)
18611#include <sageContainer.h>
18612#endif // SgAsmElfSymverDefinedEntryList_HEADERS
18613
18614#ifdef DOCUMENTATION
18620#endif // DOCUMENTATION
18621
18622#ifndef DOCUMENTATION
18623 AsmElfSymverDefinedEntryList.setDataPrototype(
18624 "SgAsmElfSymverDefinedEntryPtrList", "entries", "",
18625 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18626#endif // !DOCUMENTATION
18627
18628 DECLARE_OTHERS(AsmElfSymverDefinedEntryList);
18629#if defined(SgAsmElfSymverDefinedEntryList_OTHERS) || defined(DOCUMENTATION)
18630
18631 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntryList -----------------------
18632#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18633private:
18634 friend class boost::serialization::access;
18635
18636 template<class S>
18637 void serialize(S &s, const unsigned /*version*/) {
18638 debugSerializationBegin("SgAsmElfSymverDefinedEntryList");
18639 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18640 s & BOOST_SERIALIZATION_NVP(p_entries);
18641 debugSerializationEnd("SgAsmElfSymverDefinedEntryList");
18642 }
18643#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18644public:
18645public:
18649 SgAsmElfSymverDefinedEntryPtrList const& get_entries() const;
18650 SgAsmElfSymverDefinedEntryPtrList& get_entries();
18651 void set_entries(SgAsmElfSymverDefinedEntryPtrList const&);
18654public:
18657
18658public:
18661
18662protected:
18670#endif // SgAsmElfSymverDefinedEntryList_OTHERS
18671#ifdef DOCUMENTATION
18672};
18673#endif // DOCUMENTATION
18674
18675
18677// SgAsmElfSymverDefinedEntry -- MACHINE GENERATED; DO NOT MODIFY --
18679
18680DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntry);
18681IS_SERIALIZABLE(AsmElfSymverDefinedEntry);
18682
18683#ifndef DOCUMENTATION
18684AsmElfSymverDefinedEntry.useSmallHeader(true);
18685#endif // !DOCUMENTATION
18686
18687DECLARE_HEADERS(AsmElfSymverDefinedEntry);
18688#if defined(SgAsmElfSymverDefinedEntry_HEADERS) || defined(DOCUMENTATION)
18689#include <Rose/BinaryAnalysis/ByteOrder.h>
18690
18691#ifdef ROSE_SgAsmElfSymverDefinedEntry_IMPL
18692#include <SgAsmElfSymverDefinedAuxList.h>
18693#endif
18694#endif // SgAsmElfSymverDefinedEntry_HEADERS
18695
18696#ifdef DOCUMENTATION
18699#endif // DOCUMENTATION
18700
18701#ifndef DOCUMENTATION
18702 AsmElfSymverDefinedEntry.setDataPrototype(
18703 "size_t", "version", "= 0",
18704 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18705#endif // !DOCUMENTATION
18706
18707#ifndef DOCUMENTATION
18708 AsmElfSymverDefinedEntry.setDataPrototype(
18709 "int", "flags", "= 0",
18710 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18711#endif // !DOCUMENTATION
18712
18713#ifndef DOCUMENTATION
18714 AsmElfSymverDefinedEntry.setDataPrototype(
18715 "size_t", "index", "= 0",
18716 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18717#endif // !DOCUMENTATION
18718
18719#ifndef DOCUMENTATION
18720 AsmElfSymverDefinedEntry.setDataPrototype(
18721 "uint32_t", "hash", "= 0",
18722 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18723#endif // !DOCUMENTATION
18724
18725#ifndef DOCUMENTATION
18726 AsmElfSymverDefinedEntry.setDataPrototype(
18727 "SgAsmElfSymverDefinedAuxList*", "entries", "= createAndParent<SgAsmElfSymverDefinedAuxList>(this)",
18728 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18729#endif // !DOCUMENTATION
18730
18731 DECLARE_OTHERS(AsmElfSymverDefinedEntry);
18732#if defined(SgAsmElfSymverDefinedEntry_OTHERS) || defined(DOCUMENTATION)
18733
18734 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntry -----------------------
18735#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18736private:
18737 friend class boost::serialization::access;
18738
18739 template<class S>
18740 void serialize(S &s, const unsigned /*version*/) {
18741 debugSerializationBegin("SgAsmElfSymverDefinedEntry");
18742 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18743 s & BOOST_SERIALIZATION_NVP(p_version);
18744 s & BOOST_SERIALIZATION_NVP(p_flags);
18745 s & BOOST_SERIALIZATION_NVP(p_index);
18746 s & BOOST_SERIALIZATION_NVP(p_hash);
18747 s & BOOST_SERIALIZATION_NVP(p_entries);
18748 debugSerializationEnd("SgAsmElfSymverDefinedEntry");
18749 }
18750#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18752 // Local types
18754public:
18755#ifdef _MSC_VER
18756# pragma pack (1)
18757#endif
18760 uint16_t vd_version;
18761 uint16_t vd_flags;
18762 uint16_t vd_ndx;
18763 uint16_t vd_cnt;
18764 uint32_t vd_hash;
18765 uint32_t vd_aux;
18766 uint32_t vd_next;
18767 }
18768#if !defined(SWIG) && !defined(_MSC_VER)
18769 __attribute__((packed))
18770#endif
18771 ;
18772
18773#ifdef _MSC_VER
18774# pragma pack ()
18775#endif
18776
18778 // Properties
18780public:
18781public:
18787 size_t const& get_version() const;
18788 void set_version(size_t const&);
18791public:
18797 int const& get_flags() const;
18798 void set_flags(int const&);
18801public:
18807 size_t const& get_index() const;
18808 void set_index(size_t const&);
18811public:
18817 uint32_t const& get_hash() const;
18818 void set_hash(uint32_t const&);
18821public:
18832 // Functions
18834public:
18837
18840
18843
18845 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18846public:
18849
18850public:
18853
18854protected:
18862#endif // SgAsmElfSymverDefinedEntry_OTHERS
18863#ifdef DOCUMENTATION
18864};
18865#endif // DOCUMENTATION
18866
18867
18869// SgAsmElfSymverDefinedAuxList -- MACHINE GENERATED; DO NOT MODIFY --
18871
18872DECLARE_LEAF_CLASS(AsmElfSymverDefinedAuxList);
18873IS_SERIALIZABLE(AsmElfSymverDefinedAuxList);
18874
18875#ifndef DOCUMENTATION
18876AsmElfSymverDefinedAuxList.useSmallHeader(true);
18877#endif // !DOCUMENTATION
18878
18879DECLARE_HEADERS(AsmElfSymverDefinedAuxList);
18880#if defined(SgAsmElfSymverDefinedAuxList_HEADERS) || defined(DOCUMENTATION)
18881#include <sageContainer.h>
18882#endif // SgAsmElfSymverDefinedAuxList_HEADERS
18883
18884#ifdef DOCUMENTATION
18890#endif // DOCUMENTATION
18891
18892#ifndef DOCUMENTATION
18893 AsmElfSymverDefinedAuxList.setDataPrototype(
18894 "SgAsmElfSymverDefinedAuxPtrList", "entries", "",
18895 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18896#endif // !DOCUMENTATION
18897
18898 DECLARE_OTHERS(AsmElfSymverDefinedAuxList);
18899#if defined(SgAsmElfSymverDefinedAuxList_OTHERS) || defined(DOCUMENTATION)
18900
18901 //----------------------- Boost serialization for SgAsmElfSymverDefinedAuxList -----------------------
18902#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18903private:
18904 friend class boost::serialization::access;
18905
18906 template<class S>
18907 void serialize(S &s, const unsigned /*version*/) {
18908 debugSerializationBegin("SgAsmElfSymverDefinedAuxList");
18909 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18910 s & BOOST_SERIALIZATION_NVP(p_entries);
18911 debugSerializationEnd("SgAsmElfSymverDefinedAuxList");
18912 }
18913#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18914public:
18915public:
18919 SgAsmElfSymverDefinedAuxPtrList const& get_entries() const;
18920 SgAsmElfSymverDefinedAuxPtrList& get_entries();
18921 void set_entries(SgAsmElfSymverDefinedAuxPtrList const&);
18924public:
18927
18928public:
18931
18932protected:
18940#endif // SgAsmElfSymverDefinedAuxList_OTHERS
18941#ifdef DOCUMENTATION
18942};
18943#endif // DOCUMENTATION
18944
18945
18947// SgAsmElfSymverDefinedAux -- MACHINE GENERATED; DO NOT MODIFY --
18949
18950DECLARE_LEAF_CLASS(AsmElfSymverDefinedAux);
18951IS_SERIALIZABLE(AsmElfSymverDefinedAux);
18952
18953#ifndef DOCUMENTATION
18954AsmElfSymverDefinedAux.useSmallHeader(true);
18955#endif // !DOCUMENTATION
18956
18957DECLARE_HEADERS(AsmElfSymverDefinedAux);
18958#if defined(SgAsmElfSymverDefinedAux_HEADERS) || defined(DOCUMENTATION)
18959#include <Rose/BinaryAnalysis/ByteOrder.h>
18960
18961#ifdef ROSE_SgAsmElfSymverDefinedAux_IMPL
18962#include <SgAsmGenericString.h>
18963#endif
18964#endif // SgAsmElfSymverDefinedAux_HEADERS
18965
18966#ifdef DOCUMENTATION
18969#endif // DOCUMENTATION
18970
18971#ifndef DOCUMENTATION
18972 AsmElfSymverDefinedAux.setDataPrototype(
18973 "SgAsmGenericString*", "name", "= 0",
18974 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18975#endif // !DOCUMENTATION
18976
18977 DECLARE_OTHERS(AsmElfSymverDefinedAux);
18978#if defined(SgAsmElfSymverDefinedAux_OTHERS) || defined(DOCUMENTATION)
18979
18980 //----------------------- Boost serialization for SgAsmElfSymverDefinedAux -----------------------
18981#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18982private:
18983 friend class boost::serialization::access;
18984
18985 template<class S>
18986 void serialize(S &s, const unsigned /*version*/) {
18987 debugSerializationBegin("SgAsmElfSymverDefinedAux");
18988 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18989 s & BOOST_SERIALIZATION_NVP(p_name);
18990 debugSerializationEnd("SgAsmElfSymverDefinedAux");
18991 }
18992#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18994 // Local types
18996public:
18997#ifdef _MSC_VER
18998# pragma pack (1)
18999#endif
19000
19003 uint32_t vda_name;
19004 uint32_t vda_next;
19005 }
19006#if !defined(SWIG) && !defined(_MSC_VER)
19007 __attribute__((packed))
19008#endif
19009 ;
19010
19011#ifdef _MSC_VER
19012# pragma pack ()
19013#endif
19014
19016 // Properties
19018public:
19019public:
19027 // Functions
19029public:
19034
19037
19040
19046 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
19047public:
19050
19051public:
19054
19055protected:
19063#endif // SgAsmElfSymverDefinedAux_OTHERS
19064#ifdef DOCUMENTATION
19065};
19066#endif // DOCUMENTATION
19067
19068
19070// SgAsmElfSymbolSection -- MACHINE GENERATED; DO NOT MODIFY --
19072
19073DECLARE_LEAF_CLASS(AsmElfSymbolSection);
19074IS_SERIALIZABLE(AsmElfSymbolSection);
19075
19076#ifndef DOCUMENTATION
19077AsmElfSymbolSection.useSmallHeader(true);
19078#endif // !DOCUMENTATION
19079
19080DECLARE_HEADERS(AsmElfSymbolSection);
19081#if defined(SgAsmElfSymbolSection_HEADERS) || defined(DOCUMENTATION)
19082#include <Rose/BinaryAnalysis/Address.h>
19083
19084#ifdef ROSE_SgAsmElfSymbolSection_IMPL
19085#include <SgAsmElfSymbolList.h>
19086#endif
19087#endif // SgAsmElfSymbolSection_HEADERS
19088
19089#ifdef DOCUMENTATION
19092#endif // DOCUMENTATION
19093
19094#ifndef DOCUMENTATION
19095 AsmElfSymbolSection.setDataPrototype(
19096 "bool", "isDynamic", "= false",
19097 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19098#endif // !DOCUMENTATION
19099
19100#ifndef DOCUMENTATION
19101 AsmElfSymbolSection.setDataPrototype(
19102 "SgAsmElfSymbolList*", "symbols", "= createAndParent<SgAsmElfSymbolList>(this)",
19103 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19104#endif // !DOCUMENTATION
19105
19106 DECLARE_OTHERS(AsmElfSymbolSection);
19107#if defined(SgAsmElfSymbolSection_OTHERS) || defined(DOCUMENTATION)
19108
19109 //----------------------- Boost serialization for SgAsmElfSymbolSection -----------------------
19110#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19111private:
19112 friend class boost::serialization::access;
19113
19114 template<class S>
19115 void serialize(S &s, const unsigned /*version*/) {
19116 debugSerializationBegin("SgAsmElfSymbolSection");
19117 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
19118 s & BOOST_SERIALIZATION_NVP(p_isDynamic);
19119 s & BOOST_SERIALIZATION_NVP(p_symbols);
19120 debugSerializationEnd("SgAsmElfSymbolSection");
19121 }
19122#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19123public:
19124public:
19128 bool const& get_isDynamic() const;
19129 void set_isDynamic(bool const&);
19132public:
19142public:
19145
19147 virtual SgAsmElfSymbolSection* parse() override;
19148
19161 virtual void finishParsing() override;
19162
19165
19171 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
19172
19176 virtual bool reallocate() override;
19177
19179 virtual void unparse(std::ostream&) const override;
19180
19182 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19183
19185 // Deprecated 2023-11
19187public:
19188 bool get_is_dynamic() const ROSE_DEPRECATED("use get_isDynamic");
19189 void set_is_dynamic(bool) ROSE_DEPRECATED("use set_isDynamic");
19190 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing");
19191 size_t index_of(SgAsmElfSymbol*) ROSE_DEPRECATED("use indexOf");
19192 using SgAsmElfSection::calculate_sizes;
19193 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
19194 ROSE_DEPRECATED("use calculateSizes");
19195public:
19198
19199public:
19202
19203protected:
19211#endif // SgAsmElfSymbolSection_OTHERS
19212#ifdef DOCUMENTATION
19213};
19214#endif // DOCUMENTATION
19215
19216
19218// SgAsmElfSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
19220
19221DECLARE_LEAF_CLASS(AsmElfSymbolList);
19222IS_SERIALIZABLE(AsmElfSymbolList);
19223
19224#ifndef DOCUMENTATION
19225AsmElfSymbolList.useSmallHeader(true);
19226#endif // !DOCUMENTATION
19227
19228DECLARE_HEADERS(AsmElfSymbolList);
19229#if defined(SgAsmElfSymbolList_HEADERS) || defined(DOCUMENTATION)
19230#include <sageContainer.h>
19231#endif // SgAsmElfSymbolList_HEADERS
19232
19233#ifdef DOCUMENTATION
19235#endif // DOCUMENTATION
19236
19237#ifndef DOCUMENTATION
19238 AsmElfSymbolList.setDataPrototype(
19239 "SgAsmElfSymbolPtrList", "symbols", "",
19240 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19241#endif // !DOCUMENTATION
19242
19243 DECLARE_OTHERS(AsmElfSymbolList);
19244#if defined(SgAsmElfSymbolList_OTHERS) || defined(DOCUMENTATION)
19245
19246 //----------------------- Boost serialization for SgAsmElfSymbolList -----------------------
19247#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19248private:
19249 friend class boost::serialization::access;
19250
19251 template<class S>
19252 void serialize(S &s, const unsigned /*version*/) {
19253 debugSerializationBegin("SgAsmElfSymbolList");
19254 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19255 s & BOOST_SERIALIZATION_NVP(p_symbols);
19256 debugSerializationEnd("SgAsmElfSymbolList");
19257 }
19258#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19259public:
19260public:
19267 SgAsmElfSymbolPtrList const& get_symbols() const;
19268 SgAsmElfSymbolPtrList& get_symbols();
19269 void set_symbols(SgAsmElfSymbolPtrList const&);
19272public:
19275
19276public:
19279
19280protected:
19288#endif // SgAsmElfSymbolList_OTHERS
19289#ifdef DOCUMENTATION
19290};
19291#endif // DOCUMENTATION
19292
19293
19295// SgAsmElfSymbol -- MACHINE GENERATED; DO NOT MODIFY --
19297
19298DECLARE_LEAF_CLASS(AsmElfSymbol);
19299IS_SERIALIZABLE(AsmElfSymbol);
19300
19301#ifndef DOCUMENTATION
19302AsmElfSymbol.useSmallHeader(true);
19303#endif // !DOCUMENTATION
19304
19305DECLARE_HEADERS(AsmElfSymbol);
19306#if defined(SgAsmElfSymbol_HEADERS) || defined(DOCUMENTATION)
19307#include <Rose/BinaryAnalysis/Address.h>
19308#include <Rose/BinaryAnalysis/ByteOrder.h>
19309#include <sageContainer.h>
19310#endif // SgAsmElfSymbol_HEADERS
19311
19312#ifdef DOCUMENTATION
19318#endif // DOCUMENTATION
19319
19320#ifndef DOCUMENTATION
19321 AsmElfSymbol.setDataPrototype(
19322 "unsigned char", "st_info", "= 0",
19323 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19324#endif // !DOCUMENTATION
19325
19326#ifndef DOCUMENTATION
19327 AsmElfSymbol.setDataPrototype(
19328 "unsigned char", "st_res1", "= 0",
19329 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19330#endif // !DOCUMENTATION
19331
19332#ifndef DOCUMENTATION
19333 AsmElfSymbol.setDataPrototype(
19334 "unsigned", "st_shndx", "= 0",
19335 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19336#endif // !DOCUMENTATION
19337
19338#ifndef DOCUMENTATION
19339 AsmElfSymbol.setDataPrototype(
19340 "Rose::BinaryAnalysis::Address", "st_size", "= 0",
19341 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19342#endif // !DOCUMENTATION
19343
19344#ifndef DOCUMENTATION
19345 AsmElfSymbol.setDataPrototype(
19346 "SgUnsignedCharList", "extra", "",
19347 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19348#endif // !DOCUMENTATION
19349
19350 DECLARE_OTHERS(AsmElfSymbol);
19351#if defined(SgAsmElfSymbol_OTHERS) || defined(DOCUMENTATION)
19352
19353 //----------------------- Boost serialization for SgAsmElfSymbol -----------------------
19354#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19355private:
19356 friend class boost::serialization::access;
19357
19358 template<class S>
19359 void serialize(S &s, const unsigned /*version*/) {
19360 debugSerializationBegin("SgAsmElfSymbol");
19361 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
19362 s & BOOST_SERIALIZATION_NVP(p_st_info);
19363 s & BOOST_SERIALIZATION_NVP(p_st_res1);
19364 s & BOOST_SERIALIZATION_NVP(p_st_shndx);
19365 s & BOOST_SERIALIZATION_NVP(p_st_size);
19366 s & BOOST_SERIALIZATION_NVP(p_extra);
19367 debugSerializationEnd("SgAsmElfSymbol");
19368 }
19369#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19371 // Local types
19373public:
19374 enum ElfSymBinding {
19375 STB_LOCAL=0,
19376 STB_GLOBAL=1,
19377 STB_WEAK=2
19378 };
19379
19390
19391#ifdef _MSC_VER
19392# pragma pack (1)
19393#endif
19394
19397 uint32_t st_name;
19398 uint32_t st_value;
19399 uint32_t st_size;
19400 unsigned char st_info;
19401 unsigned char st_res1;
19402 uint16_t st_shndx;
19403 }
19404#if !defined(SWIG) && !defined(_MSC_VER)
19405 __attribute__((packed))
19406#endif
19407 ;
19408
19410 uint32_t st_name;
19411 unsigned char st_info;
19412 unsigned char st_res1;
19413 uint16_t st_shndx;
19414 uint64_t st_value;
19415 uint64_t st_size;
19416 }
19417#if !defined(SWIG) && !defined(_MSC_VER)
19418 __attribute__((packed))
19419#endif
19420 ;
19421
19422#ifdef _MSC_VER
19423# pragma pack ()
19424#endif
19425
19427 // Properties
19429public:
19430public:
19436 unsigned char const& get_st_info() const;
19437 void set_st_info(unsigned char const&);
19440public:
19446 unsigned char const& get_st_res1() const;
19447 void set_st_res1(unsigned char const&);
19450public:
19456 unsigned const& get_st_shndx() const;
19457 void set_st_shndx(unsigned const&);
19460public:
19470public:
19476 SgUnsignedCharList const& get_extra() const;
19477 SgUnsignedCharList& get_extra();
19478 void set_extra(SgUnsignedCharList const&);
19481 // Functions
19483public:
19486
19491
19496
19509 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
19510 void dump(FILE*, const char *prefix, ssize_t idx, SgAsmGenericSection*) const;
19514 SgAsmElfSymbol::ElfSymBinding get_elfBinding() const;
19515
19518
19520 static std::string toString(SgAsmElfSymbol::ElfSymBinding);
19521
19524
19525private:
19526 void parse_common(); // initialization common to all parse() methods
19527
19529 // Deprecated 2023-11
19531public:
19532 SgAsmElfSymbol::ElfSymBinding get_elf_binding() const ROSE_DEPRECATED("use get_elfBinding");
19533 SgAsmElfSymbol::ElfSymType get_elf_type() const ROSE_DEPRECATED("use get_elfType");
19534 static std::string to_string(SgAsmElfSymbol::ElfSymBinding) ROSE_DEPRECATED("use toString");
19535 static std::string to_string(SgAsmElfSymbol::ElfSymType) ROSE_DEPRECATED("use toString");
19536public:
19538 virtual ~SgAsmElfSymbol();
19539
19540public:
19543
19544protected:
19552#endif // SgAsmElfSymbol_OTHERS
19553#ifdef DOCUMENTATION
19554};
19555#endif // DOCUMENTATION
19556
19557
19559// SgAsmElfStrtab -- MACHINE GENERATED; DO NOT MODIFY --
19561
19562DECLARE_LEAF_CLASS(AsmElfStrtab);
19563IS_SERIALIZABLE(AsmElfStrtab);
19564
19565#ifndef DOCUMENTATION
19566AsmElfStrtab.useSmallHeader(true);
19567#endif // !DOCUMENTATION
19568
19569DECLARE_HEADERS(AsmElfStrtab);
19570#if defined(SgAsmElfStrtab_HEADERS) || defined(DOCUMENTATION)
19571#include <Rose/BinaryAnalysis/Address.h>
19572#endif // SgAsmElfStrtab_HEADERS
19573
19574#ifdef DOCUMENTATION
19577#endif // DOCUMENTATION
19578
19579 DECLARE_OTHERS(AsmElfStrtab);
19580#if defined(SgAsmElfStrtab_OTHERS) || defined(DOCUMENTATION)
19581
19582 //----------------------- Boost serialization for SgAsmElfStrtab -----------------------
19583#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19584private:
19585 friend class boost::serialization::access;
19586
19587 template<class S>
19588 void serialize(S &s, const unsigned /*version*/) {
19589 debugSerializationBegin("SgAsmElfStrtab");
19590 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
19591 debugSerializationEnd("SgAsmElfStrtab");
19592 }
19593#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19594public:
19598 explicit SgAsmElfStrtab(class SgAsmElfSection *containing_section);
19599
19606 void destructorHelper() override;
19607
19611 virtual SgAsmElfStrtab *parse() override;
19612
19616 virtual void unparse(std::ostream&) const;
19617
19624
19629
19638 virtual void allocateOverlap(SgAsmStringStorage*) override;
19639
19642
19644 // Deprecated 2023-11
19646public:
19647 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) override ROSE_DEPRECATED("use createStorage");
19648 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) override
19649 ROSE_DEPRECATED("use get_storageSize");
19650 virtual void allocate_overlap(SgAsmStringStorage*) override ROSE_DEPRECATED("use allocateOverlap");
19651public:
19654
19655public:
19658
19659protected:
19667#endif // SgAsmElfStrtab_OTHERS
19668#ifdef DOCUMENTATION
19669};
19670#endif // DOCUMENTATION
19671
19672
19674// SgAsmElfStringSection -- MACHINE GENERATED; DO NOT MODIFY --
19676
19677DECLARE_LEAF_CLASS(AsmElfStringSection);
19678IS_SERIALIZABLE(AsmElfStringSection);
19679
19680#ifndef DOCUMENTATION
19681AsmElfStringSection.useSmallHeader(true);
19682#endif // !DOCUMENTATION
19683
19684DECLARE_HEADERS(AsmElfStringSection);
19685#if defined(SgAsmElfStringSection_HEADERS) || defined(DOCUMENTATION)
19686#include <Rose/BinaryAnalysis/Address.h>
19687#endif // SgAsmElfStringSection_HEADERS
19688
19689#ifdef DOCUMENTATION
19694#endif // DOCUMENTATION
19695
19696#ifndef DOCUMENTATION
19697 AsmElfStringSection.setDataPrototype(
19698 "SgAsmElfStrtab*", "strtab", "= nullptr",
19699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19700#endif // !DOCUMENTATION
19701
19702 DECLARE_OTHERS(AsmElfStringSection);
19703#if defined(SgAsmElfStringSection_OTHERS) || defined(DOCUMENTATION)
19704
19705 //----------------------- Boost serialization for SgAsmElfStringSection -----------------------
19706#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19707private:
19708 friend class boost::serialization::access;
19709
19710 template<class S>
19711 void serialize(S &s, const unsigned /*version*/) {
19712 debugSerializationBegin("SgAsmElfStringSection");
19713 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
19714 s & BOOST_SERIALIZATION_NVP(p_strtab);
19715 debugSerializationEnd("SgAsmElfStringSection");
19716 }
19717#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19718public:
19719public:
19728public:
19731
19733 virtual SgAsmElfStringSection *parse() override;
19734
19736 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19737
19742 virtual void set_size(Rose::BinaryAnalysis::Address newsize) override;
19743
19750 virtual bool reallocate() override;
19751
19753 virtual void unparse(std::ostream&) const override;
19754public:
19757
19758public:
19761
19762protected:
19770#endif // SgAsmElfStringSection_OTHERS
19771#ifdef DOCUMENTATION
19772};
19773#endif // DOCUMENTATION
19774
19775
19777// SgAsmElfSegmentTableEntryList -- MACHINE GENERATED; DO NOT MODIFY --
19779
19780DECLARE_LEAF_CLASS(AsmElfSegmentTableEntryList);
19781IS_SERIALIZABLE(AsmElfSegmentTableEntryList);
19782
19783#ifndef DOCUMENTATION
19784AsmElfSegmentTableEntryList.useSmallHeader(true);
19785#endif // !DOCUMENTATION
19786
19787DECLARE_HEADERS(AsmElfSegmentTableEntryList);
19788#if defined(SgAsmElfSegmentTableEntryList_HEADERS) || defined(DOCUMENTATION)
19789#include <sageContainer.h>
19790#endif // SgAsmElfSegmentTableEntryList_HEADERS
19791
19792#ifdef DOCUMENTATION
19794#endif // DOCUMENTATION
19795
19796#ifndef DOCUMENTATION
19797 AsmElfSegmentTableEntryList.setDataPrototype(
19798 "SgAsmElfSegmentTableEntryPtrList", "entries", "",
19799 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19800#endif // !DOCUMENTATION
19801
19802 DECLARE_OTHERS(AsmElfSegmentTableEntryList);
19803#if defined(SgAsmElfSegmentTableEntryList_OTHERS) || defined(DOCUMENTATION)
19804
19805 //----------------------- Boost serialization for SgAsmElfSegmentTableEntryList -----------------------
19806#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19807private:
19808 friend class boost::serialization::access;
19809
19810 template<class S>
19811 void serialize(S &s, const unsigned /*version*/) {
19812 debugSerializationBegin("SgAsmElfSegmentTableEntryList");
19813 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19814 s & BOOST_SERIALIZATION_NVP(p_entries);
19815 debugSerializationEnd("SgAsmElfSegmentTableEntryList");
19816 }
19817#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19818public:
19819public:
19826 SgAsmElfSegmentTableEntryPtrList const& get_entries() const;
19827 SgAsmElfSegmentTableEntryPtrList& get_entries();
19828 void set_entries(SgAsmElfSegmentTableEntryPtrList const&);
19831public:
19834
19835public:
19838
19839protected:
19847#endif // SgAsmElfSegmentTableEntryList_OTHERS
19848#ifdef DOCUMENTATION
19849};
19850#endif // DOCUMENTATION
19851
19852
19854// SgAsmElfSegmentTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
19856
19857DECLARE_LEAF_CLASS(AsmElfSegmentTableEntry);
19858IS_SERIALIZABLE(AsmElfSegmentTableEntry);
19859
19860#ifndef DOCUMENTATION
19861AsmElfSegmentTableEntry.useSmallHeader(true);
19862#endif // !DOCUMENTATION
19863
19864DECLARE_HEADERS(AsmElfSegmentTableEntry);
19865#if defined(SgAsmElfSegmentTableEntry_HEADERS) || defined(DOCUMENTATION)
19866#include <Rose/BinaryAnalysis/Address.h>
19867#include <Rose/BinaryAnalysis/ByteOrder.h>
19868#include <sageContainer.h>
19869#endif // SgAsmElfSegmentTableEntry_HEADERS
19870
19871#ifdef DOCUMENTATION
19874#endif // DOCUMENTATION
19875
19876#ifndef DOCUMENTATION
19877 AsmElfSegmentTableEntry.setDataPrototype(
19878 "size_t", "index", "= 0",
19879 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19880#endif // !DOCUMENTATION
19881
19882#ifndef DOCUMENTATION
19883 AsmElfSegmentTableEntry.setDataPrototype(
19884 "SgAsmElfSegmentTableEntry::SegmentType", "type", "= SgAsmElfSegmentTableEntry::PT_LOAD",
19885 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19886#endif // !DOCUMENTATION
19887
19888#ifndef DOCUMENTATION
19889 AsmElfSegmentTableEntry.setDataPrototype(
19890 "SgAsmElfSegmentTableEntry::SegmentFlags", "flags", "= SgAsmElfSegmentTableEntry::PF_NONE",
19891 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19892#endif // !DOCUMENTATION
19893
19894#ifndef DOCUMENTATION
19895 AsmElfSegmentTableEntry.setDataPrototype(
19896 "Rose::BinaryAnalysis::Address", "offset", "= 0",
19897 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19898#endif // !DOCUMENTATION
19899
19900#ifndef DOCUMENTATION
19901 AsmElfSegmentTableEntry.setDataPrototype(
19902 "Rose::BinaryAnalysis::Address", "vaddr", "= 0",
19903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19904#endif // !DOCUMENTATION
19905
19906#ifndef DOCUMENTATION
19907 AsmElfSegmentTableEntry.setDataPrototype(
19908 "Rose::BinaryAnalysis::Address", "paddr", "= 0",
19909 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19910#endif // !DOCUMENTATION
19911
19912#ifndef DOCUMENTATION
19913 AsmElfSegmentTableEntry.setDataPrototype(
19914 "Rose::BinaryAnalysis::Address", "filesz", "= 0",
19915 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19916#endif // !DOCUMENTATION
19917
19918#ifndef DOCUMENTATION
19919 AsmElfSegmentTableEntry.setDataPrototype(
19920 "Rose::BinaryAnalysis::Address", "memsz", "= 0",
19921 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19922#endif // !DOCUMENTATION
19923
19924#ifndef DOCUMENTATION
19925 AsmElfSegmentTableEntry.setDataPrototype(
19926 "Rose::BinaryAnalysis::Address", "align", "= 0",
19927 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19928#endif // !DOCUMENTATION
19929
19930#ifndef DOCUMENTATION
19931 AsmElfSegmentTableEntry.setDataPrototype(
19932 "SgUnsignedCharList", "extra", "",
19933 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19934#endif // !DOCUMENTATION
19935
19936 DECLARE_OTHERS(AsmElfSegmentTableEntry);
19937#if defined(SgAsmElfSegmentTableEntry_OTHERS) || defined(DOCUMENTATION)
19938
19939 //----------------------- Boost serialization for SgAsmElfSegmentTableEntry -----------------------
19940#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19941private:
19942 friend class boost::serialization::access;
19943
19944 template<class S>
19945 void serialize(S &s, const unsigned /*version*/) {
19946 debugSerializationBegin("SgAsmElfSegmentTableEntry");
19947 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19948 s & BOOST_SERIALIZATION_NVP(p_index);
19949 s & BOOST_SERIALIZATION_NVP(p_type);
19950 s & BOOST_SERIALIZATION_NVP(p_flags);
19951 s & BOOST_SERIALIZATION_NVP(p_offset);
19952 s & BOOST_SERIALIZATION_NVP(p_vaddr);
19953 s & BOOST_SERIALIZATION_NVP(p_paddr);
19954 s & BOOST_SERIALIZATION_NVP(p_filesz);
19955 s & BOOST_SERIALIZATION_NVP(p_memsz);
19956 s & BOOST_SERIALIZATION_NVP(p_align);
19957 s & BOOST_SERIALIZATION_NVP(p_extra);
19958 debugSerializationEnd("SgAsmElfSegmentTableEntry");
19959 }
19960#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19962 // Local types
19964public:
19976 // OS- and Processor-specific ranges
19977 PT_LOOS = 0x60000000,
19978 PT_HIOS = 0x6fffffff,
19979 PT_LOPROC = 0x70000000,
19980 PT_HIPROC = 0x7fffffff,
19981
19982 // OS-specific values for GNU/Linux
19983 PT_GNU_EH_FRAME = 0x6474e550,
19984 PT_GNU_STACK = 0x6474e551,
19985 PT_GNU_RELRO = 0x6474e552,
19986 PT_PAX_FLAGS = 0x65041580,
19988 // OS-specific values for Sun
19989 PT_SUNWBSS = 0x6ffffffa,
19990 PT_SUNWSTACK = 0x6ffffffb
19992
19996 PF_RESERVED = 0x000ffff8,
19997 PF_XPERM = 0x00000001,
19998 PF_WPERM = 0x00000002,
19999 PF_RPERM = 0x00000004,
20000 PF_OS_MASK = 0x0ff00000,
20001 PF_PROC_MASK = 0xf0000000
20003
20004#ifdef _MSC_VER
20005# pragma pack (1)
20006#endif
20015 uint32_t p_type;
20016 uint32_t p_offset;
20017 uint32_t p_vaddr;
20018 uint32_t p_paddr;
20019 uint32_t p_filesz;
20020 uint32_t p_memsz;
20021 uint32_t p_flags;
20022 uint32_t p_align;
20023 } /* 0x30 */
20024#if !defined(SWIG) && !defined(_MSC_VER)
20025 __attribute__((packed))
20026#endif
20027 ;
20028
20030 uint32_t p_type; /* 0x00 */
20031 uint32_t p_flags; /* 0x04 */
20032 uint64_t p_offset; /* 0x08 */
20033 uint64_t p_vaddr; /* 0x10 */
20034 uint64_t p_paddr; /* 0x18 */
20035 uint64_t p_filesz; /* 0x20 */
20036 uint64_t p_memsz; /* 0x28 */
20037 uint64_t p_align; /* 0x30 */
20038 } /* 0x38 */
20039#if !defined(SWIG) && !defined(_MSC_VER)
20040 __attribute__((packed))
20041#endif
20042 ;
20043#ifdef _MSC_VER
20044# pragma pack ()
20045#endif
20046
20048 // Properties
20050public:
20051public:
20057 size_t const& get_index() const;
20058 void set_index(size_t const&);
20061public:
20069public:
20077public:
20087public:
20098public:
20108public:
20118public:
20128public:
20138public:
20144 SgUnsignedCharList const& get_extra() const;
20145 SgUnsignedCharList& get_extra();
20146 void set_extra(SgUnsignedCharList const&);
20149 // Functions
20151public:
20155
20159
20169
20171 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
20172
20175
20178
20180 // Deprecated 2023-11
20182public:
20183 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
20184 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentType) ROSE_DEPRECATED("use toString");
20185 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentFlags) ROSE_DEPRECATED("use toString");
20186public:
20189
20190public:
20193
20194protected:
20202#endif // SgAsmElfSegmentTableEntry_OTHERS
20203#ifdef DOCUMENTATION
20204};
20205#endif // DOCUMENTATION
20206
20207
20209// SgAsmElfSegmentTable -- MACHINE GENERATED; DO NOT MODIFY --
20211
20212DECLARE_LEAF_CLASS(AsmElfSegmentTable);
20213IS_SERIALIZABLE(AsmElfSegmentTable);
20214
20215#ifndef DOCUMENTATION
20216AsmElfSegmentTable.useSmallHeader(true);
20217#endif // !DOCUMENTATION
20218
20219DECLARE_HEADERS(AsmElfSegmentTable);
20220#if defined(SgAsmElfSegmentTable_HEADERS) || defined(DOCUMENTATION)
20221#include <Rose/BinaryAnalysis/Address.h>
20222#endif // SgAsmElfSegmentTable_HEADERS
20223
20224#ifdef DOCUMENTATION
20232#endif // DOCUMENTATION
20233
20234 DECLARE_OTHERS(AsmElfSegmentTable);
20235#if defined(SgAsmElfSegmentTable_OTHERS) || defined(DOCUMENTATION)
20236
20237 //----------------------- Boost serialization for SgAsmElfSegmentTable -----------------------
20238#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20239private:
20240 friend class boost::serialization::access;
20241
20242 template<class S>
20243 void serialize(S &s, const unsigned /*version*/) {
20244 debugSerializationBegin("SgAsmElfSegmentTable");
20245 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
20246 debugSerializationEnd("SgAsmElfSegmentTable");
20247 }
20248#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20249public:
20252
20257 virtual SgAsmElfSegmentTable *parse() override;
20258
20273
20277 Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
20278
20279 virtual bool reallocate() override;
20280
20282 virtual void unparse(std::ostream&) const override;
20283
20285 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20286
20288 // Deprecated 2023-11
20290public:
20291 SgAsmElfSegmentTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
20292 Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
20293public:
20296
20297public:
20300
20301protected:
20309#endif // SgAsmElfSegmentTable_OTHERS
20310#ifdef DOCUMENTATION
20311};
20312#endif // DOCUMENTATION
20313
20314
20316// SgAsmElfSectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
20318
20319DECLARE_LEAF_CLASS(AsmElfSectionTableEntry);
20320IS_SERIALIZABLE(AsmElfSectionTableEntry);
20321
20322#ifndef DOCUMENTATION
20323AsmElfSectionTableEntry.useSmallHeader(true);
20324#endif // !DOCUMENTATION
20325
20326DECLARE_HEADERS(AsmElfSectionTableEntry);
20327#if defined(SgAsmElfSectionTableEntry_HEADERS) || defined(DOCUMENTATION)
20328#include <Rose/BinaryAnalysis/Address.h>
20329#include <Rose/BinaryAnalysis/ByteOrder.h>
20330#include <sageContainer.h>
20331#endif // SgAsmElfSectionTableEntry_HEADERS
20332
20333#ifdef DOCUMENTATION
20336#endif // DOCUMENTATION
20337
20338#ifndef DOCUMENTATION
20339 AsmElfSectionTableEntry.setDataPrototype(
20340 "unsigned", "sh_name", "= 0",
20341 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20342#endif // !DOCUMENTATION
20343
20344#ifndef DOCUMENTATION
20345 AsmElfSectionTableEntry.setDataPrototype(
20346 "SgAsmElfSectionTableEntry::SectionType", "sh_type", "= SHT_PROGBITS",
20347 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20348#endif // !DOCUMENTATION
20349
20350#ifndef DOCUMENTATION
20351 AsmElfSectionTableEntry.setDataPrototype(
20352 "unsigned long", "sh_link", "= 0",
20353 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20354#endif // !DOCUMENTATION
20355
20356#ifndef DOCUMENTATION
20357 AsmElfSectionTableEntry.setDataPrototype(
20358 "unsigned long", "sh_info", "= 0",
20359 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20360#endif // !DOCUMENTATION
20361
20362#ifndef DOCUMENTATION
20363 AsmElfSectionTableEntry.setDataPrototype(
20364 "uint64_t", "sh_flags", "= 0",
20365 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20366#endif // !DOCUMENTATION
20367
20368#ifndef DOCUMENTATION
20369 AsmElfSectionTableEntry.setDataPrototype(
20370 "Rose::BinaryAnalysis::Address", "sh_addr", "= 0",
20371 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20372#endif // !DOCUMENTATION
20373
20374#ifndef DOCUMENTATION
20375 AsmElfSectionTableEntry.setDataPrototype(
20376 "Rose::BinaryAnalysis::Address", "sh_offset", "= 0",
20377 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20378#endif // !DOCUMENTATION
20379
20380#ifndef DOCUMENTATION
20381 AsmElfSectionTableEntry.setDataPrototype(
20382 "Rose::BinaryAnalysis::Address", "sh_size", "= 0",
20383 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20384#endif // !DOCUMENTATION
20385
20386#ifndef DOCUMENTATION
20387 AsmElfSectionTableEntry.setDataPrototype(
20388 "Rose::BinaryAnalysis::Address", "sh_addralign", "= 0",
20389 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20390#endif // !DOCUMENTATION
20391
20392#ifndef DOCUMENTATION
20393 AsmElfSectionTableEntry.setDataPrototype(
20394 "Rose::BinaryAnalysis::Address", "sh_entsize", "= 0",
20395 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20396#endif // !DOCUMENTATION
20397
20398#ifndef DOCUMENTATION
20399 AsmElfSectionTableEntry.setDataPrototype(
20400 "SgUnsignedCharList", "extra", "",
20401 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20402#endif // !DOCUMENTATION
20403
20404 DECLARE_OTHERS(AsmElfSectionTableEntry);
20405#if defined(SgAsmElfSectionTableEntry_OTHERS) || defined(DOCUMENTATION)
20406
20407 //----------------------- Boost serialization for SgAsmElfSectionTableEntry -----------------------
20408#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20409private:
20410 friend class boost::serialization::access;
20411
20412 template<class S>
20413 void serialize(S &s, const unsigned /*version*/) {
20414 debugSerializationBegin("SgAsmElfSectionTableEntry");
20415 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20416 s & BOOST_SERIALIZATION_NVP(p_sh_name);
20417 s & BOOST_SERIALIZATION_NVP(p_sh_type);
20418 s & BOOST_SERIALIZATION_NVP(p_sh_link);
20419 s & BOOST_SERIALIZATION_NVP(p_sh_info);
20420 s & BOOST_SERIALIZATION_NVP(p_sh_flags);
20421 s & BOOST_SERIALIZATION_NVP(p_sh_addr);
20422 s & BOOST_SERIALIZATION_NVP(p_sh_offset);
20423 s & BOOST_SERIALIZATION_NVP(p_sh_size);
20424 s & BOOST_SERIALIZATION_NVP(p_sh_addralign);
20425 s & BOOST_SERIALIZATION_NVP(p_sh_entsize);
20426 s & BOOST_SERIALIZATION_NVP(p_extra);
20427 debugSerializationEnd("SgAsmElfSectionTableEntry");
20428 }
20429#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20431 // Local types
20433public:
20449 SHT_LOOS = 0x60000000,
20450 SHT_GNU_verdef = 0x6ffffffd,
20451 SHT_GNU_verneed = 0x6ffffffe,
20452 SHT_GNU_versym = 0x6fffffff,
20453 SHT_HIOS = 0x6fffffff, /*NO_STRINGIFY*/
20454
20455 SHT_LOPROC = 0x70000000, /* Processor specific semantics */
20456 SHT_HIPROC = 0x7fffffff,
20457 SHT_LOUSER = 0x80000000, /* Application specific semantics */
20458 SHT_HIUSER = 0xffffffff
20459 };
20460
20464 SHF_WRITE= (1 << 0),
20465 SHF_ALLOC= (1 << 1),
20466 SHF_EXECINSTR= (1 << 2),
20467 SHF_MERGE= (1 << 4),
20468 SHF_STRINGS= (1 << 5),
20469 SHF_INFO_LINK= (1 << 6),
20470 SHF_LINK_ORDER= (1 << 7),
20472 SHF_GROUP= (1 << 9),
20473 SHF_TLS= (1 << 10),
20474 SHF_MASKOS= 0x0ff00000,
20475 SHF_MASKPROC= 0xf0000000
20477
20484#ifdef _MSC_VER
20485# pragma pack (1)
20486#endif
20488 uint32_t sh_name; /* 0x00 Section name; index into section header string table */
20489 uint32_t sh_type; /* 0x04 Section contents and semantics (see SectionType enum) */
20490 uint32_t sh_flags; /* 0x08 Bit flags */
20491 uint32_t sh_addr; /* 0x0c Desired mapped address */
20492 uint32_t sh_offset; /* 0x10 Section location in file unless sh_type==SHT_NOBITS */
20493 uint32_t sh_size; /* 0x14 Section size in bytes */
20494 uint32_t sh_link; /* 0x18 Section ID of another section; meaning depends on section type */
20495 uint32_t sh_info; /* 0x1c Extra info depending on section type */
20496 uint32_t sh_addralign; /* 0x20 Mapped alignment (0 and 1=>byte aligned); sh_addr must be aligned*/
20497 uint32_t sh_entsize; /* 0x24 If non-zero, size in bytes of each array member in the section */
20498 } /* 0x28 */
20499#if !defined(SWIG) && !defined(_MSC_VER)
20500 __attribute__((packed))
20501#endif
20502 ;
20503
20505 uint32_t sh_name; /* 0x00 see Elf32SectionTableEntry_disk */
20506 uint32_t sh_type; /* 0x04 */
20507 uint64_t sh_flags; /* 0x08 */
20508 uint64_t sh_addr; /* 0x10 */
20509 uint64_t sh_offset; /* 0x18 */
20510 uint64_t sh_size; /* 0x20 */
20511 uint32_t sh_link; /* 0x28 */
20512 uint32_t sh_info; /* 0x2c */
20513 uint64_t sh_addralign; /* 0x30 */
20514 uint64_t sh_entsize; /* 0x38 */
20515 } /* 0x40 */
20516#if !defined(SWIG) && !defined(_MSC_VER)
20517 __attribute__((packed))
20518#endif
20519 ;
20520#ifdef _MSC_VER
20521# pragma pack ()
20522#endif
20523
20525 // Properties
20527public:
20528public:
20534 unsigned const& get_sh_name() const;
20535 void set_sh_name(unsigned const&);
20538public:
20548public:
20554 unsigned long const& get_sh_link() const;
20555 void set_sh_link(unsigned long const&);
20558public:
20564 unsigned long const& get_sh_info() const;
20565 void set_sh_info(unsigned long const&);
20568public:
20574 uint64_t const& get_sh_flags() const;
20575 void set_sh_flags(uint64_t const&);
20578public:
20588public:
20598public:
20608public:
20618public:
20628public:
20634 SgUnsignedCharList const& get_extra() const;
20635 SgUnsignedCharList& get_extra();
20636 void set_extra(SgUnsignedCharList const&);
20639 // Functions
20641public:
20645
20649
20661
20663 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
20664
20665 // Use Rose::stringify... function instead.
20666 static std::string toString(SgAsmElfSectionTableEntry::SectionType);
20667 static std::string toString(SgAsmElfSectionTableEntry::SectionFlags);
20668
20670 // Deprecated 2023-11
20672public:
20673 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
20674 static std::string to_string(SgAsmElfSectionTableEntry::SectionType) ROSE_DEPRECATED("use toString");
20675 static std::string to_string(SgAsmElfSectionTableEntry::SectionFlags) ROSE_DEPRECATED("use toString");
20676public:
20679
20680public:
20683
20684protected:
20692#endif // SgAsmElfSectionTableEntry_OTHERS
20693#ifdef DOCUMENTATION
20694};
20695#endif // DOCUMENTATION
20696
20697
20699// SgAsmElfSectionTable -- MACHINE GENERATED; DO NOT MODIFY --
20701
20702DECLARE_LEAF_CLASS(AsmElfSectionTable);
20703IS_SERIALIZABLE(AsmElfSectionTable);
20704
20705#ifndef DOCUMENTATION
20706AsmElfSectionTable.useSmallHeader(true);
20707#endif // !DOCUMENTATION
20708
20709DECLARE_HEADERS(AsmElfSectionTable);
20710#if defined(SgAsmElfSectionTable_HEADERS) || defined(DOCUMENTATION)
20711#include <Rose/BinaryAnalysis/Address.h>
20712#endif // SgAsmElfSectionTable_HEADERS
20713
20714#ifdef DOCUMENTATION
20721#endif // DOCUMENTATION
20722
20723 DECLARE_OTHERS(AsmElfSectionTable);
20724#if defined(SgAsmElfSectionTable_OTHERS) || defined(DOCUMENTATION)
20725
20726 //----------------------- Boost serialization for SgAsmElfSectionTable -----------------------
20727#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20728private:
20729 friend class boost::serialization::access;
20730
20731 template<class S>
20732 void serialize(S &s, const unsigned /*version*/) {
20733 debugSerializationBegin("SgAsmElfSectionTable");
20734 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
20735 debugSerializationEnd("SgAsmElfSectionTable");
20736 }
20737#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20738public:
20741
20747 virtual SgAsmElfSectionTable *parse() override;
20748
20760
20764 Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
20765
20766 virtual bool reallocate() override;
20767
20769 virtual void unparse(std::ostream&) const override;
20770
20772 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20773
20775 // Deprecated 2023-11
20777public:
20778 SgAsmElfSectionTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
20779 Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
20780public:
20783
20784public:
20787
20788protected:
20796#endif // SgAsmElfSectionTable_OTHERS
20797#ifdef DOCUMENTATION
20798};
20799#endif // DOCUMENTATION
20800
20801
20803// SgAsmElfRelocSection -- MACHINE GENERATED; DO NOT MODIFY --
20805
20806DECLARE_LEAF_CLASS(AsmElfRelocSection);
20807IS_SERIALIZABLE(AsmElfRelocSection);
20808
20809#ifndef DOCUMENTATION
20810AsmElfRelocSection.useSmallHeader(true);
20811#endif // !DOCUMENTATION
20812
20813DECLARE_HEADERS(AsmElfRelocSection);
20814#if defined(SgAsmElfRelocSection_HEADERS) || defined(DOCUMENTATION)
20815#include <Rose/BinaryAnalysis/Address.h>
20816
20817#ifdef ROSE_SgAsmElfRelocSection_IMPL
20818#include <SgAsmElfRelocEntryList.h>
20819#endif
20820#endif // SgAsmElfRelocSection_HEADERS
20821
20822#ifdef DOCUMENTATION
20825#endif // DOCUMENTATION
20826
20827#ifndef DOCUMENTATION
20828 AsmElfRelocSection.setDataPrototype(
20829 "bool", "usesAddend", "= true",
20830 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20831#endif // !DOCUMENTATION
20832
20833#ifndef DOCUMENTATION
20834 AsmElfRelocSection.setDataPrototype(
20835 "SgAsmElfSection*", "targetSection", "= nullptr",
20836 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20837#endif // !DOCUMENTATION
20838
20839#ifndef DOCUMENTATION
20840 AsmElfRelocSection.setDataPrototype(
20841 "SgAsmElfRelocEntryList*", "entries", "= createAndParent<SgAsmElfRelocEntryList>(this)",
20842 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
20843#endif // !DOCUMENTATION
20844
20845 DECLARE_OTHERS(AsmElfRelocSection);
20846#if defined(SgAsmElfRelocSection_OTHERS) || defined(DOCUMENTATION)
20847
20848 //----------------------- Boost serialization for SgAsmElfRelocSection -----------------------
20849#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20850private:
20851 friend class boost::serialization::access;
20852
20853 template<class S>
20854 void serialize(S &s, const unsigned /*version*/) {
20855 debugSerializationBegin("SgAsmElfRelocSection");
20856 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
20857 s & BOOST_SERIALIZATION_NVP(p_usesAddend);
20858 s & BOOST_SERIALIZATION_NVP(p_targetSection);
20859 s & BOOST_SERIALIZATION_NVP(p_entries);
20860 debugSerializationEnd("SgAsmElfRelocSection");
20861 }
20862#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20863public:
20864public:
20868 bool const& get_usesAddend() const;
20869 void set_usesAddend(bool const&);
20872public:
20880public:
20889public:
20891
20894 virtual SgAsmElfRelocSection *parse() override;
20895
20898 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
20899
20900 virtual bool reallocate() override;
20901
20903 virtual void unparse(std::ostream&) const override;
20904
20906 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20907
20909 // Deprecated 2023-11
20911public:
20912 bool get_uses_addend() const ROSE_DEPRECATED("use get_usesAddend");
20913 void set_uses_addend(bool) ROSE_DEPRECATED("use set_usesAddend");
20914 SgAsmElfSection* get_target_section() const ROSE_DEPRECATED("use get_targetSection");
20915 void set_target_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_targetSection");
20916 using SgAsmElfSection::calculate_sizes;
20917 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
20918 ROSE_DEPRECATED("use calculateSizes");
20919public:
20922
20923public:
20926
20927protected:
20935#endif // SgAsmElfRelocSection_OTHERS
20936#ifdef DOCUMENTATION
20937};
20938#endif // DOCUMENTATION
20939
20940
20942// SgAsmElfRelocEntryList -- MACHINE GENERATED; DO NOT MODIFY --
20944
20945DECLARE_LEAF_CLASS(AsmElfRelocEntryList);
20946IS_SERIALIZABLE(AsmElfRelocEntryList);
20947
20948#ifndef DOCUMENTATION
20949AsmElfRelocEntryList.useSmallHeader(true);
20950#endif // !DOCUMENTATION
20951
20952DECLARE_HEADERS(AsmElfRelocEntryList);
20953#if defined(SgAsmElfRelocEntryList_HEADERS) || defined(DOCUMENTATION)
20954#include <sageContainer.h>
20955#endif // SgAsmElfRelocEntryList_HEADERS
20956
20957#ifdef DOCUMENTATION
20963#endif // DOCUMENTATION
20964
20965#ifndef DOCUMENTATION
20966 AsmElfRelocEntryList.setDataPrototype(
20967 "SgAsmElfRelocEntryPtrList", "entries", "",
20968 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
20969#endif // !DOCUMENTATION
20970
20971 DECLARE_OTHERS(AsmElfRelocEntryList);
20972#if defined(SgAsmElfRelocEntryList_OTHERS) || defined(DOCUMENTATION)
20973
20974 //----------------------- Boost serialization for SgAsmElfRelocEntryList -----------------------
20975#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20976private:
20977 friend class boost::serialization::access;
20978
20979 template<class S>
20980 void serialize(S &s, const unsigned /*version*/) {
20981 debugSerializationBegin("SgAsmElfRelocEntryList");
20982 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20983 s & BOOST_SERIALIZATION_NVP(p_entries);
20984 debugSerializationEnd("SgAsmElfRelocEntryList");
20985 }
20986#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20987public:
20988public:
20992 SgAsmElfRelocEntryPtrList const& get_entries() const;
20993 SgAsmElfRelocEntryPtrList& get_entries();
20994 void set_entries(SgAsmElfRelocEntryPtrList const&);
20997public:
21000
21001public:
21004
21005protected:
21013#endif // SgAsmElfRelocEntryList_OTHERS
21014#ifdef DOCUMENTATION
21015};
21016#endif // DOCUMENTATION
21017
21018
21020// SgAsmElfRelocEntry -- MACHINE GENERATED; DO NOT MODIFY --
21022
21023DECLARE_LEAF_CLASS(AsmElfRelocEntry);
21024IS_SERIALIZABLE(AsmElfRelocEntry);
21025
21026#ifndef DOCUMENTATION
21027AsmElfRelocEntry.useSmallHeader(true);
21028#endif // !DOCUMENTATION
21029
21030DECLARE_HEADERS(AsmElfRelocEntry);
21031#if defined(SgAsmElfRelocEntry_HEADERS) || defined(DOCUMENTATION)
21032#include <Rose/BinaryAnalysis/Address.h>
21033#include <Rose/BinaryAnalysis/ByteOrder.h>
21034#include <sageContainer.h>
21035#endif // SgAsmElfRelocEntry_HEADERS
21036
21037#ifdef DOCUMENTATION
21040#endif // DOCUMENTATION
21041
21042#ifndef DOCUMENTATION
21043 AsmElfRelocEntry.setDataPrototype(
21044 "Rose::BinaryAnalysis::Address", "r_offset", "= 0",
21045 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21046#endif // !DOCUMENTATION
21047
21048#ifndef DOCUMENTATION
21049 AsmElfRelocEntry.setDataPrototype(
21050 "Rose::BinaryAnalysis::Address", "r_addend", "= 0",
21051 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21052#endif // !DOCUMENTATION
21053
21054#ifndef DOCUMENTATION
21055 AsmElfRelocEntry.setDataPrototype(
21056 "unsigned long", "sym", "= 0",
21057 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21058#endif // !DOCUMENTATION
21059
21060#ifndef DOCUMENTATION
21061 AsmElfRelocEntry.setDataPrototype(
21062 "SgAsmElfRelocEntry::RelocType", "type", "= R_386_NONE",
21063 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21064#endif // !DOCUMENTATION
21065
21066#ifndef DOCUMENTATION
21067 AsmElfRelocEntry.setDataPrototype(
21068 "SgUnsignedCharList", "extra", "",
21069 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21070#endif // !DOCUMENTATION
21071
21072 DECLARE_OTHERS(AsmElfRelocEntry);
21073#if defined(SgAsmElfRelocEntry_OTHERS) || defined(DOCUMENTATION)
21074
21075 //----------------------- Boost serialization for SgAsmElfRelocEntry -----------------------
21076#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21077private:
21078 friend class boost::serialization::access;
21079
21080 template<class S>
21081 void serialize(S &s, const unsigned /*version*/) {
21082 debugSerializationBegin("SgAsmElfRelocEntry");
21083 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21084 s & BOOST_SERIALIZATION_NVP(p_r_offset);
21085 s & BOOST_SERIALIZATION_NVP(p_r_addend);
21086 s & BOOST_SERIALIZATION_NVP(p_sym);
21087 s & BOOST_SERIALIZATION_NVP(p_type);
21088 s & BOOST_SERIALIZATION_NVP(p_extra);
21089 debugSerializationEnd("SgAsmElfRelocEntry");
21090 }
21091#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21093 // Local types
21095public:
21098 // Intel 80386 specific definitions.
21110 R_386_32PLT =11,
21117 R_386_16 =20,
21118 R_386_PC16 =21,
21119 R_386_8 =22,
21120 R_386_PC8 =23,
21136 // First Entry for X86-64
21160 R_X86_64_TPOFF32 =123
21162
21163#ifdef _MSC_VER
21164# pragma pack (1)
21165#endif
21166
21168 uint32_t r_offset;
21169 uint32_t r_info;
21170 uint32_t r_addend;
21171 }
21172#if !defined(SWIG) && !defined(_MSC_VER)
21173 __attribute__((packed))
21174#endif
21175 ;
21176
21178 uint64_t r_offset;
21179 uint64_t r_info;
21180 uint64_t r_addend;
21181 }
21182#if !defined(SWIG) && !defined(_MSC_VER)
21183 __attribute__((packed))
21184#endif
21185 ;
21186
21188 uint32_t r_offset;
21189 uint32_t r_info;
21190 }
21191#if !defined(SWIG) && !defined(_MSC_VER)
21192 __attribute__((packed))
21193#endif
21194 ;
21195
21197 uint64_t r_offset;
21198 uint64_t r_info;
21199 }
21200#if !defined(SWIG) && !defined(_MSC_VER)
21201 __attribute__((packed))
21202#endif
21203 ;
21204
21205#ifdef _MSC_VER
21206# pragma pack ()
21207#endif
21208
21210 // Properties
21212public:
21213public:
21223public:
21233public:
21239 unsigned long const& get_sym() const;
21240 void set_sym(unsigned long const&);
21243public:
21253public:
21257 SgUnsignedCharList const& get_extra() const;
21258 SgUnsignedCharList& get_extra();
21259 void set_extra(SgUnsignedCharList const&);
21262 // Functions
21264public:
21267
21289 void dump(FILE *f, const char *prefix, ssize_t idx, SgAsmElfSymbolSection *symtab) const;
21290 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const {
21291 dump(f, prefix, idx, NULL);
21292 }
21296 std::string toString() const;
21297
21299 // Deprecated 2023-11
21301public:
21302 std::string reloc_name() const ROSE_DEPRECATED("use toString");
21303public:
21306
21307public:
21310
21311protected:
21319#endif // SgAsmElfRelocEntry_OTHERS
21320#ifdef DOCUMENTATION
21321};
21322#endif // DOCUMENTATION
21323
21324
21326// SgAsmElfNoteSection -- MACHINE GENERATED; DO NOT MODIFY --
21328
21329DECLARE_LEAF_CLASS(AsmElfNoteSection);
21330IS_SERIALIZABLE(AsmElfNoteSection);
21331
21332#ifndef DOCUMENTATION
21333AsmElfNoteSection.useSmallHeader(true);
21334#endif // !DOCUMENTATION
21335
21336DECLARE_HEADERS(AsmElfNoteSection);
21337#if defined(SgAsmElfNoteSection_HEADERS) || defined(DOCUMENTATION)
21338#ifdef ROSE_SgAsmElfNoteSection_IMPL
21339#include <SgAsmElfNoteEntryList.h>
21340#endif
21341#endif // SgAsmElfNoteSection_HEADERS
21342
21343#ifdef DOCUMENTATION
21345#endif // DOCUMENTATION
21346
21347#ifndef DOCUMENTATION
21348 AsmElfNoteSection.setDataPrototype(
21349 "SgAsmElfNoteEntryList*", "entries", "= createAndParent<SgAsmElfNoteEntryList>(this)",
21350 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21351#endif // !DOCUMENTATION
21352
21353 DECLARE_OTHERS(AsmElfNoteSection);
21354#if defined(SgAsmElfNoteSection_OTHERS) || defined(DOCUMENTATION)
21355
21356 //----------------------- Boost serialization for SgAsmElfNoteSection -----------------------
21357#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21358private:
21359 friend class boost::serialization::access;
21360
21361 template<class S>
21362 void serialize(S &s, const unsigned /*version*/) {
21363 debugSerializationBegin("SgAsmElfNoteSection");
21364 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
21365 s & BOOST_SERIALIZATION_NVP(p_entries);
21366 debugSerializationEnd("SgAsmElfNoteSection");
21367 }
21368#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21369public:
21370public:
21380public:
21383
21384 virtual SgAsmElfNoteSection *parse() override;
21385
21386 virtual bool reallocate() override;
21387
21389 virtual void unparse(std::ostream&) const override;
21390
21392 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21393public:
21396
21397public:
21400
21401protected:
21409#endif // SgAsmElfNoteSection_OTHERS
21410#ifdef DOCUMENTATION
21411};
21412#endif // DOCUMENTATION
21413
21414
21416// SgAsmElfNoteEntryList -- MACHINE GENERATED; DO NOT MODIFY --
21418
21419DECLARE_LEAF_CLASS(AsmElfNoteEntryList);
21420IS_SERIALIZABLE(AsmElfNoteEntryList);
21421
21422#ifndef DOCUMENTATION
21423AsmElfNoteEntryList.useSmallHeader(true);
21424#endif // !DOCUMENTATION
21425
21426DECLARE_HEADERS(AsmElfNoteEntryList);
21427#if defined(SgAsmElfNoteEntryList_HEADERS) || defined(DOCUMENTATION)
21428#include <sageContainer.h>
21429#endif // SgAsmElfNoteEntryList_HEADERS
21430
21431#ifdef DOCUMENTATION
21437#endif // DOCUMENTATION
21438
21439#ifndef DOCUMENTATION
21440 AsmElfNoteEntryList.setDataPrototype(
21441 "SgAsmElfNoteEntryPtrList", "entries", "",
21442 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21443#endif // !DOCUMENTATION
21444
21445 DECLARE_OTHERS(AsmElfNoteEntryList);
21446#if defined(SgAsmElfNoteEntryList_OTHERS) || defined(DOCUMENTATION)
21447
21448 //----------------------- Boost serialization for SgAsmElfNoteEntryList -----------------------
21449#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21450private:
21451 friend class boost::serialization::access;
21452
21453 template<class S>
21454 void serialize(S &s, const unsigned /*version*/) {
21455 debugSerializationBegin("SgAsmElfNoteEntryList");
21456 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21457 s & BOOST_SERIALIZATION_NVP(p_entries);
21458 debugSerializationEnd("SgAsmElfNoteEntryList");
21459 }
21460#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21461public:
21462public:
21466 SgAsmElfNoteEntryPtrList const& get_entries() const;
21467 SgAsmElfNoteEntryPtrList& get_entries();
21468 void set_entries(SgAsmElfNoteEntryPtrList const&);
21471public:
21474
21475public:
21478
21479protected:
21487#endif // SgAsmElfNoteEntryList_OTHERS
21488#ifdef DOCUMENTATION
21489};
21490#endif // DOCUMENTATION
21491
21492
21494// SgAsmElfNoteEntry -- MACHINE GENERATED; DO NOT MODIFY --
21496
21497DECLARE_LEAF_CLASS(AsmElfNoteEntry);
21498IS_SERIALIZABLE(AsmElfNoteEntry);
21499
21500#ifndef DOCUMENTATION
21501AsmElfNoteEntry.useSmallHeader(true);
21502#endif // !DOCUMENTATION
21503
21504DECLARE_HEADERS(AsmElfNoteEntry);
21505#if defined(SgAsmElfNoteEntry_HEADERS) || defined(DOCUMENTATION)
21506#include <Rose/BinaryAnalysis/Address.h>
21507
21508#include <sageContainer.h>
21509
21510#ifdef ROSE_SgAsmElfNoteEntry_IMPL
21511#include <SgAsmBasicString.h>
21512#endif
21513#endif // SgAsmElfNoteEntry_HEADERS
21514
21515#ifdef DOCUMENTATION
21518#endif // DOCUMENTATION
21519
21520#ifndef DOCUMENTATION
21521 AsmElfNoteEntry.setDataPrototype(
21522 "unsigned", "type", "= 0",
21523 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21524#endif // !DOCUMENTATION
21525
21526#ifndef DOCUMENTATION
21527 AsmElfNoteEntry.setDataPrototype(
21528 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
21529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21530#endif // !DOCUMENTATION
21531
21532#ifndef DOCUMENTATION
21533 AsmElfNoteEntry.setDataPrototype(
21534 "SgUnsignedCharList", "payload", "",
21535 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21536#endif // !DOCUMENTATION
21537
21538 DECLARE_OTHERS(AsmElfNoteEntry);
21539#if defined(SgAsmElfNoteEntry_OTHERS) || defined(DOCUMENTATION)
21540
21541 //----------------------- Boost serialization for SgAsmElfNoteEntry -----------------------
21542#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21543private:
21544 friend class boost::serialization::access;
21545
21546 template<class S>
21547 void serialize(S &s, const unsigned /*version*/) {
21548 debugSerializationBegin("SgAsmElfNoteEntry");
21549 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21550 s & BOOST_SERIALIZATION_NVP(p_type);
21551 s & BOOST_SERIALIZATION_NVP(p_name);
21552 s & BOOST_SERIALIZATION_NVP(p_payload);
21553 debugSerializationEnd("SgAsmElfNoteEntry");
21554 }
21555#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21556public:
21557public:
21563 unsigned const& get_type() const;
21564 void set_type(unsigned const&);
21567public:
21576public:
21582 SgUnsignedCharList const& get_payload() const;
21583 SgUnsignedCharList& get_payload();
21584 void set_payload(SgUnsignedCharList const&);
21586public:
21589
21604
21609
21611 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
21612
21616 void set_payload(const void*, size_t nbytes);
21617
21620
21622 // Deprecated 2023-11
21624public:
21625 Rose::BinaryAnalysis::Address calculate_size() const ROSE_DEPRECATED("use calculateSize");
21626public:
21629
21630public:
21633
21634protected:
21642#endif // SgAsmElfNoteEntry_OTHERS
21643#ifdef DOCUMENTATION
21644};
21645#endif // DOCUMENTATION
21646
21647
21649// SgAsmElfFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
21651
21652DECLARE_LEAF_CLASS(AsmElfFileHeader);
21653IS_SERIALIZABLE(AsmElfFileHeader);
21654
21655#ifndef DOCUMENTATION
21656AsmElfFileHeader.useSmallHeader(true);
21657#endif // !DOCUMENTATION
21658
21659DECLARE_HEADERS(AsmElfFileHeader);
21660#if defined(SgAsmElfFileHeader_HEADERS) || defined(DOCUMENTATION)
21661#include <Rose/BinaryAnalysis/ByteOrder.h>
21662#endif // SgAsmElfFileHeader_HEADERS
21663
21664#ifdef DOCUMENTATION
21674#endif // DOCUMENTATION
21675
21676#ifndef DOCUMENTATION
21677 AsmElfFileHeader.setDataPrototype(
21678 "unsigned char", "e_ident_file_class", "= 0",
21679 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21680#endif // !DOCUMENTATION
21681
21682#ifndef DOCUMENTATION
21683 AsmElfFileHeader.setDataPrototype(
21684 "unsigned char", "e_ident_data_encoding", "= 0",
21685 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21686#endif // !DOCUMENTATION
21687
21688#ifndef DOCUMENTATION
21689 AsmElfFileHeader.setDataPrototype(
21690 "unsigned char", "e_ident_file_version", "= 0",
21691 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21692#endif // !DOCUMENTATION
21693
21694#ifndef DOCUMENTATION
21695 AsmElfFileHeader.setDataPrototype(
21696 "SgUnsignedCharList", "e_ident_padding", "",
21697 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21698#endif // !DOCUMENTATION
21699
21700#ifndef DOCUMENTATION
21701 AsmElfFileHeader.setDataPrototype(
21702 "unsigned long", "e_type", "= 0",
21703 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21704#endif // !DOCUMENTATION
21705
21706#ifndef DOCUMENTATION
21707 AsmElfFileHeader.setDataPrototype(
21708 "unsigned long", "e_machine", "= 0",
21709 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21710#endif // !DOCUMENTATION
21711
21712#ifndef DOCUMENTATION
21713 AsmElfFileHeader.setDataPrototype(
21714 "unsigned long", "e_flags", "= 0",
21715 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21716#endif // !DOCUMENTATION
21717
21718#ifndef DOCUMENTATION
21719 AsmElfFileHeader.setDataPrototype(
21720 "unsigned long", "e_ehsize", "= 0",
21721 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21722#endif // !DOCUMENTATION
21723
21724#ifndef DOCUMENTATION
21725 AsmElfFileHeader.setDataPrototype(
21726 "unsigned long", "phextrasz", "= 0",
21727 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21728#endif // !DOCUMENTATION
21729
21730#ifndef DOCUMENTATION
21731 AsmElfFileHeader.setDataPrototype(
21732 "unsigned long", "e_phnum", "= 0",
21733 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21734#endif // !DOCUMENTATION
21735
21736#ifndef DOCUMENTATION
21737 AsmElfFileHeader.setDataPrototype(
21738 "unsigned long", "shextrasz", "= 0",
21739 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21740#endif // !DOCUMENTATION
21741
21742#ifndef DOCUMENTATION
21743 AsmElfFileHeader.setDataPrototype(
21744 "unsigned long", "e_shnum", "= 0",
21745 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21746#endif // !DOCUMENTATION
21747
21748#ifndef DOCUMENTATION
21749 AsmElfFileHeader.setDataPrototype(
21750 "unsigned long", "e_shstrndx", "= 0",
21751 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21752#endif // !DOCUMENTATION
21753
21754#ifndef DOCUMENTATION
21755 AsmElfFileHeader.setDataPrototype(
21756 "SgAsmElfSectionTable*", "sectionTable", "= nullptr",
21757 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21758#endif // !DOCUMENTATION
21759
21760#ifndef DOCUMENTATION
21761 AsmElfFileHeader.setDataPrototype(
21762 "SgAsmElfSegmentTable*", "segmentTable", "= nullptr",
21763 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21764#endif // !DOCUMENTATION
21765
21766 DECLARE_OTHERS(AsmElfFileHeader);
21767#if defined(SgAsmElfFileHeader_OTHERS) || defined(DOCUMENTATION)
21768
21769 //----------------------- Boost serialization for SgAsmElfFileHeader -----------------------
21770#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21771private:
21772 friend class boost::serialization::access;
21773
21774 template<class S>
21775 void serialize(S &s, const unsigned /*version*/) {
21776 debugSerializationBegin("SgAsmElfFileHeader");
21777 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
21778 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_class);
21779 s & BOOST_SERIALIZATION_NVP(p_e_ident_data_encoding);
21780 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_version);
21781 s & BOOST_SERIALIZATION_NVP(p_e_ident_padding);
21782 s & BOOST_SERIALIZATION_NVP(p_e_type);
21783 s & BOOST_SERIALIZATION_NVP(p_e_machine);
21784 s & BOOST_SERIALIZATION_NVP(p_e_flags);
21785 s & BOOST_SERIALIZATION_NVP(p_e_ehsize);
21786 s & BOOST_SERIALIZATION_NVP(p_phextrasz);
21787 s & BOOST_SERIALIZATION_NVP(p_e_phnum);
21788 s & BOOST_SERIALIZATION_NVP(p_shextrasz);
21789 s & BOOST_SERIALIZATION_NVP(p_e_shnum);
21790 s & BOOST_SERIALIZATION_NVP(p_e_shstrndx);
21791 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
21792 s & BOOST_SERIALIZATION_NVP(p_segmentTable);
21793 debugSerializationEnd("SgAsmElfFileHeader");
21794 }
21795#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21797 // Local types
21799public:
21802 ET_NONE = 0
21808 ,ET_LOOS = 0xfe00
21809 ,ET_HIOS = 0xfeff
21810 ,ET_LOPROC = 0xff00
21811 ,ET_HIPROC = 0xffff
21813
21814 // Some structures are used to represent certain things whose layout is very precise in binary files, thus we need to
21815 // make sure the compiler doesn't insert alignment padding between the struct members. ROSE can be compiled on an
21816 // architecture that has different alignment constraints than the architecture that these structs describe. GNU
21817 // compilers have long used the attribute mechanism. Microsoft compilers on the other hand use pragmas. GCC versions
21818 // 4.0 and earlier do not recognize the Microsoft pragmas and issue compiler errors when one is encountered.
21819#ifdef _MSC_VER
21820# pragma pack (1)
21821#endif
21822
21829 unsigned char e_ident_magic[4];
21830 unsigned char e_ident_file_class;
21832 unsigned char e_ident_file_version;
21833 unsigned char e_ident_padding[9];
21834 uint16_t e_type;
21835 uint16_t e_machine;
21836 uint32_t e_version;
21837 uint32_t e_entry;
21838 uint32_t e_phoff;
21839 uint32_t e_shoff;
21840 uint32_t e_flags;
21841 uint16_t e_ehsize;
21842 uint16_t e_phentsize;
21843 uint16_t e_phnum;
21844 uint16_t e_shentsize;
21845 uint16_t e_shnum;
21846 uint16_t e_shstrndx;
21847 }
21848#if !defined(SWIG) && !defined(_MSC_VER)
21849 __attribute__((packed))
21850#endif
21851 ;
21852
21854 unsigned char e_ident_magic[4];
21855 unsigned char e_ident_file_class;
21856 unsigned char e_ident_data_encoding;
21857 unsigned char e_ident_file_version;
21858 unsigned char e_ident_padding[9];
21859 uint16_t e_type;
21860 uint16_t e_machine;
21861 uint32_t e_version;
21862 uint64_t e_entry;
21863 uint64_t e_phoff;
21864 uint64_t e_shoff;
21865 uint32_t e_flags;
21866 uint16_t e_ehsize;
21867 uint16_t e_phentsize;
21868 uint16_t e_phnum;
21869 uint16_t e_shentsize;
21870 uint16_t e_shnum;
21871 uint16_t e_shstrndx;
21872 }
21873#if !defined(SWIG) && !defined(_MSC_VER)
21874 __attribute__((packed))
21875#endif
21876 ;
21877
21878#ifdef _MSC_VER
21879# pragma pack ()
21880#endif
21881
21883 // Properties
21885public:
21886public:
21892 unsigned char const& get_e_ident_file_class() const;
21893 void set_e_ident_file_class(unsigned char const&);
21896public:
21902 unsigned char const& get_e_ident_data_encoding() const;
21903 void set_e_ident_data_encoding(unsigned char const&);
21906public:
21912 unsigned char const& get_e_ident_file_version() const;
21913 void set_e_ident_file_version(unsigned char const&);
21916public:
21922 SgUnsignedCharList const& get_e_ident_padding() const;
21923 void set_e_ident_padding(SgUnsignedCharList const&);
21926public:
21932 unsigned long const& get_e_type() const;
21933 void set_e_type(unsigned long const&);
21936public:
21942 unsigned long const& get_e_machine() const;
21943 void set_e_machine(unsigned long const&);
21946public:
21952 unsigned long const& get_e_flags() const;
21953 void set_e_flags(unsigned long const&);
21956public:
21962 unsigned long const& get_e_ehsize() const;
21963 void set_e_ehsize(unsigned long const&);
21966public:
21972 unsigned long const& get_phextrasz() const;
21973 void set_phextrasz(unsigned long const&);
21976public:
21982 unsigned long const& get_e_phnum() const;
21983 void set_e_phnum(unsigned long const&);
21986public:
21992 unsigned long const& get_shextrasz() const;
21993 void set_shextrasz(unsigned long const&);
21996public:
22002 unsigned long const& get_e_shnum() const;
22003 void set_e_shnum(unsigned long const&);
22006public:
22012 unsigned long const& get_e_shstrndx() const;
22013 void set_e_shstrndx(unsigned long const&);
22016public:
22028public:
22039 // Functions
22041public:
22049
22056
22059
22062
22068 virtual SgAsmElfFileHeader *parse() override;
22069
22070 virtual bool reallocate() override;
22071
22073 virtual void unparse(std::ostream&) const override;
22074
22076 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22077
22080
22082 SgAsmGenericSectionPtrList get_sectionTableSections();
22083
22085 SgAsmGenericSectionPtrList get_segmentTableSections();
22086
22087 // Overrides documented in base class
22088 virtual const char *formatName() const override;
22089
22090private:
22093
22095 // Deprecated 2023-11
22097public:
22098 SgAsmElfSectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
22099 void set_section_table(SgAsmElfSectionTable*) ROSE_DEPRECATED("use set_sectionTable");
22100 SgAsmElfSegmentTable* get_segment_table() const ROSE_DEPRECATED("use get_segmentTable");
22101 void set_segment_table(SgAsmElfSegmentTable*) ROSE_DEPRECATED("use set_segmentTable");
22102 uint64_t max_page_size() ROSE_DEPRECATED("use maximumPageSize");
22103 static SgAsmExecutableFileFormat::InsSetArchitecture machine_to_isa(unsigned) ROSE_DEPRECATED("use machineToIsa");
22104 unsigned isa_to_machine(SgAsmExecutableFileFormat::InsSetArchitecture) const ROSE_DEPRECATED("use isaToMachine");
22105 static bool is_ELF(SgAsmGenericFile*) ROSE_DEPRECATED("use isElf");
22106 SgAsmGenericSectionPtrList get_sectab_sections() ROSE_DEPRECATED("use get_sectionTableSections");
22107 SgAsmGenericSectionPtrList get_segtab_sections() ROSE_DEPRECATED("use get_segmentTableSections");
22108 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
22109public:
22112
22113public:
22116
22117protected:
22125#endif // SgAsmElfFileHeader_OTHERS
22126#ifdef DOCUMENTATION
22127};
22128#endif // DOCUMENTATION
22129
22130
22132// SgAsmElfEHFrameSection -- MACHINE GENERATED; DO NOT MODIFY --
22134
22135DECLARE_LEAF_CLASS(AsmElfEHFrameSection);
22136IS_SERIALIZABLE(AsmElfEHFrameSection);
22137
22138#ifndef DOCUMENTATION
22139AsmElfEHFrameSection.useSmallHeader(true);
22140#endif // !DOCUMENTATION
22141
22142DECLARE_HEADERS(AsmElfEHFrameSection);
22143#if defined(SgAsmElfEHFrameSection_HEADERS) || defined(DOCUMENTATION)
22144#include <Rose/BinaryAnalysis/Address.h>
22145
22146#ifdef ROSE_SgAsmElfEHFrameSection_IMPL
22147#include <SgAsmElfEHFrameEntryCIList.h>
22148#endif
22149#endif // SgAsmElfEHFrameSection_HEADERS
22150
22151#ifdef DOCUMENTATION
22154#endif // DOCUMENTATION
22155
22156#ifndef DOCUMENTATION
22157 AsmElfEHFrameSection.setDataPrototype(
22158 "SgAsmElfEHFrameEntryCIList*", "ci_entries", "= createAndParent<SgAsmElfEHFrameEntryCIList>(this)",
22159 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22160#endif // !DOCUMENTATION
22161
22162 DECLARE_OTHERS(AsmElfEHFrameSection);
22163#if defined(SgAsmElfEHFrameSection_OTHERS) || defined(DOCUMENTATION)
22164
22165 //----------------------- Boost serialization for SgAsmElfEHFrameSection -----------------------
22166#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22167private:
22168 friend class boost::serialization::access;
22169
22170 template<class S>
22171 void serialize(S &s, const unsigned /*version*/) {
22172 debugSerializationBegin("SgAsmElfEHFrameSection");
22173 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
22174 s & BOOST_SERIALIZATION_NVP(p_ci_entries);
22175 debugSerializationEnd("SgAsmElfEHFrameSection");
22176 }
22177#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22178public:
22179public:
22189public:
22192
22194 virtual SgAsmElfEHFrameSection *parse() override;
22195
22201 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
22202
22204 virtual void unparse(std::ostream&) const override;
22205
22211
22213 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22214
22216 // Deprecated 2023-11
22218public:
22219 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
22220 ROSE_DEPRECATED("use calculateSizes");
22221public:
22224
22225public:
22228
22229protected:
22237#endif // SgAsmElfEHFrameSection_OTHERS
22238#ifdef DOCUMENTATION
22239};
22240#endif // DOCUMENTATION
22241
22242
22244// SgAsmElfEHFrameEntryFDList -- MACHINE GENERATED; DO NOT MODIFY --
22246
22247DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFDList);
22248IS_SERIALIZABLE(AsmElfEHFrameEntryFDList);
22249
22250#ifndef DOCUMENTATION
22251AsmElfEHFrameEntryFDList.useSmallHeader(true);
22252#endif // !DOCUMENTATION
22253
22254DECLARE_HEADERS(AsmElfEHFrameEntryFDList);
22255#if defined(SgAsmElfEHFrameEntryFDList_HEADERS) || defined(DOCUMENTATION)
22256#include <sageContainer.h>
22257#endif // SgAsmElfEHFrameEntryFDList_HEADERS
22258
22259#ifdef DOCUMENTATION
22265#endif // DOCUMENTATION
22266
22267#ifndef DOCUMENTATION
22268 AsmElfEHFrameEntryFDList.setDataPrototype(
22269 "SgAsmElfEHFrameEntryFDPtrList", "entries", "",
22270 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22271#endif // !DOCUMENTATION
22272
22273 DECLARE_OTHERS(AsmElfEHFrameEntryFDList);
22274#if defined(SgAsmElfEHFrameEntryFDList_OTHERS) || defined(DOCUMENTATION)
22275
22276 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFDList -----------------------
22277#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22278private:
22279 friend class boost::serialization::access;
22280
22281 template<class S>
22282 void serialize(S &s, const unsigned /*version*/) {
22283 debugSerializationBegin("SgAsmElfEHFrameEntryFDList");
22284 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22285 s & BOOST_SERIALIZATION_NVP(p_entries);
22286 debugSerializationEnd("SgAsmElfEHFrameEntryFDList");
22287 }
22288#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22289public:
22290public:
22294 SgAsmElfEHFrameEntryFDPtrList const& get_entries() const;
22295 SgAsmElfEHFrameEntryFDPtrList& get_entries();
22296 void set_entries(SgAsmElfEHFrameEntryFDPtrList const&);
22299public:
22302
22303public:
22306
22307protected:
22315#endif // SgAsmElfEHFrameEntryFDList_OTHERS
22316#ifdef DOCUMENTATION
22317};
22318#endif // DOCUMENTATION
22319
22320
22322// SgAsmElfEHFrameEntryFD -- MACHINE GENERATED; DO NOT MODIFY --
22324
22325DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFD);
22326IS_SERIALIZABLE(AsmElfEHFrameEntryFD);
22327
22328#ifndef DOCUMENTATION
22329AsmElfEHFrameEntryFD.useSmallHeader(true);
22330#endif // !DOCUMENTATION
22331
22332DECLARE_HEADERS(AsmElfEHFrameEntryFD);
22333#if defined(SgAsmElfEHFrameEntryFD_HEADERS) || defined(DOCUMENTATION)
22334#include <Rose/BinaryAnalysis/Address.h>
22335#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
22336#include <sageContainer.h>
22337#endif // SgAsmElfEHFrameEntryFD_HEADERS
22338
22339#ifdef DOCUMENTATION
22342#endif // DOCUMENTATION
22343
22344#ifndef DOCUMENTATION
22345 AsmElfEHFrameEntryFD.setDataPrototype(
22346 "Rose::BinaryAnalysis::RelativeVirtualAddress", "begin_rva", "",
22347 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22348#endif // !DOCUMENTATION
22349
22350#ifndef DOCUMENTATION
22351 AsmElfEHFrameEntryFD.setDataPrototype(
22352 "Rose::BinaryAnalysis::Address", "size", "= 0",
22353 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22354#endif // !DOCUMENTATION
22355
22356#ifndef DOCUMENTATION
22357 AsmElfEHFrameEntryFD.setDataPrototype(
22358 "SgUnsignedCharList", "augmentation_data", "",
22359 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22360#endif // !DOCUMENTATION
22361
22362#ifndef DOCUMENTATION
22363 AsmElfEHFrameEntryFD.setDataPrototype(
22364 "SgUnsignedCharList", "instructions", "",
22365 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22366#endif // !DOCUMENTATION
22367
22368 DECLARE_OTHERS(AsmElfEHFrameEntryFD);
22369#if defined(SgAsmElfEHFrameEntryFD_OTHERS) || defined(DOCUMENTATION)
22370
22371 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFD -----------------------
22372#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22373private:
22374 friend class boost::serialization::access;
22375
22376 template<class S>
22377 void serialize(S &s, const unsigned /*version*/) {
22378 debugSerializationBegin("SgAsmElfEHFrameEntryFD");
22379 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22380 s & BOOST_SERIALIZATION_NVP(p_begin_rva);
22381 s & BOOST_SERIALIZATION_NVP(p_size);
22382 s & BOOST_SERIALIZATION_NVP(p_augmentation_data);
22383 s & BOOST_SERIALIZATION_NVP(p_instructions);
22384 debugSerializationEnd("SgAsmElfEHFrameEntryFD");
22385 }
22386#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22387public:
22388public:
22399public:
22409public:
22415 SgUnsignedCharList const& get_augmentation_data() const;
22416 SgUnsignedCharList& get_augmentation_data();
22417 void set_augmentation_data(SgUnsignedCharList const&);
22420public:
22426 SgUnsignedCharList const& get_instructions() const;
22427 SgUnsignedCharList& get_instructions();
22428 void set_instructions(SgUnsignedCharList const&);
22430public:
22433
22435 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
22436
22442public:
22445
22446public:
22449
22450protected:
22458#endif // SgAsmElfEHFrameEntryFD_OTHERS
22459#ifdef DOCUMENTATION
22460};
22461#endif // DOCUMENTATION
22462
22463
22465// SgAsmElfEHFrameEntryCIList -- MACHINE GENERATED; DO NOT MODIFY --
22467
22468DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCIList);
22469IS_SERIALIZABLE(AsmElfEHFrameEntryCIList);
22470
22471#ifndef DOCUMENTATION
22472AsmElfEHFrameEntryCIList.useSmallHeader(true);
22473#endif // !DOCUMENTATION
22474
22475DECLARE_HEADERS(AsmElfEHFrameEntryCIList);
22476#if defined(SgAsmElfEHFrameEntryCIList_HEADERS) || defined(DOCUMENTATION)
22477#include <sageContainer.h>
22478#endif // SgAsmElfEHFrameEntryCIList_HEADERS
22479
22480#ifdef DOCUMENTATION
22486#endif // DOCUMENTATION
22487
22488#ifndef DOCUMENTATION
22489 AsmElfEHFrameEntryCIList.setDataPrototype(
22490 "SgAsmElfEHFrameEntryCIPtrList", "entries", "",
22491 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22492#endif // !DOCUMENTATION
22493
22494 DECLARE_OTHERS(AsmElfEHFrameEntryCIList);
22495#if defined(SgAsmElfEHFrameEntryCIList_OTHERS) || defined(DOCUMENTATION)
22496
22497 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCIList -----------------------
22498#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22499private:
22500 friend class boost::serialization::access;
22501
22502 template<class S>
22503 void serialize(S &s, const unsigned /*version*/) {
22504 debugSerializationBegin("SgAsmElfEHFrameEntryCIList");
22505 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22506 s & BOOST_SERIALIZATION_NVP(p_entries);
22507 debugSerializationEnd("SgAsmElfEHFrameEntryCIList");
22508 }
22509#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22510public:
22511public:
22515 SgAsmElfEHFrameEntryCIPtrList const& get_entries() const;
22516 SgAsmElfEHFrameEntryCIPtrList& get_entries();
22517 void set_entries(SgAsmElfEHFrameEntryCIPtrList const&);
22520public:
22523
22524public:
22527
22528protected:
22536#endif // SgAsmElfEHFrameEntryCIList_OTHERS
22537#ifdef DOCUMENTATION
22538};
22539#endif // DOCUMENTATION
22540
22541
22543// SgAsmElfEHFrameEntryCI -- MACHINE GENERATED; DO NOT MODIFY --
22545
22546DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCI);
22547IS_SERIALIZABLE(AsmElfEHFrameEntryCI);
22548
22549#ifndef DOCUMENTATION
22550AsmElfEHFrameEntryCI.useSmallHeader(true);
22551#endif // !DOCUMENTATION
22552
22553DECLARE_HEADERS(AsmElfEHFrameEntryCI);
22554#if defined(SgAsmElfEHFrameEntryCI_HEADERS) || defined(DOCUMENTATION)
22555#include <Rose/BinaryAnalysis/Address.h>
22556
22557#include <sageContainer.h>
22558
22559#ifdef ROSE_SgAsmElfEHFrameEntryCI_IMPL
22560#include <SgAsmElfEHFrameEntryFDList.h>
22561#endif
22562#endif // SgAsmElfEHFrameEntryCI_HEADERS
22563
22564#ifdef DOCUMENTATION
22569#endif // DOCUMENTATION
22570
22571#ifndef DOCUMENTATION
22572 AsmElfEHFrameEntryCI.setDataPrototype(
22573 "int", "version", "= 0",
22574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22575#endif // !DOCUMENTATION
22576
22577#ifndef DOCUMENTATION
22578 AsmElfEHFrameEntryCI.setDataPrototype(
22579 "std::string", "augmentation_string", "",
22580 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22581#endif // !DOCUMENTATION
22582
22583#ifndef DOCUMENTATION
22584 AsmElfEHFrameEntryCI.setDataPrototype(
22585 "uint64_t", "eh_data", "= 0",
22586 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22587#endif // !DOCUMENTATION
22588
22589#ifndef DOCUMENTATION
22590 AsmElfEHFrameEntryCI.setDataPrototype(
22591 "uint64_t", "code_alignment_factor", "= 0",
22592 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22593#endif // !DOCUMENTATION
22594
22595#ifndef DOCUMENTATION
22596 AsmElfEHFrameEntryCI.setDataPrototype(
22597 "int64_t", "data_alignment_factor", "= 0",
22598 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22599#endif // !DOCUMENTATION
22600
22601#ifndef DOCUMENTATION
22602 AsmElfEHFrameEntryCI.setDataPrototype(
22603 "uint64_t", "augmentation_data_length", "= 0",
22604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22605#endif // !DOCUMENTATION
22606
22607#ifndef DOCUMENTATION
22608 AsmElfEHFrameEntryCI.setDataPrototype(
22609 "int", "lsda_encoding", "= -1",
22610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22611#endif // !DOCUMENTATION
22612
22613#ifndef DOCUMENTATION
22614 AsmElfEHFrameEntryCI.setDataPrototype(
22615 "int", "prh_encoding", "= -1",
22616 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22617#endif // !DOCUMENTATION
22618
22619#ifndef DOCUMENTATION
22620 AsmElfEHFrameEntryCI.setDataPrototype(
22621 "unsigned", "prh_arg", "= 0",
22622 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22623#endif // !DOCUMENTATION
22624
22625#ifndef DOCUMENTATION
22626 AsmElfEHFrameEntryCI.setDataPrototype(
22627 "Rose::BinaryAnalysis::Address", "prh_addr", "= 0",
22628 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22629#endif // !DOCUMENTATION
22630
22631#ifndef DOCUMENTATION
22632 AsmElfEHFrameEntryCI.setDataPrototype(
22633 "int", "addr_encoding", "= -1",
22634 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22635#endif // !DOCUMENTATION
22636
22637#ifndef DOCUMENTATION
22638 AsmElfEHFrameEntryCI.setDataPrototype(
22639 "bool", "sig_frame", "= false",
22640 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22641#endif // !DOCUMENTATION
22642
22643#ifndef DOCUMENTATION
22644 AsmElfEHFrameEntryCI.setDataPrototype(
22645 "SgUnsignedCharList", "instructions", "",
22646 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22647#endif // !DOCUMENTATION
22648
22649#ifndef DOCUMENTATION
22650 AsmElfEHFrameEntryCI.setDataPrototype(
22651 "SgAsmElfEHFrameEntryFDList*", "fd_entries", "= createAndParent<SgAsmElfEHFrameEntryFDList>(this)",
22652 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22653#endif // !DOCUMENTATION
22654
22655 DECLARE_OTHERS(AsmElfEHFrameEntryCI);
22656#if defined(SgAsmElfEHFrameEntryCI_OTHERS) || defined(DOCUMENTATION)
22657
22658 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCI -----------------------
22659#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22660private:
22661 friend class boost::serialization::access;
22662
22663 template<class S>
22664 void serialize(S &s, const unsigned /*version*/) {
22665 debugSerializationBegin("SgAsmElfEHFrameEntryCI");
22666 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22667 s & BOOST_SERIALIZATION_NVP(p_version);
22668 s & BOOST_SERIALIZATION_NVP(p_augmentation_string);
22669 s & BOOST_SERIALIZATION_NVP(p_eh_data);
22670 s & BOOST_SERIALIZATION_NVP(p_code_alignment_factor);
22671 s & BOOST_SERIALIZATION_NVP(p_data_alignment_factor);
22672 s & BOOST_SERIALIZATION_NVP(p_augmentation_data_length);
22673 s & BOOST_SERIALIZATION_NVP(p_lsda_encoding);
22674 s & BOOST_SERIALIZATION_NVP(p_prh_encoding);
22675 s & BOOST_SERIALIZATION_NVP(p_prh_arg);
22676 s & BOOST_SERIALIZATION_NVP(p_prh_addr);
22677 s & BOOST_SERIALIZATION_NVP(p_addr_encoding);
22678 s & BOOST_SERIALIZATION_NVP(p_sig_frame);
22679 s & BOOST_SERIALIZATION_NVP(p_instructions);
22680 s & BOOST_SERIALIZATION_NVP(p_fd_entries);
22681 debugSerializationEnd("SgAsmElfEHFrameEntryCI");
22682 }
22683#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22684public:
22685public:
22691 int const& get_version() const;
22692 void set_version(int const&);
22695public:
22701 std::string const& get_augmentation_string() const;
22702 void set_augmentation_string(std::string const&);
22705public:
22711 uint64_t const& get_eh_data() const;
22712 void set_eh_data(uint64_t const&);
22715public:
22721 uint64_t const& get_code_alignment_factor() const;
22722 void set_code_alignment_factor(uint64_t const&);
22725public:
22731 int64_t const& get_data_alignment_factor() const;
22732 void set_data_alignment_factor(int64_t const&);
22735public:
22741 uint64_t const& get_augmentation_data_length() const;
22742 void set_augmentation_data_length(uint64_t const&);
22745public:
22751 int const& get_lsda_encoding() const;
22752 void set_lsda_encoding(int const&);
22755public:
22761 int const& get_prh_encoding() const;
22762 void set_prh_encoding(int const&);
22765public:
22771 unsigned const& get_prh_arg() const;
22772 void set_prh_arg(unsigned const&);
22775public:
22785public:
22791 int const& get_addr_encoding() const;
22792 void set_addr_encoding(int const&);
22795public:
22801 bool const& get_sig_frame() const;
22802 void set_sig_frame(bool const&);
22805public:
22811 SgUnsignedCharList const& get_instructions() const;
22812 SgUnsignedCharList& get_instructions();
22813 void set_instructions(SgUnsignedCharList const&);
22816public:
22826public:
22829
22831 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
22832
22837 std::string unparse(const SgAsmElfEHFrameSection*) const;
22838public:
22841
22842public:
22845
22846protected:
22854#endif // SgAsmElfEHFrameEntryCI_OTHERS
22855#ifdef DOCUMENTATION
22856};
22857#endif // DOCUMENTATION
22858
22859
22861// SgAsmElfDynamicSection -- MACHINE GENERATED; DO NOT MODIFY --
22863
22864DECLARE_LEAF_CLASS(AsmElfDynamicSection);
22865IS_SERIALIZABLE(AsmElfDynamicSection);
22866
22867#ifndef DOCUMENTATION
22868AsmElfDynamicSection.useSmallHeader(true);
22869#endif // !DOCUMENTATION
22870
22871DECLARE_HEADERS(AsmElfDynamicSection);
22872#if defined(SgAsmElfDynamicSection_HEADERS) || defined(DOCUMENTATION)
22873#include <Rose/BinaryAnalysis/Address.h>
22874
22875#ifdef ROSE_SgAsmElfDynamicSection_IMPL
22876#include <SgAsmElfDynamicEntryList.h>
22877#endif
22878#endif // SgAsmElfDynamicSection_HEADERS
22879
22880#ifdef DOCUMENTATION
22883#endif // DOCUMENTATION
22884
22885#ifndef DOCUMENTATION
22886 AsmElfDynamicSection.setDataPrototype(
22887 "SgAsmElfDynamicEntryList*", "entries", "= createAndParent<SgAsmElfDynamicEntryList>(this)",
22888 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22889#endif // !DOCUMENTATION
22890
22891 DECLARE_OTHERS(AsmElfDynamicSection);
22892#if defined(SgAsmElfDynamicSection_OTHERS) || defined(DOCUMENTATION)
22893
22894 //----------------------- Boost serialization for SgAsmElfDynamicSection -----------------------
22895#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22896private:
22897 friend class boost::serialization::access;
22898
22899 template<class S>
22900 void serialize(S &s, const unsigned /*version*/) {
22901 debugSerializationBegin("SgAsmElfDynamicSection");
22902 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
22903 s & BOOST_SERIALIZATION_NVP(p_entries);
22904 debugSerializationEnd("SgAsmElfDynamicSection");
22905 }
22906#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22907public:
22908public:
22918public:
22921
22923 virtual SgAsmElfDynamicSection* parse() override;
22924
22926 virtual void finishParsing() override;
22927
22931 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
22932
22933 virtual bool reallocate() override;
22934
22936 virtual void unparse(std::ostream&) const override;
22937
22939 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22940
22942 // Deprecated 2023-11
22944public:
22945 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing") ROSE_DEPRECATED("use finishParsing");
22946 using SgAsmElfSection::calculate_sizes;
22947 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
22948 ROSE_DEPRECATED("use calculateSizes");
22949public:
22952
22953public:
22956
22957protected:
22965#endif // SgAsmElfDynamicSection_OTHERS
22966#ifdef DOCUMENTATION
22967};
22968#endif // DOCUMENTATION
22969
22970
22972// SgAsmElfSection -- MACHINE GENERATED; DO NOT MODIFY --
22974
22975#ifndef DOCUMENTATION
22976AstNodeClass& AsmElfSection = nonTerminalConstructor(
22977 "AsmElfSection",
22978 *this,
22979 "AsmElfSection",
22980 "AsmElfSectionTag",
22981 SubclassListBuilder()
22982 | AsmElfDynamicSection
22983 | AsmElfEHFrameSection
22984 | AsmElfNoteSection
22985 | AsmElfRelocSection
22986 | AsmElfStringSection
22987 | AsmElfSymbolSection
22988 | AsmElfSymverDefinedSection
22989 | AsmElfSymverNeededSection
22990 | AsmElfSymverSection
22991 , true);
22992assert(AsmElfSection.associatedGrammar != nullptr);
22993AsmElfSection.setCppCondition("!defined(DOCUMENTATION)");
22994AsmElfSection.isBoostSerializable(true);
22995AsmElfSection.setAutomaticGenerationOfConstructor(false);
22996AsmElfSection.setAutomaticGenerationOfDestructor(false);
22997#endif // !DOCUMENTATION
22998
22999#ifndef DOCUMENTATION
23000AsmElfSection.useSmallHeader(true);
23001#endif // !DOCUMENTATION
23002
23003DECLARE_HEADERS(AsmElfSection);
23004#if defined(SgAsmElfSection_HEADERS) || defined(DOCUMENTATION)
23005#include <Rose/BinaryAnalysis/Address.h>
23006
23007#ifdef ROSE_SgAsmElfSection_IMPL
23008#include <SgAsmElfSectionTableEntry.h>
23009#include <SgAsmElfSegmentTableEntry.h>
23010#endif
23011#endif // SgAsmElfSection_HEADERS
23012
23013#ifdef DOCUMENTATION
23016#endif // DOCUMENTATION
23017
23018#ifndef DOCUMENTATION
23019 AsmElfSection.setDataPrototype(
23020 "SgAsmElfSection*", "linkedSection", "= nullptr",
23021 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23022#endif // !DOCUMENTATION
23023
23024#ifndef DOCUMENTATION
23025 AsmElfSection.setDataPrototype(
23026 "SgAsmElfSectionTableEntry*", "sectionEntry", "= nullptr",
23027 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23028#endif // !DOCUMENTATION
23029
23030#ifndef DOCUMENTATION
23031 AsmElfSection.setDataPrototype(
23032 "SgAsmElfSegmentTableEntry*", "segmentEntry", "= nullptr",
23033 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23034#endif // !DOCUMENTATION
23035
23036 DECLARE_OTHERS(AsmElfSection);
23037#if defined(SgAsmElfSection_OTHERS) || defined(DOCUMENTATION)
23038
23039 //----------------------- Boost serialization for SgAsmElfSection -----------------------
23040#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23041private:
23042 friend class boost::serialization::access;
23043
23044 template<class S>
23045 void serialize(S &s, const unsigned /*version*/) {
23046 debugSerializationBegin("SgAsmElfSection");
23047 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
23048 s & BOOST_SERIALIZATION_NVP(p_linkedSection);
23049 s & BOOST_SERIALIZATION_NVP(p_sectionEntry);
23050 s & BOOST_SERIALIZATION_NVP(p_segmentEntry);
23051 debugSerializationEnd("SgAsmElfSection");
23052 }
23053#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23054public:
23055public:
23064public:
23072public:
23079public:
23085
23092
23097
23118 Rose::BinaryAnalysis::Address calculateSizes(size_t r32size, size_t r64size, const std::vector<size_t> &optsizes,
23119 size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
23120
23121 virtual void finishParsing();
23122
23140 calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
23141
23142 virtual bool reallocate() override;
23143
23145 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
23146
23149
23154
23156 // Deprecated 2023-11
23158public:
23159 SgAsmElfSection* get_linked_section() const ROSE_DEPRECATED("use get_linkedSection");
23160 virtual void set_linked_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_linkSection");
23161 SgAsmElfSectionTableEntry* get_section_entry() const ROSE_DEPRECATED("use get_sectionEntry");
23162 void set_section_entry(SgAsmElfSectionTableEntry*) ROSE_DEPRECATED("use set_sectionEntry");
23163 SgAsmElfSegmentTableEntry* get_segment_entry() const ROSE_DEPRECATED("use get_segmentEntry");
23164 void set_segment_entry(SgAsmElfSegmentTableEntry*) ROSE_DEPRECATED("use set_segmentEntry");
23165 SgAsmElfSection *init_from_section_table(SgAsmElfSectionTableEntry*, SgAsmElfStringSection*, int)
23166 ROSE_DEPRECATED("use initFromSectionTable");
23167 SgAsmElfSection *init_from_segment_table(SgAsmElfSegmentTableEntry*, bool mmap_only=false)
23168 ROSE_DEPRECATED("use initFromSegmentTable");
23169 Rose::BinaryAnalysis::Address
23170 calculate_sizes(size_t, size_t, const std::vector<size_t>&, size_t*, size_t*, size_t*, size_t*) const
23171 ROSE_DEPRECATED("use calculateSizes");
23172 virtual void finish_parsing() ROSE_DEPRECATED("use finishParsing");
23173 virtual Rose::BinaryAnalysis::Address
23174 calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
23175 void allocate_name_to_storage(SgAsmElfStringSection*) ROSE_DEPRECATED("use allocateNameToStorage");
23176 SgAsmElfFileHeader *get_elf_header() const ROSE_DEPRECATED("use get_elfHeader");
23177public:
23180
23181public:
23184
23185protected:
23193#endif // SgAsmElfSection_OTHERS
23194#ifdef DOCUMENTATION
23195};
23196#endif // DOCUMENTATION
23197
23198
23200// SgAsmElfDynamicEntryList -- MACHINE GENERATED; DO NOT MODIFY --
23202
23203DECLARE_LEAF_CLASS(AsmElfDynamicEntryList);
23204IS_SERIALIZABLE(AsmElfDynamicEntryList);
23205
23206#ifndef DOCUMENTATION
23207AsmElfDynamicEntryList.useSmallHeader(true);
23208#endif // !DOCUMENTATION
23209
23210DECLARE_HEADERS(AsmElfDynamicEntryList);
23211#if defined(SgAsmElfDynamicEntryList_HEADERS) || defined(DOCUMENTATION)
23212#include <sageContainer.h>
23213#endif // SgAsmElfDynamicEntryList_HEADERS
23214
23215#ifdef DOCUMENTATION
23221#endif // DOCUMENTATION
23222
23223#ifndef DOCUMENTATION
23224 AsmElfDynamicEntryList.setDataPrototype(
23225 "SgAsmElfDynamicEntryPtrList", "entries", "",
23226 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23227#endif // !DOCUMENTATION
23228
23229 DECLARE_OTHERS(AsmElfDynamicEntryList);
23230#if defined(SgAsmElfDynamicEntryList_OTHERS) || defined(DOCUMENTATION)
23231
23232 //----------------------- Boost serialization for SgAsmElfDynamicEntryList -----------------------
23233#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23234private:
23235 friend class boost::serialization::access;
23236
23237 template<class S>
23238 void serialize(S &s, const unsigned /*version*/) {
23239 debugSerializationBegin("SgAsmElfDynamicEntryList");
23240 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23241 s & BOOST_SERIALIZATION_NVP(p_entries);
23242 debugSerializationEnd("SgAsmElfDynamicEntryList");
23243 }
23244#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23245public:
23246public:
23250 SgAsmElfDynamicEntryPtrList const& get_entries() const;
23251 SgAsmElfDynamicEntryPtrList& get_entries();
23252 void set_entries(SgAsmElfDynamicEntryPtrList const&);
23255public:
23258
23259public:
23262
23263protected:
23271#endif // SgAsmElfDynamicEntryList_OTHERS
23272#ifdef DOCUMENTATION
23273};
23274#endif // DOCUMENTATION
23275
23276
23278// SgAsmElfDynamicEntry -- MACHINE GENERATED; DO NOT MODIFY --
23280
23281DECLARE_LEAF_CLASS(AsmElfDynamicEntry);
23282IS_SERIALIZABLE(AsmElfDynamicEntry);
23283
23284#ifndef DOCUMENTATION
23285AsmElfDynamicEntry.useSmallHeader(true);
23286#endif // !DOCUMENTATION
23287
23288DECLARE_HEADERS(AsmElfDynamicEntry);
23289#if defined(SgAsmElfDynamicEntry_HEADERS) || defined(DOCUMENTATION)
23290#include <Rose/BinaryAnalysis/ByteOrder.h>
23291#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
23292#include <sageContainer.h>
23293#endif // SgAsmElfDynamicEntry_HEADERS
23294
23295#ifdef DOCUMENTATION
23298#endif // DOCUMENTATION
23299
23300#ifndef DOCUMENTATION
23301 AsmElfDynamicEntry.setDataPrototype(
23302 "SgAsmElfDynamicEntry::EntryType", "d_tag", "= SgAsmElfDynamicEntry::DT_NULL",
23303 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23304#endif // !DOCUMENTATION
23305
23306#ifndef DOCUMENTATION
23307 AsmElfDynamicEntry.setDataPrototype(
23308 "Rose::BinaryAnalysis::RelativeVirtualAddress", "d_val", "",
23309 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23310#endif // !DOCUMENTATION
23311
23312#ifndef DOCUMENTATION
23313 AsmElfDynamicEntry.setDataPrototype(
23314 "SgAsmGenericString*", "name", "= nullptr",
23315 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23316#endif // !DOCUMENTATION
23317
23318#ifndef DOCUMENTATION
23319 AsmElfDynamicEntry.setDataPrototype(
23320 "SgUnsignedCharList", "extra", "",
23321 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23322#endif // !DOCUMENTATION
23323
23324 DECLARE_OTHERS(AsmElfDynamicEntry);
23325#if defined(SgAsmElfDynamicEntry_OTHERS) || defined(DOCUMENTATION)
23326
23327 //----------------------- Boost serialization for SgAsmElfDynamicEntry -----------------------
23328#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23329private:
23330 friend class boost::serialization::access;
23331
23332 template<class S>
23333 void serialize(S &s, const unsigned /*version*/) {
23334 debugSerializationBegin("SgAsmElfDynamicEntry");
23335 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23336 s & BOOST_SERIALIZATION_NVP(p_d_tag);
23337 s & BOOST_SERIALIZATION_NVP(p_d_val);
23338 s & BOOST_SERIALIZATION_NVP(p_name);
23339 s & BOOST_SERIALIZATION_NVP(p_extra);
23340 debugSerializationEnd("SgAsmElfDynamicEntry");
23341 }
23342#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23344 // Local types
23346public:
23347 enum EntryType { /* Type Executable SharedObj Purpose */
23348 DT_NULL = 0, /* ignored mandatory mandatory Marks end of dynamic array */
23349 DT_NEEDED = 1, /* value optional optional Name of needed library */
23350 DT_PLTRELSZ = 2, /* value optional optional Size of reloc entries associated with PLT */
23351 DT_PLTGOT = 3, /* pointer optional optional PLT and/or GOT */
23352 DT_HASH = 4, /* pointer mandatory mandatory Symbol hash table */
23353 DT_STRTAB = 5, /* pointer mandatory mandatory String table for symbols, lib names, etc. */
23354 DT_SYMTAB = 6, /* pointer mandatory mandatory Symbol table */
23355 DT_RELA = 7, /* pointer mandatory optional Relocation table */
23356 DT_RELASZ = 8, /* value mandatory optional Size of RELA relocation table */
23357 DT_RELAENT = 9, /* value mandatory optional Size of each RELA table entry */
23358 DT_STRSZ = 10, /* value mandatory mandatory Size of string table */
23359 DT_SYMENT = 11, /* value mandatory mandatory Size of symbol table entry */
23360 DT_INIT = 12, /* pointer optional optional Initialization function */
23361 DT_FINI = 13, /* pointer optional optional Termination function */
23362 DT_SONAME = 14, /* value ignored optional Name of shared object */
23363 DT_RPATH = 15, /* value optional ignored NUL-term library search path */
23364 DT_SYMBOLIC = 16, /* ignored ignored optional Bool determines dynamic linker symbol resolution */
23365 DT_REL = 17, /* pointer mandatory optional Relocation table */
23366 DT_RELSZ = 18, /* value mandatory optional Size of REL relocation table */
23367 DT_RELENT = 19, /* value mandatory optional Size of each REL table entry */
23368 DT_PLTREL = 20, /* value optional optional Reloc type for PLT; value is DT_RELA or DT_REL */
23369 DT_DEBUG = 21, /* pointer optional ignored Contents are not specified at ABI level */
23370 DT_TEXTREL = 22, /* ignored optional optional presence => relocs to nonwritable segments OK */
23371 DT_JMPREL = 23, /* pointer optional optional Addr of relocation entries for PLT */
23372 DT_BIND_NOW = 24, /* ignored optional optional Shall dynlinker do relocs before xfering control?*/
23373 DT_INIT_ARRAY = 25, /* pointer optional ? Array with addresses of init fct */
23374 DT_FINI_ARRAY = 26, /* pointer optional ? Array with address of fini fct */
23375 DT_INIT_ARRAYSZ = 27, /* value optional ? Size in bytes of DT_INIT_ARRAY */
23376 DT_FINI_ARRAYSZ = 28, /* value optional ? Size in bytes of DT_FINI_ARRAY */
23377 DT_RUNPATH = 29, /* ? optional ? Library search path (how diff from DT_RPATH?) */
23378 DT_FLAGS = 30, /* value optional ? Bit flags */
23379 DT_PREINIT_ARRAY = 32, /* pointer optional ? Array with addrs of preinit fct (aka DT_ENCODING)*/
23380 DT_PREINIT_ARRAYSZ = 33,/* value optional ? size in bytes of DT_PREINIT_ARRAY */
23381 DT_NUM = 34, /* ? ? ? "number used"? */
23382
23383 DT_GNU_PRELINKED =0x6ffffdf5,/*value ? ? Prelinking time stamp */
23384 DT_GNU_CONFLICTSZ=0x6ffffdf6,/*value ? ? Size of conflict section */
23385 DT_GNU_LIBLISTSZ=0x6ffffdf7,/*value ? ? Size of library list */
23386 DT_CHECKSUM = 0x6ffffdf8, /* value ? ? ? */
23387 DT_PLTPADSZ = 0x6ffffdf9, /* value ? ? ? */
23388 DT_MOVEENT = 0x6ffffdfa, /* value ? ? ? */
23389 DT_MOVESZ = 0x6ffffdfb, /* value ? ? ? */
23390 DT_FEATURE_1= 0x6ffffdfc, /* value ? ? Feature selection (DTF_*) */
23391 DT_POSFLAG_1= 0x6ffffdfd, /* value ? ? Flag for DT_* entries affecting next entry */
23392 DT_SYMINSZ = 0x6ffffdfe, /* value ? ? Size of syminfo table in bytes */
23393 DT_SYMINENT = 0x6ffffdff, /* value ? ? Size of each syminfo table entry */
23394
23395 DT_GNU_HASH = 0x6ffffef5, /* pointer ? ? GNU-style hash table */
23396 DT_TLSDESC_PLT=0x6ffffef6,/* pointer ? ? ? */
23397 DT_TLSDESC_GOT=0x6ffffef7,/* pointer ? ? ? */
23398 DT_GNU_CONFLICT=0x6ffffef8,/*pointer ? ? Start of conflict section */
23399 DT_GNU_LIBLIST=0x6ffffef9,/* pointer ? ? Library list */
23400 DT_CONFIG = 0x6ffffefa, /* pointer ? ? Configuration information */
23401 DT_DEPAUDIT = 0x6ffffefb, /* pointer ? ? Dependency auditing */
23402 DT_AUDIT = 0x6ffffefc, /* pointer ? ? Object auditing */
23403 DT_PLTPAD = 0x6ffffefd, /* pointer ? ? PLT padding */
23404 DT_MOVETAB = 0x6ffffefe, /* pointer ? ? Move table */
23405 DT_SYMINFO = 0x6ffffeff, /* pointer ? ? Syminfo table */
23406
23407 DT_VERSYM = 0x6ffffff0, /* pointer ? ? ? */
23408 DT_RELACOUNT= 0x6ffffff9, /* value ? ? ? */
23409 DT_RELCOUNT = 0x6ffffffa, /* value ? ? ? */
23410 DT_FLAGS_1 = 0x6ffffffb, /* value ? ? Sun state flags */
23411 DT_VERDEF = 0x6ffffffc, /* pointer ? ? Sun version definition table */
23412 DT_VERDEFNUM= 0x6ffffffd, /* value ? ? Sun number of version definitions */
23413 DT_VERNEED = 0x6ffffffe, /* pointer ? ? Sun needed versions table */
23414 DT_VERNEEDNUM=0x6fffffff, /* value ? ? Sun number of needed versions */
23415
23416 DT_AUXILIARY= 0x7ffffffd, /* pointer ? ? Sun shared obj to load before self */
23417 DT_FILTER = 0x7fffffff /* pointer ? ? Shared object ot get values from */
23418 };
23419
23420#ifdef _MSC_VER
23421# pragma pack (1)
23422#endif
23423
23426 uint32_t d_tag;
23427 uint32_t d_val;
23428 }
23429#if !defined(SWIG) && !defined(_MSC_VER)
23430 __attribute__((packed))
23431#endif
23432 ;
23433
23435 uint64_t d_tag;
23436 uint64_t d_val;
23437 }
23438#if !defined(SWIG) && !defined(_MSC_VER)
23439 __attribute__((packed))
23440#endif
23441 ;
23442
23443#ifdef _MSC_VER
23444# pragma pack ()
23445#endif
23446
23448 // Properties
23450public:
23451public:
23457 SgAsmElfDynamicEntry::EntryType const& get_d_tag() const;
23458 void set_d_tag(SgAsmElfDynamicEntry::EntryType const&);
23461public:
23472public:
23479public:
23483 SgUnsignedCharList const& get_extra() const;
23484 SgUnsignedCharList& get_extra();
23485 void set_extra(SgUnsignedCharList const&);
23488 // Functions
23490public:
23493
23509 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
23510
23512 static std::string toString(SgAsmElfDynamicEntry::EntryType);
23513
23515 // Deprecated 2023-11
23517public:
23518 static std::string to_string(SgAsmElfDynamicEntry::EntryType) ROSE_DEPRECATED("use toString");
23519public:
23522
23523public:
23526
23527protected:
23535#endif // SgAsmElfDynamicEntry_OTHERS
23536#ifdef DOCUMENTATION
23537};
23538#endif // DOCUMENTATION
23539
23540
23542// SgAsmDwarfWithStmt -- MACHINE GENERATED; DO NOT MODIFY --
23544
23545DECLARE_LEAF_CLASS(AsmDwarfWithStmt);
23546IS_SERIALIZABLE(AsmDwarfWithStmt);
23547
23548#ifndef DOCUMENTATION
23549AsmDwarfWithStmt.useSmallHeader(true);
23550#endif // !DOCUMENTATION
23551
23552#ifdef DOCUMENTATION
23554#endif // DOCUMENTATION
23555
23556 DECLARE_OTHERS(AsmDwarfWithStmt);
23557#if defined(SgAsmDwarfWithStmt_OTHERS) || defined(DOCUMENTATION)
23558
23559 //----------------------- Boost serialization for SgAsmDwarfWithStmt -----------------------
23560#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23561private:
23562 friend class boost::serialization::access;
23563
23564 template<class S>
23565 void serialize(S &s, const unsigned /*version*/) {
23566 debugSerializationBegin("SgAsmDwarfWithStmt");
23567 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23568 debugSerializationEnd("SgAsmDwarfWithStmt");
23569 }
23570#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23571
23572public:
23575
23576public:
23579
23580public:
23582 SgAsmDwarfWithStmt(int const& nesting_level,
23583 uint64_t const& offset,
23584 uint64_t const& overall_offset);
23585
23586protected:
23594#endif // SgAsmDwarfWithStmt_OTHERS
23595#ifdef DOCUMENTATION
23596};
23597#endif // DOCUMENTATION
23598
23599
23601// SgAsmDwarfVolatileType -- MACHINE GENERATED; DO NOT MODIFY --
23603
23604DECLARE_LEAF_CLASS(AsmDwarfVolatileType);
23605IS_SERIALIZABLE(AsmDwarfVolatileType);
23606
23607#ifndef DOCUMENTATION
23608AsmDwarfVolatileType.useSmallHeader(true);
23609#endif // !DOCUMENTATION
23610
23611#ifdef DOCUMENTATION
23613#endif // DOCUMENTATION
23614
23615 DECLARE_OTHERS(AsmDwarfVolatileType);
23616#if defined(SgAsmDwarfVolatileType_OTHERS) || defined(DOCUMENTATION)
23617
23618 //----------------------- Boost serialization for SgAsmDwarfVolatileType -----------------------
23619#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23620private:
23621 friend class boost::serialization::access;
23622
23623 template<class S>
23624 void serialize(S &s, const unsigned /*version*/) {
23625 debugSerializationBegin("SgAsmDwarfVolatileType");
23626 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23627 debugSerializationEnd("SgAsmDwarfVolatileType");
23628 }
23629#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23630
23631public:
23634
23635public:
23638
23639public:
23641 SgAsmDwarfVolatileType(int const& nesting_level,
23642 uint64_t const& offset,
23643 uint64_t const& overall_offset);
23644
23645protected:
23653#endif // SgAsmDwarfVolatileType_OTHERS
23654#ifdef DOCUMENTATION
23655};
23656#endif // DOCUMENTATION
23657
23658
23660// SgAsmDwarfVariantPart -- MACHINE GENERATED; DO NOT MODIFY --
23662
23663DECLARE_LEAF_CLASS(AsmDwarfVariantPart);
23664IS_SERIALIZABLE(AsmDwarfVariantPart);
23665
23666#ifndef DOCUMENTATION
23667AsmDwarfVariantPart.useSmallHeader(true);
23668#endif // !DOCUMENTATION
23669
23670#ifdef DOCUMENTATION
23672#endif // DOCUMENTATION
23673
23674 DECLARE_OTHERS(AsmDwarfVariantPart);
23675#if defined(SgAsmDwarfVariantPart_OTHERS) || defined(DOCUMENTATION)
23676
23677 //----------------------- Boost serialization for SgAsmDwarfVariantPart -----------------------
23678#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23679private:
23680 friend class boost::serialization::access;
23681
23682 template<class S>
23683 void serialize(S &s, const unsigned /*version*/) {
23684 debugSerializationBegin("SgAsmDwarfVariantPart");
23685 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23686 debugSerializationEnd("SgAsmDwarfVariantPart");
23687 }
23688#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23689
23690public:
23693
23694public:
23697
23698public:
23700 SgAsmDwarfVariantPart(int const& nesting_level,
23701 uint64_t const& offset,
23702 uint64_t const& overall_offset);
23703
23704protected:
23712#endif // SgAsmDwarfVariantPart_OTHERS
23713#ifdef DOCUMENTATION
23714};
23715#endif // DOCUMENTATION
23716
23717
23719// SgAsmDwarfVariant -- MACHINE GENERATED; DO NOT MODIFY --
23721
23722DECLARE_LEAF_CLASS(AsmDwarfVariant);
23723IS_SERIALIZABLE(AsmDwarfVariant);
23724
23725#ifndef DOCUMENTATION
23726AsmDwarfVariant.useSmallHeader(true);
23727#endif // !DOCUMENTATION
23728
23729#ifdef DOCUMENTATION
23731#endif // DOCUMENTATION
23732
23733 DECLARE_OTHERS(AsmDwarfVariant);
23734#if defined(SgAsmDwarfVariant_OTHERS) || defined(DOCUMENTATION)
23735
23736 //----------------------- Boost serialization for SgAsmDwarfVariant -----------------------
23737#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23738private:
23739 friend class boost::serialization::access;
23740
23741 template<class S>
23742 void serialize(S &s, const unsigned /*version*/) {
23743 debugSerializationBegin("SgAsmDwarfVariant");
23744 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23745 debugSerializationEnd("SgAsmDwarfVariant");
23746 }
23747#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23748
23749public:
23752
23753public:
23756
23757public:
23759 SgAsmDwarfVariant(int const& nesting_level,
23760 uint64_t const& offset,
23761 uint64_t const& overall_offset);
23762
23763protected:
23771#endif // SgAsmDwarfVariant_OTHERS
23772#ifdef DOCUMENTATION
23773};
23774#endif // DOCUMENTATION
23775
23776
23778// SgAsmDwarfVariable -- MACHINE GENERATED; DO NOT MODIFY --
23780
23781DECLARE_LEAF_CLASS(AsmDwarfVariable);
23782IS_SERIALIZABLE(AsmDwarfVariable);
23783
23784#ifndef DOCUMENTATION
23785AsmDwarfVariable.useSmallHeader(true);
23786#endif // !DOCUMENTATION
23787
23788#ifdef DOCUMENTATION
23790#endif // DOCUMENTATION
23791
23792 DECLARE_OTHERS(AsmDwarfVariable);
23793#if defined(SgAsmDwarfVariable_OTHERS) || defined(DOCUMENTATION)
23794
23795 //----------------------- Boost serialization for SgAsmDwarfVariable -----------------------
23796#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23797private:
23798 friend class boost::serialization::access;
23799
23800 template<class S>
23801 void serialize(S &s, const unsigned /*version*/) {
23802 debugSerializationBegin("SgAsmDwarfVariable");
23803 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23804 debugSerializationEnd("SgAsmDwarfVariable");
23805 }
23806#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23807
23808public:
23811
23812public:
23815
23816public:
23818 SgAsmDwarfVariable(int const& nesting_level,
23819 uint64_t const& offset,
23820 uint64_t const& overall_offset);
23821
23822protected:
23830#endif // SgAsmDwarfVariable_OTHERS
23831#ifdef DOCUMENTATION
23832};
23833#endif // DOCUMENTATION
23834
23835
23837// SgAsmDwarfUpcStrictType -- MACHINE GENERATED; DO NOT MODIFY --
23839
23840DECLARE_LEAF_CLASS(AsmDwarfUpcStrictType);
23841IS_SERIALIZABLE(AsmDwarfUpcStrictType);
23842
23843#ifndef DOCUMENTATION
23844AsmDwarfUpcStrictType.useSmallHeader(true);
23845#endif // !DOCUMENTATION
23846
23847#ifdef DOCUMENTATION
23849#endif // DOCUMENTATION
23850
23851 DECLARE_OTHERS(AsmDwarfUpcStrictType);
23852#if defined(SgAsmDwarfUpcStrictType_OTHERS) || defined(DOCUMENTATION)
23853
23854 //----------------------- Boost serialization for SgAsmDwarfUpcStrictType -----------------------
23855#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23856private:
23857 friend class boost::serialization::access;
23858
23859 template<class S>
23860 void serialize(S &s, const unsigned /*version*/) {
23861 debugSerializationBegin("SgAsmDwarfUpcStrictType");
23862 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23863 debugSerializationEnd("SgAsmDwarfUpcStrictType");
23864 }
23865#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23866
23867public:
23870
23871public:
23874
23875public:
23877 SgAsmDwarfUpcStrictType(int const& nesting_level,
23878 uint64_t const& offset,
23879 uint64_t const& overall_offset);
23880
23881protected:
23889#endif // SgAsmDwarfUpcStrictType_OTHERS
23890#ifdef DOCUMENTATION
23891};
23892#endif // DOCUMENTATION
23893
23894
23896// SgAsmDwarfUpcSharedType -- MACHINE GENERATED; DO NOT MODIFY --
23898
23899DECLARE_LEAF_CLASS(AsmDwarfUpcSharedType);
23900IS_SERIALIZABLE(AsmDwarfUpcSharedType);
23901
23902#ifndef DOCUMENTATION
23903AsmDwarfUpcSharedType.useSmallHeader(true);
23904#endif // !DOCUMENTATION
23905
23906#ifdef DOCUMENTATION
23908#endif // DOCUMENTATION
23909
23910 DECLARE_OTHERS(AsmDwarfUpcSharedType);
23911#if defined(SgAsmDwarfUpcSharedType_OTHERS) || defined(DOCUMENTATION)
23912
23913 //----------------------- Boost serialization for SgAsmDwarfUpcSharedType -----------------------
23914#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23915private:
23916 friend class boost::serialization::access;
23917
23918 template<class S>
23919 void serialize(S &s, const unsigned /*version*/) {
23920 debugSerializationBegin("SgAsmDwarfUpcSharedType");
23921 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23922 debugSerializationEnd("SgAsmDwarfUpcSharedType");
23923 }
23924#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23925
23926public:
23929
23930public:
23933
23934public:
23936 SgAsmDwarfUpcSharedType(int const& nesting_level,
23937 uint64_t const& offset,
23938 uint64_t const& overall_offset);
23939
23940protected:
23948#endif // SgAsmDwarfUpcSharedType_OTHERS
23949#ifdef DOCUMENTATION
23950};
23951#endif // DOCUMENTATION
23952
23953
23955// SgAsmDwarfUpcRelaxedType -- MACHINE GENERATED; DO NOT MODIFY --
23957
23958DECLARE_LEAF_CLASS(AsmDwarfUpcRelaxedType);
23959IS_SERIALIZABLE(AsmDwarfUpcRelaxedType);
23960
23961#ifndef DOCUMENTATION
23962AsmDwarfUpcRelaxedType.useSmallHeader(true);
23963#endif // !DOCUMENTATION
23964
23965#ifdef DOCUMENTATION
23967#endif // DOCUMENTATION
23968
23969 DECLARE_OTHERS(AsmDwarfUpcRelaxedType);
23970#if defined(SgAsmDwarfUpcRelaxedType_OTHERS) || defined(DOCUMENTATION)
23971
23972 //----------------------- Boost serialization for SgAsmDwarfUpcRelaxedType -----------------------
23973#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23974private:
23975 friend class boost::serialization::access;
23976
23977 template<class S>
23978 void serialize(S &s, const unsigned /*version*/) {
23979 debugSerializationBegin("SgAsmDwarfUpcRelaxedType");
23980 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23981 debugSerializationEnd("SgAsmDwarfUpcRelaxedType");
23982 }
23983#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23984
23985public:
23988
23989public:
23992
23993public:
23995 SgAsmDwarfUpcRelaxedType(int const& nesting_level,
23996 uint64_t const& offset,
23997 uint64_t const& overall_offset);
23998
23999protected:
24007#endif // SgAsmDwarfUpcRelaxedType_OTHERS
24008#ifdef DOCUMENTATION
24009};
24010#endif // DOCUMENTATION
24011
24012
24014// SgAsmDwarfUnspecifiedType -- MACHINE GENERATED; DO NOT MODIFY --
24016
24017DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedType);
24018IS_SERIALIZABLE(AsmDwarfUnspecifiedType);
24019
24020#ifndef DOCUMENTATION
24021AsmDwarfUnspecifiedType.useSmallHeader(true);
24022#endif // !DOCUMENTATION
24023
24024#ifdef DOCUMENTATION
24026#endif // DOCUMENTATION
24027
24028 DECLARE_OTHERS(AsmDwarfUnspecifiedType);
24029#if defined(SgAsmDwarfUnspecifiedType_OTHERS) || defined(DOCUMENTATION)
24030
24031 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedType -----------------------
24032#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24033private:
24034 friend class boost::serialization::access;
24035
24036 template<class S>
24037 void serialize(S &s, const unsigned /*version*/) {
24038 debugSerializationBegin("SgAsmDwarfUnspecifiedType");
24039 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24040 debugSerializationEnd("SgAsmDwarfUnspecifiedType");
24041 }
24042#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24043
24044public:
24047
24048public:
24051
24052public:
24054 SgAsmDwarfUnspecifiedType(int const& nesting_level,
24055 uint64_t const& offset,
24056 uint64_t const& overall_offset);
24057
24058protected:
24066#endif // SgAsmDwarfUnspecifiedType_OTHERS
24067#ifdef DOCUMENTATION
24068};
24069#endif // DOCUMENTATION
24070
24071
24073// SgAsmDwarfUnspecifiedParameters -- MACHINE GENERATED; DO NOT MODIFY --
24075
24076DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedParameters);
24077IS_SERIALIZABLE(AsmDwarfUnspecifiedParameters);
24078
24079#ifndef DOCUMENTATION
24080AsmDwarfUnspecifiedParameters.useSmallHeader(true);
24081#endif // !DOCUMENTATION
24082
24083#ifdef DOCUMENTATION
24085#endif // DOCUMENTATION
24086
24087 DECLARE_OTHERS(AsmDwarfUnspecifiedParameters);
24088#if defined(SgAsmDwarfUnspecifiedParameters_OTHERS) || defined(DOCUMENTATION)
24089
24090 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedParameters -----------------------
24091#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24092private:
24093 friend class boost::serialization::access;
24094
24095 template<class S>
24096 void serialize(S &s, const unsigned /*version*/) {
24097 debugSerializationBegin("SgAsmDwarfUnspecifiedParameters");
24098 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24099 debugSerializationEnd("SgAsmDwarfUnspecifiedParameters");
24100 }
24101#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24102
24103public:
24106
24107public:
24110
24111public:
24113 SgAsmDwarfUnspecifiedParameters(int const& nesting_level,
24114 uint64_t const& offset,
24115 uint64_t const& overall_offset);
24116
24117protected:
24125#endif // SgAsmDwarfUnspecifiedParameters_OTHERS
24126#ifdef DOCUMENTATION
24127};
24128#endif // DOCUMENTATION
24129
24130
24132// SgAsmDwarfUnknownConstruct -- MACHINE GENERATED; DO NOT MODIFY --
24134
24135DECLARE_LEAF_CLASS(AsmDwarfUnknownConstruct);
24136IS_SERIALIZABLE(AsmDwarfUnknownConstruct);
24137
24138#ifndef DOCUMENTATION
24139AsmDwarfUnknownConstruct.useSmallHeader(true);
24140#endif // !DOCUMENTATION
24141
24142#ifdef DOCUMENTATION
24144#endif // DOCUMENTATION
24145
24146 DECLARE_OTHERS(AsmDwarfUnknownConstruct);
24147#if defined(SgAsmDwarfUnknownConstruct_OTHERS) || defined(DOCUMENTATION)
24148
24149 //----------------------- Boost serialization for SgAsmDwarfUnknownConstruct -----------------------
24150#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24151private:
24152 friend class boost::serialization::access;
24153
24154 template<class S>
24155 void serialize(S &s, const unsigned /*version*/) {
24156 debugSerializationBegin("SgAsmDwarfUnknownConstruct");
24157 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24158 debugSerializationEnd("SgAsmDwarfUnknownConstruct");
24159 }
24160#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24161
24162public:
24165
24166public:
24169
24170public:
24172 SgAsmDwarfUnknownConstruct(int const& nesting_level,
24173 uint64_t const& offset,
24174 uint64_t const& overall_offset);
24175
24176protected:
24184#endif // SgAsmDwarfUnknownConstruct_OTHERS
24185#ifdef DOCUMENTATION
24186};
24187#endif // DOCUMENTATION
24188
24189
24191// SgAsmDwarfUnionType -- MACHINE GENERATED; DO NOT MODIFY --
24193
24194DECLARE_LEAF_CLASS(AsmDwarfUnionType);
24195IS_SERIALIZABLE(AsmDwarfUnionType);
24196
24197#ifndef DOCUMENTATION
24198AsmDwarfUnionType.useSmallHeader(true);
24199#endif // !DOCUMENTATION
24200
24201DECLARE_HEADERS(AsmDwarfUnionType);
24202#if defined(SgAsmDwarfUnionType_HEADERS) || defined(DOCUMENTATION)
24203#ifdef ROSE_SgAsmDwarfUnionType_IMPL
24204#include <SgAsmDwarfConstructList.h>
24205#endif
24206#endif // SgAsmDwarfUnionType_HEADERS
24207
24208#ifdef DOCUMENTATION
24210#endif // DOCUMENTATION
24211
24212#ifndef DOCUMENTATION
24213 AsmDwarfUnionType.setDataPrototype(
24214 "SgAsmDwarfConstructList*", "body", "= NULL",
24215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24216#endif // !DOCUMENTATION
24217
24218 DECLARE_OTHERS(AsmDwarfUnionType);
24219#if defined(SgAsmDwarfUnionType_OTHERS) || defined(DOCUMENTATION)
24220
24221 //----------------------- Boost serialization for SgAsmDwarfUnionType -----------------------
24222#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24223private:
24224 friend class boost::serialization::access;
24225
24226 template<class S>
24227 void serialize(S &s, const unsigned /*version*/) {
24228 debugSerializationBegin("SgAsmDwarfUnionType");
24229 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24230 s & BOOST_SERIALIZATION_NVP(p_body);
24231 debugSerializationEnd("SgAsmDwarfUnionType");
24232 }
24233#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24234public:
24235public:
24236 SgAsmDwarfConstructList* const& get_body() const;
24237 void set_body(SgAsmDwarfConstructList* const&);
24238public:
24239 SgAsmDwarfConstructList* get_children() override;
24240public:
24243
24244public:
24247
24248public:
24250 SgAsmDwarfUnionType(int const& nesting_level,
24251 uint64_t const& offset,
24252 uint64_t const& overall_offset);
24253
24254protected:
24262#endif // SgAsmDwarfUnionType_OTHERS
24263#ifdef DOCUMENTATION
24264};
24265#endif // DOCUMENTATION
24266
24267
24269// SgAsmDwarfTypedef -- MACHINE GENERATED; DO NOT MODIFY --
24271
24272DECLARE_LEAF_CLASS(AsmDwarfTypedef);
24273IS_SERIALIZABLE(AsmDwarfTypedef);
24274
24275#ifndef DOCUMENTATION
24276AsmDwarfTypedef.useSmallHeader(true);
24277#endif // !DOCUMENTATION
24278
24279#ifdef DOCUMENTATION
24281#endif // DOCUMENTATION
24282
24283 DECLARE_OTHERS(AsmDwarfTypedef);
24284#if defined(SgAsmDwarfTypedef_OTHERS) || defined(DOCUMENTATION)
24285
24286 //----------------------- Boost serialization for SgAsmDwarfTypedef -----------------------
24287#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24288private:
24289 friend class boost::serialization::access;
24290
24291 template<class S>
24292 void serialize(S &s, const unsigned /*version*/) {
24293 debugSerializationBegin("SgAsmDwarfTypedef");
24294 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24295 debugSerializationEnd("SgAsmDwarfTypedef");
24296 }
24297#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24298
24299public:
24302
24303public:
24306
24307public:
24309 SgAsmDwarfTypedef(int const& nesting_level,
24310 uint64_t const& offset,
24311 uint64_t const& overall_offset);
24312
24313protected:
24321#endif // SgAsmDwarfTypedef_OTHERS
24322#ifdef DOCUMENTATION
24323};
24324#endif // DOCUMENTATION
24325
24326
24328// SgAsmDwarfTryBlock -- MACHINE GENERATED; DO NOT MODIFY --
24330
24331DECLARE_LEAF_CLASS(AsmDwarfTryBlock);
24332IS_SERIALIZABLE(AsmDwarfTryBlock);
24333
24334#ifndef DOCUMENTATION
24335AsmDwarfTryBlock.useSmallHeader(true);
24336#endif // !DOCUMENTATION
24337
24338#ifdef DOCUMENTATION
24340#endif // DOCUMENTATION
24341
24342 DECLARE_OTHERS(AsmDwarfTryBlock);
24343#if defined(SgAsmDwarfTryBlock_OTHERS) || defined(DOCUMENTATION)
24344
24345 //----------------------- Boost serialization for SgAsmDwarfTryBlock -----------------------
24346#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24347private:
24348 friend class boost::serialization::access;
24349
24350 template<class S>
24351 void serialize(S &s, const unsigned /*version*/) {
24352 debugSerializationBegin("SgAsmDwarfTryBlock");
24353 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24354 debugSerializationEnd("SgAsmDwarfTryBlock");
24355 }
24356#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24357
24358public:
24361
24362public:
24365
24366public:
24368 SgAsmDwarfTryBlock(int const& nesting_level,
24369 uint64_t const& offset,
24370 uint64_t const& overall_offset);
24371
24372protected:
24380#endif // SgAsmDwarfTryBlock_OTHERS
24381#ifdef DOCUMENTATION
24382};
24383#endif // DOCUMENTATION
24384
24385
24387// SgAsmDwarfThrownType -- MACHINE GENERATED; DO NOT MODIFY --
24389
24390DECLARE_LEAF_CLASS(AsmDwarfThrownType);
24391IS_SERIALIZABLE(AsmDwarfThrownType);
24392
24393#ifndef DOCUMENTATION
24394AsmDwarfThrownType.useSmallHeader(true);
24395#endif // !DOCUMENTATION
24396
24397#ifdef DOCUMENTATION
24399#endif // DOCUMENTATION
24400
24401 DECLARE_OTHERS(AsmDwarfThrownType);
24402#if defined(SgAsmDwarfThrownType_OTHERS) || defined(DOCUMENTATION)
24403
24404 //----------------------- Boost serialization for SgAsmDwarfThrownType -----------------------
24405#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24406private:
24407 friend class boost::serialization::access;
24408
24409 template<class S>
24410 void serialize(S &s, const unsigned /*version*/) {
24411 debugSerializationBegin("SgAsmDwarfThrownType");
24412 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24413 debugSerializationEnd("SgAsmDwarfThrownType");
24414 }
24415#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24416
24417public:
24420
24421public:
24424
24425public:
24427 SgAsmDwarfThrownType(int const& nesting_level,
24428 uint64_t const& offset,
24429 uint64_t const& overall_offset);
24430
24431protected:
24439#endif // SgAsmDwarfThrownType_OTHERS
24440#ifdef DOCUMENTATION
24441};
24442#endif // DOCUMENTATION
24443
24444
24446// SgAsmDwarfTemplateValueParameter -- MACHINE GENERATED; DO NOT MODIFY --
24448
24449DECLARE_LEAF_CLASS(AsmDwarfTemplateValueParameter);
24450IS_SERIALIZABLE(AsmDwarfTemplateValueParameter);
24451
24452#ifndef DOCUMENTATION
24453AsmDwarfTemplateValueParameter.useSmallHeader(true);
24454#endif // !DOCUMENTATION
24455
24456#ifdef DOCUMENTATION
24458#endif // DOCUMENTATION
24459
24460 DECLARE_OTHERS(AsmDwarfTemplateValueParameter);
24461#if defined(SgAsmDwarfTemplateValueParameter_OTHERS) || defined(DOCUMENTATION)
24462
24463 //----------------------- Boost serialization for SgAsmDwarfTemplateValueParameter -----------------------
24464#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24465private:
24466 friend class boost::serialization::access;
24467
24468 template<class S>
24469 void serialize(S &s, const unsigned /*version*/) {
24470 debugSerializationBegin("SgAsmDwarfTemplateValueParameter");
24471 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24472 debugSerializationEnd("SgAsmDwarfTemplateValueParameter");
24473 }
24474#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24475
24476public:
24479
24480public:
24483
24484public:
24486 SgAsmDwarfTemplateValueParameter(int const& nesting_level,
24487 uint64_t const& offset,
24488 uint64_t const& overall_offset);
24489
24490protected:
24498#endif // SgAsmDwarfTemplateValueParameter_OTHERS
24499#ifdef DOCUMENTATION
24500};
24501#endif // DOCUMENTATION
24502
24503
24505// SgAsmDwarfTemplateTypeParameter -- MACHINE GENERATED; DO NOT MODIFY --
24507
24508DECLARE_LEAF_CLASS(AsmDwarfTemplateTypeParameter);
24509IS_SERIALIZABLE(AsmDwarfTemplateTypeParameter);
24510
24511#ifndef DOCUMENTATION
24512AsmDwarfTemplateTypeParameter.useSmallHeader(true);
24513#endif // !DOCUMENTATION
24514
24515#ifdef DOCUMENTATION
24517#endif // DOCUMENTATION
24518
24519 DECLARE_OTHERS(AsmDwarfTemplateTypeParameter);
24520#if defined(SgAsmDwarfTemplateTypeParameter_OTHERS) || defined(DOCUMENTATION)
24521
24522 //----------------------- Boost serialization for SgAsmDwarfTemplateTypeParameter -----------------------
24523#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24524private:
24525 friend class boost::serialization::access;
24526
24527 template<class S>
24528 void serialize(S &s, const unsigned /*version*/) {
24529 debugSerializationBegin("SgAsmDwarfTemplateTypeParameter");
24530 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24531 debugSerializationEnd("SgAsmDwarfTemplateTypeParameter");
24532 }
24533#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24534
24535public:
24538
24539public:
24542
24543public:
24545 SgAsmDwarfTemplateTypeParameter(int const& nesting_level,
24546 uint64_t const& offset,
24547 uint64_t const& overall_offset);
24548
24549protected:
24557#endif // SgAsmDwarfTemplateTypeParameter_OTHERS
24558#ifdef DOCUMENTATION
24559};
24560#endif // DOCUMENTATION
24561
24562
24564// SgAsmDwarfSubroutineType -- MACHINE GENERATED; DO NOT MODIFY --
24566
24567DECLARE_LEAF_CLASS(AsmDwarfSubroutineType);
24568IS_SERIALIZABLE(AsmDwarfSubroutineType);
24569
24570#ifndef DOCUMENTATION
24571AsmDwarfSubroutineType.useSmallHeader(true);
24572#endif // !DOCUMENTATION
24573
24574DECLARE_HEADERS(AsmDwarfSubroutineType);
24575#if defined(SgAsmDwarfSubroutineType_HEADERS) || defined(DOCUMENTATION)
24576#ifdef ROSE_SgAsmDwarfSubroutineType_IMPL
24577#include <SgAsmDwarfConstructList.h>
24578#endif
24579#endif // SgAsmDwarfSubroutineType_HEADERS
24580
24581#ifdef DOCUMENTATION
24583#endif // DOCUMENTATION
24584
24585#ifndef DOCUMENTATION
24586 AsmDwarfSubroutineType.setDataPrototype(
24587 "SgAsmDwarfConstructList*", "body", "= nullptr",
24588 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24589#endif // !DOCUMENTATION
24590
24591 DECLARE_OTHERS(AsmDwarfSubroutineType);
24592#if defined(SgAsmDwarfSubroutineType_OTHERS) || defined(DOCUMENTATION)
24593
24594 //----------------------- Boost serialization for SgAsmDwarfSubroutineType -----------------------
24595#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24596private:
24597 friend class boost::serialization::access;
24598
24599 template<class S>
24600 void serialize(S &s, const unsigned /*version*/) {
24601 debugSerializationBegin("SgAsmDwarfSubroutineType");
24602 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24603 s & BOOST_SERIALIZATION_NVP(p_body);
24604 debugSerializationEnd("SgAsmDwarfSubroutineType");
24605 }
24606#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24607public:
24608public:
24609 SgAsmDwarfConstructList* const& get_body() const;
24610 void set_body(SgAsmDwarfConstructList* const&);
24611public:
24612 SgAsmDwarfConstructList* get_children() override;
24613public:
24616
24617public:
24620
24621public:
24623 SgAsmDwarfSubroutineType(int const& nesting_level,
24624 uint64_t const& offset,
24625 uint64_t const& overall_offset);
24626
24627protected:
24635#endif // SgAsmDwarfSubroutineType_OTHERS
24636#ifdef DOCUMENTATION
24637};
24638#endif // DOCUMENTATION
24639
24640
24642// SgAsmDwarfSubrangeType -- MACHINE GENERATED; DO NOT MODIFY --
24644
24645DECLARE_LEAF_CLASS(AsmDwarfSubrangeType);
24646IS_SERIALIZABLE(AsmDwarfSubrangeType);
24647
24648#ifndef DOCUMENTATION
24649AsmDwarfSubrangeType.useSmallHeader(true);
24650#endif // !DOCUMENTATION
24651
24652#ifdef DOCUMENTATION
24654#endif // DOCUMENTATION
24655
24656 DECLARE_OTHERS(AsmDwarfSubrangeType);
24657#if defined(SgAsmDwarfSubrangeType_OTHERS) || defined(DOCUMENTATION)
24658
24659 //----------------------- Boost serialization for SgAsmDwarfSubrangeType -----------------------
24660#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24661private:
24662 friend class boost::serialization::access;
24663
24664 template<class S>
24665 void serialize(S &s, const unsigned /*version*/) {
24666 debugSerializationBegin("SgAsmDwarfSubrangeType");
24667 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24668 debugSerializationEnd("SgAsmDwarfSubrangeType");
24669 }
24670#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24671
24672public:
24675
24676public:
24679
24680public:
24682 SgAsmDwarfSubrangeType(int const& nesting_level,
24683 uint64_t const& offset,
24684 uint64_t const& overall_offset);
24685
24686protected:
24694#endif // SgAsmDwarfSubrangeType_OTHERS
24695#ifdef DOCUMENTATION
24696};
24697#endif // DOCUMENTATION
24698
24699
24701// SgAsmDwarfSubprogram -- MACHINE GENERATED; DO NOT MODIFY --
24703
24704DECLARE_LEAF_CLASS(AsmDwarfSubprogram);
24705IS_SERIALIZABLE(AsmDwarfSubprogram);
24706
24707#ifndef DOCUMENTATION
24708AsmDwarfSubprogram.useSmallHeader(true);
24709#endif // !DOCUMENTATION
24710
24711DECLARE_HEADERS(AsmDwarfSubprogram);
24712#if defined(SgAsmDwarfSubprogram_HEADERS) || defined(DOCUMENTATION)
24713#ifdef ROSE_SgAsmDwarfSubprogram_IMPL
24714#include <SgAsmDwarfConstructList.h>
24715#endif
24716#endif // SgAsmDwarfSubprogram_HEADERS
24717
24718#ifdef DOCUMENTATION
24720#endif // DOCUMENTATION
24721
24722#ifndef DOCUMENTATION
24723 AsmDwarfSubprogram.setDataPrototype(
24724 "SgAsmDwarfConstructList*", "body", "= NULL",
24725 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24726#endif // !DOCUMENTATION
24727
24728 DECLARE_OTHERS(AsmDwarfSubprogram);
24729#if defined(SgAsmDwarfSubprogram_OTHERS) || defined(DOCUMENTATION)
24730
24731 //----------------------- Boost serialization for SgAsmDwarfSubprogram -----------------------
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("SgAsmDwarfSubprogram");
24739 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24740 s & BOOST_SERIALIZATION_NVP(p_body);
24741 debugSerializationEnd("SgAsmDwarfSubprogram");
24742 }
24743#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24744public:
24745public:
24746 SgAsmDwarfConstructList* const& get_body() const;
24747 void set_body(SgAsmDwarfConstructList* const&);
24748public:
24749 SgAsmDwarfConstructList* get_children() override;
24750public:
24753
24754public:
24757
24758public:
24760 SgAsmDwarfSubprogram(int const& nesting_level,
24761 uint64_t const& offset,
24762 uint64_t const& overall_offset);
24763
24764protected:
24772#endif // SgAsmDwarfSubprogram_OTHERS
24773#ifdef DOCUMENTATION
24774};
24775#endif // DOCUMENTATION
24776
24777
24779// SgAsmDwarfStructureType -- MACHINE GENERATED; DO NOT MODIFY --
24781
24782DECLARE_LEAF_CLASS(AsmDwarfStructureType);
24783IS_SERIALIZABLE(AsmDwarfStructureType);
24784
24785#ifndef DOCUMENTATION
24786AsmDwarfStructureType.useSmallHeader(true);
24787#endif // !DOCUMENTATION
24788
24789DECLARE_HEADERS(AsmDwarfStructureType);
24790#if defined(SgAsmDwarfStructureType_HEADERS) || defined(DOCUMENTATION)
24791#ifdef ROSE_SgAsmDwarfStructureType_IMPL
24792#include <SgAsmDwarfConstructList.h>
24793#endif
24794#endif // SgAsmDwarfStructureType_HEADERS
24795
24796#ifdef DOCUMENTATION
24798#endif // DOCUMENTATION
24799
24800#ifndef DOCUMENTATION
24801 AsmDwarfStructureType.setDataPrototype(
24802 "SgAsmDwarfConstructList*", "body", "= nullptr",
24803 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24804#endif // !DOCUMENTATION
24805
24806 DECLARE_OTHERS(AsmDwarfStructureType);
24807#if defined(SgAsmDwarfStructureType_OTHERS) || defined(DOCUMENTATION)
24808
24809 //----------------------- Boost serialization for SgAsmDwarfStructureType -----------------------
24810#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24811private:
24812 friend class boost::serialization::access;
24813
24814 template<class S>
24815 void serialize(S &s, const unsigned /*version*/) {
24816 debugSerializationBegin("SgAsmDwarfStructureType");
24817 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24818 s & BOOST_SERIALIZATION_NVP(p_body);
24819 debugSerializationEnd("SgAsmDwarfStructureType");
24820 }
24821#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24822public:
24823public:
24824 SgAsmDwarfConstructList* const& get_body() const;
24825 void set_body(SgAsmDwarfConstructList* const&);
24826public:
24827 SgAsmDwarfConstructList* get_children() override;
24828public:
24831
24832public:
24835
24836public:
24838 SgAsmDwarfStructureType(int const& nesting_level,
24839 uint64_t const& offset,
24840 uint64_t const& overall_offset);
24841
24842protected:
24850#endif // SgAsmDwarfStructureType_OTHERS
24851#ifdef DOCUMENTATION
24852};
24853#endif // DOCUMENTATION
24854
24855
24857// SgAsmDwarfStringType -- MACHINE GENERATED; DO NOT MODIFY --
24859
24860DECLARE_LEAF_CLASS(AsmDwarfStringType);
24861IS_SERIALIZABLE(AsmDwarfStringType);
24862
24863#ifndef DOCUMENTATION
24864AsmDwarfStringType.useSmallHeader(true);
24865#endif // !DOCUMENTATION
24866
24867#ifdef DOCUMENTATION
24869#endif // DOCUMENTATION
24870
24871 DECLARE_OTHERS(AsmDwarfStringType);
24872#if defined(SgAsmDwarfStringType_OTHERS) || defined(DOCUMENTATION)
24873
24874 //----------------------- Boost serialization for SgAsmDwarfStringType -----------------------
24875#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24876private:
24877 friend class boost::serialization::access;
24878
24879 template<class S>
24880 void serialize(S &s, const unsigned /*version*/) {
24881 debugSerializationBegin("SgAsmDwarfStringType");
24882 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24883 debugSerializationEnd("SgAsmDwarfStringType");
24884 }
24885#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24886
24887public:
24890
24891public:
24894
24895public:
24897 SgAsmDwarfStringType(int const& nesting_level,
24898 uint64_t const& offset,
24899 uint64_t const& overall_offset);
24900
24901protected:
24909#endif // SgAsmDwarfStringType_OTHERS
24910#ifdef DOCUMENTATION
24911};
24912#endif // DOCUMENTATION
24913
24914
24916// SgAsmDwarfSharedType -- MACHINE GENERATED; DO NOT MODIFY --
24918
24919DECLARE_LEAF_CLASS(AsmDwarfSharedType);
24920IS_SERIALIZABLE(AsmDwarfSharedType);
24921
24922#ifndef DOCUMENTATION
24923AsmDwarfSharedType.useSmallHeader(true);
24924#endif // !DOCUMENTATION
24925
24926#ifdef DOCUMENTATION
24928#endif // DOCUMENTATION
24929
24930 DECLARE_OTHERS(AsmDwarfSharedType);
24931#if defined(SgAsmDwarfSharedType_OTHERS) || defined(DOCUMENTATION)
24932
24933 //----------------------- Boost serialization for SgAsmDwarfSharedType -----------------------
24934#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24935private:
24936 friend class boost::serialization::access;
24937
24938 template<class S>
24939 void serialize(S &s, const unsigned /*version*/) {
24940 debugSerializationBegin("SgAsmDwarfSharedType");
24941 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24942 debugSerializationEnd("SgAsmDwarfSharedType");
24943 }
24944#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24945
24946public:
24949
24950public:
24953
24954public:
24956 SgAsmDwarfSharedType(int const& nesting_level,
24957 uint64_t const& offset,
24958 uint64_t const& overall_offset);
24959
24960protected:
24968#endif // SgAsmDwarfSharedType_OTHERS
24969#ifdef DOCUMENTATION
24970};
24971#endif // DOCUMENTATION
24972
24973
24975// SgAsmDwarfSetType -- MACHINE GENERATED; DO NOT MODIFY --
24977
24978DECLARE_LEAF_CLASS(AsmDwarfSetType);
24979IS_SERIALIZABLE(AsmDwarfSetType);
24980
24981#ifndef DOCUMENTATION
24982AsmDwarfSetType.useSmallHeader(true);
24983#endif // !DOCUMENTATION
24984
24985#ifdef DOCUMENTATION
24987#endif // DOCUMENTATION
24988
24989 DECLARE_OTHERS(AsmDwarfSetType);
24990#if defined(SgAsmDwarfSetType_OTHERS) || defined(DOCUMENTATION)
24991
24992 //----------------------- Boost serialization for SgAsmDwarfSetType -----------------------
24993#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24994private:
24995 friend class boost::serialization::access;
24996
24997 template<class S>
24998 void serialize(S &s, const unsigned /*version*/) {
24999 debugSerializationBegin("SgAsmDwarfSetType");
25000 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25001 debugSerializationEnd("SgAsmDwarfSetType");
25002 }
25003#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25004
25005public:
25008
25009public:
25012
25013public:
25015 SgAsmDwarfSetType(int const& nesting_level,
25016 uint64_t const& offset,
25017 uint64_t const& overall_offset);
25018
25019protected:
25027#endif // SgAsmDwarfSetType_OTHERS
25028#ifdef DOCUMENTATION
25029};
25030#endif // DOCUMENTATION
25031
25032
25034// SgAsmDwarfRestrictType -- MACHINE GENERATED; DO NOT MODIFY --
25036
25037DECLARE_LEAF_CLASS(AsmDwarfRestrictType);
25038IS_SERIALIZABLE(AsmDwarfRestrictType);
25039
25040#ifndef DOCUMENTATION
25041AsmDwarfRestrictType.useSmallHeader(true);
25042#endif // !DOCUMENTATION
25043
25044#ifdef DOCUMENTATION
25046#endif // DOCUMENTATION
25047
25048 DECLARE_OTHERS(AsmDwarfRestrictType);
25049#if defined(SgAsmDwarfRestrictType_OTHERS) || defined(DOCUMENTATION)
25050
25051 //----------------------- Boost serialization for SgAsmDwarfRestrictType -----------------------
25052#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25053private:
25054 friend class boost::serialization::access;
25055
25056 template<class S>
25057 void serialize(S &s, const unsigned /*version*/) {
25058 debugSerializationBegin("SgAsmDwarfRestrictType");
25059 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25060 debugSerializationEnd("SgAsmDwarfRestrictType");
25061 }
25062#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25063
25064public:
25067
25068public:
25071
25072public:
25074 SgAsmDwarfRestrictType(int const& nesting_level,
25075 uint64_t const& offset,
25076 uint64_t const& overall_offset);
25077
25078protected:
25086#endif // SgAsmDwarfRestrictType_OTHERS
25087#ifdef DOCUMENTATION
25088};
25089#endif // DOCUMENTATION
25090
25091
25093// SgAsmDwarfReferenceType -- MACHINE GENERATED; DO NOT MODIFY --
25095
25096DECLARE_LEAF_CLASS(AsmDwarfReferenceType);
25097IS_SERIALIZABLE(AsmDwarfReferenceType);
25098
25099#ifndef DOCUMENTATION
25100AsmDwarfReferenceType.useSmallHeader(true);
25101#endif // !DOCUMENTATION
25102
25103#ifdef DOCUMENTATION
25105#endif // DOCUMENTATION
25106
25107 DECLARE_OTHERS(AsmDwarfReferenceType);
25108#if defined(SgAsmDwarfReferenceType_OTHERS) || defined(DOCUMENTATION)
25109
25110 //----------------------- Boost serialization for SgAsmDwarfReferenceType -----------------------
25111#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25112private:
25113 friend class boost::serialization::access;
25114
25115 template<class S>
25116 void serialize(S &s, const unsigned /*version*/) {
25117 debugSerializationBegin("SgAsmDwarfReferenceType");
25118 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25119 debugSerializationEnd("SgAsmDwarfReferenceType");
25120 }
25121#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25122
25123public:
25126
25127public:
25130
25131public:
25133 SgAsmDwarfReferenceType(int const& nesting_level,
25134 uint64_t const& offset,
25135 uint64_t const& overall_offset);
25136
25137protected:
25145#endif // SgAsmDwarfReferenceType_OTHERS
25146#ifdef DOCUMENTATION
25147};
25148#endif // DOCUMENTATION
25149
25150
25152// SgAsmDwarfPtrToMemberType -- MACHINE GENERATED; DO NOT MODIFY --
25154
25155DECLARE_LEAF_CLASS(AsmDwarfPtrToMemberType);
25156IS_SERIALIZABLE(AsmDwarfPtrToMemberType);
25157
25158#ifndef DOCUMENTATION
25159AsmDwarfPtrToMemberType.useSmallHeader(true);
25160#endif // !DOCUMENTATION
25161
25162#ifdef DOCUMENTATION
25164#endif // DOCUMENTATION
25165
25166 DECLARE_OTHERS(AsmDwarfPtrToMemberType);
25167#if defined(SgAsmDwarfPtrToMemberType_OTHERS) || defined(DOCUMENTATION)
25168
25169 //----------------------- Boost serialization for SgAsmDwarfPtrToMemberType -----------------------
25170#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25171private:
25172 friend class boost::serialization::access;
25173
25174 template<class S>
25175 void serialize(S &s, const unsigned /*version*/) {
25176 debugSerializationBegin("SgAsmDwarfPtrToMemberType");
25177 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25178 debugSerializationEnd("SgAsmDwarfPtrToMemberType");
25179 }
25180#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25181
25182public:
25185
25186public:
25189
25190public:
25192 SgAsmDwarfPtrToMemberType(int const& nesting_level,
25193 uint64_t const& offset,
25194 uint64_t const& overall_offset);
25195
25196protected:
25204#endif // SgAsmDwarfPtrToMemberType_OTHERS
25205#ifdef DOCUMENTATION
25206};
25207#endif // DOCUMENTATION
25208
25209
25211// SgAsmDwarfPointerType -- MACHINE GENERATED; DO NOT MODIFY --
25213
25214DECLARE_LEAF_CLASS(AsmDwarfPointerType);
25215IS_SERIALIZABLE(AsmDwarfPointerType);
25216
25217#ifndef DOCUMENTATION
25218AsmDwarfPointerType.useSmallHeader(true);
25219#endif // !DOCUMENTATION
25220
25221#ifdef DOCUMENTATION
25223#endif // DOCUMENTATION
25224
25225 DECLARE_OTHERS(AsmDwarfPointerType);
25226#if defined(SgAsmDwarfPointerType_OTHERS) || defined(DOCUMENTATION)
25227
25228 //----------------------- Boost serialization for SgAsmDwarfPointerType -----------------------
25229#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25230private:
25231 friend class boost::serialization::access;
25232
25233 template<class S>
25234 void serialize(S &s, const unsigned /*version*/) {
25235 debugSerializationBegin("SgAsmDwarfPointerType");
25236 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25237 debugSerializationEnd("SgAsmDwarfPointerType");
25238 }
25239#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25240
25241public:
25244
25245public:
25248
25249public:
25251 SgAsmDwarfPointerType(int const& nesting_level,
25252 uint64_t const& offset,
25253 uint64_t const& overall_offset);
25254
25255protected:
25263#endif // SgAsmDwarfPointerType_OTHERS
25264#ifdef DOCUMENTATION
25265};
25266#endif // DOCUMENTATION
25267
25268
25270// SgAsmDwarfPartialUnit -- MACHINE GENERATED; DO NOT MODIFY --
25272
25273DECLARE_LEAF_CLASS(AsmDwarfPartialUnit);
25274IS_SERIALIZABLE(AsmDwarfPartialUnit);
25275
25276#ifndef DOCUMENTATION
25277AsmDwarfPartialUnit.useSmallHeader(true);
25278#endif // !DOCUMENTATION
25279
25280#ifdef DOCUMENTATION
25282#endif // DOCUMENTATION
25283
25284 DECLARE_OTHERS(AsmDwarfPartialUnit);
25285#if defined(SgAsmDwarfPartialUnit_OTHERS) || defined(DOCUMENTATION)
25286
25287 //----------------------- Boost serialization for SgAsmDwarfPartialUnit -----------------------
25288#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25289private:
25290 friend class boost::serialization::access;
25291
25292 template<class S>
25293 void serialize(S &s, const unsigned /*version*/) {
25294 debugSerializationBegin("SgAsmDwarfPartialUnit");
25295 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25296 debugSerializationEnd("SgAsmDwarfPartialUnit");
25297 }
25298#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25299
25300public:
25303
25304public:
25307
25308public:
25310 SgAsmDwarfPartialUnit(int const& nesting_level,
25311 uint64_t const& offset,
25312 uint64_t const& overall_offset);
25313
25314protected:
25322#endif // SgAsmDwarfPartialUnit_OTHERS
25323#ifdef DOCUMENTATION
25324};
25325#endif // DOCUMENTATION
25326
25327
25329// SgAsmDwarfPackedType -- MACHINE GENERATED; DO NOT MODIFY --
25331
25332DECLARE_LEAF_CLASS(AsmDwarfPackedType);
25333IS_SERIALIZABLE(AsmDwarfPackedType);
25334
25335#ifndef DOCUMENTATION
25336AsmDwarfPackedType.useSmallHeader(true);
25337#endif // !DOCUMENTATION
25338
25339#ifdef DOCUMENTATION
25341#endif // DOCUMENTATION
25342
25343 DECLARE_OTHERS(AsmDwarfPackedType);
25344#if defined(SgAsmDwarfPackedType_OTHERS) || defined(DOCUMENTATION)
25345
25346 //----------------------- Boost serialization for SgAsmDwarfPackedType -----------------------
25347#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25348private:
25349 friend class boost::serialization::access;
25350
25351 template<class S>
25352 void serialize(S &s, const unsigned /*version*/) {
25353 debugSerializationBegin("SgAsmDwarfPackedType");
25354 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25355 debugSerializationEnd("SgAsmDwarfPackedType");
25356 }
25357#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25358
25359public:
25362
25363public:
25366
25367public:
25369 SgAsmDwarfPackedType(int const& nesting_level,
25370 uint64_t const& offset,
25371 uint64_t const& overall_offset);
25372
25373protected:
25381#endif // SgAsmDwarfPackedType_OTHERS
25382#ifdef DOCUMENTATION
25383};
25384#endif // DOCUMENTATION
25385
25386
25388// SgAsmDwarfNamespace -- MACHINE GENERATED; DO NOT MODIFY --
25390
25391DECLARE_LEAF_CLASS(AsmDwarfNamespace);
25392IS_SERIALIZABLE(AsmDwarfNamespace);
25393
25394#ifndef DOCUMENTATION
25395AsmDwarfNamespace.useSmallHeader(true);
25396#endif // !DOCUMENTATION
25397
25398DECLARE_HEADERS(AsmDwarfNamespace);
25399#if defined(SgAsmDwarfNamespace_HEADERS) || defined(DOCUMENTATION)
25400#ifdef ROSE_SgAsmDwarfNamespace_IMPL
25401#include <SgAsmDwarfConstructList.h>
25402#endif
25403#endif // SgAsmDwarfNamespace_HEADERS
25404
25405#ifdef DOCUMENTATION
25407#endif // DOCUMENTATION
25408
25409#ifndef DOCUMENTATION
25410 AsmDwarfNamespace.setDataPrototype(
25411 "SgAsmDwarfConstructList*", "body", "= NULL",
25412 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25413#endif // !DOCUMENTATION
25414
25415 DECLARE_OTHERS(AsmDwarfNamespace);
25416#if defined(SgAsmDwarfNamespace_OTHERS) || defined(DOCUMENTATION)
25417
25418 //----------------------- Boost serialization for SgAsmDwarfNamespace -----------------------
25419#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25420private:
25421 friend class boost::serialization::access;
25422
25423 template<class S>
25424 void serialize(S &s, const unsigned /*version*/) {
25425 debugSerializationBegin("SgAsmDwarfNamespace");
25426 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25427 s & BOOST_SERIALIZATION_NVP(p_body);
25428 debugSerializationEnd("SgAsmDwarfNamespace");
25429 }
25430#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25431public:
25432public:
25433 SgAsmDwarfConstructList* const& get_body() const;
25434 void set_body(SgAsmDwarfConstructList* const&);
25435public:
25436 SgAsmDwarfConstructList* get_children() override;
25437public:
25440
25441public:
25444
25445public:
25447 SgAsmDwarfNamespace(int const& nesting_level,
25448 uint64_t const& offset,
25449 uint64_t const& overall_offset);
25450
25451protected:
25459#endif // SgAsmDwarfNamespace_OTHERS
25460#ifdef DOCUMENTATION
25461};
25462#endif // DOCUMENTATION
25463
25464
25466// SgAsmDwarfNamelistItem -- MACHINE GENERATED; DO NOT MODIFY --
25468
25469DECLARE_LEAF_CLASS(AsmDwarfNamelistItem);
25470IS_SERIALIZABLE(AsmDwarfNamelistItem);
25471
25472#ifndef DOCUMENTATION
25473AsmDwarfNamelistItem.useSmallHeader(true);
25474#endif // !DOCUMENTATION
25475
25476#ifdef DOCUMENTATION
25478#endif // DOCUMENTATION
25479
25480 DECLARE_OTHERS(AsmDwarfNamelistItem);
25481#if defined(SgAsmDwarfNamelistItem_OTHERS) || defined(DOCUMENTATION)
25482
25483 //----------------------- Boost serialization for SgAsmDwarfNamelistItem -----------------------
25484#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25485private:
25486 friend class boost::serialization::access;
25487
25488 template<class S>
25489 void serialize(S &s, const unsigned /*version*/) {
25490 debugSerializationBegin("SgAsmDwarfNamelistItem");
25491 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25492 debugSerializationEnd("SgAsmDwarfNamelistItem");
25493 }
25494#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25495
25496public:
25499
25500public:
25503
25504public:
25506 SgAsmDwarfNamelistItem(int const& nesting_level,
25507 uint64_t const& offset,
25508 uint64_t const& overall_offset);
25509
25510protected:
25518#endif // SgAsmDwarfNamelistItem_OTHERS
25519#ifdef DOCUMENTATION
25520};
25521#endif // DOCUMENTATION
25522
25523
25525// SgAsmDwarfNamelist -- MACHINE GENERATED; DO NOT MODIFY --
25527
25528DECLARE_LEAF_CLASS(AsmDwarfNamelist);
25529IS_SERIALIZABLE(AsmDwarfNamelist);
25530
25531#ifndef DOCUMENTATION
25532AsmDwarfNamelist.useSmallHeader(true);
25533#endif // !DOCUMENTATION
25534
25535#ifdef DOCUMENTATION
25537#endif // DOCUMENTATION
25538
25539 DECLARE_OTHERS(AsmDwarfNamelist);
25540#if defined(SgAsmDwarfNamelist_OTHERS) || defined(DOCUMENTATION)
25541
25542 //----------------------- Boost serialization for SgAsmDwarfNamelist -----------------------
25543#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25544private:
25545 friend class boost::serialization::access;
25546
25547 template<class S>
25548 void serialize(S &s, const unsigned /*version*/) {
25549 debugSerializationBegin("SgAsmDwarfNamelist");
25550 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25551 debugSerializationEnd("SgAsmDwarfNamelist");
25552 }
25553#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25554
25555public:
25558
25559public:
25562
25563public:
25565 SgAsmDwarfNamelist(int const& nesting_level,
25566 uint64_t const& offset,
25567 uint64_t const& overall_offset);
25568
25569protected:
25577#endif // SgAsmDwarfNamelist_OTHERS
25578#ifdef DOCUMENTATION
25579};
25580#endif // DOCUMENTATION
25581
25582
25584// SgAsmDwarfMutableType -- MACHINE GENERATED; DO NOT MODIFY --
25586
25587DECLARE_LEAF_CLASS(AsmDwarfMutableType);
25588IS_SERIALIZABLE(AsmDwarfMutableType);
25589
25590#ifndef DOCUMENTATION
25591AsmDwarfMutableType.useSmallHeader(true);
25592#endif // !DOCUMENTATION
25593
25594#ifdef DOCUMENTATION
25596#endif // DOCUMENTATION
25597
25598 DECLARE_OTHERS(AsmDwarfMutableType);
25599#if defined(SgAsmDwarfMutableType_OTHERS) || defined(DOCUMENTATION)
25600
25601 //----------------------- Boost serialization for SgAsmDwarfMutableType -----------------------
25602#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25603private:
25604 friend class boost::serialization::access;
25605
25606 template<class S>
25607 void serialize(S &s, const unsigned /*version*/) {
25608 debugSerializationBegin("SgAsmDwarfMutableType");
25609 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25610 debugSerializationEnd("SgAsmDwarfMutableType");
25611 }
25612#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25613
25614public:
25617
25618public:
25621
25622public:
25624 SgAsmDwarfMutableType(int const& nesting_level,
25625 uint64_t const& offset,
25626 uint64_t const& overall_offset);
25627
25628protected:
25636#endif // SgAsmDwarfMutableType_OTHERS
25637#ifdef DOCUMENTATION
25638};
25639#endif // DOCUMENTATION
25640
25641
25643// SgAsmDwarfModule -- MACHINE GENERATED; DO NOT MODIFY --
25645
25646DECLARE_LEAF_CLASS(AsmDwarfModule);
25647IS_SERIALIZABLE(AsmDwarfModule);
25648
25649#ifndef DOCUMENTATION
25650AsmDwarfModule.useSmallHeader(true);
25651#endif // !DOCUMENTATION
25652
25653#ifdef DOCUMENTATION
25655#endif // DOCUMENTATION
25656
25657 DECLARE_OTHERS(AsmDwarfModule);
25658#if defined(SgAsmDwarfModule_OTHERS) || defined(DOCUMENTATION)
25659
25660 //----------------------- Boost serialization for SgAsmDwarfModule -----------------------
25661#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25662private:
25663 friend class boost::serialization::access;
25664
25665 template<class S>
25666 void serialize(S &s, const unsigned /*version*/) {
25667 debugSerializationBegin("SgAsmDwarfModule");
25668 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25669 debugSerializationEnd("SgAsmDwarfModule");
25670 }
25671#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25672
25673public:
25676
25677public:
25680
25681public:
25683 SgAsmDwarfModule(int const& nesting_level,
25684 uint64_t const& offset,
25685 uint64_t const& overall_offset);
25686
25687protected:
25695#endif // SgAsmDwarfModule_OTHERS
25696#ifdef DOCUMENTATION
25697};
25698#endif // DOCUMENTATION
25699
25700
25702// SgAsmDwarfMember -- MACHINE GENERATED; DO NOT MODIFY --
25704
25705DECLARE_LEAF_CLASS(AsmDwarfMember);
25706IS_SERIALIZABLE(AsmDwarfMember);
25707
25708#ifndef DOCUMENTATION
25709AsmDwarfMember.useSmallHeader(true);
25710#endif // !DOCUMENTATION
25711
25712#ifdef DOCUMENTATION
25714#endif // DOCUMENTATION
25715
25716 DECLARE_OTHERS(AsmDwarfMember);
25717#if defined(SgAsmDwarfMember_OTHERS) || defined(DOCUMENTATION)
25718
25719 //----------------------- Boost serialization for SgAsmDwarfMember -----------------------
25720#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25721private:
25722 friend class boost::serialization::access;
25723
25724 template<class S>
25725 void serialize(S &s, const unsigned /*version*/) {
25726 debugSerializationBegin("SgAsmDwarfMember");
25727 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25728 debugSerializationEnd("SgAsmDwarfMember");
25729 }
25730#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25731
25732public:
25735
25736public:
25739
25740public:
25742 SgAsmDwarfMember(int const& nesting_level,
25743 uint64_t const& offset,
25744 uint64_t const& overall_offset);
25745
25746protected:
25754#endif // SgAsmDwarfMember_OTHERS
25755#ifdef DOCUMENTATION
25756};
25757#endif // DOCUMENTATION
25758
25759
25761// SgAsmDwarfMacroList -- MACHINE GENERATED; DO NOT MODIFY --
25763
25764DECLARE_LEAF_CLASS(AsmDwarfMacroList);
25765IS_SERIALIZABLE(AsmDwarfMacroList);
25766
25767#ifndef DOCUMENTATION
25768AsmDwarfMacroList.useSmallHeader(true);
25769#endif // !DOCUMENTATION
25770
25771DECLARE_HEADERS(AsmDwarfMacroList);
25772#if defined(SgAsmDwarfMacroList_HEADERS) || defined(DOCUMENTATION)
25773#include <sageContainer.h>
25774#endif // SgAsmDwarfMacroList_HEADERS
25775
25776#ifdef DOCUMENTATION
25778#endif // DOCUMENTATION
25779
25780#ifndef DOCUMENTATION
25781 AsmDwarfMacroList.setDataPrototype(
25782 "SgAsmDwarfMacroPtrList", "macro_list", "",
25783 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25784#endif // !DOCUMENTATION
25785
25786 DECLARE_OTHERS(AsmDwarfMacroList);
25787#if defined(SgAsmDwarfMacroList_OTHERS) || defined(DOCUMENTATION)
25788
25789 //----------------------- Boost serialization for SgAsmDwarfMacroList -----------------------
25790#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25791private:
25792 friend class boost::serialization::access;
25793
25794 template<class S>
25795 void serialize(S &s, const unsigned /*version*/) {
25796 debugSerializationBegin("SgAsmDwarfMacroList");
25797 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
25798 s & BOOST_SERIALIZATION_NVP(p_macro_list);
25799 debugSerializationEnd("SgAsmDwarfMacroList");
25800 }
25801#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25802public:
25803public:
25804 SgAsmDwarfMacroPtrList const& get_macro_list() const;
25805 void set_macro_list(SgAsmDwarfMacroPtrList const&);
25806
25807public:
25810
25811public:
25814
25815protected:
25823#endif // SgAsmDwarfMacroList_OTHERS
25824#ifdef DOCUMENTATION
25825};
25826#endif // DOCUMENTATION
25827
25828
25830// SgAsmDwarfMacro -- MACHINE GENERATED; DO NOT MODIFY --
25832
25833DECLARE_LEAF_CLASS(AsmDwarfMacro);
25834IS_SERIALIZABLE(AsmDwarfMacro);
25835
25836#ifndef DOCUMENTATION
25837AsmDwarfMacro.useSmallHeader(true);
25838#endif // !DOCUMENTATION
25839
25840#ifdef DOCUMENTATION
25842#endif // DOCUMENTATION
25843
25844#ifndef DOCUMENTATION
25845 AsmDwarfMacro.setDataPrototype(
25846 "std::string", "macro_string", "",
25847 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
25848#endif // !DOCUMENTATION
25849
25850 DECLARE_OTHERS(AsmDwarfMacro);
25851#if defined(SgAsmDwarfMacro_OTHERS) || defined(DOCUMENTATION)
25852
25853 //----------------------- Boost serialization for SgAsmDwarfMacro -----------------------
25854#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25855private:
25856 friend class boost::serialization::access;
25857
25858 template<class S>
25859 void serialize(S &s, const unsigned /*version*/) {
25860 debugSerializationBegin("SgAsmDwarfMacro");
25861 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
25862 s & BOOST_SERIALIZATION_NVP(p_macro_string);
25863 debugSerializationEnd("SgAsmDwarfMacro");
25864 }
25865#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25866public:
25867public:
25868 std::string const& get_macro_string() const;
25869 void set_macro_string(std::string const&);
25870
25871public:
25874
25875public:
25878
25879protected:
25887#endif // SgAsmDwarfMacro_OTHERS
25888#ifdef DOCUMENTATION
25889};
25890#endif // DOCUMENTATION
25891
25892
25894// SgAsmDwarfLineList -- MACHINE GENERATED; DO NOT MODIFY --
25896
25897DECLARE_LEAF_CLASS(AsmDwarfLineList);
25898IS_SERIALIZABLE(AsmDwarfLineList);
25899
25900#ifndef DOCUMENTATION
25901AsmDwarfLineList.useSmallHeader(true);
25902#endif // !DOCUMENTATION
25903
25904DECLARE_HEADERS(AsmDwarfLineList);
25905#if defined(SgAsmDwarfLineList_HEADERS) || defined(DOCUMENTATION)
25906#include <sageContainer.h>
25907#endif // SgAsmDwarfLineList_HEADERS
25908
25909#ifdef DOCUMENTATION
25911#endif // DOCUMENTATION
25912
25913#ifndef DOCUMENTATION
25914 AsmDwarfLineList.setDataPrototype(
25915 "SgAsmDwarfLinePtrList", "line_list", "",
25916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25917#endif // !DOCUMENTATION
25918
25919 DECLARE_OTHERS(AsmDwarfLineList);
25920#if defined(SgAsmDwarfLineList_OTHERS) || defined(DOCUMENTATION)
25921
25922 //----------------------- Boost serialization for SgAsmDwarfLineList -----------------------
25923#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25924private:
25925 friend class boost::serialization::access;
25926
25927 template<class S>
25928 void serialize(S &s, const unsigned /*version*/) {
25929 debugSerializationBegin("SgAsmDwarfLineList");
25930 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
25931 s & BOOST_SERIALIZATION_NVP(p_line_list);
25932 debugSerializationEnd("SgAsmDwarfLineList");
25933 }
25934#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25935public:
25936public:
25937 SgAsmDwarfLinePtrList const& get_line_list() const;
25938 SgAsmDwarfLinePtrList& get_line_list();
25939 void set_line_list(SgAsmDwarfLinePtrList const&);
25940#if 0
25941 // I [DQ] am having trouble making these proper data members so just use function to return them, so that they are
25942 // computed dynamically.
25943 AsmDwarfLineList.setDataPrototype("SgInstructionAddressSourcePositionMapPtrList", "instructionToSourceMap", "",
25944 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
25945 AsmDwarfLineList.setDataPrototype("SgSourcePositionInstructionAddressMapPtrList", "sourceToInstructionMap", "",
25946 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
25947#endif
25948
25949public:
25950 // Once the maps are setup using a valid SgAsmDwarfCompilationUnit, NULL is an acceptable value.
25952 static DwarfInstructionSourceMapReturnType buildInstructionAddressSourcePositionMaps( SgAsmDwarfCompilationUnit* dwarf_cu = NULL );
25953
25955 void display( const std::string & label );
25956
25957 static std::pair<uint64_t,uint64_t> instructionRange();
25958 static std::pair<LineColumnFilePosition,LineColumnFilePosition> sourceCodeRange( int file_id );
25959
25960 static uint64_t sourceCodeToAddress ( FileIdLineColumnFilePosition sourcePosition );
25961 static FileIdLineColumnFilePosition addressToSourceCode ( uint64_t address );
25962public:
25965
25966public:
25969
25970protected:
25978#endif // SgAsmDwarfLineList_OTHERS
25979#ifdef DOCUMENTATION
25980};
25981#endif // DOCUMENTATION
25982
25983
25985// SgAsmDwarfLine -- MACHINE GENERATED; DO NOT MODIFY --
25987
25988DECLARE_LEAF_CLASS(AsmDwarfLine);
25989IS_SERIALIZABLE(AsmDwarfLine);
25990
25991#ifndef DOCUMENTATION
25992AsmDwarfLine.useSmallHeader(true);
25993#endif // !DOCUMENTATION
25994
25995#ifdef DOCUMENTATION
25997#endif // DOCUMENTATION
25998
25999#ifndef DOCUMENTATION
26000 AsmDwarfLine.setDataPrototype(
26001 "uint64_t", "address", "= 0",
26002 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26003#endif // !DOCUMENTATION
26004
26005#ifndef DOCUMENTATION
26006 AsmDwarfLine.setDataPrototype(
26007 "int", "file_id", "= -2",
26008 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26009#endif // !DOCUMENTATION
26010
26011#ifndef DOCUMENTATION
26012 AsmDwarfLine.setDataPrototype(
26013 "int", "line", "= 0",
26014 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26015#endif // !DOCUMENTATION
26016
26017#ifndef DOCUMENTATION
26018 AsmDwarfLine.setDataPrototype(
26019 "int", "column", "= 0",
26020 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26021#endif // !DOCUMENTATION
26022
26023 DECLARE_OTHERS(AsmDwarfLine);
26024#if defined(SgAsmDwarfLine_OTHERS) || defined(DOCUMENTATION)
26025
26026 //----------------------- Boost serialization for SgAsmDwarfLine -----------------------
26027#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26028private:
26029 friend class boost::serialization::access;
26030
26031 template<class S>
26032 void serialize(S &s, const unsigned /*version*/) {
26033 debugSerializationBegin("SgAsmDwarfLine");
26034 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26035 s & BOOST_SERIALIZATION_NVP(p_address);
26036 s & BOOST_SERIALIZATION_NVP(p_file_id);
26037 s & BOOST_SERIALIZATION_NVP(p_line);
26038 s & BOOST_SERIALIZATION_NVP(p_column);
26039 debugSerializationEnd("SgAsmDwarfLine");
26040 }
26041#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26042public:
26043public:
26044 uint64_t const& get_address() const;
26045 void set_address(uint64_t const&);
26046 // FIXME[Robb Matzke 2024-03-14]: Sg_File_Info::NULL_FILE_ID == -2, but since Sg_File_Info's definition is in the
26047 // huge Cxx_Grammar.h file we don't want to include it here.
26048public:
26049 int const& get_file_id() const;
26050 void set_file_id(int const&);
26051
26052public:
26053 int const& get_line() const;
26054 void set_line(int const&);
26055
26056public:
26057 int const& get_column() const;
26058 void set_column(int const&);
26059
26060public:
26063
26064public:
26067
26068public:
26070 SgAsmDwarfLine(uint64_t const& address,
26071 int const& file_id,
26072 int const& line,
26073 int const& column);
26074
26075protected:
26083#endif // SgAsmDwarfLine_OTHERS
26084#ifdef DOCUMENTATION
26085};
26086#endif // DOCUMENTATION
26087
26088
26090// SgAsmDwarfLexicalBlock -- MACHINE GENERATED; DO NOT MODIFY --
26092
26093DECLARE_LEAF_CLASS(AsmDwarfLexicalBlock);
26094IS_SERIALIZABLE(AsmDwarfLexicalBlock);
26095
26096#ifndef DOCUMENTATION
26097AsmDwarfLexicalBlock.useSmallHeader(true);
26098#endif // !DOCUMENTATION
26099
26100DECLARE_HEADERS(AsmDwarfLexicalBlock);
26101#if defined(SgAsmDwarfLexicalBlock_HEADERS) || defined(DOCUMENTATION)
26102#ifdef ROSE_SgAsmDwarfLexicalBlock_IMPL
26103#include <SgAsmDwarfConstructList.h>
26104#endif
26105#endif // SgAsmDwarfLexicalBlock_HEADERS
26106
26107#ifdef DOCUMENTATION
26109#endif // DOCUMENTATION
26110
26111#ifndef DOCUMENTATION
26112 AsmDwarfLexicalBlock.setDataPrototype(
26113 "SgAsmDwarfConstructList*", "body", "= nullptr",
26114 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26115#endif // !DOCUMENTATION
26116
26117 DECLARE_OTHERS(AsmDwarfLexicalBlock);
26118#if defined(SgAsmDwarfLexicalBlock_OTHERS) || defined(DOCUMENTATION)
26119
26120 //----------------------- Boost serialization for SgAsmDwarfLexicalBlock -----------------------
26121#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26122private:
26123 friend class boost::serialization::access;
26124
26125 template<class S>
26126 void serialize(S &s, const unsigned /*version*/) {
26127 debugSerializationBegin("SgAsmDwarfLexicalBlock");
26128 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26129 s & BOOST_SERIALIZATION_NVP(p_body);
26130 debugSerializationEnd("SgAsmDwarfLexicalBlock");
26131 }
26132#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26133public:
26134public:
26135 SgAsmDwarfConstructList* const& get_body() const;
26136 void set_body(SgAsmDwarfConstructList* const&);
26137public:
26138 SgAsmDwarfConstructList* get_children() override;
26139public:
26142
26143public:
26146
26147public:
26149 SgAsmDwarfLexicalBlock(int const& nesting_level,
26150 uint64_t const& offset,
26151 uint64_t const& overall_offset);
26152
26153protected:
26161#endif // SgAsmDwarfLexicalBlock_OTHERS
26162#ifdef DOCUMENTATION
26163};
26164#endif // DOCUMENTATION
26165
26166
26168// SgAsmDwarfLabel -- MACHINE GENERATED; DO NOT MODIFY --
26170
26171DECLARE_LEAF_CLASS(AsmDwarfLabel);
26172IS_SERIALIZABLE(AsmDwarfLabel);
26173
26174#ifndef DOCUMENTATION
26175AsmDwarfLabel.useSmallHeader(true);
26176#endif // !DOCUMENTATION
26177
26178#ifdef DOCUMENTATION
26180#endif // DOCUMENTATION
26181
26182 DECLARE_OTHERS(AsmDwarfLabel);
26183#if defined(SgAsmDwarfLabel_OTHERS) || defined(DOCUMENTATION)
26184
26185 //----------------------- Boost serialization for SgAsmDwarfLabel -----------------------
26186#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26187private:
26188 friend class boost::serialization::access;
26189
26190 template<class S>
26191 void serialize(S &s, const unsigned /*version*/) {
26192 debugSerializationBegin("SgAsmDwarfLabel");
26193 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26194 debugSerializationEnd("SgAsmDwarfLabel");
26195 }
26196#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26197
26198public:
26201
26202public:
26205
26206public:
26208 SgAsmDwarfLabel(int const& nesting_level,
26209 uint64_t const& offset,
26210 uint64_t const& overall_offset);
26211
26212protected:
26220#endif // SgAsmDwarfLabel_OTHERS
26221#ifdef DOCUMENTATION
26222};
26223#endif // DOCUMENTATION
26224
26225
26227// SgAsmDwarfInterfaceType -- MACHINE GENERATED; DO NOT MODIFY --
26229
26230DECLARE_LEAF_CLASS(AsmDwarfInterfaceType);
26231IS_SERIALIZABLE(AsmDwarfInterfaceType);
26232
26233#ifndef DOCUMENTATION
26234AsmDwarfInterfaceType.useSmallHeader(true);
26235#endif // !DOCUMENTATION
26236
26237#ifdef DOCUMENTATION
26239#endif // DOCUMENTATION
26240
26241 DECLARE_OTHERS(AsmDwarfInterfaceType);
26242#if defined(SgAsmDwarfInterfaceType_OTHERS) || defined(DOCUMENTATION)
26243
26244 //----------------------- Boost serialization for SgAsmDwarfInterfaceType -----------------------
26245#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26246private:
26247 friend class boost::serialization::access;
26248
26249 template<class S>
26250 void serialize(S &s, const unsigned /*version*/) {
26251 debugSerializationBegin("SgAsmDwarfInterfaceType");
26252 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26253 debugSerializationEnd("SgAsmDwarfInterfaceType");
26254 }
26255#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26256
26257public:
26260
26261public:
26264
26265public:
26267 SgAsmDwarfInterfaceType(int const& nesting_level,
26268 uint64_t const& offset,
26269 uint64_t const& overall_offset);
26270
26271protected:
26279#endif // SgAsmDwarfInterfaceType_OTHERS
26280#ifdef DOCUMENTATION
26281};
26282#endif // DOCUMENTATION
26283
26284
26286// SgAsmDwarfInlinedSubroutine -- MACHINE GENERATED; DO NOT MODIFY --
26288
26289DECLARE_LEAF_CLASS(AsmDwarfInlinedSubroutine);
26290IS_SERIALIZABLE(AsmDwarfInlinedSubroutine);
26291
26292#ifndef DOCUMENTATION
26293AsmDwarfInlinedSubroutine.useSmallHeader(true);
26294#endif // !DOCUMENTATION
26295
26296DECLARE_HEADERS(AsmDwarfInlinedSubroutine);
26297#if defined(SgAsmDwarfInlinedSubroutine_HEADERS) || defined(DOCUMENTATION)
26298#ifdef ROSE_SgAsmDwarfInlinedSubroutine_IMPL
26299#include <SgAsmDwarfConstructList.h>
26300#endif
26301#endif // SgAsmDwarfInlinedSubroutine_HEADERS
26302
26303#ifdef DOCUMENTATION
26305#endif // DOCUMENTATION
26306
26307#ifndef DOCUMENTATION
26308 AsmDwarfInlinedSubroutine.setDataPrototype(
26309 "SgAsmDwarfConstructList*", "body", "= nullptr",
26310 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26311#endif // !DOCUMENTATION
26312
26313 DECLARE_OTHERS(AsmDwarfInlinedSubroutine);
26314#if defined(SgAsmDwarfInlinedSubroutine_OTHERS) || defined(DOCUMENTATION)
26315
26316 //----------------------- Boost serialization for SgAsmDwarfInlinedSubroutine -----------------------
26317#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26318private:
26319 friend class boost::serialization::access;
26320
26321 template<class S>
26322 void serialize(S &s, const unsigned /*version*/) {
26323 debugSerializationBegin("SgAsmDwarfInlinedSubroutine");
26324 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26325 s & BOOST_SERIALIZATION_NVP(p_body);
26326 debugSerializationEnd("SgAsmDwarfInlinedSubroutine");
26327 }
26328#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26329public:
26330public:
26331 SgAsmDwarfConstructList* const& get_body() const;
26332 void set_body(SgAsmDwarfConstructList* const&);
26333public:
26334 SgAsmDwarfConstructList* get_children() override;
26335public:
26338
26339public:
26342
26343public:
26345 SgAsmDwarfInlinedSubroutine(int const& nesting_level,
26346 uint64_t const& offset,
26347 uint64_t const& overall_offset);
26348
26349protected:
26357#endif // SgAsmDwarfInlinedSubroutine_OTHERS
26358#ifdef DOCUMENTATION
26359};
26360#endif // DOCUMENTATION
26361
26362
26364// SgAsmDwarfInheritance -- MACHINE GENERATED; DO NOT MODIFY --
26366
26367DECLARE_LEAF_CLASS(AsmDwarfInheritance);
26368IS_SERIALIZABLE(AsmDwarfInheritance);
26369
26370#ifndef DOCUMENTATION
26371AsmDwarfInheritance.useSmallHeader(true);
26372#endif // !DOCUMENTATION
26373
26374#ifdef DOCUMENTATION
26376#endif // DOCUMENTATION
26377
26378 DECLARE_OTHERS(AsmDwarfInheritance);
26379#if defined(SgAsmDwarfInheritance_OTHERS) || defined(DOCUMENTATION)
26380
26381 //----------------------- Boost serialization for SgAsmDwarfInheritance -----------------------
26382#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26383private:
26384 friend class boost::serialization::access;
26385
26386 template<class S>
26387 void serialize(S &s, const unsigned /*version*/) {
26388 debugSerializationBegin("SgAsmDwarfInheritance");
26389 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26390 debugSerializationEnd("SgAsmDwarfInheritance");
26391 }
26392#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26393
26394public:
26397
26398public:
26401
26402public:
26404 SgAsmDwarfInheritance(int const& nesting_level,
26405 uint64_t const& offset,
26406 uint64_t const& overall_offset);
26407
26408protected:
26416#endif // SgAsmDwarfInheritance_OTHERS
26417#ifdef DOCUMENTATION
26418};
26419#endif // DOCUMENTATION
26420
26421
26423// SgAsmDwarfImportedUnit -- MACHINE GENERATED; DO NOT MODIFY --
26425
26426DECLARE_LEAF_CLASS(AsmDwarfImportedUnit);
26427IS_SERIALIZABLE(AsmDwarfImportedUnit);
26428
26429#ifndef DOCUMENTATION
26430AsmDwarfImportedUnit.useSmallHeader(true);
26431#endif // !DOCUMENTATION
26432
26433#ifdef DOCUMENTATION
26435#endif // DOCUMENTATION
26436
26437 DECLARE_OTHERS(AsmDwarfImportedUnit);
26438#if defined(SgAsmDwarfImportedUnit_OTHERS) || defined(DOCUMENTATION)
26439
26440 //----------------------- Boost serialization for SgAsmDwarfImportedUnit -----------------------
26441#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26442private:
26443 friend class boost::serialization::access;
26444
26445 template<class S>
26446 void serialize(S &s, const unsigned /*version*/) {
26447 debugSerializationBegin("SgAsmDwarfImportedUnit");
26448 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26449 debugSerializationEnd("SgAsmDwarfImportedUnit");
26450 }
26451#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26452
26453public:
26456
26457public:
26460
26461public:
26463 SgAsmDwarfImportedUnit(int const& nesting_level,
26464 uint64_t const& offset,
26465 uint64_t const& overall_offset);
26466
26467protected:
26475#endif // SgAsmDwarfImportedUnit_OTHERS
26476#ifdef DOCUMENTATION
26477};
26478#endif // DOCUMENTATION
26479
26480
26482// SgAsmDwarfImportedModule -- MACHINE GENERATED; DO NOT MODIFY --
26484
26485DECLARE_LEAF_CLASS(AsmDwarfImportedModule);
26486IS_SERIALIZABLE(AsmDwarfImportedModule);
26487
26488#ifndef DOCUMENTATION
26489AsmDwarfImportedModule.useSmallHeader(true);
26490#endif // !DOCUMENTATION
26491
26492#ifdef DOCUMENTATION
26494#endif // DOCUMENTATION
26495
26496 DECLARE_OTHERS(AsmDwarfImportedModule);
26497#if defined(SgAsmDwarfImportedModule_OTHERS) || defined(DOCUMENTATION)
26498
26499 //----------------------- Boost serialization for SgAsmDwarfImportedModule -----------------------
26500#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26501private:
26502 friend class boost::serialization::access;
26503
26504 template<class S>
26505 void serialize(S &s, const unsigned /*version*/) {
26506 debugSerializationBegin("SgAsmDwarfImportedModule");
26507 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26508 debugSerializationEnd("SgAsmDwarfImportedModule");
26509 }
26510#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26511
26512public:
26515
26516public:
26519
26520public:
26522 SgAsmDwarfImportedModule(int const& nesting_level,
26523 uint64_t const& offset,
26524 uint64_t const& overall_offset);
26525
26526protected:
26534#endif // SgAsmDwarfImportedModule_OTHERS
26535#ifdef DOCUMENTATION
26536};
26537#endif // DOCUMENTATION
26538
26539
26541// SgAsmDwarfImportedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
26543
26544DECLARE_LEAF_CLASS(AsmDwarfImportedDeclaration);
26545IS_SERIALIZABLE(AsmDwarfImportedDeclaration);
26546
26547#ifndef DOCUMENTATION
26548AsmDwarfImportedDeclaration.useSmallHeader(true);
26549#endif // !DOCUMENTATION
26550
26551#ifdef DOCUMENTATION
26553#endif // DOCUMENTATION
26554
26555 DECLARE_OTHERS(AsmDwarfImportedDeclaration);
26556#if defined(SgAsmDwarfImportedDeclaration_OTHERS) || defined(DOCUMENTATION)
26557
26558 //----------------------- Boost serialization for SgAsmDwarfImportedDeclaration -----------------------
26559#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26560private:
26561 friend class boost::serialization::access;
26562
26563 template<class S>
26564 void serialize(S &s, const unsigned /*version*/) {
26565 debugSerializationBegin("SgAsmDwarfImportedDeclaration");
26566 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26567 debugSerializationEnd("SgAsmDwarfImportedDeclaration");
26568 }
26569#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26570
26571public:
26574
26575public:
26578
26579public:
26581 SgAsmDwarfImportedDeclaration(int const& nesting_level,
26582 uint64_t const& offset,
26583 uint64_t const& overall_offset);
26584
26585protected:
26593#endif // SgAsmDwarfImportedDeclaration_OTHERS
26594#ifdef DOCUMENTATION
26595};
26596#endif // DOCUMENTATION
26597
26598
26600// SgAsmDwarfFunctionTemplate -- MACHINE GENERATED; DO NOT MODIFY --
26602
26603DECLARE_LEAF_CLASS(AsmDwarfFunctionTemplate);
26604IS_SERIALIZABLE(AsmDwarfFunctionTemplate);
26605
26606#ifndef DOCUMENTATION
26607AsmDwarfFunctionTemplate.useSmallHeader(true);
26608#endif // !DOCUMENTATION
26609
26610#ifdef DOCUMENTATION
26612#endif // DOCUMENTATION
26613
26614 DECLARE_OTHERS(AsmDwarfFunctionTemplate);
26615#if defined(SgAsmDwarfFunctionTemplate_OTHERS) || defined(DOCUMENTATION)
26616
26617 //----------------------- Boost serialization for SgAsmDwarfFunctionTemplate -----------------------
26618#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26619private:
26620 friend class boost::serialization::access;
26621
26622 template<class S>
26623 void serialize(S &s, const unsigned /*version*/) {
26624 debugSerializationBegin("SgAsmDwarfFunctionTemplate");
26625 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26626 debugSerializationEnd("SgAsmDwarfFunctionTemplate");
26627 }
26628#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26629
26630public:
26633
26634public:
26637
26638public:
26640 SgAsmDwarfFunctionTemplate(int const& nesting_level,
26641 uint64_t const& offset,
26642 uint64_t const& overall_offset);
26643
26644protected:
26652#endif // SgAsmDwarfFunctionTemplate_OTHERS
26653#ifdef DOCUMENTATION
26654};
26655#endif // DOCUMENTATION
26656
26657
26659// SgAsmDwarfFriend -- MACHINE GENERATED; DO NOT MODIFY --
26661
26662DECLARE_LEAF_CLASS(AsmDwarfFriend);
26663IS_SERIALIZABLE(AsmDwarfFriend);
26664
26665#ifndef DOCUMENTATION
26666AsmDwarfFriend.useSmallHeader(true);
26667#endif // !DOCUMENTATION
26668
26669#ifdef DOCUMENTATION
26671#endif // DOCUMENTATION
26672
26673 DECLARE_OTHERS(AsmDwarfFriend);
26674#if defined(SgAsmDwarfFriend_OTHERS) || defined(DOCUMENTATION)
26675
26676 //----------------------- Boost serialization for SgAsmDwarfFriend -----------------------
26677#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26678private:
26679 friend class boost::serialization::access;
26680
26681 template<class S>
26682 void serialize(S &s, const unsigned /*version*/) {
26683 debugSerializationBegin("SgAsmDwarfFriend");
26684 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26685 debugSerializationEnd("SgAsmDwarfFriend");
26686 }
26687#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26688
26689public:
26692
26693public:
26696
26697public:
26699 SgAsmDwarfFriend(int const& nesting_level,
26700 uint64_t const& offset,
26701 uint64_t const& overall_offset);
26702
26703protected:
26711#endif // SgAsmDwarfFriend_OTHERS
26712#ifdef DOCUMENTATION
26713};
26714#endif // DOCUMENTATION
26715
26716
26718// SgAsmDwarfFormatLabel -- MACHINE GENERATED; DO NOT MODIFY --
26720
26721DECLARE_LEAF_CLASS(AsmDwarfFormatLabel);
26722IS_SERIALIZABLE(AsmDwarfFormatLabel);
26723
26724#ifndef DOCUMENTATION
26725AsmDwarfFormatLabel.useSmallHeader(true);
26726#endif // !DOCUMENTATION
26727
26728#ifdef DOCUMENTATION
26730#endif // DOCUMENTATION
26731
26732 DECLARE_OTHERS(AsmDwarfFormatLabel);
26733#if defined(SgAsmDwarfFormatLabel_OTHERS) || defined(DOCUMENTATION)
26734
26735 //----------------------- Boost serialization for SgAsmDwarfFormatLabel -----------------------
26736#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26737private:
26738 friend class boost::serialization::access;
26739
26740 template<class S>
26741 void serialize(S &s, const unsigned /*version*/) {
26742 debugSerializationBegin("SgAsmDwarfFormatLabel");
26743 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26744 debugSerializationEnd("SgAsmDwarfFormatLabel");
26745 }
26746#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26747
26748public:
26751
26752public:
26755
26756public:
26758 SgAsmDwarfFormatLabel(int const& nesting_level,
26759 uint64_t const& offset,
26760 uint64_t const& overall_offset);
26761
26762protected:
26770#endif // SgAsmDwarfFormatLabel_OTHERS
26771#ifdef DOCUMENTATION
26772};
26773#endif // DOCUMENTATION
26774
26775
26777// SgAsmDwarfFormalParameter -- MACHINE GENERATED; DO NOT MODIFY --
26779
26780DECLARE_LEAF_CLASS(AsmDwarfFormalParameter);
26781IS_SERIALIZABLE(AsmDwarfFormalParameter);
26782
26783#ifndef DOCUMENTATION
26784AsmDwarfFormalParameter.useSmallHeader(true);
26785#endif // !DOCUMENTATION
26786
26787#ifdef DOCUMENTATION
26789#endif // DOCUMENTATION
26790
26791 DECLARE_OTHERS(AsmDwarfFormalParameter);
26792#if defined(SgAsmDwarfFormalParameter_OTHERS) || defined(DOCUMENTATION)
26793
26794 //----------------------- Boost serialization for SgAsmDwarfFormalParameter -----------------------
26795#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26796private:
26797 friend class boost::serialization::access;
26798
26799 template<class S>
26800 void serialize(S &s, const unsigned /*version*/) {
26801 debugSerializationBegin("SgAsmDwarfFormalParameter");
26802 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26803 debugSerializationEnd("SgAsmDwarfFormalParameter");
26804 }
26805#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26806
26807public:
26810
26811public:
26814
26815public:
26817 SgAsmDwarfFormalParameter(int const& nesting_level,
26818 uint64_t const& offset,
26819 uint64_t const& overall_offset);
26820
26821protected:
26829#endif // SgAsmDwarfFormalParameter_OTHERS
26830#ifdef DOCUMENTATION
26831};
26832#endif // DOCUMENTATION
26833
26834
26836// SgAsmDwarfFileType -- MACHINE GENERATED; DO NOT MODIFY --
26838
26839DECLARE_LEAF_CLASS(AsmDwarfFileType);
26840IS_SERIALIZABLE(AsmDwarfFileType);
26841
26842#ifndef DOCUMENTATION
26843AsmDwarfFileType.useSmallHeader(true);
26844#endif // !DOCUMENTATION
26845
26846#ifdef DOCUMENTATION
26848#endif // DOCUMENTATION
26849
26850 DECLARE_OTHERS(AsmDwarfFileType);
26851#if defined(SgAsmDwarfFileType_OTHERS) || defined(DOCUMENTATION)
26852
26853 //----------------------- Boost serialization for SgAsmDwarfFileType -----------------------
26854#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26855private:
26856 friend class boost::serialization::access;
26857
26858 template<class S>
26859 void serialize(S &s, const unsigned /*version*/) {
26860 debugSerializationBegin("SgAsmDwarfFileType");
26861 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26862 debugSerializationEnd("SgAsmDwarfFileType");
26863 }
26864#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26865
26866public:
26869
26870public:
26873
26874public:
26876 SgAsmDwarfFileType(int const& nesting_level,
26877 uint64_t const& offset,
26878 uint64_t const& overall_offset);
26879
26880protected:
26888#endif // SgAsmDwarfFileType_OTHERS
26889#ifdef DOCUMENTATION
26890};
26891#endif // DOCUMENTATION
26892
26893
26895// SgAsmDwarfEnumerator -- MACHINE GENERATED; DO NOT MODIFY --
26897
26898DECLARE_LEAF_CLASS(AsmDwarfEnumerator);
26899IS_SERIALIZABLE(AsmDwarfEnumerator);
26900
26901#ifndef DOCUMENTATION
26902AsmDwarfEnumerator.useSmallHeader(true);
26903#endif // !DOCUMENTATION
26904
26905#ifdef DOCUMENTATION
26907#endif // DOCUMENTATION
26908
26909 DECLARE_OTHERS(AsmDwarfEnumerator);
26910#if defined(SgAsmDwarfEnumerator_OTHERS) || defined(DOCUMENTATION)
26911
26912 //----------------------- Boost serialization for SgAsmDwarfEnumerator -----------------------
26913#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26914private:
26915 friend class boost::serialization::access;
26916
26917 template<class S>
26918 void serialize(S &s, const unsigned /*version*/) {
26919 debugSerializationBegin("SgAsmDwarfEnumerator");
26920 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26921 debugSerializationEnd("SgAsmDwarfEnumerator");
26922 }
26923#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26924
26925public:
26928
26929public:
26932
26933public:
26935 SgAsmDwarfEnumerator(int const& nesting_level,
26936 uint64_t const& offset,
26937 uint64_t const& overall_offset);
26938
26939protected:
26947#endif // SgAsmDwarfEnumerator_OTHERS
26948#ifdef DOCUMENTATION
26949};
26950#endif // DOCUMENTATION
26951
26952
26954// SgAsmDwarfEnumerationType -- MACHINE GENERATED; DO NOT MODIFY --
26956
26957DECLARE_LEAF_CLASS(AsmDwarfEnumerationType);
26958IS_SERIALIZABLE(AsmDwarfEnumerationType);
26959
26960#ifndef DOCUMENTATION
26961AsmDwarfEnumerationType.useSmallHeader(true);
26962#endif // !DOCUMENTATION
26963
26964DECLARE_HEADERS(AsmDwarfEnumerationType);
26965#if defined(SgAsmDwarfEnumerationType_HEADERS) || defined(DOCUMENTATION)
26966#ifdef ROSE_SgAsmDwarfEnumerationType_IMPL
26967#include <SgAsmDwarfConstructList.h>
26968#endif
26969#endif // SgAsmDwarfEnumerationType_HEADERS
26970
26971#ifdef DOCUMENTATION
26973#endif // DOCUMENTATION
26974
26975#ifndef DOCUMENTATION
26976 AsmDwarfEnumerationType.setDataPrototype(
26977 "SgAsmDwarfConstructList*", "body", "= NULL",
26978 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26979#endif // !DOCUMENTATION
26980
26981 DECLARE_OTHERS(AsmDwarfEnumerationType);
26982#if defined(SgAsmDwarfEnumerationType_OTHERS) || defined(DOCUMENTATION)
26983
26984 //----------------------- Boost serialization for SgAsmDwarfEnumerationType -----------------------
26985#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26986private:
26987 friend class boost::serialization::access;
26988
26989 template<class S>
26990 void serialize(S &s, const unsigned /*version*/) {
26991 debugSerializationBegin("SgAsmDwarfEnumerationType");
26992 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26993 s & BOOST_SERIALIZATION_NVP(p_body);
26994 debugSerializationEnd("SgAsmDwarfEnumerationType");
26995 }
26996#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26997public:
26998public:
26999 SgAsmDwarfConstructList* const& get_body() const;
27000 void set_body(SgAsmDwarfConstructList* const&);
27001public:
27002 SgAsmDwarfConstructList* get_children() override;
27003public:
27006
27007public:
27010
27011public:
27013 SgAsmDwarfEnumerationType(int const& nesting_level,
27014 uint64_t const& offset,
27015 uint64_t const& overall_offset);
27016
27017protected:
27025#endif // SgAsmDwarfEnumerationType_OTHERS
27026#ifdef DOCUMENTATION
27027};
27028#endif // DOCUMENTATION
27029
27030
27032// SgAsmDwarfEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
27034
27035DECLARE_LEAF_CLASS(AsmDwarfEntryPoint);
27036IS_SERIALIZABLE(AsmDwarfEntryPoint);
27037
27038#ifndef DOCUMENTATION
27039AsmDwarfEntryPoint.useSmallHeader(true);
27040#endif // !DOCUMENTATION
27041
27042#ifdef DOCUMENTATION
27044#endif // DOCUMENTATION
27045
27046 DECLARE_OTHERS(AsmDwarfEntryPoint);
27047#if defined(SgAsmDwarfEntryPoint_OTHERS) || defined(DOCUMENTATION)
27048
27049 //----------------------- Boost serialization for SgAsmDwarfEntryPoint -----------------------
27050#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27051private:
27052 friend class boost::serialization::access;
27053
27054 template<class S>
27055 void serialize(S &s, const unsigned /*version*/) {
27056 debugSerializationBegin("SgAsmDwarfEntryPoint");
27057 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27058 debugSerializationEnd("SgAsmDwarfEntryPoint");
27059 }
27060#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27061
27062public:
27065
27066public:
27069
27070public:
27072 SgAsmDwarfEntryPoint(int const& nesting_level,
27073 uint64_t const& offset,
27074 uint64_t const& overall_offset);
27075
27076protected:
27084#endif // SgAsmDwarfEntryPoint_OTHERS
27085#ifdef DOCUMENTATION
27086};
27087#endif // DOCUMENTATION
27088
27089
27091// SgAsmDwarfDwarfProcedure -- MACHINE GENERATED; DO NOT MODIFY --
27093
27094DECLARE_LEAF_CLASS(AsmDwarfDwarfProcedure);
27095IS_SERIALIZABLE(AsmDwarfDwarfProcedure);
27096
27097#ifndef DOCUMENTATION
27098AsmDwarfDwarfProcedure.useSmallHeader(true);
27099#endif // !DOCUMENTATION
27100
27101#ifdef DOCUMENTATION
27103#endif // DOCUMENTATION
27104
27105 DECLARE_OTHERS(AsmDwarfDwarfProcedure);
27106#if defined(SgAsmDwarfDwarfProcedure_OTHERS) || defined(DOCUMENTATION)
27107
27108 //----------------------- Boost serialization for SgAsmDwarfDwarfProcedure -----------------------
27109#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27110private:
27111 friend class boost::serialization::access;
27112
27113 template<class S>
27114 void serialize(S &s, const unsigned /*version*/) {
27115 debugSerializationBegin("SgAsmDwarfDwarfProcedure");
27116 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27117 debugSerializationEnd("SgAsmDwarfDwarfProcedure");
27118 }
27119#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27120
27121public:
27124
27125public:
27128
27129public:
27131 SgAsmDwarfDwarfProcedure(int const& nesting_level,
27132 uint64_t const& offset,
27133 uint64_t const& overall_offset);
27134
27135protected:
27143#endif // SgAsmDwarfDwarfProcedure_OTHERS
27144#ifdef DOCUMENTATION
27145};
27146#endif // DOCUMENTATION
27147
27148
27150// SgAsmDwarfConstructList -- MACHINE GENERATED; DO NOT MODIFY --
27152
27153DECLARE_LEAF_CLASS(AsmDwarfConstructList);
27154IS_SERIALIZABLE(AsmDwarfConstructList);
27155
27156#ifndef DOCUMENTATION
27157AsmDwarfConstructList.useSmallHeader(true);
27158#endif // !DOCUMENTATION
27159
27160DECLARE_HEADERS(AsmDwarfConstructList);
27161#if defined(SgAsmDwarfConstructList_HEADERS) || defined(DOCUMENTATION)
27162#include <sageContainer.h>
27163#endif // SgAsmDwarfConstructList_HEADERS
27164
27165#ifdef DOCUMENTATION
27167#endif // DOCUMENTATION
27168
27169#ifndef DOCUMENTATION
27170 AsmDwarfConstructList.setDataPrototype(
27171 "SgAsmDwarfConstructPtrList", "list", "",
27172 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27173#endif // !DOCUMENTATION
27174
27175 DECLARE_OTHERS(AsmDwarfConstructList);
27176#if defined(SgAsmDwarfConstructList_OTHERS) || defined(DOCUMENTATION)
27177
27178 //----------------------- Boost serialization for SgAsmDwarfConstructList -----------------------
27179#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27180private:
27181 friend class boost::serialization::access;
27182
27183 template<class S>
27184 void serialize(S &s, const unsigned /*version*/) {
27185 debugSerializationBegin("SgAsmDwarfConstructList");
27186 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
27187 s & BOOST_SERIALIZATION_NVP(p_list);
27188 debugSerializationEnd("SgAsmDwarfConstructList");
27189 }
27190#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27191public:
27192public:
27193 SgAsmDwarfConstructPtrList const& get_list() const;
27194 SgAsmDwarfConstructPtrList& get_list();
27195 void set_list(SgAsmDwarfConstructPtrList const&);
27196
27197public:
27200
27201public:
27204
27205protected:
27213#endif // SgAsmDwarfConstructList_OTHERS
27214#ifdef DOCUMENTATION
27215};
27216#endif // DOCUMENTATION
27217
27218
27220// SgAsmDwarfConstant -- MACHINE GENERATED; DO NOT MODIFY --
27222
27223DECLARE_LEAF_CLASS(AsmDwarfConstant);
27224IS_SERIALIZABLE(AsmDwarfConstant);
27225
27226#ifndef DOCUMENTATION
27227AsmDwarfConstant.useSmallHeader(true);
27228#endif // !DOCUMENTATION
27229
27230#ifdef DOCUMENTATION
27232#endif // DOCUMENTATION
27233
27234 DECLARE_OTHERS(AsmDwarfConstant);
27235#if defined(SgAsmDwarfConstant_OTHERS) || defined(DOCUMENTATION)
27236
27237 //----------------------- Boost serialization for SgAsmDwarfConstant -----------------------
27238#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27239private:
27240 friend class boost::serialization::access;
27241
27242 template<class S>
27243 void serialize(S &s, const unsigned /*version*/) {
27244 debugSerializationBegin("SgAsmDwarfConstant");
27245 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27246 debugSerializationEnd("SgAsmDwarfConstant");
27247 }
27248#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27249
27250public:
27253
27254public:
27257
27258public:
27260 SgAsmDwarfConstant(int const& nesting_level,
27261 uint64_t const& offset,
27262 uint64_t const& overall_offset);
27263
27264protected:
27272#endif // SgAsmDwarfConstant_OTHERS
27273#ifdef DOCUMENTATION
27274};
27275#endif // DOCUMENTATION
27276
27277
27279// SgAsmDwarfConstType -- MACHINE GENERATED; DO NOT MODIFY --
27281
27282DECLARE_LEAF_CLASS(AsmDwarfConstType);
27283IS_SERIALIZABLE(AsmDwarfConstType);
27284
27285#ifndef DOCUMENTATION
27286AsmDwarfConstType.useSmallHeader(true);
27287#endif // !DOCUMENTATION
27288
27289#ifdef DOCUMENTATION
27291#endif // DOCUMENTATION
27292
27293 DECLARE_OTHERS(AsmDwarfConstType);
27294#if defined(SgAsmDwarfConstType_OTHERS) || defined(DOCUMENTATION)
27295
27296 //----------------------- Boost serialization for SgAsmDwarfConstType -----------------------
27297#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27298private:
27299 friend class boost::serialization::access;
27300
27301 template<class S>
27302 void serialize(S &s, const unsigned /*version*/) {
27303 debugSerializationBegin("SgAsmDwarfConstType");
27304 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27305 debugSerializationEnd("SgAsmDwarfConstType");
27306 }
27307#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27308
27309public:
27312
27313public:
27316
27317public:
27319 SgAsmDwarfConstType(int const& nesting_level,
27320 uint64_t const& offset,
27321 uint64_t const& overall_offset);
27322
27323protected:
27331#endif // SgAsmDwarfConstType_OTHERS
27332#ifdef DOCUMENTATION
27333};
27334#endif // DOCUMENTATION
27335
27336
27338// SgAsmDwarfCondition -- MACHINE GENERATED; DO NOT MODIFY --
27340
27341DECLARE_LEAF_CLASS(AsmDwarfCondition);
27342IS_SERIALIZABLE(AsmDwarfCondition);
27343
27344#ifndef DOCUMENTATION
27345AsmDwarfCondition.useSmallHeader(true);
27346#endif // !DOCUMENTATION
27347
27348#ifdef DOCUMENTATION
27350#endif // DOCUMENTATION
27351
27352 DECLARE_OTHERS(AsmDwarfCondition);
27353#if defined(SgAsmDwarfCondition_OTHERS) || defined(DOCUMENTATION)
27354
27355 //----------------------- Boost serialization for SgAsmDwarfCondition -----------------------
27356#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27357private:
27358 friend class boost::serialization::access;
27359
27360 template<class S>
27361 void serialize(S &s, const unsigned /*version*/) {
27362 debugSerializationBegin("SgAsmDwarfCondition");
27363 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27364 debugSerializationEnd("SgAsmDwarfCondition");
27365 }
27366#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27367
27368public:
27371
27372public:
27375
27376public:
27378 SgAsmDwarfCondition(int const& nesting_level,
27379 uint64_t const& offset,
27380 uint64_t const& overall_offset);
27381
27382protected:
27390#endif // SgAsmDwarfCondition_OTHERS
27391#ifdef DOCUMENTATION
27392};
27393#endif // DOCUMENTATION
27394
27395
27397// SgAsmDwarfCompilationUnitList -- MACHINE GENERATED; DO NOT MODIFY --
27399
27400DECLARE_LEAF_CLASS(AsmDwarfCompilationUnitList);
27401IS_SERIALIZABLE(AsmDwarfCompilationUnitList);
27402
27403#ifndef DOCUMENTATION
27404AsmDwarfCompilationUnitList.useSmallHeader(true);
27405#endif // !DOCUMENTATION
27406
27407DECLARE_HEADERS(AsmDwarfCompilationUnitList);
27408#if defined(SgAsmDwarfCompilationUnitList_HEADERS) || defined(DOCUMENTATION)
27409#include <sageContainer.h>
27410#endif // SgAsmDwarfCompilationUnitList_HEADERS
27411
27412#ifdef DOCUMENTATION
27414#endif // DOCUMENTATION
27415
27416#ifndef DOCUMENTATION
27417 AsmDwarfCompilationUnitList.setDataPrototype(
27418 "SgAsmDwarfCompilationUnitPtrList", "cu_list", "",
27419 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27420#endif // !DOCUMENTATION
27421
27422 DECLARE_OTHERS(AsmDwarfCompilationUnitList);
27423#if defined(SgAsmDwarfCompilationUnitList_OTHERS) || defined(DOCUMENTATION)
27424
27425 //----------------------- Boost serialization for SgAsmDwarfCompilationUnitList -----------------------
27426#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27427private:
27428 friend class boost::serialization::access;
27429
27430 template<class S>
27431 void serialize(S &s, const unsigned /*version*/) {
27432 debugSerializationBegin("SgAsmDwarfCompilationUnitList");
27433 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
27434 s & BOOST_SERIALIZATION_NVP(p_cu_list);
27435 debugSerializationEnd("SgAsmDwarfCompilationUnitList");
27436 }
27437#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27438public:
27439public:
27440 SgAsmDwarfCompilationUnitPtrList const& get_cu_list() const;
27441 SgAsmDwarfCompilationUnitPtrList& get_cu_list();
27442 void set_cu_list(SgAsmDwarfCompilationUnitPtrList const&);
27443
27444public:
27447
27448public:
27451
27452protected:
27460#endif // SgAsmDwarfCompilationUnitList_OTHERS
27461#ifdef DOCUMENTATION
27462};
27463#endif // DOCUMENTATION
27464
27465
27467// SgAsmDwarfCompilationUnit -- MACHINE GENERATED; DO NOT MODIFY --
27469
27470DECLARE_LEAF_CLASS(AsmDwarfCompilationUnit);
27471IS_SERIALIZABLE(AsmDwarfCompilationUnit);
27472
27473#ifndef DOCUMENTATION
27474AsmDwarfCompilationUnit.useSmallHeader(true);
27475#endif // !DOCUMENTATION
27476
27477DECLARE_HEADERS(AsmDwarfCompilationUnit);
27478#if defined(SgAsmDwarfCompilationUnit_HEADERS) || defined(DOCUMENTATION)
27479#ifdef ROSE_SgAsmDwarfCompilationUnit_IMPL
27480#include <SgAsmDwarfConstructList.h>
27481#include <SgAsmDwarfLineList.h>
27482#include <SgAsmDwarfMacroList.h>
27483#endif
27484#endif // SgAsmDwarfCompilationUnit_HEADERS
27485
27486#ifdef DOCUMENTATION
27488#endif // DOCUMENTATION
27489
27490#ifndef DOCUMENTATION
27491 AsmDwarfCompilationUnit.setDataPrototype(
27492 "std::string", "producer", "",
27493 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27494#endif // !DOCUMENTATION
27495
27496#ifndef DOCUMENTATION
27497 AsmDwarfCompilationUnit.setDataPrototype(
27498 "std::string", "language", "",
27499 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27500#endif // !DOCUMENTATION
27501
27502#ifndef DOCUMENTATION
27503 AsmDwarfCompilationUnit.setDataPrototype(
27504 "uint64_t", "low_pc", "= 0",
27505 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27506#endif // !DOCUMENTATION
27507
27508#ifndef DOCUMENTATION
27509 AsmDwarfCompilationUnit.setDataPrototype(
27510 "uint64_t", "hi_pc", "= 0",
27511 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27512#endif // !DOCUMENTATION
27513
27514#ifndef DOCUMENTATION
27515 AsmDwarfCompilationUnit.setDataPrototype(
27516 "int", "version_stamp", "= 0",
27517 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27518#endif // !DOCUMENTATION
27519
27520#ifndef DOCUMENTATION
27521 AsmDwarfCompilationUnit.setDataPrototype(
27522 "uint64_t", "abbrev_offset", "= 0",
27523 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27524#endif // !DOCUMENTATION
27525
27526#ifndef DOCUMENTATION
27527 AsmDwarfCompilationUnit.setDataPrototype(
27528 "uint64_t", "address_size", "= 0",
27529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27530#endif // !DOCUMENTATION
27531
27532#ifndef DOCUMENTATION
27533 AsmDwarfCompilationUnit.setDataPrototype(
27534 "uint64_t", "offset_length", "= 0",
27535 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27536#endif // !DOCUMENTATION
27537
27538#ifndef DOCUMENTATION
27539 AsmDwarfCompilationUnit.setDataPrototype(
27540 "SgAsmDwarfLineList*", "line_info", "= nullptr",
27541 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27542#endif // !DOCUMENTATION
27543
27544#ifndef DOCUMENTATION
27545 AsmDwarfCompilationUnit.setDataPrototype(
27546 "SgAsmDwarfConstructList*", "language_constructs", "= nullptr",
27547 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27548#endif // !DOCUMENTATION
27549
27550#ifndef DOCUMENTATION
27551 AsmDwarfCompilationUnit.setDataPrototype(
27552 "SgAsmDwarfMacroList*", "macro_info", "= nullptr",
27553 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27554#endif // !DOCUMENTATION
27555
27556 DECLARE_OTHERS(AsmDwarfCompilationUnit);
27557#if defined(SgAsmDwarfCompilationUnit_OTHERS) || defined(DOCUMENTATION)
27558
27559 //----------------------- Boost serialization for SgAsmDwarfCompilationUnit -----------------------
27560#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27561private:
27562 friend class boost::serialization::access;
27563
27564 template<class S>
27565 void serialize(S &s, const unsigned /*version*/) {
27566 debugSerializationBegin("SgAsmDwarfCompilationUnit");
27567 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27568 s & BOOST_SERIALIZATION_NVP(p_producer);
27569 s & BOOST_SERIALIZATION_NVP(p_language);
27570 s & BOOST_SERIALIZATION_NVP(p_low_pc);
27571 s & BOOST_SERIALIZATION_NVP(p_hi_pc);
27572 s & BOOST_SERIALIZATION_NVP(p_version_stamp);
27573 s & BOOST_SERIALIZATION_NVP(p_abbrev_offset);
27574 s & BOOST_SERIALIZATION_NVP(p_address_size);
27575 s & BOOST_SERIALIZATION_NVP(p_offset_length);
27576 s & BOOST_SERIALIZATION_NVP(p_line_info);
27577 s & BOOST_SERIALIZATION_NVP(p_language_constructs);
27578 s & BOOST_SERIALIZATION_NVP(p_macro_info);
27579 debugSerializationEnd("SgAsmDwarfCompilationUnit");
27580 }
27581#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27582public:
27583public:
27584 std::string const& get_producer() const;
27585 void set_producer(std::string const&);
27586
27587public:
27588 std::string const& get_language() const;
27589 void set_language(std::string const&);
27590
27591public:
27592 uint64_t const& get_low_pc() const;
27593 void set_low_pc(uint64_t const&);
27594
27595public:
27596 uint64_t const& get_hi_pc() const;
27597 void set_hi_pc(uint64_t const&);
27598
27599public:
27600 int const& get_version_stamp() const;
27601 void set_version_stamp(int const&);
27602
27603public:
27604 uint64_t const& get_abbrev_offset() const;
27605 void set_abbrev_offset(uint64_t const&);
27606
27607public:
27608 uint64_t const& get_address_size() const;
27609 void set_address_size(uint64_t const&);
27610
27611public:
27612 uint64_t const& get_offset_length() const;
27613 void set_offset_length(uint64_t const&);
27614
27615public:
27616 SgAsmDwarfLineList* const& get_line_info() const;
27617 void set_line_info(SgAsmDwarfLineList* const&);
27618
27619public:
27620 SgAsmDwarfConstructList* const& get_language_constructs() const;
27621 void set_language_constructs(SgAsmDwarfConstructList* const&);
27622
27623public:
27624 SgAsmDwarfMacroList* const& get_macro_info() const;
27625 void set_macro_info(SgAsmDwarfMacroList* const&);
27626public:
27627 SgAsmDwarfConstructList* get_children() override;
27628public:
27631
27632public:
27635
27636public:
27638 SgAsmDwarfCompilationUnit(int const& nesting_level,
27639 uint64_t const& offset,
27640 uint64_t const& overall_offset);
27641
27642protected:
27650#endif // SgAsmDwarfCompilationUnit_OTHERS
27651#ifdef DOCUMENTATION
27652};
27653#endif // DOCUMENTATION
27654
27655
27657// SgAsmDwarfCommonInclusion -- MACHINE GENERATED; DO NOT MODIFY --
27659
27660DECLARE_LEAF_CLASS(AsmDwarfCommonInclusion);
27661IS_SERIALIZABLE(AsmDwarfCommonInclusion);
27662
27663#ifndef DOCUMENTATION
27664AsmDwarfCommonInclusion.useSmallHeader(true);
27665#endif // !DOCUMENTATION
27666
27667#ifdef DOCUMENTATION
27669#endif // DOCUMENTATION
27670
27671 DECLARE_OTHERS(AsmDwarfCommonInclusion);
27672#if defined(SgAsmDwarfCommonInclusion_OTHERS) || defined(DOCUMENTATION)
27673
27674 //----------------------- Boost serialization for SgAsmDwarfCommonInclusion -----------------------
27675#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27676private:
27677 friend class boost::serialization::access;
27678
27679 template<class S>
27680 void serialize(S &s, const unsigned /*version*/) {
27681 debugSerializationBegin("SgAsmDwarfCommonInclusion");
27682 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27683 debugSerializationEnd("SgAsmDwarfCommonInclusion");
27684 }
27685#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27686
27687public:
27690
27691public:
27694
27695public:
27697 SgAsmDwarfCommonInclusion(int const& nesting_level,
27698 uint64_t const& offset,
27699 uint64_t const& overall_offset);
27700
27701protected:
27709#endif // SgAsmDwarfCommonInclusion_OTHERS
27710#ifdef DOCUMENTATION
27711};
27712#endif // DOCUMENTATION
27713
27714
27716// SgAsmDwarfCommonBlock -- MACHINE GENERATED; DO NOT MODIFY --
27718
27719DECLARE_LEAF_CLASS(AsmDwarfCommonBlock);
27720IS_SERIALIZABLE(AsmDwarfCommonBlock);
27721
27722#ifndef DOCUMENTATION
27723AsmDwarfCommonBlock.useSmallHeader(true);
27724#endif // !DOCUMENTATION
27725
27726DECLARE_HEADERS(AsmDwarfCommonBlock);
27727#if defined(SgAsmDwarfCommonBlock_HEADERS) || defined(DOCUMENTATION)
27728#ifdef ROSE_SgAsmDwarfCommonBlock_IMPL
27729#include <SgAsmDwarfConstructList.h>
27730#endif
27731#endif // SgAsmDwarfCommonBlock_HEADERS
27732
27733#ifdef DOCUMENTATION
27735#endif // DOCUMENTATION
27736
27737#ifndef DOCUMENTATION
27738 AsmDwarfCommonBlock.setDataPrototype(
27739 "SgAsmDwarfConstructList*", "body", "= NULL",
27740 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27741#endif // !DOCUMENTATION
27742
27743 DECLARE_OTHERS(AsmDwarfCommonBlock);
27744#if defined(SgAsmDwarfCommonBlock_OTHERS) || defined(DOCUMENTATION)
27745
27746 //----------------------- Boost serialization for SgAsmDwarfCommonBlock -----------------------
27747#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27748private:
27749 friend class boost::serialization::access;
27750
27751 template<class S>
27752 void serialize(S &s, const unsigned /*version*/) {
27753 debugSerializationBegin("SgAsmDwarfCommonBlock");
27754 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27755 s & BOOST_SERIALIZATION_NVP(p_body);
27756 debugSerializationEnd("SgAsmDwarfCommonBlock");
27757 }
27758#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27759public:
27760public:
27761 SgAsmDwarfConstructList* const& get_body() const;
27762 void set_body(SgAsmDwarfConstructList* const&);
27763public:
27764 SgAsmDwarfConstructList* get_children() override;
27765public:
27768
27769public:
27772
27773public:
27775 SgAsmDwarfCommonBlock(int const& nesting_level,
27776 uint64_t const& offset,
27777 uint64_t const& overall_offset);
27778
27779protected:
27787#endif // SgAsmDwarfCommonBlock_OTHERS
27788#ifdef DOCUMENTATION
27789};
27790#endif // DOCUMENTATION
27791
27792
27794// SgAsmDwarfClassType -- MACHINE GENERATED; DO NOT MODIFY --
27796
27797DECLARE_LEAF_CLASS(AsmDwarfClassType);
27798IS_SERIALIZABLE(AsmDwarfClassType);
27799
27800#ifndef DOCUMENTATION
27801AsmDwarfClassType.useSmallHeader(true);
27802#endif // !DOCUMENTATION
27803
27804DECLARE_HEADERS(AsmDwarfClassType);
27805#if defined(SgAsmDwarfClassType_HEADERS) || defined(DOCUMENTATION)
27806#ifdef ROSE_SgAsmDwarfClassType_IMPL
27807#include <SgAsmDwarfConstructList.h>
27808#endif
27809#endif // SgAsmDwarfClassType_HEADERS
27810
27811#ifdef DOCUMENTATION
27813#endif // DOCUMENTATION
27814
27815#ifndef DOCUMENTATION
27816 AsmDwarfClassType.setDataPrototype(
27817 "SgAsmDwarfConstructList*", "body", "= nullptr",
27818 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27819#endif // !DOCUMENTATION
27820
27821 DECLARE_OTHERS(AsmDwarfClassType);
27822#if defined(SgAsmDwarfClassType_OTHERS) || defined(DOCUMENTATION)
27823
27824 //----------------------- Boost serialization for SgAsmDwarfClassType -----------------------
27825#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27826private:
27827 friend class boost::serialization::access;
27828
27829 template<class S>
27830 void serialize(S &s, const unsigned /*version*/) {
27831 debugSerializationBegin("SgAsmDwarfClassType");
27832 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27833 s & BOOST_SERIALIZATION_NVP(p_body);
27834 debugSerializationEnd("SgAsmDwarfClassType");
27835 }
27836#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27837public:
27838public:
27839 SgAsmDwarfConstructList* const& get_body() const;
27840 void set_body(SgAsmDwarfConstructList* const&);
27841public:
27842 SgAsmDwarfConstructList* get_children() override;
27843public:
27846
27847public:
27850
27851public:
27853 SgAsmDwarfClassType(int const& nesting_level,
27854 uint64_t const& offset,
27855 uint64_t const& overall_offset);
27856
27857protected:
27865#endif // SgAsmDwarfClassType_OTHERS
27866#ifdef DOCUMENTATION
27867};
27868#endif // DOCUMENTATION
27869
27870
27872// SgAsmDwarfClassTemplate -- MACHINE GENERATED; DO NOT MODIFY --
27874
27875DECLARE_LEAF_CLASS(AsmDwarfClassTemplate);
27876IS_SERIALIZABLE(AsmDwarfClassTemplate);
27877
27878#ifndef DOCUMENTATION
27879AsmDwarfClassTemplate.useSmallHeader(true);
27880#endif // !DOCUMENTATION
27881
27882#ifdef DOCUMENTATION
27884#endif // DOCUMENTATION
27885
27886 DECLARE_OTHERS(AsmDwarfClassTemplate);
27887#if defined(SgAsmDwarfClassTemplate_OTHERS) || defined(DOCUMENTATION)
27888
27889 //----------------------- Boost serialization for SgAsmDwarfClassTemplate -----------------------
27890#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27891private:
27892 friend class boost::serialization::access;
27893
27894 template<class S>
27895 void serialize(S &s, const unsigned /*version*/) {
27896 debugSerializationBegin("SgAsmDwarfClassTemplate");
27897 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27898 debugSerializationEnd("SgAsmDwarfClassTemplate");
27899 }
27900#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27901
27902public:
27905
27906public:
27909
27910public:
27912 SgAsmDwarfClassTemplate(int const& nesting_level,
27913 uint64_t const& offset,
27914 uint64_t const& overall_offset);
27915
27916protected:
27924#endif // SgAsmDwarfClassTemplate_OTHERS
27925#ifdef DOCUMENTATION
27926};
27927#endif // DOCUMENTATION
27928
27929
27931// SgAsmDwarfCatchBlock -- MACHINE GENERATED; DO NOT MODIFY --
27933
27934DECLARE_LEAF_CLASS(AsmDwarfCatchBlock);
27935IS_SERIALIZABLE(AsmDwarfCatchBlock);
27936
27937#ifndef DOCUMENTATION
27938AsmDwarfCatchBlock.useSmallHeader(true);
27939#endif // !DOCUMENTATION
27940
27941#ifdef DOCUMENTATION
27943#endif // DOCUMENTATION
27944
27945 DECLARE_OTHERS(AsmDwarfCatchBlock);
27946#if defined(SgAsmDwarfCatchBlock_OTHERS) || defined(DOCUMENTATION)
27947
27948 //----------------------- Boost serialization for SgAsmDwarfCatchBlock -----------------------
27949#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27950private:
27951 friend class boost::serialization::access;
27952
27953 template<class S>
27954 void serialize(S &s, const unsigned /*version*/) {
27955 debugSerializationBegin("SgAsmDwarfCatchBlock");
27956 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27957 debugSerializationEnd("SgAsmDwarfCatchBlock");
27958 }
27959#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27960
27961public:
27964
27965public:
27968
27969public:
27971 SgAsmDwarfCatchBlock(int const& nesting_level,
27972 uint64_t const& offset,
27973 uint64_t const& overall_offset);
27974
27975protected:
27983#endif // SgAsmDwarfCatchBlock_OTHERS
27984#ifdef DOCUMENTATION
27985};
27986#endif // DOCUMENTATION
27987
27988
27990// SgAsmDwarfBaseType -- MACHINE GENERATED; DO NOT MODIFY --
27992
27993DECLARE_LEAF_CLASS(AsmDwarfBaseType);
27994IS_SERIALIZABLE(AsmDwarfBaseType);
27995
27996#ifndef DOCUMENTATION
27997AsmDwarfBaseType.useSmallHeader(true);
27998#endif // !DOCUMENTATION
27999
28000#ifdef DOCUMENTATION
28002#endif // DOCUMENTATION
28003
28004 DECLARE_OTHERS(AsmDwarfBaseType);
28005#if defined(SgAsmDwarfBaseType_OTHERS) || defined(DOCUMENTATION)
28006
28007 //----------------------- Boost serialization for SgAsmDwarfBaseType -----------------------
28008#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28009private:
28010 friend class boost::serialization::access;
28011
28012 template<class S>
28013 void serialize(S &s, const unsigned /*version*/) {
28014 debugSerializationBegin("SgAsmDwarfBaseType");
28015 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28016 debugSerializationEnd("SgAsmDwarfBaseType");
28017 }
28018#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28019
28020public:
28023
28024public:
28027
28028public:
28030 SgAsmDwarfBaseType(int const& nesting_level,
28031 uint64_t const& offset,
28032 uint64_t const& overall_offset);
28033
28034protected:
28042#endif // SgAsmDwarfBaseType_OTHERS
28043#ifdef DOCUMENTATION
28044};
28045#endif // DOCUMENTATION
28046
28047
28049// SgAsmDwarfArrayType -- MACHINE GENERATED; DO NOT MODIFY --
28051
28052DECLARE_LEAF_CLASS(AsmDwarfArrayType);
28053IS_SERIALIZABLE(AsmDwarfArrayType);
28054
28055#ifndef DOCUMENTATION
28056AsmDwarfArrayType.useSmallHeader(true);
28057#endif // !DOCUMENTATION
28058
28059DECLARE_HEADERS(AsmDwarfArrayType);
28060#if defined(SgAsmDwarfArrayType_HEADERS) || defined(DOCUMENTATION)
28061#ifdef ROSE_SgAsmDwarfArrayType_IMPL
28062#include <SgAsmDwarfConstructList.h>
28063#endif
28064#endif // SgAsmDwarfArrayType_HEADERS
28065
28066#ifdef DOCUMENTATION
28068#endif // DOCUMENTATION
28069
28070#ifndef DOCUMENTATION
28071 AsmDwarfArrayType.setDataPrototype(
28072 "SgAsmDwarfConstructList*", "body", "= nullptr",
28073 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28074#endif // !DOCUMENTATION
28075
28076 DECLARE_OTHERS(AsmDwarfArrayType);
28077#if defined(SgAsmDwarfArrayType_OTHERS) || defined(DOCUMENTATION)
28078
28079 //----------------------- Boost serialization for SgAsmDwarfArrayType -----------------------
28080#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28081private:
28082 friend class boost::serialization::access;
28083
28084 template<class S>
28085 void serialize(S &s, const unsigned /*version*/) {
28086 debugSerializationBegin("SgAsmDwarfArrayType");
28087 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28088 s & BOOST_SERIALIZATION_NVP(p_body);
28089 debugSerializationEnd("SgAsmDwarfArrayType");
28090 }
28091#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28092public:
28093public:
28094 SgAsmDwarfConstructList* const& get_body() const;
28095 void set_body(SgAsmDwarfConstructList* const&);
28096public:
28097 SgAsmDwarfConstructList* get_children() override;
28098public:
28101
28102public:
28105
28106public:
28108 SgAsmDwarfArrayType(int const& nesting_level,
28109 uint64_t const& offset,
28110 uint64_t const& overall_offset);
28111
28112protected:
28120#endif // SgAsmDwarfArrayType_OTHERS
28121#ifdef DOCUMENTATION
28122};
28123#endif // DOCUMENTATION
28124
28125
28127// SgAsmDwarfAccessDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
28129
28130DECLARE_LEAF_CLASS(AsmDwarfAccessDeclaration);
28131IS_SERIALIZABLE(AsmDwarfAccessDeclaration);
28132
28133#ifndef DOCUMENTATION
28134AsmDwarfAccessDeclaration.useSmallHeader(true);
28135#endif // !DOCUMENTATION
28136
28137#ifdef DOCUMENTATION
28139#endif // DOCUMENTATION
28140
28141 DECLARE_OTHERS(AsmDwarfAccessDeclaration);
28142#if defined(SgAsmDwarfAccessDeclaration_OTHERS) || defined(DOCUMENTATION)
28143
28144 //----------------------- Boost serialization for SgAsmDwarfAccessDeclaration -----------------------
28145#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28146private:
28147 friend class boost::serialization::access;
28148
28149 template<class S>
28150 void serialize(S &s, const unsigned /*version*/) {
28151 debugSerializationBegin("SgAsmDwarfAccessDeclaration");
28152 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28153 debugSerializationEnd("SgAsmDwarfAccessDeclaration");
28154 }
28155#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28156
28157public:
28160
28161public:
28164
28165public:
28167 SgAsmDwarfAccessDeclaration(int const& nesting_level,
28168 uint64_t const& offset,
28169 uint64_t const& overall_offset);
28170
28171protected:
28179#endif // SgAsmDwarfAccessDeclaration_OTHERS
28180#ifdef DOCUMENTATION
28181};
28182#endif // DOCUMENTATION
28183
28184
28186// SgAsmDwarfConstruct -- MACHINE GENERATED; DO NOT MODIFY --
28188
28189#ifndef DOCUMENTATION
28190AstNodeClass& AsmDwarfConstruct = nonTerminalConstructor(
28191 "AsmDwarfConstruct",
28192 *this,
28193 "AsmDwarfConstruct",
28194 "AsmDwarfConstructTag",
28195 SubclassListBuilder()
28196 | AsmDwarfAccessDeclaration
28197 | AsmDwarfArrayType
28198 | AsmDwarfBaseType
28199 | AsmDwarfCatchBlock
28200 | AsmDwarfClassTemplate
28201 | AsmDwarfClassType
28202 | AsmDwarfCommonBlock
28203 | AsmDwarfCommonInclusion
28204 | AsmDwarfCompilationUnit
28205 | AsmDwarfCondition
28206 | AsmDwarfConstType
28207 | AsmDwarfConstant
28208 | AsmDwarfDwarfProcedure
28209 | AsmDwarfEntryPoint
28210 | AsmDwarfEnumerationType
28211 | AsmDwarfEnumerator
28212 | AsmDwarfFileType
28213 | AsmDwarfFormalParameter
28214 | AsmDwarfFormatLabel
28215 | AsmDwarfFriend
28216 | AsmDwarfFunctionTemplate
28217 | AsmDwarfImportedDeclaration
28218 | AsmDwarfImportedModule
28219 | AsmDwarfImportedUnit
28220 | AsmDwarfInheritance
28221 | AsmDwarfInlinedSubroutine
28222 | AsmDwarfInterfaceType
28223 | AsmDwarfLabel
28224 | AsmDwarfLexicalBlock
28225 | AsmDwarfMember
28226 | AsmDwarfModule
28227 | AsmDwarfMutableType
28228 | AsmDwarfNamelist
28229 | AsmDwarfNamelistItem
28230 | AsmDwarfNamespace
28231 | AsmDwarfPackedType
28232 | AsmDwarfPartialUnit
28233 | AsmDwarfPointerType
28234 | AsmDwarfPtrToMemberType
28235 | AsmDwarfReferenceType
28236 | AsmDwarfRestrictType
28237 | AsmDwarfSetType
28238 | AsmDwarfSharedType
28239 | AsmDwarfStringType
28240 | AsmDwarfStructureType
28241 | AsmDwarfSubprogram
28242 | AsmDwarfSubrangeType
28243 | AsmDwarfSubroutineType
28244 | AsmDwarfTemplateTypeParameter
28245 | AsmDwarfTemplateValueParameter
28246 | AsmDwarfThrownType
28247 | AsmDwarfTryBlock
28248 | AsmDwarfTypedef
28249 | AsmDwarfUnionType
28250 | AsmDwarfUnknownConstruct
28251 | AsmDwarfUnspecifiedParameters
28252 | AsmDwarfUnspecifiedType
28253 | AsmDwarfUpcRelaxedType
28254 | AsmDwarfUpcSharedType
28255 | AsmDwarfUpcStrictType
28256 | AsmDwarfVariable
28257 | AsmDwarfVariant
28258 | AsmDwarfVariantPart
28259 | AsmDwarfVolatileType
28260 | AsmDwarfWithStmt
28261 , false);
28262assert(AsmDwarfConstruct.associatedGrammar != nullptr);
28263AsmDwarfConstruct.setCppCondition("!defined(DOCUMENTATION)");
28264AsmDwarfConstruct.isBoostSerializable(true);
28265AsmDwarfConstruct.setAutomaticGenerationOfConstructor(false);
28266AsmDwarfConstruct.setAutomaticGenerationOfDestructor(false);
28267#endif // !DOCUMENTATION
28268
28269#ifndef DOCUMENTATION
28270AsmDwarfConstruct.useSmallHeader(true);
28271#endif // !DOCUMENTATION
28272
28273#ifdef DOCUMENTATION
28275#endif // DOCUMENTATION
28276
28277#ifndef DOCUMENTATION
28278 AsmDwarfConstruct.setDataPrototype(
28279 "int", "nesting_level", "= 0",
28280 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28281#endif // !DOCUMENTATION
28282
28283#ifndef DOCUMENTATION
28284 AsmDwarfConstruct.setDataPrototype(
28285 "uint64_t", "offset", "= 0",
28286 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28287#endif // !DOCUMENTATION
28288
28289#ifndef DOCUMENTATION
28290 AsmDwarfConstruct.setDataPrototype(
28291 "uint64_t", "overall_offset", "= 0",
28292 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28293#endif // !DOCUMENTATION
28294
28295#ifndef DOCUMENTATION
28296 AsmDwarfConstruct.setDataPrototype(
28297 "std::string", "name", "",
28298 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28299#endif // !DOCUMENTATION
28300
28301#ifndef DOCUMENTATION
28302 AsmDwarfConstruct.setDataPrototype(
28303 "SgAsmDwarfLine*", "source_position", "= nullptr",
28304 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28305#endif // !DOCUMENTATION
28306
28307 DECLARE_OTHERS(AsmDwarfConstruct);
28308#if defined(SgAsmDwarfConstruct_OTHERS) || defined(DOCUMENTATION)
28309
28310 //----------------------- Boost serialization for SgAsmDwarfConstruct -----------------------
28311#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28312private:
28313 friend class boost::serialization::access;
28314
28315 template<class S>
28316 void serialize(S &s, const unsigned /*version*/) {
28317 debugSerializationBegin("SgAsmDwarfConstruct");
28318 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
28319 s & BOOST_SERIALIZATION_NVP(p_nesting_level);
28320 s & BOOST_SERIALIZATION_NVP(p_offset);
28321 s & BOOST_SERIALIZATION_NVP(p_overall_offset);
28322 s & BOOST_SERIALIZATION_NVP(p_name);
28323 s & BOOST_SERIALIZATION_NVP(p_source_position);
28324 debugSerializationEnd("SgAsmDwarfConstruct");
28325 }
28326#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28327public:
28328 // For now we will store the nesting level (just to support debugging), then it will be removed.
28329public:
28330 int const& get_nesting_level() const;
28331 void set_nesting_level(int const&);
28332
28333public:
28334 uint64_t const& get_offset() const;
28335 void set_offset(uint64_t const&);
28336
28337public:
28338 uint64_t const& get_overall_offset() const;
28339 void set_overall_offset(uint64_t const&);
28340 // A lot of constructs have a name so put the name into the base class
28341public:
28342 std::string const& get_name() const;
28343 void set_name(std::string const&);
28344 // This is a data member that can be filled in via a separate analysis (we would have to read the line information before
28345 // hand).
28346public:
28347 SgAsmDwarfLine* const& get_source_position() const;
28348 void set_source_position(SgAsmDwarfLine* const&);
28349 // [Robb Matzke 2023-03-22]: SgNode already has an attributeMechanism
28350 // [[using Rosebud: rosetta]]
28351 // AstAttributeMechanism* attributeMechanism = nullptr;
28352
28353public:
28355 static SgAsmDwarfConstruct* createDwarfConstruct( int tag, int nesting_level, uint64_t offset, uint64_t overall_offset );
28356
28357 virtual SgAsmDwarfConstructList* get_children();
28358public:
28361
28362protected:
28365
28366protected:
28368 SgAsmDwarfConstruct(int const& nesting_level,
28369 uint64_t const& offset,
28370 uint64_t const& overall_offset);
28371
28372protected:
28380#endif // SgAsmDwarfConstruct_OTHERS
28381#ifdef DOCUMENTATION
28382};
28383#endif // DOCUMENTATION
28384
28385
28387// SgAsmDwarfInformation -- MACHINE GENERATED; DO NOT MODIFY --
28389
28390#ifndef DOCUMENTATION
28391AstNodeClass& AsmDwarfInformation = nonTerminalConstructor(
28392 "AsmDwarfInformation",
28393 *this,
28394 "AsmDwarfInformation",
28395 "AsmDwarfInformationTag",
28396 SubclassListBuilder()
28397 | AsmDwarfCompilationUnitList
28398 | AsmDwarfConstruct
28399 | AsmDwarfConstructList
28400 | AsmDwarfLine
28401 | AsmDwarfLineList
28402 | AsmDwarfMacro
28403 | AsmDwarfMacroList
28404 , false);
28405assert(AsmDwarfInformation.associatedGrammar != nullptr);
28406AsmDwarfInformation.setCppCondition("!defined(DOCUMENTATION)");
28407AsmDwarfInformation.isBoostSerializable(true);
28408AsmDwarfInformation.setAutomaticGenerationOfConstructor(false);
28409AsmDwarfInformation.setAutomaticGenerationOfDestructor(false);
28410#endif // !DOCUMENTATION
28411
28412#ifndef DOCUMENTATION
28413AsmDwarfInformation.useSmallHeader(true);
28414#endif // !DOCUMENTATION
28415
28416#ifdef DOCUMENTATION
28418#endif // DOCUMENTATION
28419
28420 DECLARE_OTHERS(AsmDwarfInformation);
28421#if defined(SgAsmDwarfInformation_OTHERS) || defined(DOCUMENTATION)
28422
28423 //----------------------- Boost serialization for SgAsmDwarfInformation -----------------------
28424#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28425private:
28426 friend class boost::serialization::access;
28427
28428 template<class S>
28429 void serialize(S &s, const unsigned /*version*/) {
28430 debugSerializationBegin("SgAsmDwarfInformation");
28431 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
28432 debugSerializationEnd("SgAsmDwarfInformation");
28433 }
28434#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28435
28436public:
28439
28440protected:
28443
28444protected:
28452#endif // SgAsmDwarfInformation_OTHERS
28453#ifdef DOCUMENTATION
28454};
28455#endif // DOCUMENTATION
28456
28457
28459// SgAsmDirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
28461
28462DECLARE_LEAF_CLASS(AsmDirectRegisterExpression);
28463IS_SERIALIZABLE(AsmDirectRegisterExpression);
28464
28465#ifndef DOCUMENTATION
28466AsmDirectRegisterExpression.useSmallHeader(true);
28467#endif // !DOCUMENTATION
28468
28469#ifdef DOCUMENTATION
28472#endif // DOCUMENTATION
28473
28474 DECLARE_OTHERS(AsmDirectRegisterExpression);
28475#if defined(SgAsmDirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
28476
28477 //----------------------- Boost serialization for SgAsmDirectRegisterExpression -----------------------
28478#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28479private:
28480 friend class boost::serialization::access;
28481
28482 template<class S>
28483 void serialize(S &s, const unsigned /*version*/) {
28484 debugSerializationBegin("SgAsmDirectRegisterExpression");
28485 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
28486 debugSerializationEnd("SgAsmDirectRegisterExpression");
28487 }
28488#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28489
28490public:
28493
28494public:
28497
28498public:
28501
28502protected:
28510#endif // SgAsmDirectRegisterExpression_OTHERS
28511#ifdef DOCUMENTATION
28512};
28513#endif // DOCUMENTATION
28514
28515
28517// SgAsmRegisterReferenceExpression -- MACHINE GENERATED; DO NOT MODIFY --
28519
28520#ifndef DOCUMENTATION
28521AstNodeClass& AsmRegisterReferenceExpression = nonTerminalConstructor(
28522 "AsmRegisterReferenceExpression",
28523 *this,
28524 "AsmRegisterReferenceExpression",
28525 "AsmRegisterReferenceExpressionTag",
28526 SubclassListBuilder()
28527 | AsmDirectRegisterExpression
28528 | AsmIndirectRegisterExpression
28529 , false);
28530assert(AsmRegisterReferenceExpression.associatedGrammar != nullptr);
28531AsmRegisterReferenceExpression.setCppCondition("!defined(DOCUMENTATION)");
28532AsmRegisterReferenceExpression.isBoostSerializable(true);
28533AsmRegisterReferenceExpression.setAutomaticGenerationOfConstructor(false);
28534AsmRegisterReferenceExpression.setAutomaticGenerationOfDestructor(false);
28535#endif // !DOCUMENTATION
28536
28537#ifndef DOCUMENTATION
28538AsmRegisterReferenceExpression.useSmallHeader(true);
28539#endif // !DOCUMENTATION
28540
28541#ifdef DOCUMENTATION
28544#endif // DOCUMENTATION
28545
28546#ifndef DOCUMENTATION
28547 AsmRegisterReferenceExpression.setDataPrototype(
28548 "Rose::BinaryAnalysis::RegisterDescriptor", "descriptor", "",
28549 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28550#endif // !DOCUMENTATION
28551
28552#ifndef DOCUMENTATION
28553 AsmRegisterReferenceExpression.setDataPrototype(
28554 "int", "adjustment", "= 0",
28555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28556#endif // !DOCUMENTATION
28557
28558 DECLARE_OTHERS(AsmRegisterReferenceExpression);
28559#if defined(SgAsmRegisterReferenceExpression_OTHERS) || defined(DOCUMENTATION)
28560
28561 //----------------------- Boost serialization for SgAsmRegisterReferenceExpression -----------------------
28562#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28563private:
28564 friend class boost::serialization::access;
28565
28566 template<class S>
28567 void serialize(S &s, const unsigned /*version*/) {
28568 debugSerializationBegin("SgAsmRegisterReferenceExpression");
28569 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
28570 s & BOOST_SERIALIZATION_NVP(p_descriptor);
28571 s & BOOST_SERIALIZATION_NVP(p_adjustment);
28572 debugSerializationEnd("SgAsmRegisterReferenceExpression");
28573 }
28574#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28575public:
28576public:
28584public:
28590 int const& get_adjustment() const;
28591 void set_adjustment(int const&);
28594public:
28597
28598protected:
28601
28602protected:
28605
28606protected:
28614#endif // SgAsmRegisterReferenceExpression_OTHERS
28615#ifdef DOCUMENTATION
28616};
28617#endif // DOCUMENTATION
28618
28619
28621// SgAsmDOSFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
28623
28624DECLARE_LEAF_CLASS(AsmDOSFileHeader);
28625IS_SERIALIZABLE(AsmDOSFileHeader);
28626
28627#ifndef DOCUMENTATION
28628AsmDOSFileHeader.useSmallHeader(true);
28629#endif // !DOCUMENTATION
28630
28631DECLARE_HEADERS(AsmDOSFileHeader);
28632#if defined(SgAsmDOSFileHeader_HEADERS) || defined(DOCUMENTATION)
28633#include <Rose/BinaryAnalysis/Address.h>
28634#endif // SgAsmDOSFileHeader_HEADERS
28635
28636#ifdef DOCUMENTATION
28642#endif // DOCUMENTATION
28643
28644#ifndef DOCUMENTATION
28645 AsmDOSFileHeader.setDataPrototype(
28646 "uint16_t", "e_last_page_size", "= 0",
28647 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28648#endif // !DOCUMENTATION
28649
28650#ifndef DOCUMENTATION
28651 AsmDOSFileHeader.setDataPrototype(
28652 "uint16_t", "e_total_pages", "= 0",
28653 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28654#endif // !DOCUMENTATION
28655
28656#ifndef DOCUMENTATION
28657 AsmDOSFileHeader.setDataPrototype(
28658 "uint16_t", "e_nrelocs", "= 0",
28659 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28660#endif // !DOCUMENTATION
28661
28662#ifndef DOCUMENTATION
28663 AsmDOSFileHeader.setDataPrototype(
28664 "uint16_t", "e_header_paragraphs", "= 0",
28665 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28666#endif // !DOCUMENTATION
28667
28668#ifndef DOCUMENTATION
28669 AsmDOSFileHeader.setDataPrototype(
28670 "uint16_t", "e_minalloc", "= 0",
28671 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28672#endif // !DOCUMENTATION
28673
28674#ifndef DOCUMENTATION
28675 AsmDOSFileHeader.setDataPrototype(
28676 "uint16_t", "e_maxalloc", "= 0",
28677 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28678#endif // !DOCUMENTATION
28679
28680#ifndef DOCUMENTATION
28681 AsmDOSFileHeader.setDataPrototype(
28682 "uint16_t", "e_ss", "= 0",
28683 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28684#endif // !DOCUMENTATION
28685
28686#ifndef DOCUMENTATION
28687 AsmDOSFileHeader.setDataPrototype(
28688 "uint16_t", "e_sp", "= 0",
28689 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28690#endif // !DOCUMENTATION
28691
28692#ifndef DOCUMENTATION
28693 AsmDOSFileHeader.setDataPrototype(
28694 "uint16_t", "e_cksum", "= 0",
28695 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28696#endif // !DOCUMENTATION
28697
28698#ifndef DOCUMENTATION
28699 AsmDOSFileHeader.setDataPrototype(
28700 "uint16_t", "e_ip", "= 0",
28701 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28702#endif // !DOCUMENTATION
28703
28704#ifndef DOCUMENTATION
28705 AsmDOSFileHeader.setDataPrototype(
28706 "uint16_t", "e_cs", "= 0",
28707 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28708#endif // !DOCUMENTATION
28709
28710#ifndef DOCUMENTATION
28711 AsmDOSFileHeader.setDataPrototype(
28712 "uint16_t", "e_overlay", "= 0",
28713 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28714#endif // !DOCUMENTATION
28715
28716#ifndef DOCUMENTATION
28717 AsmDOSFileHeader.setDataPrototype(
28718 "Rose::BinaryAnalysis::Address", "e_relocs_offset", "= 0",
28719 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28720#endif // !DOCUMENTATION
28721
28722#ifndef DOCUMENTATION
28723 AsmDOSFileHeader.setDataPrototype(
28724 "unsigned", "e_res1", "= 0",
28725 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28726#endif // !DOCUMENTATION
28727
28728#ifndef DOCUMENTATION
28729 AsmDOSFileHeader.setDataPrototype(
28730 "SgAsmGenericSection*", "relocs", "= nullptr",
28731 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28732#endif // !DOCUMENTATION
28733
28734#ifndef DOCUMENTATION
28735 AsmDOSFileHeader.setDataPrototype(
28736 "SgAsmGenericSection*", "rm_section", "= nullptr",
28737 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28738#endif // !DOCUMENTATION
28739
28740 DECLARE_OTHERS(AsmDOSFileHeader);
28741#if defined(SgAsmDOSFileHeader_OTHERS) || defined(DOCUMENTATION)
28742
28743 //----------------------- Boost serialization for SgAsmDOSFileHeader -----------------------
28744#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28745private:
28746 friend class boost::serialization::access;
28747
28748 template<class S>
28749 void serialize(S &s, const unsigned /*version*/) {
28750 debugSerializationBegin("SgAsmDOSFileHeader");
28751 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
28752 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
28753 s & BOOST_SERIALIZATION_NVP(p_e_total_pages);
28754 s & BOOST_SERIALIZATION_NVP(p_e_nrelocs);
28755 s & BOOST_SERIALIZATION_NVP(p_e_header_paragraphs);
28756 s & BOOST_SERIALIZATION_NVP(p_e_minalloc);
28757 s & BOOST_SERIALIZATION_NVP(p_e_maxalloc);
28758 s & BOOST_SERIALIZATION_NVP(p_e_ss);
28759 s & BOOST_SERIALIZATION_NVP(p_e_sp);
28760 s & BOOST_SERIALIZATION_NVP(p_e_cksum);
28761 s & BOOST_SERIALIZATION_NVP(p_e_ip);
28762 s & BOOST_SERIALIZATION_NVP(p_e_cs);
28763 s & BOOST_SERIALIZATION_NVP(p_e_overlay);
28764 s & BOOST_SERIALIZATION_NVP(p_e_relocs_offset);
28765 s & BOOST_SERIALIZATION_NVP(p_e_res1);
28766 s & BOOST_SERIALIZATION_NVP(p_relocs);
28767 s & BOOST_SERIALIZATION_NVP(p_rm_section);
28768 debugSerializationEnd("SgAsmDOSFileHeader");
28769 }
28770#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28772 // Local types
28774public:
28775#ifdef _MSC_VER
28776# pragma pack (1)
28777#endif
28780 unsigned char e_magic[2];
28781 uint16_t e_last_page_size; //
28783 uint16_t e_total_pages;
28784 uint16_t e_nrelocs;
28786 uint16_t e_minalloc;
28787 uint16_t e_maxalloc;
28788 uint16_t e_ss;
28789 uint16_t e_sp;
28790 uint16_t e_cksum;
28792 uint16_t e_ip;
28793 uint16_t e_cs;
28795 uint16_t e_overlay;
28796 uint32_t e_res1;
28797 } /* 0x20 */
28798#if !defined(SWIG) && !defined(_MSC_VER)
28799 __attribute__((packed))
28800#endif
28801 ;
28802
28804 uint16_t offset; /* 0x00 */
28805 uint16_t segment; /* 0x02 */
28806 } /* 0x04 */
28807#if !defined(SWIG) && !defined(_MSC_VER)
28808 __attribute__((packed))
28809#endif
28810 ;
28811
28812#ifdef _MSC_VER
28813# pragma pack ()
28814#endif
28815
28817 // Properties
28819public:
28820public:
28826 uint16_t const& get_e_last_page_size() const;
28827 void set_e_last_page_size(uint16_t const&);
28830public:
28836 uint16_t const& get_e_total_pages() const;
28837 void set_e_total_pages(uint16_t const&);
28840public:
28846 uint16_t const& get_e_nrelocs() const;
28847 void set_e_nrelocs(uint16_t const&);
28850public:
28856 uint16_t const& get_e_header_paragraphs() const;
28857 void set_e_header_paragraphs(uint16_t const&);
28860public:
28866 uint16_t const& get_e_minalloc() const;
28867 void set_e_minalloc(uint16_t const&);
28870public:
28876 uint16_t const& get_e_maxalloc() const;
28877 void set_e_maxalloc(uint16_t const&);
28880public:
28886 uint16_t const& get_e_ss() const;
28887 void set_e_ss(uint16_t const&);
28890public:
28896 uint16_t const& get_e_sp() const;
28897 void set_e_sp(uint16_t const&);
28900public:
28906 uint16_t const& get_e_cksum() const;
28907 void set_e_cksum(uint16_t const&);
28910public:
28916 uint16_t const& get_e_ip() const;
28917 void set_e_ip(uint16_t const&);
28920public:
28926 uint16_t const& get_e_cs() const;
28927 void set_e_cs(uint16_t const&);
28930public:
28936 uint16_t const& get_e_overlay() const;
28937 void set_e_overlay(uint16_t const&);
28940public:
28950public:
28956 unsigned const& get_e_res1() const;
28957 void set_e_res1(unsigned const&);
28960public:
28968public:
28976 // Functions
28978public:
28980 virtual SgAsmDOSFileHeader *parse() override {return parse(true);}
28981 SgAsmDOSFileHeader *parse(bool define_rm_section);
28982 virtual bool reallocate() override;
28983 virtual void unparse(std::ostream&) const override;
28984 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
28985 virtual const char *formatName() const override;
28986
28993
29000
29003
29004private:
29005 void *encode(SgAsmDOSFileHeader::DOSFileHeader_disk*) const;
29006
29008 // Deprecated 2023-11
29010public:
29011 virtual const char* format_name() const override ROSE_DEPRECATED("use formatName");
29012 SgAsmGenericSection* parse_rm_section(Rose::BinaryAnalysis::Address max_offset = 0) ROSE_DEPRECATED("use parseRealModeSection");
29013 void update_from_rm_section() ROSE_DEPRECATED("use updateFromRealModeSection");
29014 static bool is_DOS(SgAsmGenericFile*) ROSE_DEPRECATED("use isDos");
29015public:
29018
29019public:
29022
29023protected:
29031#endif // SgAsmDOSFileHeader_OTHERS
29032#ifdef DOCUMENTATION
29033};
29034#endif // DOCUMENTATION
29035
29036
29038// SgAsmGenericHeader -- MACHINE GENERATED; DO NOT MODIFY --
29040
29041#ifndef DOCUMENTATION
29042AstNodeClass& AsmGenericHeader = nonTerminalConstructor(
29043 "AsmGenericHeader",
29044 *this,
29045 "AsmGenericHeader",
29046 "AsmGenericHeaderTag",
29047 SubclassListBuilder()
29048 | AsmDOSFileHeader
29049 | AsmElfFileHeader
29050 | AsmJvmFileHeader
29051 | AsmLEFileHeader
29052 | AsmNEFileHeader
29053 | AsmPEFileHeader
29054 , true);
29055assert(AsmGenericHeader.associatedGrammar != nullptr);
29056AsmGenericHeader.setCppCondition("!defined(DOCUMENTATION)");
29057AsmGenericHeader.isBoostSerializable(true);
29058AsmGenericHeader.setAutomaticGenerationOfConstructor(false);
29059AsmGenericHeader.setAutomaticGenerationOfDestructor(false);
29060#endif // !DOCUMENTATION
29061
29062#ifndef DOCUMENTATION
29063AsmGenericHeader.useSmallHeader(true);
29064#endif // !DOCUMENTATION
29065
29066DECLARE_HEADERS(AsmGenericHeader);
29067#if defined(SgAsmGenericHeader_HEADERS) || defined(DOCUMENTATION)
29068#include <Rose/BinaryAnalysis/Address.h>
29069#include <Rose/BinaryAnalysis/ByteOrder.h>
29070#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
29071#include <sageContainer.h>
29072#include <SgAsmGenericFormat.h>
29073
29074#ifdef ROSE_SgAsmGenericHeader_IMPL
29075#include <SgAsmGenericDLLList.h>
29076#include <SgAsmGenericSectionList.h>
29077#endif
29078
29079class SgAsmGenericDLL;
29081#endif // SgAsmGenericHeader_HEADERS
29082
29083#ifdef DOCUMENTATION
29086#endif // DOCUMENTATION
29087
29088#ifndef DOCUMENTATION
29089 AsmGenericHeader.setDataPrototype(
29090 "SgAsmGenericFormat*", "executableFormat", "= createAndParent<SgAsmGenericFormat>(this)",
29091 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29092#endif // !DOCUMENTATION
29093
29094#ifndef DOCUMENTATION
29095 AsmGenericHeader.setDataPrototype(
29096 "SgCharList", "magic", "",
29097 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29098#endif // !DOCUMENTATION
29099
29100#ifndef DOCUMENTATION
29101 AsmGenericHeader.setDataPrototype(
29102 "SgAsmGenericFormat::InsSetArchitecture", "isa", "= SgAsmGenericFormat::ISA_UNSPECIFIED",
29103 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29104#endif // !DOCUMENTATION
29105
29106#ifndef DOCUMENTATION
29107 AsmGenericHeader.setDataPrototype(
29108 "Rose::BinaryAnalysis::Address", "baseVa", "= 0",
29109 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29110#endif // !DOCUMENTATION
29111
29112#ifndef DOCUMENTATION
29113 AsmGenericHeader.setDataPrototype(
29114 "SgRVAList", "entryRvas", "",
29115 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29116#endif // !DOCUMENTATION
29117
29118#ifndef DOCUMENTATION
29119 AsmGenericHeader.setDataPrototype(
29120 "SgAsmGenericDLLList*", "dlls", "= createAndParent<SgAsmGenericDLLList>(this)",
29121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29122#endif // !DOCUMENTATION
29123
29124#ifndef DOCUMENTATION
29125 AsmGenericHeader.setDataPrototype(
29126 "SgAsmGenericSectionList*", "sections", "= createAndParent<SgAsmGenericSectionList>(this)",
29127 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29128#endif // !DOCUMENTATION
29129
29130 DECLARE_OTHERS(AsmGenericHeader);
29131#if defined(SgAsmGenericHeader_OTHERS) || defined(DOCUMENTATION)
29132
29133 //----------------------- Boost serialization for SgAsmGenericHeader -----------------------
29134#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29135private:
29136 friend class boost::serialization::access;
29137
29138 template<class S>
29139 void serialize(S &s, const unsigned /*version*/) {
29140 debugSerializationBegin("SgAsmGenericHeader");
29141 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
29142 s & BOOST_SERIALIZATION_NVP(p_executableFormat);
29143 s & BOOST_SERIALIZATION_NVP(p_magic);
29144 s & BOOST_SERIALIZATION_NVP(p_isa);
29145 s & BOOST_SERIALIZATION_NVP(p_baseVa);
29146 s & BOOST_SERIALIZATION_NVP(p_entryRvas);
29147 s & BOOST_SERIALIZATION_NVP(p_dlls);
29148 s & BOOST_SERIALIZATION_NVP(p_sections);
29149 debugSerializationEnd("SgAsmGenericHeader");
29150 }
29151#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29152public:
29153public:
29161public:
29165 SgCharList const& get_magic() const;
29166 SgCharList& get_magic();
29167 void set_magic(SgCharList const&);
29170public:
29178public:
29186public:
29190 SgRVAList const& get_entryRvas() const;
29191 SgRVAList& get_entryRvas();
29192 void set_entryRvas(SgRVAList const&);
29195public:
29203public:
29210public:
29219
29220 virtual bool reallocate() override;
29221
29223 virtual void unparse(std::ostream&) const override;
29224
29226 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29227
29229 virtual const char *formatName() const;
29230
29233
29235 std::vector<SgAsmGenericDLL*>& get_dlls();
29236
29242
29245
29246 /* Convenience functions */
29248 size_t get_wordSize() const;
29249
29254
29257
29259 SgAsmGenericSectionPtrList get_mappedSections() const;
29260
29262 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
29263
29267 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep=0) const;
29268
29271
29273 SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const;
29274
29281 SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va, bool use_preferred) const;
29282
29284 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
29285
29287 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
29288
29291 size_t *nfound=0) const;
29292
29297
29304 SgAsmGenericSection *get_sectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const;
29305
29307 SgAsmGenericSection *get_bestSectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const;
29308
29310 // Deprecated 2023-11
29312public:
29313 SgAsmGenericFormat* get_exec_format() const ROSE_DEPRECATED("use get_executableFormat");
29314 void set_exec_format(SgAsmGenericFormat*) ROSE_DEPRECATED("use set_executableFormat");
29315 Rose::BinaryAnalysis::Address get_base_va() const ROSE_DEPRECATED("use get_baseVa");
29316 void set_base_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_baseVa");
29317 SgRVAList& get_entry_rvas() ROSE_DEPRECATED("use get_entryRvas");
29318 const SgRVAList& get_entry_rvas() const ROSE_DEPRECATED("use get_entryRvas");
29319 void set_entry_rvas(const SgRVAList&) ROSE_DEPRECATED("use set_entryRvas");
29320 virtual const char *format_name() const ROSE_DEPRECATED("use formatName");
29321 void add_dll(SgAsmGenericDLL*) ROSE_DEPRECATED("use addDll");
29322 Rose::BinaryAnalysis::Address get_entry_rva() const ROSE_DEPRECATED("use get_entryRva");
29323 void add_entry_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use addEntryRva");
29324 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
29325 void add_section(SgAsmGenericSection*) ROSE_DEPRECATED("use addSection");
29326 void remove_section(SgAsmGenericSection*) ROSE_DEPRECATED("use removeSection");
29327 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
29328 SgAsmGenericSectionPtrList get_sections_by_id(int) const ROSE_DEPRECATED("use get_sectionsById");
29329 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char=0) const ROSE_DEPRECATED("use get_sectionsByName");
29330 SgAsmGenericSectionPtrList get_sections_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address) const
29331 ROSE_DEPRECATED("use get_sectionsByOffset");
29332 SgAsmGenericSectionPtrList get_sections_by_rva(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByRva");
29333 SgAsmGenericSectionPtrList get_sections_by_va(Rose::BinaryAnalysis::Address, bool) const
29334 ROSE_DEPRECATED("use get_sectionsByVa");
29335 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
29336 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
29337 ROSE_DEPRECATED("use get_sectionByName");
29338 SgAsmGenericSection *get_section_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address,
29339 size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionByOffset");
29340 SgAsmGenericSection *get_section_by_rva(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
29341 ROSE_DEPRECATED("use get_sectionByRva");
29342 SgAsmGenericSection *get_section_by_va(Rose::BinaryAnalysis::Address, bool, size_t* = nullptr) const
29343 ROSE_DEPRECATED("use get_sectionByVa");
29344 SgAsmGenericSection *get_best_section_by_va(Rose::BinaryAnalysis::Address, bool, size_t* = nullptr) const
29345 ROSE_DEPRECATED("use get_bestSectionByVa");
29346public:
29349
29350public:
29353
29354protected:
29362#endif // SgAsmGenericHeader_OTHERS
29363#ifdef DOCUMENTATION
29364};
29365#endif // DOCUMENTATION
29366
29367
29369// SgAsmDOSExtendedHeader -- MACHINE GENERATED; DO NOT MODIFY --
29371
29372DECLARE_LEAF_CLASS(AsmDOSExtendedHeader);
29373IS_SERIALIZABLE(AsmDOSExtendedHeader);
29374
29375#ifndef DOCUMENTATION
29376AsmDOSExtendedHeader.useSmallHeader(true);
29377#endif // !DOCUMENTATION
29378
29379DECLARE_HEADERS(AsmDOSExtendedHeader);
29380#if defined(SgAsmDOSExtendedHeader_HEADERS) || defined(DOCUMENTATION)
29381#include <Rose/BinaryAnalysis/Address.h>
29382#endif // SgAsmDOSExtendedHeader_HEADERS
29383
29384#ifdef DOCUMENTATION
29389#endif // DOCUMENTATION
29390
29391#ifndef DOCUMENTATION
29392 AsmDOSExtendedHeader.setDataPrototype(
29393 "unsigned", "e_res1", "= 0",
29394 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29395#endif // !DOCUMENTATION
29396
29397#ifndef DOCUMENTATION
29398 AsmDOSExtendedHeader.setDataPrototype(
29399 "unsigned", "e_oemid", "= 0",
29400 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29401#endif // !DOCUMENTATION
29402
29403#ifndef DOCUMENTATION
29404 AsmDOSExtendedHeader.setDataPrototype(
29405 "unsigned", "e_oeminfo", "= 0",
29406 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29407#endif // !DOCUMENTATION
29408
29409#ifndef DOCUMENTATION
29410 AsmDOSExtendedHeader.setDataPrototype(
29411 "unsigned", "e_res2", "= 0",
29412 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29413#endif // !DOCUMENTATION
29414
29415#ifndef DOCUMENTATION
29416 AsmDOSExtendedHeader.setDataPrototype(
29417 "unsigned", "e_res3", "= 0",
29418 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29419#endif // !DOCUMENTATION
29420
29421#ifndef DOCUMENTATION
29422 AsmDOSExtendedHeader.setDataPrototype(
29423 "unsigned", "e_res4", "= 0",
29424 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29425#endif // !DOCUMENTATION
29426
29427#ifndef DOCUMENTATION
29428 AsmDOSExtendedHeader.setDataPrototype(
29429 "unsigned", "e_res5", "= 0",
29430 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29431#endif // !DOCUMENTATION
29432
29433#ifndef DOCUMENTATION
29434 AsmDOSExtendedHeader.setDataPrototype(
29435 "unsigned", "e_res6", "= 0",
29436 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29437#endif // !DOCUMENTATION
29438
29439#ifndef DOCUMENTATION
29440 AsmDOSExtendedHeader.setDataPrototype(
29441 "Rose::BinaryAnalysis::Address", "e_lfanew", "= 0",
29442 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29443#endif // !DOCUMENTATION
29444
29445 DECLARE_OTHERS(AsmDOSExtendedHeader);
29446#if defined(SgAsmDOSExtendedHeader_OTHERS) || defined(DOCUMENTATION)
29447
29448 //----------------------- Boost serialization for SgAsmDOSExtendedHeader -----------------------
29449#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29450private:
29451 friend class boost::serialization::access;
29452
29453 template<class S>
29454 void serialize(S &s, const unsigned /*version*/) {
29455 debugSerializationBegin("SgAsmDOSExtendedHeader");
29456 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
29457 s & BOOST_SERIALIZATION_NVP(p_e_res1);
29458 s & BOOST_SERIALIZATION_NVP(p_e_oemid);
29459 s & BOOST_SERIALIZATION_NVP(p_e_oeminfo);
29460 s & BOOST_SERIALIZATION_NVP(p_e_res2);
29461 s & BOOST_SERIALIZATION_NVP(p_e_res3);
29462 s & BOOST_SERIALIZATION_NVP(p_e_res4);
29463 s & BOOST_SERIALIZATION_NVP(p_e_res5);
29464 s & BOOST_SERIALIZATION_NVP(p_e_res6);
29465 s & BOOST_SERIALIZATION_NVP(p_e_lfanew);
29466 debugSerializationEnd("SgAsmDOSExtendedHeader");
29467 }
29468#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29470 // Local types
29472public:
29473#ifdef _MSC_VER
29474# pragma pack (1)
29475#endif
29477 uint32_t e_res1; /* 0x00 reserved */
29478 uint16_t e_oemid; /* 0x04 OEM Identifier */
29479 uint16_t e_oeminfo; /* 0x06 other OEM information; oemid specific */
29480 uint32_t e_res2; /* 0x08 reserved */
29481 uint32_t e_res3; /* 0x0c reserved */
29482 uint32_t e_res4; /* 0x10 reserved */
29483 uint32_t e_res5; /* 0x14 reserved */
29484 uint32_t e_res6; /* 0x18 reserved */
29485 uint32_t e_lfanew; /* 0x1c file offset of new exe (PE) header */
29486 } /* 0x20 */
29487#if !defined(SWIG) && !defined(_MSC_VER)
29488 __attribute__((packed))
29489#endif
29490 ;
29491#ifdef _MSC_VER
29492# pragma pack ()
29493#endif
29494
29496 // Properties
29498public:
29499public:
29505 unsigned const& get_e_res1() const;
29506 void set_e_res1(unsigned const&);
29509public:
29515 unsigned const& get_e_oemid() const;
29516 void set_e_oemid(unsigned const&);
29519public:
29525 unsigned const& get_e_oeminfo() const;
29526 void set_e_oeminfo(unsigned const&);
29529public:
29535 unsigned const& get_e_res2() const;
29536 void set_e_res2(unsigned const&);
29539public:
29545 unsigned const& get_e_res3() const;
29546 void set_e_res3(unsigned const&);
29549public:
29555 unsigned const& get_e_res4() const;
29556 void set_e_res4(unsigned const&);
29559public:
29565 unsigned const& get_e_res5() const;
29566 void set_e_res5(unsigned const&);
29569public:
29575 unsigned const& get_e_res6() const;
29576 void set_e_res6(unsigned const&);
29579public:
29589 // Functions
29591public:
29593 virtual SgAsmDOSExtendedHeader *parse() override;
29595 virtual void unparse(std::ostream&) const override;
29596 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29597public:
29600
29601public:
29604
29605protected:
29613#endif // SgAsmDOSExtendedHeader_OTHERS
29614#ifdef DOCUMENTATION
29615};
29616#endif // DOCUMENTATION
29617
29618
29620// SgAsmControlFlagsExpression -- MACHINE GENERATED; DO NOT MODIFY --
29622
29623DECLARE_LEAF_CLASS(AsmControlFlagsExpression);
29624IS_SERIALIZABLE(AsmControlFlagsExpression);
29625
29626#ifndef DOCUMENTATION
29627AsmControlFlagsExpression.useSmallHeader(true);
29628#endif // !DOCUMENTATION
29629
29630DECLARE_HEADERS(AsmControlFlagsExpression);
29631#if defined(SgAsmControlFlagsExpression_HEADERS) || defined(DOCUMENTATION)
29632// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
29633#endif // SgAsmControlFlagsExpression_HEADERS
29634
29635#ifdef DOCUMENTATION
29637#endif // DOCUMENTATION
29638
29639#ifndef DOCUMENTATION
29640 AsmControlFlagsExpression.setDataPrototype(
29641 "unsigned long", "bitFlags", "= 0",
29642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29643#endif // !DOCUMENTATION
29644
29645 DECLARE_OTHERS(AsmControlFlagsExpression);
29646#if defined(SgAsmControlFlagsExpression_OTHERS) || defined(DOCUMENTATION)
29647
29648 //----------------------- Boost serialization for SgAsmControlFlagsExpression -----------------------
29649#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29650private:
29651 friend class boost::serialization::access;
29652
29653 template<class S>
29654 void serialize(S &s, const unsigned /*version*/) {
29655 debugSerializationBegin("SgAsmControlFlagsExpression");
29656 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
29657 s & BOOST_SERIALIZATION_NVP(p_bitFlags);
29658 debugSerializationEnd("SgAsmControlFlagsExpression");
29659 }
29660#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29661public:
29662public:
29663 unsigned long const& get_bitFlags() const;
29664 void set_bitFlags(unsigned long const&);
29665 // [Robb Matzke 2023-11-06] deprecated 2023-11
29666 unsigned long get_bit_flags() const ROSE_DEPRECATED("use get_bitFlags");
29667 void set_bit_flags(unsigned long) ROSE_DEPRECATED("use set_bitFlags");
29668public:
29671
29672public:
29675
29676protected:
29684#endif // SgAsmControlFlagsExpression_OTHERS
29685#ifdef DOCUMENTATION
29686};
29687#endif // DOCUMENTATION
29688
29689
29691// SgAsmConstantExpression -- MACHINE GENERATED; DO NOT MODIFY --
29693
29694#ifndef DOCUMENTATION
29695AstNodeClass& AsmConstantExpression = nonTerminalConstructor(
29696 "AsmConstantExpression",
29697 *this,
29698 "AsmConstantExpression",
29699 "AsmConstantExpressionTag",
29700 SubclassListBuilder()
29701 | AsmFloatValueExpression
29702 | AsmIntegerValueExpression
29703 , false);
29704assert(AsmConstantExpression.associatedGrammar != nullptr);
29705AsmConstantExpression.setCppCondition("!defined(DOCUMENTATION)");
29706AsmConstantExpression.isBoostSerializable(true);
29707AsmConstantExpression.setAutomaticGenerationOfConstructor(false);
29708AsmConstantExpression.setAutomaticGenerationOfDestructor(false);
29709#endif // !DOCUMENTATION
29710
29711#ifndef DOCUMENTATION
29712AsmConstantExpression.useSmallHeader(true);
29713#endif // !DOCUMENTATION
29714
29715DECLARE_HEADERS(AsmConstantExpression);
29716#if defined(SgAsmConstantExpression_HEADERS) || defined(DOCUMENTATION)
29717#include <Sawyer/BitVector.h>
29718#endif // SgAsmConstantExpression_HEADERS
29719
29720#ifdef DOCUMENTATION
29726#endif // DOCUMENTATION
29727
29728#ifndef DOCUMENTATION
29729 AsmConstantExpression.setDataPrototype(
29730 "Sawyer::Container::BitVector", "bitVector", "",
29731 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29732#endif // !DOCUMENTATION
29733
29734 DECLARE_OTHERS(AsmConstantExpression);
29735#if defined(SgAsmConstantExpression_OTHERS) || defined(DOCUMENTATION)
29736
29737 //----------------------- Boost serialization for SgAsmConstantExpression -----------------------
29738#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29739private:
29740 friend class boost::serialization::access;
29741
29742 template<class S>
29743 void serialize(S &s, const unsigned /*version*/) {
29744 debugSerializationBegin("SgAsmConstantExpression");
29745 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmValueExpression);
29746 s & BOOST_SERIALIZATION_NVP(p_bitVector);
29747 debugSerializationEnd("SgAsmConstantExpression");
29748 }
29749#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29750public:
29751public:
29762public:
29765
29766protected:
29769
29770protected:
29778#endif // SgAsmConstantExpression_OTHERS
29779#ifdef DOCUMENTATION
29780};
29781#endif // DOCUMENTATION
29782
29783
29785// SgAsmValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
29787
29788#ifndef DOCUMENTATION
29789AstNodeClass& AsmValueExpression = nonTerminalConstructor(
29790 "AsmValueExpression",
29791 *this,
29792 "AsmValueExpression",
29793 "AsmValueExpressionTag",
29794 SubclassListBuilder()
29795 | AsmConstantExpression
29796 , false);
29797assert(AsmValueExpression.associatedGrammar != nullptr);
29798AsmValueExpression.setCppCondition("!defined(DOCUMENTATION)");
29799AsmValueExpression.isBoostSerializable(true);
29800AsmValueExpression.setAutomaticGenerationOfConstructor(false);
29801AsmValueExpression.setAutomaticGenerationOfDestructor(false);
29802#endif // !DOCUMENTATION
29803
29804#ifndef DOCUMENTATION
29805AsmValueExpression.useSmallHeader(true);
29806#endif // !DOCUMENTATION
29807
29808#ifdef DOCUMENTATION
29817#endif // DOCUMENTATION
29818
29819#ifndef DOCUMENTATION
29820 AsmValueExpression.setDataPrototype(
29821 "SgAsmValueExpression*", "unfoldedExpression", "= nullptr",
29822 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29823#endif // !DOCUMENTATION
29824
29825#ifndef DOCUMENTATION
29826 AsmValueExpression.setDataPrototype(
29827 "unsigned short", "bitOffset", "= 0",
29828 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29829#endif // !DOCUMENTATION
29830
29831#ifndef DOCUMENTATION
29832 AsmValueExpression.setDataPrototype(
29833 "unsigned short", "bitSize", "= 0",
29834 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29835#endif // !DOCUMENTATION
29836
29837#ifndef DOCUMENTATION
29838 AsmValueExpression.setDataPrototype(
29839 "SgSymbol*", "symbol", "= nullptr",
29840 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29841#endif // !DOCUMENTATION
29842
29843 DECLARE_OTHERS(AsmValueExpression);
29844#if defined(SgAsmValueExpression_OTHERS) || defined(DOCUMENTATION)
29845
29846 //----------------------- Boost serialization for SgAsmValueExpression -----------------------
29847#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29848private:
29849 friend class boost::serialization::access;
29850
29851 template<class S>
29852 void serialize(S &s, const unsigned /*version*/) {
29853 debugSerializationBegin("SgAsmValueExpression");
29854 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
29855 s & BOOST_SERIALIZATION_NVP(p_unfoldedExpression);
29856 s & BOOST_SERIALIZATION_NVP(p_bitOffset);
29857 s & BOOST_SERIALIZATION_NVP(p_bitSize);
29858 debugSerializationEnd("SgAsmValueExpression");
29859 }
29860#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29861public:
29862public:
29874public:
29883 unsigned short const& get_bitOffset() const;
29884 void set_bitOffset(unsigned short const&);
29887public:
29894 unsigned short const& get_bitSize() const;
29895 void set_bitSize(unsigned short const&);
29898public:
29905 SgSymbol* const& get_symbol() const;
29906 void set_symbol(SgSymbol* const&);
29909 // Deprecated 2023-11
29911public:
29912 SgAsmValueExpression* get_unfolded_expression_tree() const ROSE_DEPRECATED("use get_unfoldedExpression");
29913 void set_unfolded_expression_tree(SgAsmValueExpression*) ROSE_DEPRECATED("use set_unfoldedExpression");
29914 unsigned short get_bit_offset() const ROSE_DEPRECATED("use get_bitOffset");
29915 void set_bit_offset(unsigned short) ROSE_DEPRECATED("use set_bitOffset");
29916 unsigned short get_bit_size() const ROSE_DEPRECATED("use get_bitSize");
29917 void set_bit_size(unsigned short) ROSE_DEPRECATED("use set_bitSize");
29918public:
29921
29922protected:
29925
29926protected:
29934#endif // SgAsmValueExpression_OTHERS
29935#ifdef DOCUMENTATION
29936};
29937#endif // DOCUMENTATION
29938
29939
29941// SgAsmCommonSubExpression -- MACHINE GENERATED; DO NOT MODIFY --
29943
29944DECLARE_LEAF_CLASS(AsmCommonSubExpression);
29945IS_SERIALIZABLE(AsmCommonSubExpression);
29946
29947#ifndef DOCUMENTATION
29948AsmCommonSubExpression.useSmallHeader(true);
29949#endif // !DOCUMENTATION
29950
29951DECLARE_HEADERS(AsmCommonSubExpression);
29952#if defined(SgAsmCommonSubExpression_HEADERS) || defined(DOCUMENTATION)
29953// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
29954#endif // SgAsmCommonSubExpression_HEADERS
29955
29956#ifdef DOCUMENTATION
29958#endif // DOCUMENTATION
29959
29960#ifndef DOCUMENTATION
29961 AsmCommonSubExpression.setDataPrototype(
29962 "SgAsmExpression*", "subexpression", "= nullptr",
29963 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29964#endif // !DOCUMENTATION
29965
29966 DECLARE_OTHERS(AsmCommonSubExpression);
29967#if defined(SgAsmCommonSubExpression_OTHERS) || defined(DOCUMENTATION)
29968
29969 //----------------------- Boost serialization for SgAsmCommonSubExpression -----------------------
29970#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29971private:
29972 friend class boost::serialization::access;
29973
29974 template<class S>
29975 void serialize(S &s, const unsigned /*version*/) {
29976 debugSerializationBegin("SgAsmCommonSubExpression");
29977 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
29978 s & BOOST_SERIALIZATION_NVP(p_subexpression);
29979 debugSerializationEnd("SgAsmCommonSubExpression");
29980 }
29981#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29982public:
29983public:
29984 SgAsmExpression* const& get_subexpression() const;
29985 void set_subexpression(SgAsmExpression* const&);
29986
29987public:
29990
29991public:
29994
29995protected:
30003#endif // SgAsmCommonSubExpression_OTHERS
30004#ifdef DOCUMENTATION
30005};
30006#endif // DOCUMENTATION
30007
30008
30010// SgAsmCoffSymbolTable -- MACHINE GENERATED; DO NOT MODIFY --
30012
30013DECLARE_LEAF_CLASS(AsmCoffSymbolTable);
30014IS_SERIALIZABLE(AsmCoffSymbolTable);
30015
30016#ifndef DOCUMENTATION
30017AsmCoffSymbolTable.useSmallHeader(true);
30018#endif // !DOCUMENTATION
30019
30020DECLARE_HEADERS(AsmCoffSymbolTable);
30021#if defined(SgAsmCoffSymbolTable_HEADERS) || defined(DOCUMENTATION)
30022#ifdef ROSE_SgAsmCoffSymbolTable_IMPL
30023#include <SgAsmCoffSymbolList.h>
30024#endif
30025#endif // SgAsmCoffSymbolTable_HEADERS
30026
30027#ifdef DOCUMENTATION
30032#endif // DOCUMENTATION
30033
30034#ifndef DOCUMENTATION
30035 AsmCoffSymbolTable.setDataPrototype(
30036 "SgAsmGenericSection*", "strtab", "= nullptr",
30037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30038#endif // !DOCUMENTATION
30039
30040#ifndef DOCUMENTATION
30041 AsmCoffSymbolTable.setDataPrototype(
30042 "SgAsmCoffSymbolList*", "symbols", "= createAndParent<SgAsmCoffSymbolList>(this)",
30043 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30044#endif // !DOCUMENTATION
30045
30046 DECLARE_OTHERS(AsmCoffSymbolTable);
30047#if defined(SgAsmCoffSymbolTable_OTHERS) || defined(DOCUMENTATION)
30048
30049 //----------------------- Boost serialization for SgAsmCoffSymbolTable -----------------------
30050#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30051private:
30052 friend class boost::serialization::access;
30053
30054 template<class S>
30055 void serialize(S &s, const unsigned /*version*/) {
30056 debugSerializationBegin("SgAsmCoffSymbolTable");
30057 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
30058 s & BOOST_SERIALIZATION_NVP(p_strtab);
30059 s & BOOST_SERIALIZATION_NVP(p_symbols);
30060 debugSerializationEnd("SgAsmCoffSymbolTable");
30061 }
30062#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30063public:
30064public:
30074public:
30081public:
30083 size_t get_nslots() const;
30084 virtual SgAsmCoffSymbolTable *parse() override;
30085 virtual void unparse(std::ostream&) const override;
30086 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
30087public:
30090
30091public:
30094
30095protected:
30103#endif // SgAsmCoffSymbolTable_OTHERS
30104#ifdef DOCUMENTATION
30105};
30106#endif // DOCUMENTATION
30107
30108
30110// SgAsmCoffSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
30112
30113DECLARE_LEAF_CLASS(AsmCoffSymbolList);
30114IS_SERIALIZABLE(AsmCoffSymbolList);
30115
30116#ifndef DOCUMENTATION
30117AsmCoffSymbolList.useSmallHeader(true);
30118#endif // !DOCUMENTATION
30119
30120DECLARE_HEADERS(AsmCoffSymbolList);
30121#if defined(SgAsmCoffSymbolList_HEADERS) || defined(DOCUMENTATION)
30122#include <sageContainer.h>
30123#endif // SgAsmCoffSymbolList_HEADERS
30124
30125#ifdef DOCUMENTATION
30128#endif // DOCUMENTATION
30129
30130#ifndef DOCUMENTATION
30131 AsmCoffSymbolList.setDataPrototype(
30132 "SgAsmCoffSymbolPtrList", "symbols", "",
30133 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30134#endif // !DOCUMENTATION
30135
30136 DECLARE_OTHERS(AsmCoffSymbolList);
30137#if defined(SgAsmCoffSymbolList_OTHERS) || defined(DOCUMENTATION)
30138
30139 //----------------------- Boost serialization for SgAsmCoffSymbolList -----------------------
30140#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30141private:
30142 friend class boost::serialization::access;
30143
30144 template<class S>
30145 void serialize(S &s, const unsigned /*version*/) {
30146 debugSerializationBegin("SgAsmCoffSymbolList");
30147 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
30148 s & BOOST_SERIALIZATION_NVP(p_symbols);
30149 debugSerializationEnd("SgAsmCoffSymbolList");
30150 }
30151#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30152public:
30153public:
30157 SgAsmCoffSymbolPtrList const& get_symbols() const;
30158 SgAsmCoffSymbolPtrList& get_symbols();
30159 void set_symbols(SgAsmCoffSymbolPtrList const&);
30162public:
30165
30166public:
30169
30170protected:
30178#endif // SgAsmCoffSymbolList_OTHERS
30179#ifdef DOCUMENTATION
30180};
30181#endif // DOCUMENTATION
30182
30183
30185// SgAsmCoffSymbol -- MACHINE GENERATED; DO NOT MODIFY --
30187
30188DECLARE_LEAF_CLASS(AsmCoffSymbol);
30189IS_SERIALIZABLE(AsmCoffSymbol);
30190
30191#ifndef DOCUMENTATION
30192AsmCoffSymbol.useSmallHeader(true);
30193#endif // !DOCUMENTATION
30194
30195DECLARE_HEADERS(AsmCoffSymbol);
30196#if defined(SgAsmCoffSymbol_HEADERS) || defined(DOCUMENTATION)
30197#include <Rose/BinaryAnalysis/Address.h>
30198
30199#include <sageContainer.h>
30200#endif // SgAsmCoffSymbol_HEADERS
30201
30202#ifdef DOCUMENTATION
30205#endif // DOCUMENTATION
30206
30207#ifndef DOCUMENTATION
30208 AsmCoffSymbol.setDataPrototype(
30209 "std::string", "st_name", "",
30210 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30211#endif // !DOCUMENTATION
30212
30213#ifndef DOCUMENTATION
30214 AsmCoffSymbol.setDataPrototype(
30215 "Rose::BinaryAnalysis::Address", "st_name_offset", "= 0",
30216 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30217#endif // !DOCUMENTATION
30218
30219#ifndef DOCUMENTATION
30220 AsmCoffSymbol.setDataPrototype(
30221 "int", "st_section_num", "= 0",
30222 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30223#endif // !DOCUMENTATION
30224
30225#ifndef DOCUMENTATION
30226 AsmCoffSymbol.setDataPrototype(
30227 "unsigned", "st_type", "= 0",
30228 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30229#endif // !DOCUMENTATION
30230
30231#ifndef DOCUMENTATION
30232 AsmCoffSymbol.setDataPrototype(
30233 "unsigned", "st_storage_class", "= 0",
30234 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30235#endif // !DOCUMENTATION
30236
30237#ifndef DOCUMENTATION
30238 AsmCoffSymbol.setDataPrototype(
30239 "unsigned", "st_num_aux_entries", "= 0",
30240 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30241#endif // !DOCUMENTATION
30242
30243#ifndef DOCUMENTATION
30244 AsmCoffSymbol.setDataPrototype(
30245 "SgUnsignedCharList", "auxiliaryData", "",
30246 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30247#endif // !DOCUMENTATION
30248
30249 DECLARE_OTHERS(AsmCoffSymbol);
30250#if defined(SgAsmCoffSymbol_OTHERS) || defined(DOCUMENTATION)
30251
30252 //----------------------- Boost serialization for SgAsmCoffSymbol -----------------------
30253#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30254private:
30255 friend class boost::serialization::access;
30256
30257 template<class S>
30258 void serialize(S &s, const unsigned /*version*/) {
30259 debugSerializationBegin("SgAsmCoffSymbol");
30260 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
30261 s & BOOST_SERIALIZATION_NVP(p_st_name);
30262 s & BOOST_SERIALIZATION_NVP(p_st_name_offset);
30263 s & BOOST_SERIALIZATION_NVP(p_st_section_num);
30264 s & BOOST_SERIALIZATION_NVP(p_st_type);
30265 s & BOOST_SERIALIZATION_NVP(p_st_storage_class);
30266 s & BOOST_SERIALIZATION_NVP(p_st_num_aux_entries);
30267 s & BOOST_SERIALIZATION_NVP(p_auxiliaryData);
30268 debugSerializationEnd("SgAsmCoffSymbol");
30269 }
30270#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30272 // Local types
30274public:
30275#ifdef _MSC_VER
30276# pragma pack (1)
30277#endif
30279 union {
30280 char st_name[8];
30281 struct {
30282 uint32_t st_zero;
30283 uint32_t st_offset;
30284 };
30285 };
30286 uint32_t st_value;
30287 int16_t st_section_num;
30288 uint16_t st_type;
30289 unsigned char st_storage_class;
30290 unsigned char st_num_aux_entries;
30291 }
30292// DQ (3/7/2013): Adding support to restrict visability to SWIG.
30293#if !defined(SWIG) && !defined(_MSC_VER)
30294 __attribute__((packed))
30295#endif
30296 ;
30297#ifdef _MSC_VER
30298# pragma pack ()
30299#endif
30300
30302 // Properties and data members
30304public:
30305public:
30309 std::string const& get_st_name() const;
30310 void set_st_name(std::string const&);
30313public:
30321public:
30325 int const& get_st_section_num() const;
30326 void set_st_section_num(int const&);
30329public:
30333 unsigned const& get_st_type() const;
30334 void set_st_type(unsigned const&);
30337public:
30341 unsigned const& get_st_storage_class() const;
30342 void set_st_storage_class(unsigned const&);
30345public:
30349 unsigned const& get_st_num_aux_entries() const;
30350 void set_st_num_aux_entries(unsigned const&);
30353public:
30357 SgUnsignedCharList const& get_auxiliaryData() const;
30358 SgUnsignedCharList& get_auxiliaryData();
30359 void set_auxiliaryData(SgUnsignedCharList const&);
30361public:
30362 static const unsigned int COFFSymbol_disk_size = 18;
30363
30365 // Functions
30367public:
30368 SgAsmCoffSymbol(SgAsmPEFileHeader *fhdr, SgAsmGenericSection *symtab, SgAsmGenericSection *strtab, size_t idx);
30369 void *encode(SgAsmCoffSymbol::COFFSymbol_disk*) const;
30370 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
30371
30373 // Deprecated
30375public:
30376 const SgUnsignedCharList& get_aux_data() const ROSE_DEPRECATED("use get_auxiliaryData");
30377 void set_aux_data(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_auxiliaryData");
30378public:
30381
30382public:
30385
30386protected:
30394#endif // SgAsmCoffSymbol_OTHERS
30395#ifdef DOCUMENTATION
30396};
30397#endif // DOCUMENTATION
30398
30399
30401// SgAsmGenericSymbol -- MACHINE GENERATED; DO NOT MODIFY --
30403
30404#ifndef DOCUMENTATION
30405AstNodeClass& AsmGenericSymbol = nonTerminalConstructor(
30406 "AsmGenericSymbol",
30407 *this,
30408 "AsmGenericSymbol",
30409 "AsmGenericSymbolTag",
30410 SubclassListBuilder()
30411 | AsmCoffSymbol
30412 | AsmElfSymbol
30413 , false);
30414assert(AsmGenericSymbol.associatedGrammar != nullptr);
30415AsmGenericSymbol.setCppCondition("!defined(DOCUMENTATION)");
30416AsmGenericSymbol.isBoostSerializable(true);
30417AsmGenericSymbol.setAutomaticGenerationOfConstructor(false);
30418AsmGenericSymbol.setAutomaticGenerationOfDestructor(false);
30419#endif // !DOCUMENTATION
30420
30421#ifndef DOCUMENTATION
30422AsmGenericSymbol.useSmallHeader(true);
30423#endif // !DOCUMENTATION
30424
30425DECLARE_HEADERS(AsmGenericSymbol);
30426#if defined(SgAsmGenericSymbol_HEADERS) || defined(DOCUMENTATION)
30427#include <Rose/BinaryAnalysis/Address.h>
30428
30429/* Base class for symbol tables. */
30430#endif // SgAsmGenericSymbol_HEADERS
30431
30432#ifdef DOCUMENTATION
30434#endif // DOCUMENTATION
30435
30436#ifndef DOCUMENTATION
30437 AsmGenericSymbol.setDataPrototype(
30438 "SgAsmGenericSymbol::SymbolDefState", "definitionState", "= SgAsmGenericSymbol::SYM_UNDEFINED",
30439 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30440#endif // !DOCUMENTATION
30441
30442#ifndef DOCUMENTATION
30443 AsmGenericSymbol.setDataPrototype(
30444 "SgAsmGenericSymbol::SymbolBinding", "binding", "= SgAsmGenericSymbol::SYM_NO_BINDING",
30445 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30446#endif // !DOCUMENTATION
30447
30448#ifndef DOCUMENTATION
30449 AsmGenericSymbol.setDataPrototype(
30450 "SgAsmGenericSymbol::SymbolType", "type", "= SgAsmGenericSymbol::SYM_NO_TYPE",
30451 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30452#endif // !DOCUMENTATION
30453
30454#ifndef DOCUMENTATION
30455 AsmGenericSymbol.setDataPrototype(
30456 "Rose::BinaryAnalysis::Address", "value", "= 0",
30457 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30458#endif // !DOCUMENTATION
30459
30460#ifndef DOCUMENTATION
30461 AsmGenericSymbol.setDataPrototype(
30462 "Rose::BinaryAnalysis::Address", "size", "= 0",
30463 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30464#endif // !DOCUMENTATION
30465
30466#ifndef DOCUMENTATION
30467 AsmGenericSymbol.setDataPrototype(
30468 "SgAsmGenericSection*", "bound", "= nullptr",
30469 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30470#endif // !DOCUMENTATION
30471
30472#ifndef DOCUMENTATION
30473 AsmGenericSymbol.setDataPrototype(
30474 "SgAsmGenericString*", "name", "= nullptr",
30475 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30476#endif // !DOCUMENTATION
30477
30478 DECLARE_OTHERS(AsmGenericSymbol);
30479#if defined(SgAsmGenericSymbol_OTHERS) || defined(DOCUMENTATION)
30480
30481 //----------------------- Boost serialization for SgAsmGenericSymbol -----------------------
30482#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30483private:
30484 friend class boost::serialization::access;
30485
30486 template<class S>
30487 void serialize(S &s, const unsigned /*version*/) {
30488 debugSerializationBegin("SgAsmGenericSymbol");
30489 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
30490 s & BOOST_SERIALIZATION_NVP(p_definitionState);
30491 s & BOOST_SERIALIZATION_NVP(p_binding);
30492 s & BOOST_SERIALIZATION_NVP(p_type);
30493 s & BOOST_SERIALIZATION_NVP(p_value);
30494 s & BOOST_SERIALIZATION_NVP(p_size);
30495 s & BOOST_SERIALIZATION_NVP(p_bound);
30496 s & BOOST_SERIALIZATION_NVP(p_name);
30497 debugSerializationEnd("SgAsmGenericSymbol");
30498 }
30499#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30501 // Local types
30503public:
30510
30524
30532
30534 // Properties
30536public:
30537public:
30545public:
30553public:
30561public:
30569public:
30577public:
30585public:
30594 // Functions
30596public:
30598 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
30599
30601 // Deprecated 2023-11
30603public:
30604 SymbolDefState get_def_state() const ROSE_DEPRECATED("use get_definitionState");
30605 void set_def_state(SymbolDefState) ROSE_DEPRECATED("use set_definitionState");
30606public:
30609
30610protected:
30613
30614protected:
30622#endif // SgAsmGenericSymbol_OTHERS
30623#ifdef DOCUMENTATION
30624};
30625#endif // DOCUMENTATION
30626
30627
30629// SgAsmCoffStrtab -- MACHINE GENERATED; DO NOT MODIFY --
30631
30632DECLARE_LEAF_CLASS(AsmCoffStrtab);
30633IS_SERIALIZABLE(AsmCoffStrtab);
30634
30635#ifndef DOCUMENTATION
30636AsmCoffStrtab.useSmallHeader(true);
30637#endif // !DOCUMENTATION
30638
30639DECLARE_HEADERS(AsmCoffStrtab);
30640#if defined(SgAsmCoffStrtab_HEADERS) || defined(DOCUMENTATION)
30641#include <Rose/BinaryAnalysis/Address.h>
30642#endif // SgAsmCoffStrtab_HEADERS
30643
30644#ifdef DOCUMENTATION
30647#endif // DOCUMENTATION
30648
30649 DECLARE_OTHERS(AsmCoffStrtab);
30650#if defined(SgAsmCoffStrtab_OTHERS) || defined(DOCUMENTATION)
30651
30652 //----------------------- Boost serialization for SgAsmCoffStrtab -----------------------
30653#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30654private:
30655 friend class boost::serialization::access;
30656
30657 template<class S>
30658 void serialize(S &s, const unsigned /*version*/) {
30659 debugSerializationBegin("SgAsmCoffStrtab");
30660 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
30661 debugSerializationEnd("SgAsmCoffStrtab");
30662 }
30663#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30664public:
30665 explicit SgAsmCoffStrtab(class SgAsmPESection *containing_section);
30666 void destructorHelper() override;
30667 virtual void unparse(std::ostream&) const;
30668 virtual SgAsmStringStorage *createStorage(Rose::BinaryAnalysis::Address offset, bool shared) override;
30669 virtual Rose::BinaryAnalysis::Address get_storageSize(const SgAsmStringStorage*) override;
30670
30672 // Deprecated 2023-11
30674 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) override ROSE_DEPRECATED("use createStorage");
30675 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) override
30676 ROSE_DEPRECATED("use get_storageSize");
30677public:
30680
30681public:
30684
30685protected:
30693#endif // SgAsmCoffStrtab_OTHERS
30694#ifdef DOCUMENTATION
30695};
30696#endif // DOCUMENTATION
30697
30698
30700// SgAsmGenericStrtab -- MACHINE GENERATED; DO NOT MODIFY --
30702
30703#ifndef DOCUMENTATION
30704AstNodeClass& AsmGenericStrtab = nonTerminalConstructor(
30705 "AsmGenericStrtab",
30706 *this,
30707 "AsmGenericStrtab",
30708 "AsmGenericStrtabTag",
30709 SubclassListBuilder()
30710 | AsmCoffStrtab
30711 | AsmElfStrtab
30712 , false);
30713assert(AsmGenericStrtab.associatedGrammar != nullptr);
30714AsmGenericStrtab.setCppCondition("!defined(DOCUMENTATION)");
30715AsmGenericStrtab.isBoostSerializable(true);
30716AsmGenericStrtab.setAutomaticGenerationOfConstructor(false);
30717AsmGenericStrtab.setAutomaticGenerationOfDestructor(false);
30718#endif // !DOCUMENTATION
30719
30720#ifndef DOCUMENTATION
30721AsmGenericStrtab.useSmallHeader(true);
30722#endif // !DOCUMENTATION
30723
30724DECLARE_HEADERS(AsmGenericStrtab);
30725#if defined(SgAsmGenericStrtab_HEADERS) || defined(DOCUMENTATION)
30726#include <Rose/BinaryAnalysis/Address.h>
30727#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
30728#endif // SgAsmGenericStrtab_HEADERS
30729
30730#ifdef DOCUMENTATION
30733#endif // DOCUMENTATION
30734
30735#ifndef DOCUMENTATION
30736 AsmGenericStrtab.setDataPrototype(
30737 "SgAsmGenericSection*", "container", "= nullptr",
30738 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30739#endif // !DOCUMENTATION
30740
30741#ifndef DOCUMENTATION
30742 AsmGenericStrtab.setDataPrototype(
30743 "SgAsmGenericStrtab::referenced_t", "storageList", "",
30744 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30745#endif // !DOCUMENTATION
30746
30747#ifndef DOCUMENTATION
30748 AsmGenericStrtab.setDataPrototype(
30749 "Rose::BinaryAnalysis::AddressIntervalSet", "freeList", "",
30750 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30751#endif // !DOCUMENTATION
30752
30753#ifndef DOCUMENTATION
30754 AsmGenericStrtab.setDataPrototype(
30755 "SgAsmStringStorage*", "dontFree", "= nullptr",
30756 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30757#endif // !DOCUMENTATION
30758
30759#ifndef DOCUMENTATION
30760 AsmGenericStrtab.setDataPrototype(
30761 "size_t", "numberFreed", "= 0",
30762 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30763#endif // !DOCUMENTATION
30764
30765 DECLARE_OTHERS(AsmGenericStrtab);
30766#if defined(SgAsmGenericStrtab_OTHERS) || defined(DOCUMENTATION)
30767
30768 //----------------------- Boost serialization for SgAsmGenericStrtab -----------------------
30769#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30770private:
30771 friend class boost::serialization::access;
30772
30773 template<class S>
30774 void serialize(S &s, const unsigned /*version*/) {
30775 debugSerializationBegin("SgAsmGenericStrtab");
30776 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
30777 s & BOOST_SERIALIZATION_NVP(p_container);
30778 s & BOOST_SERIALIZATION_NVP(p_storageList);
30779 s & BOOST_SERIALIZATION_NVP(p_freeList);
30780 s & BOOST_SERIALIZATION_NVP(p_dontFree);
30781 s & BOOST_SERIALIZATION_NVP(p_numberFreed);
30782 debugSerializationEnd("SgAsmGenericStrtab");
30783 }
30784#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30786 // Local types
30788public:
30789 typedef std::vector<class SgAsmStringStorage*> referenced_t;
30790
30792 // Properties
30794public:
30795public:
30803public:
30807 SgAsmGenericStrtab::referenced_t const& get_storageList() const;
30808 void set_storageList(SgAsmGenericStrtab::referenced_t const&);
30811public:
30820public:
30828public:
30832 size_t const& get_numberFreed() const;
30833 void set_numberFreed(size_t const&);
30836 // Functions
30838public:
30841
30843 virtual SgAsmGenericStrtab* parse() {return this;}
30844
30846 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
30847
30850
30855
30860 void free(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size); /*mark part of table as free*/
30861
30866 void freeAllStrings(bool blow_away_holes=false);
30867
30868 virtual void allocateOverlap(SgAsmStringStorage*);
30869
30875 bool reallocate(bool shrink);
30876
30877 //These should be pure virtual but ROSETTA apparently doesn't support that (RPM 2008-10-03)
30878 virtual SgAsmStringStorage *createStorage(Rose::BinaryAnalysis::Address /*offset*/, bool /*shared*/);
30879 virtual Rose::BinaryAnalysis::Address get_storageSize(const SgAsmStringStorage*);
30881
30883 // Deprecated 2023-11
30885public:
30886 const referenced_t& get_storage_list() const ROSE_DEPRECATED("use get_storageList");
30887 void set_storage_list(const referenced_t&) ROSE_DEPRECATED("use set_storageList");
30888 const Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() const ROSE_DEPRECATED("use get_freeList");
30889 Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() ROSE_DEPRECATED("use set_freeList");
30890 SgAsmStringStorage* get_dont_free() const ROSE_DEPRECATED("use get_dontFree");
30891 void set_dont_free(SgAsmStringStorage*) ROSE_DEPRECATED("use set_dontFree");
30892 size_t get_num_freed() const ROSE_DEPRECATED("use get_numberFreed");
30893 void set_num_freed(size_t) ROSE_DEPRECATED("use set_numberFreed");
30894 SgAsmStoredString *create_string(Rose::BinaryAnalysis::Address, bool) ROSE_DEPRECATED("use createString");
30895 void free_all_strings(bool=false) ROSE_DEPRECATED("use freeAllStrings");
30896 virtual void allocate_overlap(SgAsmStringStorage*) ROSE_DEPRECATED("use allocateOverlap");
30897 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) ROSE_DEPRECATED("use createStorage");
30898 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) ROSE_DEPRECATED("use get_storageSize");
30899public:
30902
30903protected:
30906
30907protected:
30915#endif // SgAsmGenericStrtab_OTHERS
30916#ifdef DOCUMENTATION
30917};
30918#endif // DOCUMENTATION
30919
30920
30922// SgAsmCliHeader -- MACHINE GENERATED; DO NOT MODIFY --
30924
30925DECLARE_LEAF_CLASS(AsmCliHeader);
30926IS_SERIALIZABLE(AsmCliHeader);
30927
30928#ifndef DOCUMENTATION
30929AsmCliHeader.useSmallHeader(true);
30930#endif // !DOCUMENTATION
30931
30932DECLARE_HEADERS(AsmCliHeader);
30933#if defined(SgAsmCliHeader_HEADERS) || defined(DOCUMENTATION)
30934#ifdef ROSE_SgAsmCliHeader_IMPL
30935#include <SgAsmCilMetadataRoot.h>
30936#endif
30937#endif // SgAsmCliHeader_HEADERS
30938
30939#ifdef DOCUMENTATION
30944#endif // DOCUMENTATION
30945
30946#ifndef DOCUMENTATION
30947 AsmCliHeader.setDataPrototype(
30948 "uint32_t", "cb", "= 0",
30949 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30950#endif // !DOCUMENTATION
30951
30952#ifndef DOCUMENTATION
30953 AsmCliHeader.setDataPrototype(
30954 "uint16_t", "majorRuntimeVersion", "= 0",
30955 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30956#endif // !DOCUMENTATION
30957
30958#ifndef DOCUMENTATION
30959 AsmCliHeader.setDataPrototype(
30960 "uint16_t", "minorRuntimeVersion", "= 0",
30961 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30962#endif // !DOCUMENTATION
30963
30964#ifndef DOCUMENTATION
30965 AsmCliHeader.setDataPrototype(
30966 "uint64_t", "metaData", "= 0",
30967 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30968#endif // !DOCUMENTATION
30969
30970#ifndef DOCUMENTATION
30971 AsmCliHeader.setDataPrototype(
30972 "uint32_t", "flags", "= 0",
30973 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30974#endif // !DOCUMENTATION
30975
30976#ifndef DOCUMENTATION
30977 AsmCliHeader.setDataPrototype(
30978 "uint32_t", "entryPointToken", "= 0",
30979 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30980#endif // !DOCUMENTATION
30981
30982#ifndef DOCUMENTATION
30983 AsmCliHeader.setDataPrototype(
30984 "uint64_t", "resources", "= 0",
30985 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30986#endif // !DOCUMENTATION
30987
30988#ifndef DOCUMENTATION
30989 AsmCliHeader.setDataPrototype(
30990 "uint64_t", "strongNameSignature", "= 0",
30991 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30992#endif // !DOCUMENTATION
30993
30994#ifndef DOCUMENTATION
30995 AsmCliHeader.setDataPrototype(
30996 "uint64_t", "codeManagerTable", "= 0",
30997 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30998#endif // !DOCUMENTATION
30999
31000#ifndef DOCUMENTATION
31001 AsmCliHeader.setDataPrototype(
31002 "uint64_t", "vTableFixups", "= 0",
31003 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31004#endif // !DOCUMENTATION
31005
31006#ifndef DOCUMENTATION
31007 AsmCliHeader.setDataPrototype(
31008 "uint64_t", "exportAddressTableJumps", "= 0",
31009 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31010#endif // !DOCUMENTATION
31011
31012#ifndef DOCUMENTATION
31013 AsmCliHeader.setDataPrototype(
31014 "uint64_t", "managedNativeHeader", "= 0",
31015 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31016#endif // !DOCUMENTATION
31017
31018#ifndef DOCUMENTATION
31019 AsmCliHeader.setDataPrototype(
31020 "SgAsmCilMetadataRoot*", "metadataRoot", "= nullptr",
31021 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
31022#endif // !DOCUMENTATION
31023
31024 DECLARE_OTHERS(AsmCliHeader);
31025#if defined(SgAsmCliHeader_OTHERS) || defined(DOCUMENTATION)
31026
31027 //----------------------- Boost serialization for SgAsmCliHeader -----------------------
31028#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31029private:
31030 friend class boost::serialization::access;
31031
31032 template<class S>
31033 void serialize(S &s, const unsigned /*version*/) {
31034 debugSerializationBegin("SgAsmCliHeader");
31035 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
31036 s & BOOST_SERIALIZATION_NVP(p_cb);
31037 s & BOOST_SERIALIZATION_NVP(p_majorRuntimeVersion);
31038 s & BOOST_SERIALIZATION_NVP(p_minorRuntimeVersion);
31039 s & BOOST_SERIALIZATION_NVP(p_metaData);
31040 s & BOOST_SERIALIZATION_NVP(p_flags);
31041 s & BOOST_SERIALIZATION_NVP(p_entryPointToken);
31042 s & BOOST_SERIALIZATION_NVP(p_resources);
31043 s & BOOST_SERIALIZATION_NVP(p_strongNameSignature);
31044 s & BOOST_SERIALIZATION_NVP(p_codeManagerTable);
31045 s & BOOST_SERIALIZATION_NVP(p_vTableFixups);
31046 s & BOOST_SERIALIZATION_NVP(p_exportAddressTableJumps);
31047 s & BOOST_SERIALIZATION_NVP(p_managedNativeHeader);
31048 debugSerializationEnd("SgAsmCliHeader");
31049 }
31050#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31051public:
31052public:
31058 uint32_t const& get_cb() const;
31059 void set_cb(uint32_t const&);
31062public:
31068 uint16_t const& get_majorRuntimeVersion() const;
31069 void set_majorRuntimeVersion(uint16_t const&);
31072public:
31078 uint16_t const& get_minorRuntimeVersion() const;
31079 void set_minorRuntimeVersion(uint16_t const&);
31082public:
31088 uint64_t const& get_metaData() const;
31089 void set_metaData(uint64_t const&);
31092public:
31098 uint32_t const& get_flags() const;
31099 void set_flags(uint32_t const&);
31102public:
31108 uint32_t const& get_entryPointToken() const;
31109 void set_entryPointToken(uint32_t const&);
31112public:
31118 uint64_t const& get_resources() const;
31119 void set_resources(uint64_t const&);
31122public:
31128 uint64_t const& get_strongNameSignature() const;
31129 void set_strongNameSignature(uint64_t const&);
31132public:
31138 uint64_t const& get_codeManagerTable() const;
31139 void set_codeManagerTable(uint64_t const&);
31142public:
31148 uint64_t const& get_vTableFixups() const;
31149 void set_vTableFixups(uint64_t const&);
31152public:
31158 uint64_t const& get_exportAddressTableJumps() const;
31159 void set_exportAddressTableJumps(uint64_t const&);
31162public:
31168 uint64_t const& get_managedNativeHeader() const;
31169 void set_managedNativeHeader(uint64_t const&);
31171 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
31172public:
31179 public:
31184
31186 virtual SgAsmCliHeader* parse() override;
31187
31189 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
31190public:
31193
31194public:
31197
31198protected:
31206#endif // SgAsmCliHeader_OTHERS
31207#ifdef DOCUMENTATION
31208};
31209#endif // DOCUMENTATION
31210
31211
31213// SgAsmGenericSection -- MACHINE GENERATED; DO NOT MODIFY --
31215
31216#ifndef DOCUMENTATION
31217AstNodeClass& AsmGenericSection = nonTerminalConstructor(
31218 "AsmGenericSection",
31219 *this,
31220 "AsmGenericSection",
31221 "AsmGenericSectionTag",
31222 SubclassListBuilder()
31223 | AsmCliHeader
31224 | AsmCoffSymbolTable
31225 | AsmDOSExtendedHeader
31226 | AsmElfSection
31227 | AsmElfSectionTable
31228 | AsmElfSegmentTable
31229 | AsmGenericHeader
31230 | AsmJvmAttributeTable
31231 | AsmJvmConstantPool
31232 | AsmJvmFieldTable
31233 | AsmJvmMethodTable
31234 | AsmLEEntryTable
31235 | AsmLENameTable
31236 | AsmLEPageTable
31237 | AsmLERelocTable
31238 | AsmLESection
31239 | AsmLESectionTable
31240 | AsmNEEntryTable
31241 | AsmNEModuleTable
31242 | AsmNENameTable
31243 | AsmNERelocTable
31244 | AsmNESection
31245 | AsmNESectionTable
31246 | AsmNEStringTable
31247 | AsmPESection
31248 | AsmPESectionTable
31249 , true);
31250assert(AsmGenericSection.associatedGrammar != nullptr);
31251AsmGenericSection.setCppCondition("!defined(DOCUMENTATION)");
31252AsmGenericSection.isBoostSerializable(true);
31253AsmGenericSection.setAutomaticGenerationOfConstructor(false);
31254AsmGenericSection.setAutomaticGenerationOfDestructor(false);
31255#endif // !DOCUMENTATION
31256
31257#ifndef DOCUMENTATION
31258AsmGenericSection.useSmallHeader(true);
31259#endif // !DOCUMENTATION
31260
31261DECLARE_HEADERS(AsmGenericSection);
31262#if defined(SgAsmGenericSection_HEADERS) || defined(DOCUMENTATION)
31263#include <Rose/BinaryAnalysis/Address.h>
31264#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
31265#include <Rose/BinaryAnalysis/MemoryMap.h>
31266#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
31267#include <sageContainer.h>
31268
31269#ifdef ROSE_SgAsmGenericSection_IMPL
31270#include <SgAsmBasicString.h>
31271#endif
31272#endif // SgAsmGenericSection_HEADERS
31273
31274#ifdef DOCUMENTATION
31280#endif // DOCUMENTATION
31281
31282#ifndef DOCUMENTATION
31283 AsmGenericSection.setDataPrototype(
31284 "SgAsmGenericFile*", "file", "= nullptr",
31285 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31286#endif // !DOCUMENTATION
31287
31288#ifndef DOCUMENTATION
31289 AsmGenericSection.setDataPrototype(
31290 "SgAsmGenericHeader*", "header", "= nullptr",
31291 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31292#endif // !DOCUMENTATION
31293
31294#ifndef DOCUMENTATION
31295 AsmGenericSection.setDataPrototype(
31296 "Rose::BinaryAnalysis::Address", "size", "= 0",
31297 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31298#endif // !DOCUMENTATION
31299
31300#ifndef DOCUMENTATION
31301 AsmGenericSection.setDataPrototype(
31302 "Rose::BinaryAnalysis::Address", "offset", "= 0",
31303 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31304#endif // !DOCUMENTATION
31305
31306#ifndef DOCUMENTATION
31307 AsmGenericSection.setDataPrototype(
31308 "Rose::BinaryAnalysis::Address", "fileAlignment", "= 0",
31309 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31310#endif // !DOCUMENTATION
31311
31312#ifndef DOCUMENTATION
31313 AsmGenericSection.setDataPrototype(
31314 "SgFileContentList", "data", "",
31315 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31316#endif // !DOCUMENTATION
31317
31318#ifndef DOCUMENTATION
31319 AsmGenericSection.setDataPrototype(
31320 "SgAsmGenericSection::SectionPurpose", "purpose", "= SgAsmGenericSection::SP_UNSPECIFIED",
31321 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31322#endif // !DOCUMENTATION
31323
31324#ifndef DOCUMENTATION
31325 AsmGenericSection.setDataPrototype(
31326 "bool", "synthesized", "= false",
31327 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31328#endif // !DOCUMENTATION
31329
31330#ifndef DOCUMENTATION
31331 AsmGenericSection.setDataPrototype(
31332 "int", "id", "= -1",
31333 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31334#endif // !DOCUMENTATION
31335
31336#ifndef DOCUMENTATION
31337 AsmGenericSection.setDataPrototype(
31338 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
31339 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31340#endif // !DOCUMENTATION
31341
31342#ifndef DOCUMENTATION
31343 AsmGenericSection.setDataPrototype(
31344 "std::string", "shortName", "",
31345 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31346#endif // !DOCUMENTATION
31347
31348#ifndef DOCUMENTATION
31349 AsmGenericSection.setDataPrototype(
31350 "Rose::BinaryAnalysis::Address", "mappedPreferredRva", "= 0",
31351 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31352#endif // !DOCUMENTATION
31353
31354#ifndef DOCUMENTATION
31355 AsmGenericSection.setDataPrototype(
31356 "Rose::BinaryAnalysis::Address", "mappedSize", "= 0",
31357 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31358#endif // !DOCUMENTATION
31359
31360#ifndef DOCUMENTATION
31361 AsmGenericSection.setDataPrototype(
31362 "Rose::BinaryAnalysis::Address", "mappedAlignment", "= 0",
31363 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31364#endif // !DOCUMENTATION
31365
31366#ifndef DOCUMENTATION
31367 AsmGenericSection.setDataPrototype(
31368 "bool", "mappedReadPermission", "= false",
31369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31370#endif // !DOCUMENTATION
31371
31372#ifndef DOCUMENTATION
31373 AsmGenericSection.setDataPrototype(
31374 "bool", "mappedWritePermission", "= false",
31375 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31376#endif // !DOCUMENTATION
31377
31378#ifndef DOCUMENTATION
31379 AsmGenericSection.setDataPrototype(
31380 "bool", "mappedExecutePermission", "= false",
31381 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31382#endif // !DOCUMENTATION
31383
31384#ifndef DOCUMENTATION
31385 AsmGenericSection.setDataPrototype(
31386 "bool", "containsCode", "= false",
31387 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31388#endif // !DOCUMENTATION
31389
31390#ifndef DOCUMENTATION
31391 AsmGenericSection.setDataPrototype(
31392 "Rose::BinaryAnalysis::Address", "mappedActualVa", "= 0",
31393 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31394#endif // !DOCUMENTATION
31395
31396 DECLARE_OTHERS(AsmGenericSection);
31397#if defined(SgAsmGenericSection_OTHERS) || defined(DOCUMENTATION)
31398
31399 //----------------------- Boost serialization for SgAsmGenericSection -----------------------
31400#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31401private:
31402 friend class boost::serialization::access;
31403
31404 template<class S>
31405 void serialize(S &s, const unsigned /*version*/) {
31406 debugSerializationBegin("SgAsmGenericSection");
31407 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
31408 s & BOOST_SERIALIZATION_NVP(p_file);
31409 s & BOOST_SERIALIZATION_NVP(p_header);
31410 s & BOOST_SERIALIZATION_NVP(p_size);
31411 s & BOOST_SERIALIZATION_NVP(p_offset);
31412 s & BOOST_SERIALIZATION_NVP(p_fileAlignment);
31413 s & BOOST_SERIALIZATION_NVP(p_data);
31414 s & BOOST_SERIALIZATION_NVP(p_purpose);
31415 s & BOOST_SERIALIZATION_NVP(p_synthesized);
31416 s & BOOST_SERIALIZATION_NVP(p_id);
31417 s & BOOST_SERIALIZATION_NVP(p_name);
31418 s & BOOST_SERIALIZATION_NVP(p_shortName);
31419 s & BOOST_SERIALIZATION_NVP(p_mappedPreferredRva);
31420 s & BOOST_SERIALIZATION_NVP(p_mappedSize);
31421 s & BOOST_SERIALIZATION_NVP(p_mappedAlignment);
31422 s & BOOST_SERIALIZATION_NVP(p_mappedReadPermission);
31423 s & BOOST_SERIALIZATION_NVP(p_mappedWritePermission);
31424 s & BOOST_SERIALIZATION_NVP(p_mappedExecutePermission);
31425 s & BOOST_SERIALIZATION_NVP(p_containsCode);
31426 s & BOOST_SERIALIZATION_NVP(p_mappedActualVa);
31427 debugSerializationEnd("SgAsmGenericSection");
31428 }
31429#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31431 // Local types
31433public:
31445
31447 // Properties
31449public:
31450public:
31458public:
31466public:
31480public:
31488 // Starting file offset of the section
31489
31493public:
31503public:
31513public:
31521public:
31527 bool const& get_synthesized() const;
31528 void set_synthesized(bool const&);
31531public:
31537 int const& get_id() const;
31538 void set_id(int const&);
31541public:
31552public:
31560 void set_shortName(std::string const&);
31561 std::string get_shortName() const;
31563public:
31576public:
31585public:
31593public:
31597 bool const& get_mappedReadPermission() const;
31598 void set_mappedReadPermission(bool const&);
31601public:
31605 bool const& get_mappedWritePermission() const;
31606 void set_mappedWritePermission(bool const&);
31609public:
31613 bool const& get_mappedExecutePermission() const;
31617public:
31627 bool const& get_containsCode() const;
31628 void set_containsCode(bool const&);
31631public:
31649 // Non-property data members
31651private:
31652protected: // Allows local_data_pool to be initialized by subclasses. Note, destruction is problematic, freeing non-allocated ptr.
31653 // Set breakpoint in malloc_error_break to debug [Rasmussen, 2024.03.02]
31654 /* This is an optional local, writable pool for the p_data member. Normally a section will point into the pool
31655 * for its SgAsmGenericFile which is memory-mapped (read-only) from the actual file being parsed. The default
31656 * unparsing action is to write the original data back to the file. By allowing a section to allocate its own
31657 * pool for `data` we create a very easy way to get data into the unparsed file (the alternative is to derive
31658 * a new class and override the unparse() method). */
31659 unsigned char *local_data_pool;
31660
31662 // Functions
31664public:
31672
31674 static void dumpContainingSections(FILE*, const std::string &prefix, Rose::BinaryAnalysis::RelativeVirtualAddress,
31675 const SgAsmGenericSectionPtrList&);
31676
31682
31687
31689 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
31690
31692 virtual bool reallocate() { return false; }
31693
31697 virtual void unparse(std::ostream&) const;
31698
31700 void unparse(std::ostream&, const ExtentMap&) const;
31701
31703 void unparseHoles(std::ostream&) const;
31704
31710
31713
31721
31735 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, size_t bufsize, const void *buf) const;
31736 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, const std::string &str) const;
31739 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, const SgUnsignedCharList &buf) const;
31746
31751
31759 size_t readContent(Rose::BinaryAnalysis::Address abs_offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
31760
31773 Rose::BinaryAnalysis::Address size, bool strict=true);
31775 void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
31785 bool strict=true);
31786
31794
31802 std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true);
31804 bool strict=true);
31812 std::string readContentLocalString(Rose::BinaryAnalysis::Address rel_offset, bool strict=true);
31813
31819
31825 int64_t readContentLocalSleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true);
31826
31832 uint64_t readContentLocalUleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true);
31833
31841 unsigned char *writableContent(size_t nbytes);
31842
31849
31856
31860 bool isMapped() const;
31861
31866
31872
31877
31883
31889
31894
31900
31914 bool align();
31915
31916protected:
31917 virtual void destructorHelper() override;
31918
31920 // Deprecated 2023-11
31922public:
31923 Rose::BinaryAnalysis::Address get_file_alignment() const ROSE_DEPRECATED("use get_fileAlignment");
31924 void set_file_alignment(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_fileAlignment");
31925 std::string get_short_name() const ROSE_DEPRECATED("use get_shortName");
31926 void set_short_name(const std::string&) ROSE_DEPRECATED("use set_shortName");
31927 Rose::BinaryAnalysis::Address get_mapped_preferred_rva() const ROSE_DEPRECATED("use get_mappedPreferredRva");
31928 void set_mapped_preferred_rva(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedPreferredRva");
31929 Rose::BinaryAnalysis::Address get_mapped_size() const ROSE_DEPRECATED("use get_mappedSize");
31930 void set_mapped_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedSize");
31931 Rose::BinaryAnalysis::Address get_mapped_alignment() const ROSE_DEPRECATED("use get_mappedAlignment");
31932 void set_mapped_alignment(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedAlignment");
31933 bool get_mapped_rperm() const ROSE_DEPRECATED("use get_mappedReadPermission");
31934 void set_mapped_rperm(bool) ROSE_DEPRECATED("use set_mappedReadPermission");
31935 bool get_mapped_wperm() const ROSE_DEPRECATED("use get_mappedWritePermission");
31936 void set_mapped_wperm(bool) ROSE_DEPRECATED("use set_mappedWritePermission");
31937 bool get_mapped_xperm() const ROSE_DEPRECATED("use get_mappedExecutePermission");
31938 void set_mapped_xperm(bool) ROSE_DEPRECATED("use set_mappedExecutePermission");
31939 bool get_contains_code() const ROSE_DEPRECATED("use get_containsCode");
31940 void set_contains_code(bool) ROSE_DEPRECATED("use set_containsCode");
31941 Rose::BinaryAnalysis::Address get_mapped_actual_va() const ROSE_DEPRECATED("use get_mappedActualVa");
31942 void set_mapped_actual_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedActualVa");
31943 static void dump_containing_sections(FILE*, const std::string&, Rose::BinaryAnalysis::RelativeVirtualAddress,
31944 const SgAsmGenericSectionPtrList&)
31945 ROSE_DEPRECATED("use dumpContainingSections");
31946 void grab_content() ROSE_DEPRECATED("use grabContent");
31947 void unparse_holes(std::ostream&) const ROSE_DEPRECATED("use unparseHoles");
31948 SgAsmGenericHeader *is_file_header() ROSE_DEPRECATED("use isFileHeader");
31949 Rose::BinaryAnalysis::Address get_end_offset() const ROSE_DEPRECATED("use get_endOffset");
31950 Rose::BinaryAnalysis::Address write_uleb128(unsigned char*, Rose::BinaryAnalysis::Address, uint64_t) const
31951 ROSE_DEPRECATED("use writeUleb128");
31952 Rose::BinaryAnalysis::Address write_sleb128(unsigned char*, Rose::BinaryAnalysis::Address, int64_t) const
31953 ROSE_DEPRECATED("use writeSleb128");
31954 size_t read_content(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
31955 ROSE_DEPRECATED("use readContent");
31956 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, void*,
31957 Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContent");
31958 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, const Rose::BinaryAnalysis::RelativeVirtualAddress&, void*,
31959 Rose::BinaryAnalysis::Address, bool=true)
31960 ROSE_DEPRECATED("use readContent");
31961 size_t read_content_local(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
31962 ROSE_DEPRECATED("use readContentLocal");
31963 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, bool=true)
31964 ROSE_DEPRECATED("use readContentString");
31965 std::string read_content_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentString");
31966 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::RelativeVirtualAddress,
31967 bool=true)
31968 ROSE_DEPRECATED("use readContentString");
31969 std::string read_content_local_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentLocalString");
31970 SgUnsignedCharList read_content_local_ucl(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
31971 ROSE_DEPRECATED("use readContentLocalUcl");
31972 int64_t read_content_local_sleb128(Rose::BinaryAnalysis::Address*, bool=true) ROSE_DEPRECATED("use readContentLocalSleb128");
31973 uint64_t read_content_local_uleb128(Rose::BinaryAnalysis::Address*, bool=true) ROSE_DEPRECATED("use readContentLocalUleb128");
31974 unsigned char *writable_content(size_t) ROSE_DEPRECATED("use writableContent");
31975 Rose::BinaryAnalysis::AddressIntervalSet get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
31976 Rose::BinaryAnalysis::AddressIntervalSet get_unreferenced_extents() const ROSE_DEPRECATED("use get_unreferencedExtents");
31977 bool is_mapped() const ROSE_DEPRECATED("use isMapped");
31978 void clear_mapped() ROSE_DEPRECATED("use clearMapped");
31979 Rose::BinaryAnalysis::Address get_base_va() const ROSE_DEPRECATED("use get_baseVa");
31980 Rose::BinaryAnalysis::Address get_mapped_preferred_va() const ROSE_DEPRECATED("use get_mappedPreferredVa");
31981 Rose::BinaryAnalysis::Address get_va_offset(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_vaOffset");
31982 Rose::BinaryAnalysis::Address get_rva_offset(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_rvaOffset");
31983 Extent get_file_extent() const ROSE_DEPRECATED("use get_fileExtent");
31984 Extent get_mapped_preferred_extent() const ROSE_DEPRECATED("use get_mappedPreferredExtent");
31985public:
31988
31989public:
31992
31993protected:
32001#endif // SgAsmGenericSection_OTHERS
32002#ifdef DOCUMENTATION
32003};
32004#endif // DOCUMENTATION
32005
32006
32008// SgAsmCilUint8Heap -- MACHINE GENERATED; DO NOT MODIFY --
32010
32011DECLARE_LEAF_CLASS(AsmCilUint8Heap);
32012IS_SERIALIZABLE(AsmCilUint8Heap);
32013
32014#ifndef DOCUMENTATION
32015AsmCilUint8Heap.useSmallHeader(true);
32016#endif // !DOCUMENTATION
32017
32018#ifdef DOCUMENTATION
32021#endif // DOCUMENTATION
32022
32023#ifndef DOCUMENTATION
32024 AsmCilUint8Heap.setDataPrototype(
32025 "std::vector<uint8_t>", "Stream", "",
32026 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32027#endif // !DOCUMENTATION
32028
32029 DECLARE_OTHERS(AsmCilUint8Heap);
32030#if defined(SgAsmCilUint8Heap_OTHERS) || defined(DOCUMENTATION)
32031
32032 //----------------------- Boost serialization for SgAsmCilUint8Heap -----------------------
32033#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32034private:
32035 friend class boost::serialization::access;
32036
32037 template<class S>
32038 void serialize(S &s, const unsigned /*version*/) {
32039 debugSerializationBegin("SgAsmCilUint8Heap");
32040 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
32041 s & BOOST_SERIALIZATION_NVP(p_Stream);
32042 debugSerializationEnd("SgAsmCilUint8Heap");
32043 }
32044#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32045
32046public:
32047 std::vector<uint8_t> const& get_Stream() const;
32048 std::vector<uint8_t>& get_Stream();
32049public:
32050 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
32051 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
32052 void dump(std::ostream& os) const override;
32053public:
32056
32057public:
32060
32061public:
32063 SgAsmCilUint8Heap(uint32_t const& Offset,
32064 uint32_t const& Size,
32065 std::string const& Name,
32066 uint32_t const& NamePadding);
32067
32068protected:
32076#endif // SgAsmCilUint8Heap_OTHERS
32077#ifdef DOCUMENTATION
32078};
32079#endif // DOCUMENTATION
32080
32081
32083// SgAsmCilUint32Heap -- MACHINE GENERATED; DO NOT MODIFY --
32085
32086DECLARE_LEAF_CLASS(AsmCilUint32Heap);
32087IS_SERIALIZABLE(AsmCilUint32Heap);
32088
32089#ifndef DOCUMENTATION
32090AsmCilUint32Heap.useSmallHeader(true);
32091#endif // !DOCUMENTATION
32092
32093#ifdef DOCUMENTATION
32096#endif // DOCUMENTATION
32097
32098#ifndef DOCUMENTATION
32099 AsmCilUint32Heap.setDataPrototype(
32100 "std::vector<uint32_t>", "Stream", "",
32101 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32102#endif // !DOCUMENTATION
32103
32104 DECLARE_OTHERS(AsmCilUint32Heap);
32105#if defined(SgAsmCilUint32Heap_OTHERS) || defined(DOCUMENTATION)
32106
32107 //----------------------- Boost serialization for SgAsmCilUint32Heap -----------------------
32108#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32109private:
32110 friend class boost::serialization::access;
32111
32112 template<class S>
32113 void serialize(S &s, const unsigned /*version*/) {
32114 debugSerializationBegin("SgAsmCilUint32Heap");
32115 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
32116 s & BOOST_SERIALIZATION_NVP(p_Stream);
32117 debugSerializationEnd("SgAsmCilUint32Heap");
32118 }
32119#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32120
32121public:
32122 std::vector<uint32_t> const& get_Stream() const;
32123 std::vector<uint32_t>& get_Stream();
32124public:
32125 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
32126 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
32127 void dump(std::ostream& os) const override;
32128public:
32131
32132public:
32135
32136public:
32138 SgAsmCilUint32Heap(uint32_t const& Offset,
32139 uint32_t const& Size,
32140 std::string const& Name,
32141 uint32_t const& NamePadding);
32142
32143protected:
32151#endif // SgAsmCilUint32Heap_OTHERS
32152#ifdef DOCUMENTATION
32153};
32154#endif // DOCUMENTATION
32155
32156
32158// SgAsmCilTypeSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
32160
32161DECLARE_LEAF_CLASS(AsmCilTypeSpecTable);
32162IS_SERIALIZABLE(AsmCilTypeSpecTable);
32163
32164#ifndef DOCUMENTATION
32165AsmCilTypeSpecTable.useSmallHeader(true);
32166#endif // !DOCUMENTATION
32167
32168#ifdef DOCUMENTATION
32171#endif // DOCUMENTATION
32172
32173#ifndef DOCUMENTATION
32174 AsmCilTypeSpecTable.setDataPrototype(
32175 "std::vector<SgAsmCilTypeSpec*>", "elements", "",
32176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32177#endif // !DOCUMENTATION
32178
32179 DECLARE_OTHERS(AsmCilTypeSpecTable);
32180#if defined(SgAsmCilTypeSpecTable_OTHERS) || defined(DOCUMENTATION)
32181
32182 //----------------------- Boost serialization for SgAsmCilTypeSpecTable -----------------------
32183#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32184private:
32185 friend class boost::serialization::access;
32186
32187 template<class S>
32188 void serialize(S &s, const unsigned /*version*/) {
32189 debugSerializationBegin("SgAsmCilTypeSpecTable");
32190 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32191 s & BOOST_SERIALIZATION_NVP(p_elements);
32192 debugSerializationEnd("SgAsmCilTypeSpecTable");
32193 }
32194#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32195
32196public:
32197 std::vector<SgAsmCilTypeSpec*> const& get_elements() const;
32198 std::vector<SgAsmCilTypeSpec*>& get_elements();
32199public:
32201public:
32204
32205public:
32208
32209protected:
32217#endif // SgAsmCilTypeSpecTable_OTHERS
32218#ifdef DOCUMENTATION
32219};
32220#endif // DOCUMENTATION
32221
32222
32224// SgAsmCilTypeSpec -- MACHINE GENERATED; DO NOT MODIFY --
32226
32227DECLARE_LEAF_CLASS(AsmCilTypeSpec);
32228IS_SERIALIZABLE(AsmCilTypeSpec);
32229
32230#ifndef DOCUMENTATION
32231AsmCilTypeSpec.useSmallHeader(true);
32232#endif // !DOCUMENTATION
32233
32234#ifdef DOCUMENTATION
32237#endif // DOCUMENTATION
32238
32239#ifndef DOCUMENTATION
32240 AsmCilTypeSpec.setDataPrototype(
32241 "uint32_t", "Signature", "= 0",
32242 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32243#endif // !DOCUMENTATION
32244
32245 DECLARE_OTHERS(AsmCilTypeSpec);
32246#if defined(SgAsmCilTypeSpec_OTHERS) || defined(DOCUMENTATION)
32247
32248 //----------------------- Boost serialization for SgAsmCilTypeSpec -----------------------
32249#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32250private:
32251 friend class boost::serialization::access;
32252
32253 template<class S>
32254 void serialize(S &s, const unsigned /*version*/) {
32255 debugSerializationBegin("SgAsmCilTypeSpec");
32256 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32257 s & BOOST_SERIALIZATION_NVP(p_Signature);
32258 debugSerializationEnd("SgAsmCilTypeSpec");
32259 }
32260#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32261
32262public:
32268 uint32_t const& get_Signature() const;
32269 void set_Signature(uint32_t const&);
32271public:
32272 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32273 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32274 void dump(std::ostream&) const;
32275
32276 const std::uint8_t* get_Signature_blob() const;
32277public:
32280
32281public:
32284
32285protected:
32293#endif // SgAsmCilTypeSpec_OTHERS
32294#ifdef DOCUMENTATION
32295};
32296#endif // DOCUMENTATION
32297
32298
32300// SgAsmCilTypeRefTable -- MACHINE GENERATED; DO NOT MODIFY --
32302
32303DECLARE_LEAF_CLASS(AsmCilTypeRefTable);
32304IS_SERIALIZABLE(AsmCilTypeRefTable);
32305
32306#ifndef DOCUMENTATION
32307AsmCilTypeRefTable.useSmallHeader(true);
32308#endif // !DOCUMENTATION
32309
32310#ifdef DOCUMENTATION
32313#endif // DOCUMENTATION
32314
32315#ifndef DOCUMENTATION
32316 AsmCilTypeRefTable.setDataPrototype(
32317 "std::vector<SgAsmCilTypeRef*>", "elements", "",
32318 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32319#endif // !DOCUMENTATION
32320
32321 DECLARE_OTHERS(AsmCilTypeRefTable);
32322#if defined(SgAsmCilTypeRefTable_OTHERS) || defined(DOCUMENTATION)
32323
32324 //----------------------- Boost serialization for SgAsmCilTypeRefTable -----------------------
32325#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32326private:
32327 friend class boost::serialization::access;
32328
32329 template<class S>
32330 void serialize(S &s, const unsigned /*version*/) {
32331 debugSerializationBegin("SgAsmCilTypeRefTable");
32332 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32333 s & BOOST_SERIALIZATION_NVP(p_elements);
32334 debugSerializationEnd("SgAsmCilTypeRefTable");
32335 }
32336#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32337
32338public:
32339 std::vector<SgAsmCilTypeRef*> const& get_elements() const;
32340 std::vector<SgAsmCilTypeRef*>& get_elements();
32341public:
32343public:
32346
32347public:
32350
32351protected:
32359#endif // SgAsmCilTypeRefTable_OTHERS
32360#ifdef DOCUMENTATION
32361};
32362#endif // DOCUMENTATION
32363
32364
32366// SgAsmCilTypeRef -- MACHINE GENERATED; DO NOT MODIFY --
32368
32369DECLARE_LEAF_CLASS(AsmCilTypeRef);
32370IS_SERIALIZABLE(AsmCilTypeRef);
32371
32372#ifndef DOCUMENTATION
32373AsmCilTypeRef.useSmallHeader(true);
32374#endif // !DOCUMENTATION
32375
32376#ifdef DOCUMENTATION
32379#endif // DOCUMENTATION
32380
32381#ifndef DOCUMENTATION
32382 AsmCilTypeRef.setDataPrototype(
32383 "uint16_t", "ResolutionScope", "= 0",
32384 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32385#endif // !DOCUMENTATION
32386
32387#ifndef DOCUMENTATION
32388 AsmCilTypeRef.setDataPrototype(
32389 "uint32_t", "TypeName", "= 0",
32390 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32391#endif // !DOCUMENTATION
32392
32393#ifndef DOCUMENTATION
32394 AsmCilTypeRef.setDataPrototype(
32395 "uint32_t", "TypeNamespace", "= 0",
32396 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32397#endif // !DOCUMENTATION
32398
32399 DECLARE_OTHERS(AsmCilTypeRef);
32400#if defined(SgAsmCilTypeRef_OTHERS) || defined(DOCUMENTATION)
32401
32402 //----------------------- Boost serialization for SgAsmCilTypeRef -----------------------
32403#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32404private:
32405 friend class boost::serialization::access;
32406
32407 template<class S>
32408 void serialize(S &s, const unsigned /*version*/) {
32409 debugSerializationBegin("SgAsmCilTypeRef");
32410 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32411 s & BOOST_SERIALIZATION_NVP(p_ResolutionScope);
32412 s & BOOST_SERIALIZATION_NVP(p_TypeName);
32413 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
32414 debugSerializationEnd("SgAsmCilTypeRef");
32415 }
32416#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32417
32418public:
32424 uint16_t const& get_ResolutionScope() const;
32425 void set_ResolutionScope(uint16_t const&);
32428public:
32434 uint32_t const& get_TypeName() const;
32435 void set_TypeName(uint32_t const&);
32438public:
32444 uint32_t const& get_TypeNamespace() const;
32445 void set_TypeNamespace(uint32_t const&);
32447public:
32448 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32449 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32450 void dump(std::ostream&) const;
32451
32452 const SgAsmCilMetadata* get_ResolutionScope_object() const;
32453 const std::uint8_t* get_TypeName_string() const;
32454 const std::uint8_t* get_TypeNamespace_string() const;
32455public:
32458
32459public:
32462
32463protected:
32471#endif // SgAsmCilTypeRef_OTHERS
32472#ifdef DOCUMENTATION
32473};
32474#endif // DOCUMENTATION
32475
32476
32478// SgAsmCilTypeDefTable -- MACHINE GENERATED; DO NOT MODIFY --
32480
32481DECLARE_LEAF_CLASS(AsmCilTypeDefTable);
32482IS_SERIALIZABLE(AsmCilTypeDefTable);
32483
32484#ifndef DOCUMENTATION
32485AsmCilTypeDefTable.useSmallHeader(true);
32486#endif // !DOCUMENTATION
32487
32488#ifdef DOCUMENTATION
32491#endif // DOCUMENTATION
32492
32493#ifndef DOCUMENTATION
32494 AsmCilTypeDefTable.setDataPrototype(
32495 "std::vector<SgAsmCilTypeDef*>", "elements", "",
32496 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32497#endif // !DOCUMENTATION
32498
32499 DECLARE_OTHERS(AsmCilTypeDefTable);
32500#if defined(SgAsmCilTypeDefTable_OTHERS) || defined(DOCUMENTATION)
32501
32502 //----------------------- Boost serialization for SgAsmCilTypeDefTable -----------------------
32503#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32504private:
32505 friend class boost::serialization::access;
32506
32507 template<class S>
32508 void serialize(S &s, const unsigned /*version*/) {
32509 debugSerializationBegin("SgAsmCilTypeDefTable");
32510 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32511 s & BOOST_SERIALIZATION_NVP(p_elements);
32512 debugSerializationEnd("SgAsmCilTypeDefTable");
32513 }
32514#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32515
32516public:
32517 std::vector<SgAsmCilTypeDef*> const& get_elements() const;
32518 std::vector<SgAsmCilTypeDef*>& get_elements();
32519public:
32521public:
32524
32525public:
32528
32529protected:
32537#endif // SgAsmCilTypeDefTable_OTHERS
32538#ifdef DOCUMENTATION
32539};
32540#endif // DOCUMENTATION
32541
32542
32544// SgAsmCilTypeDef -- MACHINE GENERATED; DO NOT MODIFY --
32546
32547DECLARE_LEAF_CLASS(AsmCilTypeDef);
32548IS_SERIALIZABLE(AsmCilTypeDef);
32549
32550#ifndef DOCUMENTATION
32551AsmCilTypeDef.useSmallHeader(true);
32552#endif // !DOCUMENTATION
32553
32554#ifdef DOCUMENTATION
32557#endif // DOCUMENTATION
32558
32559#ifndef DOCUMENTATION
32560 AsmCilTypeDef.setDataPrototype(
32561 "uint32_t", "Flags", "= 0",
32562 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32563#endif // !DOCUMENTATION
32564
32565#ifndef DOCUMENTATION
32566 AsmCilTypeDef.setDataPrototype(
32567 "uint32_t", "TypeName", "= 0",
32568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32569#endif // !DOCUMENTATION
32570
32571#ifndef DOCUMENTATION
32572 AsmCilTypeDef.setDataPrototype(
32573 "uint32_t", "TypeNamespace", "= 0",
32574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32575#endif // !DOCUMENTATION
32576
32577#ifndef DOCUMENTATION
32578 AsmCilTypeDef.setDataPrototype(
32579 "uint32_t", "Extends", "= 0",
32580 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32581#endif // !DOCUMENTATION
32582
32583#ifndef DOCUMENTATION
32584 AsmCilTypeDef.setDataPrototype(
32585 "uint32_t", "FieldList", "= 0",
32586 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32587#endif // !DOCUMENTATION
32588
32589#ifndef DOCUMENTATION
32590 AsmCilTypeDef.setDataPrototype(
32591 "uint32_t", "MethodList", "= 0",
32592 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32593#endif // !DOCUMENTATION
32594
32595 DECLARE_OTHERS(AsmCilTypeDef);
32596#if defined(SgAsmCilTypeDef_OTHERS) || defined(DOCUMENTATION)
32597
32598 //----------------------- Boost serialization for SgAsmCilTypeDef -----------------------
32599#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32600private:
32601 friend class boost::serialization::access;
32602
32603 template<class S>
32604 void serialize(S &s, const unsigned /*version*/) {
32605 debugSerializationBegin("SgAsmCilTypeDef");
32606 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32607 s & BOOST_SERIALIZATION_NVP(p_Flags);
32608 s & BOOST_SERIALIZATION_NVP(p_TypeName);
32609 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
32610 s & BOOST_SERIALIZATION_NVP(p_Extends);
32611 s & BOOST_SERIALIZATION_NVP(p_FieldList);
32612 s & BOOST_SERIALIZATION_NVP(p_MethodList);
32613 debugSerializationEnd("SgAsmCilTypeDef");
32614 }
32615#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32616
32617public:
32623 uint32_t const& get_Flags() const;
32624 void set_Flags(uint32_t const&);
32627public:
32633 uint32_t const& get_TypeName() const;
32634 void set_TypeName(uint32_t const&);
32637public:
32643 uint32_t const& get_TypeNamespace() const;
32644 void set_TypeNamespace(uint32_t const&);
32647public:
32653 uint32_t const& get_Extends() const;
32654 void set_Extends(uint32_t const&);
32657public:
32663 uint32_t const& get_FieldList() const;
32664 void set_FieldList(uint32_t const&);
32667public:
32673 uint32_t const& get_MethodList() const;
32674 void set_MethodList(uint32_t const&);
32676public:
32677 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32678 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32679 void dump(std::ostream&) const;
32680
32681 const std::uint8_t* get_TypeName_string() const;
32682 const std::uint8_t* get_TypeNamespace_string() const;
32683 const SgAsmCilMetadata* get_Extends_object() const;
32684 const SgAsmCilMetadata* get_FieldList_object() const;
32685 const SgAsmCilMetadata* get_MethodList_object() const;
32686 const SgAsmCilMetadata* get_MethodList_object(const SgAsmCilMethodDef*) const;
32687public:
32690
32691public:
32694
32695protected:
32703#endif // SgAsmCilTypeDef_OTHERS
32704#ifdef DOCUMENTATION
32705};
32706#endif // DOCUMENTATION
32707
32708
32710// SgAsmCilStandAloneSigTable -- MACHINE GENERATED; DO NOT MODIFY --
32712
32713DECLARE_LEAF_CLASS(AsmCilStandAloneSigTable);
32714IS_SERIALIZABLE(AsmCilStandAloneSigTable);
32715
32716#ifndef DOCUMENTATION
32717AsmCilStandAloneSigTable.useSmallHeader(true);
32718#endif // !DOCUMENTATION
32719
32720#ifdef DOCUMENTATION
32723#endif // DOCUMENTATION
32724
32725#ifndef DOCUMENTATION
32726 AsmCilStandAloneSigTable.setDataPrototype(
32727 "std::vector<SgAsmCilStandAloneSig*>", "elements", "",
32728 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32729#endif // !DOCUMENTATION
32730
32731 DECLARE_OTHERS(AsmCilStandAloneSigTable);
32732#if defined(SgAsmCilStandAloneSigTable_OTHERS) || defined(DOCUMENTATION)
32733
32734 //----------------------- Boost serialization for SgAsmCilStandAloneSigTable -----------------------
32735#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32736private:
32737 friend class boost::serialization::access;
32738
32739 template<class S>
32740 void serialize(S &s, const unsigned /*version*/) {
32741 debugSerializationBegin("SgAsmCilStandAloneSigTable");
32742 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32743 s & BOOST_SERIALIZATION_NVP(p_elements);
32744 debugSerializationEnd("SgAsmCilStandAloneSigTable");
32745 }
32746#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32747
32748public:
32749 std::vector<SgAsmCilStandAloneSig*> const& get_elements() const;
32750 std::vector<SgAsmCilStandAloneSig*>& get_elements();
32751public:
32753public:
32756
32757public:
32760
32761protected:
32769#endif // SgAsmCilStandAloneSigTable_OTHERS
32770#ifdef DOCUMENTATION
32771};
32772#endif // DOCUMENTATION
32773
32774
32776// SgAsmCilStandAloneSig -- MACHINE GENERATED; DO NOT MODIFY --
32778
32779DECLARE_LEAF_CLASS(AsmCilStandAloneSig);
32780IS_SERIALIZABLE(AsmCilStandAloneSig);
32781
32782#ifndef DOCUMENTATION
32783AsmCilStandAloneSig.useSmallHeader(true);
32784#endif // !DOCUMENTATION
32785
32786#ifdef DOCUMENTATION
32789#endif // DOCUMENTATION
32790
32791#ifndef DOCUMENTATION
32792 AsmCilStandAloneSig.setDataPrototype(
32793 "uint32_t", "Signature", "= 0",
32794 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32795#endif // !DOCUMENTATION
32796
32797 DECLARE_OTHERS(AsmCilStandAloneSig);
32798#if defined(SgAsmCilStandAloneSig_OTHERS) || defined(DOCUMENTATION)
32799
32800 //----------------------- Boost serialization for SgAsmCilStandAloneSig -----------------------
32801#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32802private:
32803 friend class boost::serialization::access;
32804
32805 template<class S>
32806 void serialize(S &s, const unsigned /*version*/) {
32807 debugSerializationBegin("SgAsmCilStandAloneSig");
32808 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32809 s & BOOST_SERIALIZATION_NVP(p_Signature);
32810 debugSerializationEnd("SgAsmCilStandAloneSig");
32811 }
32812#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32813
32814public:
32820 uint32_t const& get_Signature() const;
32821 void set_Signature(uint32_t const&);
32823public:
32824 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32825 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32826 void dump(std::ostream&) const;
32827
32828 const std::uint8_t* get_Signature_blob() const;
32829public:
32832
32833public:
32836
32837protected:
32845#endif // SgAsmCilStandAloneSig_OTHERS
32846#ifdef DOCUMENTATION
32847};
32848#endif // DOCUMENTATION
32849
32850
32852// SgAsmCilPropertyTable -- MACHINE GENERATED; DO NOT MODIFY --
32854
32855DECLARE_LEAF_CLASS(AsmCilPropertyTable);
32856IS_SERIALIZABLE(AsmCilPropertyTable);
32857
32858#ifndef DOCUMENTATION
32859AsmCilPropertyTable.useSmallHeader(true);
32860#endif // !DOCUMENTATION
32861
32862#ifdef DOCUMENTATION
32865#endif // DOCUMENTATION
32866
32867#ifndef DOCUMENTATION
32868 AsmCilPropertyTable.setDataPrototype(
32869 "std::vector<SgAsmCilProperty*>", "elements", "",
32870 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32871#endif // !DOCUMENTATION
32872
32873 DECLARE_OTHERS(AsmCilPropertyTable);
32874#if defined(SgAsmCilPropertyTable_OTHERS) || defined(DOCUMENTATION)
32875
32876 //----------------------- Boost serialization for SgAsmCilPropertyTable -----------------------
32877#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32878private:
32879 friend class boost::serialization::access;
32880
32881 template<class S>
32882 void serialize(S &s, const unsigned /*version*/) {
32883 debugSerializationBegin("SgAsmCilPropertyTable");
32884 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32885 s & BOOST_SERIALIZATION_NVP(p_elements);
32886 debugSerializationEnd("SgAsmCilPropertyTable");
32887 }
32888#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32889
32890public:
32891 std::vector<SgAsmCilProperty*> const& get_elements() const;
32892 std::vector<SgAsmCilProperty*>& get_elements();
32893public:
32895public:
32898
32899public:
32902
32903protected:
32911#endif // SgAsmCilPropertyTable_OTHERS
32912#ifdef DOCUMENTATION
32913};
32914#endif // DOCUMENTATION
32915
32916
32918// SgAsmCilPropertyMapTable -- MACHINE GENERATED; DO NOT MODIFY --
32920
32921DECLARE_LEAF_CLASS(AsmCilPropertyMapTable);
32922IS_SERIALIZABLE(AsmCilPropertyMapTable);
32923
32924#ifndef DOCUMENTATION
32925AsmCilPropertyMapTable.useSmallHeader(true);
32926#endif // !DOCUMENTATION
32927
32928#ifdef DOCUMENTATION
32931#endif // DOCUMENTATION
32932
32933#ifndef DOCUMENTATION
32934 AsmCilPropertyMapTable.setDataPrototype(
32935 "std::vector<SgAsmCilPropertyMap*>", "elements", "",
32936 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32937#endif // !DOCUMENTATION
32938
32939 DECLARE_OTHERS(AsmCilPropertyMapTable);
32940#if defined(SgAsmCilPropertyMapTable_OTHERS) || defined(DOCUMENTATION)
32941
32942 //----------------------- Boost serialization for SgAsmCilPropertyMapTable -----------------------
32943#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32944private:
32945 friend class boost::serialization::access;
32946
32947 template<class S>
32948 void serialize(S &s, const unsigned /*version*/) {
32949 debugSerializationBegin("SgAsmCilPropertyMapTable");
32950 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32951 s & BOOST_SERIALIZATION_NVP(p_elements);
32952 debugSerializationEnd("SgAsmCilPropertyMapTable");
32953 }
32954#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32955
32956public:
32957 std::vector<SgAsmCilPropertyMap*> const& get_elements() const;
32958 std::vector<SgAsmCilPropertyMap*>& get_elements();
32959public:
32961public:
32964
32965public:
32968
32969protected:
32977#endif // SgAsmCilPropertyMapTable_OTHERS
32978#ifdef DOCUMENTATION
32979};
32980#endif // DOCUMENTATION
32981
32982
32984// SgAsmCilPropertyMap -- MACHINE GENERATED; DO NOT MODIFY --
32986
32987DECLARE_LEAF_CLASS(AsmCilPropertyMap);
32988IS_SERIALIZABLE(AsmCilPropertyMap);
32989
32990#ifndef DOCUMENTATION
32991AsmCilPropertyMap.useSmallHeader(true);
32992#endif // !DOCUMENTATION
32993
32994#ifdef DOCUMENTATION
32997#endif // DOCUMENTATION
32998
32999#ifndef DOCUMENTATION
33000 AsmCilPropertyMap.setDataPrototype(
33001 "uint32_t", "Parent", "= 0",
33002 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33003#endif // !DOCUMENTATION
33004
33005#ifndef DOCUMENTATION
33006 AsmCilPropertyMap.setDataPrototype(
33007 "uint32_t", "PropertyList", "= 0",
33008 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33009#endif // !DOCUMENTATION
33010
33011 DECLARE_OTHERS(AsmCilPropertyMap);
33012#if defined(SgAsmCilPropertyMap_OTHERS) || defined(DOCUMENTATION)
33013
33014 //----------------------- Boost serialization for SgAsmCilPropertyMap -----------------------
33015#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33016private:
33017 friend class boost::serialization::access;
33018
33019 template<class S>
33020 void serialize(S &s, const unsigned /*version*/) {
33021 debugSerializationBegin("SgAsmCilPropertyMap");
33022 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33023 s & BOOST_SERIALIZATION_NVP(p_Parent);
33024 s & BOOST_SERIALIZATION_NVP(p_PropertyList);
33025 debugSerializationEnd("SgAsmCilPropertyMap");
33026 }
33027#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33028
33029public:
33035 uint32_t const& get_Parent() const;
33036 void set_Parent(uint32_t const&);
33039public:
33045 uint32_t const& get_PropertyList() const;
33046 void set_PropertyList(uint32_t const&);
33048public:
33049 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33050 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33051 void dump(std::ostream&) const;
33052
33053 const SgAsmCilMetadata* get_Parent_object() const;
33054 const SgAsmCilMetadata* get_PropertyList_object() const;
33055public:
33058
33059public:
33062
33063protected:
33071#endif // SgAsmCilPropertyMap_OTHERS
33072#ifdef DOCUMENTATION
33073};
33074#endif // DOCUMENTATION
33075
33076
33078// SgAsmCilProperty -- MACHINE GENERATED; DO NOT MODIFY --
33080
33081DECLARE_LEAF_CLASS(AsmCilProperty);
33082IS_SERIALIZABLE(AsmCilProperty);
33083
33084#ifndef DOCUMENTATION
33085AsmCilProperty.useSmallHeader(true);
33086#endif // !DOCUMENTATION
33087
33088#ifdef DOCUMENTATION
33091#endif // DOCUMENTATION
33092
33093#ifndef DOCUMENTATION
33094 AsmCilProperty.setDataPrototype(
33095 "uint16_t", "Flags", "= 0",
33096 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33097#endif // !DOCUMENTATION
33098
33099#ifndef DOCUMENTATION
33100 AsmCilProperty.setDataPrototype(
33101 "uint32_t", "Name", "= 0",
33102 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33103#endif // !DOCUMENTATION
33104
33105#ifndef DOCUMENTATION
33106 AsmCilProperty.setDataPrototype(
33107 "uint32_t", "Type", "= 0",
33108 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33109#endif // !DOCUMENTATION
33110
33111 DECLARE_OTHERS(AsmCilProperty);
33112#if defined(SgAsmCilProperty_OTHERS) || defined(DOCUMENTATION)
33113
33114 //----------------------- Boost serialization for SgAsmCilProperty -----------------------
33115#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33116private:
33117 friend class boost::serialization::access;
33118
33119 template<class S>
33120 void serialize(S &s, const unsigned /*version*/) {
33121 debugSerializationBegin("SgAsmCilProperty");
33122 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33123 s & BOOST_SERIALIZATION_NVP(p_Flags);
33124 s & BOOST_SERIALIZATION_NVP(p_Name);
33125 s & BOOST_SERIALIZATION_NVP(p_Type);
33126 debugSerializationEnd("SgAsmCilProperty");
33127 }
33128#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33129
33130public:
33136 uint16_t const& get_Flags() const;
33137 void set_Flags(uint16_t const&);
33140public:
33146 uint32_t const& get_Name() const;
33147 void set_Name(uint32_t const&);
33150public:
33156 uint32_t const& get_Type() const;
33157 void set_Type(uint32_t const&);
33159public:
33160 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33161 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33162 void dump(std::ostream&) const;
33163
33164 const std::uint8_t* get_Name_string() const;
33165 const std::uint8_t* get_Type_blob() const;
33166public:
33169
33170public:
33173
33174protected:
33182#endif // SgAsmCilProperty_OTHERS
33183#ifdef DOCUMENTATION
33184};
33185#endif // DOCUMENTATION
33186
33187
33189// SgAsmCilParamTable -- MACHINE GENERATED; DO NOT MODIFY --
33191
33192DECLARE_LEAF_CLASS(AsmCilParamTable);
33193IS_SERIALIZABLE(AsmCilParamTable);
33194
33195#ifndef DOCUMENTATION
33196AsmCilParamTable.useSmallHeader(true);
33197#endif // !DOCUMENTATION
33198
33199#ifdef DOCUMENTATION
33202#endif // DOCUMENTATION
33203
33204#ifndef DOCUMENTATION
33205 AsmCilParamTable.setDataPrototype(
33206 "std::vector<SgAsmCilParam*>", "elements", "",
33207 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33208#endif // !DOCUMENTATION
33209
33210 DECLARE_OTHERS(AsmCilParamTable);
33211#if defined(SgAsmCilParamTable_OTHERS) || defined(DOCUMENTATION)
33212
33213 //----------------------- Boost serialization for SgAsmCilParamTable -----------------------
33214#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33215private:
33216 friend class boost::serialization::access;
33217
33218 template<class S>
33219 void serialize(S &s, const unsigned /*version*/) {
33220 debugSerializationBegin("SgAsmCilParamTable");
33221 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33222 s & BOOST_SERIALIZATION_NVP(p_elements);
33223 debugSerializationEnd("SgAsmCilParamTable");
33224 }
33225#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33226
33227public:
33228 std::vector<SgAsmCilParam*> const& get_elements() const;
33229 std::vector<SgAsmCilParam*>& get_elements();
33230public:
33232public:
33235
33236public:
33239
33240protected:
33248#endif // SgAsmCilParamTable_OTHERS
33249#ifdef DOCUMENTATION
33250};
33251#endif // DOCUMENTATION
33252
33253
33255// SgAsmCilParam -- MACHINE GENERATED; DO NOT MODIFY --
33257
33258DECLARE_LEAF_CLASS(AsmCilParam);
33259IS_SERIALIZABLE(AsmCilParam);
33260
33261#ifndef DOCUMENTATION
33262AsmCilParam.useSmallHeader(true);
33263#endif // !DOCUMENTATION
33264
33265#ifdef DOCUMENTATION
33268#endif // DOCUMENTATION
33269
33270#ifndef DOCUMENTATION
33271 AsmCilParam.setDataPrototype(
33272 "uint16_t", "Flags", "= 0",
33273 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33274#endif // !DOCUMENTATION
33275
33276#ifndef DOCUMENTATION
33277 AsmCilParam.setDataPrototype(
33278 "uint16_t", "Sequence", "= 0",
33279 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33280#endif // !DOCUMENTATION
33281
33282#ifndef DOCUMENTATION
33283 AsmCilParam.setDataPrototype(
33284 "uint32_t", "Name", "= 0",
33285 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33286#endif // !DOCUMENTATION
33287
33288 DECLARE_OTHERS(AsmCilParam);
33289#if defined(SgAsmCilParam_OTHERS) || defined(DOCUMENTATION)
33290
33291 //----------------------- Boost serialization for SgAsmCilParam -----------------------
33292#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33293private:
33294 friend class boost::serialization::access;
33295
33296 template<class S>
33297 void serialize(S &s, const unsigned /*version*/) {
33298 debugSerializationBegin("SgAsmCilParam");
33299 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33300 s & BOOST_SERIALIZATION_NVP(p_Flags);
33301 s & BOOST_SERIALIZATION_NVP(p_Sequence);
33302 s & BOOST_SERIALIZATION_NVP(p_Name);
33303 debugSerializationEnd("SgAsmCilParam");
33304 }
33305#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33306
33307public:
33313 uint16_t const& get_Flags() const;
33314 void set_Flags(uint16_t const&);
33317public:
33323 uint16_t const& get_Sequence() const;
33324 void set_Sequence(uint16_t const&);
33327public:
33333 uint32_t const& get_Name() const;
33334 void set_Name(uint32_t const&);
33336public:
33337 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33338 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33339 void dump(std::ostream&) const;
33340
33341 const std::uint8_t* get_Name_string() const;
33342public:
33345
33346public:
33349
33350protected:
33358#endif // SgAsmCilParam_OTHERS
33359#ifdef DOCUMENTATION
33360};
33361#endif // DOCUMENTATION
33362
33363
33365// SgAsmCilNestedClassTable -- MACHINE GENERATED; DO NOT MODIFY --
33367
33368DECLARE_LEAF_CLASS(AsmCilNestedClassTable);
33369IS_SERIALIZABLE(AsmCilNestedClassTable);
33370
33371#ifndef DOCUMENTATION
33372AsmCilNestedClassTable.useSmallHeader(true);
33373#endif // !DOCUMENTATION
33374
33375#ifdef DOCUMENTATION
33378#endif // DOCUMENTATION
33379
33380#ifndef DOCUMENTATION
33381 AsmCilNestedClassTable.setDataPrototype(
33382 "std::vector<SgAsmCilNestedClass*>", "elements", "",
33383 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33384#endif // !DOCUMENTATION
33385
33386 DECLARE_OTHERS(AsmCilNestedClassTable);
33387#if defined(SgAsmCilNestedClassTable_OTHERS) || defined(DOCUMENTATION)
33388
33389 //----------------------- Boost serialization for SgAsmCilNestedClassTable -----------------------
33390#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33391private:
33392 friend class boost::serialization::access;
33393
33394 template<class S>
33395 void serialize(S &s, const unsigned /*version*/) {
33396 debugSerializationBegin("SgAsmCilNestedClassTable");
33397 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33398 s & BOOST_SERIALIZATION_NVP(p_elements);
33399 debugSerializationEnd("SgAsmCilNestedClassTable");
33400 }
33401#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33402
33403public:
33404 std::vector<SgAsmCilNestedClass*> const& get_elements() const;
33405 std::vector<SgAsmCilNestedClass*>& get_elements();
33406public:
33408public:
33411
33412public:
33415
33416protected:
33424#endif // SgAsmCilNestedClassTable_OTHERS
33425#ifdef DOCUMENTATION
33426};
33427#endif // DOCUMENTATION
33428
33429
33431// SgAsmCilNestedClass -- MACHINE GENERATED; DO NOT MODIFY --
33433
33434DECLARE_LEAF_CLASS(AsmCilNestedClass);
33435IS_SERIALIZABLE(AsmCilNestedClass);
33436
33437#ifndef DOCUMENTATION
33438AsmCilNestedClass.useSmallHeader(true);
33439#endif // !DOCUMENTATION
33440
33441#ifdef DOCUMENTATION
33444#endif // DOCUMENTATION
33445
33446#ifndef DOCUMENTATION
33447 AsmCilNestedClass.setDataPrototype(
33448 "uint32_t", "NestedClass", "= 0",
33449 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33450#endif // !DOCUMENTATION
33451
33452#ifndef DOCUMENTATION
33453 AsmCilNestedClass.setDataPrototype(
33454 "uint32_t", "EnclosingClass", "= 0",
33455 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33456#endif // !DOCUMENTATION
33457
33458 DECLARE_OTHERS(AsmCilNestedClass);
33459#if defined(SgAsmCilNestedClass_OTHERS) || defined(DOCUMENTATION)
33460
33461 //----------------------- Boost serialization for SgAsmCilNestedClass -----------------------
33462#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33463private:
33464 friend class boost::serialization::access;
33465
33466 template<class S>
33467 void serialize(S &s, const unsigned /*version*/) {
33468 debugSerializationBegin("SgAsmCilNestedClass");
33469 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33470 s & BOOST_SERIALIZATION_NVP(p_NestedClass);
33471 s & BOOST_SERIALIZATION_NVP(p_EnclosingClass);
33472 debugSerializationEnd("SgAsmCilNestedClass");
33473 }
33474#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33475
33476public:
33482 uint32_t const& get_NestedClass() const;
33483 void set_NestedClass(uint32_t const&);
33486public:
33492 uint32_t const& get_EnclosingClass() const;
33493 void set_EnclosingClass(uint32_t const&);
33495public:
33496 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33497 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33498 void dump(std::ostream&) const;
33499
33500 const SgAsmCilMetadata* get_NestedClass_object() const;
33501 const SgAsmCilMetadata* get_EnclosingClass_object() const;
33502public:
33505
33506public:
33509
33510protected:
33518#endif // SgAsmCilNestedClass_OTHERS
33519#ifdef DOCUMENTATION
33520};
33521#endif // DOCUMENTATION
33522
33523
33525// SgAsmCilModuleTable -- MACHINE GENERATED; DO NOT MODIFY --
33527
33528DECLARE_LEAF_CLASS(AsmCilModuleTable);
33529IS_SERIALIZABLE(AsmCilModuleTable);
33530
33531#ifndef DOCUMENTATION
33532AsmCilModuleTable.useSmallHeader(true);
33533#endif // !DOCUMENTATION
33534
33535#ifdef DOCUMENTATION
33538#endif // DOCUMENTATION
33539
33540#ifndef DOCUMENTATION
33541 AsmCilModuleTable.setDataPrototype(
33542 "std::vector<SgAsmCilModule*>", "elements", "",
33543 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33544#endif // !DOCUMENTATION
33545
33546 DECLARE_OTHERS(AsmCilModuleTable);
33547#if defined(SgAsmCilModuleTable_OTHERS) || defined(DOCUMENTATION)
33548
33549 //----------------------- Boost serialization for SgAsmCilModuleTable -----------------------
33550#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33551private:
33552 friend class boost::serialization::access;
33553
33554 template<class S>
33555 void serialize(S &s, const unsigned /*version*/) {
33556 debugSerializationBegin("SgAsmCilModuleTable");
33557 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33558 s & BOOST_SERIALIZATION_NVP(p_elements);
33559 debugSerializationEnd("SgAsmCilModuleTable");
33560 }
33561#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33562
33563public:
33564 std::vector<SgAsmCilModule*> const& get_elements() const;
33565 std::vector<SgAsmCilModule*>& get_elements();
33566public:
33568public:
33571
33572public:
33575
33576protected:
33584#endif // SgAsmCilModuleTable_OTHERS
33585#ifdef DOCUMENTATION
33586};
33587#endif // DOCUMENTATION
33588
33589
33591// SgAsmCilModuleRefTable -- MACHINE GENERATED; DO NOT MODIFY --
33593
33594DECLARE_LEAF_CLASS(AsmCilModuleRefTable);
33595IS_SERIALIZABLE(AsmCilModuleRefTable);
33596
33597#ifndef DOCUMENTATION
33598AsmCilModuleRefTable.useSmallHeader(true);
33599#endif // !DOCUMENTATION
33600
33601#ifdef DOCUMENTATION
33604#endif // DOCUMENTATION
33605
33606#ifndef DOCUMENTATION
33607 AsmCilModuleRefTable.setDataPrototype(
33608 "std::vector<SgAsmCilModuleRef*>", "elements", "",
33609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33610#endif // !DOCUMENTATION
33611
33612 DECLARE_OTHERS(AsmCilModuleRefTable);
33613#if defined(SgAsmCilModuleRefTable_OTHERS) || defined(DOCUMENTATION)
33614
33615 //----------------------- Boost serialization for SgAsmCilModuleRefTable -----------------------
33616#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33617private:
33618 friend class boost::serialization::access;
33619
33620 template<class S>
33621 void serialize(S &s, const unsigned /*version*/) {
33622 debugSerializationBegin("SgAsmCilModuleRefTable");
33623 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33624 s & BOOST_SERIALIZATION_NVP(p_elements);
33625 debugSerializationEnd("SgAsmCilModuleRefTable");
33626 }
33627#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33628
33629public:
33630 std::vector<SgAsmCilModuleRef*> const& get_elements() const;
33631 std::vector<SgAsmCilModuleRef*>& get_elements();
33632public:
33634public:
33637
33638public:
33641
33642protected:
33650#endif // SgAsmCilModuleRefTable_OTHERS
33651#ifdef DOCUMENTATION
33652};
33653#endif // DOCUMENTATION
33654
33655
33657// SgAsmCilModuleRef -- MACHINE GENERATED; DO NOT MODIFY --
33659
33660DECLARE_LEAF_CLASS(AsmCilModuleRef);
33661IS_SERIALIZABLE(AsmCilModuleRef);
33662
33663#ifndef DOCUMENTATION
33664AsmCilModuleRef.useSmallHeader(true);
33665#endif // !DOCUMENTATION
33666
33667#ifdef DOCUMENTATION
33670#endif // DOCUMENTATION
33671
33672#ifndef DOCUMENTATION
33673 AsmCilModuleRef.setDataPrototype(
33674 "uint32_t", "Name", "= 0",
33675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33676#endif // !DOCUMENTATION
33677
33678 DECLARE_OTHERS(AsmCilModuleRef);
33679#if defined(SgAsmCilModuleRef_OTHERS) || defined(DOCUMENTATION)
33680
33681 //----------------------- Boost serialization for SgAsmCilModuleRef -----------------------
33682#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33683private:
33684 friend class boost::serialization::access;
33685
33686 template<class S>
33687 void serialize(S &s, const unsigned /*version*/) {
33688 debugSerializationBegin("SgAsmCilModuleRef");
33689 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33690 s & BOOST_SERIALIZATION_NVP(p_Name);
33691 debugSerializationEnd("SgAsmCilModuleRef");
33692 }
33693#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33694
33695public:
33701 uint32_t const& get_Name() const;
33702 void set_Name(uint32_t const&);
33704public:
33705 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33706 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33707 void dump(std::ostream&) const;
33708
33709 const std::uint8_t* get_Name_string() const;
33710public:
33713
33714public:
33717
33718protected:
33726#endif // SgAsmCilModuleRef_OTHERS
33727#ifdef DOCUMENTATION
33728};
33729#endif // DOCUMENTATION
33730
33731
33733// SgAsmCilModule -- MACHINE GENERATED; DO NOT MODIFY --
33735
33736DECLARE_LEAF_CLASS(AsmCilModule);
33737IS_SERIALIZABLE(AsmCilModule);
33738
33739#ifndef DOCUMENTATION
33740AsmCilModule.useSmallHeader(true);
33741#endif // !DOCUMENTATION
33742
33743#ifdef DOCUMENTATION
33746#endif // DOCUMENTATION
33747
33748#ifndef DOCUMENTATION
33749 AsmCilModule.setDataPrototype(
33750 "uint16_t", "Generation", "= 0",
33751 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33752#endif // !DOCUMENTATION
33753
33754#ifndef DOCUMENTATION
33755 AsmCilModule.setDataPrototype(
33756 "uint32_t", "Name", "= 0",
33757 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33758#endif // !DOCUMENTATION
33759
33760#ifndef DOCUMENTATION
33761 AsmCilModule.setDataPrototype(
33762 "uint32_t", "Mvid", "= 0",
33763 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33764#endif // !DOCUMENTATION
33765
33766#ifndef DOCUMENTATION
33767 AsmCilModule.setDataPrototype(
33768 "uint32_t", "Encld", "= 0",
33769 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33770#endif // !DOCUMENTATION
33771
33772#ifndef DOCUMENTATION
33773 AsmCilModule.setDataPrototype(
33774 "uint32_t", "EncBaseId", "= 0",
33775 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33776#endif // !DOCUMENTATION
33777
33778 DECLARE_OTHERS(AsmCilModule);
33779#if defined(SgAsmCilModule_OTHERS) || defined(DOCUMENTATION)
33780
33781 //----------------------- Boost serialization for SgAsmCilModule -----------------------
33782#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33783private:
33784 friend class boost::serialization::access;
33785
33786 template<class S>
33787 void serialize(S &s, const unsigned /*version*/) {
33788 debugSerializationBegin("SgAsmCilModule");
33789 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33790 s & BOOST_SERIALIZATION_NVP(p_Generation);
33791 s & BOOST_SERIALIZATION_NVP(p_Name);
33792 s & BOOST_SERIALIZATION_NVP(p_Mvid);
33793 s & BOOST_SERIALIZATION_NVP(p_Encld);
33794 s & BOOST_SERIALIZATION_NVP(p_EncBaseId);
33795 debugSerializationEnd("SgAsmCilModule");
33796 }
33797#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33798
33799public:
33805 uint16_t const& get_Generation() const;
33806 void set_Generation(uint16_t const&);
33809public:
33815 uint32_t const& get_Name() const;
33816 void set_Name(uint32_t const&);
33819public:
33825 uint32_t const& get_Mvid() const;
33826 void set_Mvid(uint32_t const&);
33829public:
33835 uint32_t const& get_Encld() const;
33836 void set_Encld(uint32_t const&);
33839public:
33845 uint32_t const& get_EncBaseId() const;
33846 void set_EncBaseId(uint32_t const&);
33848public:
33849 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33850 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33851 void dump(std::ostream&) const;
33852
33853 const std::uint8_t* get_Name_string() const;
33854 const std::uint32_t* get_Mvid_guid() const;
33855 const std::uint32_t* get_Encld_guid() const;
33856 const std::uint32_t* get_EncBaseId_guid() const;
33857public:
33860
33861public:
33864
33865protected:
33873#endif // SgAsmCilModule_OTHERS
33874#ifdef DOCUMENTATION
33875};
33876#endif // DOCUMENTATION
33877
33878
33880// SgAsmCilMethodSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
33882
33883DECLARE_LEAF_CLASS(AsmCilMethodSpecTable);
33884IS_SERIALIZABLE(AsmCilMethodSpecTable);
33885
33886#ifndef DOCUMENTATION
33887AsmCilMethodSpecTable.useSmallHeader(true);
33888#endif // !DOCUMENTATION
33889
33890#ifdef DOCUMENTATION
33893#endif // DOCUMENTATION
33894
33895#ifndef DOCUMENTATION
33896 AsmCilMethodSpecTable.setDataPrototype(
33897 "std::vector<SgAsmCilMethodSpec*>", "elements", "",
33898 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33899#endif // !DOCUMENTATION
33900
33901 DECLARE_OTHERS(AsmCilMethodSpecTable);
33902#if defined(SgAsmCilMethodSpecTable_OTHERS) || defined(DOCUMENTATION)
33903
33904 //----------------------- Boost serialization for SgAsmCilMethodSpecTable -----------------------
33905#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33906private:
33907 friend class boost::serialization::access;
33908
33909 template<class S>
33910 void serialize(S &s, const unsigned /*version*/) {
33911 debugSerializationBegin("SgAsmCilMethodSpecTable");
33912 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33913 s & BOOST_SERIALIZATION_NVP(p_elements);
33914 debugSerializationEnd("SgAsmCilMethodSpecTable");
33915 }
33916#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33917
33918public:
33919 std::vector<SgAsmCilMethodSpec*> const& get_elements() const;
33920 std::vector<SgAsmCilMethodSpec*>& get_elements();
33921public:
33923public:
33926
33927public:
33930
33931protected:
33939#endif // SgAsmCilMethodSpecTable_OTHERS
33940#ifdef DOCUMENTATION
33941};
33942#endif // DOCUMENTATION
33943
33944
33946// SgAsmCilMethodSpec -- MACHINE GENERATED; DO NOT MODIFY --
33948
33949DECLARE_LEAF_CLASS(AsmCilMethodSpec);
33950IS_SERIALIZABLE(AsmCilMethodSpec);
33951
33952#ifndef DOCUMENTATION
33953AsmCilMethodSpec.useSmallHeader(true);
33954#endif // !DOCUMENTATION
33955
33956#ifdef DOCUMENTATION
33959#endif // DOCUMENTATION
33960
33961#ifndef DOCUMENTATION
33962 AsmCilMethodSpec.setDataPrototype(
33963 "uint32_t", "Method", "= 0",
33964 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33965#endif // !DOCUMENTATION
33966
33967#ifndef DOCUMENTATION
33968 AsmCilMethodSpec.setDataPrototype(
33969 "uint32_t", "Instantiation", "= 0",
33970 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33971#endif // !DOCUMENTATION
33972
33973 DECLARE_OTHERS(AsmCilMethodSpec);
33974#if defined(SgAsmCilMethodSpec_OTHERS) || defined(DOCUMENTATION)
33975
33976 //----------------------- Boost serialization for SgAsmCilMethodSpec -----------------------
33977#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33978private:
33979 friend class boost::serialization::access;
33980
33981 template<class S>
33982 void serialize(S &s, const unsigned /*version*/) {
33983 debugSerializationBegin("SgAsmCilMethodSpec");
33984 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33985 s & BOOST_SERIALIZATION_NVP(p_Method);
33986 s & BOOST_SERIALIZATION_NVP(p_Instantiation);
33987 debugSerializationEnd("SgAsmCilMethodSpec");
33988 }
33989#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33990
33991public:
33997 uint32_t const& get_Method() const;
33998 void set_Method(uint32_t const&);
34001public:
34007 uint32_t const& get_Instantiation() const;
34008 void set_Instantiation(uint32_t const&);
34010public:
34011 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34012 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34013 void dump(std::ostream&) const;
34014
34015 const SgAsmCilMetadata* get_Method_object() const;
34016 const std::uint8_t* get_Instantiation_blob() const;
34017public:
34020
34021public:
34024
34025protected:
34033#endif // SgAsmCilMethodSpec_OTHERS
34034#ifdef DOCUMENTATION
34035};
34036#endif // DOCUMENTATION
34037
34038
34040// SgAsmCilMethodSemanticsTable -- MACHINE GENERATED; DO NOT MODIFY --
34042
34043DECLARE_LEAF_CLASS(AsmCilMethodSemanticsTable);
34044IS_SERIALIZABLE(AsmCilMethodSemanticsTable);
34045
34046#ifndef DOCUMENTATION
34047AsmCilMethodSemanticsTable.useSmallHeader(true);
34048#endif // !DOCUMENTATION
34049
34050#ifdef DOCUMENTATION
34053#endif // DOCUMENTATION
34054
34055#ifndef DOCUMENTATION
34056 AsmCilMethodSemanticsTable.setDataPrototype(
34057 "std::vector<SgAsmCilMethodSemantics*>", "elements", "",
34058 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34059#endif // !DOCUMENTATION
34060
34061 DECLARE_OTHERS(AsmCilMethodSemanticsTable);
34062#if defined(SgAsmCilMethodSemanticsTable_OTHERS) || defined(DOCUMENTATION)
34063
34064 //----------------------- Boost serialization for SgAsmCilMethodSemanticsTable -----------------------
34065#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34066private:
34067 friend class boost::serialization::access;
34068
34069 template<class S>
34070 void serialize(S &s, const unsigned /*version*/) {
34071 debugSerializationBegin("SgAsmCilMethodSemanticsTable");
34072 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34073 s & BOOST_SERIALIZATION_NVP(p_elements);
34074 debugSerializationEnd("SgAsmCilMethodSemanticsTable");
34075 }
34076#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34077
34078public:
34079 std::vector<SgAsmCilMethodSemantics*> const& get_elements() const;
34080 std::vector<SgAsmCilMethodSemantics*>& get_elements();
34081public:
34083public:
34086
34087public:
34090
34091protected:
34099#endif // SgAsmCilMethodSemanticsTable_OTHERS
34100#ifdef DOCUMENTATION
34101};
34102#endif // DOCUMENTATION
34103
34104
34106// SgAsmCilMethodSemantics -- MACHINE GENERATED; DO NOT MODIFY --
34108
34109DECLARE_LEAF_CLASS(AsmCilMethodSemantics);
34110IS_SERIALIZABLE(AsmCilMethodSemantics);
34111
34112#ifndef DOCUMENTATION
34113AsmCilMethodSemantics.useSmallHeader(true);
34114#endif // !DOCUMENTATION
34115
34116#ifdef DOCUMENTATION
34119#endif // DOCUMENTATION
34120
34121#ifndef DOCUMENTATION
34122 AsmCilMethodSemantics.setDataPrototype(
34123 "uint16_t", "Semantics", "= 0",
34124 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34125#endif // !DOCUMENTATION
34126
34127#ifndef DOCUMENTATION
34128 AsmCilMethodSemantics.setDataPrototype(
34129 "uint32_t", "Method", "= 0",
34130 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34131#endif // !DOCUMENTATION
34132
34133#ifndef DOCUMENTATION
34134 AsmCilMethodSemantics.setDataPrototype(
34135 "uint32_t", "Association", "= 0",
34136 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34137#endif // !DOCUMENTATION
34138
34139 DECLARE_OTHERS(AsmCilMethodSemantics);
34140#if defined(SgAsmCilMethodSemantics_OTHERS) || defined(DOCUMENTATION)
34141
34142 //----------------------- Boost serialization for SgAsmCilMethodSemantics -----------------------
34143#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34144private:
34145 friend class boost::serialization::access;
34146
34147 template<class S>
34148 void serialize(S &s, const unsigned /*version*/) {
34149 debugSerializationBegin("SgAsmCilMethodSemantics");
34150 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34151 s & BOOST_SERIALIZATION_NVP(p_Semantics);
34152 s & BOOST_SERIALIZATION_NVP(p_Method);
34153 s & BOOST_SERIALIZATION_NVP(p_Association);
34154 debugSerializationEnd("SgAsmCilMethodSemantics");
34155 }
34156#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34157
34158public:
34164 uint16_t const& get_Semantics() const;
34165 void set_Semantics(uint16_t const&);
34168public:
34174 uint32_t const& get_Method() const;
34175 void set_Method(uint32_t const&);
34178public:
34184 uint32_t const& get_Association() const;
34185 void set_Association(uint32_t const&);
34187public:
34188 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34189 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34190 void dump(std::ostream&) const;
34191
34192 const SgAsmCilMetadata* get_Method_object() const;
34193 const SgAsmCilMetadata* get_Association_object() const;
34194public:
34197
34198public:
34201
34202protected:
34210#endif // SgAsmCilMethodSemantics_OTHERS
34211#ifdef DOCUMENTATION
34212};
34213#endif // DOCUMENTATION
34214
34215
34217// SgAsmCilMethodImplTable -- MACHINE GENERATED; DO NOT MODIFY --
34219
34220DECLARE_LEAF_CLASS(AsmCilMethodImplTable);
34221IS_SERIALIZABLE(AsmCilMethodImplTable);
34222
34223#ifndef DOCUMENTATION
34224AsmCilMethodImplTable.useSmallHeader(true);
34225#endif // !DOCUMENTATION
34226
34227#ifdef DOCUMENTATION
34230#endif // DOCUMENTATION
34231
34232#ifndef DOCUMENTATION
34233 AsmCilMethodImplTable.setDataPrototype(
34234 "std::vector<SgAsmCilMethodImpl*>", "elements", "",
34235 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34236#endif // !DOCUMENTATION
34237
34238 DECLARE_OTHERS(AsmCilMethodImplTable);
34239#if defined(SgAsmCilMethodImplTable_OTHERS) || defined(DOCUMENTATION)
34240
34241 //----------------------- Boost serialization for SgAsmCilMethodImplTable -----------------------
34242#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34243private:
34244 friend class boost::serialization::access;
34245
34246 template<class S>
34247 void serialize(S &s, const unsigned /*version*/) {
34248 debugSerializationBegin("SgAsmCilMethodImplTable");
34249 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34250 s & BOOST_SERIALIZATION_NVP(p_elements);
34251 debugSerializationEnd("SgAsmCilMethodImplTable");
34252 }
34253#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34254
34255public:
34256 std::vector<SgAsmCilMethodImpl*> const& get_elements() const;
34257 std::vector<SgAsmCilMethodImpl*>& get_elements();
34258public:
34260public:
34263
34264public:
34267
34268protected:
34276#endif // SgAsmCilMethodImplTable_OTHERS
34277#ifdef DOCUMENTATION
34278};
34279#endif // DOCUMENTATION
34280
34281
34283// SgAsmCilMethodImpl -- MACHINE GENERATED; DO NOT MODIFY --
34285
34286DECLARE_LEAF_CLASS(AsmCilMethodImpl);
34287IS_SERIALIZABLE(AsmCilMethodImpl);
34288
34289#ifndef DOCUMENTATION
34290AsmCilMethodImpl.useSmallHeader(true);
34291#endif // !DOCUMENTATION
34292
34293#ifdef DOCUMENTATION
34296#endif // DOCUMENTATION
34297
34298#ifndef DOCUMENTATION
34299 AsmCilMethodImpl.setDataPrototype(
34300 "uint32_t", "Class", "= 0",
34301 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34302#endif // !DOCUMENTATION
34303
34304#ifndef DOCUMENTATION
34305 AsmCilMethodImpl.setDataPrototype(
34306 "uint32_t", "MethodBody", "= 0",
34307 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34308#endif // !DOCUMENTATION
34309
34310#ifndef DOCUMENTATION
34311 AsmCilMethodImpl.setDataPrototype(
34312 "uint32_t", "MethodDeclaration", "= 0",
34313 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34314#endif // !DOCUMENTATION
34315
34316 DECLARE_OTHERS(AsmCilMethodImpl);
34317#if defined(SgAsmCilMethodImpl_OTHERS) || defined(DOCUMENTATION)
34318
34319 //----------------------- Boost serialization for SgAsmCilMethodImpl -----------------------
34320#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34321private:
34322 friend class boost::serialization::access;
34323
34324 template<class S>
34325 void serialize(S &s, const unsigned /*version*/) {
34326 debugSerializationBegin("SgAsmCilMethodImpl");
34327 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34328 s & BOOST_SERIALIZATION_NVP(p_Class);
34329 s & BOOST_SERIALIZATION_NVP(p_MethodBody);
34330 s & BOOST_SERIALIZATION_NVP(p_MethodDeclaration);
34331 debugSerializationEnd("SgAsmCilMethodImpl");
34332 }
34333#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34334
34335public:
34341 uint32_t const& get_Class() const;
34342 void set_Class(uint32_t const&);
34345public:
34351 uint32_t const& get_MethodBody() const;
34352 void set_MethodBody(uint32_t const&);
34355public:
34361 uint32_t const& get_MethodDeclaration() const;
34362 void set_MethodDeclaration(uint32_t const&);
34364public:
34365 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34366 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34367 void dump(std::ostream&) const;
34368
34369 const SgAsmCilMetadata* get_Class_object() const;
34370 const SgAsmCilMetadata* get_MethodBody_object() const;
34371 const SgAsmCilMetadata* get_MethodDeclaration_object() const;
34372public:
34375
34376public:
34379
34380protected:
34388#endif // SgAsmCilMethodImpl_OTHERS
34389#ifdef DOCUMENTATION
34390};
34391#endif // DOCUMENTATION
34392
34393
34395// SgAsmCilMethodDefTable -- MACHINE GENERATED; DO NOT MODIFY --
34397
34398DECLARE_LEAF_CLASS(AsmCilMethodDefTable);
34399IS_SERIALIZABLE(AsmCilMethodDefTable);
34400
34401#ifndef DOCUMENTATION
34402AsmCilMethodDefTable.useSmallHeader(true);
34403#endif // !DOCUMENTATION
34404
34405#ifdef DOCUMENTATION
34408#endif // DOCUMENTATION
34409
34410#ifndef DOCUMENTATION
34411 AsmCilMethodDefTable.setDataPrototype(
34412 "std::vector<SgAsmCilMethodDef*>", "elements", "",
34413 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34414#endif // !DOCUMENTATION
34415
34416 DECLARE_OTHERS(AsmCilMethodDefTable);
34417#if defined(SgAsmCilMethodDefTable_OTHERS) || defined(DOCUMENTATION)
34418
34419 //----------------------- Boost serialization for SgAsmCilMethodDefTable -----------------------
34420#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34421private:
34422 friend class boost::serialization::access;
34423
34424 template<class S>
34425 void serialize(S &s, const unsigned /*version*/) {
34426 debugSerializationBegin("SgAsmCilMethodDefTable");
34427 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34428 s & BOOST_SERIALIZATION_NVP(p_elements);
34429 debugSerializationEnd("SgAsmCilMethodDefTable");
34430 }
34431#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34432
34433public:
34434 std::vector<SgAsmCilMethodDef*> const& get_elements() const;
34435 std::vector<SgAsmCilMethodDef*>& get_elements();
34436public:
34438public:
34441
34442public:
34445
34446protected:
34454#endif // SgAsmCilMethodDefTable_OTHERS
34455#ifdef DOCUMENTATION
34456};
34457#endif // DOCUMENTATION
34458
34459
34461// SgAsmCilMethodDef -- MACHINE GENERATED; DO NOT MODIFY --
34463
34464DECLARE_LEAF_CLASS(AsmCilMethodDef);
34465IS_SERIALIZABLE(AsmCilMethodDef);
34466
34467#ifndef DOCUMENTATION
34468AsmCilMethodDef.useSmallHeader(true);
34469#endif // !DOCUMENTATION
34470
34471#ifdef DOCUMENTATION
34474#endif // DOCUMENTATION
34475
34476#ifndef DOCUMENTATION
34477 AsmCilMethodDef.setDataPrototype(
34478 "uint32_t", "RVA", "= 0",
34479 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34480#endif // !DOCUMENTATION
34481
34482#ifndef DOCUMENTATION
34483 AsmCilMethodDef.setDataPrototype(
34484 "uint16_t", "ImplFlags", "= 0",
34485 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34486#endif // !DOCUMENTATION
34487
34488#ifndef DOCUMENTATION
34489 AsmCilMethodDef.setDataPrototype(
34490 "uint16_t", "Flags", "= 0",
34491 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34492#endif // !DOCUMENTATION
34493
34494#ifndef DOCUMENTATION
34495 AsmCilMethodDef.setDataPrototype(
34496 "uint32_t", "Name", "= 0",
34497 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34498#endif // !DOCUMENTATION
34499
34500#ifndef DOCUMENTATION
34501 AsmCilMethodDef.setDataPrototype(
34502 "uint32_t", "Signature", "= 0",
34503 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34504#endif // !DOCUMENTATION
34505
34506#ifndef DOCUMENTATION
34507 AsmCilMethodDef.setDataPrototype(
34508 "uint32_t", "ParamList", "= 0",
34509 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34510#endif // !DOCUMENTATION
34511
34512#ifndef DOCUMENTATION
34513 AsmCilMethodDef.setDataPrototype(
34514 "SgAsmBlock*", "body", "= 0",
34515 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34516#endif // !DOCUMENTATION
34517
34518#ifndef DOCUMENTATION
34519 AsmCilMethodDef.setDataPrototype(
34520 "bool", "initLocals", "= 0",
34521 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34522#endif // !DOCUMENTATION
34523
34524#ifndef DOCUMENTATION
34525 AsmCilMethodDef.setDataPrototype(
34526 "uint32_t", "stackSize", "= 0",
34527 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34528#endif // !DOCUMENTATION
34529
34530#ifndef DOCUMENTATION
34531 AsmCilMethodDef.setDataPrototype(
34532 "bool", "hasMoreSections", "= 0",
34533 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34534#endif // !DOCUMENTATION
34535
34536#ifndef DOCUMENTATION
34537 AsmCilMethodDef.setDataPrototype(
34538 "uint32_t", "localVarSigTok", "= 0",
34539 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34540#endif // !DOCUMENTATION
34541
34542#ifndef DOCUMENTATION
34543 AsmCilMethodDef.setDataPrototype(
34544 "std::vector<SgAsmCilMethodData*>", "methodData", "",
34545 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34546#endif // !DOCUMENTATION
34547
34548 DECLARE_OTHERS(AsmCilMethodDef);
34549#if defined(SgAsmCilMethodDef_OTHERS) || defined(DOCUMENTATION)
34550
34551 //----------------------- Boost serialization for SgAsmCilMethodDef -----------------------
34552#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34553private:
34554 friend class boost::serialization::access;
34555
34556 template<class S>
34557 void serialize(S &s, const unsigned /*version*/) {
34558 debugSerializationBegin("SgAsmCilMethodDef");
34559 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34560 s & BOOST_SERIALIZATION_NVP(p_RVA);
34561 s & BOOST_SERIALIZATION_NVP(p_ImplFlags);
34562 s & BOOST_SERIALIZATION_NVP(p_Flags);
34563 s & BOOST_SERIALIZATION_NVP(p_Name);
34564 s & BOOST_SERIALIZATION_NVP(p_Signature);
34565 s & BOOST_SERIALIZATION_NVP(p_ParamList);
34566 s & BOOST_SERIALIZATION_NVP(p_body);
34567 s & BOOST_SERIALIZATION_NVP(p_initLocals);
34568 s & BOOST_SERIALIZATION_NVP(p_stackSize);
34569 s & BOOST_SERIALIZATION_NVP(p_hasMoreSections);
34570 s & BOOST_SERIALIZATION_NVP(p_localVarSigTok);
34571 s & BOOST_SERIALIZATION_NVP(p_methodData);
34572 debugSerializationEnd("SgAsmCilMethodDef");
34573 }
34574#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34575
34576public:
34582 uint32_t const& get_RVA() const;
34583 void set_RVA(uint32_t const&);
34586public:
34592 uint16_t const& get_ImplFlags() const;
34593 void set_ImplFlags(uint16_t const&);
34596public:
34602 uint16_t const& get_Flags() const;
34603 void set_Flags(uint16_t const&);
34606public:
34612 uint32_t const& get_Name() const;
34613 void set_Name(uint32_t const&);
34616public:
34622 uint32_t const& get_Signature() const;
34623 void set_Signature(uint32_t const&);
34626public:
34632 uint32_t const& get_ParamList() const;
34633 void set_ParamList(uint32_t const&);
34636public:
34642 SgAsmBlock* const& get_body() const;
34643 void set_body(SgAsmBlock* const&);
34646public:
34652 bool const& get_initLocals() const;
34653 void set_initLocals(bool const&);
34656public:
34662 uint32_t const& get_stackSize() const;
34663 void set_stackSize(uint32_t const&);
34666public:
34672 bool const& get_hasMoreSections() const;
34673 void set_hasMoreSections(bool const&);
34675 //
34676 // additional fields
34677public:
34684 uint32_t const& get_localVarSigTok() const;
34685 void set_localVarSigTok(uint32_t const&);
34688public:
34694 std::vector<SgAsmCilMethodData*> const& get_methodData() const;
34695 std::vector<SgAsmCilMethodData*>& get_methodData();
34697public:
34698 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34699 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34700 void dump(std::ostream&) const;
34701
34702 const std::uint8_t* get_Name_string() const;
34703 const std::uint8_t* get_Signature_blob() const;
34704 const SgAsmCilMetadata* get_ParamList_object() const;
34705public:
34708
34709public:
34712
34713protected:
34721#endif // SgAsmCilMethodDef_OTHERS
34722#ifdef DOCUMENTATION
34723};
34724#endif // DOCUMENTATION
34725
34726
34728// SgAsmCilMethodData -- MACHINE GENERATED; DO NOT MODIFY --
34730
34731DECLARE_LEAF_CLASS(AsmCilMethodData);
34732IS_SERIALIZABLE(AsmCilMethodData);
34733
34734#ifndef DOCUMENTATION
34735AsmCilMethodData.useSmallHeader(true);
34736#endif // !DOCUMENTATION
34737
34738DECLARE_HEADERS(AsmCilMethodData);
34739#if defined(SgAsmCilMethodData_HEADERS) || defined(DOCUMENTATION)
34740#include <vector>
34741#endif // SgAsmCilMethodData_HEADERS
34742
34743#ifdef DOCUMENTATION
34749#endif // DOCUMENTATION
34750
34751#ifndef DOCUMENTATION
34752 AsmCilMethodData.setDataPrototype(
34753 "uint64_t", "kind", "= 0",
34754 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34755#endif // !DOCUMENTATION
34756
34757#ifndef DOCUMENTATION
34758 AsmCilMethodData.setDataPrototype(
34759 "std::uint32_t", "dataSize", "= 0",
34760 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34761#endif // !DOCUMENTATION
34762
34763#ifndef DOCUMENTATION
34764 AsmCilMethodData.setDataPrototype(
34765 "std::vector<SgAsmCilExceptionData*>", "clauses", "",
34766 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34767#endif // !DOCUMENTATION
34768
34769 DECLARE_OTHERS(AsmCilMethodData);
34770#if defined(SgAsmCilMethodData_OTHERS) || defined(DOCUMENTATION)
34771
34772 //----------------------- Boost serialization for SgAsmCilMethodData -----------------------
34773#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34774private:
34775 friend class boost::serialization::access;
34776
34777 template<class S>
34778 void serialize(S &s, const unsigned /*version*/) {
34779 debugSerializationBegin("SgAsmCilMethodData");
34780 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
34781 s & BOOST_SERIALIZATION_NVP(p_kind);
34782 s & BOOST_SERIALIZATION_NVP(p_dataSize);
34783 s & BOOST_SERIALIZATION_NVP(p_clauses);
34784 debugSerializationEnd("SgAsmCilMethodData");
34785 }
34786#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34787public:
34788 enum
34789 {
34790 CorILMethod_Sect_EHTable = 0x01,
34791 CorILMethod_Sect_OptILTable = 0x02,
34792 CorILMethod_Sect_FatFormat = 0x40,
34793 CorILMethod_Sect_MoreSects = 0x80,
34794 };
34795
34796private:
34797public:
34798 uint64_t const& get_kind() const;
34799 void set_kind(uint64_t const&);
34800
34801public:
34802 std::uint32_t const& get_dataSize() const;
34803 void set_dataSize(std::uint32_t const&);
34804
34805public:
34806 std::vector<SgAsmCilExceptionData*> const& get_Clauses() const;
34807 std::vector<SgAsmCilExceptionData*>& get_Clauses();
34808public:
34809 bool isEHTable() const
34810 {
34811 return (p_kind & CorILMethod_Sect_EHTable) == CorILMethod_Sect_EHTable;
34812 }
34813
34814 bool isOptILTable() const
34815 {
34816 const bool res = (p_kind & CorILMethod_Sect_OptILTable) == CorILMethod_Sect_OptILTable;
34817
34818 ASSERT_require(!res);
34819 return res;
34820 }
34821
34822 bool usesFatFormat() const
34823 {
34824 return (p_kind & CorILMethod_Sect_FatFormat) == CorILMethod_Sect_FatFormat;
34825 }
34826
34827 bool hasMoreSections() const
34828 {
34829 return (p_kind & CorILMethod_Sect_MoreSects) == CorILMethod_Sect_MoreSects;
34830 }
34831public:
34834
34835public:
34838
34839protected:
34847#endif // SgAsmCilMethodData_OTHERS
34848#ifdef DOCUMENTATION
34849};
34850#endif // DOCUMENTATION
34851
34852
34854// SgAsmCilMetadataRoot -- MACHINE GENERATED; DO NOT MODIFY --
34856
34857DECLARE_LEAF_CLASS(AsmCilMetadataRoot);
34858IS_SERIALIZABLE(AsmCilMetadataRoot);
34859
34860#ifndef DOCUMENTATION
34861AsmCilMetadataRoot.useSmallHeader(true);
34862#endif // !DOCUMENTATION
34863
34864#ifdef DOCUMENTATION
34867#endif // DOCUMENTATION
34868
34869#ifndef DOCUMENTATION
34870 AsmCilMetadataRoot.setDataPrototype(
34871 "uint32_t", "Signature", "= 0",
34872 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34873#endif // !DOCUMENTATION
34874
34875#ifndef DOCUMENTATION
34876 AsmCilMetadataRoot.setDataPrototype(
34877 "uint16_t", "MajorVersion", "= 0",
34878 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34879#endif // !DOCUMENTATION
34880
34881#ifndef DOCUMENTATION
34882 AsmCilMetadataRoot.setDataPrototype(
34883 "uint16_t", "MinorVersion", "= 0",
34884 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34885#endif // !DOCUMENTATION
34886
34887#ifndef DOCUMENTATION
34888 AsmCilMetadataRoot.setDataPrototype(
34889 "uint32_t", "Reserved0", "= 0",
34890 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34891#endif // !DOCUMENTATION
34892
34893#ifndef DOCUMENTATION
34894 AsmCilMetadataRoot.setDataPrototype(
34895 "uint32_t", "Length", "= 0",
34896 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34897#endif // !DOCUMENTATION
34898
34899#ifndef DOCUMENTATION
34900 AsmCilMetadataRoot.setDataPrototype(
34901 "std::string", "Version", "",
34902 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34903#endif // !DOCUMENTATION
34904
34905#ifndef DOCUMENTATION
34906 AsmCilMetadataRoot.setDataPrototype(
34907 "uint32_t", "VersionPadding", "= 0",
34908 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34909#endif // !DOCUMENTATION
34910
34911#ifndef DOCUMENTATION
34912 AsmCilMetadataRoot.setDataPrototype(
34913 "uint16_t", "Flags", "= 0",
34914 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34915#endif // !DOCUMENTATION
34916
34917#ifndef DOCUMENTATION
34918 AsmCilMetadataRoot.setDataPrototype(
34919 "uint16_t", "NumberOfStreams", "= 0",
34920 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34921#endif // !DOCUMENTATION
34922
34923#ifndef DOCUMENTATION
34924 AsmCilMetadataRoot.setDataPrototype(
34925 "std::vector<SgAsmCilDataStream*>", "Streams", "",
34926 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34927#endif // !DOCUMENTATION
34928
34929 DECLARE_OTHERS(AsmCilMetadataRoot);
34930#if defined(SgAsmCilMetadataRoot_OTHERS) || defined(DOCUMENTATION)
34931
34932 //----------------------- Boost serialization for SgAsmCilMetadataRoot -----------------------
34933#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34934private:
34935 friend class boost::serialization::access;
34936
34937 template<class S>
34938 void serialize(S &s, const unsigned /*version*/) {
34939 debugSerializationBegin("SgAsmCilMetadataRoot");
34940 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
34941 s & BOOST_SERIALIZATION_NVP(p_Signature);
34942 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
34943 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
34944 s & BOOST_SERIALIZATION_NVP(p_Reserved0);
34945 s & BOOST_SERIALIZATION_NVP(p_Length);
34946 s & BOOST_SERIALIZATION_NVP(p_Version);
34947 s & BOOST_SERIALIZATION_NVP(p_VersionPadding);
34948 s & BOOST_SERIALIZATION_NVP(p_Flags);
34949 s & BOOST_SERIALIZATION_NVP(p_NumberOfStreams);
34950 s & BOOST_SERIALIZATION_NVP(p_Streams);
34951 debugSerializationEnd("SgAsmCilMetadataRoot");
34952 }
34953#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34954
34955public:
34959 uint32_t const& get_Signature() const;
34960 void set_Signature(uint32_t const&);
34963public:
34967 uint16_t const& get_MajorVersion() const;
34968 void set_MajorVersion(uint16_t const&);
34971public:
34975 uint16_t const& get_MinorVersion() const;
34976 void set_MinorVersion(uint16_t const&);
34979public:
34983 uint32_t const& get_Reserved0() const;
34984 void set_Reserved0(uint32_t const&);
34987public:
34991 uint32_t const& get_Length() const;
34992 void set_Length(uint32_t const&);
34995public:
34999 std::string const& get_Version() const;
35000 void set_Version(std::string const&);
35003public:
35007 uint32_t const& get_VersionPadding() const;
35008 void set_VersionPadding(uint32_t const&);
35011public:
35015 uint16_t const& get_Flags() const;
35016 void set_Flags(uint16_t const&);
35019public:
35023 uint16_t const& get_NumberOfStreams() const;
35024 void set_NumberOfStreams(uint16_t const&);
35026 // FIXME[Robb Matzke 2023-03-22]: these were implemented elsewhere, but could be auto generated
35027public:
35031 std::vector<SgAsmCilDataStream*> const& get_Streams() const;
35032 std::vector<SgAsmCilDataStream*>& get_Streams();
35034 //const std::vector<SgAsmCilDataStream*>& get_Streams() const;
35035 //std::vector<SgAsmCilDataStream*>& get_Streams();
35036private:
35039 mutable int8_t idxStringHeap = -1;
35040 mutable int8_t idxBlobHeap = -1;
35041 mutable int8_t idxUsHeap = -1;
35042 mutable int8_t idxGuidHeap = -1;
35043 mutable int8_t idxMetadataHeap = -1;
35046public:
35049 static constexpr uint32_t MAGIC_SIGNATURE = 0x424A5342;
35050
35054 void parse();
35055
35061 void parse(const std::vector<uint8_t>& buf, size_t index);
35062
35064 void unparse(std::ostream& f) const;
35065
35067 void unparse(std::vector<uint8_t>&, std::size_t) const;
35068
35070 void dump(std::ostream& os) const;
35071
35081public:
35084
35085public:
35088
35089protected:
35097#endif // SgAsmCilMetadataRoot_OTHERS
35098#ifdef DOCUMENTATION
35099};
35100#endif // DOCUMENTATION
35101
35102
35104// SgAsmCilMetadataHeap -- MACHINE GENERATED; DO NOT MODIFY --
35106
35107DECLARE_LEAF_CLASS(AsmCilMetadataHeap);
35108IS_SERIALIZABLE(AsmCilMetadataHeap);
35109
35110#ifndef DOCUMENTATION
35111AsmCilMetadataHeap.useSmallHeader(true);
35112#endif // !DOCUMENTATION
35113
35114DECLARE_HEADERS(AsmCilMetadataHeap);
35115#if defined(SgAsmCilMetadataHeap_HEADERS) || defined(DOCUMENTATION)
35116#ifdef ROSE_SgAsmCilMetadataHeap_IMPL
35117#include <SgAsmCilAssemblyTable.h>
35118#include <SgAsmCilAssemblyOSTable.h>
35119#include <SgAsmCilAssemblyProcessorTable.h>
35120#include <SgAsmCilAssemblyRefTable.h>
35121#include <SgAsmCilAssemblyRefOSTable.h>
35122#include <SgAsmCilAssemblyRefProcessorTable.h>
35123#include <SgAsmCilClassLayoutTable.h>
35124#include <SgAsmCilConstantTable.h>
35125#include <SgAsmCilCustomAttributeTable.h>
35126#include <SgAsmCilDeclSecurityTable.h>
35127#include <SgAsmCilEventTable.h>
35128#include <SgAsmCilEventMapTable.h>
35129#include <SgAsmCilExportedTypeTable.h>
35130#include <SgAsmCilFieldTable.h>
35131#include <SgAsmCilFieldLayoutTable.h>
35132#include <SgAsmCilFieldMarshalTable.h>
35133#include <SgAsmCilFieldRVATable.h>
35134#include <SgAsmCilFileTable.h>
35135#include <SgAsmCilGenericParamTable.h>
35136#include <SgAsmCilGenericParamConstraintTable.h>
35137#include <SgAsmCilImplMapTable.h>
35138#include <SgAsmCilInterfaceImplTable.h>
35139#include <SgAsmCilManifestResourceTable.h>
35140#include <SgAsmCilMemberRefTable.h>
35141#include <SgAsmCilMethodDefTable.h>
35142#include <SgAsmCilMethodImplTable.h>
35143#include <SgAsmCilMethodSemanticsTable.h>
35144#include <SgAsmCilMethodSpecTable.h>
35145#include <SgAsmCilModuleTable.h>
35146#include <SgAsmCilModuleRefTable.h>
35147#include <SgAsmCilNestedClassTable.h>
35148#include <SgAsmCilParamTable.h>
35149#include <SgAsmCilPropertyTable.h>
35150#include <SgAsmCilPropertyMapTable.h>
35151#include <SgAsmCilStandAloneSigTable.h>
35152#include <SgAsmCilTypeDefTable.h>
35153#include <SgAsmCilTypeRefTable.h>
35154#include <SgAsmCilTypeSpecTable.h>
35155#endif
35156#endif // SgAsmCilMetadataHeap_HEADERS
35157
35158#ifdef DOCUMENTATION
35161#endif // DOCUMENTATION
35162
35163#ifndef DOCUMENTATION
35164 AsmCilMetadataHeap.setDataPrototype(
35165 "uint32_t", "ReservedAlwaysZero", "= 0",
35166 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35167#endif // !DOCUMENTATION
35168
35169#ifndef DOCUMENTATION
35170 AsmCilMetadataHeap.setDataPrototype(
35171 "uint8_t", "MajorVersion", "= 0",
35172 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35173#endif // !DOCUMENTATION
35174
35175#ifndef DOCUMENTATION
35176 AsmCilMetadataHeap.setDataPrototype(
35177 "uint8_t", "MinorVersion", "= 0",
35178 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35179#endif // !DOCUMENTATION
35180
35181#ifndef DOCUMENTATION
35182 AsmCilMetadataHeap.setDataPrototype(
35183 "uint8_t", "HeapSizes", "= 0",
35184 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35185#endif // !DOCUMENTATION
35186
35187#ifndef DOCUMENTATION
35188 AsmCilMetadataHeap.setDataPrototype(
35189 "uint8_t", "ReservedAlwaysOne", "= 0",
35190 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35191#endif // !DOCUMENTATION
35192
35193#ifndef DOCUMENTATION
35194 AsmCilMetadataHeap.setDataPrototype(
35195 "uint64_t", "Valid", "= 0",
35196 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35197#endif // !DOCUMENTATION
35198
35199#ifndef DOCUMENTATION
35200 AsmCilMetadataHeap.setDataPrototype(
35201 "uint64_t", "Sorted", "= 0",
35202 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35203#endif // !DOCUMENTATION
35204
35205#ifndef DOCUMENTATION
35206 AsmCilMetadataHeap.setDataPrototype(
35207 "std::vector<uint32_t>", "NumberOfRows", "",
35208 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35209#endif // !DOCUMENTATION
35210
35211#ifndef DOCUMENTATION
35212 AsmCilMetadataHeap.setDataPrototype(
35213 "uint64_t", "DataSizeFlags", "= 0",
35214 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35215#endif // !DOCUMENTATION
35216
35217#ifndef DOCUMENTATION
35218 AsmCilMetadataHeap.setDataPrototype(
35219 "SgAsmCilAssemblyTable*", "AssemblyTable", "",
35220 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35221#endif // !DOCUMENTATION
35222
35223#ifndef DOCUMENTATION
35224 AsmCilMetadataHeap.setDataPrototype(
35225 "SgAsmCilAssemblyOSTable*", "AssemblyOSTable", "",
35226 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35227#endif // !DOCUMENTATION
35228
35229#ifndef DOCUMENTATION
35230 AsmCilMetadataHeap.setDataPrototype(
35231 "SgAsmCilAssemblyProcessorTable*", "AssemblyProcessorTable", "",
35232 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35233#endif // !DOCUMENTATION
35234
35235#ifndef DOCUMENTATION
35236 AsmCilMetadataHeap.setDataPrototype(
35237 "SgAsmCilAssemblyRefTable*", "AssemblyRefTable", "",
35238 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35239#endif // !DOCUMENTATION
35240
35241#ifndef DOCUMENTATION
35242 AsmCilMetadataHeap.setDataPrototype(
35243 "SgAsmCilAssemblyRefOSTable*", "AssemblyRefOSTable", "",
35244 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35245#endif // !DOCUMENTATION
35246
35247#ifndef DOCUMENTATION
35248 AsmCilMetadataHeap.setDataPrototype(
35249 "SgAsmCilAssemblyRefProcessorTable*", "AssemblyRefProcessorTable", "",
35250 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35251#endif // !DOCUMENTATION
35252
35253#ifndef DOCUMENTATION
35254 AsmCilMetadataHeap.setDataPrototype(
35255 "SgAsmCilClassLayoutTable*", "ClassLayoutTable", "",
35256 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35257#endif // !DOCUMENTATION
35258
35259#ifndef DOCUMENTATION
35260 AsmCilMetadataHeap.setDataPrototype(
35261 "SgAsmCilConstantTable*", "ConstantTable", "",
35262 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35263#endif // !DOCUMENTATION
35264
35265#ifndef DOCUMENTATION
35266 AsmCilMetadataHeap.setDataPrototype(
35267 "SgAsmCilCustomAttributeTable*", "CustomAttributeTable", "",
35268 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35269#endif // !DOCUMENTATION
35270
35271#ifndef DOCUMENTATION
35272 AsmCilMetadataHeap.setDataPrototype(
35273 "SgAsmCilDeclSecurityTable*", "DeclSecurityTable", "",
35274 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35275#endif // !DOCUMENTATION
35276
35277#ifndef DOCUMENTATION
35278 AsmCilMetadataHeap.setDataPrototype(
35279 "SgAsmCilEventTable*", "EventTable", "",
35280 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35281#endif // !DOCUMENTATION
35282
35283#ifndef DOCUMENTATION
35284 AsmCilMetadataHeap.setDataPrototype(
35285 "SgAsmCilEventMapTable*", "EventMapTable", "",
35286 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35287#endif // !DOCUMENTATION
35288
35289#ifndef DOCUMENTATION
35290 AsmCilMetadataHeap.setDataPrototype(
35291 "SgAsmCilExportedTypeTable*", "ExportedTypeTable", "",
35292 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35293#endif // !DOCUMENTATION
35294
35295#ifndef DOCUMENTATION
35296 AsmCilMetadataHeap.setDataPrototype(
35297 "SgAsmCilFieldTable*", "FieldTable", "",
35298 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35299#endif // !DOCUMENTATION
35300
35301#ifndef DOCUMENTATION
35302 AsmCilMetadataHeap.setDataPrototype(
35303 "SgAsmCilFieldLayoutTable*", "FieldLayoutTable", "",
35304 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35305#endif // !DOCUMENTATION
35306
35307#ifndef DOCUMENTATION
35308 AsmCilMetadataHeap.setDataPrototype(
35309 "SgAsmCilFieldMarshalTable*", "FieldMarshalTable", "",
35310 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35311#endif // !DOCUMENTATION
35312
35313#ifndef DOCUMENTATION
35314 AsmCilMetadataHeap.setDataPrototype(
35315 "SgAsmCilFieldRVATable*", "FieldRVATable", "",
35316 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35317#endif // !DOCUMENTATION
35318
35319#ifndef DOCUMENTATION
35320 AsmCilMetadataHeap.setDataPrototype(
35321 "SgAsmCilFileTable*", "FileTable", "",
35322 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35323#endif // !DOCUMENTATION
35324
35325#ifndef DOCUMENTATION
35326 AsmCilMetadataHeap.setDataPrototype(
35327 "SgAsmCilGenericParamTable*", "GenericParamTable", "",
35328 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35329#endif // !DOCUMENTATION
35330
35331#ifndef DOCUMENTATION
35332 AsmCilMetadataHeap.setDataPrototype(
35333 "SgAsmCilGenericParamConstraintTable*", "GenericParamConstraintTable", "",
35334 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35335#endif // !DOCUMENTATION
35336
35337#ifndef DOCUMENTATION
35338 AsmCilMetadataHeap.setDataPrototype(
35339 "SgAsmCilImplMapTable*", "ImplMapTable", "",
35340 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35341#endif // !DOCUMENTATION
35342
35343#ifndef DOCUMENTATION
35344 AsmCilMetadataHeap.setDataPrototype(
35345 "SgAsmCilInterfaceImplTable*", "InterfaceImplTable", "",
35346 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35347#endif // !DOCUMENTATION
35348
35349#ifndef DOCUMENTATION
35350 AsmCilMetadataHeap.setDataPrototype(
35351 "SgAsmCilManifestResourceTable*", "ManifestResourceTable", "",
35352 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35353#endif // !DOCUMENTATION
35354
35355#ifndef DOCUMENTATION
35356 AsmCilMetadataHeap.setDataPrototype(
35357 "SgAsmCilMemberRefTable*", "MemberRefTable", "",
35358 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35359#endif // !DOCUMENTATION
35360
35361#ifndef DOCUMENTATION
35362 AsmCilMetadataHeap.setDataPrototype(
35363 "SgAsmCilMethodDefTable*", "MethodDefTable", "",
35364 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35365#endif // !DOCUMENTATION
35366
35367#ifndef DOCUMENTATION
35368 AsmCilMetadataHeap.setDataPrototype(
35369 "SgAsmCilMethodImplTable*", "MethodImplTable", "",
35370 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35371#endif // !DOCUMENTATION
35372
35373#ifndef DOCUMENTATION
35374 AsmCilMetadataHeap.setDataPrototype(
35375 "SgAsmCilMethodSemanticsTable*", "MethodSemanticsTable", "",
35376 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35377#endif // !DOCUMENTATION
35378
35379#ifndef DOCUMENTATION
35380 AsmCilMetadataHeap.setDataPrototype(
35381 "SgAsmCilMethodSpecTable*", "MethodSpecTable", "",
35382 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35383#endif // !DOCUMENTATION
35384
35385#ifndef DOCUMENTATION
35386 AsmCilMetadataHeap.setDataPrototype(
35387 "SgAsmCilModuleTable*", "ModuleTable", "",
35388 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35389#endif // !DOCUMENTATION
35390
35391#ifndef DOCUMENTATION
35392 AsmCilMetadataHeap.setDataPrototype(
35393 "SgAsmCilModuleRefTable*", "ModuleRefTable", "",
35394 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35395#endif // !DOCUMENTATION
35396
35397#ifndef DOCUMENTATION
35398 AsmCilMetadataHeap.setDataPrototype(
35399 "SgAsmCilNestedClassTable*", "NestedClassTable", "",
35400 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35401#endif // !DOCUMENTATION
35402
35403#ifndef DOCUMENTATION
35404 AsmCilMetadataHeap.setDataPrototype(
35405 "SgAsmCilParamTable*", "ParamTable", "",
35406 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35407#endif // !DOCUMENTATION
35408
35409#ifndef DOCUMENTATION
35410 AsmCilMetadataHeap.setDataPrototype(
35411 "SgAsmCilPropertyTable*", "PropertyTable", "",
35412 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35413#endif // !DOCUMENTATION
35414
35415#ifndef DOCUMENTATION
35416 AsmCilMetadataHeap.setDataPrototype(
35417 "SgAsmCilPropertyMapTable*", "PropertyMapTable", "",
35418 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35419#endif // !DOCUMENTATION
35420
35421#ifndef DOCUMENTATION
35422 AsmCilMetadataHeap.setDataPrototype(
35423 "SgAsmCilStandAloneSigTable*", "StandAloneSigTable", "",
35424 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35425#endif // !DOCUMENTATION
35426
35427#ifndef DOCUMENTATION
35428 AsmCilMetadataHeap.setDataPrototype(
35429 "SgAsmCilTypeDefTable*", "TypeDefTable", "",
35430 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35431#endif // !DOCUMENTATION
35432
35433#ifndef DOCUMENTATION
35434 AsmCilMetadataHeap.setDataPrototype(
35435 "SgAsmCilTypeRefTable*", "TypeRefTable", "",
35436 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35437#endif // !DOCUMENTATION
35438
35439#ifndef DOCUMENTATION
35440 AsmCilMetadataHeap.setDataPrototype(
35441 "SgAsmCilTypeSpecTable*", "TypeSpecTable", "",
35442 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35443#endif // !DOCUMENTATION
35444
35445 DECLARE_OTHERS(AsmCilMetadataHeap);
35446#if defined(SgAsmCilMetadataHeap_OTHERS) || defined(DOCUMENTATION)
35447
35448 //----------------------- Boost serialization for SgAsmCilMetadataHeap -----------------------
35449#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35450private:
35451 friend class boost::serialization::access;
35452
35453 template<class S>
35454 void serialize(S &s, const unsigned /*version*/) {
35455 debugSerializationBegin("SgAsmCilMetadataHeap");
35456 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
35457 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysZero);
35458 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
35459 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
35460 s & BOOST_SERIALIZATION_NVP(p_HeapSizes);
35461 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysOne);
35462 s & BOOST_SERIALIZATION_NVP(p_Valid);
35463 s & BOOST_SERIALIZATION_NVP(p_Sorted);
35464 s & BOOST_SERIALIZATION_NVP(p_NumberOfRows);
35465 s & BOOST_SERIALIZATION_NVP(p_DataSizeFlags);
35466 s & BOOST_SERIALIZATION_NVP(p_AssemblyTable);
35467 s & BOOST_SERIALIZATION_NVP(p_AssemblyOSTable);
35468 s & BOOST_SERIALIZATION_NVP(p_AssemblyProcessorTable);
35469 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefTable);
35470 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefOSTable);
35471 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefProcessorTable);
35472 s & BOOST_SERIALIZATION_NVP(p_ClassLayoutTable);
35473 s & BOOST_SERIALIZATION_NVP(p_ConstantTable);
35474 s & BOOST_SERIALIZATION_NVP(p_CustomAttributeTable);
35475 s & BOOST_SERIALIZATION_NVP(p_DeclSecurityTable);
35476 s & BOOST_SERIALIZATION_NVP(p_EventTable);
35477 s & BOOST_SERIALIZATION_NVP(p_EventMapTable);
35478 s & BOOST_SERIALIZATION_NVP(p_ExportedTypeTable);
35479 s & BOOST_SERIALIZATION_NVP(p_FieldTable);
35480 s & BOOST_SERIALIZATION_NVP(p_FieldLayoutTable);
35481 s & BOOST_SERIALIZATION_NVP(p_FieldMarshalTable);
35482 s & BOOST_SERIALIZATION_NVP(p_FieldRVATable);
35483 s & BOOST_SERIALIZATION_NVP(p_FileTable);
35484 s & BOOST_SERIALIZATION_NVP(p_GenericParamTable);
35485 s & BOOST_SERIALIZATION_NVP(p_GenericParamConstraintTable);
35486 s & BOOST_SERIALIZATION_NVP(p_ImplMapTable);
35487 s & BOOST_SERIALIZATION_NVP(p_InterfaceImplTable);
35488 s & BOOST_SERIALIZATION_NVP(p_ManifestResourceTable);
35489 s & BOOST_SERIALIZATION_NVP(p_MemberRefTable);
35490 s & BOOST_SERIALIZATION_NVP(p_MethodDefTable);
35491 s & BOOST_SERIALIZATION_NVP(p_MethodImplTable);
35492 s & BOOST_SERIALIZATION_NVP(p_MethodSemanticsTable);
35493 s & BOOST_SERIALIZATION_NVP(p_MethodSpecTable);
35494 s & BOOST_SERIALIZATION_NVP(p_ModuleTable);
35495 s & BOOST_SERIALIZATION_NVP(p_ModuleRefTable);
35496 s & BOOST_SERIALIZATION_NVP(p_NestedClassTable);
35497 s & BOOST_SERIALIZATION_NVP(p_ParamTable);
35498 s & BOOST_SERIALIZATION_NVP(p_PropertyTable);
35499 s & BOOST_SERIALIZATION_NVP(p_PropertyMapTable);
35500 s & BOOST_SERIALIZATION_NVP(p_StandAloneSigTable);
35501 s & BOOST_SERIALIZATION_NVP(p_TypeDefTable);
35502 s & BOOST_SERIALIZATION_NVP(p_TypeRefTable);
35503 s & BOOST_SERIALIZATION_NVP(p_TypeSpecTable);
35504 debugSerializationEnd("SgAsmCilMetadataHeap");
35505 }
35506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35507
35508public:
35512 uint32_t const& get_ReservedAlwaysZero() const;
35513 void set_ReservedAlwaysZero(uint32_t const&);
35516public:
35520 uint8_t const& get_MajorVersion() const;
35521 void set_MajorVersion(uint8_t const&);
35524public:
35528 uint8_t const& get_MinorVersion() const;
35529 void set_MinorVersion(uint8_t const&);
35532public:
35536 uint8_t const& get_HeapSizes() const;
35537 void set_HeapSizes(uint8_t const&);
35540public:
35544 uint8_t const& get_ReservedAlwaysOne() const;
35545 void set_ReservedAlwaysOne(uint8_t const&);
35548public:
35552 uint64_t const& get_Valid() const;
35553 void set_Valid(uint64_t const&);
35556public:
35560 uint64_t const& get_Sorted() const;
35561 void set_Sorted(uint64_t const&);
35564public:
35568 std::vector<uint32_t> const& get_NumberOfRows() const;
35569 void set_NumberOfRows(std::vector<uint32_t> const&);
35572public:
35576 uint64_t const& get_DataSizeFlags() const;
35577 void set_DataSizeFlags(uint64_t const&);
35580public:
35588public:
35596public:
35604public:
35612public:
35620public:
35628public:
35636public:
35644public:
35652public:
35660public:
35668public:
35676public:
35684public:
35692public:
35700public:
35708public:
35716public:
35724public:
35732public:
35740public:
35748public:
35756public:
35764public:
35772public:
35780public:
35788public:
35796public:
35804public:
35812public:
35820public:
35828public:
35836public:
35844public:
35852public:
35860public:
35868public:
35876public:
35883public:
35886 {
35887 // heaps
35888 e_ref_string_heap = 1 << 0,
35889 e_ref_guid_heap = 1 << 1,
35890 e_ref_blob_heap = 1 << 2,
35891 // single-table references
35892 e_ref_assembly_ref = 1 << 3,
35893 e_ref_type_def = 1 << 4,
35894 e_ref_event = 1 << 5,
35895 e_ref_field = 1 << 6,
35896 e_ref_generic_param = 1 << 7,
35897 e_ref_module_ref = 1 << 8,
35898 e_ref_method_def = 1 << 9,
35899 e_ref_param = 1 << 10,
35900 e_ref_property = 1 << 11,
35901 // multi-table references
35902 e_ref_has_constant = 1 << 12,
35903 e_ref_has_custom_attribute = 1 << 13,
35904 e_ref_has_decl_security = 1 << 14,
35905 e_ref_has_field_marshall = 1 << 15,
35906 e_ref_has_semantics = 1 << 16,
35907 e_ref_method_def_or_ref = 1 << 17,
35908 e_ref_type_def_or_ref = 1 << 18,
35909 e_ref_implementation = 1 << 19,
35910 e_ref_member_forwarded = 1 << 20,
35911 e_ref_member_ref_parent = 1 << 21,
35912 e_ref_type_or_method_def = 1 << 22,
35913 e_ref_custom_attribute_type = 1 << 23,
35914 e_ref_resolution_scope = 1 << 24,
35915 e_ref_last = 1 << 25,
35916 };
35917
35918 enum TableKind : std::uint8_t
35919 {
35920
35921 e_Assembly = 0x20,
35922 e_AssemblyOS = 0x22,
35923 e_AssemblyProcessor = 0x21,
35924 e_AssemblyRef = 0x23,
35925 e_AssemblyRefOS = 0x25,
35926 e_AssemblyRefProcessor = 0x24,
35927 e_ClassLayout = 0x0F,
35928 e_Constant = 0x0B,
35929 e_CustomAttribute = 0x0C,
35930 e_DeclSecurity = 0x0E,
35931 e_Event = 0x14,
35932 e_EventMap = 0x12,
35933 e_ExportedType = 0x27,
35934 e_Field = 0x04,
35935 e_FieldLayout = 0x10,
35936 e_FieldMarshal = 0x0D,
35937 e_FieldRVA = 0x1D,
35938 e_File = 0x26,
35939 e_GenericParam = 0x2A,
35940 e_GenericParamConstraint = 0x2C,
35941 e_ImplMap = 0x1C,
35942 e_InterfaceImpl = 0x09,
35943 e_ManifestResource = 0x28,
35944 e_MemberRef = 0x0A,
35945 e_MethodDef = 0x06,
35946 e_MethodImpl = 0x19,
35947 e_MethodSemantics = 0x18,
35948 e_MethodSpec = 0x2B,
35949 e_Module = 0x00,
35950 e_ModuleRef = 0x1A,
35951 e_NestedClass = 0x29,
35952 e_Param = 0x08,
35953 e_Property = 0x17,
35954 e_PropertyMap = 0x15,
35955 e_StandAloneSig = 0x11,
35956 e_TypeDef = 0x02,
35957 e_TypeRef = 0x01,
35958 e_TypeSpec = 0x1B,
35959 e_Unknown_table_kind = 0xFF
35960 };
35961
35963 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
35964
35966 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
35967
35969 void dump(std::ostream& os) const override;
35970
35974 SgAsmCilMetadata* get_MetadataNode(std::uint32_t idx, TableKind tblcode) const;
35975
35980 SgAsmCilMetadata* get_CodedMetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
35981
35986 SgAsmCilMetadata* get_MetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
35987public:
35990
35991public:
35994
35995public:
35997 SgAsmCilMetadataHeap(uint32_t const& Offset,
35998 uint32_t const& Size,
35999 std::string const& Name,
36000 uint32_t const& NamePadding);
36001
36002protected:
36010#endif // SgAsmCilMetadataHeap_OTHERS
36011#ifdef DOCUMENTATION
36012};
36013#endif // DOCUMENTATION
36014
36015
36017// SgAsmCilMemberRefTable -- MACHINE GENERATED; DO NOT MODIFY --
36019
36020DECLARE_LEAF_CLASS(AsmCilMemberRefTable);
36021IS_SERIALIZABLE(AsmCilMemberRefTable);
36022
36023#ifndef DOCUMENTATION
36024AsmCilMemberRefTable.useSmallHeader(true);
36025#endif // !DOCUMENTATION
36026
36027#ifdef DOCUMENTATION
36030#endif // DOCUMENTATION
36031
36032#ifndef DOCUMENTATION
36033 AsmCilMemberRefTable.setDataPrototype(
36034 "std::vector<SgAsmCilMemberRef*>", "elements", "",
36035 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36036#endif // !DOCUMENTATION
36037
36038 DECLARE_OTHERS(AsmCilMemberRefTable);
36039#if defined(SgAsmCilMemberRefTable_OTHERS) || defined(DOCUMENTATION)
36040
36041 //----------------------- Boost serialization for SgAsmCilMemberRefTable -----------------------
36042#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36043private:
36044 friend class boost::serialization::access;
36045
36046 template<class S>
36047 void serialize(S &s, const unsigned /*version*/) {
36048 debugSerializationBegin("SgAsmCilMemberRefTable");
36049 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36050 s & BOOST_SERIALIZATION_NVP(p_elements);
36051 debugSerializationEnd("SgAsmCilMemberRefTable");
36052 }
36053#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36054
36055public:
36056 std::vector<SgAsmCilMemberRef*> const& get_elements() const;
36057 std::vector<SgAsmCilMemberRef*>& get_elements();
36058public:
36060public:
36063
36064public:
36067
36068protected:
36076#endif // SgAsmCilMemberRefTable_OTHERS
36077#ifdef DOCUMENTATION
36078};
36079#endif // DOCUMENTATION
36080
36081
36083// SgAsmCilMemberRef -- MACHINE GENERATED; DO NOT MODIFY --
36085
36086DECLARE_LEAF_CLASS(AsmCilMemberRef);
36087IS_SERIALIZABLE(AsmCilMemberRef);
36088
36089#ifndef DOCUMENTATION
36090AsmCilMemberRef.useSmallHeader(true);
36091#endif // !DOCUMENTATION
36092
36093#ifdef DOCUMENTATION
36096#endif // DOCUMENTATION
36097
36098#ifndef DOCUMENTATION
36099 AsmCilMemberRef.setDataPrototype(
36100 "uint32_t", "Class", "= 0",
36101 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36102#endif // !DOCUMENTATION
36103
36104#ifndef DOCUMENTATION
36105 AsmCilMemberRef.setDataPrototype(
36106 "uint32_t", "Name", "= 0",
36107 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36108#endif // !DOCUMENTATION
36109
36110#ifndef DOCUMENTATION
36111 AsmCilMemberRef.setDataPrototype(
36112 "uint32_t", "Signature", "= 0",
36113 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36114#endif // !DOCUMENTATION
36115
36116 DECLARE_OTHERS(AsmCilMemberRef);
36117#if defined(SgAsmCilMemberRef_OTHERS) || defined(DOCUMENTATION)
36118
36119 //----------------------- Boost serialization for SgAsmCilMemberRef -----------------------
36120#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36121private:
36122 friend class boost::serialization::access;
36123
36124 template<class S>
36125 void serialize(S &s, const unsigned /*version*/) {
36126 debugSerializationBegin("SgAsmCilMemberRef");
36127 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36128 s & BOOST_SERIALIZATION_NVP(p_Class);
36129 s & BOOST_SERIALIZATION_NVP(p_Name);
36130 s & BOOST_SERIALIZATION_NVP(p_Signature);
36131 debugSerializationEnd("SgAsmCilMemberRef");
36132 }
36133#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36134
36135public:
36141 uint32_t const& get_Class() const;
36142 void set_Class(uint32_t const&);
36145public:
36151 uint32_t const& get_Name() const;
36152 void set_Name(uint32_t const&);
36155public:
36161 uint32_t const& get_Signature() const;
36162 void set_Signature(uint32_t const&);
36164public:
36165 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36166 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36167 void dump(std::ostream&) const;
36168
36169 const SgAsmCilMetadata* get_Class_object() const;
36170 const std::uint8_t* get_Name_string() const;
36171 const std::uint8_t* get_Signature_blob() const;
36172public:
36175
36176public:
36179
36180protected:
36188#endif // SgAsmCilMemberRef_OTHERS
36189#ifdef DOCUMENTATION
36190};
36191#endif // DOCUMENTATION
36192
36193
36195// SgAsmCilManifestResourceTable -- MACHINE GENERATED; DO NOT MODIFY --
36197
36198DECLARE_LEAF_CLASS(AsmCilManifestResourceTable);
36199IS_SERIALIZABLE(AsmCilManifestResourceTable);
36200
36201#ifndef DOCUMENTATION
36202AsmCilManifestResourceTable.useSmallHeader(true);
36203#endif // !DOCUMENTATION
36204
36205#ifdef DOCUMENTATION
36208#endif // DOCUMENTATION
36209
36210#ifndef DOCUMENTATION
36211 AsmCilManifestResourceTable.setDataPrototype(
36212 "std::vector<SgAsmCilManifestResource*>", "elements", "",
36213 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36214#endif // !DOCUMENTATION
36215
36216 DECLARE_OTHERS(AsmCilManifestResourceTable);
36217#if defined(SgAsmCilManifestResourceTable_OTHERS) || defined(DOCUMENTATION)
36218
36219 //----------------------- Boost serialization for SgAsmCilManifestResourceTable -----------------------
36220#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36221private:
36222 friend class boost::serialization::access;
36223
36224 template<class S>
36225 void serialize(S &s, const unsigned /*version*/) {
36226 debugSerializationBegin("SgAsmCilManifestResourceTable");
36227 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36228 s & BOOST_SERIALIZATION_NVP(p_elements);
36229 debugSerializationEnd("SgAsmCilManifestResourceTable");
36230 }
36231#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36232
36233public:
36234 std::vector<SgAsmCilManifestResource*> const& get_elements() const;
36235 std::vector<SgAsmCilManifestResource*>& get_elements();
36236public:
36238public:
36241
36242public:
36245
36246protected:
36254#endif // SgAsmCilManifestResourceTable_OTHERS
36255#ifdef DOCUMENTATION
36256};
36257#endif // DOCUMENTATION
36258
36259
36261// SgAsmCilManifestResource -- MACHINE GENERATED; DO NOT MODIFY --
36263
36264DECLARE_LEAF_CLASS(AsmCilManifestResource);
36265IS_SERIALIZABLE(AsmCilManifestResource);
36266
36267#ifndef DOCUMENTATION
36268AsmCilManifestResource.useSmallHeader(true);
36269#endif // !DOCUMENTATION
36270
36271#ifdef DOCUMENTATION
36274#endif // DOCUMENTATION
36275
36276#ifndef DOCUMENTATION
36277 AsmCilManifestResource.setDataPrototype(
36278 "uint32_t", "Offset", "= 0",
36279 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36280#endif // !DOCUMENTATION
36281
36282#ifndef DOCUMENTATION
36283 AsmCilManifestResource.setDataPrototype(
36284 "uint32_t", "Flags", "= 0",
36285 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36286#endif // !DOCUMENTATION
36287
36288#ifndef DOCUMENTATION
36289 AsmCilManifestResource.setDataPrototype(
36290 "uint32_t", "Name", "= 0",
36291 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36292#endif // !DOCUMENTATION
36293
36294#ifndef DOCUMENTATION
36295 AsmCilManifestResource.setDataPrototype(
36296 "uint32_t", "Implementation", "= 0",
36297 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36298#endif // !DOCUMENTATION
36299
36300 DECLARE_OTHERS(AsmCilManifestResource);
36301#if defined(SgAsmCilManifestResource_OTHERS) || defined(DOCUMENTATION)
36302
36303 //----------------------- Boost serialization for SgAsmCilManifestResource -----------------------
36304#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36305private:
36306 friend class boost::serialization::access;
36307
36308 template<class S>
36309 void serialize(S &s, const unsigned /*version*/) {
36310 debugSerializationBegin("SgAsmCilManifestResource");
36311 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36312 s & BOOST_SERIALIZATION_NVP(p_Offset);
36313 s & BOOST_SERIALIZATION_NVP(p_Flags);
36314 s & BOOST_SERIALIZATION_NVP(p_Name);
36315 s & BOOST_SERIALIZATION_NVP(p_Implementation);
36316 debugSerializationEnd("SgAsmCilManifestResource");
36317 }
36318#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36319
36320public:
36326 uint32_t const& get_Offset() const;
36327 void set_Offset(uint32_t const&);
36330public:
36336 uint32_t const& get_Flags() const;
36337 void set_Flags(uint32_t const&);
36340public:
36346 uint32_t const& get_Name() const;
36347 void set_Name(uint32_t const&);
36350public:
36356 uint32_t const& get_Implementation() const;
36357 void set_Implementation(uint32_t const&);
36359public:
36360 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36361 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36362 void dump(std::ostream&) const;
36363
36364 const std::uint8_t* get_Name_string() const;
36365 const SgAsmCilMetadata* get_Implementation_object() const;
36366public:
36369
36370public:
36373
36374protected:
36382#endif // SgAsmCilManifestResource_OTHERS
36383#ifdef DOCUMENTATION
36384};
36385#endif // DOCUMENTATION
36386
36387
36389// SgAsmCilInterfaceImplTable -- MACHINE GENERATED; DO NOT MODIFY --
36391
36392DECLARE_LEAF_CLASS(AsmCilInterfaceImplTable);
36393IS_SERIALIZABLE(AsmCilInterfaceImplTable);
36394
36395#ifndef DOCUMENTATION
36396AsmCilInterfaceImplTable.useSmallHeader(true);
36397#endif // !DOCUMENTATION
36398
36399#ifdef DOCUMENTATION
36402#endif // DOCUMENTATION
36403
36404#ifndef DOCUMENTATION
36405 AsmCilInterfaceImplTable.setDataPrototype(
36406 "std::vector<SgAsmCilInterfaceImpl*>", "elements", "",
36407 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36408#endif // !DOCUMENTATION
36409
36410 DECLARE_OTHERS(AsmCilInterfaceImplTable);
36411#if defined(SgAsmCilInterfaceImplTable_OTHERS) || defined(DOCUMENTATION)
36412
36413 //----------------------- Boost serialization for SgAsmCilInterfaceImplTable -----------------------
36414#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36415private:
36416 friend class boost::serialization::access;
36417
36418 template<class S>
36419 void serialize(S &s, const unsigned /*version*/) {
36420 debugSerializationBegin("SgAsmCilInterfaceImplTable");
36421 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36422 s & BOOST_SERIALIZATION_NVP(p_elements);
36423 debugSerializationEnd("SgAsmCilInterfaceImplTable");
36424 }
36425#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36426
36427public:
36428 std::vector<SgAsmCilInterfaceImpl*> const& get_elements() const;
36429 std::vector<SgAsmCilInterfaceImpl*>& get_elements();
36430public:
36432public:
36435
36436public:
36439
36440protected:
36448#endif // SgAsmCilInterfaceImplTable_OTHERS
36449#ifdef DOCUMENTATION
36450};
36451#endif // DOCUMENTATION
36452
36453
36455// SgAsmCilInterfaceImpl -- MACHINE GENERATED; DO NOT MODIFY --
36457
36458DECLARE_LEAF_CLASS(AsmCilInterfaceImpl);
36459IS_SERIALIZABLE(AsmCilInterfaceImpl);
36460
36461#ifndef DOCUMENTATION
36462AsmCilInterfaceImpl.useSmallHeader(true);
36463#endif // !DOCUMENTATION
36464
36465#ifdef DOCUMENTATION
36468#endif // DOCUMENTATION
36469
36470#ifndef DOCUMENTATION
36471 AsmCilInterfaceImpl.setDataPrototype(
36472 "uint32_t", "Class", "= 0",
36473 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36474#endif // !DOCUMENTATION
36475
36476#ifndef DOCUMENTATION
36477 AsmCilInterfaceImpl.setDataPrototype(
36478 "uint32_t", "Interface", "= 0",
36479 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36480#endif // !DOCUMENTATION
36481
36482 DECLARE_OTHERS(AsmCilInterfaceImpl);
36483#if defined(SgAsmCilInterfaceImpl_OTHERS) || defined(DOCUMENTATION)
36484
36485 //----------------------- Boost serialization for SgAsmCilInterfaceImpl -----------------------
36486#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36487private:
36488 friend class boost::serialization::access;
36489
36490 template<class S>
36491 void serialize(S &s, const unsigned /*version*/) {
36492 debugSerializationBegin("SgAsmCilInterfaceImpl");
36493 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36494 s & BOOST_SERIALIZATION_NVP(p_Class);
36495 s & BOOST_SERIALIZATION_NVP(p_Interface);
36496 debugSerializationEnd("SgAsmCilInterfaceImpl");
36497 }
36498#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36499
36500public:
36506 uint32_t const& get_Class() const;
36507 void set_Class(uint32_t const&);
36510public:
36516 uint32_t const& get_Interface() const;
36517 void set_Interface(uint32_t const&);
36519public:
36520 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36521 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36522 void dump(std::ostream&) const;
36523
36524 const SgAsmCilMetadata* get_Class_object() const;
36525 const SgAsmCilMetadata* get_Interface_object() const;
36526public:
36529
36530public:
36533
36534protected:
36542#endif // SgAsmCilInterfaceImpl_OTHERS
36543#ifdef DOCUMENTATION
36544};
36545#endif // DOCUMENTATION
36546
36547
36549// SgAsmCilInstruction -- MACHINE GENERATED; DO NOT MODIFY --
36551
36552DECLARE_LEAF_CLASS(AsmCilInstruction);
36553IS_SERIALIZABLE(AsmCilInstruction);
36554
36555#ifndef DOCUMENTATION
36556AsmCilInstruction.useSmallHeader(true);
36557#endif // !DOCUMENTATION
36558
36559DECLARE_HEADERS(AsmCilInstruction);
36560#if defined(SgAsmCilInstruction_HEADERS) || defined(DOCUMENTATION)
36561#include <Rose/BinaryAnalysis/InstructionEnumsCil.h>
36562#endif // SgAsmCilInstruction_HEADERS
36563
36564#ifdef DOCUMENTATION
36566#endif // DOCUMENTATION
36567
36568#ifndef DOCUMENTATION
36569 AsmCilInstruction.setDataPrototype(
36570 "Rose::BinaryAnalysis::CilInstructionKind", "kind", "= Rose::BinaryAnalysis::Cil_unknown_instruction",
36571 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36572#endif // !DOCUMENTATION
36573
36574 DECLARE_OTHERS(AsmCilInstruction);
36575#if defined(SgAsmCilInstruction_OTHERS) || defined(DOCUMENTATION)
36576
36577 //----------------------- Boost serialization for SgAsmCilInstruction -----------------------
36578#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36579private:
36580 friend class boost::serialization::access;
36581
36582 template<class S>
36583 void serialize(S &s, const unsigned /*version*/) {
36584 debugSerializationBegin("SgAsmCilInstruction");
36585 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
36586 s & BOOST_SERIALIZATION_NVP(p_kind);
36587 debugSerializationEnd("SgAsmCilInstruction");
36588 }
36589#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36590public:
36591public:
36598 Rose::BinaryAnalysis::CilInstructionKind const& get_kind() const;
36599 void set_kind(Rose::BinaryAnalysis::CilInstructionKind const&);
36601public:
36602 // Overrides are documented in the base classa
36603 virtual unsigned get_anyKind() const override;
36604public:
36607
36608public:
36611
36612public:
36615 uint8_t const& architectureId,
36616 Rose::BinaryAnalysis::CilInstructionKind const& kind);
36617
36618protected:
36626#endif // SgAsmCilInstruction_OTHERS
36627#ifdef DOCUMENTATION
36628};
36629#endif // DOCUMENTATION
36630
36631
36633// SgAsmCilImplMapTable -- MACHINE GENERATED; DO NOT MODIFY --
36635
36636DECLARE_LEAF_CLASS(AsmCilImplMapTable);
36637IS_SERIALIZABLE(AsmCilImplMapTable);
36638
36639#ifndef DOCUMENTATION
36640AsmCilImplMapTable.useSmallHeader(true);
36641#endif // !DOCUMENTATION
36642
36643#ifdef DOCUMENTATION
36646#endif // DOCUMENTATION
36647
36648#ifndef DOCUMENTATION
36649 AsmCilImplMapTable.setDataPrototype(
36650 "std::vector<SgAsmCilImplMap*>", "elements", "",
36651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36652#endif // !DOCUMENTATION
36653
36654 DECLARE_OTHERS(AsmCilImplMapTable);
36655#if defined(SgAsmCilImplMapTable_OTHERS) || defined(DOCUMENTATION)
36656
36657 //----------------------- Boost serialization for SgAsmCilImplMapTable -----------------------
36658#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36659private:
36660 friend class boost::serialization::access;
36661
36662 template<class S>
36663 void serialize(S &s, const unsigned /*version*/) {
36664 debugSerializationBegin("SgAsmCilImplMapTable");
36665 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36666 s & BOOST_SERIALIZATION_NVP(p_elements);
36667 debugSerializationEnd("SgAsmCilImplMapTable");
36668 }
36669#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36670
36671public:
36672 std::vector<SgAsmCilImplMap*> const& get_elements() const;
36673 std::vector<SgAsmCilImplMap*>& get_elements();
36674public:
36676public:
36679
36680public:
36683
36684protected:
36692#endif // SgAsmCilImplMapTable_OTHERS
36693#ifdef DOCUMENTATION
36694};
36695#endif // DOCUMENTATION
36696
36697
36699// SgAsmCilImplMap -- MACHINE GENERATED; DO NOT MODIFY --
36701
36702DECLARE_LEAF_CLASS(AsmCilImplMap);
36703IS_SERIALIZABLE(AsmCilImplMap);
36704
36705#ifndef DOCUMENTATION
36706AsmCilImplMap.useSmallHeader(true);
36707#endif // !DOCUMENTATION
36708
36709#ifdef DOCUMENTATION
36712#endif // DOCUMENTATION
36713
36714#ifndef DOCUMENTATION
36715 AsmCilImplMap.setDataPrototype(
36716 "uint16_t", "MappingFlags", "= 0",
36717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36718#endif // !DOCUMENTATION
36719
36720#ifndef DOCUMENTATION
36721 AsmCilImplMap.setDataPrototype(
36722 "uint32_t", "MemberForwarded", "= 0",
36723 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36724#endif // !DOCUMENTATION
36725
36726#ifndef DOCUMENTATION
36727 AsmCilImplMap.setDataPrototype(
36728 "uint32_t", "ImportName", "= 0",
36729 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36730#endif // !DOCUMENTATION
36731
36732#ifndef DOCUMENTATION
36733 AsmCilImplMap.setDataPrototype(
36734 "uint32_t", "ImportScope", "= 0",
36735 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36736#endif // !DOCUMENTATION
36737
36738 DECLARE_OTHERS(AsmCilImplMap);
36739#if defined(SgAsmCilImplMap_OTHERS) || defined(DOCUMENTATION)
36740
36741 //----------------------- Boost serialization for SgAsmCilImplMap -----------------------
36742#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36743private:
36744 friend class boost::serialization::access;
36745
36746 template<class S>
36747 void serialize(S &s, const unsigned /*version*/) {
36748 debugSerializationBegin("SgAsmCilImplMap");
36749 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36750 s & BOOST_SERIALIZATION_NVP(p_MappingFlags);
36751 s & BOOST_SERIALIZATION_NVP(p_MemberForwarded);
36752 s & BOOST_SERIALIZATION_NVP(p_ImportName);
36753 s & BOOST_SERIALIZATION_NVP(p_ImportScope);
36754 debugSerializationEnd("SgAsmCilImplMap");
36755 }
36756#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36757
36758public:
36764 uint16_t const& get_MappingFlags() const;
36765 void set_MappingFlags(uint16_t const&);
36768public:
36774 uint32_t const& get_MemberForwarded() const;
36775 void set_MemberForwarded(uint32_t const&);
36778public:
36784 uint32_t const& get_ImportName() const;
36785 void set_ImportName(uint32_t const&);
36788public:
36794 uint32_t const& get_ImportScope() const;
36795 void set_ImportScope(uint32_t const&);
36797public:
36798 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36799 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36800 void dump(std::ostream&) const;
36801
36802 const SgAsmCilMetadata* get_MemberForwarded_object() const;
36803 const std::uint8_t* get_ImportName_string() const;
36804 const SgAsmCilMetadata* get_ImportScope_object() const;
36805public:
36808
36809public:
36812
36813protected:
36821#endif // SgAsmCilImplMap_OTHERS
36822#ifdef DOCUMENTATION
36823};
36824#endif // DOCUMENTATION
36825
36826
36828// SgAsmCilGenericParamTable -- MACHINE GENERATED; DO NOT MODIFY --
36830
36831DECLARE_LEAF_CLASS(AsmCilGenericParamTable);
36832IS_SERIALIZABLE(AsmCilGenericParamTable);
36833
36834#ifndef DOCUMENTATION
36835AsmCilGenericParamTable.useSmallHeader(true);
36836#endif // !DOCUMENTATION
36837
36838#ifdef DOCUMENTATION
36841#endif // DOCUMENTATION
36842
36843#ifndef DOCUMENTATION
36844 AsmCilGenericParamTable.setDataPrototype(
36845 "std::vector<SgAsmCilGenericParam*>", "elements", "",
36846 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36847#endif // !DOCUMENTATION
36848
36849 DECLARE_OTHERS(AsmCilGenericParamTable);
36850#if defined(SgAsmCilGenericParamTable_OTHERS) || defined(DOCUMENTATION)
36851
36852 //----------------------- Boost serialization for SgAsmCilGenericParamTable -----------------------
36853#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36854private:
36855 friend class boost::serialization::access;
36856
36857 template<class S>
36858 void serialize(S &s, const unsigned /*version*/) {
36859 debugSerializationBegin("SgAsmCilGenericParamTable");
36860 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36861 s & BOOST_SERIALIZATION_NVP(p_elements);
36862 debugSerializationEnd("SgAsmCilGenericParamTable");
36863 }
36864#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36865
36866public:
36867 std::vector<SgAsmCilGenericParam*> const& get_elements() const;
36868 std::vector<SgAsmCilGenericParam*>& get_elements();
36869public:
36871public:
36874
36875public:
36878
36879protected:
36887#endif // SgAsmCilGenericParamTable_OTHERS
36888#ifdef DOCUMENTATION
36889};
36890#endif // DOCUMENTATION
36891
36892
36894// SgAsmCilGenericParamConstraintTable -- MACHINE GENERATED; DO NOT MODIFY --
36896
36897DECLARE_LEAF_CLASS(AsmCilGenericParamConstraintTable);
36898IS_SERIALIZABLE(AsmCilGenericParamConstraintTable);
36899
36900#ifndef DOCUMENTATION
36901AsmCilGenericParamConstraintTable.useSmallHeader(true);
36902#endif // !DOCUMENTATION
36903
36904#ifdef DOCUMENTATION
36907#endif // DOCUMENTATION
36908
36909#ifndef DOCUMENTATION
36910 AsmCilGenericParamConstraintTable.setDataPrototype(
36911 "std::vector<SgAsmCilGenericParamConstraint*>", "elements", "",
36912 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36913#endif // !DOCUMENTATION
36914
36915 DECLARE_OTHERS(AsmCilGenericParamConstraintTable);
36916#if defined(SgAsmCilGenericParamConstraintTable_OTHERS) || defined(DOCUMENTATION)
36917
36918 //----------------------- Boost serialization for SgAsmCilGenericParamConstraintTable -----------------------
36919#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36920private:
36921 friend class boost::serialization::access;
36922
36923 template<class S>
36924 void serialize(S &s, const unsigned /*version*/) {
36925 debugSerializationBegin("SgAsmCilGenericParamConstraintTable");
36926 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36927 s & BOOST_SERIALIZATION_NVP(p_elements);
36928 debugSerializationEnd("SgAsmCilGenericParamConstraintTable");
36929 }
36930#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36931
36932public:
36933 std::vector<SgAsmCilGenericParamConstraint*> const& get_elements() const;
36934 std::vector<SgAsmCilGenericParamConstraint*>& get_elements();
36935public:
36937public:
36940
36941public:
36944
36945protected:
36953#endif // SgAsmCilGenericParamConstraintTable_OTHERS
36954#ifdef DOCUMENTATION
36955};
36956#endif // DOCUMENTATION
36957
36958
36960// SgAsmCilGenericParamConstraint -- MACHINE GENERATED; DO NOT MODIFY --
36962
36963DECLARE_LEAF_CLASS(AsmCilGenericParamConstraint);
36964IS_SERIALIZABLE(AsmCilGenericParamConstraint);
36965
36966#ifndef DOCUMENTATION
36967AsmCilGenericParamConstraint.useSmallHeader(true);
36968#endif // !DOCUMENTATION
36969
36970#ifdef DOCUMENTATION
36973#endif // DOCUMENTATION
36974
36975#ifndef DOCUMENTATION
36976 AsmCilGenericParamConstraint.setDataPrototype(
36977 "uint32_t", "Owner", "= 0",
36978 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36979#endif // !DOCUMENTATION
36980
36981#ifndef DOCUMENTATION
36982 AsmCilGenericParamConstraint.setDataPrototype(
36983 "uint32_t", "Constraint", "= 0",
36984 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36985#endif // !DOCUMENTATION
36986
36987 DECLARE_OTHERS(AsmCilGenericParamConstraint);
36988#if defined(SgAsmCilGenericParamConstraint_OTHERS) || defined(DOCUMENTATION)
36989
36990 //----------------------- Boost serialization for SgAsmCilGenericParamConstraint -----------------------
36991#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36992private:
36993 friend class boost::serialization::access;
36994
36995 template<class S>
36996 void serialize(S &s, const unsigned /*version*/) {
36997 debugSerializationBegin("SgAsmCilGenericParamConstraint");
36998 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36999 s & BOOST_SERIALIZATION_NVP(p_Owner);
37000 s & BOOST_SERIALIZATION_NVP(p_Constraint);
37001 debugSerializationEnd("SgAsmCilGenericParamConstraint");
37002 }
37003#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37004
37005public:
37011 uint32_t const& get_Owner() const;
37012 void set_Owner(uint32_t const&);
37015public:
37021 uint32_t const& get_Constraint() const;
37022 void set_Constraint(uint32_t const&);
37024public:
37025 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37026 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37027 void dump(std::ostream&) const;
37028
37029 const SgAsmCilMetadata* get_Owner_object() const;
37030 const SgAsmCilMetadata* get_Constraint_object() const;
37031public:
37034
37035public:
37038
37039protected:
37047#endif // SgAsmCilGenericParamConstraint_OTHERS
37048#ifdef DOCUMENTATION
37049};
37050#endif // DOCUMENTATION
37051
37052
37054// SgAsmCilGenericParam -- MACHINE GENERATED; DO NOT MODIFY --
37056
37057DECLARE_LEAF_CLASS(AsmCilGenericParam);
37058IS_SERIALIZABLE(AsmCilGenericParam);
37059
37060#ifndef DOCUMENTATION
37061AsmCilGenericParam.useSmallHeader(true);
37062#endif // !DOCUMENTATION
37063
37064#ifdef DOCUMENTATION
37067#endif // DOCUMENTATION
37068
37069#ifndef DOCUMENTATION
37070 AsmCilGenericParam.setDataPrototype(
37071 "uint16_t", "Number", "= 0",
37072 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37073#endif // !DOCUMENTATION
37074
37075#ifndef DOCUMENTATION
37076 AsmCilGenericParam.setDataPrototype(
37077 "uint16_t", "Flags", "= 0",
37078 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37079#endif // !DOCUMENTATION
37080
37081#ifndef DOCUMENTATION
37082 AsmCilGenericParam.setDataPrototype(
37083 "uint32_t", "Owner", "= 0",
37084 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37085#endif // !DOCUMENTATION
37086
37087#ifndef DOCUMENTATION
37088 AsmCilGenericParam.setDataPrototype(
37089 "uint32_t", "Name", "= 0",
37090 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37091#endif // !DOCUMENTATION
37092
37093 DECLARE_OTHERS(AsmCilGenericParam);
37094#if defined(SgAsmCilGenericParam_OTHERS) || defined(DOCUMENTATION)
37095
37096 //----------------------- Boost serialization for SgAsmCilGenericParam -----------------------
37097#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37098private:
37099 friend class boost::serialization::access;
37100
37101 template<class S>
37102 void serialize(S &s, const unsigned /*version*/) {
37103 debugSerializationBegin("SgAsmCilGenericParam");
37104 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37105 s & BOOST_SERIALIZATION_NVP(p_Number);
37106 s & BOOST_SERIALIZATION_NVP(p_Flags);
37107 s & BOOST_SERIALIZATION_NVP(p_Owner);
37108 s & BOOST_SERIALIZATION_NVP(p_Name);
37109 debugSerializationEnd("SgAsmCilGenericParam");
37110 }
37111#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37112
37113public:
37119 uint16_t const& get_Number() const;
37120 void set_Number(uint16_t const&);
37123public:
37129 uint16_t const& get_Flags() const;
37130 void set_Flags(uint16_t const&);
37133public:
37139 uint32_t const& get_Owner() const;
37140 void set_Owner(uint32_t const&);
37143public:
37149 uint32_t const& get_Name() const;
37150 void set_Name(uint32_t const&);
37152public:
37153 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37154 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37155 void dump(std::ostream&) const;
37156
37157 const SgAsmCilMetadata* get_Owner_object() const;
37158 const std::uint8_t* get_Name_string() const;
37159public:
37162
37163public:
37166
37167protected:
37175#endif // SgAsmCilGenericParam_OTHERS
37176#ifdef DOCUMENTATION
37177};
37178#endif // DOCUMENTATION
37179
37180
37182// SgAsmCilFileTable -- MACHINE GENERATED; DO NOT MODIFY --
37184
37185DECLARE_LEAF_CLASS(AsmCilFileTable);
37186IS_SERIALIZABLE(AsmCilFileTable);
37187
37188#ifndef DOCUMENTATION
37189AsmCilFileTable.useSmallHeader(true);
37190#endif // !DOCUMENTATION
37191
37192#ifdef DOCUMENTATION
37195#endif // DOCUMENTATION
37196
37197#ifndef DOCUMENTATION
37198 AsmCilFileTable.setDataPrototype(
37199 "std::vector<SgAsmCilFile*>", "elements", "",
37200 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37201#endif // !DOCUMENTATION
37202
37203 DECLARE_OTHERS(AsmCilFileTable);
37204#if defined(SgAsmCilFileTable_OTHERS) || defined(DOCUMENTATION)
37205
37206 //----------------------- Boost serialization for SgAsmCilFileTable -----------------------
37207#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37208private:
37209 friend class boost::serialization::access;
37210
37211 template<class S>
37212 void serialize(S &s, const unsigned /*version*/) {
37213 debugSerializationBegin("SgAsmCilFileTable");
37214 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37215 s & BOOST_SERIALIZATION_NVP(p_elements);
37216 debugSerializationEnd("SgAsmCilFileTable");
37217 }
37218#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37219
37220public:
37221 std::vector<SgAsmCilFile*> const& get_elements() const;
37222 std::vector<SgAsmCilFile*>& get_elements();
37223public:
37225public:
37228
37229public:
37232
37233protected:
37241#endif // SgAsmCilFileTable_OTHERS
37242#ifdef DOCUMENTATION
37243};
37244#endif // DOCUMENTATION
37245
37246
37248// SgAsmCilFile -- MACHINE GENERATED; DO NOT MODIFY --
37250
37251DECLARE_LEAF_CLASS(AsmCilFile);
37252IS_SERIALIZABLE(AsmCilFile);
37253
37254#ifndef DOCUMENTATION
37255AsmCilFile.useSmallHeader(true);
37256#endif // !DOCUMENTATION
37257
37258#ifdef DOCUMENTATION
37261#endif // DOCUMENTATION
37262
37263#ifndef DOCUMENTATION
37264 AsmCilFile.setDataPrototype(
37265 "uint32_t", "Flags", "= 0",
37266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37267#endif // !DOCUMENTATION
37268
37269#ifndef DOCUMENTATION
37270 AsmCilFile.setDataPrototype(
37271 "uint32_t", "Name", "= 0",
37272 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37273#endif // !DOCUMENTATION
37274
37275#ifndef DOCUMENTATION
37276 AsmCilFile.setDataPrototype(
37277 "uint32_t", "HashValue", "= 0",
37278 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37279#endif // !DOCUMENTATION
37280
37281 DECLARE_OTHERS(AsmCilFile);
37282#if defined(SgAsmCilFile_OTHERS) || defined(DOCUMENTATION)
37283
37284 //----------------------- Boost serialization for SgAsmCilFile -----------------------
37285#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37286private:
37287 friend class boost::serialization::access;
37288
37289 template<class S>
37290 void serialize(S &s, const unsigned /*version*/) {
37291 debugSerializationBegin("SgAsmCilFile");
37292 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37293 s & BOOST_SERIALIZATION_NVP(p_Flags);
37294 s & BOOST_SERIALIZATION_NVP(p_Name);
37295 s & BOOST_SERIALIZATION_NVP(p_HashValue);
37296 debugSerializationEnd("SgAsmCilFile");
37297 }
37298#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37299
37300public:
37306 uint32_t const& get_Flags() const;
37307 void set_Flags(uint32_t const&);
37310public:
37316 uint32_t const& get_Name() const;
37317 void set_Name(uint32_t const&);
37320public:
37326 uint32_t const& get_HashValue() const;
37327 void set_HashValue(uint32_t const&);
37329public:
37330 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37331 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37332 void dump(std::ostream&) const;
37333
37334 const std::uint8_t* get_Name_string() const;
37335 const std::uint8_t* get_HashValue_blob() const;
37336public:
37338 virtual ~SgAsmCilFile();
37339
37340public:
37343
37344protected:
37352#endif // SgAsmCilFile_OTHERS
37353#ifdef DOCUMENTATION
37354};
37355#endif // DOCUMENTATION
37356
37357
37359// SgAsmCilFieldTable -- MACHINE GENERATED; DO NOT MODIFY --
37361
37362DECLARE_LEAF_CLASS(AsmCilFieldTable);
37363IS_SERIALIZABLE(AsmCilFieldTable);
37364
37365#ifndef DOCUMENTATION
37366AsmCilFieldTable.useSmallHeader(true);
37367#endif // !DOCUMENTATION
37368
37369#ifdef DOCUMENTATION
37372#endif // DOCUMENTATION
37373
37374#ifndef DOCUMENTATION
37375 AsmCilFieldTable.setDataPrototype(
37376 "std::vector<SgAsmCilField*>", "elements", "",
37377 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37378#endif // !DOCUMENTATION
37379
37380 DECLARE_OTHERS(AsmCilFieldTable);
37381#if defined(SgAsmCilFieldTable_OTHERS) || defined(DOCUMENTATION)
37382
37383 //----------------------- Boost serialization for SgAsmCilFieldTable -----------------------
37384#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37385private:
37386 friend class boost::serialization::access;
37387
37388 template<class S>
37389 void serialize(S &s, const unsigned /*version*/) {
37390 debugSerializationBegin("SgAsmCilFieldTable");
37391 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37392 s & BOOST_SERIALIZATION_NVP(p_elements);
37393 debugSerializationEnd("SgAsmCilFieldTable");
37394 }
37395#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37396
37397public:
37398 std::vector<SgAsmCilField*> const& get_elements() const;
37399 std::vector<SgAsmCilField*>& get_elements();
37400public:
37402public:
37405
37406public:
37409
37410protected:
37418#endif // SgAsmCilFieldTable_OTHERS
37419#ifdef DOCUMENTATION
37420};
37421#endif // DOCUMENTATION
37422
37423
37425// SgAsmCilFieldRVATable -- MACHINE GENERATED; DO NOT MODIFY --
37427
37428DECLARE_LEAF_CLASS(AsmCilFieldRVATable);
37429IS_SERIALIZABLE(AsmCilFieldRVATable);
37430
37431#ifndef DOCUMENTATION
37432AsmCilFieldRVATable.useSmallHeader(true);
37433#endif // !DOCUMENTATION
37434
37435#ifdef DOCUMENTATION
37438#endif // DOCUMENTATION
37439
37440#ifndef DOCUMENTATION
37441 AsmCilFieldRVATable.setDataPrototype(
37442 "std::vector<SgAsmCilFieldRVA*>", "elements", "",
37443 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37444#endif // !DOCUMENTATION
37445
37446 DECLARE_OTHERS(AsmCilFieldRVATable);
37447#if defined(SgAsmCilFieldRVATable_OTHERS) || defined(DOCUMENTATION)
37448
37449 //----------------------- Boost serialization for SgAsmCilFieldRVATable -----------------------
37450#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37451private:
37452 friend class boost::serialization::access;
37453
37454 template<class S>
37455 void serialize(S &s, const unsigned /*version*/) {
37456 debugSerializationBegin("SgAsmCilFieldRVATable");
37457 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37458 s & BOOST_SERIALIZATION_NVP(p_elements);
37459 debugSerializationEnd("SgAsmCilFieldRVATable");
37460 }
37461#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37462
37463public:
37464 std::vector<SgAsmCilFieldRVA*> const& get_elements() const;
37465 std::vector<SgAsmCilFieldRVA*>& get_elements();
37466public:
37468public:
37471
37472public:
37475
37476protected:
37484#endif // SgAsmCilFieldRVATable_OTHERS
37485#ifdef DOCUMENTATION
37486};
37487#endif // DOCUMENTATION
37488
37489
37491// SgAsmCilFieldRVA -- MACHINE GENERATED; DO NOT MODIFY --
37493
37494DECLARE_LEAF_CLASS(AsmCilFieldRVA);
37495IS_SERIALIZABLE(AsmCilFieldRVA);
37496
37497#ifndef DOCUMENTATION
37498AsmCilFieldRVA.useSmallHeader(true);
37499#endif // !DOCUMENTATION
37500
37501#ifdef DOCUMENTATION
37504#endif // DOCUMENTATION
37505
37506#ifndef DOCUMENTATION
37507 AsmCilFieldRVA.setDataPrototype(
37508 "uint32_t", "RVA", "= 0",
37509 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37510#endif // !DOCUMENTATION
37511
37512#ifndef DOCUMENTATION
37513 AsmCilFieldRVA.setDataPrototype(
37514 "uint32_t", "Field", "= 0",
37515 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37516#endif // !DOCUMENTATION
37517
37518 DECLARE_OTHERS(AsmCilFieldRVA);
37519#if defined(SgAsmCilFieldRVA_OTHERS) || defined(DOCUMENTATION)
37520
37521 //----------------------- Boost serialization for SgAsmCilFieldRVA -----------------------
37522#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37523private:
37524 friend class boost::serialization::access;
37525
37526 template<class S>
37527 void serialize(S &s, const unsigned /*version*/) {
37528 debugSerializationBegin("SgAsmCilFieldRVA");
37529 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37530 s & BOOST_SERIALIZATION_NVP(p_RVA);
37531 s & BOOST_SERIALIZATION_NVP(p_Field);
37532 debugSerializationEnd("SgAsmCilFieldRVA");
37533 }
37534#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37535
37536public:
37542 uint32_t const& get_RVA() const;
37543 void set_RVA(uint32_t const&);
37546public:
37552 uint32_t const& get_Field() const;
37553 void set_Field(uint32_t const&);
37555public:
37556 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37557 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37558 void dump(std::ostream&) const;
37559
37560 const SgAsmCilMetadata* get_Field_object() const;
37561public:
37564
37565public:
37568
37569protected:
37577#endif // SgAsmCilFieldRVA_OTHERS
37578#ifdef DOCUMENTATION
37579};
37580#endif // DOCUMENTATION
37581
37582
37584// SgAsmCilFieldMarshalTable -- MACHINE GENERATED; DO NOT MODIFY --
37586
37587DECLARE_LEAF_CLASS(AsmCilFieldMarshalTable);
37588IS_SERIALIZABLE(AsmCilFieldMarshalTable);
37589
37590#ifndef DOCUMENTATION
37591AsmCilFieldMarshalTable.useSmallHeader(true);
37592#endif // !DOCUMENTATION
37593
37594#ifdef DOCUMENTATION
37597#endif // DOCUMENTATION
37598
37599#ifndef DOCUMENTATION
37600 AsmCilFieldMarshalTable.setDataPrototype(
37601 "std::vector<SgAsmCilFieldMarshal*>", "elements", "",
37602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37603#endif // !DOCUMENTATION
37604
37605 DECLARE_OTHERS(AsmCilFieldMarshalTable);
37606#if defined(SgAsmCilFieldMarshalTable_OTHERS) || defined(DOCUMENTATION)
37607
37608 //----------------------- Boost serialization for SgAsmCilFieldMarshalTable -----------------------
37609#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37610private:
37611 friend class boost::serialization::access;
37612
37613 template<class S>
37614 void serialize(S &s, const unsigned /*version*/) {
37615 debugSerializationBegin("SgAsmCilFieldMarshalTable");
37616 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37617 s & BOOST_SERIALIZATION_NVP(p_elements);
37618 debugSerializationEnd("SgAsmCilFieldMarshalTable");
37619 }
37620#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37621
37622public:
37623 std::vector<SgAsmCilFieldMarshal*> const& get_elements() const;
37624 std::vector<SgAsmCilFieldMarshal*>& get_elements();
37625public:
37627public:
37630
37631public:
37634
37635protected:
37643#endif // SgAsmCilFieldMarshalTable_OTHERS
37644#ifdef DOCUMENTATION
37645};
37646#endif // DOCUMENTATION
37647
37648
37650// SgAsmCilFieldMarshal -- MACHINE GENERATED; DO NOT MODIFY --
37652
37653DECLARE_LEAF_CLASS(AsmCilFieldMarshal);
37654IS_SERIALIZABLE(AsmCilFieldMarshal);
37655
37656#ifndef DOCUMENTATION
37657AsmCilFieldMarshal.useSmallHeader(true);
37658#endif // !DOCUMENTATION
37659
37660#ifdef DOCUMENTATION
37663#endif // DOCUMENTATION
37664
37665#ifndef DOCUMENTATION
37666 AsmCilFieldMarshal.setDataPrototype(
37667 "uint32_t", "Parent", "= 0",
37668 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37669#endif // !DOCUMENTATION
37670
37671#ifndef DOCUMENTATION
37672 AsmCilFieldMarshal.setDataPrototype(
37673 "uint32_t", "NativeType", "= 0",
37674 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37675#endif // !DOCUMENTATION
37676
37677 DECLARE_OTHERS(AsmCilFieldMarshal);
37678#if defined(SgAsmCilFieldMarshal_OTHERS) || defined(DOCUMENTATION)
37679
37680 //----------------------- Boost serialization for SgAsmCilFieldMarshal -----------------------
37681#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37682private:
37683 friend class boost::serialization::access;
37684
37685 template<class S>
37686 void serialize(S &s, const unsigned /*version*/) {
37687 debugSerializationBegin("SgAsmCilFieldMarshal");
37688 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37689 s & BOOST_SERIALIZATION_NVP(p_Parent);
37690 s & BOOST_SERIALIZATION_NVP(p_NativeType);
37691 debugSerializationEnd("SgAsmCilFieldMarshal");
37692 }
37693#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37694
37695public:
37701 uint32_t const& get_Parent() const;
37702 void set_Parent(uint32_t const&);
37705public:
37711 uint32_t const& get_NativeType() const;
37712 void set_NativeType(uint32_t const&);
37714public:
37715 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37716 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37717 void dump(std::ostream&) const;
37718
37719 const SgAsmCilMetadata* get_Parent_object() const;
37720 const std::uint8_t* get_NativeType_blob() const;
37721public:
37724
37725public:
37728
37729protected:
37737#endif // SgAsmCilFieldMarshal_OTHERS
37738#ifdef DOCUMENTATION
37739};
37740#endif // DOCUMENTATION
37741
37742
37744// SgAsmCilFieldLayoutTable -- MACHINE GENERATED; DO NOT MODIFY --
37746
37747DECLARE_LEAF_CLASS(AsmCilFieldLayoutTable);
37748IS_SERIALIZABLE(AsmCilFieldLayoutTable);
37749
37750#ifndef DOCUMENTATION
37751AsmCilFieldLayoutTable.useSmallHeader(true);
37752#endif // !DOCUMENTATION
37753
37754#ifdef DOCUMENTATION
37757#endif // DOCUMENTATION
37758
37759#ifndef DOCUMENTATION
37760 AsmCilFieldLayoutTable.setDataPrototype(
37761 "std::vector<SgAsmCilFieldLayout*>", "elements", "",
37762 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37763#endif // !DOCUMENTATION
37764
37765 DECLARE_OTHERS(AsmCilFieldLayoutTable);
37766#if defined(SgAsmCilFieldLayoutTable_OTHERS) || defined(DOCUMENTATION)
37767
37768 //----------------------- Boost serialization for SgAsmCilFieldLayoutTable -----------------------
37769#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37770private:
37771 friend class boost::serialization::access;
37772
37773 template<class S>
37774 void serialize(S &s, const unsigned /*version*/) {
37775 debugSerializationBegin("SgAsmCilFieldLayoutTable");
37776 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37777 s & BOOST_SERIALIZATION_NVP(p_elements);
37778 debugSerializationEnd("SgAsmCilFieldLayoutTable");
37779 }
37780#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37781
37782public:
37783 std::vector<SgAsmCilFieldLayout*> const& get_elements() const;
37784 std::vector<SgAsmCilFieldLayout*>& get_elements();
37785public:
37787public:
37790
37791public:
37794
37795protected:
37803#endif // SgAsmCilFieldLayoutTable_OTHERS
37804#ifdef DOCUMENTATION
37805};
37806#endif // DOCUMENTATION
37807
37808
37810// SgAsmCilFieldLayout -- MACHINE GENERATED; DO NOT MODIFY --
37812
37813DECLARE_LEAF_CLASS(AsmCilFieldLayout);
37814IS_SERIALIZABLE(AsmCilFieldLayout);
37815
37816#ifndef DOCUMENTATION
37817AsmCilFieldLayout.useSmallHeader(true);
37818#endif // !DOCUMENTATION
37819
37820#ifdef DOCUMENTATION
37823#endif // DOCUMENTATION
37824
37825#ifndef DOCUMENTATION
37826 AsmCilFieldLayout.setDataPrototype(
37827 "uint32_t", "Offset", "= 0",
37828 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37829#endif // !DOCUMENTATION
37830
37831#ifndef DOCUMENTATION
37832 AsmCilFieldLayout.setDataPrototype(
37833 "uint32_t", "Field", "= 0",
37834 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37835#endif // !DOCUMENTATION
37836
37837 DECLARE_OTHERS(AsmCilFieldLayout);
37838#if defined(SgAsmCilFieldLayout_OTHERS) || defined(DOCUMENTATION)
37839
37840 //----------------------- Boost serialization for SgAsmCilFieldLayout -----------------------
37841#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37842private:
37843 friend class boost::serialization::access;
37844
37845 template<class S>
37846 void serialize(S &s, const unsigned /*version*/) {
37847 debugSerializationBegin("SgAsmCilFieldLayout");
37848 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37849 s & BOOST_SERIALIZATION_NVP(p_Offset);
37850 s & BOOST_SERIALIZATION_NVP(p_Field);
37851 debugSerializationEnd("SgAsmCilFieldLayout");
37852 }
37853#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37854
37855public:
37861 uint32_t const& get_Offset() const;
37862 void set_Offset(uint32_t const&);
37865public:
37871 uint32_t const& get_Field() const;
37872 void set_Field(uint32_t const&);
37874public:
37875 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37876 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37877 void dump(std::ostream&) const;
37878
37879 const SgAsmCilMetadata* get_Field_object() const;
37880public:
37883
37884public:
37887
37888protected:
37896#endif // SgAsmCilFieldLayout_OTHERS
37897#ifdef DOCUMENTATION
37898};
37899#endif // DOCUMENTATION
37900
37901
37903// SgAsmCilField -- MACHINE GENERATED; DO NOT MODIFY --
37905
37906DECLARE_LEAF_CLASS(AsmCilField);
37907IS_SERIALIZABLE(AsmCilField);
37908
37909#ifndef DOCUMENTATION
37910AsmCilField.useSmallHeader(true);
37911#endif // !DOCUMENTATION
37912
37913#ifdef DOCUMENTATION
37916#endif // DOCUMENTATION
37917
37918#ifndef DOCUMENTATION
37919 AsmCilField.setDataPrototype(
37920 "uint16_t", "Flags", "= 0",
37921 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37922#endif // !DOCUMENTATION
37923
37924#ifndef DOCUMENTATION
37925 AsmCilField.setDataPrototype(
37926 "uint32_t", "Name", "= 0",
37927 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37928#endif // !DOCUMENTATION
37929
37930#ifndef DOCUMENTATION
37931 AsmCilField.setDataPrototype(
37932 "uint32_t", "Signature", "= 0",
37933 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37934#endif // !DOCUMENTATION
37935
37936 DECLARE_OTHERS(AsmCilField);
37937#if defined(SgAsmCilField_OTHERS) || defined(DOCUMENTATION)
37938
37939 //----------------------- Boost serialization for SgAsmCilField -----------------------
37940#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37941private:
37942 friend class boost::serialization::access;
37943
37944 template<class S>
37945 void serialize(S &s, const unsigned /*version*/) {
37946 debugSerializationBegin("SgAsmCilField");
37947 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37948 s & BOOST_SERIALIZATION_NVP(p_Flags);
37949 s & BOOST_SERIALIZATION_NVP(p_Name);
37950 s & BOOST_SERIALIZATION_NVP(p_Signature);
37951 debugSerializationEnd("SgAsmCilField");
37952 }
37953#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37954
37955public:
37961 uint16_t const& get_Flags() const;
37962 void set_Flags(uint16_t const&);
37965public:
37971 uint32_t const& get_Name() const;
37972 void set_Name(uint32_t const&);
37975public:
37981 uint32_t const& get_Signature() const;
37982 void set_Signature(uint32_t const&);
37984public:
37985 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37986 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37987 void dump(std::ostream&) const;
37988
37989 const std::uint8_t* get_Name_string() const;
37990 const std::uint8_t* get_Signature_blob() const;
37991public:
37994
37995public:
37998
37999protected:
38007#endif // SgAsmCilField_OTHERS
38008#ifdef DOCUMENTATION
38009};
38010#endif // DOCUMENTATION
38011
38012
38014// SgAsmCilExportedTypeTable -- MACHINE GENERATED; DO NOT MODIFY --
38016
38017DECLARE_LEAF_CLASS(AsmCilExportedTypeTable);
38018IS_SERIALIZABLE(AsmCilExportedTypeTable);
38019
38020#ifndef DOCUMENTATION
38021AsmCilExportedTypeTable.useSmallHeader(true);
38022#endif // !DOCUMENTATION
38023
38024#ifdef DOCUMENTATION
38027#endif // DOCUMENTATION
38028
38029#ifndef DOCUMENTATION
38030 AsmCilExportedTypeTable.setDataPrototype(
38031 "std::vector<SgAsmCilExportedType*>", "elements", "",
38032 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38033#endif // !DOCUMENTATION
38034
38035 DECLARE_OTHERS(AsmCilExportedTypeTable);
38036#if defined(SgAsmCilExportedTypeTable_OTHERS) || defined(DOCUMENTATION)
38037
38038 //----------------------- Boost serialization for SgAsmCilExportedTypeTable -----------------------
38039#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38040private:
38041 friend class boost::serialization::access;
38042
38043 template<class S>
38044 void serialize(S &s, const unsigned /*version*/) {
38045 debugSerializationBegin("SgAsmCilExportedTypeTable");
38046 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38047 s & BOOST_SERIALIZATION_NVP(p_elements);
38048 debugSerializationEnd("SgAsmCilExportedTypeTable");
38049 }
38050#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38051
38052public:
38053 std::vector<SgAsmCilExportedType*> const& get_elements() const;
38054 std::vector<SgAsmCilExportedType*>& get_elements();
38055public:
38057public:
38060
38061public:
38064
38065protected:
38073#endif // SgAsmCilExportedTypeTable_OTHERS
38074#ifdef DOCUMENTATION
38075};
38076#endif // DOCUMENTATION
38077
38078
38080// SgAsmCilExportedType -- MACHINE GENERATED; DO NOT MODIFY --
38082
38083DECLARE_LEAF_CLASS(AsmCilExportedType);
38084IS_SERIALIZABLE(AsmCilExportedType);
38085
38086#ifndef DOCUMENTATION
38087AsmCilExportedType.useSmallHeader(true);
38088#endif // !DOCUMENTATION
38089
38090#ifdef DOCUMENTATION
38093#endif // DOCUMENTATION
38094
38095#ifndef DOCUMENTATION
38096 AsmCilExportedType.setDataPrototype(
38097 "uint32_t", "EventFlags", "= 0",
38098 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38099#endif // !DOCUMENTATION
38100
38101#ifndef DOCUMENTATION
38102 AsmCilExportedType.setDataPrototype(
38103 "uint32_t", "TypeDefIdName", "= 0",
38104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38105#endif // !DOCUMENTATION
38106
38107#ifndef DOCUMENTATION
38108 AsmCilExportedType.setDataPrototype(
38109 "uint32_t", "TypeName", "= 0",
38110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38111#endif // !DOCUMENTATION
38112
38113#ifndef DOCUMENTATION
38114 AsmCilExportedType.setDataPrototype(
38115 "uint32_t", "TypeNamespace", "= 0",
38116 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38117#endif // !DOCUMENTATION
38118
38119#ifndef DOCUMENTATION
38120 AsmCilExportedType.setDataPrototype(
38121 "uint32_t", "Implementation", "= 0",
38122 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38123#endif // !DOCUMENTATION
38124
38125 DECLARE_OTHERS(AsmCilExportedType);
38126#if defined(SgAsmCilExportedType_OTHERS) || defined(DOCUMENTATION)
38127
38128 //----------------------- Boost serialization for SgAsmCilExportedType -----------------------
38129#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38130private:
38131 friend class boost::serialization::access;
38132
38133 template<class S>
38134 void serialize(S &s, const unsigned /*version*/) {
38135 debugSerializationBegin("SgAsmCilExportedType");
38136 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38137 s & BOOST_SERIALIZATION_NVP(p_EventFlags);
38138 s & BOOST_SERIALIZATION_NVP(p_TypeDefIdName);
38139 s & BOOST_SERIALIZATION_NVP(p_TypeName);
38140 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
38141 s & BOOST_SERIALIZATION_NVP(p_Implementation);
38142 debugSerializationEnd("SgAsmCilExportedType");
38143 }
38144#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38145
38146public:
38152 uint32_t const& get_EventFlags() const;
38153 void set_EventFlags(uint32_t const&);
38156public:
38162 uint32_t const& get_TypeDefIdName() const;
38163 void set_TypeDefIdName(uint32_t const&);
38166public:
38172 uint32_t const& get_TypeName() const;
38173 void set_TypeName(uint32_t const&);
38176public:
38182 uint32_t const& get_TypeNamespace() const;
38183 void set_TypeNamespace(uint32_t const&);
38186public:
38192 uint32_t const& get_Implementation() const;
38193 void set_Implementation(uint32_t const&);
38195public:
38196 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38197 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38198 void dump(std::ostream&) const;
38199
38200 const std::uint8_t* get_TypeName_string() const;
38201 const std::uint8_t* get_TypeNamespace_string() const;
38202 const SgAsmCilMetadata* get_Implementation_object() const;
38203public:
38206
38207public:
38210
38211protected:
38219#endif // SgAsmCilExportedType_OTHERS
38220#ifdef DOCUMENTATION
38221};
38222#endif // DOCUMENTATION
38223
38224
38226// SgAsmCilExceptionData -- MACHINE GENERATED; DO NOT MODIFY --
38228
38229DECLARE_LEAF_CLASS(AsmCilExceptionData);
38230IS_SERIALIZABLE(AsmCilExceptionData);
38231
38232#ifndef DOCUMENTATION
38233AsmCilExceptionData.useSmallHeader(true);
38234#endif // !DOCUMENTATION
38235
38236#ifdef DOCUMENTATION
38242#endif // DOCUMENTATION
38243
38244#ifndef DOCUMENTATION
38245 AsmCilExceptionData.setDataPrototype(
38246 "std::uint32_t", "flags", "= 0",
38247 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38248#endif // !DOCUMENTATION
38249
38250#ifndef DOCUMENTATION
38251 AsmCilExceptionData.setDataPrototype(
38252 "std::uint32_t", "tryOffset", "= 0",
38253 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38254#endif // !DOCUMENTATION
38255
38256#ifndef DOCUMENTATION
38257 AsmCilExceptionData.setDataPrototype(
38258 "std::uint32_t", "tryLength", "= 0",
38259 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38260#endif // !DOCUMENTATION
38261
38262#ifndef DOCUMENTATION
38263 AsmCilExceptionData.setDataPrototype(
38264 "std::uint32_t", "handlerOffset", "= 0",
38265 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38266#endif // !DOCUMENTATION
38267
38268#ifndef DOCUMENTATION
38269 AsmCilExceptionData.setDataPrototype(
38270 "std::uint32_t", "handlerLength", "= 0",
38271 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38272#endif // !DOCUMENTATION
38273
38274#ifndef DOCUMENTATION
38275 AsmCilExceptionData.setDataPrototype(
38276 "std::uint32_t", "classTokenOrFilterOffset", "= 0",
38277 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38278#endif // !DOCUMENTATION
38279
38280 DECLARE_OTHERS(AsmCilExceptionData);
38281#if defined(SgAsmCilExceptionData_OTHERS) || defined(DOCUMENTATION)
38282
38283 //----------------------- Boost serialization for SgAsmCilExceptionData -----------------------
38284#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38285private:
38286 friend class boost::serialization::access;
38287
38288 template<class S>
38289 void serialize(S &s, const unsigned /*version*/) {
38290 debugSerializationBegin("SgAsmCilExceptionData");
38291 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
38292 s & BOOST_SERIALIZATION_NVP(p_flags);
38293 s & BOOST_SERIALIZATION_NVP(p_tryOffset);
38294 s & BOOST_SERIALIZATION_NVP(p_tryLength);
38295 s & BOOST_SERIALIZATION_NVP(p_handlerOffset);
38296 s & BOOST_SERIALIZATION_NVP(p_handlerLength);
38297 s & BOOST_SERIALIZATION_NVP(p_classTokenOrFilterOffset);
38298 debugSerializationEnd("SgAsmCilExceptionData");
38299 }
38300#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38301public:
38302 enum
38303 {
38304 COR_ILEXCEPTION_CLAUSE_EXCEPTION = 0x0000,
38305 COR_ILEXCEPTION_CLAUSE_FILTER = 0x0001,
38306 COR_ILEXCEPTION_CLAUSE_FINALLY = 0x0002,
38307 COR_ILEXCEPTION_CLAUSE_FAULT = 0x0004,
38308 COR_ILEXCEPTION_CLAUSE_MASK = ( COR_ILEXCEPTION_CLAUSE_EXCEPTION
38309 | COR_ILEXCEPTION_CLAUSE_FILTER
38310 | COR_ILEXCEPTION_CLAUSE_FINALLY
38311 | COR_ILEXCEPTION_CLAUSE_FAULT
38312 ),
38313 };
38314
38315private:
38316public:
38317 std::uint32_t const& get_flags() const;
38318 void set_flags(std::uint32_t const&);
38319
38320public:
38321 std::uint32_t const& get_tryOffset() const;
38322 void set_tryOffset(std::uint32_t const&);
38323
38324public:
38325 std::uint32_t const& get_tryLength() const;
38326 void set_tryLength(std::uint32_t const&);
38327
38328public:
38329 std::uint32_t const& get_handlerOffset() const;
38330 void set_handlerOffset(std::uint32_t const&);
38331
38332public:
38333 std::uint32_t const& get_handlerLength() const;
38334 void set_handlerLength(std::uint32_t const&);
38335
38336public:
38337 std::uint32_t const& get_classTokenOrFilterOffset() const;
38338 void set_classTokenOrFilterOffset(std::uint32_t const&);
38339public:
38344 bool isException() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_EXCEPTION; }
38345 bool isFilter() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_FILTER; }
38346 bool isFinally() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_FINALLY; }
38347 bool isFault() const { return (get_flags() & COR_ILEXCEPTION_CLAUSE_MASK) == COR_ILEXCEPTION_CLAUSE_FAULT; }
38349public:
38352
38353public:
38356
38357protected:
38365#endif // SgAsmCilExceptionData_OTHERS
38366#ifdef DOCUMENTATION
38367};
38368#endif // DOCUMENTATION
38369
38370
38372// SgAsmCilEventTable -- MACHINE GENERATED; DO NOT MODIFY --
38374
38375DECLARE_LEAF_CLASS(AsmCilEventTable);
38376IS_SERIALIZABLE(AsmCilEventTable);
38377
38378#ifndef DOCUMENTATION
38379AsmCilEventTable.useSmallHeader(true);
38380#endif // !DOCUMENTATION
38381
38382#ifdef DOCUMENTATION
38385#endif // DOCUMENTATION
38386
38387#ifndef DOCUMENTATION
38388 AsmCilEventTable.setDataPrototype(
38389 "std::vector<SgAsmCilEvent*>", "elements", "",
38390 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38391#endif // !DOCUMENTATION
38392
38393 DECLARE_OTHERS(AsmCilEventTable);
38394#if defined(SgAsmCilEventTable_OTHERS) || defined(DOCUMENTATION)
38395
38396 //----------------------- Boost serialization for SgAsmCilEventTable -----------------------
38397#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38398private:
38399 friend class boost::serialization::access;
38400
38401 template<class S>
38402 void serialize(S &s, const unsigned /*version*/) {
38403 debugSerializationBegin("SgAsmCilEventTable");
38404 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38405 s & BOOST_SERIALIZATION_NVP(p_elements);
38406 debugSerializationEnd("SgAsmCilEventTable");
38407 }
38408#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38409
38410public:
38411 std::vector<SgAsmCilEvent*> const& get_elements() const;
38412 std::vector<SgAsmCilEvent*>& get_elements();
38413public:
38415public:
38418
38419public:
38422
38423protected:
38431#endif // SgAsmCilEventTable_OTHERS
38432#ifdef DOCUMENTATION
38433};
38434#endif // DOCUMENTATION
38435
38436
38438// SgAsmCilEventMapTable -- MACHINE GENERATED; DO NOT MODIFY --
38440
38441DECLARE_LEAF_CLASS(AsmCilEventMapTable);
38442IS_SERIALIZABLE(AsmCilEventMapTable);
38443
38444#ifndef DOCUMENTATION
38445AsmCilEventMapTable.useSmallHeader(true);
38446#endif // !DOCUMENTATION
38447
38448#ifdef DOCUMENTATION
38451#endif // DOCUMENTATION
38452
38453#ifndef DOCUMENTATION
38454 AsmCilEventMapTable.setDataPrototype(
38455 "std::vector<SgAsmCilEventMap*>", "elements", "",
38456 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38457#endif // !DOCUMENTATION
38458
38459 DECLARE_OTHERS(AsmCilEventMapTable);
38460#if defined(SgAsmCilEventMapTable_OTHERS) || defined(DOCUMENTATION)
38461
38462 //----------------------- Boost serialization for SgAsmCilEventMapTable -----------------------
38463#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38464private:
38465 friend class boost::serialization::access;
38466
38467 template<class S>
38468 void serialize(S &s, const unsigned /*version*/) {
38469 debugSerializationBegin("SgAsmCilEventMapTable");
38470 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38471 s & BOOST_SERIALIZATION_NVP(p_elements);
38472 debugSerializationEnd("SgAsmCilEventMapTable");
38473 }
38474#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38475
38476public:
38477 std::vector<SgAsmCilEventMap*> const& get_elements() const;
38478 std::vector<SgAsmCilEventMap*>& get_elements();
38479public:
38481public:
38484
38485public:
38488
38489protected:
38497#endif // SgAsmCilEventMapTable_OTHERS
38498#ifdef DOCUMENTATION
38499};
38500#endif // DOCUMENTATION
38501
38502
38504// SgAsmCilEventMap -- MACHINE GENERATED; DO NOT MODIFY --
38506
38507DECLARE_LEAF_CLASS(AsmCilEventMap);
38508IS_SERIALIZABLE(AsmCilEventMap);
38509
38510#ifndef DOCUMENTATION
38511AsmCilEventMap.useSmallHeader(true);
38512#endif // !DOCUMENTATION
38513
38514#ifdef DOCUMENTATION
38517#endif // DOCUMENTATION
38518
38519#ifndef DOCUMENTATION
38520 AsmCilEventMap.setDataPrototype(
38521 "uint32_t", "Parent", "= 0",
38522 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38523#endif // !DOCUMENTATION
38524
38525#ifndef DOCUMENTATION
38526 AsmCilEventMap.setDataPrototype(
38527 "uint32_t", "EventList", "= 0",
38528 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38529#endif // !DOCUMENTATION
38530
38531 DECLARE_OTHERS(AsmCilEventMap);
38532#if defined(SgAsmCilEventMap_OTHERS) || defined(DOCUMENTATION)
38533
38534 //----------------------- Boost serialization for SgAsmCilEventMap -----------------------
38535#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38536private:
38537 friend class boost::serialization::access;
38538
38539 template<class S>
38540 void serialize(S &s, const unsigned /*version*/) {
38541 debugSerializationBegin("SgAsmCilEventMap");
38542 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38543 s & BOOST_SERIALIZATION_NVP(p_Parent);
38544 s & BOOST_SERIALIZATION_NVP(p_EventList);
38545 debugSerializationEnd("SgAsmCilEventMap");
38546 }
38547#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38548
38549public:
38555 uint32_t const& get_Parent() const;
38556 void set_Parent(uint32_t const&);
38559public:
38565 uint32_t const& get_EventList() const;
38566 void set_EventList(uint32_t const&);
38568public:
38569 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38570 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38571 void dump(std::ostream&) const;
38572
38573 const SgAsmCilMetadata* get_Parent_object() const;
38574 const SgAsmCilMetadata* get_EventList_object() const;
38575public:
38578
38579public:
38582
38583protected:
38591#endif // SgAsmCilEventMap_OTHERS
38592#ifdef DOCUMENTATION
38593};
38594#endif // DOCUMENTATION
38595
38596
38598// SgAsmCilEvent -- MACHINE GENERATED; DO NOT MODIFY --
38600
38601DECLARE_LEAF_CLASS(AsmCilEvent);
38602IS_SERIALIZABLE(AsmCilEvent);
38603
38604#ifndef DOCUMENTATION
38605AsmCilEvent.useSmallHeader(true);
38606#endif // !DOCUMENTATION
38607
38608#ifdef DOCUMENTATION
38611#endif // DOCUMENTATION
38612
38613#ifndef DOCUMENTATION
38614 AsmCilEvent.setDataPrototype(
38615 "uint16_t", "EventFlags", "= 0",
38616 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38617#endif // !DOCUMENTATION
38618
38619#ifndef DOCUMENTATION
38620 AsmCilEvent.setDataPrototype(
38621 "uint32_t", "Name", "= 0",
38622 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38623#endif // !DOCUMENTATION
38624
38625#ifndef DOCUMENTATION
38626 AsmCilEvent.setDataPrototype(
38627 "uint32_t", "EventType", "= 0",
38628 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38629#endif // !DOCUMENTATION
38630
38631 DECLARE_OTHERS(AsmCilEvent);
38632#if defined(SgAsmCilEvent_OTHERS) || defined(DOCUMENTATION)
38633
38634 //----------------------- Boost serialization for SgAsmCilEvent -----------------------
38635#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38636private:
38637 friend class boost::serialization::access;
38638
38639 template<class S>
38640 void serialize(S &s, const unsigned /*version*/) {
38641 debugSerializationBegin("SgAsmCilEvent");
38642 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38643 s & BOOST_SERIALIZATION_NVP(p_EventFlags);
38644 s & BOOST_SERIALIZATION_NVP(p_Name);
38645 s & BOOST_SERIALIZATION_NVP(p_EventType);
38646 debugSerializationEnd("SgAsmCilEvent");
38647 }
38648#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38649
38650public:
38656 uint16_t const& get_EventFlags() const;
38657 void set_EventFlags(uint16_t const&);
38660public:
38666 uint32_t const& get_Name() const;
38667 void set_Name(uint32_t const&);
38670public:
38676 uint32_t const& get_EventType() const;
38677 void set_EventType(uint32_t const&);
38679public:
38680 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38681 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38682 void dump(std::ostream&) const;
38683
38684 const std::uint8_t* get_Name_string() const;
38685 const SgAsmCilMetadata* get_EventType_object() const;
38686public:
38689
38690public:
38693
38694protected:
38702#endif // SgAsmCilEvent_OTHERS
38703#ifdef DOCUMENTATION
38704};
38705#endif // DOCUMENTATION
38706
38707
38709// SgAsmCilDeclSecurityTable -- MACHINE GENERATED; DO NOT MODIFY --
38711
38712DECLARE_LEAF_CLASS(AsmCilDeclSecurityTable);
38713IS_SERIALIZABLE(AsmCilDeclSecurityTable);
38714
38715#ifndef DOCUMENTATION
38716AsmCilDeclSecurityTable.useSmallHeader(true);
38717#endif // !DOCUMENTATION
38718
38719#ifdef DOCUMENTATION
38722#endif // DOCUMENTATION
38723
38724#ifndef DOCUMENTATION
38725 AsmCilDeclSecurityTable.setDataPrototype(
38726 "std::vector<SgAsmCilDeclSecurity*>", "elements", "",
38727 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38728#endif // !DOCUMENTATION
38729
38730 DECLARE_OTHERS(AsmCilDeclSecurityTable);
38731#if defined(SgAsmCilDeclSecurityTable_OTHERS) || defined(DOCUMENTATION)
38732
38733 //----------------------- Boost serialization for SgAsmCilDeclSecurityTable -----------------------
38734#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38735private:
38736 friend class boost::serialization::access;
38737
38738 template<class S>
38739 void serialize(S &s, const unsigned /*version*/) {
38740 debugSerializationBegin("SgAsmCilDeclSecurityTable");
38741 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38742 s & BOOST_SERIALIZATION_NVP(p_elements);
38743 debugSerializationEnd("SgAsmCilDeclSecurityTable");
38744 }
38745#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38746
38747public:
38748 std::vector<SgAsmCilDeclSecurity*> const& get_elements() const;
38749 std::vector<SgAsmCilDeclSecurity*>& get_elements();
38750public:
38752public:
38755
38756public:
38759
38760protected:
38768#endif // SgAsmCilDeclSecurityTable_OTHERS
38769#ifdef DOCUMENTATION
38770};
38771#endif // DOCUMENTATION
38772
38773
38775// SgAsmCilDeclSecurity -- MACHINE GENERATED; DO NOT MODIFY --
38777
38778DECLARE_LEAF_CLASS(AsmCilDeclSecurity);
38779IS_SERIALIZABLE(AsmCilDeclSecurity);
38780
38781#ifndef DOCUMENTATION
38782AsmCilDeclSecurity.useSmallHeader(true);
38783#endif // !DOCUMENTATION
38784
38785#ifdef DOCUMENTATION
38788#endif // DOCUMENTATION
38789
38790#ifndef DOCUMENTATION
38791 AsmCilDeclSecurity.setDataPrototype(
38792 "uint16_t", "Action", "= 0",
38793 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38794#endif // !DOCUMENTATION
38795
38796#ifndef DOCUMENTATION
38797 AsmCilDeclSecurity.setDataPrototype(
38798 "uint32_t", "Parent", "= 0",
38799 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38800#endif // !DOCUMENTATION
38801
38802#ifndef DOCUMENTATION
38803 AsmCilDeclSecurity.setDataPrototype(
38804 "uint32_t", "PermissionSet", "= 0",
38805 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38806#endif // !DOCUMENTATION
38807
38808 DECLARE_OTHERS(AsmCilDeclSecurity);
38809#if defined(SgAsmCilDeclSecurity_OTHERS) || defined(DOCUMENTATION)
38810
38811 //----------------------- Boost serialization for SgAsmCilDeclSecurity -----------------------
38812#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38813private:
38814 friend class boost::serialization::access;
38815
38816 template<class S>
38817 void serialize(S &s, const unsigned /*version*/) {
38818 debugSerializationBegin("SgAsmCilDeclSecurity");
38819 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38820 s & BOOST_SERIALIZATION_NVP(p_Action);
38821 s & BOOST_SERIALIZATION_NVP(p_Parent);
38822 s & BOOST_SERIALIZATION_NVP(p_PermissionSet);
38823 debugSerializationEnd("SgAsmCilDeclSecurity");
38824 }
38825#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38826
38827public:
38833 uint16_t const& get_Action() const;
38834 void set_Action(uint16_t const&);
38837public:
38843 uint32_t const& get_Parent() const;
38844 void set_Parent(uint32_t const&);
38847public:
38853 uint32_t const& get_PermissionSet() const;
38854 void set_PermissionSet(uint32_t const&);
38856public:
38857 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38858 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38859 void dump(std::ostream&) const;
38860
38861 const SgAsmCilMetadata* get_Parent_object() const;
38862 const std::uint8_t* get_PermissionSet_blob() const;
38863public:
38866
38867public:
38870
38871protected:
38879#endif // SgAsmCilDeclSecurity_OTHERS
38880#ifdef DOCUMENTATION
38881};
38882#endif // DOCUMENTATION
38883
38884
38886// SgAsmCilDataStream -- MACHINE GENERATED; DO NOT MODIFY --
38888
38889#ifndef DOCUMENTATION
38890AstNodeClass& AsmCilDataStream = nonTerminalConstructor(
38891 "AsmCilDataStream",
38892 *this,
38893 "AsmCilDataStream",
38894 "AsmCilDataStreamTag",
38895 SubclassListBuilder()
38896 | AsmCilMetadataHeap
38897 | AsmCilUint32Heap
38898 | AsmCilUint8Heap
38899 , false);
38900assert(AsmCilDataStream.associatedGrammar != nullptr);
38901AsmCilDataStream.setCppCondition("!defined(DOCUMENTATION)");
38902AsmCilDataStream.isBoostSerializable(true);
38903AsmCilDataStream.setAutomaticGenerationOfConstructor(false);
38904AsmCilDataStream.setAutomaticGenerationOfDestructor(false);
38905#endif // !DOCUMENTATION
38906
38907#ifndef DOCUMENTATION
38908AsmCilDataStream.useSmallHeader(true);
38909#endif // !DOCUMENTATION
38910
38911#ifdef DOCUMENTATION
38914#endif // DOCUMENTATION
38915
38916#ifndef DOCUMENTATION
38917 AsmCilDataStream.setDataPrototype(
38918 "uint32_t", "Offset", "",
38919 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38920#endif // !DOCUMENTATION
38921
38922#ifndef DOCUMENTATION
38923 AsmCilDataStream.setDataPrototype(
38924 "uint32_t", "Size", "",
38925 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38926#endif // !DOCUMENTATION
38927
38928#ifndef DOCUMENTATION
38929 AsmCilDataStream.setDataPrototype(
38930 "std::string", "Name", "",
38931 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38932#endif // !DOCUMENTATION
38933
38934#ifndef DOCUMENTATION
38935 AsmCilDataStream.setDataPrototype(
38936 "uint32_t", "NamePadding", "",
38937 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38938#endif // !DOCUMENTATION
38939
38940 DECLARE_OTHERS(AsmCilDataStream);
38941#if defined(SgAsmCilDataStream_OTHERS) || defined(DOCUMENTATION)
38942
38943 //----------------------- Boost serialization for SgAsmCilDataStream -----------------------
38944#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
38945private:
38946 friend class boost::serialization::access;
38947
38948 template<class S>
38949 void serialize(S &s, const unsigned /*version*/) {
38950 debugSerializationBegin("SgAsmCilDataStream");
38951 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
38952 s & BOOST_SERIALIZATION_NVP(p_Offset);
38953 s & BOOST_SERIALIZATION_NVP(p_Size);
38954 s & BOOST_SERIALIZATION_NVP(p_Name);
38955 s & BOOST_SERIALIZATION_NVP(p_NamePadding);
38956 debugSerializationEnd("SgAsmCilDataStream");
38957 }
38958#endif // ROSE_ENABLE_BOOST_SERIALIZATION
38959
38960public:
38964 uint32_t const& get_Offset() const;
38965 void set_Offset(uint32_t const&);
38968public:
38972 uint32_t const& get_Size() const;
38973 void set_Size(uint32_t const&);
38976public:
38980 std::string const& get_Name() const;
38981 void set_Name(std::string const&);
38984public:
38988 uint32_t const& get_NamePadding() const;
38989 void set_NamePadding(uint32_t const&);
38991public:
38995 static const std::string ID_STRING_HEAP;
38996 static const std::string ID_BLOB_HEAP;
38997 static const std::string ID_US_HEAP;
38998 static const std::string ID_GUID_HEAP;
38999 static const std::string ID_METADATA_HEAP;
39011 virtual void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData); /* FIXME: should be abstract */
39012
39014 virtual void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const; /* FIXME: should be abstract */
39015
39017 virtual void dump(std::ostream& os) const; /* FIXME: should be abstract */
39018public:
39021
39022protected:
39025
39026protected:
39028 SgAsmCilDataStream(uint32_t const& Offset,
39029 uint32_t const& Size,
39030 std::string const& Name,
39031 uint32_t const& NamePadding);
39032
39033protected:
39041#endif // SgAsmCilDataStream_OTHERS
39042#ifdef DOCUMENTATION
39043};
39044#endif // DOCUMENTATION
39045
39046
39048// SgAsmCilCustomAttributeTable -- MACHINE GENERATED; DO NOT MODIFY --
39050
39051DECLARE_LEAF_CLASS(AsmCilCustomAttributeTable);
39052IS_SERIALIZABLE(AsmCilCustomAttributeTable);
39053
39054#ifndef DOCUMENTATION
39055AsmCilCustomAttributeTable.useSmallHeader(true);
39056#endif // !DOCUMENTATION
39057
39058#ifdef DOCUMENTATION
39061#endif // DOCUMENTATION
39062
39063#ifndef DOCUMENTATION
39064 AsmCilCustomAttributeTable.setDataPrototype(
39065 "std::vector<SgAsmCilCustomAttribute*>", "elements", "",
39066 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39067#endif // !DOCUMENTATION
39068
39069 DECLARE_OTHERS(AsmCilCustomAttributeTable);
39070#if defined(SgAsmCilCustomAttributeTable_OTHERS) || defined(DOCUMENTATION)
39071
39072 //----------------------- Boost serialization for SgAsmCilCustomAttributeTable -----------------------
39073#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39074private:
39075 friend class boost::serialization::access;
39076
39077 template<class S>
39078 void serialize(S &s, const unsigned /*version*/) {
39079 debugSerializationBegin("SgAsmCilCustomAttributeTable");
39080 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39081 s & BOOST_SERIALIZATION_NVP(p_elements);
39082 debugSerializationEnd("SgAsmCilCustomAttributeTable");
39083 }
39084#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39085
39086public:
39087 std::vector<SgAsmCilCustomAttribute*> const& get_elements() const;
39088 std::vector<SgAsmCilCustomAttribute*>& get_elements();
39089public:
39091public:
39094
39095public:
39098
39099protected:
39107#endif // SgAsmCilCustomAttributeTable_OTHERS
39108#ifdef DOCUMENTATION
39109};
39110#endif // DOCUMENTATION
39111
39112
39114// SgAsmCilCustomAttribute -- MACHINE GENERATED; DO NOT MODIFY --
39116
39117DECLARE_LEAF_CLASS(AsmCilCustomAttribute);
39118IS_SERIALIZABLE(AsmCilCustomAttribute);
39119
39120#ifndef DOCUMENTATION
39121AsmCilCustomAttribute.useSmallHeader(true);
39122#endif // !DOCUMENTATION
39123
39124#ifdef DOCUMENTATION
39127#endif // DOCUMENTATION
39128
39129#ifndef DOCUMENTATION
39130 AsmCilCustomAttribute.setDataPrototype(
39131 "uint32_t", "Parent", "= 0",
39132 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39133#endif // !DOCUMENTATION
39134
39135#ifndef DOCUMENTATION
39136 AsmCilCustomAttribute.setDataPrototype(
39137 "uint32_t", "Type", "= 0",
39138 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39139#endif // !DOCUMENTATION
39140
39141#ifndef DOCUMENTATION
39142 AsmCilCustomAttribute.setDataPrototype(
39143 "uint32_t", "Value", "= 0",
39144 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39145#endif // !DOCUMENTATION
39146
39147 DECLARE_OTHERS(AsmCilCustomAttribute);
39148#if defined(SgAsmCilCustomAttribute_OTHERS) || defined(DOCUMENTATION)
39149
39150 //----------------------- Boost serialization for SgAsmCilCustomAttribute -----------------------
39151#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39152private:
39153 friend class boost::serialization::access;
39154
39155 template<class S>
39156 void serialize(S &s, const unsigned /*version*/) {
39157 debugSerializationBegin("SgAsmCilCustomAttribute");
39158 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39159 s & BOOST_SERIALIZATION_NVP(p_Parent);
39160 s & BOOST_SERIALIZATION_NVP(p_Type);
39161 s & BOOST_SERIALIZATION_NVP(p_Value);
39162 debugSerializationEnd("SgAsmCilCustomAttribute");
39163 }
39164#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39165
39166public:
39172 uint32_t const& get_Parent() const;
39173 void set_Parent(uint32_t const&);
39176public:
39182 uint32_t const& get_Type() const;
39183 void set_Type(uint32_t const&);
39186public:
39192 uint32_t const& get_Value() const;
39193 void set_Value(uint32_t const&);
39195public:
39196 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39197 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39198 void dump(std::ostream&) const;
39199
39200 const SgAsmCilMetadata* get_Parent_object() const;
39201 const SgAsmCilMetadata* get_Type_object() const;
39202 const std::uint8_t* get_Value_blob() const;
39203public:
39206
39207public:
39210
39211protected:
39219#endif // SgAsmCilCustomAttribute_OTHERS
39220#ifdef DOCUMENTATION
39221};
39222#endif // DOCUMENTATION
39223
39224
39226// SgAsmCilConstantTable -- MACHINE GENERATED; DO NOT MODIFY --
39228
39229DECLARE_LEAF_CLASS(AsmCilConstantTable);
39230IS_SERIALIZABLE(AsmCilConstantTable);
39231
39232#ifndef DOCUMENTATION
39233AsmCilConstantTable.useSmallHeader(true);
39234#endif // !DOCUMENTATION
39235
39236#ifdef DOCUMENTATION
39239#endif // DOCUMENTATION
39240
39241#ifndef DOCUMENTATION
39242 AsmCilConstantTable.setDataPrototype(
39243 "std::vector<SgAsmCilConstant*>", "elements", "",
39244 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39245#endif // !DOCUMENTATION
39246
39247 DECLARE_OTHERS(AsmCilConstantTable);
39248#if defined(SgAsmCilConstantTable_OTHERS) || defined(DOCUMENTATION)
39249
39250 //----------------------- Boost serialization for SgAsmCilConstantTable -----------------------
39251#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39252private:
39253 friend class boost::serialization::access;
39254
39255 template<class S>
39256 void serialize(S &s, const unsigned /*version*/) {
39257 debugSerializationBegin("SgAsmCilConstantTable");
39258 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39259 s & BOOST_SERIALIZATION_NVP(p_elements);
39260 debugSerializationEnd("SgAsmCilConstantTable");
39261 }
39262#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39263
39264public:
39265 std::vector<SgAsmCilConstant*> const& get_elements() const;
39266 std::vector<SgAsmCilConstant*>& get_elements();
39267public:
39269public:
39272
39273public:
39276
39277protected:
39285#endif // SgAsmCilConstantTable_OTHERS
39286#ifdef DOCUMENTATION
39287};
39288#endif // DOCUMENTATION
39289
39290
39292// SgAsmCilConstant -- MACHINE GENERATED; DO NOT MODIFY --
39294
39295DECLARE_LEAF_CLASS(AsmCilConstant);
39296IS_SERIALIZABLE(AsmCilConstant);
39297
39298#ifndef DOCUMENTATION
39299AsmCilConstant.useSmallHeader(true);
39300#endif // !DOCUMENTATION
39301
39302#ifdef DOCUMENTATION
39305#endif // DOCUMENTATION
39306
39307#ifndef DOCUMENTATION
39308 AsmCilConstant.setDataPrototype(
39309 "uint8_t", "Type", "= 0",
39310 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39311#endif // !DOCUMENTATION
39312
39313#ifndef DOCUMENTATION
39314 AsmCilConstant.setDataPrototype(
39315 "uint8_t", "Padding", "= 0",
39316 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39317#endif // !DOCUMENTATION
39318
39319#ifndef DOCUMENTATION
39320 AsmCilConstant.setDataPrototype(
39321 "uint32_t", "Parent", "= 0",
39322 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39323#endif // !DOCUMENTATION
39324
39325#ifndef DOCUMENTATION
39326 AsmCilConstant.setDataPrototype(
39327 "uint32_t", "Value", "= 0",
39328 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39329#endif // !DOCUMENTATION
39330
39331 DECLARE_OTHERS(AsmCilConstant);
39332#if defined(SgAsmCilConstant_OTHERS) || defined(DOCUMENTATION)
39333
39334 //----------------------- Boost serialization for SgAsmCilConstant -----------------------
39335#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39336private:
39337 friend class boost::serialization::access;
39338
39339 template<class S>
39340 void serialize(S &s, const unsigned /*version*/) {
39341 debugSerializationBegin("SgAsmCilConstant");
39342 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39343 s & BOOST_SERIALIZATION_NVP(p_Type);
39344 s & BOOST_SERIALIZATION_NVP(p_Padding);
39345 s & BOOST_SERIALIZATION_NVP(p_Parent);
39346 s & BOOST_SERIALIZATION_NVP(p_Value);
39347 debugSerializationEnd("SgAsmCilConstant");
39348 }
39349#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39350
39351public:
39357 uint8_t const& get_Type() const;
39358 void set_Type(uint8_t const&);
39361public:
39367 uint8_t const& get_Padding() const;
39368 void set_Padding(uint8_t const&);
39371public:
39377 uint32_t const& get_Parent() const;
39378 void set_Parent(uint32_t const&);
39381public:
39387 uint32_t const& get_Value() const;
39388 void set_Value(uint32_t const&);
39390public:
39391 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39392 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39393 void dump(std::ostream&) const;
39394
39395 const SgAsmCilMetadata* get_Parent_object() const;
39396 const std::uint8_t* get_Value_blob() const;
39397public:
39400
39401public:
39404
39405protected:
39413#endif // SgAsmCilConstant_OTHERS
39414#ifdef DOCUMENTATION
39415};
39416#endif // DOCUMENTATION
39417
39418
39420// SgAsmCilClassLayoutTable -- MACHINE GENERATED; DO NOT MODIFY --
39422
39423DECLARE_LEAF_CLASS(AsmCilClassLayoutTable);
39424IS_SERIALIZABLE(AsmCilClassLayoutTable);
39425
39426#ifndef DOCUMENTATION
39427AsmCilClassLayoutTable.useSmallHeader(true);
39428#endif // !DOCUMENTATION
39429
39430#ifdef DOCUMENTATION
39433#endif // DOCUMENTATION
39434
39435#ifndef DOCUMENTATION
39436 AsmCilClassLayoutTable.setDataPrototype(
39437 "std::vector<SgAsmCilClassLayout*>", "elements", "",
39438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39439#endif // !DOCUMENTATION
39440
39441 DECLARE_OTHERS(AsmCilClassLayoutTable);
39442#if defined(SgAsmCilClassLayoutTable_OTHERS) || defined(DOCUMENTATION)
39443
39444 //----------------------- Boost serialization for SgAsmCilClassLayoutTable -----------------------
39445#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39446private:
39447 friend class boost::serialization::access;
39448
39449 template<class S>
39450 void serialize(S &s, const unsigned /*version*/) {
39451 debugSerializationBegin("SgAsmCilClassLayoutTable");
39452 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39453 s & BOOST_SERIALIZATION_NVP(p_elements);
39454 debugSerializationEnd("SgAsmCilClassLayoutTable");
39455 }
39456#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39457
39458public:
39459 std::vector<SgAsmCilClassLayout*> const& get_elements() const;
39460 std::vector<SgAsmCilClassLayout*>& get_elements();
39461public:
39463public:
39466
39467public:
39470
39471protected:
39479#endif // SgAsmCilClassLayoutTable_OTHERS
39480#ifdef DOCUMENTATION
39481};
39482#endif // DOCUMENTATION
39483
39484
39486// SgAsmCilClassLayout -- MACHINE GENERATED; DO NOT MODIFY --
39488
39489DECLARE_LEAF_CLASS(AsmCilClassLayout);
39490IS_SERIALIZABLE(AsmCilClassLayout);
39491
39492#ifndef DOCUMENTATION
39493AsmCilClassLayout.useSmallHeader(true);
39494#endif // !DOCUMENTATION
39495
39496#ifdef DOCUMENTATION
39499#endif // DOCUMENTATION
39500
39501#ifndef DOCUMENTATION
39502 AsmCilClassLayout.setDataPrototype(
39503 "uint16_t", "PackingSize", "= 0",
39504 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39505#endif // !DOCUMENTATION
39506
39507#ifndef DOCUMENTATION
39508 AsmCilClassLayout.setDataPrototype(
39509 "uint32_t", "ClassSize", "= 0",
39510 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39511#endif // !DOCUMENTATION
39512
39513#ifndef DOCUMENTATION
39514 AsmCilClassLayout.setDataPrototype(
39515 "uint32_t", "Parent", "= 0",
39516 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39517#endif // !DOCUMENTATION
39518
39519 DECLARE_OTHERS(AsmCilClassLayout);
39520#if defined(SgAsmCilClassLayout_OTHERS) || defined(DOCUMENTATION)
39521
39522 //----------------------- Boost serialization for SgAsmCilClassLayout -----------------------
39523#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39524private:
39525 friend class boost::serialization::access;
39526
39527 template<class S>
39528 void serialize(S &s, const unsigned /*version*/) {
39529 debugSerializationBegin("SgAsmCilClassLayout");
39530 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39531 s & BOOST_SERIALIZATION_NVP(p_PackingSize);
39532 s & BOOST_SERIALIZATION_NVP(p_ClassSize);
39533 s & BOOST_SERIALIZATION_NVP(p_Parent);
39534 debugSerializationEnd("SgAsmCilClassLayout");
39535 }
39536#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39537
39538public:
39544 uint16_t const& get_PackingSize() const;
39545 void set_PackingSize(uint16_t const&);
39548public:
39554 uint32_t const& get_ClassSize() const;
39555 void set_ClassSize(uint32_t const&);
39558public:
39564 uint32_t const& get_Parent() const;
39565 void set_Parent(uint32_t const&);
39567public:
39568 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39569 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39570 void dump(std::ostream&) const;
39571
39572 const SgAsmCilMetadata* get_Parent_object() const;
39573public:
39576
39577public:
39580
39581protected:
39589#endif // SgAsmCilClassLayout_OTHERS
39590#ifdef DOCUMENTATION
39591};
39592#endif // DOCUMENTATION
39593
39594
39596// SgAsmCilAssemblyTable -- MACHINE GENERATED; DO NOT MODIFY --
39598
39599DECLARE_LEAF_CLASS(AsmCilAssemblyTable);
39600IS_SERIALIZABLE(AsmCilAssemblyTable);
39601
39602#ifndef DOCUMENTATION
39603AsmCilAssemblyTable.useSmallHeader(true);
39604#endif // !DOCUMENTATION
39605
39606#ifdef DOCUMENTATION
39609#endif // DOCUMENTATION
39610
39611#ifndef DOCUMENTATION
39612 AsmCilAssemblyTable.setDataPrototype(
39613 "std::vector<SgAsmCilAssembly*>", "elements", "",
39614 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39615#endif // !DOCUMENTATION
39616
39617 DECLARE_OTHERS(AsmCilAssemblyTable);
39618#if defined(SgAsmCilAssemblyTable_OTHERS) || defined(DOCUMENTATION)
39619
39620 //----------------------- Boost serialization for SgAsmCilAssemblyTable -----------------------
39621#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39622private:
39623 friend class boost::serialization::access;
39624
39625 template<class S>
39626 void serialize(S &s, const unsigned /*version*/) {
39627 debugSerializationBegin("SgAsmCilAssemblyTable");
39628 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39629 s & BOOST_SERIALIZATION_NVP(p_elements);
39630 debugSerializationEnd("SgAsmCilAssemblyTable");
39631 }
39632#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39633
39634public:
39635 std::vector<SgAsmCilAssembly*> const& get_elements() const;
39636 std::vector<SgAsmCilAssembly*>& get_elements();
39637public:
39639public:
39642
39643public:
39646
39647protected:
39655#endif // SgAsmCilAssemblyTable_OTHERS
39656#ifdef DOCUMENTATION
39657};
39658#endif // DOCUMENTATION
39659
39660
39662// SgAsmCilAssemblyRefTable -- MACHINE GENERATED; DO NOT MODIFY --
39664
39665DECLARE_LEAF_CLASS(AsmCilAssemblyRefTable);
39666IS_SERIALIZABLE(AsmCilAssemblyRefTable);
39667
39668#ifndef DOCUMENTATION
39669AsmCilAssemblyRefTable.useSmallHeader(true);
39670#endif // !DOCUMENTATION
39671
39672#ifdef DOCUMENTATION
39675#endif // DOCUMENTATION
39676
39677#ifndef DOCUMENTATION
39678 AsmCilAssemblyRefTable.setDataPrototype(
39679 "std::vector<SgAsmCilAssemblyRef*>", "elements", "",
39680 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39681#endif // !DOCUMENTATION
39682
39683 DECLARE_OTHERS(AsmCilAssemblyRefTable);
39684#if defined(SgAsmCilAssemblyRefTable_OTHERS) || defined(DOCUMENTATION)
39685
39686 //----------------------- Boost serialization for SgAsmCilAssemblyRefTable -----------------------
39687#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39688private:
39689 friend class boost::serialization::access;
39690
39691 template<class S>
39692 void serialize(S &s, const unsigned /*version*/) {
39693 debugSerializationBegin("SgAsmCilAssemblyRefTable");
39694 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39695 s & BOOST_SERIALIZATION_NVP(p_elements);
39696 debugSerializationEnd("SgAsmCilAssemblyRefTable");
39697 }
39698#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39699
39700public:
39701 std::vector<SgAsmCilAssemblyRef*> const& get_elements() const;
39702 std::vector<SgAsmCilAssemblyRef*>& get_elements();
39703public:
39705public:
39708
39709public:
39712
39713protected:
39721#endif // SgAsmCilAssemblyRefTable_OTHERS
39722#ifdef DOCUMENTATION
39723};
39724#endif // DOCUMENTATION
39725
39726
39728// SgAsmCilAssemblyRefProcessorTable -- MACHINE GENERATED; DO NOT MODIFY --
39730
39731DECLARE_LEAF_CLASS(AsmCilAssemblyRefProcessorTable);
39732IS_SERIALIZABLE(AsmCilAssemblyRefProcessorTable);
39733
39734#ifndef DOCUMENTATION
39735AsmCilAssemblyRefProcessorTable.useSmallHeader(true);
39736#endif // !DOCUMENTATION
39737
39738#ifdef DOCUMENTATION
39741#endif // DOCUMENTATION
39742
39743#ifndef DOCUMENTATION
39744 AsmCilAssemblyRefProcessorTable.setDataPrototype(
39745 "std::vector<SgAsmCilAssemblyRefProcessor*>", "elements", "",
39746 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39747#endif // !DOCUMENTATION
39748
39749 DECLARE_OTHERS(AsmCilAssemblyRefProcessorTable);
39750#if defined(SgAsmCilAssemblyRefProcessorTable_OTHERS) || defined(DOCUMENTATION)
39751
39752 //----------------------- Boost serialization for SgAsmCilAssemblyRefProcessorTable -----------------------
39753#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39754private:
39755 friend class boost::serialization::access;
39756
39757 template<class S>
39758 void serialize(S &s, const unsigned /*version*/) {
39759 debugSerializationBegin("SgAsmCilAssemblyRefProcessorTable");
39760 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39761 s & BOOST_SERIALIZATION_NVP(p_elements);
39762 debugSerializationEnd("SgAsmCilAssemblyRefProcessorTable");
39763 }
39764#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39765
39766public:
39767 std::vector<SgAsmCilAssemblyRefProcessor*> const& get_elements() const;
39768 std::vector<SgAsmCilAssemblyRefProcessor*>& get_elements();
39769public:
39771public:
39774
39775public:
39778
39779protected:
39787#endif // SgAsmCilAssemblyRefProcessorTable_OTHERS
39788#ifdef DOCUMENTATION
39789};
39790#endif // DOCUMENTATION
39791
39792
39794// SgAsmCilAssemblyRefProcessor -- MACHINE GENERATED; DO NOT MODIFY --
39796
39797DECLARE_LEAF_CLASS(AsmCilAssemblyRefProcessor);
39798IS_SERIALIZABLE(AsmCilAssemblyRefProcessor);
39799
39800#ifndef DOCUMENTATION
39801AsmCilAssemblyRefProcessor.useSmallHeader(true);
39802#endif // !DOCUMENTATION
39803
39804#ifdef DOCUMENTATION
39807#endif // DOCUMENTATION
39808
39809#ifndef DOCUMENTATION
39810 AsmCilAssemblyRefProcessor.setDataPrototype(
39811 "uint32_t", "Processor", "= 0",
39812 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39813#endif // !DOCUMENTATION
39814
39815#ifndef DOCUMENTATION
39816 AsmCilAssemblyRefProcessor.setDataPrototype(
39817 "uint32_t", "AssemblyRef", "= 0",
39818 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39819#endif // !DOCUMENTATION
39820
39821 DECLARE_OTHERS(AsmCilAssemblyRefProcessor);
39822#if defined(SgAsmCilAssemblyRefProcessor_OTHERS) || defined(DOCUMENTATION)
39823
39824 //----------------------- Boost serialization for SgAsmCilAssemblyRefProcessor -----------------------
39825#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39826private:
39827 friend class boost::serialization::access;
39828
39829 template<class S>
39830 void serialize(S &s, const unsigned /*version*/) {
39831 debugSerializationBegin("SgAsmCilAssemblyRefProcessor");
39832 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39833 s & BOOST_SERIALIZATION_NVP(p_Processor);
39834 s & BOOST_SERIALIZATION_NVP(p_AssemblyRef);
39835 debugSerializationEnd("SgAsmCilAssemblyRefProcessor");
39836 }
39837#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39838
39839public:
39845 uint32_t const& get_Processor() const;
39846 void set_Processor(uint32_t const&);
39849public:
39855 uint32_t const& get_AssemblyRef() const;
39856 void set_AssemblyRef(uint32_t const&);
39858public:
39859 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39860 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39861 void dump(std::ostream&) const;
39862
39863 const SgAsmCilMetadata* get_AssemblyRef_object() const;
39864public:
39867
39868public:
39871
39872protected:
39880#endif // SgAsmCilAssemblyRefProcessor_OTHERS
39881#ifdef DOCUMENTATION
39882};
39883#endif // DOCUMENTATION
39884
39885
39887// SgAsmCilAssemblyRefOSTable -- MACHINE GENERATED; DO NOT MODIFY --
39889
39890DECLARE_LEAF_CLASS(AsmCilAssemblyRefOSTable);
39891IS_SERIALIZABLE(AsmCilAssemblyRefOSTable);
39892
39893#ifndef DOCUMENTATION
39894AsmCilAssemblyRefOSTable.useSmallHeader(true);
39895#endif // !DOCUMENTATION
39896
39897#ifdef DOCUMENTATION
39900#endif // DOCUMENTATION
39901
39902#ifndef DOCUMENTATION
39903 AsmCilAssemblyRefOSTable.setDataPrototype(
39904 "std::vector<SgAsmCilAssemblyRefOS*>", "elements", "",
39905 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39906#endif // !DOCUMENTATION
39907
39908 DECLARE_OTHERS(AsmCilAssemblyRefOSTable);
39909#if defined(SgAsmCilAssemblyRefOSTable_OTHERS) || defined(DOCUMENTATION)
39910
39911 //----------------------- Boost serialization for SgAsmCilAssemblyRefOSTable -----------------------
39912#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39913private:
39914 friend class boost::serialization::access;
39915
39916 template<class S>
39917 void serialize(S &s, const unsigned /*version*/) {
39918 debugSerializationBegin("SgAsmCilAssemblyRefOSTable");
39919 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39920 s & BOOST_SERIALIZATION_NVP(p_elements);
39921 debugSerializationEnd("SgAsmCilAssemblyRefOSTable");
39922 }
39923#endif // ROSE_ENABLE_BOOST_SERIALIZATION
39924
39925public:
39926 std::vector<SgAsmCilAssemblyRefOS*> const& get_elements() const;
39927 std::vector<SgAsmCilAssemblyRefOS*>& get_elements();
39928public:
39930public:
39933
39934public:
39937
39938protected:
39946#endif // SgAsmCilAssemblyRefOSTable_OTHERS
39947#ifdef DOCUMENTATION
39948};
39949#endif // DOCUMENTATION
39950
39951
39953// SgAsmCilAssemblyRefOS -- MACHINE GENERATED; DO NOT MODIFY --
39955
39956DECLARE_LEAF_CLASS(AsmCilAssemblyRefOS);
39957IS_SERIALIZABLE(AsmCilAssemblyRefOS);
39958
39959#ifndef DOCUMENTATION
39960AsmCilAssemblyRefOS.useSmallHeader(true);
39961#endif // !DOCUMENTATION
39962
39963#ifdef DOCUMENTATION
39966#endif // DOCUMENTATION
39967
39968#ifndef DOCUMENTATION
39969 AsmCilAssemblyRefOS.setDataPrototype(
39970 "uint32_t", "OSPlatformID", "= 0",
39971 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39972#endif // !DOCUMENTATION
39973
39974#ifndef DOCUMENTATION
39975 AsmCilAssemblyRefOS.setDataPrototype(
39976 "uint32_t", "OSMajorVersion", "= 0",
39977 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39978#endif // !DOCUMENTATION
39979
39980#ifndef DOCUMENTATION
39981 AsmCilAssemblyRefOS.setDataPrototype(
39982 "uint32_t", "OSMinorVersion", "= 0",
39983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39984#endif // !DOCUMENTATION
39985
39986#ifndef DOCUMENTATION
39987 AsmCilAssemblyRefOS.setDataPrototype(
39988 "uint32_t", "AssemblyRefOS", "= 0",
39989 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39990#endif // !DOCUMENTATION
39991
39992 DECLARE_OTHERS(AsmCilAssemblyRefOS);
39993#if defined(SgAsmCilAssemblyRefOS_OTHERS) || defined(DOCUMENTATION)
39994
39995 //----------------------- Boost serialization for SgAsmCilAssemblyRefOS -----------------------
39996#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
39997private:
39998 friend class boost::serialization::access;
39999
40000 template<class S>
40001 void serialize(S &s, const unsigned /*version*/) {
40002 debugSerializationBegin("SgAsmCilAssemblyRefOS");
40003 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40004 s & BOOST_SERIALIZATION_NVP(p_OSPlatformID);
40005 s & BOOST_SERIALIZATION_NVP(p_OSMajorVersion);
40006 s & BOOST_SERIALIZATION_NVP(p_OSMinorVersion);
40007 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefOS);
40008 debugSerializationEnd("SgAsmCilAssemblyRefOS");
40009 }
40010#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40011
40012public:
40018 uint32_t const& get_OSPlatformID() const;
40019 void set_OSPlatformID(uint32_t const&);
40022public:
40028 uint32_t const& get_OSMajorVersion() const;
40029 void set_OSMajorVersion(uint32_t const&);
40032public:
40038 uint32_t const& get_OSMinorVersion() const;
40039 void set_OSMinorVersion(uint32_t const&);
40042public:
40048 uint32_t const& get_AssemblyRefOS() const;
40049 void set_AssemblyRefOS(uint32_t const&);
40051public:
40052 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40053 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40054 void dump(std::ostream&) const;
40055
40056 const SgAsmCilMetadata* get_AssemblyRefOS_object() const;
40057public:
40060
40061public:
40064
40065protected:
40073#endif // SgAsmCilAssemblyRefOS_OTHERS
40074#ifdef DOCUMENTATION
40075};
40076#endif // DOCUMENTATION
40077
40078
40080// SgAsmCilAssemblyRef -- MACHINE GENERATED; DO NOT MODIFY --
40082
40083DECLARE_LEAF_CLASS(AsmCilAssemblyRef);
40084IS_SERIALIZABLE(AsmCilAssemblyRef);
40085
40086#ifndef DOCUMENTATION
40087AsmCilAssemblyRef.useSmallHeader(true);
40088#endif // !DOCUMENTATION
40089
40090#ifdef DOCUMENTATION
40093#endif // DOCUMENTATION
40094
40095#ifndef DOCUMENTATION
40096 AsmCilAssemblyRef.setDataPrototype(
40097 "uint16_t", "MajorVersion", "= 0",
40098 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40099#endif // !DOCUMENTATION
40100
40101#ifndef DOCUMENTATION
40102 AsmCilAssemblyRef.setDataPrototype(
40103 "uint16_t", "MinorVersion", "= 0",
40104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40105#endif // !DOCUMENTATION
40106
40107#ifndef DOCUMENTATION
40108 AsmCilAssemblyRef.setDataPrototype(
40109 "uint16_t", "BuildNumber", "= 0",
40110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40111#endif // !DOCUMENTATION
40112
40113#ifndef DOCUMENTATION
40114 AsmCilAssemblyRef.setDataPrototype(
40115 "uint16_t", "RevisionNumber", "= 0",
40116 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40117#endif // !DOCUMENTATION
40118
40119#ifndef DOCUMENTATION
40120 AsmCilAssemblyRef.setDataPrototype(
40121 "uint32_t", "Flags", "= 0",
40122 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40123#endif // !DOCUMENTATION
40124
40125#ifndef DOCUMENTATION
40126 AsmCilAssemblyRef.setDataPrototype(
40127 "uint32_t", "PublicKeyOrToken", "= 0",
40128 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40129#endif // !DOCUMENTATION
40130
40131#ifndef DOCUMENTATION
40132 AsmCilAssemblyRef.setDataPrototype(
40133 "uint32_t", "Name", "= 0",
40134 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40135#endif // !DOCUMENTATION
40136
40137#ifndef DOCUMENTATION
40138 AsmCilAssemblyRef.setDataPrototype(
40139 "uint32_t", "Culture", "= 0",
40140 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40141#endif // !DOCUMENTATION
40142
40143#ifndef DOCUMENTATION
40144 AsmCilAssemblyRef.setDataPrototype(
40145 "uint32_t", "HashValue", "= 0",
40146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40147#endif // !DOCUMENTATION
40148
40149 DECLARE_OTHERS(AsmCilAssemblyRef);
40150#if defined(SgAsmCilAssemblyRef_OTHERS) || defined(DOCUMENTATION)
40151
40152 //----------------------- Boost serialization for SgAsmCilAssemblyRef -----------------------
40153#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40154private:
40155 friend class boost::serialization::access;
40156
40157 template<class S>
40158 void serialize(S &s, const unsigned /*version*/) {
40159 debugSerializationBegin("SgAsmCilAssemblyRef");
40160 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40161 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
40162 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
40163 s & BOOST_SERIALIZATION_NVP(p_BuildNumber);
40164 s & BOOST_SERIALIZATION_NVP(p_RevisionNumber);
40165 s & BOOST_SERIALIZATION_NVP(p_Flags);
40166 s & BOOST_SERIALIZATION_NVP(p_PublicKeyOrToken);
40167 s & BOOST_SERIALIZATION_NVP(p_Name);
40168 s & BOOST_SERIALIZATION_NVP(p_Culture);
40169 s & BOOST_SERIALIZATION_NVP(p_HashValue);
40170 debugSerializationEnd("SgAsmCilAssemblyRef");
40171 }
40172#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40173
40174public:
40180 uint16_t const& get_MajorVersion() const;
40181 void set_MajorVersion(uint16_t const&);
40184public:
40190 uint16_t const& get_MinorVersion() const;
40191 void set_MinorVersion(uint16_t const&);
40194public:
40200 uint16_t const& get_BuildNumber() const;
40201 void set_BuildNumber(uint16_t const&);
40204public:
40210 uint16_t const& get_RevisionNumber() const;
40211 void set_RevisionNumber(uint16_t const&);
40214public:
40220 uint32_t const& get_Flags() const;
40221 void set_Flags(uint32_t const&);
40224public:
40230 uint32_t const& get_PublicKeyOrToken() const;
40231 void set_PublicKeyOrToken(uint32_t const&);
40234public:
40240 uint32_t const& get_Name() const;
40241 void set_Name(uint32_t const&);
40244public:
40250 uint32_t const& get_Culture() const;
40251 void set_Culture(uint32_t const&);
40254public:
40260 uint32_t const& get_HashValue() const;
40261 void set_HashValue(uint32_t const&);
40263public:
40264 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40265 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40266 void dump(std::ostream&) const;
40267
40268 const std::uint8_t* get_PublicKeyOrToken_blob() const;
40269 const std::uint8_t* get_Name_string() const;
40270 const std::uint8_t* get_Culture_string() const;
40271 const std::uint8_t* get_HashValue_blob() const;
40272public:
40275
40276public:
40279
40280protected:
40288#endif // SgAsmCilAssemblyRef_OTHERS
40289#ifdef DOCUMENTATION
40290};
40291#endif // DOCUMENTATION
40292
40293
40295// SgAsmCilAssemblyProcessorTable -- MACHINE GENERATED; DO NOT MODIFY --
40297
40298DECLARE_LEAF_CLASS(AsmCilAssemblyProcessorTable);
40299IS_SERIALIZABLE(AsmCilAssemblyProcessorTable);
40300
40301#ifndef DOCUMENTATION
40302AsmCilAssemblyProcessorTable.useSmallHeader(true);
40303#endif // !DOCUMENTATION
40304
40305#ifdef DOCUMENTATION
40308#endif // DOCUMENTATION
40309
40310#ifndef DOCUMENTATION
40311 AsmCilAssemblyProcessorTable.setDataPrototype(
40312 "std::vector<SgAsmCilAssemblyProcessor*>", "elements", "",
40313 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40314#endif // !DOCUMENTATION
40315
40316 DECLARE_OTHERS(AsmCilAssemblyProcessorTable);
40317#if defined(SgAsmCilAssemblyProcessorTable_OTHERS) || defined(DOCUMENTATION)
40318
40319 //----------------------- Boost serialization for SgAsmCilAssemblyProcessorTable -----------------------
40320#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40321private:
40322 friend class boost::serialization::access;
40323
40324 template<class S>
40325 void serialize(S &s, const unsigned /*version*/) {
40326 debugSerializationBegin("SgAsmCilAssemblyProcessorTable");
40327 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40328 s & BOOST_SERIALIZATION_NVP(p_elements);
40329 debugSerializationEnd("SgAsmCilAssemblyProcessorTable");
40330 }
40331#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40332
40333public:
40334 std::vector<SgAsmCilAssemblyProcessor*> const& get_elements() const;
40335 std::vector<SgAsmCilAssemblyProcessor*>& get_elements();
40336public:
40338public:
40341
40342public:
40345
40346protected:
40354#endif // SgAsmCilAssemblyProcessorTable_OTHERS
40355#ifdef DOCUMENTATION
40356};
40357#endif // DOCUMENTATION
40358
40359
40361// SgAsmCilAssemblyProcessor -- MACHINE GENERATED; DO NOT MODIFY --
40363
40364DECLARE_LEAF_CLASS(AsmCilAssemblyProcessor);
40365IS_SERIALIZABLE(AsmCilAssemblyProcessor);
40366
40367#ifndef DOCUMENTATION
40368AsmCilAssemblyProcessor.useSmallHeader(true);
40369#endif // !DOCUMENTATION
40370
40371#ifdef DOCUMENTATION
40374#endif // DOCUMENTATION
40375
40376#ifndef DOCUMENTATION
40377 AsmCilAssemblyProcessor.setDataPrototype(
40378 "uint32_t", "Processor", "= 0",
40379 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40380#endif // !DOCUMENTATION
40381
40382 DECLARE_OTHERS(AsmCilAssemblyProcessor);
40383#if defined(SgAsmCilAssemblyProcessor_OTHERS) || defined(DOCUMENTATION)
40384
40385 //----------------------- Boost serialization for SgAsmCilAssemblyProcessor -----------------------
40386#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40387private:
40388 friend class boost::serialization::access;
40389
40390 template<class S>
40391 void serialize(S &s, const unsigned /*version*/) {
40392 debugSerializationBegin("SgAsmCilAssemblyProcessor");
40393 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40394 s & BOOST_SERIALIZATION_NVP(p_Processor);
40395 debugSerializationEnd("SgAsmCilAssemblyProcessor");
40396 }
40397#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40398
40399public:
40405 uint32_t const& get_Processor() const;
40406 void set_Processor(uint32_t const&);
40408public:
40409 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40410 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40411 void dump(std::ostream&) const;
40412public:
40415
40416public:
40419
40420protected:
40428#endif // SgAsmCilAssemblyProcessor_OTHERS
40429#ifdef DOCUMENTATION
40430};
40431#endif // DOCUMENTATION
40432
40433
40435// SgAsmCilAssemblyOSTable -- MACHINE GENERATED; DO NOT MODIFY --
40437
40438DECLARE_LEAF_CLASS(AsmCilAssemblyOSTable);
40439IS_SERIALIZABLE(AsmCilAssemblyOSTable);
40440
40441#ifndef DOCUMENTATION
40442AsmCilAssemblyOSTable.useSmallHeader(true);
40443#endif // !DOCUMENTATION
40444
40445#ifdef DOCUMENTATION
40448#endif // DOCUMENTATION
40449
40450#ifndef DOCUMENTATION
40451 AsmCilAssemblyOSTable.setDataPrototype(
40452 "std::vector<SgAsmCilAssemblyOS*>", "elements", "",
40453 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40454#endif // !DOCUMENTATION
40455
40456 DECLARE_OTHERS(AsmCilAssemblyOSTable);
40457#if defined(SgAsmCilAssemblyOSTable_OTHERS) || defined(DOCUMENTATION)
40458
40459 //----------------------- Boost serialization for SgAsmCilAssemblyOSTable -----------------------
40460#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40461private:
40462 friend class boost::serialization::access;
40463
40464 template<class S>
40465 void serialize(S &s, const unsigned /*version*/) {
40466 debugSerializationBegin("SgAsmCilAssemblyOSTable");
40467 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40468 s & BOOST_SERIALIZATION_NVP(p_elements);
40469 debugSerializationEnd("SgAsmCilAssemblyOSTable");
40470 }
40471#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40472
40473public:
40474 std::vector<SgAsmCilAssemblyOS*> const& get_elements() const;
40475 std::vector<SgAsmCilAssemblyOS*>& get_elements();
40476public:
40478public:
40481
40482public:
40485
40486protected:
40494#endif // SgAsmCilAssemblyOSTable_OTHERS
40495#ifdef DOCUMENTATION
40496};
40497#endif // DOCUMENTATION
40498
40499
40501// SgAsmCilAssemblyOS -- MACHINE GENERATED; DO NOT MODIFY --
40503
40504DECLARE_LEAF_CLASS(AsmCilAssemblyOS);
40505IS_SERIALIZABLE(AsmCilAssemblyOS);
40506
40507#ifndef DOCUMENTATION
40508AsmCilAssemblyOS.useSmallHeader(true);
40509#endif // !DOCUMENTATION
40510
40511#ifdef DOCUMENTATION
40514#endif // DOCUMENTATION
40515
40516#ifndef DOCUMENTATION
40517 AsmCilAssemblyOS.setDataPrototype(
40518 "uint32_t", "OSPlatformID", "= 0",
40519 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40520#endif // !DOCUMENTATION
40521
40522#ifndef DOCUMENTATION
40523 AsmCilAssemblyOS.setDataPrototype(
40524 "uint32_t", "OSMajorVersion", "= 0",
40525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40526#endif // !DOCUMENTATION
40527
40528#ifndef DOCUMENTATION
40529 AsmCilAssemblyOS.setDataPrototype(
40530 "uint32_t", "OSMinorVersion", "= 0",
40531 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40532#endif // !DOCUMENTATION
40533
40534 DECLARE_OTHERS(AsmCilAssemblyOS);
40535#if defined(SgAsmCilAssemblyOS_OTHERS) || defined(DOCUMENTATION)
40536
40537 //----------------------- Boost serialization for SgAsmCilAssemblyOS -----------------------
40538#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40539private:
40540 friend class boost::serialization::access;
40541
40542 template<class S>
40543 void serialize(S &s, const unsigned /*version*/) {
40544 debugSerializationBegin("SgAsmCilAssemblyOS");
40545 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40546 s & BOOST_SERIALIZATION_NVP(p_OSPlatformID);
40547 s & BOOST_SERIALIZATION_NVP(p_OSMajorVersion);
40548 s & BOOST_SERIALIZATION_NVP(p_OSMinorVersion);
40549 debugSerializationEnd("SgAsmCilAssemblyOS");
40550 }
40551#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40552
40553public:
40559 uint32_t const& get_OSPlatformID() const;
40560 void set_OSPlatformID(uint32_t const&);
40563public:
40569 uint32_t const& get_OSMajorVersion() const;
40570 void set_OSMajorVersion(uint32_t const&);
40573public:
40579 uint32_t const& get_OSMinorVersion() const;
40580 void set_OSMinorVersion(uint32_t const&);
40582public:
40583 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40584 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40585 void dump(std::ostream&) const;
40586public:
40589
40590public:
40593
40594protected:
40602#endif // SgAsmCilAssemblyOS_OTHERS
40603#ifdef DOCUMENTATION
40604};
40605#endif // DOCUMENTATION
40606
40607
40609// SgAsmCilAssembly -- MACHINE GENERATED; DO NOT MODIFY --
40611
40612DECLARE_LEAF_CLASS(AsmCilAssembly);
40613IS_SERIALIZABLE(AsmCilAssembly);
40614
40615#ifndef DOCUMENTATION
40616AsmCilAssembly.useSmallHeader(true);
40617#endif // !DOCUMENTATION
40618
40619#ifdef DOCUMENTATION
40622#endif // DOCUMENTATION
40623
40624#ifndef DOCUMENTATION
40625 AsmCilAssembly.setDataPrototype(
40626 "uint32_t", "HashAlgId", "= 0",
40627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40628#endif // !DOCUMENTATION
40629
40630#ifndef DOCUMENTATION
40631 AsmCilAssembly.setDataPrototype(
40632 "uint16_t", "MajorVersion", "= 0",
40633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40634#endif // !DOCUMENTATION
40635
40636#ifndef DOCUMENTATION
40637 AsmCilAssembly.setDataPrototype(
40638 "uint16_t", "MinorVersion", "= 0",
40639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40640#endif // !DOCUMENTATION
40641
40642#ifndef DOCUMENTATION
40643 AsmCilAssembly.setDataPrototype(
40644 "uint16_t", "BuildNumber", "= 0",
40645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40646#endif // !DOCUMENTATION
40647
40648#ifndef DOCUMENTATION
40649 AsmCilAssembly.setDataPrototype(
40650 "uint16_t", "RevisionNumber", "= 0",
40651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40652#endif // !DOCUMENTATION
40653
40654#ifndef DOCUMENTATION
40655 AsmCilAssembly.setDataPrototype(
40656 "uint32_t", "Flags", "= 0",
40657 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40658#endif // !DOCUMENTATION
40659
40660#ifndef DOCUMENTATION
40661 AsmCilAssembly.setDataPrototype(
40662 "uint32_t", "PublicKey", "= 0",
40663 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40664#endif // !DOCUMENTATION
40665
40666#ifndef DOCUMENTATION
40667 AsmCilAssembly.setDataPrototype(
40668 "uint32_t", "Name", "= 0",
40669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40670#endif // !DOCUMENTATION
40671
40672#ifndef DOCUMENTATION
40673 AsmCilAssembly.setDataPrototype(
40674 "uint32_t", "Culture", "= 0",
40675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40676#endif // !DOCUMENTATION
40677
40678 DECLARE_OTHERS(AsmCilAssembly);
40679#if defined(SgAsmCilAssembly_OTHERS) || defined(DOCUMENTATION)
40680
40681 //----------------------- Boost serialization for SgAsmCilAssembly -----------------------
40682#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40683private:
40684 friend class boost::serialization::access;
40685
40686 template<class S>
40687 void serialize(S &s, const unsigned /*version*/) {
40688 debugSerializationBegin("SgAsmCilAssembly");
40689 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40690 s & BOOST_SERIALIZATION_NVP(p_HashAlgId);
40691 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
40692 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
40693 s & BOOST_SERIALIZATION_NVP(p_BuildNumber);
40694 s & BOOST_SERIALIZATION_NVP(p_RevisionNumber);
40695 s & BOOST_SERIALIZATION_NVP(p_Flags);
40696 s & BOOST_SERIALIZATION_NVP(p_PublicKey);
40697 s & BOOST_SERIALIZATION_NVP(p_Name);
40698 s & BOOST_SERIALIZATION_NVP(p_Culture);
40699 debugSerializationEnd("SgAsmCilAssembly");
40700 }
40701#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40702
40703public:
40709 uint32_t const& get_HashAlgId() const;
40710 void set_HashAlgId(uint32_t const&);
40713public:
40719 uint16_t const& get_MajorVersion() const;
40720 void set_MajorVersion(uint16_t const&);
40723public:
40729 uint16_t const& get_MinorVersion() const;
40730 void set_MinorVersion(uint16_t const&);
40733public:
40739 uint16_t const& get_BuildNumber() const;
40740 void set_BuildNumber(uint16_t const&);
40743public:
40749 uint16_t const& get_RevisionNumber() const;
40750 void set_RevisionNumber(uint16_t const&);
40753public:
40759 uint32_t const& get_Flags() const;
40760 void set_Flags(uint32_t const&);
40763public:
40769 uint32_t const& get_PublicKey() const;
40770 void set_PublicKey(uint32_t const&);
40773public:
40779 uint32_t const& get_Name() const;
40780 void set_Name(uint32_t const&);
40783public:
40789 uint32_t const& get_Culture() const;
40790 void set_Culture(uint32_t const&);
40792public:
40793 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40794 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40795 void dump(std::ostream&) const;
40796
40797 const std::uint8_t* get_PublicKey_blob() const;
40798 const std::uint8_t* get_Name_string() const;
40799 const std::uint8_t* get_Culture_string() const;
40800public:
40803
40804public:
40807
40808protected:
40816#endif // SgAsmCilAssembly_OTHERS
40817#ifdef DOCUMENTATION
40818};
40819#endif // DOCUMENTATION
40820
40821
40823// SgAsmCilMetadata -- MACHINE GENERATED; DO NOT MODIFY --
40825
40826#ifndef DOCUMENTATION
40827AstNodeClass& AsmCilMetadata = nonTerminalConstructor(
40828 "AsmCilMetadata",
40829 *this,
40830 "AsmCilMetadata",
40831 "AsmCilMetadataTag",
40832 SubclassListBuilder()
40833 | AsmCilAssembly
40834 | AsmCilAssemblyOS
40835 | AsmCilAssemblyOSTable
40836 | AsmCilAssemblyProcessor
40837 | AsmCilAssemblyProcessorTable
40838 | AsmCilAssemblyRef
40839 | AsmCilAssemblyRefOS
40840 | AsmCilAssemblyRefOSTable
40841 | AsmCilAssemblyRefProcessor
40842 | AsmCilAssemblyRefProcessorTable
40843 | AsmCilAssemblyRefTable
40844 | AsmCilAssemblyTable
40845 | AsmCilClassLayout
40846 | AsmCilClassLayoutTable
40847 | AsmCilConstant
40848 | AsmCilConstantTable
40849 | AsmCilCustomAttribute
40850 | AsmCilCustomAttributeTable
40851 | AsmCilDeclSecurity
40852 | AsmCilDeclSecurityTable
40853 | AsmCilEvent
40854 | AsmCilEventMap
40855 | AsmCilEventMapTable
40856 | AsmCilEventTable
40857 | AsmCilExportedType
40858 | AsmCilExportedTypeTable
40859 | AsmCilField
40860 | AsmCilFieldLayout
40861 | AsmCilFieldLayoutTable
40862 | AsmCilFieldMarshal
40863 | AsmCilFieldMarshalTable
40864 | AsmCilFieldRVA
40865 | AsmCilFieldRVATable
40866 | AsmCilFieldTable
40867 | AsmCilFile
40868 | AsmCilFileTable
40869 | AsmCilGenericParam
40870 | AsmCilGenericParamConstraint
40871 | AsmCilGenericParamConstraintTable
40872 | AsmCilGenericParamTable
40873 | AsmCilImplMap
40874 | AsmCilImplMapTable
40875 | AsmCilInterfaceImpl
40876 | AsmCilInterfaceImplTable
40877 | AsmCilManifestResource
40878 | AsmCilManifestResourceTable
40879 | AsmCilMemberRef
40880 | AsmCilMemberRefTable
40881 | AsmCilMethodDef
40882 | AsmCilMethodDefTable
40883 | AsmCilMethodImpl
40884 | AsmCilMethodImplTable
40885 | AsmCilMethodSemantics
40886 | AsmCilMethodSemanticsTable
40887 | AsmCilMethodSpec
40888 | AsmCilMethodSpecTable
40889 | AsmCilModule
40890 | AsmCilModuleRef
40891 | AsmCilModuleRefTable
40892 | AsmCilModuleTable
40893 | AsmCilNestedClass
40894 | AsmCilNestedClassTable
40895 | AsmCilParam
40896 | AsmCilParamTable
40897 | AsmCilProperty
40898 | AsmCilPropertyMap
40899 | AsmCilPropertyMapTable
40900 | AsmCilPropertyTable
40901 | AsmCilStandAloneSig
40902 | AsmCilStandAloneSigTable
40903 | AsmCilTypeDef
40904 | AsmCilTypeDefTable
40905 | AsmCilTypeRef
40906 | AsmCilTypeRefTable
40907 | AsmCilTypeSpec
40908 | AsmCilTypeSpecTable
40909 , false);
40910assert(AsmCilMetadata.associatedGrammar != nullptr);
40911AsmCilMetadata.setCppCondition("!defined(DOCUMENTATION)");
40912AsmCilMetadata.isBoostSerializable(true);
40913AsmCilMetadata.setAutomaticGenerationOfConstructor(false);
40914AsmCilMetadata.setAutomaticGenerationOfDestructor(false);
40915#endif // !DOCUMENTATION
40916
40917#ifndef DOCUMENTATION
40918AsmCilMetadata.useSmallHeader(true);
40919#endif // !DOCUMENTATION
40920
40921#ifdef DOCUMENTATION
40924#endif // DOCUMENTATION
40925
40926 DECLARE_OTHERS(AsmCilMetadata);
40927#if defined(SgAsmCilMetadata_OTHERS) || defined(DOCUMENTATION)
40928
40929 //----------------------- Boost serialization for SgAsmCilMetadata -----------------------
40930#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
40931private:
40932 friend class boost::serialization::access;
40933
40934 template<class S>
40935 void serialize(S &s, const unsigned /*version*/) {
40936 debugSerializationBegin("SgAsmCilMetadata");
40937 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
40938 debugSerializationEnd("SgAsmCilMetadata");
40939 }
40940#endif // ROSE_ENABLE_BOOST_SERIALIZATION
40941
40942public:
40945
40946protected:
40949
40950protected:
40958#endif // SgAsmCilMetadata_OTHERS
40959#ifdef DOCUMENTATION
40960};
40961#endif // DOCUMENTATION
40962
40963
40965// SgAsmCilNode -- MACHINE GENERATED; DO NOT MODIFY --
40967
40968#ifndef DOCUMENTATION
40969AstNodeClass& AsmCilNode = nonTerminalConstructor(
40970 "AsmCilNode",
40971 *this,
40972 "AsmCilNode",
40973 "AsmCilNodeTag",
40974 SubclassListBuilder()
40975 | AsmCilDataStream
40976 | AsmCilExceptionData
40977 | AsmCilMetadata
40978 | AsmCilMetadataRoot
40979 | AsmCilMethodData
40980 , false);
40981assert(AsmCilNode.associatedGrammar != nullptr);
40982AsmCilNode.setCppCondition("!defined(DOCUMENTATION)");
40983AsmCilNode.isBoostSerializable(true);
40984AsmCilNode.setAutomaticGenerationOfConstructor(false);
40985AsmCilNode.setAutomaticGenerationOfDestructor(false);
40986#endif // !DOCUMENTATION
40987
40988#ifndef DOCUMENTATION
40989AsmCilNode.useSmallHeader(true);
40990#endif // !DOCUMENTATION
40991
40992#ifdef DOCUMENTATION
40995#endif // DOCUMENTATION
40996
40997 DECLARE_OTHERS(AsmCilNode);
40998#if defined(SgAsmCilNode_OTHERS) || defined(DOCUMENTATION)
40999
41000 //----------------------- Boost serialization for SgAsmCilNode -----------------------
41001#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41002private:
41003 friend class boost::serialization::access;
41004
41005 template<class S>
41006 void serialize(S &s, const unsigned /*version*/) {
41007 debugSerializationBegin("SgAsmCilNode");
41008 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
41009 debugSerializationEnd("SgAsmCilNode");
41010 }
41011#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41012
41013public:
41015 virtual ~SgAsmCilNode();
41016
41017protected:
41020
41021protected:
41029#endif // SgAsmCilNode_OTHERS
41030#ifdef DOCUMENTATION
41031};
41032#endif // DOCUMENTATION
41033
41034
41036// SgAsmByteOrder -- MACHINE GENERATED; DO NOT MODIFY --
41038
41039DECLARE_LEAF_CLASS(AsmByteOrder);
41040IS_SERIALIZABLE(AsmByteOrder);
41041
41042#ifndef DOCUMENTATION
41043AsmByteOrder.useSmallHeader(true);
41044#endif // !DOCUMENTATION
41045
41046DECLARE_HEADERS(AsmByteOrder);
41047#if defined(SgAsmByteOrder_HEADERS) || defined(DOCUMENTATION)
41048#include <Rose/BinaryAnalysis/ByteOrder.h>
41049#endif // SgAsmByteOrder_HEADERS
41050
41051#ifdef DOCUMENTATION
41054#endif // DOCUMENTATION
41055
41056 DECLARE_OTHERS(AsmByteOrder);
41057#if defined(SgAsmByteOrder_OTHERS) || defined(DOCUMENTATION)
41058
41059 //----------------------- Boost serialization for SgAsmByteOrder -----------------------
41060#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41061private:
41062 friend class boost::serialization::access;
41063
41064 template<class S>
41065 void serialize(S &s, const unsigned /*version*/) {
41066 debugSerializationBegin("SgAsmByteOrder");
41067 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
41068 s & BOOST_SERIALIZATION_NVP(byteOrder_);
41069 debugSerializationEnd("SgAsmByteOrder");
41070 }
41071#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41072public:
41073private:
41075
41076public:
41084public:
41087
41088public:
41091
41092public:
41095
41096protected:
41104#endif // SgAsmByteOrder_OTHERS
41105#ifdef DOCUMENTATION
41106};
41107#endif // DOCUMENTATION
41108
41109
41111// SgAsmBlock -- MACHINE GENERATED; DO NOT MODIFY --
41113
41114DECLARE_LEAF_CLASS(AsmBlock);
41115IS_SERIALIZABLE(AsmBlock);
41116
41117#ifndef DOCUMENTATION
41118AsmBlock.useSmallHeader(true);
41119#endif // !DOCUMENTATION
41120
41121DECLARE_HEADERS(AsmBlock);
41122#if defined(SgAsmBlock_HEADERS) || defined(DOCUMENTATION)
41123#include <Rose/BinaryAnalysis/Address.h>
41124
41125#include <sageContainer.h>
41126
41127#ifdef ROSE_SgAsmBlock_IMPL
41128#include <SgAsmInstruction.h> // for SgAsmInstruction::INVALID_STACK_DELTA
41129#endif
41130#endif // SgAsmBlock_HEADERS
41131
41132#ifdef DOCUMENTATION
41154#endif // DOCUMENTATION
41155
41156#ifndef DOCUMENTATION
41157 AsmBlock.setDataPrototype(
41158 "Rose::BinaryAnalysis::Address", "id", "= 0",
41159 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41160#endif // !DOCUMENTATION
41161
41162#ifndef DOCUMENTATION
41163 AsmBlock.setDataPrototype(
41164 "unsigned", "reason", "= SgAsmBlock::BLK_NONE",
41165 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41166#endif // !DOCUMENTATION
41167
41168#ifndef DOCUMENTATION
41169 AsmBlock.setDataPrototype(
41170 "SgAsmStatementPtrList", "statementList", "",
41171 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
41172#endif // !DOCUMENTATION
41173
41174#ifndef DOCUMENTATION
41175 AsmBlock.setDataPrototype(
41176 "SgAsmIntegerValuePtrList", "successors", "",
41177 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41178#endif // !DOCUMENTATION
41179
41180#ifndef DOCUMENTATION
41181 AsmBlock.setDataPrototype(
41182 "bool", "successorsComplete", "= false",
41183 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41184#endif // !DOCUMENTATION
41185
41186#ifndef DOCUMENTATION
41187 AsmBlock.setDataPrototype(
41188 "SgAsmBlock*", "immediateDominator", "= nullptr",
41189 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41190#endif // !DOCUMENTATION
41191
41192#ifndef DOCUMENTATION
41193 AsmBlock.setDataPrototype(
41194 "size_t", "cachedVertex", "= (size_t)(-1)",
41195 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41196#endif // !DOCUMENTATION
41197
41198#ifndef DOCUMENTATION
41199 AsmBlock.setDataPrototype(
41200 "double", "codeLikelihood", "= 0.0",
41201 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41202#endif // !DOCUMENTATION
41203
41204#ifndef DOCUMENTATION
41205 AsmBlock.setDataPrototype(
41206 "int64_t", "stackDeltaOut", "= SgAsmInstruction::INVALID_STACK_DELTA",
41207 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41208#endif // !DOCUMENTATION
41209
41210 DECLARE_OTHERS(AsmBlock);
41211#if defined(SgAsmBlock_OTHERS) || defined(DOCUMENTATION)
41212
41213 //----------------------- Boost serialization for SgAsmBlock -----------------------
41214#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41215private:
41216 friend class boost::serialization::access;
41217
41218 template<class S>
41219 void serialize(S &s, const unsigned /*version*/) {
41220 debugSerializationBegin("SgAsmBlock");
41221 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
41222 s & BOOST_SERIALIZATION_NVP(p_reason);
41223 s & BOOST_SERIALIZATION_NVP(p_statementList);
41224 s & BOOST_SERIALIZATION_NVP(p_successors);
41225 s & BOOST_SERIALIZATION_NVP(p_successorsComplete);
41226 s & BOOST_SERIALIZATION_NVP(p_immediateDominator);
41227 s & BOOST_SERIALIZATION_NVP(p_cachedVertex);
41228 s & BOOST_SERIALIZATION_NVP(p_codeLikelihood);
41229 s & BOOST_SERIALIZATION_NVP(p_stackDeltaOut);
41230 debugSerializationEnd("SgAsmBlock");
41231 }
41232#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41234 // Local types
41236public:
41238 enum Reason {
41239 // Please update SgAsmBlock::reasonString() if you change this enum!
41240 BLK_NONE = 0x00000000,
41241 BLK_ENTRY_POINT = 0x00010000,
41242 BLK_PADDING = 0x00020000,
41243 BLK_FRAGMENT = 0x00080000,
41245 BLK_CFGHEAD = 0x00100000,
41246 BLK_USERDEF = 0x00200000,
41247 BLK_LEFTOVERS = 0x00400000,
41249 BLK_JUMPTABLE = 0x00800000,
41250 BLK_GRAPH1 = 0x01000000,
41251 BLK_GRAPH2 = 0x02000000,
41252 BLK_GRAPH3 = 0x04000000,
41254 BLK_DEFAULT = BLK_NONE, //NO_STRINGIFY
41255
41256 // ========= Miscellaneous Reasons ===========================================================================
41257 // The first half of the range (1-127, inclusive) is used for algorithms defined by ROSE. The second half is
41258 // availalble for users to use as they see fit.
41259 BLK_MISCMASK = 0x000000ff,
41261 BLK_FINDDATA = 0x00000001,
41263 BLK_POSTFUNC = 0x00000002
41266
41268 // Properties
41270public:
41271
41272 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
41273public:
41283public:
41289 unsigned const& get_reason() const;
41290 void set_reason(unsigned const&);
41292 // statementList and successors should have been pointers to nodes that contain the list rather than being the lists
41293 // themselves because ROSETTA doesn't allow traversals on multiple list data members--we can traverse either one list or
41294 // the other, but not both. It's too late to change how this part of the AST is structured because so much user code
41295 // already depends on it, therefore we can only traverse statementList and not successors. [Robb Matzke 2016-02-25]
41296public:
41303 SgAsmStatementPtrList const& get_statementList() const;
41304 SgAsmStatementPtrList& get_statementList();
41305 void set_statementList(SgAsmStatementPtrList const&);
41307 // statementList and successors should have been pointers to nodes that contain the list rather than being the lists
41308 // themselves because ROSETTA doesn't allow traversals on multiple list data members--we can traverse either one list or
41309 // the other, but not both. It's too late to change how this part of the AST is structured because so much user code
41310 // already depends on it, therefore we can only traverse statementList and not successors. [Robb Matzke 2016-02-25]
41311public:
41319 SgAsmIntegerValuePtrList const& get_successors() const;
41320 SgAsmIntegerValuePtrList& get_successors();
41321 void set_successors(SgAsmIntegerValuePtrList const&);
41324public:
41335 bool const& get_successorsComplete() const;
41336 void set_successorsComplete(bool const&);
41339public:
41353public:
41362 size_t const& get_cachedVertex() const;
41363 void set_cachedVertex(size_t const&);
41365 // see BinaryAnalysis::ControlFlow
41366public:
41373 double const& get_codeLikelihood() const;
41374 void set_codeLikelihood(double const&);
41377public:
41386 int64_t const& get_stackDeltaOut() const;
41387 void set_stackDeltaOut(int64_t const&);
41390 // Functions
41392public:
41397
41402
41403 // FIXME[Robb P Matzke 2017-02-13]: wrong name -- erases only statements, not all children
41409
41415
41420
41426 bool hasInstructions() const;
41427
41433 bool isBasicBlock() const;
41434
41445
41449 static std::string reasonKey(const std::string &prefix = "");
41450
41454 std::string reasonString(bool pad) const;
41455
41461 static std::string reasonString(bool pad, unsigned reason);
41462
41464 // Deprecated
41466
41467 // [Robb Matzke 2023-11-06]: deprecated 2023-11
41468 bool get_successors_complete() const ROSE_DEPRECATED("use get_successorsComplete");
41469 void set_successors_complete(bool) ROSE_DEPRECATED("use get_successorsComplete");
41470 SgAsmBlock* get_immediate_dominator() const ROSE_DEPRECATED("use get_immediateDominator");
41471 void set_immediate_dominator(SgAsmBlock*) ROSE_DEPRECATED("use set_immediateDominator");
41472 size_t get_cached_vertex() const ROSE_DEPRECATED("use get_cachedVertex");
41473 void set_cached_vertex(size_t) ROSE_DEPRECATED("use set_cachedVertex");
41474 double get_code_likelihood() const ROSE_DEPRECATED("use get_codeLikelihood");
41475 void set_code_likelihood(double) ROSE_DEPRECATED("use set_codeLikelihood");
41476 void append_statement(SgAsmStatement*) ROSE_DEPRECATED("use appendStatement");
41477 void remove_statement(SgAsmStatement*) ROSE_DEPRECATED("use removeStatement");
41478 void remove_children() ROSE_DEPRECATED("use removeChildren");
41479 Rose::BinaryAnalysis::Address get_fallthrough_va() ROSE_DEPRECATED("use getFallthroughVa");
41480 SgAsmFunction* get_enclosing_function() const ROSE_DEPRECATED("use get_enclosingFunction");
41481 bool has_instructions() const ROSE_DEPRECATED("use hasInstructions");
41482 bool is_basic_block() const ROSE_DEPRECATED("use isBasicBlock");
41483 bool is_function_call(Rose::BinaryAnalysis::Address&, Rose::BinaryAnalysis::Address&) ROSE_DEPRECATED("use isFunctionCall");
41484 static std::string reason_key(const std::string& = "") ROSE_DEPRECATED("use reasonKey");
41485 std::string reason_str(bool) const ROSE_DEPRECATED("use reasonString");
41486 static std::string reason_str(bool, unsigned) ROSE_DEPRECATED("use reasonString");
41487public:
41489 virtual ~SgAsmBlock();
41490
41491public:
41494
41495public:
41497 explicit SgAsmBlock(Rose::BinaryAnalysis::Address const& address);
41498
41499protected:
41507#endif // SgAsmBlock_OTHERS
41508#ifdef DOCUMENTATION
41509};
41510#endif // DOCUMENTATION
41511
41512
41514// SgAsmBinarySubtract -- MACHINE GENERATED; DO NOT MODIFY --
41516
41517DECLARE_LEAF_CLASS(AsmBinarySubtract);
41518IS_SERIALIZABLE(AsmBinarySubtract);
41519
41520#ifndef DOCUMENTATION
41521AsmBinarySubtract.useSmallHeader(true);
41522#endif // !DOCUMENTATION
41523
41524#ifdef DOCUMENTATION
41527#endif // DOCUMENTATION
41528
41529 DECLARE_OTHERS(AsmBinarySubtract);
41530#if defined(SgAsmBinarySubtract_OTHERS) || defined(DOCUMENTATION)
41531
41532 //----------------------- Boost serialization for SgAsmBinarySubtract -----------------------
41533#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41534private:
41535 friend class boost::serialization::access;
41536
41537 template<class S>
41538 void serialize(S &s, const unsigned /*version*/) {
41539 debugSerializationBegin("SgAsmBinarySubtract");
41540 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41541 debugSerializationEnd("SgAsmBinarySubtract");
41542 }
41543#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41544
41545public:
41548
41549public:
41552
41553public:
41556 SgAsmExpression* const& rhs);
41557
41558protected:
41566#endif // SgAsmBinarySubtract_OTHERS
41567#ifdef DOCUMENTATION
41568};
41569#endif // DOCUMENTATION
41570
41571
41573// SgAsmBinaryRor -- MACHINE GENERATED; DO NOT MODIFY --
41575
41576DECLARE_LEAF_CLASS(AsmBinaryRor);
41577IS_SERIALIZABLE(AsmBinaryRor);
41578
41579#ifndef DOCUMENTATION
41580AsmBinaryRor.useSmallHeader(true);
41581#endif // !DOCUMENTATION
41582
41583#ifdef DOCUMENTATION
41586#endif // DOCUMENTATION
41587
41588 DECLARE_OTHERS(AsmBinaryRor);
41589#if defined(SgAsmBinaryRor_OTHERS) || defined(DOCUMENTATION)
41590
41591 //----------------------- Boost serialization for SgAsmBinaryRor -----------------------
41592#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41593private:
41594 friend class boost::serialization::access;
41595
41596 template<class S>
41597 void serialize(S &s, const unsigned /*version*/) {
41598 debugSerializationBegin("SgAsmBinaryRor");
41599 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41600 debugSerializationEnd("SgAsmBinaryRor");
41601 }
41602#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41603
41604public:
41607
41608public:
41611
41612public:
41615 SgAsmExpression* const& rhs);
41616
41617protected:
41625#endif // SgAsmBinaryRor_OTHERS
41626#ifdef DOCUMENTATION
41627};
41628#endif // DOCUMENTATION
41629
41630
41632// SgAsmBinaryPreupdate -- MACHINE GENERATED; DO NOT MODIFY --
41634
41635DECLARE_LEAF_CLASS(AsmBinaryPreupdate);
41636IS_SERIALIZABLE(AsmBinaryPreupdate);
41637
41638#ifndef DOCUMENTATION
41639AsmBinaryPreupdate.useSmallHeader(true);
41640#endif // !DOCUMENTATION
41641
41642#ifdef DOCUMENTATION
41648#endif // DOCUMENTATION
41649
41650 DECLARE_OTHERS(AsmBinaryPreupdate);
41651#if defined(SgAsmBinaryPreupdate_OTHERS) || defined(DOCUMENTATION)
41652
41653 //----------------------- Boost serialization for SgAsmBinaryPreupdate -----------------------
41654#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41655private:
41656 friend class boost::serialization::access;
41657
41658 template<class S>
41659 void serialize(S &s, const unsigned /*version*/) {
41660 debugSerializationBegin("SgAsmBinaryPreupdate");
41661 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41662 debugSerializationEnd("SgAsmBinaryPreupdate");
41663 }
41664#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41665
41666public:
41669
41670public:
41673
41674public:
41677 SgAsmExpression* const& rhs);
41678
41679protected:
41687#endif // SgAsmBinaryPreupdate_OTHERS
41688#ifdef DOCUMENTATION
41689};
41690#endif // DOCUMENTATION
41691
41692
41694// SgAsmBinaryPostupdate -- MACHINE GENERATED; DO NOT MODIFY --
41696
41697DECLARE_LEAF_CLASS(AsmBinaryPostupdate);
41698IS_SERIALIZABLE(AsmBinaryPostupdate);
41699
41700#ifndef DOCUMENTATION
41701AsmBinaryPostupdate.useSmallHeader(true);
41702#endif // !DOCUMENTATION
41703
41704#ifdef DOCUMENTATION
41710#endif // DOCUMENTATION
41711
41712 DECLARE_OTHERS(AsmBinaryPostupdate);
41713#if defined(SgAsmBinaryPostupdate_OTHERS) || defined(DOCUMENTATION)
41714
41715 //----------------------- Boost serialization for SgAsmBinaryPostupdate -----------------------
41716#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41717private:
41718 friend class boost::serialization::access;
41719
41720 template<class S>
41721 void serialize(S &s, const unsigned /*version*/) {
41722 debugSerializationBegin("SgAsmBinaryPostupdate");
41723 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41724 debugSerializationEnd("SgAsmBinaryPostupdate");
41725 }
41726#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41727
41728public:
41731
41732public:
41735
41736public:
41739 SgAsmExpression* const& rhs);
41740
41741protected:
41749#endif // SgAsmBinaryPostupdate_OTHERS
41750#ifdef DOCUMENTATION
41751};
41752#endif // DOCUMENTATION
41753
41754
41756// SgAsmBinaryMultiply -- MACHINE GENERATED; DO NOT MODIFY --
41758
41759DECLARE_LEAF_CLASS(AsmBinaryMultiply);
41760IS_SERIALIZABLE(AsmBinaryMultiply);
41761
41762#ifndef DOCUMENTATION
41763AsmBinaryMultiply.useSmallHeader(true);
41764#endif // !DOCUMENTATION
41765
41766#ifdef DOCUMENTATION
41769#endif // DOCUMENTATION
41770
41771 DECLARE_OTHERS(AsmBinaryMultiply);
41772#if defined(SgAsmBinaryMultiply_OTHERS) || defined(DOCUMENTATION)
41773
41774 //----------------------- Boost serialization for SgAsmBinaryMultiply -----------------------
41775#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41776private:
41777 friend class boost::serialization::access;
41778
41779 template<class S>
41780 void serialize(S &s, const unsigned /*version*/) {
41781 debugSerializationBegin("SgAsmBinaryMultiply");
41782 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41783 debugSerializationEnd("SgAsmBinaryMultiply");
41784 }
41785#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41786
41787public:
41790
41791public:
41794
41795public:
41798 SgAsmExpression* const& rhs);
41799
41800protected:
41808#endif // SgAsmBinaryMultiply_OTHERS
41809#ifdef DOCUMENTATION
41810};
41811#endif // DOCUMENTATION
41812
41813
41815// SgAsmBinaryMsl -- MACHINE GENERATED; DO NOT MODIFY --
41817
41818DECLARE_LEAF_CLASS(AsmBinaryMsl);
41819IS_SERIALIZABLE(AsmBinaryMsl);
41820
41821#ifndef DOCUMENTATION
41822AsmBinaryMsl.useSmallHeader(true);
41823#endif // !DOCUMENTATION
41824
41825#ifdef DOCUMENTATION
41830#endif // DOCUMENTATION
41831
41832 DECLARE_OTHERS(AsmBinaryMsl);
41833#if defined(SgAsmBinaryMsl_OTHERS) || defined(DOCUMENTATION)
41834
41835 //----------------------- Boost serialization for SgAsmBinaryMsl -----------------------
41836#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41837private:
41838 friend class boost::serialization::access;
41839
41840 template<class S>
41841 void serialize(S &s, const unsigned /*version*/) {
41842 debugSerializationBegin("SgAsmBinaryMsl");
41843 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41844 debugSerializationEnd("SgAsmBinaryMsl");
41845 }
41846#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41847
41848public:
41851
41852public:
41855
41856public:
41859 SgAsmExpression* const& rhs);
41860
41861protected:
41869#endif // SgAsmBinaryMsl_OTHERS
41870#ifdef DOCUMENTATION
41871};
41872#endif // DOCUMENTATION
41873
41874
41876// SgAsmBinaryMod -- MACHINE GENERATED; DO NOT MODIFY --
41878
41879DECLARE_LEAF_CLASS(AsmBinaryMod);
41880IS_SERIALIZABLE(AsmBinaryMod);
41881
41882#ifndef DOCUMENTATION
41883AsmBinaryMod.useSmallHeader(true);
41884#endif // !DOCUMENTATION
41885
41886#ifdef DOCUMENTATION
41889#endif // DOCUMENTATION
41890
41891 DECLARE_OTHERS(AsmBinaryMod);
41892#if defined(SgAsmBinaryMod_OTHERS) || defined(DOCUMENTATION)
41893
41894 //----------------------- Boost serialization for SgAsmBinaryMod -----------------------
41895#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41896private:
41897 friend class boost::serialization::access;
41898
41899 template<class S>
41900 void serialize(S &s, const unsigned /*version*/) {
41901 debugSerializationBegin("SgAsmBinaryMod");
41902 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41903 debugSerializationEnd("SgAsmBinaryMod");
41904 }
41905#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41906
41907public:
41910
41911public:
41914
41915public:
41918 SgAsmExpression* const& rhs);
41919
41920protected:
41928#endif // SgAsmBinaryMod_OTHERS
41929#ifdef DOCUMENTATION
41930};
41931#endif // DOCUMENTATION
41932
41933
41935// SgAsmBinaryLsr -- MACHINE GENERATED; DO NOT MODIFY --
41937
41938DECLARE_LEAF_CLASS(AsmBinaryLsr);
41939IS_SERIALIZABLE(AsmBinaryLsr);
41940
41941#ifndef DOCUMENTATION
41942AsmBinaryLsr.useSmallHeader(true);
41943#endif // !DOCUMENTATION
41944
41945#ifdef DOCUMENTATION
41948#endif // DOCUMENTATION
41949
41950 DECLARE_OTHERS(AsmBinaryLsr);
41951#if defined(SgAsmBinaryLsr_OTHERS) || defined(DOCUMENTATION)
41952
41953 //----------------------- Boost serialization for SgAsmBinaryLsr -----------------------
41954#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
41955private:
41956 friend class boost::serialization::access;
41957
41958 template<class S>
41959 void serialize(S &s, const unsigned /*version*/) {
41960 debugSerializationBegin("SgAsmBinaryLsr");
41961 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41962 debugSerializationEnd("SgAsmBinaryLsr");
41963 }
41964#endif // ROSE_ENABLE_BOOST_SERIALIZATION
41965
41966public:
41969
41970public:
41973
41974public:
41977 SgAsmExpression* const& rhs);
41978
41979protected:
41987#endif // SgAsmBinaryLsr_OTHERS
41988#ifdef DOCUMENTATION
41989};
41990#endif // DOCUMENTATION
41991
41992
41994// SgAsmBinaryLsl -- MACHINE GENERATED; DO NOT MODIFY --
41996
41997DECLARE_LEAF_CLASS(AsmBinaryLsl);
41998IS_SERIALIZABLE(AsmBinaryLsl);
41999
42000#ifndef DOCUMENTATION
42001AsmBinaryLsl.useSmallHeader(true);
42002#endif // !DOCUMENTATION
42003
42004#ifdef DOCUMENTATION
42007#endif // DOCUMENTATION
42008
42009 DECLARE_OTHERS(AsmBinaryLsl);
42010#if defined(SgAsmBinaryLsl_OTHERS) || defined(DOCUMENTATION)
42011
42012 //----------------------- Boost serialization for SgAsmBinaryLsl -----------------------
42013#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42014private:
42015 friend class boost::serialization::access;
42016
42017 template<class S>
42018 void serialize(S &s, const unsigned /*version*/) {
42019 debugSerializationBegin("SgAsmBinaryLsl");
42020 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42021 debugSerializationEnd("SgAsmBinaryLsl");
42022 }
42023#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42024
42025public:
42028
42029public:
42032
42033public:
42036 SgAsmExpression* const& rhs);
42037
42038protected:
42046#endif // SgAsmBinaryLsl_OTHERS
42047#ifdef DOCUMENTATION
42048};
42049#endif // DOCUMENTATION
42050
42051
42053// SgAsmBinaryDivide -- MACHINE GENERATED; DO NOT MODIFY --
42055
42056DECLARE_LEAF_CLASS(AsmBinaryDivide);
42057IS_SERIALIZABLE(AsmBinaryDivide);
42058
42059#ifndef DOCUMENTATION
42060AsmBinaryDivide.useSmallHeader(true);
42061#endif // !DOCUMENTATION
42062
42063#ifdef DOCUMENTATION
42066#endif // DOCUMENTATION
42067
42068 DECLARE_OTHERS(AsmBinaryDivide);
42069#if defined(SgAsmBinaryDivide_OTHERS) || defined(DOCUMENTATION)
42070
42071 //----------------------- Boost serialization for SgAsmBinaryDivide -----------------------
42072#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42073private:
42074 friend class boost::serialization::access;
42075
42076 template<class S>
42077 void serialize(S &s, const unsigned /*version*/) {
42078 debugSerializationBegin("SgAsmBinaryDivide");
42079 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42080 debugSerializationEnd("SgAsmBinaryDivide");
42081 }
42082#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42083
42084public:
42087
42088public:
42091
42092public:
42095 SgAsmExpression* const& rhs);
42096
42097protected:
42105#endif // SgAsmBinaryDivide_OTHERS
42106#ifdef DOCUMENTATION
42107};
42108#endif // DOCUMENTATION
42109
42110
42112// SgAsmBinaryConcat -- MACHINE GENERATED; DO NOT MODIFY --
42114
42115DECLARE_LEAF_CLASS(AsmBinaryConcat);
42116IS_SERIALIZABLE(AsmBinaryConcat);
42117
42118#ifndef DOCUMENTATION
42119AsmBinaryConcat.useSmallHeader(true);
42120#endif // !DOCUMENTATION
42121
42122#ifdef DOCUMENTATION
42125#endif // DOCUMENTATION
42126
42127 DECLARE_OTHERS(AsmBinaryConcat);
42128#if defined(SgAsmBinaryConcat_OTHERS) || defined(DOCUMENTATION)
42129
42130 //----------------------- Boost serialization for SgAsmBinaryConcat -----------------------
42131#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42132private:
42133 friend class boost::serialization::access;
42134
42135 template<class S>
42136 void serialize(S &s, const unsigned /*version*/) {
42137 debugSerializationBegin("SgAsmBinaryConcat");
42138 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42139 debugSerializationEnd("SgAsmBinaryConcat");
42140 }
42141#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42142
42143public:
42146
42147public:
42150
42151public:
42154 SgAsmExpression* const& rhs);
42155
42156protected:
42164#endif // SgAsmBinaryConcat_OTHERS
42165#ifdef DOCUMENTATION
42166};
42167#endif // DOCUMENTATION
42168
42169
42171// SgAsmBinaryAsr -- MACHINE GENERATED; DO NOT MODIFY --
42173
42174DECLARE_LEAF_CLASS(AsmBinaryAsr);
42175IS_SERIALIZABLE(AsmBinaryAsr);
42176
42177#ifndef DOCUMENTATION
42178AsmBinaryAsr.useSmallHeader(true);
42179#endif // !DOCUMENTATION
42180
42181#ifdef DOCUMENTATION
42184#endif // DOCUMENTATION
42185
42186 DECLARE_OTHERS(AsmBinaryAsr);
42187#if defined(SgAsmBinaryAsr_OTHERS) || defined(DOCUMENTATION)
42188
42189 //----------------------- Boost serialization for SgAsmBinaryAsr -----------------------
42190#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42191private:
42192 friend class boost::serialization::access;
42193
42194 template<class S>
42195 void serialize(S &s, const unsigned /*version*/) {
42196 debugSerializationBegin("SgAsmBinaryAsr");
42197 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42198 debugSerializationEnd("SgAsmBinaryAsr");
42199 }
42200#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42201
42202public:
42205
42206public:
42209
42210public:
42213 SgAsmExpression* const& rhs);
42214
42215protected:
42223#endif // SgAsmBinaryAsr_OTHERS
42224#ifdef DOCUMENTATION
42225};
42226#endif // DOCUMENTATION
42227
42228
42230// SgAsmBinaryAdd -- MACHINE GENERATED; DO NOT MODIFY --
42232
42233DECLARE_LEAF_CLASS(AsmBinaryAdd);
42234IS_SERIALIZABLE(AsmBinaryAdd);
42235
42236#ifndef DOCUMENTATION
42237AsmBinaryAdd.useSmallHeader(true);
42238#endif // !DOCUMENTATION
42239
42240#ifdef DOCUMENTATION
42243#endif // DOCUMENTATION
42244
42245 DECLARE_OTHERS(AsmBinaryAdd);
42246#if defined(SgAsmBinaryAdd_OTHERS) || defined(DOCUMENTATION)
42247
42248 //----------------------- Boost serialization for SgAsmBinaryAdd -----------------------
42249#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42250private:
42251 friend class boost::serialization::access;
42252
42253 template<class S>
42254 void serialize(S &s, const unsigned /*version*/) {
42255 debugSerializationBegin("SgAsmBinaryAdd");
42256 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
42257 debugSerializationEnd("SgAsmBinaryAdd");
42258 }
42259#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42260
42261public:
42264
42265public:
42268
42269public:
42272 SgAsmExpression* const& rhs);
42273
42274protected:
42282#endif // SgAsmBinaryAdd_OTHERS
42283#ifdef DOCUMENTATION
42284};
42285#endif // DOCUMENTATION
42286
42287
42289// SgAsmBinaryExpression -- MACHINE GENERATED; DO NOT MODIFY --
42291
42292#ifndef DOCUMENTATION
42293AstNodeClass& AsmBinaryExpression = nonTerminalConstructor(
42294 "AsmBinaryExpression",
42295 *this,
42296 "AsmBinaryExpression",
42297 "AsmBinaryExpressionTag",
42298 SubclassListBuilder()
42299 | AsmBinaryAdd
42300 | AsmBinaryAsr
42301 | AsmBinaryConcat
42302 | AsmBinaryDivide
42303 | AsmBinaryLsl
42304 | AsmBinaryLsr
42305 | AsmBinaryMod
42306 | AsmBinaryMsl
42307 | AsmBinaryMultiply
42308 | AsmBinaryPostupdate
42309 | AsmBinaryPreupdate
42310 | AsmBinaryRor
42311 | AsmBinarySubtract
42312 , false);
42313assert(AsmBinaryExpression.associatedGrammar != nullptr);
42314AsmBinaryExpression.setCppCondition("!defined(DOCUMENTATION)");
42315AsmBinaryExpression.isBoostSerializable(true);
42316AsmBinaryExpression.setAutomaticGenerationOfConstructor(false);
42317AsmBinaryExpression.setAutomaticGenerationOfDestructor(false);
42318#endif // !DOCUMENTATION
42319
42320#ifndef DOCUMENTATION
42321AsmBinaryExpression.useSmallHeader(true);
42322#endif // !DOCUMENTATION
42323
42324#ifdef DOCUMENTATION
42327#endif // DOCUMENTATION
42328
42329#ifndef DOCUMENTATION
42330 AsmBinaryExpression.setDataPrototype(
42331 "SgAsmExpression*", "lhs", "= nullptr",
42332 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
42333#endif // !DOCUMENTATION
42334
42335#ifndef DOCUMENTATION
42336 AsmBinaryExpression.setDataPrototype(
42337 "SgAsmExpression*", "rhs", "= nullptr",
42338 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
42339#endif // !DOCUMENTATION
42340
42341 DECLARE_OTHERS(AsmBinaryExpression);
42342#if defined(SgAsmBinaryExpression_OTHERS) || defined(DOCUMENTATION)
42343
42344 //----------------------- Boost serialization for SgAsmBinaryExpression -----------------------
42345#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42346private:
42347 friend class boost::serialization::access;
42348
42349 template<class S>
42350 void serialize(S &s, const unsigned /*version*/) {
42351 debugSerializationBegin("SgAsmBinaryExpression");
42352 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
42353 s & BOOST_SERIALIZATION_NVP(p_lhs);
42354 s & BOOST_SERIALIZATION_NVP(p_rhs);
42355 debugSerializationEnd("SgAsmBinaryExpression");
42356 }
42357#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42358public:
42359public:
42363 SgAsmExpression* const& get_lhs() const;
42367public:
42371 SgAsmExpression* const& get_rhs() const;
42375public:
42378
42379protected:
42382
42383protected:
42386 SgAsmExpression* const& rhs);
42387
42388protected:
42396#endif // SgAsmBinaryExpression_OTHERS
42397#ifdef DOCUMENTATION
42398};
42399#endif // DOCUMENTATION
42400
42401
42403// SgAsmBasicString -- MACHINE GENERATED; DO NOT MODIFY --
42405
42406DECLARE_LEAF_CLASS(AsmBasicString);
42407IS_SERIALIZABLE(AsmBasicString);
42408
42409#ifndef DOCUMENTATION
42410AsmBasicString.useSmallHeader(true);
42411#endif // !DOCUMENTATION
42412
42413DECLARE_HEADERS(AsmBasicString);
42414#if defined(SgAsmBasicString_HEADERS) || defined(DOCUMENTATION)
42415#include <Rose/BinaryAnalysis/Address.h>
42416#endif // SgAsmBasicString_HEADERS
42417
42418#ifdef DOCUMENTATION
42424#endif // DOCUMENTATION
42425
42426#ifndef DOCUMENTATION
42427 AsmBasicString.setDataPrototype(
42428 "std::string", "string", "",
42429 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
42430#endif // !DOCUMENTATION
42431
42432 DECLARE_OTHERS(AsmBasicString);
42433#if defined(SgAsmBasicString_OTHERS) || defined(DOCUMENTATION)
42434
42435 //----------------------- Boost serialization for SgAsmBasicString -----------------------
42436#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42437private:
42438 friend class boost::serialization::access;
42439
42440 template<class S>
42441 void serialize(S &s, const unsigned /*version*/) {
42442 debugSerializationBegin("SgAsmBasicString");
42443 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericString);
42444 s & BOOST_SERIALIZATION_NVP(p_string);
42445 debugSerializationEnd("SgAsmBasicString");
42446 }
42447#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42448public:
42449public:
42450 virtual std::string get_string(bool escape=false) const override;
42451 virtual void set_string(const std::string&) override;
42453
42454public:
42458 explicit SgAsmBasicString(const std::string&);
42459 explicit SgAsmBasicString(const char*);
42462 // Overrides documented in base class
42463 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
42464public:
42467
42468public:
42471
42472protected:
42480#endif // SgAsmBasicString_OTHERS
42481#ifdef DOCUMENTATION
42482};
42483#endif // DOCUMENTATION
42484
42485
42487// SgAsmGenericString -- MACHINE GENERATED; DO NOT MODIFY --
42489
42490#ifndef DOCUMENTATION
42491AstNodeClass& AsmGenericString = nonTerminalConstructor(
42492 "AsmGenericString",
42493 *this,
42494 "AsmGenericString",
42495 "AsmGenericStringTag",
42496 SubclassListBuilder()
42497 | AsmBasicString
42498 | AsmStoredString
42499 , false);
42500assert(AsmGenericString.associatedGrammar != nullptr);
42501AsmGenericString.setCppCondition("!defined(DOCUMENTATION)");
42502AsmGenericString.isBoostSerializable(true);
42503AsmGenericString.setAutomaticGenerationOfConstructor(false);
42504AsmGenericString.setAutomaticGenerationOfDestructor(false);
42505#endif // !DOCUMENTATION
42506
42507#ifndef DOCUMENTATION
42508AsmGenericString.useSmallHeader(true);
42509#endif // !DOCUMENTATION
42510
42511DECLARE_HEADERS(AsmGenericString);
42512#if defined(SgAsmGenericString_HEADERS) || defined(DOCUMENTATION)
42513#include <Rose/BinaryAnalysis/Address.h>
42514#endif // SgAsmGenericString_HEADERS
42515
42516#ifdef DOCUMENTATION
42519#endif // DOCUMENTATION
42520
42521 DECLARE_OTHERS(AsmGenericString);
42522#if defined(SgAsmGenericString_OTHERS) || defined(DOCUMENTATION)
42523
42524 //----------------------- Boost serialization for SgAsmGenericString -----------------------
42525#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42526private:
42527 friend class boost::serialization::access;
42528
42529 template<class S>
42530 void serialize(S &s, const unsigned /*version*/) {
42531 debugSerializationBegin("SgAsmGenericString");
42532 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
42533 debugSerializationEnd("SgAsmGenericString");
42534 }
42535#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42536public:
42539
42548 virtual std::string get_string(bool escape=false) const;
42549 virtual void set_string(const std::string &s);
42553 virtual Rose::BinaryAnalysis::Address get_offset() const {return unallocated;}
42554
42555 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
42556public:
42559
42560protected:
42563
42564protected:
42572#endif // SgAsmGenericString_OTHERS
42573#ifdef DOCUMENTATION
42574};
42575#endif // DOCUMENTATION
42576
42577
42579// SgAsmExecutableFileFormat -- MACHINE GENERATED; DO NOT MODIFY --
42581
42582#ifndef DOCUMENTATION
42583AstNodeClass& AsmExecutableFileFormat = nonTerminalConstructor(
42584 "AsmExecutableFileFormat",
42585 *this,
42586 "AsmExecutableFileFormat",
42587 "AsmExecutableFileFormatTag",
42588 SubclassListBuilder()
42589 | AsmCoffSymbolList
42590 | AsmDwarfInformation
42591 | AsmElfDynamicEntry
42592 | AsmElfDynamicEntryList
42593 | AsmElfEHFrameEntryCI
42594 | AsmElfEHFrameEntryCIList
42595 | AsmElfEHFrameEntryFD
42596 | AsmElfEHFrameEntryFDList
42597 | AsmElfNoteEntry
42598 | AsmElfNoteEntryList
42599 | AsmElfRelocEntry
42600 | AsmElfRelocEntryList
42601 | AsmElfSectionTableEntry
42602 | AsmElfSegmentTableEntry
42603 | AsmElfSegmentTableEntryList
42604 | AsmElfSymbolList
42605 | AsmElfSymverDefinedAux
42606 | AsmElfSymverDefinedAuxList
42607 | AsmElfSymverDefinedEntry
42608 | AsmElfSymverDefinedEntryList
42609 | AsmElfSymverEntry
42610 | AsmElfSymverEntryList
42611 | AsmElfSymverNeededAux
42612 | AsmElfSymverNeededAuxList
42613 | AsmElfSymverNeededEntry
42614 | AsmElfSymverNeededEntryList
42615 | AsmGenericDLL
42616 | AsmGenericDLLList
42617 | AsmGenericFile
42618 | AsmGenericFormat
42619 | AsmGenericHeaderList
42620 | AsmGenericSection
42621 | AsmGenericSectionList
42622 | AsmGenericString
42623 | AsmGenericStrtab
42624 | AsmGenericSymbol
42625 | AsmGenericSymbolList
42626 | AsmLEEntryPoint
42627 | AsmLEPageTableEntry
42628 | AsmLESectionTableEntry
42629 | AsmNEEntryPoint
42630 | AsmNERelocEntry
42631 | AsmNESectionTableEntry
42632 | AsmPEExportDirectory
42633 | AsmPEExportEntry
42634 | AsmPEExportEntryList
42635 | AsmPEImportDirectory
42636 | AsmPEImportDirectoryList
42637 | AsmPEImportItem
42638 | AsmPEImportItemList
42639 | AsmPERVASizePair
42640 | AsmPERVASizePairList
42641 | AsmPESectionTableEntry
42642 | AsmStringStorage
42643 , false);
42644assert(AsmExecutableFileFormat.associatedGrammar != nullptr);
42645AsmExecutableFileFormat.setCppCondition("!defined(DOCUMENTATION)");
42646AsmExecutableFileFormat.isBoostSerializable(true);
42647AsmExecutableFileFormat.setAutomaticGenerationOfConstructor(false);
42648AsmExecutableFileFormat.setAutomaticGenerationOfDestructor(false);
42649#endif // !DOCUMENTATION
42650
42651#ifndef DOCUMENTATION
42652AsmExecutableFileFormat.useSmallHeader(true);
42653#endif // !DOCUMENTATION
42654
42655DECLARE_HEADERS(AsmExecutableFileFormat);
42656#if defined(SgAsmExecutableFileFormat_HEADERS) || defined(DOCUMENTATION)
42657#include <Rose/BinaryAnalysis/Address.h>
42658#include <Rose/Exception.h>
42659#endif // SgAsmExecutableFileFormat_HEADERS
42660
42661#ifdef DOCUMENTATION
42664#endif // DOCUMENTATION
42665
42666 DECLARE_OTHERS(AsmExecutableFileFormat);
42667#if defined(SgAsmExecutableFileFormat_OTHERS) || defined(DOCUMENTATION)
42668
42669 //----------------------- Boost serialization for SgAsmExecutableFileFormat -----------------------
42670#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
42671private:
42672 friend class boost::serialization::access;
42673
42674 template<class S>
42675 void serialize(S &s, const unsigned /*version*/) {
42676 debugSerializationBegin("SgAsmExecutableFileFormat");
42677 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
42678 debugSerializationEnd("SgAsmExecutableFileFormat");
42679 }
42680#endif // ROSE_ENABLE_BOOST_SERIALIZATION
42682 // Local types
42684public:
42689 public:
42694 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size)
42695 : Rose::Exception("short read"), section(section), offset(offset), size(size) {}
42696 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size, const std::string &mesg)
42698 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size, const char *mesg)
42700 ~ShortRead() throw () {}
42701 };
42702
42707 public:
42712 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size)
42714 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size, const std::string &mesg)
42716 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size, const char *mesg)
42718 };
42719
42724 public:
42725 FormatError(const std::string &mesg)
42726 : Rose::Exception(mesg) {}
42727 FormatError(const char *mesg)
42728 : Rose::Exception(mesg) {}
42729 ~FormatError() throw () {}
42730 };
42731
42733 typedef struct stat fileDetails;
42734
42746
42771
42775 ISA_OTHER = 0xffff,
42779 ISA_IA32_286 = 0x0101,
42780 ISA_IA32_386 = 0x0102,
42781 ISA_IA32_486 = 0x0103,
42798 ISA_SPARC_V7 = 0x0301,
42799 ISA_SPARC_V8 = 0x0302,
42800 ISA_SPARC_V8E = 0x0303,
42801 ISA_SPARC_V9 = 0x0304,
42802 ISA_SPARC_V9JPS1 = 0x0305,
42803 ISA_SPARC_V9UA = 0x0306,
42804 ISA_SPARC_V9JPS2 = 0x0307,
42805
42808 ISA_M68K_68EC000 = 0x0402,
42809 ISA_M68K_68HC000 = 0x0403,
42810 ISA_M68K_68008 = 0x0404,
42811 ISA_M68K_68010 = 0x0405,
42812 ISA_M68K_68012 = 0x0406,
42814 ISA_M68K_68EC020 = 0x0408,
42815 ISA_M68K_68030 = 0x0409,
42816 ISA_M68K_68EC030 = 0x040a,
42818 ISA_M68K_68EC040 = 0x040c,
42819 ISA_M68K_68LC040 = 0x040d,
42849 ISA_MIPS_R16000A = 0x0613,
42850 ISA_MIPS_16 = 0x0614,
42851 ISA_MIPS_FPU = 0x0615,
42862 // See http://en.wikipedia.org/wiki/ARM_architecture
42864 ISA_ARM_ARM1 = 0x0901,
42865 ISA_ARM_ARM2 = 0x0902,
42866 ISA_ARM_ARM3 = 0x0903,
42867 ISA_ARM_ARM6 = 0x0904,
42868 ISA_ARM_ARM7 = 0x0905,
42871 ISA_ARM_ARM8 = 0x0908,
42873 ISA_ARM_ARM9E = 0x090a,
42875 ISA_ARM_XScale = 0x090c,
42879 ISA_ARM_ARM11 = 0x090d,
42881 ISA_ARM_A64 = 0x090f,
42883 ISA_JVM = 0x0a00,
42885 // Others, not yet incorporated into this enum
42886 ISA_OTHER_Family = 0xf000,
42887
42889 ISA_IBM_System_370 = 0xf002,
42890 ISA_HPPA = 0xf003,
42891 ISA_Fujitsu_VPP500 = 0xf004,
42892 ISA_Sun_v8plus = 0xf005,
42893 ISA_PowerPC = 0xf006,
42894 ISA_PowerPC_64bit = 0xf007,
42895 ISA_IBM_S390 = 0xf008,
42896 ISA_NEC_V800_series = 0xf009,
42897 ISA_Fujitsu_FR20 = 0xf00a,
42898 ISA_TRW_RH_32 = 0xf00b,
42899 ISA_Motorola_RCE = 0xf00c,
42900 ISA_Digital_Alpha_fake = 0xf00e,
42901 ISA_Hitachi_SH = 0xf00f,
42902 ISA_Siemens_Tricore = 0xf010,
42903 ISA_Argonaut_RISC_Core = 0xf011,
42904 ISA_Hitachi_H8_300 = 0xf012,
42905 ISA_Hitachi_H8_300H = 0xf013,
42906 ISA_Hitachi_H8S = 0xf014,
42907 ISA_Hitachi_H8_500 = 0xf015,
42908 ISA_Stanford_MIPS_X = 0xf016,
42909 ISA_Motorola_M68HC12 = 0xf017,
42910 ISA_Fujitsu_MMA_Multimedia_Accelerator=0xf018,
42911 ISA_Siemens_PCP = 0xf019,
42912 ISA_Sony_nCPU_embeeded_RISC = 0xf01a,
42913 ISA_Denso_NDR1_microprocessor=0xf01b,
42914 ISA_Motorola_Start_Core_processor=0xf01c,
42915 ISA_Toyota_ME16_processor = 0xf01d,
42916 ISA_STMicroelectronic_ST100_processor=0xf01e,
42917 ISA_Advanced_Logic_Corp_Tinyj_emb_family=0xf01f,
42918 ISA_AMD_x86_64_architecture = 0xf020,
42919 ISA_Sony_DSP_Processor = 0xf021,
42920 ISA_Siemens_FX66_microcontroller=0xf022,
42921 ISA_STMicroelectronics_ST9_plus_8_16_microcontroller=0xf023,
42922 ISA_STMicroelectronics_ST7_8bit_microcontroller=0xf024,
42923 ISA_Motorola_MC68HC16_microcontroller=0xf025,
42924 ISA_Motorola_MC68HC11_microcontroller=0xf026,
42925 ISA_Motorola_MC68HC08_microcontroller=0xf027,
42926 ISA_Motorola_MC68HC05_microcontroller=0xf028,
42927 ISA_Silicon_Graphics_SVx = 0xf029,
42928 ISA_STMicroelectronics_ST19_8bit_microcontroller=0xf02a,
42929 ISA_Digital_VAX = 0xf02b,
42930 ISA_Axis_Communications_32bit_embedded_processor=0xf02c,
42931 ISA_Infineon_Technologies_32bit_embedded_processor=0xf02d,
42932 ISA_Element_14_64bit_DSP_Processor=0xf02e,
42933 ISA_LSI_Logic_16bit_DSP_Processor=0xf02f,
42934 ISA_Donald_Knuths_educational_64bit_processor=0xf030,
42935 ISA_Harvard_University_machine_independent_object_files=0xf031,
42936 ISA_SiTera_Prism = 0xf032,
42937 ISA_Atmel_AVR_8bit_microcontroller=0xf033,
42938 ISA_Fujitsu_FR30 = 0xf034,
42939 ISA_Mitsubishi_D10V = 0xf035,
42940 ISA_Mitsubishi_D30V = 0xf036,
42941 ISA_NEC_v850 = 0xf037,
42942 ISA_Mitsubishi_M32R = 0xf038,
42943 ISA_Matsushita_MN10300 = 0xf039,
42944 ISA_Matsushita_MN10200 = 0xf03a,
42945 ISA_picoJava = 0xf03b,
42946 ISA_OpenRISC_32bit_embedded_processor=0xf03c,
42947 ISA_ARC_Cores_Tangent_A5 = 0xf03d,
42948 ISA_Tensilica_Xtensa_Architecture=0xf03e,
42949 ISA_Digital_Alpha = 0xf03f,
42950 ISA_Matsushita_AM33 = 0xf040,
42951 ISA_EFI_ByteCode = 0xf041
42952 };
42953
42964
42966 // Functions
42968public:
42970 static SgAsmGenericFile *parseBinaryFormat(const char *name);
42971
42976 static void unparseBinaryFormat(const std::string &name, SgAsmGenericFile*);
42977
42982 static void unparseBinaryFormat(std::ostream&, SgAsmGenericFile*);
42983
42986
42990 static void initDiagnostics();
42991
42992 // These convert enums to strings. It is better to use the automatic enum stringification instead. They have names like
42993 // Rose::stringifySgAsmExecutableFileFormatInsnSetArchitecture, etc. */
42994 static std::string isaFamilyToString(SgAsmExecutableFileFormat::InsSetArchitecture);
42995 static std::string isaToString(SgAsmExecutableFileFormat::InsSetArchitecture);
42996 static std::string toString(SgAsmExecutableFileFormat::InsSetArchitecture);
42997 static std::string toString(SgAsmExecutableFileFormat::ExecFamily);
42998 static std::string toString(SgAsmExecutableFileFormat::ExecABI);
42999 static std::string toString(SgAsmExecutableFileFormat::ExecPurpose);
43000
43002 // Deprecated 2023-11
43004public:
43005 static std::string isa_family_to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use isaFamilyToString");
43006 static std::string isa_to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use isaToString");
43007 static std::string to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use toString");
43008 static std::string to_string(SgAsmExecutableFileFormat::ExecFamily) ROSE_DEPRECATED("use toString");
43009 static std::string to_string(SgAsmExecutableFileFormat::ExecABI) ROSE_DEPRECATED("use toString");
43010 static std::string to_string(SgAsmExecutableFileFormat::ExecPurpose) ROSE_DEPRECATED("use toString");
43011public:
43014
43015protected:
43018
43019protected:
43027#endif // SgAsmExecutableFileFormat_OTHERS
43028#ifdef DOCUMENTATION
43029};
43030#endif // DOCUMENTATION
43031
43032
43034// SgAsmAarch64SysMoveOperand -- MACHINE GENERATED; DO NOT MODIFY --
43036
43037#ifdef ROSE_ENABLE_ASM_AARCH64
43038DECLARE_LEAF_CLASS(AsmAarch64SysMoveOperand);
43039IS_SERIALIZABLE(AsmAarch64SysMoveOperand);
43040
43041#ifndef DOCUMENTATION
43042AsmAarch64SysMoveOperand.useSmallHeader(true);
43043#endif // !DOCUMENTATION
43044
43045DECLARE_HEADERS(AsmAarch64SysMoveOperand);
43046#if defined(SgAsmAarch64SysMoveOperand_HEADERS) || defined(DOCUMENTATION)
43047#ifdef ROSE_ENABLE_ASM_AARCH64
43048#endif
43049#endif // SgAsmAarch64SysMoveOperand_HEADERS
43050
43051#ifdef DOCUMENTATION
43053class SgAsmAarch64SysMoveOperand: public SgAsmExpression {
43054#endif // DOCUMENTATION
43055
43056 DECLARE_OTHERS(AsmAarch64SysMoveOperand);
43057#if defined(SgAsmAarch64SysMoveOperand_OTHERS) || defined(DOCUMENTATION)
43058
43059 //----------------------- Boost serialization for SgAsmAarch64SysMoveOperand -----------------------
43060#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43061private:
43062 friend class boost::serialization::access;
43063
43064 template<class S>
43065 void serialize(S &s, const unsigned /*version*/) {
43066 debugSerializationBegin("SgAsmAarch64SysMoveOperand");
43067 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43068 s & BOOST_SERIALIZATION_NVP(access_);
43069 debugSerializationEnd("SgAsmAarch64SysMoveOperand");
43070 }
43071#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43072public:
43073private:
43074 unsigned access_;
43075
43076public:
43082 unsigned const& access() const;
43083 void access(unsigned const&);
43086public:
43088 virtual ~SgAsmAarch64SysMoveOperand();
43089
43090public:
43092 SgAsmAarch64SysMoveOperand();
43093
43094public:
43096 explicit SgAsmAarch64SysMoveOperand(unsigned const& access);
43097
43098protected:
43105 void initializeProperties();
43106#endif // SgAsmAarch64SysMoveOperand_OTHERS
43107#ifdef DOCUMENTATION
43108};
43109#endif // DOCUMENTATION
43110#endif
43111
43112
43114// SgAsmAarch64PrefetchOperand -- MACHINE GENERATED; DO NOT MODIFY --
43116
43117#ifdef ROSE_ENABLE_ASM_AARCH64
43118DECLARE_LEAF_CLASS(AsmAarch64PrefetchOperand);
43119IS_SERIALIZABLE(AsmAarch64PrefetchOperand);
43120
43121#ifndef DOCUMENTATION
43122AsmAarch64PrefetchOperand.useSmallHeader(true);
43123#endif // !DOCUMENTATION
43124
43125DECLARE_HEADERS(AsmAarch64PrefetchOperand);
43126#if defined(SgAsmAarch64PrefetchOperand_HEADERS) || defined(DOCUMENTATION)
43127#ifdef ROSE_ENABLE_ASM_AARCH64
43128
43129#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
43130#endif
43131#endif // SgAsmAarch64PrefetchOperand_HEADERS
43132
43133#ifdef DOCUMENTATION
43135class SgAsmAarch64PrefetchOperand: public SgAsmExpression {
43136#endif // DOCUMENTATION
43137
43138 DECLARE_OTHERS(AsmAarch64PrefetchOperand);
43139#if defined(SgAsmAarch64PrefetchOperand_OTHERS) || defined(DOCUMENTATION)
43140
43141 //----------------------- Boost serialization for SgAsmAarch64PrefetchOperand -----------------------
43142#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43143private:
43144 friend class boost::serialization::access;
43145
43146 template<class S>
43147 void serialize(S &s, const unsigned /*version*/) {
43148 debugSerializationBegin("SgAsmAarch64PrefetchOperand");
43149 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43150 s & BOOST_SERIALIZATION_NVP(operation_);
43151 debugSerializationEnd("SgAsmAarch64PrefetchOperand");
43152 }
43153#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43154public:
43155private:
43156 Rose::BinaryAnalysis::Aarch64PrefetchOperation operation_;
43157
43158public:
43164 Rose::BinaryAnalysis::Aarch64PrefetchOperation const& operation() const;
43165 void operation(Rose::BinaryAnalysis::Aarch64PrefetchOperation const&);
43168public:
43170 virtual ~SgAsmAarch64PrefetchOperand();
43171
43172public:
43174 SgAsmAarch64PrefetchOperand();
43175
43176public:
43178 explicit SgAsmAarch64PrefetchOperand(Rose::BinaryAnalysis::Aarch64PrefetchOperation const& operation);
43179
43180protected:
43187 void initializeProperties();
43188#endif // SgAsmAarch64PrefetchOperand_OTHERS
43189#ifdef DOCUMENTATION
43190};
43191#endif // DOCUMENTATION
43192#endif
43193
43194
43196// SgAsmAarch64PState -- MACHINE GENERATED; DO NOT MODIFY --
43198
43199#ifdef ROSE_ENABLE_ASM_AARCH64
43200DECLARE_LEAF_CLASS(AsmAarch64PState);
43201IS_SERIALIZABLE(AsmAarch64PState);
43202
43203#ifndef DOCUMENTATION
43204AsmAarch64PState.useSmallHeader(true);
43205#endif // !DOCUMENTATION
43206
43207DECLARE_HEADERS(AsmAarch64PState);
43208#if defined(SgAsmAarch64PState_HEADERS) || defined(DOCUMENTATION)
43209#ifdef ROSE_ENABLE_ASM_AARCH64
43210
43211#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
43212#endif
43213#endif // SgAsmAarch64PState_HEADERS
43214
43215#ifdef DOCUMENTATION
43217class SgAsmAarch64PState: public SgAsmExpression {
43218#endif // DOCUMENTATION
43219
43220 DECLARE_OTHERS(AsmAarch64PState);
43221#if defined(SgAsmAarch64PState_OTHERS) || defined(DOCUMENTATION)
43222
43223 //----------------------- Boost serialization for SgAsmAarch64PState -----------------------
43224#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43225private:
43226 friend class boost::serialization::access;
43227
43228 template<class S>
43229 void serialize(S &s, const unsigned /*version*/) {
43230 debugSerializationBegin("SgAsmAarch64PState");
43231 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43232 s & BOOST_SERIALIZATION_NVP(pstate_);
43233 debugSerializationEnd("SgAsmAarch64PState");
43234 }
43235#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43236public:
43237private:
43238 Rose::BinaryAnalysis::Aarch64PState pstate_;
43239
43240public:
43246 Rose::BinaryAnalysis::Aarch64PState const& pstate() const;
43247 void pstate(Rose::BinaryAnalysis::Aarch64PState const&);
43250public:
43252 virtual ~SgAsmAarch64PState();
43253
43254public:
43256 SgAsmAarch64PState();
43257
43258public:
43260 explicit SgAsmAarch64PState(Rose::BinaryAnalysis::Aarch64PState const& pstate);
43261
43262protected:
43269 void initializeProperties();
43270#endif // SgAsmAarch64PState_OTHERS
43271#ifdef DOCUMENTATION
43272};
43273#endif // DOCUMENTATION
43274#endif
43275
43276
43278// SgAsmAarch64Instruction -- MACHINE GENERATED; DO NOT MODIFY --
43280
43281#ifdef ROSE_ENABLE_ASM_AARCH64
43282DECLARE_LEAF_CLASS(AsmAarch64Instruction);
43283IS_SERIALIZABLE(AsmAarch64Instruction);
43284
43285#ifndef DOCUMENTATION
43286AsmAarch64Instruction.useSmallHeader(true);
43287#endif // !DOCUMENTATION
43288
43289DECLARE_HEADERS(AsmAarch64Instruction);
43290#if defined(SgAsmAarch64Instruction_HEADERS) || defined(DOCUMENTATION)
43291#ifdef ROSE_ENABLE_ASM_AARCH64
43292#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
43293#endif
43294#endif // SgAsmAarch64Instruction_HEADERS
43295
43296#ifdef DOCUMENTATION
43298class SgAsmAarch64Instruction: public SgAsmInstruction {
43299#endif // DOCUMENTATION
43300
43301#ifndef DOCUMENTATION
43302 AsmAarch64Instruction.setDataPrototype(
43303 "Rose::BinaryAnalysis::Aarch64InstructionKind", "kind", "= Rose::BinaryAnalysis::Aarch64InstructionKind::ARM64_INS_INVALID",
43304 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43305#endif // !DOCUMENTATION
43306
43307#ifndef DOCUMENTATION
43308 AsmAarch64Instruction.setDataPrototype(
43309 "Rose::BinaryAnalysis::Aarch64InstructionCondition", "condition", "= Rose::BinaryAnalysis::Aarch64InstructionCondition::ARM64_CC_INVALID",
43310 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43311#endif // !DOCUMENTATION
43312
43313#ifndef DOCUMENTATION
43314 AsmAarch64Instruction.setDataPrototype(
43315 "bool", "updatesFlags", "= false",
43316 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43317#endif // !DOCUMENTATION
43318
43319 DECLARE_OTHERS(AsmAarch64Instruction);
43320#if defined(SgAsmAarch64Instruction_OTHERS) || defined(DOCUMENTATION)
43321
43322 //----------------------- Boost serialization for SgAsmAarch64Instruction -----------------------
43323#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43324private:
43325 friend class boost::serialization::access;
43326
43327 template<class S>
43328 void serialize(S &s, const unsigned /*version*/) {
43329 debugSerializationBegin("SgAsmAarch64Instruction");
43330 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
43331 s & BOOST_SERIALIZATION_NVP(p_kind);
43332 s & BOOST_SERIALIZATION_NVP(p_condition);
43333 debugSerializationEnd("SgAsmAarch64Instruction");
43334 }
43335#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43336public:
43337public:
43344 Rose::BinaryAnalysis::Aarch64InstructionKind const& get_kind() const;
43345 void set_kind(Rose::BinaryAnalysis::Aarch64InstructionKind const&);
43348public:
43352 Rose::BinaryAnalysis::Aarch64InstructionCondition const& get_condition() const;
43353 void set_condition(Rose::BinaryAnalysis::Aarch64InstructionCondition const&);
43355 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
43356public:
43360 bool const& get_updatesFlags() const;
43361 void set_updatesFlags(bool const&);
43363public:
43364 // Overrides are documented in the base class
43365 virtual unsigned get_anyKind() const override;
43366public:
43368 virtual ~SgAsmAarch64Instruction();
43369
43370public:
43372 SgAsmAarch64Instruction();
43373
43374public:
43376 SgAsmAarch64Instruction(Rose::BinaryAnalysis::Address const& address,
43377 uint8_t const& architectureId,
43378 Rose::BinaryAnalysis::Aarch64InstructionKind const& kind,
43379 Rose::BinaryAnalysis::Aarch64InstructionCondition const& condition);
43380
43381protected:
43388 void initializeProperties();
43389#endif // SgAsmAarch64Instruction_OTHERS
43390#ifdef DOCUMENTATION
43391};
43392#endif // DOCUMENTATION
43393#endif
43394
43395
43397// SgAsmAarch64CImmediateOperand -- MACHINE GENERATED; DO NOT MODIFY --
43399
43400#ifdef ROSE_ENABLE_ASM_AARCH64
43401DECLARE_LEAF_CLASS(AsmAarch64CImmediateOperand);
43402IS_SERIALIZABLE(AsmAarch64CImmediateOperand);
43403
43404#ifndef DOCUMENTATION
43405AsmAarch64CImmediateOperand.useSmallHeader(true);
43406#endif // !DOCUMENTATION
43407
43408DECLARE_HEADERS(AsmAarch64CImmediateOperand);
43409#if defined(SgAsmAarch64CImmediateOperand_HEADERS) || defined(DOCUMENTATION)
43410#ifdef ROSE_ENABLE_ASM_AARCH64
43411#endif
43412#endif // SgAsmAarch64CImmediateOperand_HEADERS
43413
43414#ifdef DOCUMENTATION
43416class SgAsmAarch64CImmediateOperand: public SgAsmExpression {
43417#endif // DOCUMENTATION
43418
43419 DECLARE_OTHERS(AsmAarch64CImmediateOperand);
43420#if defined(SgAsmAarch64CImmediateOperand_OTHERS) || defined(DOCUMENTATION)
43421
43422 //----------------------- Boost serialization for SgAsmAarch64CImmediateOperand -----------------------
43423#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43424private:
43425 friend class boost::serialization::access;
43426
43427 template<class S>
43428 void serialize(S &s, const unsigned /*version*/) {
43429 debugSerializationBegin("SgAsmAarch64CImmediateOperand");
43430 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43431 s & BOOST_SERIALIZATION_NVP(immediate_);
43432 debugSerializationEnd("SgAsmAarch64CImmediateOperand");
43433 }
43434#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43435public:
43436private:
43437 unsigned immediate_;
43438
43439public:
43445 unsigned const& immediate() const;
43446 void immediate(unsigned const&);
43449public:
43451 virtual ~SgAsmAarch64CImmediateOperand();
43452
43453public:
43455 SgAsmAarch64CImmediateOperand();
43456
43457public:
43459 explicit SgAsmAarch64CImmediateOperand(unsigned const& immediate);
43460
43461protected:
43468 void initializeProperties();
43469#endif // SgAsmAarch64CImmediateOperand_OTHERS
43470#ifdef DOCUMENTATION
43471};
43472#endif // DOCUMENTATION
43473#endif
43474
43475
43477// SgAsmAarch64BarrierOperand -- MACHINE GENERATED; DO NOT MODIFY --
43479
43480#ifdef ROSE_ENABLE_ASM_AARCH64
43481DECLARE_LEAF_CLASS(AsmAarch64BarrierOperand);
43482IS_SERIALIZABLE(AsmAarch64BarrierOperand);
43483
43484#ifndef DOCUMENTATION
43485AsmAarch64BarrierOperand.useSmallHeader(true);
43486#endif // !DOCUMENTATION
43487
43488DECLARE_HEADERS(AsmAarch64BarrierOperand);
43489#if defined(SgAsmAarch64BarrierOperand_HEADERS) || defined(DOCUMENTATION)
43490#ifdef ROSE_ENABLE_ASM_AARCH64
43491
43492#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
43493#endif
43494#endif // SgAsmAarch64BarrierOperand_HEADERS
43495
43496#ifdef DOCUMENTATION
43498class SgAsmAarch64BarrierOperand: public SgAsmExpression {
43499#endif // DOCUMENTATION
43500
43501 DECLARE_OTHERS(AsmAarch64BarrierOperand);
43502#if defined(SgAsmAarch64BarrierOperand_OTHERS) || defined(DOCUMENTATION)
43503
43504 //----------------------- Boost serialization for SgAsmAarch64BarrierOperand -----------------------
43505#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43506private:
43507 friend class boost::serialization::access;
43508
43509 template<class S>
43510 void serialize(S &s, const unsigned /*version*/) {
43511 debugSerializationBegin("SgAsmAarch64BarrierOperand");
43512 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43513 s & BOOST_SERIALIZATION_NVP(operation_);
43514 debugSerializationEnd("SgAsmAarch64BarrierOperand");
43515 }
43516#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43517public:
43518private:
43519 Rose::BinaryAnalysis::Aarch64BarrierOperation operation_;
43520
43521public:
43525 Rose::BinaryAnalysis::Aarch64BarrierOperation const& operation() const;
43526 void operation(Rose::BinaryAnalysis::Aarch64BarrierOperation const&);
43529public:
43531 virtual ~SgAsmAarch64BarrierOperand();
43532
43533public:
43535 SgAsmAarch64BarrierOperand();
43536
43537public:
43539 explicit SgAsmAarch64BarrierOperand(Rose::BinaryAnalysis::Aarch64BarrierOperation const& operation);
43540
43541protected:
43548 void initializeProperties();
43549#endif // SgAsmAarch64BarrierOperand_OTHERS
43550#ifdef DOCUMENTATION
43551};
43552#endif // DOCUMENTATION
43553#endif
43554
43555
43557// SgAsmAarch64AtOperand -- MACHINE GENERATED; DO NOT MODIFY --
43559
43560#ifdef ROSE_ENABLE_ASM_AARCH64
43561DECLARE_LEAF_CLASS(AsmAarch64AtOperand);
43562IS_SERIALIZABLE(AsmAarch64AtOperand);
43563
43564#ifndef DOCUMENTATION
43565AsmAarch64AtOperand.useSmallHeader(true);
43566#endif // !DOCUMENTATION
43567
43568DECLARE_HEADERS(AsmAarch64AtOperand);
43569#if defined(SgAsmAarch64AtOperand_HEADERS) || defined(DOCUMENTATION)
43570#ifdef ROSE_ENABLE_ASM_AARCH64
43571
43572#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
43573#endif
43574#endif // SgAsmAarch64AtOperand_HEADERS
43575
43576#ifdef DOCUMENTATION
43578class SgAsmAarch64AtOperand: public SgAsmExpression {
43579#endif // DOCUMENTATION
43580
43581 DECLARE_OTHERS(AsmAarch64AtOperand);
43582#if defined(SgAsmAarch64AtOperand_OTHERS) || defined(DOCUMENTATION)
43583
43584 //----------------------- Boost serialization for SgAsmAarch64AtOperand -----------------------
43585#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43586private:
43587 friend class boost::serialization::access;
43588
43589 template<class S>
43590 void serialize(S &s, const unsigned /*version*/) {
43591 debugSerializationBegin("SgAsmAarch64AtOperand");
43592 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43593 s & BOOST_SERIALIZATION_NVP(operation_);
43594 debugSerializationEnd("SgAsmAarch64AtOperand");
43595 }
43596#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43597public:
43598private:
43599 Rose::BinaryAnalysis::Aarch64AtOperation operation_;
43600
43601public:
43607 Rose::BinaryAnalysis::Aarch64AtOperation const& operation() const;
43608 void operation(Rose::BinaryAnalysis::Aarch64AtOperation const&);
43611public:
43613 virtual ~SgAsmAarch64AtOperand();
43614
43615public:
43617 SgAsmAarch64AtOperand();
43618
43619public:
43621 explicit SgAsmAarch64AtOperand(Rose::BinaryAnalysis::Aarch64AtOperation const& operation);
43622
43623protected:
43630 void initializeProperties();
43631#endif // SgAsmAarch64AtOperand_OTHERS
43632#ifdef DOCUMENTATION
43633};
43634#endif // DOCUMENTATION
43635#endif
43636
43637
43639// SgAsmAarch32Instruction -- MACHINE GENERATED; DO NOT MODIFY --
43641
43642#ifdef ROSE_ENABLE_ASM_AARCH32
43643DECLARE_LEAF_CLASS(AsmAarch32Instruction);
43644IS_SERIALIZABLE(AsmAarch32Instruction);
43645
43646#ifndef DOCUMENTATION
43647AsmAarch32Instruction.useSmallHeader(true);
43648#endif // !DOCUMENTATION
43649
43650DECLARE_HEADERS(AsmAarch32Instruction);
43651#if defined(SgAsmAarch32Instruction_HEADERS) || defined(DOCUMENTATION)
43652#ifdef ROSE_ENABLE_ASM_AARCH32
43653#include <Rose/BinaryAnalysis/InstructionEnumsAarch32.h>
43654#endif
43655#endif // SgAsmAarch32Instruction_HEADERS
43656
43657#ifdef DOCUMENTATION
43659class SgAsmAarch32Instruction: public SgAsmInstruction {
43660#endif // DOCUMENTATION
43661
43662#ifndef DOCUMENTATION
43663 AsmAarch32Instruction.setDataPrototype(
43664 "Rose::BinaryAnalysis::Aarch32InstructionKind", "kind", "= Rose::BinaryAnalysis::Aarch32InstructionKind::ARM_INS_INVALID",
43665 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43666#endif // !DOCUMENTATION
43667
43668#ifndef DOCUMENTATION
43669 AsmAarch32Instruction.setDataPrototype(
43670 "Rose::BinaryAnalysis::Aarch32InstructionCondition", "condition", "= Rose::BinaryAnalysis::Aarch32InstructionCondition::ARM_CC_INVALID",
43671 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43672#endif // !DOCUMENTATION
43673
43674#ifndef DOCUMENTATION
43675 AsmAarch32Instruction.setDataPrototype(
43676 "bool", "updatesFlags", "= false",
43677 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43678#endif // !DOCUMENTATION
43679
43680#ifndef DOCUMENTATION
43681 AsmAarch32Instruction.setDataPrototype(
43682 "bool", "writesBack", "= false",
43683 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43684#endif // !DOCUMENTATION
43685
43686#ifndef DOCUMENTATION
43687 AsmAarch32Instruction.setDataPrototype(
43688 "bool", "writesToIp", "= false",
43689 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43690#endif // !DOCUMENTATION
43691
43692 DECLARE_OTHERS(AsmAarch32Instruction);
43693#if defined(SgAsmAarch32Instruction_OTHERS) || defined(DOCUMENTATION)
43694
43695 //----------------------- Boost serialization for SgAsmAarch32Instruction -----------------------
43696#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43697private:
43698 friend class boost::serialization::access;
43699
43700 template<class S>
43701 void serialize(S &s, const unsigned /*version*/) {
43702 debugSerializationBegin("SgAsmAarch32Instruction");
43703 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
43704 s & BOOST_SERIALIZATION_NVP(p_kind);
43705 s & BOOST_SERIALIZATION_NVP(p_condition);
43706 s & BOOST_SERIALIZATION_NVP(p_updatesFlags);
43707 s & BOOST_SERIALIZATION_NVP(p_writesBack);
43708 s & BOOST_SERIALIZATION_NVP(p_writesToIp);
43709 debugSerializationEnd("SgAsmAarch32Instruction");
43710 }
43711#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43712public:
43713public:
43720 Rose::BinaryAnalysis::Aarch32InstructionKind const& get_kind() const;
43721 void set_kind(Rose::BinaryAnalysis::Aarch32InstructionKind const&);
43724public:
43730 Rose::BinaryAnalysis::Aarch32InstructionCondition const& get_condition() const;
43731 void set_condition(Rose::BinaryAnalysis::Aarch32InstructionCondition const&);
43734public:
43738 bool const& get_updatesFlags() const;
43739 void set_updatesFlags(bool const&);
43742public:
43746 bool const& get_writesBack() const;
43747 void set_writesBack(bool const&);
43750public:
43757 bool const& get_writesToIp() const;
43758 void set_writesToIp(bool const&);
43760public:
43761 // Overrides are documented in the base class
43762 virtual unsigned get_anyKind() const override;
43763public:
43765 virtual ~SgAsmAarch32Instruction();
43766
43767public:
43769 SgAsmAarch32Instruction();
43770
43771public:
43773 SgAsmAarch32Instruction(Rose::BinaryAnalysis::Address const& address,
43774 uint8_t const& architectureId,
43775 Rose::BinaryAnalysis::Aarch32InstructionKind const& kind,
43776 Rose::BinaryAnalysis::Aarch32InstructionCondition const& condition);
43777
43778protected:
43785 void initializeProperties();
43786#endif // SgAsmAarch32Instruction_OTHERS
43787#ifdef DOCUMENTATION
43788};
43789#endif // DOCUMENTATION
43790#endif
43791
43792
43794// SgAsmInstruction -- MACHINE GENERATED; DO NOT MODIFY --
43796
43797#ifndef DOCUMENTATION
43798AstNodeClass& AsmInstruction = nonTerminalConstructor(
43799 "AsmInstruction",
43800 *this,
43801 "AsmInstruction",
43802 "AsmInstructionTag",
43803 SubclassListBuilder()
43804#ifdef ROSE_ENABLE_ASM_AARCH32
43805 | AsmAarch32Instruction
43806#endif
43807#ifdef ROSE_ENABLE_ASM_AARCH64
43808 | AsmAarch64Instruction
43809#endif
43810 | AsmCilInstruction
43811 | AsmJvmInstruction
43812 | AsmM68kInstruction
43813 | AsmMipsInstruction
43814 | AsmNullInstruction
43815 | AsmPowerpcInstruction
43816 | AsmUserInstruction
43817 | AsmX86Instruction
43818 , true);
43819assert(AsmInstruction.associatedGrammar != nullptr);
43820AsmInstruction.setCppCondition("!defined(DOCUMENTATION)");
43821AsmInstruction.isBoostSerializable(true);
43822AsmInstruction.setAutomaticGenerationOfConstructor(false);
43823AsmInstruction.setAutomaticGenerationOfDestructor(false);
43824#endif // !DOCUMENTATION
43825
43826#ifndef DOCUMENTATION
43827AsmInstruction.useSmallHeader(true);
43828#endif // !DOCUMENTATION
43829
43830DECLARE_HEADERS(AsmInstruction);
43831#if defined(SgAsmInstruction_HEADERS) || defined(DOCUMENTATION)
43832#include <Rose/BinaryAnalysis/Address.h>
43833#include <Rose/BinaryAnalysis/Architecture/BasicTypes.h>
43834#include <Rose/BinaryAnalysis/MemoryMap.h>
43835#include <sageContainer.h>
43836#include <Sawyer/Cached.h>
43837
43838#ifdef ROSE_SgAsmInstruction_IMPL
43839#include <SgAsmExprListExp.h>
43840#include <SgAsmOperandList.h>
43841#endif
43842#endif // SgAsmInstruction_HEADERS
43843
43844#ifdef DOCUMENTATION
43867#endif // DOCUMENTATION
43868
43869#ifndef DOCUMENTATION
43870 AsmInstruction.setDataPrototype(
43871 "uint8_t", "architectureId", "",
43872 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43873#endif // !DOCUMENTATION
43874
43875#ifndef DOCUMENTATION
43876 AsmInstruction.setDataPrototype(
43877 "SgUnsignedCharList", "rawBytes", "",
43878 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43879#endif // !DOCUMENTATION
43880
43881#ifndef DOCUMENTATION
43882 AsmInstruction.setDataPrototype(
43883 "SgAsmOperandList*", "operandList", "= nullptr",
43884 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
43885#endif // !DOCUMENTATION
43886
43887#ifndef DOCUMENTATION
43888 AsmInstruction.setDataPrototype(
43889 "SgAsmInstruction*", "delaySlot", "= nullptr",
43890 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43891#endif // !DOCUMENTATION
43892
43893#ifndef DOCUMENTATION
43894 AsmInstruction.setDataPrototype(
43895 "SgAsmExprListExp*", "semantics", "= nullptr",
43896 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
43897#endif // !DOCUMENTATION
43898
43899 DECLARE_OTHERS(AsmInstruction);
43900#if defined(SgAsmInstruction_OTHERS) || defined(DOCUMENTATION)
43901
43902 //----------------------- Boost serialization for SgAsmInstruction -----------------------
43903#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43904private:
43905 friend class boost::serialization::access;
43906
43907 template<class S>
43908 void serialize(S &s, const unsigned /*version*/) {
43909 debugSerializationBegin("SgAsmInstruction");
43910 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
43911 {
43912 auto temp = architectureIdSerialize(p_architectureId);
43913 s & boost::serialization::make_nvp("p_architectureId", temp);
43914 p_architectureId = architectureIdDeserialize(temp);
43915 }
43916 s & BOOST_SERIALIZATION_NVP(p_rawBytes);
43917 s & BOOST_SERIALIZATION_NVP(p_operandList);
43918 s & BOOST_SERIALIZATION_NVP(p_delaySlot);
43919 userSerializeBoost(s);
43920 debugSerializationEnd("SgAsmInstruction");
43921 }
43922#endif // ROSE_ENABLE_BOOST_SERIALIZATION
43924 // Local types
43926private:
43927 struct SemanticFailure {
43928 size_t n;
43929 SemanticFailure(): n(0) {}
43930
43931#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
43932 private:
43933 friend class boost::serialization::access;
43934 template<class S>
43935 void serialize(S &s, const unsigned /*version*/) {
43936 s & BOOST_SERIALIZATION_NVP(n);
43937 }
43938#endif
43939 };
43940
43942 // Properties
43944public:
43945public:
43957 uint8_t const& get_architectureId() const;
43959 // Architecture registration IDs change from run to run, so serialize the architecture name instead. The architecture names
43960 // will probably not change as frequently as their registration IDs.
43961 std::string architectureIdSerialize(uint8_t id) const;
43962 uint8_t architectureIdDeserialize(const std::string &name) const;
43963public:
43969 SgUnsignedCharList const& get_rawBytes() const;
43970 void set_rawBytes(SgUnsignedCharList const&);
43973public:
43984public:
44000 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
44001public:
44013 // Non-property data members
44015private:
44016 SemanticFailure semanticFailure_;
44017
44018public:
44023 static const int64_t INVALID_STACK_DELTA; // [Robb Matzke 2024-10-01]: deprecated; use an optional type instead
44024
44026 // Functions
44028public:
44037
44044 std::string get_mnemonic() const;
44045
44046 // [Robb Matzke 2023-12-04]: deprecated
44047 virtual std::string description() const final ROSE_DEPRECATED("use Architecture::Base::instructionDescription");
44048
44050 size_t nOperands() const;
44051
44055 SgAsmExpression* operand(size_t) const;
44056
44057 // [Robb Matzke 2023-12-04]: deprecated
44058 virtual bool terminatesBasicBlock() final ROSE_DEPRECATED("use Architecture::Base::terminatesBasicBlock");
44059 virtual bool isFunctionCallFast(const std::vector<SgAsmInstruction*>&, Rose::BinaryAnalysis::Address *target,
44060 Rose::BinaryAnalysis::Address *ret) final
44061 ROSE_DEPRECATED("use Architecture::Base::isFunctionCallFast");
44062 virtual bool isFunctionCallSlow(const std::vector<SgAsmInstruction*>&, Rose::BinaryAnalysis::Address *target,
44063 Rose::BinaryAnalysis::Address *ret) final
44064 ROSE_DEPRECATED("use Architecture::Base::isFunctionCallSlow");
44065 virtual bool isFunctionReturnFast(const std::vector<SgAsmInstruction*>&) final
44066 ROSE_DEPRECATED("use Architecture::Base::isFunctionReturnFast");
44067 virtual bool isFunctionReturnSlow(const std::vector<SgAsmInstruction*>&) final
44068 ROSE_DEPRECATED("use Architecture::Base::isFunctionReturnSlow");
44069 virtual Sawyer::Optional<Rose::BinaryAnalysis::Address> branchTarget() final
44070 ROSE_DEPRECATED("use Architecture::Base::branchTarget");
44071
44076
44081
44216 virtual bool hasEffect();
44217
44226 virtual bool hasEffect(const std::vector<SgAsmInstruction*>&, bool allow_branch=false,
44227 bool relax_stack_semantics=false);
44228
44238 virtual std::vector<std::pair<size_t,size_t> >
44239 findNoopSubsequences(const std::vector<SgAsmInstruction*>& insns, bool allow_branch=false,
44240 bool relax_stack_semantics=false);
44241
44242 // [Robb Matzke 2023-12-04]: deprecated
44243 virtual Rose::BinaryAnalysis::AddressSet getSuccessors(bool &complete)
44244 ROSE_DEPRECATED("use Architecture::Base::getSuccessors");
44245 virtual Rose::BinaryAnalysis::AddressSet getSuccessors(const std::vector<SgAsmInstruction*> &basicBlock,
44246 bool &complete,
44247 const Rose::BinaryAnalysis::MemoryMap::Ptr &initial_memory =
44248 Rose::BinaryAnalysis::MemoryMap::Ptr())
44249 ROSE_DEPRECATED("use Architecture::Base::getSuccessors");
44250
44256 virtual size_t get_size() const;
44257
44258 // [Robb Matzke 2023-12-05]: deprecated
44259 virtual bool isUnknown() const final ROSE_DEPRECATED("use Architecture::Base::isUnknown");
44260
44294 virtual unsigned get_anyKind() const;
44295
44299 virtual std::string toString() const;
44300
44304 virtual std::string toStringNoAddr() const;
44305
44310 virtual std::set<Rose::BinaryAnalysis::Address> explicitConstants() const;
44311
44321 size_t semanticFailure() const;
44322 void semanticFailure(size_t);
44335
44337 // Serialization
44339#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44340private:
44341 template<class S>
44342 void userSerializeBoost(S &s) {
44343 s & BOOST_SERIALIZATION_NVP(semanticFailure_);
44344 }
44345#endif
44346
44348 // Deprecated
44350public:
44351 // [Robb Matzke 2023-11-07]: deprecated
44352 const SgUnsignedCharList& get_raw_bytes() const ROSE_DEPRECATED("use get_rawBytes");
44353 void set_raw_bytes(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_rawBytes");
44354public:
44357
44358public:
44361
44362public:
44364 SgAsmInstruction(Rose::BinaryAnalysis::Address const& address,
44365 uint8_t const& architectureId);
44366
44367protected:
44375#endif // SgAsmInstruction_OTHERS
44376#ifdef DOCUMENTATION
44377};
44378#endif // DOCUMENTATION
44379
44380
44382// SgAsmStatement -- MACHINE GENERATED; DO NOT MODIFY --
44384
44385#ifndef DOCUMENTATION
44386AstNodeClass& AsmStatement = nonTerminalConstructor(
44387 "AsmStatement",
44388 *this,
44389 "AsmStatement",
44390 "AsmStatementTag",
44391 SubclassListBuilder()
44392 | AsmBlock
44393 | AsmInstruction
44394 | AsmStaticData
44395 | AsmSynthesizedDeclaration
44396 , false);
44397assert(AsmStatement.associatedGrammar != nullptr);
44398AsmStatement.setCppCondition("!defined(DOCUMENTATION)");
44399AsmStatement.isBoostSerializable(true);
44400AsmStatement.setAutomaticGenerationOfConstructor(false);
44401AsmStatement.setAutomaticGenerationOfDestructor(false);
44402#endif // !DOCUMENTATION
44403
44404#ifndef DOCUMENTATION
44405AsmStatement.useSmallHeader(true);
44406#endif // !DOCUMENTATION
44407
44408DECLARE_HEADERS(AsmStatement);
44409#if defined(SgAsmStatement_HEADERS) || defined(DOCUMENTATION)
44410#include <Rose/BinaryAnalysis/Address.h>
44411#endif // SgAsmStatement_HEADERS
44412
44413#ifdef DOCUMENTATION
44419#endif // DOCUMENTATION
44420
44421#ifndef DOCUMENTATION
44422 AsmStatement.setDataPrototype(
44423 "Rose::BinaryAnalysis::Address", "address", "= 0",
44424 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44425#endif // !DOCUMENTATION
44426
44427#ifndef DOCUMENTATION
44428 AsmStatement.setDataPrototype(
44429 "std::string", "comment", "",
44430 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44431#endif // !DOCUMENTATION
44432
44433 DECLARE_OTHERS(AsmStatement);
44434#if defined(SgAsmStatement_OTHERS) || defined(DOCUMENTATION)
44435
44436 //----------------------- Boost serialization for SgAsmStatement -----------------------
44437#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44438private:
44439 friend class boost::serialization::access;
44440
44441 template<class S>
44442 void serialize(S &s, const unsigned /*version*/) {
44443 debugSerializationBegin("SgAsmStatement");
44444 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
44445 s & BOOST_SERIALIZATION_NVP(p_address);
44446 s & BOOST_SERIALIZATION_NVP(p_comment);
44447 debugSerializationEnd("SgAsmStatement");
44448 }
44449#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44450public:
44451public:
44461public:
44465 std::string const& get_comment() const;
44466 void set_comment(std::string const&);
44469public:
44472
44473protected:
44476
44477protected:
44480
44481protected:
44489#endif // SgAsmStatement_OTHERS
44490#ifdef DOCUMENTATION
44491};
44492#endif // DOCUMENTATION
44493
44494
44496// SgAsmAarch32Coprocessor -- MACHINE GENERATED; DO NOT MODIFY --
44498
44499DECLARE_LEAF_CLASS(AsmAarch32Coprocessor);
44500IS_SERIALIZABLE(AsmAarch32Coprocessor);
44501
44502#ifndef DOCUMENTATION
44503AsmAarch32Coprocessor.useSmallHeader(true);
44504#endif // !DOCUMENTATION
44505
44506#ifdef DOCUMENTATION
44509#endif // DOCUMENTATION
44510
44511 DECLARE_OTHERS(AsmAarch32Coprocessor);
44512#if defined(SgAsmAarch32Coprocessor_OTHERS) || defined(DOCUMENTATION)
44513
44514 //----------------------- Boost serialization for SgAsmAarch32Coprocessor -----------------------
44515#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44516private:
44517 friend class boost::serialization::access;
44518
44519 template<class S>
44520 void serialize(S &s, const unsigned /*version*/) {
44521 debugSerializationBegin("SgAsmAarch32Coprocessor");
44522 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
44523 s & BOOST_SERIALIZATION_NVP(coprocessor_);
44524 debugSerializationEnd("SgAsmAarch32Coprocessor");
44525 }
44526#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44527public:
44528private:
44529 int coprocessor_;
44530
44531public:
44535 int const& coprocessor() const;
44536 void coprocessor(int const&);
44539public:
44542
44543public:
44546
44547public:
44550
44551protected:
44559#endif // SgAsmAarch32Coprocessor_OTHERS
44560#ifdef DOCUMENTATION
44561};
44562#endif // DOCUMENTATION
44563
44564
44566// SgAsmExpression -- MACHINE GENERATED; DO NOT MODIFY --
44568
44569#ifndef DOCUMENTATION
44570AstNodeClass& AsmExpression = nonTerminalConstructor(
44571 "AsmExpression",
44572 *this,
44573 "AsmExpression",
44574 "AsmExpressionTag",
44575 SubclassListBuilder()
44576 | AsmAarch32Coprocessor
44577#ifdef ROSE_ENABLE_ASM_AARCH64
44578 | AsmAarch64AtOperand
44579#endif
44580#ifdef ROSE_ENABLE_ASM_AARCH64
44581 | AsmAarch64BarrierOperand
44582#endif
44583#ifdef ROSE_ENABLE_ASM_AARCH64
44584 | AsmAarch64CImmediateOperand
44585#endif
44586#ifdef ROSE_ENABLE_ASM_AARCH64
44587 | AsmAarch64PState
44588#endif
44589#ifdef ROSE_ENABLE_ASM_AARCH64
44590 | AsmAarch64PrefetchOperand
44591#endif
44592#ifdef ROSE_ENABLE_ASM_AARCH64
44593 | AsmAarch64SysMoveOperand
44594#endif
44595 | AsmBinaryExpression
44596 | AsmByteOrder
44597 | AsmCommonSubExpression
44598 | AsmControlFlagsExpression
44599 | AsmExprListExp
44600 | AsmMemoryReferenceExpression
44601 | AsmRegisterNames
44602 | AsmRegisterReferenceExpression
44603 | AsmRiscOperation
44604 | AsmStackExpression
44605 | AsmUnaryExpression
44606 | AsmValueExpression
44607 , false);
44608assert(AsmExpression.associatedGrammar != nullptr);
44609AsmExpression.setCppCondition("!defined(DOCUMENTATION)");
44610AsmExpression.isBoostSerializable(true);
44611AsmExpression.setAutomaticGenerationOfConstructor(false);
44612AsmExpression.setAutomaticGenerationOfDestructor(false);
44613#endif // !DOCUMENTATION
44614
44615#ifndef DOCUMENTATION
44616AsmExpression.useSmallHeader(true);
44617#endif // !DOCUMENTATION
44618
44619#ifdef DOCUMENTATION
44622#endif // DOCUMENTATION
44623
44624#ifndef DOCUMENTATION
44625 AsmExpression.setDataPrototype(
44626 "SgAsmType*", "type", "= nullptr",
44627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44628#endif // !DOCUMENTATION
44629
44630#ifndef DOCUMENTATION
44631 AsmExpression.setDataPrototype(
44632 "std::string", "comment", "",
44633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
44634#endif // !DOCUMENTATION
44635
44636 DECLARE_OTHERS(AsmExpression);
44637#if defined(SgAsmExpression_OTHERS) || defined(DOCUMENTATION)
44638
44639 //----------------------- Boost serialization for SgAsmExpression -----------------------
44640#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44641private:
44642 friend class boost::serialization::access;
44643
44644 template<class S>
44645 void serialize(S &s, const unsigned /*version*/) {
44646 debugSerializationBegin("SgAsmExpression");
44647 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
44648 s & BOOST_SERIALIZATION_NVP(p_type);
44649 s & BOOST_SERIALIZATION_NVP(p_comment);
44650 debugSerializationEnd("SgAsmExpression");
44651 }
44652#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44653public:
44654public:
44660 SgAsmType* const& get_type() const;
44661 void set_type(SgAsmType* const&);
44664public:
44670 std::string const& get_comment() const;
44671 void set_comment(std::string const&);
44673public:
44677 size_t get_nBits() const;
44678
44684
44690
44700 virtual std::string toString() const;
44701public:
44704
44705protected:
44708
44709protected:
44717#endif // SgAsmExpression_OTHERS
44718#ifdef DOCUMENTATION
44719};
44720#endif // DOCUMENTATION
44721
44722
44724// SgAsmNode -- MACHINE GENERATED; DO NOT MODIFY --
44726
44727#ifndef DOCUMENTATION
44728AstNodeClass& AsmNode = nonTerminalConstructor(
44729 "AsmNode",
44730 *this,
44731 "AsmNode",
44732 "AsmNodeTag",
44733 SubclassListBuilder()
44734 | AsmCilNode
44735 | AsmExecutableFileFormat
44736 | AsmExpression
44737 | AsmGenericFileList
44738 | AsmInstructionList
44739 | AsmInterpretation
44740 | AsmInterpretationList
44741 | AsmJvmNode
44742 | AsmOperandList
44743 | AsmStatement
44744 | AsmType
44745 , false);
44746assert(AsmNode.associatedGrammar != nullptr);
44747AsmNode.setCppCondition("!defined(DOCUMENTATION)");
44748AsmNode.isBoostSerializable(true);
44749AsmNode.setAutomaticGenerationOfConstructor(false);
44750AsmNode.setAutomaticGenerationOfDestructor(false);
44751#endif // !DOCUMENTATION
44752
44753#ifndef DOCUMENTATION
44754AsmNode.useSmallHeader(true);
44755#endif // !DOCUMENTATION
44756
44757DECLARE_HEADERS(AsmNode);
44758#if defined(SgAsmNode_HEADERS) || defined(DOCUMENTATION)
44759#include <Sawyer/Attribute.h>
44760#include <boost/format.hpp>
44761#endif // SgAsmNode_HEADERS
44762
44763#ifdef DOCUMENTATION
44765class SgAsmNode: public SgNode {
44766#endif // DOCUMENTATION
44767
44768 DECLARE_OTHERS(AsmNode);
44769#if defined(SgAsmNode_OTHERS) || defined(DOCUMENTATION)
44770
44771 //----------------------- Boost serialization for SgAsmNode -----------------------
44772#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
44773private:
44774 friend class boost::serialization::access;
44775
44776 template<class S>
44777 void serialize(S &s, const unsigned /*version*/) {
44778 debugSerializationBegin("SgAsmNode");
44779 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgNode);
44780 debugSerializationEnd("SgAsmNode");
44781 }
44782#endif // ROSE_ENABLE_BOOST_SERIALIZATION
44783public:
44784private:
44785 Sawyer::Attribute::Storage<> attributes_;
44786
44787public:
44802public:
44804 virtual ~SgAsmNode();
44805
44806protected:
44809
44810protected:
44818#endif // SgAsmNode_OTHERS
44819#ifdef DOCUMENTATION
44820};
44821#endif // DOCUMENTATION
44822
44823#ifndef DOCUMENTATION
44824} // Grammar::setUpBinaryInstructions
44825#endif // !DOCUMENTATION
44826#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:56
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.
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.
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 efficienty access the different heaps
SgAsmCilUint8Heap * get_UsHeap() const
indices to efficienty access the different heaps
void parse()
Declares the parse function as called from the Cli section header object.
SgAsmCilUint32Heap * get_GuidHeap() const
indices to efficienty access the different heaps
SgAsmCilMetadataHeap * get_MetadataHeap() const
indices to efficienty 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.
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.
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.
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.
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 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.
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 ConstantValue attribute.
virtual ~SgAsmJvmConstantValue()
Destructor.
SgAsmJvmConstantValue(SgAsmJvmAttributeTable *table)
Initialize the object before parsing.
uint16_t const & get_constantvalue_index() const
Property: constantvalue_index.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmAttribute * 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.
void set_constantvalue_index(uint16_t const &)
Property: constantvalue_index.
SgAsmJvmConstantValue()
Default constructor.
virtual void unparse(std::ostream &) const override
Write constant value to a binary file.
JVM Deprecated attribute.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmDeprecated()
Default constructor.
virtual ~SgAsmJvmDeprecated()
Destructor.
SgAsmJvmDeprecated(SgAsmJvmAttributeTable *table)
Initialize the attribute before parsing.
virtual SgAsmJvmAttribute * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
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.
JVM Exceptions attribute.
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.
void set_exception_index_table(SgUnsigned16List const &)
Property: exception_index_table.
SgAsmJvmExceptions(SgAsmJvmAttributeTable *table)
Initialize the object before parsing.
SgAsmJvmExceptions * parse(SgAsmJvmConstantPool *) override
Initialize the object by parsing content from the class file.
virtual void unparse(std::ostream &) const override
Write the Exceptions attribute to a binary file.
SgUnsigned16List const & get_exception_index_table() const
Property: exception_index_table.
SgAsmJvmExceptions()
Default constructor.
virtual ~SgAsmJvmExceptions()
Destructor.
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.
A JVM InnerClasses attribute array entry.
void set_inner_class_info_index(uint16_t const &)
Property: inner_class_info_index.
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.
SgAsmJvmInnerClassesEntry(SgAsmJvmInnerClasses *)
Initialize the object before parsing.
virtual void unparse(std::ostream &) const override
Write inner classes entry to a binary file.
SgAsmJvmInnerClassesEntry()
Default constructor.
void set_outer_class_info_index(uint16_t const &)
Property: outer_class_info_index.
uint16_t const & get_inner_class_info_index() const
Property: inner_class_info_index.
uint16_t const & get_inner_name_index() const
Property: inner_name_index.
virtual ~SgAsmJvmInnerClassesEntry()
Destructor.
uint16_t const & get_outer_class_info_index() const
Property: outer_class_info_index.
uint16_t const & get_inner_class_access_flags() const
Property: inner_class_access_flags.
void set_inner_class_access_flags(uint16_t const &)
Property: inner_class_access_flags.
void set_inner_name_index(uint16_t const &)
Property: inner_name_index.
SgAsmJvmInnerClassesEntry * parse(SgAsmJvmConstantPool *)
Initialize the object by parsing content from the class 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.
SgAsmJvmInnerClassesEntryPtrList & get_classes()
Property: List of pointers to InnerClasses attribute entry.
SgAsmJvmInnerClasses(SgAsmJvmAttributeTable *table)
Initialize the InnerClasses attribute before parsing.
void set_classes(SgAsmJvmInnerClassesEntryPtrList 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.
SgAsmJvmInnerClassesEntryPtrList const & get_classes() const
Property: List of pointers to InnerClasses attribute entry.
SgAsmJvmInnerClasses * parse(SgAsmJvmConstantPool *) override
Parses a JVM InnerClasses attribute.
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.
uint16_t const & get_line_number() const
Property: line_number.
virtual ~SgAsmJvmLineNumberEntry()
Destructor.
void set_line_number(uint16_t const &)
Property: line_number.
SgAsmJvmLineNumberEntry(SgAsmJvmLineNumberTable *)
Initialize the object before parsing.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_start_pc(uint16_t const &)
Property: start_pc.
SgAsmJvmLineNumberEntry()
Default constructor.
SgAsmJvmLineNumberEntry * 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.
virtual void unparse(std::ostream &) const override
Write line number entry to a binary file.
uint16_t const & get_start_pc() const
Property: start_pc.
JVM LineNumberTable attribute.
SgAsmJvmLineNumberTable()
Default constructor.
void set_line_number_table(SgAsmJvmLineNumberEntryPtrList const &)
Property: line_number_table.
SgAsmJvmLineNumberEntryPtrList & 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.
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.
SgAsmJvmLineNumberEntryPtrList const & get_line_number_table() const
Property: line_number_table.
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 ModuleMainClass attribute.
void set_main_class_index(uint16_t const &)
Property: main_class_index.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual void unparse(std::ostream &) const override
Write module main class to a binary file.
uint16_t const & get_main_class_index() const
Property: main_class_index.
virtual SgAsmJvmAttribute * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
SgAsmJvmModuleMainClass(SgAsmJvmExceptionTable *table)
Initialize the object before parsing.
SgAsmJvmModuleMainClass()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual ~SgAsmJvmModuleMainClass()
Destructor.
JVM NestHost attribute.
void set_host_class_index(uint16_t const &)
Property: classes.
virtual ~SgAsmJvmNestHost()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmNestHost * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
SgAsmJvmNestHost()
Default constructor.
uint16_t const & get_host_class_index() const
Property: classes.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
virtual void unparse(std::ostream &) const override
Write object to a binary file.
SgAsmJvmNestHost(SgAsmJvmAttributeTable *table)
Initialize the attribute before parsing.
JVM NestMembers attribute.
SgUnsigned16List const & get_classes() const
Property: classes.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual ~SgAsmJvmNestMembers()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmNestMembers()
Default constructor.
SgAsmJvmNestMembers(SgAsmJvmAttributeTable *table)
Initialize the attribute before parsing.
virtual void unparse(std::ostream &) const override
Write object to a binary file.
void set_classes(SgUnsigned16List const &)
Property: classes.
virtual SgAsmJvmNestMembers * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
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 Signature attribute.
virtual SgAsmJvmAttribute * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
virtual void unparse(std::ostream &) const override
Write signature to a binary file.
uint16_t const & get_signature_index() const
Property: signature_index.
void set_signature_index(uint16_t const &)
Property: signature_index.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmJvmSignature()
Default constructor.
virtual ~SgAsmJvmSignature()
Destructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging information.
SgAsmJvmSignature(SgAsmJvmAttributeTable *table)
Initialize the attribute before parsing.
JVM SourceFile attribute.
SgAsmJvmSourceFile()
Default constructor.
SgAsmJvmSourceFile(SgAsmJvmAttributeTable *table)
Initialize the object before parsing.
virtual ~SgAsmJvmSourceFile()
Destructor.
uint16_t const & get_sourcefile_index() const
Property: sourcefile_index.
void set_sourcefile_index(uint16_t const &)
Property: sourcefile_index.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmAttribute * 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 source file 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.
JVM Synthetic attribute.
SgAsmJvmSynthetic(SgAsmJvmAttributeTable *table)
Initialize the attribute before parsing.
SgAsmJvmSynthetic()
Default constructor.
virtual ~SgAsmJvmSynthetic()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmJvmAttribute * parse(SgAsmJvmConstantPool *pool) override
Initialize the attribute by parsing the file.
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...