ROSE 0.11.145.141
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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:
303 SgAsmX86Instruction(rose_addr_t const& address,
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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:
540 SgAsmUserInstruction(rose_addr_t const& address,
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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:
1090 explicit SgAsmSynthesizedFieldDeclaration(rose_addr_t const& address);
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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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:
1175 explicit SgAsmSynthesizedDataStructureDeclaration(rose_addr_t const& address);
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
1202#ifdef DOCUMENTATION
1205#endif // DOCUMENTATION
1206
1207#ifndef DOCUMENTATION
1208 AsmStringStorage.setDataPrototype(
1209 "SgAsmGenericStrtab*", "strtab", "= nullptr",
1210 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1211#endif // !DOCUMENTATION
1212
1213#ifndef DOCUMENTATION
1214 AsmStringStorage.setDataPrototype(
1215 "std::string", "string", "",
1216 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1217#endif // !DOCUMENTATION
1218
1219#ifndef DOCUMENTATION
1220 AsmStringStorage.setDataPrototype(
1221 "rose_addr_t", "offset", "= 0",
1222 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1223#endif // !DOCUMENTATION
1224
1225 DECLARE_OTHERS(AsmStringStorage);
1226#if defined(SgAsmStringStorage_OTHERS) || defined(DOCUMENTATION)
1227
1228 //----------------------- Boost serialization for SgAsmStringStorage -----------------------
1229#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1230private:
1231 friend class boost::serialization::access;
1232
1233 template<class S>
1234 void serialize(S &s, const unsigned /*version*/) {
1235 debugSerializationBegin("SgAsmStringStorage");
1236 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
1237 s & BOOST_SERIALIZATION_NVP(p_strtab);
1238 s & BOOST_SERIALIZATION_NVP(p_string);
1239 s & BOOST_SERIALIZATION_NVP(p_offset);
1240 debugSerializationEnd("SgAsmStringStorage");
1241 }
1242#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1243public:
1244public:
1252public:
1256 std::string const& get_string() const;
1257 void set_string(std::string const&);
1260public:
1264 rose_addr_t const& get_offset() const;
1265 void set_offset(rose_addr_t const&);
1267public:
1268 SgAsmStringStorage(SgAsmGenericStrtab *strtab, const std::string &string, rose_addr_t offset);
1269
1270 void dump(FILE *s, const char *prefix, ssize_t idx) const;
1271
1272 /* Accessors. The set_* accessors are private because we don't want anyone messing with them. These data members are
1273 * used to control string allocation in ELF string tables and must only be modified by allocators in closely related
1274 * classes. For instance, to change the value of the string one should call SgAsmGenericString::set_string()
1275 * instead. */
1276
1277 private:
1278 friend class SgAsmStoredString; /*allowed to set private data members*/
1279 friend class SgAsmStoredStrtab; /*allowed to set private data members*/
1280public:
1283
1284public:
1287
1288protected:
1296#endif // SgAsmStringStorage_OTHERS
1297#ifdef DOCUMENTATION
1298};
1299#endif // DOCUMENTATION
1300
1301
1303// SgAsmStoredString -- MACHINE GENERATED; DO NOT MODIFY --
1305
1306DECLARE_LEAF_CLASS(AsmStoredString);
1307IS_SERIALIZABLE(AsmStoredString);
1308
1309#ifndef DOCUMENTATION
1310AsmStoredString.useSmallHeader(true);
1311#endif // !DOCUMENTATION
1312
1313#ifdef DOCUMENTATION
1316#endif // DOCUMENTATION
1317
1318#ifndef DOCUMENTATION
1319 AsmStoredString.setDataPrototype(
1320 "SgAsmStringStorage*", "storage", "= nullptr",
1321 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1322#endif // !DOCUMENTATION
1323
1324 DECLARE_OTHERS(AsmStoredString);
1325#if defined(SgAsmStoredString_OTHERS) || defined(DOCUMENTATION)
1326
1327 //----------------------- Boost serialization for SgAsmStoredString -----------------------
1328#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1329private:
1330 friend class boost::serialization::access;
1331
1332 template<class S>
1333 void serialize(S &s, const unsigned /*version*/) {
1334 debugSerializationBegin("SgAsmStoredString");
1335 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericString);
1336 s & BOOST_SERIALIZATION_NVP(p_storage);
1337 debugSerializationEnd("SgAsmStoredString");
1338 }
1339#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1340public:
1341public:
1348public:
1351
1354
1357
1359 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
1360
1365
1367 virtual std::string get_string(bool escape=false) const override;
1368
1372 virtual void set_string(const std::string&) override;
1373
1377 virtual void set_string(rose_addr_t) override;
1378
1382 virtual rose_addr_t get_offset() const override;
1383public:
1386
1387public:
1390
1391protected:
1399#endif // SgAsmStoredString_OTHERS
1400#ifdef DOCUMENTATION
1401};
1402#endif // DOCUMENTATION
1403
1404
1406// SgAsmStaticData -- MACHINE GENERATED; DO NOT MODIFY --
1408
1409DECLARE_LEAF_CLASS(AsmStaticData);
1410IS_SERIALIZABLE(AsmStaticData);
1411
1412#ifndef DOCUMENTATION
1413AsmStaticData.useSmallHeader(true);
1414#endif // !DOCUMENTATION
1415
1416DECLARE_HEADERS(AsmStaticData);
1417#if defined(SgAsmStaticData_HEADERS) || defined(DOCUMENTATION)
1418#include <sageContainer.h>
1419#endif // SgAsmStaticData_HEADERS
1420
1421#ifdef DOCUMENTATION
1430#endif // DOCUMENTATION
1431
1432#ifndef DOCUMENTATION
1433 AsmStaticData.setDataPrototype(
1434 "SgUnsignedCharList", "rawBytes", "",
1435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1436#endif // !DOCUMENTATION
1437
1438 DECLARE_OTHERS(AsmStaticData);
1439#if defined(SgAsmStaticData_OTHERS) || defined(DOCUMENTATION)
1440
1441 //----------------------- Boost serialization for SgAsmStaticData -----------------------
1442#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1443private:
1444 friend class boost::serialization::access;
1445
1446 template<class S>
1447 void serialize(S &s, const unsigned /*version*/) {
1448 debugSerializationBegin("SgAsmStaticData");
1449 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
1450 s & BOOST_SERIALIZATION_NVP(p_rawBytes);
1451 debugSerializationEnd("SgAsmStaticData");
1452 }
1453#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1454public:
1455public:
1462 SgUnsignedCharList const& get_rawBytes() const;
1463 void set_rawBytes(SgUnsignedCharList const&);
1465public:
1469 size_t get_size() const;
1470
1472 // Deprecated 2023-11
1474public:
1475 const SgUnsignedCharList& get_raw_bytes() const ROSE_DEPRECATED("use get_rawBytes");
1476 void set_raw_bytes(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_rawBytes");
1477public:
1479 virtual ~SgAsmStaticData();
1480
1481public:
1484
1485public:
1487 explicit SgAsmStaticData(rose_addr_t const& address);
1488
1489protected:
1496 void initializeProperties();
1497#endif // SgAsmStaticData_OTHERS
1498#ifdef DOCUMENTATION
1499};
1500#endif // DOCUMENTATION
1501
1502
1504// SgAsmStackExpression -- MACHINE GENERATED; DO NOT MODIFY --
1506
1507DECLARE_LEAF_CLASS(AsmStackExpression);
1508IS_SERIALIZABLE(AsmStackExpression);
1509
1510#ifndef DOCUMENTATION
1511AsmStackExpression.useSmallHeader(true);
1512#endif // !DOCUMENTATION
1513
1514#ifdef DOCUMENTATION
1517#endif // DOCUMENTATION
1518
1519#ifndef DOCUMENTATION
1520 AsmStackExpression.setDataPrototype(
1521 "int", "stackPosition", "= 0",
1522 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1523#endif // !DOCUMENTATION
1524
1525 DECLARE_OTHERS(AsmStackExpression);
1526#if defined(SgAsmStackExpression_OTHERS) || defined(DOCUMENTATION)
1527
1528 //----------------------- Boost serialization for SgAsmStackExpression -----------------------
1529#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1530private:
1531 friend class boost::serialization::access;
1532
1533 template<class S>
1534 void serialize(S &s, const unsigned /*version*/) {
1535 debugSerializationBegin("SgAsmStackExpression");
1536 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1537 s & BOOST_SERIALIZATION_NVP(p_stackPosition);
1538 debugSerializationEnd("SgAsmStackExpression");
1539 }
1540#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1541public:
1542public:
1549 int const& get_stackPosition() const;
1550 void set_stackPosition(int const&);
1553 // Deprecated 2023-11
1555public:
1556 int get_stack_position() const ROSE_DEPRECATED("use get_stackPosition");
1557 void set_stack_position(int) ROSE_DEPRECATED("use set_stackPosition");
1558public:
1560 virtual ~SgAsmStackExpression();
1561
1562public:
1565
1566public:
1568 explicit SgAsmStackExpression(int const& stackPosition);
1569
1570protected:
1577 void initializeProperties();
1578#endif // SgAsmStackExpression_OTHERS
1579#ifdef DOCUMENTATION
1580};
1581#endif // DOCUMENTATION
1582
1583
1585// SgAsmRiscOperation -- MACHINE GENERATED; DO NOT MODIFY --
1587
1588DECLARE_LEAF_CLASS(AsmRiscOperation);
1589IS_SERIALIZABLE(AsmRiscOperation);
1590
1591#ifndef DOCUMENTATION
1592AsmRiscOperation.useSmallHeader(true);
1593#endif // !DOCUMENTATION
1594
1595DECLARE_HEADERS(AsmRiscOperation);
1596#if defined(SgAsmRiscOperation_HEADERS) || defined(DOCUMENTATION)
1597#ifdef ROSE_SgAsmRiscOperation_IMPL
1598#include <SgAsmExprListExp.h>
1599#endif
1600#endif // SgAsmRiscOperation_HEADERS
1601
1602#ifdef DOCUMENTATION
1612#endif // DOCUMENTATION
1613
1614#ifndef DOCUMENTATION
1615 AsmRiscOperation.setDataPrototype(
1616 "SgAsmRiscOperation::RiscOperator", "riscOperator", "= OP_NONE",
1617 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1618#endif // !DOCUMENTATION
1619
1620#ifndef DOCUMENTATION
1621 AsmRiscOperation.setDataPrototype(
1622 "SgAsmExprListExp*", "operands", "= nullptr",
1623 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1624#endif // !DOCUMENTATION
1625
1626 DECLARE_OTHERS(AsmRiscOperation);
1627#if defined(SgAsmRiscOperation_OTHERS) || defined(DOCUMENTATION)
1628
1629 //----------------------- Boost serialization for SgAsmRiscOperation -----------------------
1630#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1631private:
1632 friend class boost::serialization::access;
1633
1634 template<class S>
1635 void serialize(S &s, const unsigned /*version*/) {
1636 debugSerializationBegin("SgAsmRiscOperation");
1637 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1638 s & BOOST_SERIALIZATION_NVP(p_riscOperator);
1639 s & BOOST_SERIALIZATION_NVP(p_operands);
1640 debugSerializationEnd("SgAsmRiscOperation");
1641 }
1642#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1644 // Local types
1646public:
1653 OP_NONE,
1654 OP_bottom,
1655 OP_undefined,
1656 OP_unspecified,
1657 OP_filterCallTarget,
1658 OP_filterReturnTarget,
1659 OP_filterIndirectJumpTarget,
1660 OP_hlt,
1661 OP_cpuid,
1662 OP_rdtsc,
1663 OP_and_,
1664 OP_or_,
1665 OP_xor_,
1666 OP_invert,
1667 OP_extract,
1668 OP_concat,
1669 OP_leastSignificantSetBit,
1670 OP_mostSignificantSetBit,
1671 OP_rotateLeft,
1672 OP_rotateRight,
1673 OP_shiftLeft,
1674 OP_shiftRight,
1675 OP_shiftRightArithmetic,
1676 OP_equalToZero,
1677 OP_ite,
1678 OP_isEqual,
1679 OP_isNotEqual,
1680 OP_isUnsignedLessThan,
1681 OP_isUnsignedLessThanOrEqual,
1682 OP_isUnsignedGreaterThan,
1683 OP_isUnsignedGreaterThanOrEqual,
1684 OP_isSignedLessThan,
1685 OP_isSignedLessThanOrEqual,
1686 OP_isSignedGreaterThan,
1687 OP_isSignedGreaterThanOrEqual,
1688 OP_unsignedExtend,
1689 OP_signExtend,
1692 OP_subtract,
1693 OP_negate,
1694 OP_signedDivide,
1695 OP_signedModulo,
1696 OP_signedMultiply,
1697 OP_unsignedDivide,
1698 OP_unsignedModulo,
1699 OP_unsignedMultiply,
1700 OP_interrupt,
1701 OP_readRegister,
1702 OP_peekRegister,
1703 OP_writeRegister,
1705 OP_peekMemory,
1707 OP_N_OPERATORS // MUST BE LAST!
1709
1711 // Properties
1713public:
1714 // Note that the qualification for the type is necessary only for ROSETTA. Remove it when ROSETTA finally goes away.
1715public:
1726public:
1737public:
1740
1741public:
1744
1745public:
1748
1749protected:
1757#endif // SgAsmRiscOperation_OTHERS
1758#ifdef DOCUMENTATION
1759};
1760#endif // DOCUMENTATION
1761
1762
1764// SgAsmRegisterNames -- MACHINE GENERATED; DO NOT MODIFY --
1766
1767DECLARE_LEAF_CLASS(AsmRegisterNames);
1768IS_SERIALIZABLE(AsmRegisterNames);
1769
1770#ifndef DOCUMENTATION
1771AsmRegisterNames.useSmallHeader(true);
1772#endif // !DOCUMENTATION
1773
1774DECLARE_HEADERS(AsmRegisterNames);
1775#if defined(SgAsmRegisterNames_HEADERS) || defined(DOCUMENTATION)
1776#include <sageContainer.h>
1777#endif // SgAsmRegisterNames_HEADERS
1778
1779#ifdef DOCUMENTATION
1782#endif // DOCUMENTATION
1783
1784#ifndef DOCUMENTATION
1785 AsmRegisterNames.setDataPrototype(
1786 "SgAsmRegisterReferenceExpressionPtrList", "registers", "",
1787 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1788#endif // !DOCUMENTATION
1789
1790#ifndef DOCUMENTATION
1791 AsmRegisterNames.setDataPrototype(
1792 "unsigned", "mask", "= 0",
1793 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1794#endif // !DOCUMENTATION
1795
1796 DECLARE_OTHERS(AsmRegisterNames);
1797#if defined(SgAsmRegisterNames_OTHERS) || defined(DOCUMENTATION)
1798
1799 //----------------------- Boost serialization for SgAsmRegisterNames -----------------------
1800#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1801private:
1802 friend class boost::serialization::access;
1803
1804 template<class S>
1805 void serialize(S &s, const unsigned /*version*/) {
1806 debugSerializationBegin("SgAsmRegisterNames");
1807 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1808 s & BOOST_SERIALIZATION_NVP(p_registers);
1809 s & BOOST_SERIALIZATION_NVP(p_mask);
1810 debugSerializationEnd("SgAsmRegisterNames");
1811 }
1812#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1813public:
1814public:
1821 SgAsmRegisterReferenceExpressionPtrList const& get_registers() const;
1822 SgAsmRegisterReferenceExpressionPtrList& get_registers();
1823 void set_registers(SgAsmRegisterReferenceExpressionPtrList const&);
1826public:
1833 unsigned const& get_mask() const;
1834 void set_mask(unsigned const&);
1837public:
1840
1841public:
1844
1845protected:
1853#endif // SgAsmRegisterNames_OTHERS
1854#ifdef DOCUMENTATION
1855};
1856#endif // DOCUMENTATION
1857
1858
1860// SgAsmPowerpcInstruction -- MACHINE GENERATED; DO NOT MODIFY --
1862
1863DECLARE_LEAF_CLASS(AsmPowerpcInstruction);
1864IS_SERIALIZABLE(AsmPowerpcInstruction);
1865
1866#ifndef DOCUMENTATION
1867AsmPowerpcInstruction.useSmallHeader(true);
1868#endif // !DOCUMENTATION
1869
1870DECLARE_HEADERS(AsmPowerpcInstruction);
1871#if defined(SgAsmPowerpcInstruction_HEADERS) || defined(DOCUMENTATION)
1872#include <Rose/BinaryAnalysis/InstructionEnumsPowerpc.h>
1873#endif // SgAsmPowerpcInstruction_HEADERS
1874
1875#ifdef DOCUMENTATION
1878#endif // DOCUMENTATION
1879
1880#ifndef DOCUMENTATION
1881 AsmPowerpcInstruction.setDataPrototype(
1882 "Rose::BinaryAnalysis::PowerpcInstructionKind", "kind", "= Rose::BinaryAnalysis::powerpc_unknown_instruction",
1883 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1884#endif // !DOCUMENTATION
1885
1886 DECLARE_OTHERS(AsmPowerpcInstruction);
1887#if defined(SgAsmPowerpcInstruction_OTHERS) || defined(DOCUMENTATION)
1888
1889 //----------------------- Boost serialization for SgAsmPowerpcInstruction -----------------------
1890#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1891private:
1892 friend class boost::serialization::access;
1893
1894 template<class S>
1895 void serialize(S &s, const unsigned /*version*/) {
1896 debugSerializationBegin("SgAsmPowerpcInstruction");
1897 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
1898 s & BOOST_SERIALIZATION_NVP(p_kind);
1899 debugSerializationEnd("SgAsmPowerpcInstruction");
1900 }
1901#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1902public:
1903public:
1910 Rose::BinaryAnalysis::PowerpcInstructionKind const& get_kind() const;
1911 void set_kind(Rose::BinaryAnalysis::PowerpcInstructionKind const&);
1913public:
1919 std::string conditionalBranchDescription() const;
1920
1926
1927 // Overrides are documented in the base class
1928 virtual unsigned get_anyKind() const override;
1929public:
1932
1933public:
1936
1937public:
1939 SgAsmPowerpcInstruction(rose_addr_t const& address,
1940 uint8_t const& architectureId,
1941 Rose::BinaryAnalysis::PowerpcInstructionKind const& kind);
1942
1943protected:
1951#endif // SgAsmPowerpcInstruction_OTHERS
1952#ifdef DOCUMENTATION
1953};
1954#endif // DOCUMENTATION
1955
1956
1958// SgAsmPointerType -- MACHINE GENERATED; DO NOT MODIFY --
1960
1961DECLARE_LEAF_CLASS(AsmPointerType);
1962IS_SERIALIZABLE(AsmPointerType);
1963
1964#ifndef DOCUMENTATION
1965AsmPointerType.useSmallHeader(true);
1966#endif // !DOCUMENTATION
1967
1968#ifdef DOCUMENTATION
1971#endif // DOCUMENTATION
1972
1973#ifndef DOCUMENTATION
1974 AsmPointerType.setDataPrototype(
1975 "SgAsmType *", "subtype", "",
1976 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1977#endif // !DOCUMENTATION
1978
1979 DECLARE_OTHERS(AsmPointerType);
1980#if defined(SgAsmPointerType_OTHERS) || defined(DOCUMENTATION)
1981
1982 //----------------------- Boost serialization for SgAsmPointerType -----------------------
1983#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
1984private:
1985 friend class boost::serialization::access;
1986
1987 template<class S>
1988 void serialize(S &s, const unsigned /*version*/) {
1989 debugSerializationBegin("SgAsmPointerType");
1990 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
1991 s & BOOST_SERIALIZATION_NVP(p_subtype);
1992 debugSerializationEnd("SgAsmPointerType");
1993 }
1994#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
1995public:
1996public:
1997 SgAsmType * const& get_subtype() const;
1998 void set_subtype(SgAsmType * const&);
1999public:
2002
2005
2006 virtual void check() const override;
2007 virtual std::string toString() const override;
2008public:
2011
2012public:
2015
2016protected:
2024#endif // SgAsmPointerType_OTHERS
2025#ifdef DOCUMENTATION
2026};
2027#endif // DOCUMENTATION
2028
2029
2031// SgAsmPEStringSection -- MACHINE GENERATED; DO NOT MODIFY --
2033
2034DECLARE_LEAF_CLASS(AsmPEStringSection);
2035IS_SERIALIZABLE(AsmPEStringSection);
2036
2037#ifndef DOCUMENTATION
2038AsmPEStringSection.useSmallHeader(true);
2039#endif // !DOCUMENTATION
2040
2041#ifdef DOCUMENTATION
2044#endif // DOCUMENTATION
2045
2046#ifndef DOCUMENTATION
2047 AsmPEStringSection.setDataPrototype(
2048 "SgAsmCoffStrtab*", "strtab", "= nullptr",
2049 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2050#endif // !DOCUMENTATION
2051
2052 DECLARE_OTHERS(AsmPEStringSection);
2053#if defined(SgAsmPEStringSection_OTHERS) || defined(DOCUMENTATION)
2054
2055 //----------------------- Boost serialization for SgAsmPEStringSection -----------------------
2056#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2057private:
2058 friend class boost::serialization::access;
2059
2060 template<class S>
2061 void serialize(S &s, const unsigned /*version*/) {
2062 debugSerializationBegin("SgAsmPEStringSection");
2063 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
2064 s & BOOST_SERIALIZATION_NVP(p_strtab);
2065 debugSerializationEnd("SgAsmPEStringSection");
2066 }
2067#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2068public:
2069public:
2078public:
2080 virtual SgAsmPEStringSection* parse() override;
2081 virtual bool reallocate() override;
2082 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2083 virtual void set_size(rose_addr_t newsize) override;
2084 virtual void unparse(std::ostream&) const override;
2085public:
2088
2089public:
2092
2093protected:
2101#endif // SgAsmPEStringSection_OTHERS
2102#ifdef DOCUMENTATION
2103};
2104#endif // DOCUMENTATION
2105
2106
2108// SgAsmPESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
2110
2111DECLARE_LEAF_CLASS(AsmPESectionTable);
2112IS_SERIALIZABLE(AsmPESectionTable);
2113
2114#ifndef DOCUMENTATION
2115AsmPESectionTable.useSmallHeader(true);
2116#endif // !DOCUMENTATION
2117
2118#ifdef DOCUMENTATION
2121#endif // DOCUMENTATION
2122
2123 DECLARE_OTHERS(AsmPESectionTable);
2124#if defined(SgAsmPESectionTable_OTHERS) || defined(DOCUMENTATION)
2125
2126 //----------------------- Boost serialization for SgAsmPESectionTable -----------------------
2127#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2128private:
2129 friend class boost::serialization::access;
2130
2131 template<class S>
2132 void serialize(S &s, const unsigned /*version*/) {
2133 debugSerializationBegin("SgAsmPESectionTable");
2134 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
2135 debugSerializationEnd("SgAsmPESectionTable");
2136 }
2137#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2138public:
2140 virtual SgAsmPESectionTable* parse() override;
2141
2147 virtual bool reallocate() override;
2148 virtual void unparse(std::ostream&) const override;
2149 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2150
2152 // Deprecated 2023-11
2154public:
2155 void add_section(SgAsmPESection*) ROSE_DEPRECATED("use addSection");
2156public:
2158 virtual ~SgAsmPESectionTable();
2159
2160public:
2163
2164protected:
2171 void initializeProperties();
2172#endif // SgAsmPESectionTable_OTHERS
2173#ifdef DOCUMENTATION
2174};
2175#endif // DOCUMENTATION
2176
2177
2179// SgAsmPESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
2181
2182DECLARE_LEAF_CLASS(AsmPESectionTableEntry);
2183IS_SERIALIZABLE(AsmPESectionTableEntry);
2184
2185#ifndef DOCUMENTATION
2186AsmPESectionTableEntry.useSmallHeader(true);
2187#endif // !DOCUMENTATION
2188
2189#ifdef DOCUMENTATION
2192#endif // DOCUMENTATION
2193
2194#ifndef DOCUMENTATION
2195 AsmPESectionTableEntry.setDataPrototype(
2196 "std::string", "name", "",
2197 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2198#endif // !DOCUMENTATION
2199
2200#ifndef DOCUMENTATION
2201 AsmPESectionTableEntry.setDataPrototype(
2202 "rose_addr_t", "virtual_size", "= 0",
2203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2204#endif // !DOCUMENTATION
2205
2206#ifndef DOCUMENTATION
2207 AsmPESectionTableEntry.setDataPrototype(
2208 "rose_addr_t", "rva", "= 0",
2209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2210#endif // !DOCUMENTATION
2211
2212#ifndef DOCUMENTATION
2213 AsmPESectionTableEntry.setDataPrototype(
2214 "rose_addr_t", "physical_size", "= 0",
2215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2216#endif // !DOCUMENTATION
2217
2218#ifndef DOCUMENTATION
2219 AsmPESectionTableEntry.setDataPrototype(
2220 "rose_addr_t", "physical_offset", "= 0",
2221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2222#endif // !DOCUMENTATION
2223
2224#ifndef DOCUMENTATION
2225 AsmPESectionTableEntry.setDataPrototype(
2226 "unsigned", "coff_line_nums", "= 0",
2227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2228#endif // !DOCUMENTATION
2229
2230#ifndef DOCUMENTATION
2231 AsmPESectionTableEntry.setDataPrototype(
2232 "unsigned", "n_relocs", "= 0",
2233 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2234#endif // !DOCUMENTATION
2235
2236#ifndef DOCUMENTATION
2237 AsmPESectionTableEntry.setDataPrototype(
2238 "unsigned", "n_coff_line_nums", "= 0",
2239 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2240#endif // !DOCUMENTATION
2241
2242#ifndef DOCUMENTATION
2243 AsmPESectionTableEntry.setDataPrototype(
2244 "unsigned", "flags", "= 0",
2245 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2246#endif // !DOCUMENTATION
2247
2248 DECLARE_OTHERS(AsmPESectionTableEntry);
2249#if defined(SgAsmPESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
2250
2251 //----------------------- Boost serialization for SgAsmPESectionTableEntry -----------------------
2252#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2253private:
2254 friend class boost::serialization::access;
2255
2256 template<class S>
2257 void serialize(S &s, const unsigned /*version*/) {
2258 debugSerializationBegin("SgAsmPESectionTableEntry");
2259 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2260 s & BOOST_SERIALIZATION_NVP(p_name);
2261 s & BOOST_SERIALIZATION_NVP(p_virtual_size);
2262 s & BOOST_SERIALIZATION_NVP(p_rva);
2263 s & BOOST_SERIALIZATION_NVP(p_physical_size);
2264 s & BOOST_SERIALIZATION_NVP(p_physical_offset);
2265 s & BOOST_SERIALIZATION_NVP(p_coff_line_nums);
2266 s & BOOST_SERIALIZATION_NVP(p_n_relocs);
2267 s & BOOST_SERIALIZATION_NVP(p_n_coff_line_nums);
2268 s & BOOST_SERIALIZATION_NVP(p_flags);
2269 debugSerializationEnd("SgAsmPESectionTableEntry");
2270 }
2271#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2273 // Local types
2275public:
2276#ifdef _MSC_VER
2277# pragma pack (1)
2278#endif
2279 /* File format of a section table entry. All fields are little endian. Sections are ordered by RVA. */
2281 char name[8]; /* NUL-padded */
2282 uint32_t virtual_size; /* virtual memory size, >= physical_size and difference is zero filled */
2283 uint32_t rva; /* relative virt addr wrt Image Base; multiple of section_align; dense space */
2284 uint32_t physical_size; /* bytes of initialized data on disk; multiple of file_align & <= virtual_size*/
2285 uint32_t physical_offset; /* location of initialized data on disk; multiple of file_align */
2286 uint32_t coff_line_nums; /* file offset of COFF line number info or zero */
2287 uint32_t n_relocs; /* number of relocation entries; should be zero for executables */
2288 uint32_t n_coff_line_nums; /* number of COFF line number entries */
2289 uint32_t flags; /* PESectionFlags bits: code, data, caching, paging, shared, permissions, etc.*/
2290 }
2291#if !defined(SWIG) && !defined(_MSC_VER)
2292 __attribute__((packed))
2293#endif
2294 ;
2295#ifdef _MSC_VER
2296# pragma pack ()
2297#endif
2298
2299 /* These come from the windows PE documentation and
2300 * http://en.wikibooks.org/wiki/X86_Disassembly/Windows_Executable_Files */
2301 enum PESectionFlags {
2302 OF_CODE = 0x00000020, /* section contains code */
2303 OF_IDATA = 0x00000040, /* initialized data */
2304 OF_UDATA = 0x00000080, /* uninitialized data */
2305 OF_INFO = 0x00000200, /* comments or some other type of info */
2306 OF_REMOVE = 0x00000800, /* section will not become part of image */
2307 OF_COMDAT = 0x00001000, /* section contains comdat */
2308 OF_NO_DEFER_SPEC_EXC= 0x00004000, /* reset speculative exception handling bits in the TLB entires for
2309 * this section */
2310 OF_GPREL = 0x00008000, /* section content can be access relative to GP */
2311 OF_ALIGN_1 = 0x00100000, /* no alignment */
2312 OF_ALIGN_2 = 0x00200000, /* 2-byte alignment */
2313 OF_ALIGN_4 = 0x00300000, /* 4-byte alignment */
2314 OF_ALIGN_8 = 0x00400000, /* 8-byte alignment */
2315 OF_ALIGN_16 = 0x00500000, /* 16-byte alignment (default if not other alignment specified) */
2316 OF_ALIGN_32 = 0x00600000, /* 32-byte alignment */
2317 OF_ALIGN_64 = 0x00700000, /* 64-byte alignment */
2318 OF_ALIGN_128 = 0x00800000, /* 128-byte alignment */
2319 OF_ALIGN_256 = 0x00900000, /* 256-byte alignment */
2320 OF_ALIGN_512 = 0x00a00000, /* 512-byte alignment */
2321 OF_ALIGN_1k = 0x00b00000, /* 1024-byte alignment */
2322 OF_ALIGN_2k = 0x00c00000, /* 2048-byte alignment */
2323 OF_ALIGN_4k = 0x00d00000, /* 4096-byte alignment */
2324 OF_ALIGN_8k = 0x00e00000, /* 8192-byte alignment */
2325 OF_ALIGN_MASK = 0x00f00000, /* mask for alignment value */
2326 OF_NRELOC_OVFL = 0x01000000, /* section contains extended relocations */
2327 OF_DISCARDABLE = 0x02000000, /* can be discarded */
2328 OF_NO_CACHE = 0x04000000, /* section must not be cached */
2329 OF_NO_PAGING = 0x08000000, /* section is not pageable */
2330 OF_SHARED = 0x10000000, /* section is shared */
2331 OF_EXECUTABLE = 0x20000000, /* execute permission */
2332 OF_READABLE = 0x40000000, /* read permission */
2333 OF_WRITABLE = 0x80000000 /* write permission */
2334 };
2335
2337 // Properties
2339public:
2340public:
2346 std::string const& get_name() const;
2347 void set_name(std::string const&);
2350public:
2356 rose_addr_t const& get_virtual_size() const;
2357 void set_virtual_size(rose_addr_t const&);
2360public:
2366 rose_addr_t const& get_rva() const;
2367 void set_rva(rose_addr_t const&);
2370public:
2376 rose_addr_t const& get_physical_size() const;
2377 void set_physical_size(rose_addr_t const&);
2380public:
2386 rose_addr_t const& get_physical_offset() const;
2387 void set_physical_offset(rose_addr_t const&);
2390public:
2396 unsigned const& get_coff_line_nums() const;
2397 void set_coff_line_nums(unsigned const&);
2400public:
2406 unsigned const& get_n_relocs() const;
2407 void set_n_relocs(unsigned const&);
2410public:
2416 unsigned const& get_n_coff_line_nums() const;
2417 void set_n_coff_line_nums(unsigned const&);
2420public:
2426 unsigned const& get_flags() const;
2427 void set_flags(unsigned const&);
2430 // Functions
2432public:
2434
2438 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
2439
2441 // Deprecated 2023-11
2443public:
2444 void update_from_section(SgAsmPESection*) ROSE_DEPRECATED("use updateFromSection");
2445public:
2447 virtual ~SgAsmPESectionTableEntry();
2448
2449public:
2452
2453protected:
2460 void initializeProperties();
2461#endif // SgAsmPESectionTableEntry_OTHERS
2462#ifdef DOCUMENTATION
2463};
2464#endif // DOCUMENTATION
2465
2466
2468// SgAsmPERVASizePairList -- MACHINE GENERATED; DO NOT MODIFY --
2470
2471DECLARE_LEAF_CLASS(AsmPERVASizePairList);
2472IS_SERIALIZABLE(AsmPERVASizePairList);
2473
2474#ifndef DOCUMENTATION
2475AsmPERVASizePairList.useSmallHeader(true);
2476#endif // !DOCUMENTATION
2477
2478DECLARE_HEADERS(AsmPERVASizePairList);
2479#if defined(SgAsmPERVASizePairList_HEADERS) || defined(DOCUMENTATION)
2480#include <sageContainer.h>
2481#endif // SgAsmPERVASizePairList_HEADERS
2482
2483#ifdef DOCUMENTATION
2489#endif // DOCUMENTATION
2490
2491#ifndef DOCUMENTATION
2492 AsmPERVASizePairList.setDataPrototype(
2493 "SgAsmPERVASizePairPtrList", "pairs", "",
2494 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2495#endif // !DOCUMENTATION
2496
2497 DECLARE_OTHERS(AsmPERVASizePairList);
2498#if defined(SgAsmPERVASizePairList_OTHERS) || defined(DOCUMENTATION)
2499
2500 //----------------------- Boost serialization for SgAsmPERVASizePairList -----------------------
2501#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2502private:
2503 friend class boost::serialization::access;
2504
2505 template<class S>
2506 void serialize(S &s, const unsigned /*version*/) {
2507 debugSerializationBegin("SgAsmPERVASizePairList");
2508 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2509 s & BOOST_SERIALIZATION_NVP(p_pairs);
2510 debugSerializationEnd("SgAsmPERVASizePairList");
2511 }
2512#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2513public:
2514public:
2518 SgAsmPERVASizePairPtrList const& get_pairs() const;
2519 SgAsmPERVASizePairPtrList& get_pairs();
2520 void set_pairs(SgAsmPERVASizePairPtrList const&);
2522public:
2523 explicit SgAsmPERVASizePairList(SgAsmPEFileHeader *parent);
2524public:
2527
2528public:
2531
2532protected:
2540#endif // SgAsmPERVASizePairList_OTHERS
2541#ifdef DOCUMENTATION
2542};
2543#endif // DOCUMENTATION
2544
2545
2547// SgAsmPERVASizePair -- MACHINE GENERATED; DO NOT MODIFY --
2549
2550DECLARE_LEAF_CLASS(AsmPERVASizePair);
2551IS_SERIALIZABLE(AsmPERVASizePair);
2552
2553#ifndef DOCUMENTATION
2554AsmPERVASizePair.useSmallHeader(true);
2555#endif // !DOCUMENTATION
2556
2557DECLARE_HEADERS(AsmPERVASizePair);
2558#if defined(SgAsmPERVASizePair_HEADERS) || defined(DOCUMENTATION)
2559#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
2560#endif // SgAsmPERVASizePair_HEADERS
2561
2562#ifdef DOCUMENTATION
2565#endif // DOCUMENTATION
2566
2567#ifndef DOCUMENTATION
2568 AsmPERVASizePair.setDataPrototype(
2569 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_rva", "",
2570 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2571#endif // !DOCUMENTATION
2572
2573#ifndef DOCUMENTATION
2574 AsmPERVASizePair.setDataPrototype(
2575 "rose_addr_t", "e_size", "= 0",
2576 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2577#endif // !DOCUMENTATION
2578
2579#ifndef DOCUMENTATION
2580 AsmPERVASizePair.setDataPrototype(
2581 "SgAsmGenericSection*", "section", "= nullptr",
2582 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2583#endif // !DOCUMENTATION
2584
2585 DECLARE_OTHERS(AsmPERVASizePair);
2586#if defined(SgAsmPERVASizePair_OTHERS) || defined(DOCUMENTATION)
2587
2588 //----------------------- Boost serialization for SgAsmPERVASizePair -----------------------
2589#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2590private:
2591 friend class boost::serialization::access;
2592
2593 template<class S>
2594 void serialize(S &s, const unsigned /*version*/) {
2595 debugSerializationBegin("SgAsmPERVASizePair");
2596 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2597 s & BOOST_SERIALIZATION_NVP(p_e_rva);
2598 s & BOOST_SERIALIZATION_NVP(p_e_size);
2599 s & BOOST_SERIALIZATION_NVP(p_section);
2600 debugSerializationEnd("SgAsmPERVASizePair");
2601 }
2602#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2604 // Local types
2606public:
2607#ifdef _MSC_VER
2608# pragma pack (1)
2609#endif
2614 uint32_t e_rva;
2615 uint32_t e_size;
2616 }
2617#if !defined(SWIG) && !defined(_MSC_VER)
2618 __attribute__((packed))
2619#endif
2620 ;
2621#ifdef _MSC_VER
2622# pragma pack ()
2623#endif
2624
2626 // Properties
2628public:
2629public:
2640public:
2646 rose_addr_t const& get_e_size() const;
2647 void set_e_size(rose_addr_t const&);
2650public:
2658 // Functions
2660public:
2662 SgAsmPERVASizePair(SgAsmPERVASizePairList *parent, rose_addr_t rva, rose_addr_t size);
2663
2669
2674
2675 void *encode(SgAsmPERVASizePair::RVASizePair_disk *disk) const;
2676public:
2679
2680public:
2683
2684protected:
2692#endif // SgAsmPERVASizePair_OTHERS
2693#ifdef DOCUMENTATION
2694};
2695#endif // DOCUMENTATION
2696
2697
2699// SgAsmPEImportSection -- MACHINE GENERATED; DO NOT MODIFY --
2701
2702DECLARE_LEAF_CLASS(AsmPEImportSection);
2703IS_SERIALIZABLE(AsmPEImportSection);
2704
2705#ifndef DOCUMENTATION
2706AsmPEImportSection.useSmallHeader(true);
2707#endif // !DOCUMENTATION
2708
2709DECLARE_HEADERS(AsmPEImportSection);
2710#if defined(SgAsmPEImportSection_HEADERS) || defined(DOCUMENTATION)
2711#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
2712
2713#ifdef ROSE_SgAsmPEImportSection_IMPL
2714#include <SgAsmPEImportDirectoryList.h>
2715#endif
2716#endif // SgAsmPEImportSection_HEADERS
2717
2718#ifdef DOCUMENTATION
2862#endif // DOCUMENTATION
2863
2864#ifndef DOCUMENTATION
2865 AsmPEImportSection.setDataPrototype(
2866 "SgAsmPEImportDirectoryList*", "importDirectories", "= createAndParent<SgAsmPEImportDirectoryList>(this)",
2867 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2868#endif // !DOCUMENTATION
2869
2870 DECLARE_OTHERS(AsmPEImportSection);
2871#if defined(SgAsmPEImportSection_OTHERS) || defined(DOCUMENTATION)
2872
2873 //----------------------- Boost serialization for SgAsmPEImportSection -----------------------
2874#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2875private:
2876 friend class boost::serialization::access;
2877
2878 template<class S>
2879 void serialize(S &s, const unsigned /*version*/) {
2880 debugSerializationBegin("SgAsmPEImportSection");
2881 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
2882 s & BOOST_SERIALIZATION_NVP(p_importDirectories);
2883 debugSerializationEnd("SgAsmPEImportSection");
2884 }
2885#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
2886public:
2887public:
2896public:
2898 virtual SgAsmPEImportSection *parse() override;
2899 virtual bool reallocate() override;
2900 virtual void unparse(std::ostream&) const override;
2901 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2902
2905
2908 static bool showImportMessage();
2909 static void importMessageReset();
2910
2919
2920private:
2921 static size_t mesg_nprinted; //counter for import_mesg()
2922
2924 // Deprecated 2023-11
2926public:
2927 SgAsmPEImportDirectoryList* get_import_directories() const ROSE_DEPRECATED("use get_importDirectories");
2928 void set_import_directories(SgAsmPEImportDirectoryList*) ROSE_DEPRECATED("use set_importDirectories");
2929 void add_import_directory(SgAsmPEImportDirectory*) ROSE_DEPRECATED("use addImportDirectory");
2930 void remove_import_directory(SgAsmPEImportDirectory*) ROSE_DEPRECATED("use removeImportDirectory");
2931 static bool show_import_mesg() ROSE_DEPRECATED("use showImportMessage");
2932 static void import_mesg_reset() ROSE_DEPRECATED("use importMessageReset");
2933 size_t reallocate_iats(Rose::BinaryAnalysis::RelativeVirtualAddress) ROSE_DEPRECATED("use reallocateIats");
2934public:
2937
2938public:
2941
2942protected:
2950#endif // SgAsmPEImportSection_OTHERS
2951#ifdef DOCUMENTATION
2952};
2953#endif // DOCUMENTATION
2954
2955
2957// SgAsmPEImportItemList -- MACHINE GENERATED; DO NOT MODIFY --
2959
2960DECLARE_LEAF_CLASS(AsmPEImportItemList);
2961IS_SERIALIZABLE(AsmPEImportItemList);
2962
2963#ifndef DOCUMENTATION
2964AsmPEImportItemList.useSmallHeader(true);
2965#endif // !DOCUMENTATION
2966
2967DECLARE_HEADERS(AsmPEImportItemList);
2968#if defined(SgAsmPEImportItemList_HEADERS) || defined(DOCUMENTATION)
2969#include <sageContainer.h>
2970#endif // SgAsmPEImportItemList_HEADERS
2971
2972#ifdef DOCUMENTATION
2978#endif // DOCUMENTATION
2979
2980#ifndef DOCUMENTATION
2981 AsmPEImportItemList.setDataPrototype(
2982 "SgAsmPEImportItemPtrList", "vector", "",
2983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2984#endif // !DOCUMENTATION
2985
2986 DECLARE_OTHERS(AsmPEImportItemList);
2987#if defined(SgAsmPEImportItemList_OTHERS) || defined(DOCUMENTATION)
2988
2989 //----------------------- Boost serialization for SgAsmPEImportItemList -----------------------
2990#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
2991private:
2992 friend class boost::serialization::access;
2993
2994 template<class S>
2995 void serialize(S &s, const unsigned /*version*/) {
2996 debugSerializationBegin("SgAsmPEImportItemList");
2997 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2998 s & BOOST_SERIALIZATION_NVP(p_vector);
2999 debugSerializationEnd("SgAsmPEImportItemList");
3000 }
3001#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
3002public:
3003public:
3007 SgAsmPEImportItemPtrList const& get_vector() const;
3008 SgAsmPEImportItemPtrList& get_vector();
3009 void set_vector(SgAsmPEImportItemPtrList const&);
3012public:
3015
3016public:
3019
3020protected:
3028#endif // SgAsmPEImportItemList_OTHERS
3029#ifdef DOCUMENTATION
3030};
3031#endif // DOCUMENTATION
3032
3033
3035// SgAsmPEImportItem -- MACHINE GENERATED; DO NOT MODIFY --
3037
3038DECLARE_LEAF_CLASS(AsmPEImportItem);
3039IS_SERIALIZABLE(AsmPEImportItem);
3040
3041#ifndef DOCUMENTATION
3042AsmPEImportItem.useSmallHeader(true);
3043#endif // !DOCUMENTATION
3044
3045DECLARE_HEADERS(AsmPEImportItem);
3046#if defined(SgAsmPEImportItem_HEADERS) || defined(DOCUMENTATION)
3047#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3048
3049#ifdef ROSE_SgAsmPEImportItem_IMPL
3050#include <SgAsmBasicString.h>
3051#endif
3052#endif // SgAsmPEImportItem_HEADERS
3053
3054#ifdef DOCUMENTATION
3063#endif // DOCUMENTATION
3064
3065#ifndef DOCUMENTATION
3066 AsmPEImportItem.setDataPrototype(
3067 "bool", "by_ordinal", "= true",
3068 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3069#endif // !DOCUMENTATION
3070
3071#ifndef DOCUMENTATION
3072 AsmPEImportItem.setDataPrototype(
3073 "unsigned", "ordinal", "= 0",
3074 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3075#endif // !DOCUMENTATION
3076
3077#ifndef DOCUMENTATION
3078 AsmPEImportItem.setDataPrototype(
3079 "unsigned", "hint", "= 0",
3080 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3081#endif // !DOCUMENTATION
3082
3083#ifndef DOCUMENTATION
3084 AsmPEImportItem.setDataPrototype(
3085 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
3086 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3087#endif // !DOCUMENTATION
3088
3089#ifndef DOCUMENTATION
3090 AsmPEImportItem.setDataPrototype(
3091 "Rose::BinaryAnalysis::RelativeVirtualAddress", "hintname_rva", "",
3092 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3093#endif // !DOCUMENTATION
3094
3095#ifndef DOCUMENTATION
3096 AsmPEImportItem.setDataPrototype(
3097 "size_t", "hintname_nalloc", "= 0",
3098 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3099#endif // !DOCUMENTATION
3100
3101#ifndef DOCUMENTATION
3102 AsmPEImportItem.setDataPrototype(
3103 "Rose::BinaryAnalysis::RelativeVirtualAddress", "bound_rva", "",
3104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3105#endif // !DOCUMENTATION
3106
3107#ifndef DOCUMENTATION
3108 AsmPEImportItem.setDataPrototype(
3109 "bool", "iat_written", "= false",
3110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3111#endif // !DOCUMENTATION
3112
3113 DECLARE_OTHERS(AsmPEImportItem);
3114#if defined(SgAsmPEImportItem_OTHERS) || defined(DOCUMENTATION)
3115
3116 //----------------------- Boost serialization for SgAsmPEImportItem -----------------------
3117#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
3118private:
3119 friend class boost::serialization::access;
3120
3121 template<class S>
3122 void serialize(S &s, const unsigned /*version*/) {
3123 debugSerializationBegin("SgAsmPEImportItem");
3124 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3125 s & BOOST_SERIALIZATION_NVP(p_by_ordinal);
3126 s & BOOST_SERIALIZATION_NVP(p_ordinal);
3127 s & BOOST_SERIALIZATION_NVP(p_hint);
3128 s & BOOST_SERIALIZATION_NVP(p_name);
3129 s & BOOST_SERIALIZATION_NVP(p_hintname_rva);
3130 s & BOOST_SERIALIZATION_NVP(p_hintname_nalloc);
3131 s & BOOST_SERIALIZATION_NVP(p_bound_rva);
3132 s & BOOST_SERIALIZATION_NVP(p_iat_written);
3133 debugSerializationEnd("SgAsmPEImportItem");
3134 }
3135#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
3136public:
3137public:
3143 bool const& get_by_ordinal() const;
3144 void set_by_ordinal(bool const&);
3147public:
3153 unsigned const& get_ordinal() const;
3154 void set_ordinal(unsigned const&);
3157public:
3163 unsigned const& get_hint() const;
3164 void set_hint(unsigned const&);
3167public:
3177public:
3188public:
3194 size_t const& get_hintname_nalloc() const;
3195 void set_hintname_nalloc(size_t const&);
3198public:
3209public:
3215 bool const& get_iat_written() const;
3216 void set_iat_written(bool const&);
3218public:
3219 explicit SgAsmPEImportItem(SgAsmPEImportItemList *parent);
3221 SgAsmPEImportItem(SgAsmPEImportDirectory*, const std::string &name, unsigned hint=0);
3222 SgAsmPEImportItem(SgAsmPEImportDirectory*, const unsigned ordinal);
3223
3224 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
3225
3231 size_t hintNameRequiredSize() const;
3232
3237 rose_addr_t get_iatEntryVa() const;
3238
3239private:
3240 void initFromParent(SgAsmPEImportItemList *parent);
3241
3243 // Deprecated 2023-11
3245public:
3246 size_t hintname_required_size() const ROSE_DEPRECATED("use hintNameRequiredSize");
3247 rose_addr_t get_iat_entry_va() const ROSE_DEPRECATED("use get_iatEntryVa");
3248public:
3251
3252public:
3255
3256protected:
3264#endif // SgAsmPEImportItem_OTHERS
3265#ifdef DOCUMENTATION
3266};
3267#endif // DOCUMENTATION
3268
3269
3271// SgAsmPEImportDirectoryList -- MACHINE GENERATED; DO NOT MODIFY --
3273
3274DECLARE_LEAF_CLASS(AsmPEImportDirectoryList);
3275IS_SERIALIZABLE(AsmPEImportDirectoryList);
3276
3277#ifndef DOCUMENTATION
3278AsmPEImportDirectoryList.useSmallHeader(true);
3279#endif // !DOCUMENTATION
3280
3281DECLARE_HEADERS(AsmPEImportDirectoryList);
3282#if defined(SgAsmPEImportDirectoryList_HEADERS) || defined(DOCUMENTATION)
3283#include <sageContainer.h>
3284#endif // SgAsmPEImportDirectoryList_HEADERS
3285
3286#ifdef DOCUMENTATION
3292#endif // DOCUMENTATION
3293
3294#ifndef DOCUMENTATION
3295 AsmPEImportDirectoryList.setDataPrototype(
3296 "SgAsmPEImportDirectoryPtrList", "vector", "",
3297 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3298#endif // !DOCUMENTATION
3299
3300 DECLARE_OTHERS(AsmPEImportDirectoryList);
3301#if defined(SgAsmPEImportDirectoryList_OTHERS) || defined(DOCUMENTATION)
3302
3303 //----------------------- Boost serialization for SgAsmPEImportDirectoryList -----------------------
3304#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
3305private:
3306 friend class boost::serialization::access;
3307
3308 template<class S>
3309 void serialize(S &s, const unsigned /*version*/) {
3310 debugSerializationBegin("SgAsmPEImportDirectoryList");
3311 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3312 s & BOOST_SERIALIZATION_NVP(p_vector);
3313 debugSerializationEnd("SgAsmPEImportDirectoryList");
3314 }
3315#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
3316public:
3317public:
3323 SgAsmPEImportDirectoryPtrList const& get_vector() const;
3324 SgAsmPEImportDirectoryPtrList& get_vector();
3325 void set_vector(SgAsmPEImportDirectoryPtrList const&);
3328public:
3331
3332public:
3335
3336protected:
3344#endif // SgAsmPEImportDirectoryList_OTHERS
3345#ifdef DOCUMENTATION
3346};
3347#endif // DOCUMENTATION
3348
3349
3351// SgAsmPEImportDirectory -- MACHINE GENERATED; DO NOT MODIFY --
3353
3354DECLARE_LEAF_CLASS(AsmPEImportDirectory);
3355IS_SERIALIZABLE(AsmPEImportDirectory);
3356
3357#ifndef DOCUMENTATION
3358AsmPEImportDirectory.useSmallHeader(true);
3359#endif // !DOCUMENTATION
3360
3361DECLARE_HEADERS(AsmPEImportDirectory);
3362#if defined(SgAsmPEImportDirectory_HEADERS) || defined(DOCUMENTATION)
3363#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
3364#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3365#include <sageContainer.h>
3366
3367#ifdef ROSE_SgAsmPEImportDirectory_IMPL
3368#include <SgAsmGenericString.h>
3369#include <SgAsmPEImportItemList.h>
3370#endif
3371#endif // SgAsmPEImportDirectory_HEADERS
3372
3373#ifdef DOCUMENTATION
3379#endif // DOCUMENTATION
3380
3381#ifndef DOCUMENTATION
3382 AsmPEImportDirectory.setDataPrototype(
3383 "SgAsmGenericString*", "dllName", "= nullptr",
3384 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3385#endif // !DOCUMENTATION
3386
3387#ifndef DOCUMENTATION
3388 AsmPEImportDirectory.setDataPrototype(
3389 "Rose::BinaryAnalysis::RelativeVirtualAddress", "dllNameRva", "",
3390 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3391#endif // !DOCUMENTATION
3392
3393#ifndef DOCUMENTATION
3394 AsmPEImportDirectory.setDataPrototype(
3395 "size_t", "dll_name_nalloc", "= 0",
3396 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3397#endif // !DOCUMENTATION
3398
3399#ifndef DOCUMENTATION
3400 AsmPEImportDirectory.setDataPrototype(
3401 "time_t", "time", "= 0",
3402 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3403#endif // !DOCUMENTATION
3404
3405#ifndef DOCUMENTATION
3406 AsmPEImportDirectory.setDataPrototype(
3407 "unsigned", "forwarder_chain", "= 0",
3408 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3409#endif // !DOCUMENTATION
3410
3411#ifndef DOCUMENTATION
3412 AsmPEImportDirectory.setDataPrototype(
3413 "Rose::BinaryAnalysis::RelativeVirtualAddress", "ilt_rva", "",
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", "ilt_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 "Rose::BinaryAnalysis::RelativeVirtualAddress", "iat_rva", "",
3426 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3427#endif // !DOCUMENTATION
3428
3429#ifndef DOCUMENTATION
3430 AsmPEImportDirectory.setDataPrototype(
3431 "size_t", "iat_nalloc", "= 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 "SgAsmPEImportItemList*", "imports", "= createAndParent<SgAsmPEImportItemList>(this)",
3438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3439#endif // !DOCUMENTATION
3440
3441 DECLARE_OTHERS(AsmPEImportDirectory);
3442#if defined(SgAsmPEImportDirectory_OTHERS) || defined(DOCUMENTATION)
3443
3444 //----------------------- Boost serialization for SgAsmPEImportDirectory -----------------------
3445#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
3446private:
3447 friend class boost::serialization::access;
3448
3449 template<class S>
3450 void serialize(S &s, const unsigned /*version*/) {
3451 debugSerializationBegin("SgAsmPEImportDirectory");
3452 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3453 s & BOOST_SERIALIZATION_NVP(p_dllName);
3454 s & BOOST_SERIALIZATION_NVP(p_dllNameRva);
3455 s & BOOST_SERIALIZATION_NVP(p_dll_name_nalloc);
3456 s & BOOST_SERIALIZATION_NVP(p_time);
3457 s & BOOST_SERIALIZATION_NVP(p_forwarder_chain);
3458 s & BOOST_SERIALIZATION_NVP(p_ilt_rva);
3459 s & BOOST_SERIALIZATION_NVP(p_ilt_nalloc);
3460 s & BOOST_SERIALIZATION_NVP(p_iat_rva);
3461 s & BOOST_SERIALIZATION_NVP(p_iat_nalloc);
3462 s & BOOST_SERIALIZATION_NVP(p_imports);
3463 debugSerializationEnd("SgAsmPEImportDirectory");
3464 }
3465#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
3467 // Local types
3469public:
3470#ifdef _MSC_VER
3471# pragma pack (1)
3472#endif
3474 uint32_t ilt_rva; /* 0x00 Import Lookup Table RVA */
3475 uint32_t time; /* 0x04 Zero until the image is bound, then time stamp of the DLL */
3476 uint32_t forwarder_chain; /* 0x08 Index of the first forwarder chain */
3477 uint32_t dll_name_rva; /* 0x0c address of NUL-terminated DLL name */
3478 uint32_t iat_rva; /* 0x10 Import Address Table (Thunk Table) RVA */
3479 } /* 0x14 */
3480#if !defined(SWIG) && !defined(_MSC_VER)
3481 __attribute__((packed))
3482#endif
3483 ;
3484#ifdef _MSC_VER
3485# pragma pack ()
3486#endif
3487
3489 // Properties
3491public:
3492public:
3502public:
3513public:
3519 size_t const& get_dll_name_nalloc() const;
3520 void set_dll_name_nalloc(size_t const&);
3523public:
3529 time_t const& get_time() const;
3530 void set_time(time_t const&);
3533public:
3539 unsigned const& get_forwarder_chain() const;
3540 void set_forwarder_chain(unsigned const&);
3543public:
3554public:
3560 size_t const& get_ilt_nalloc() const;
3561 void set_ilt_nalloc(size_t const&);
3564public:
3575public:
3581 size_t const& get_iat_nalloc() const;
3582 void set_iat_nalloc(size_t const&);
3585public:
3595 // Functions
3597public:
3598 explicit SgAsmPEImportDirectory(SgAsmPEImportSection *isec, const std::string &dll_name="");
3599
3605 SgAsmPEImportDirectory *parse(rose_addr_t va, bool isLastEntry);
3606
3615
3618 virtual void unparse(std::ostream&, const SgAsmPEImportSection*, size_t idx) const;
3619 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
3620
3626 size_t iatRequiredSize() const;
3627
3632 int findImportItem(const SgAsmPEImportItem *item, int hint=0) const;
3633
3646
3647private:
3648 void parse_ilt_iat(const Rose::BinaryAnalysis::RelativeVirtualAddress &table_start, bool assume_bound);
3649 void unparse_ilt_iat(std::ostream&,const Rose::BinaryAnalysis::RelativeVirtualAddress &table_start, bool assume_bound,
3650 size_t nalloc) const;
3651
3653 // Deprecated 2023-11
3655public:
3656 SgAsmGenericString* get_dll_name() const ROSE_DEPRECATED("use get_dllName");
3657 void set_dll_name(SgAsmGenericString*) ROSE_DEPRECATED("use set_dllName");
3658 const Rose::BinaryAnalysis::RelativeVirtualAddress& get_dll_name_rva() const ROSE_DEPRECATED("use get_dllNameRva");
3659 Rose::BinaryAnalysis::RelativeVirtualAddress& get_dll_name_rva() ROSE_DEPRECATED("use get_dllNameRva");
3660 void set_dll_name_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use set_dllNameRva");
3661 size_t iat_required_size() const ROSE_DEPRECATED("use iatRequiredSize");
3662 int find_import_item(const SgAsmPEImportItem*, int=0) const ROSE_DEPRECATED("use findImportItem");
3663 size_t hintname_table_extent(Rose::BinaryAnalysis::AddressIntervalSet&) const ROSE_DEPRECATED("use hintNameTableExtent");
3664public:
3667
3668public:
3671
3672protected:
3680#endif // SgAsmPEImportDirectory_OTHERS
3681#ifdef DOCUMENTATION
3682};
3683#endif // DOCUMENTATION
3684
3685
3687// SgAsmPEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
3689
3690DECLARE_LEAF_CLASS(AsmPEFileHeader);
3691IS_SERIALIZABLE(AsmPEFileHeader);
3692
3693#ifndef DOCUMENTATION
3694AsmPEFileHeader.useSmallHeader(true);
3695#endif // !DOCUMENTATION
3696
3697DECLARE_HEADERS(AsmPEFileHeader);
3698#if defined(SgAsmPEFileHeader_HEADERS) || defined(DOCUMENTATION)
3699#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3700
3701#ifdef ROSE_SgAsmPEFileHeader_IMPL
3702#include <SgAsmCoffSymbolTable.h>
3703#include <SgAsmPERVASizePairList.h>
3704#include <SgAsmPESectionTable.h>
3705#endif
3706#endif // SgAsmPEFileHeader_HEADERS
3707
3708#ifdef DOCUMENTATION
3713#endif // DOCUMENTATION
3714
3715#ifndef DOCUMENTATION
3716 AsmPEFileHeader.setDataPrototype(
3717 "unsigned", "e_cpu_type", "= 0",
3718 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3719#endif // !DOCUMENTATION
3720
3721#ifndef DOCUMENTATION
3722 AsmPEFileHeader.setDataPrototype(
3723 "unsigned", "e_nsections", "= 0",
3724 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3725#endif // !DOCUMENTATION
3726
3727#ifndef DOCUMENTATION
3728 AsmPEFileHeader.setDataPrototype(
3729 "unsigned", "e_time", "= 0",
3730 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3731#endif // !DOCUMENTATION
3732
3733#ifndef DOCUMENTATION
3734 AsmPEFileHeader.setDataPrototype(
3735 "rose_addr_t", "e_coff_symtab", "= 0",
3736 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3737#endif // !DOCUMENTATION
3738
3739#ifndef DOCUMENTATION
3740 AsmPEFileHeader.setDataPrototype(
3741 "rose_addr_t", "e_nt_hdr_size", "= 0",
3742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3743#endif // !DOCUMENTATION
3744
3745#ifndef DOCUMENTATION
3746 AsmPEFileHeader.setDataPrototype(
3747 "unsigned", "e_coff_nsyms", "= 0",
3748 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3749#endif // !DOCUMENTATION
3750
3751#ifndef DOCUMENTATION
3752 AsmPEFileHeader.setDataPrototype(
3753 "unsigned", "e_flags", "= 0",
3754 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3755#endif // !DOCUMENTATION
3756
3757#ifndef DOCUMENTATION
3758 AsmPEFileHeader.setDataPrototype(
3759 "unsigned", "e_opt_magic", "= 0",
3760 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3761#endif // !DOCUMENTATION
3762
3763#ifndef DOCUMENTATION
3764 AsmPEFileHeader.setDataPrototype(
3765 "unsigned", "e_lmajor", "= 0",
3766 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3767#endif // !DOCUMENTATION
3768
3769#ifndef DOCUMENTATION
3770 AsmPEFileHeader.setDataPrototype(
3771 "unsigned", "e_lminor", "= 0",
3772 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3773#endif // !DOCUMENTATION
3774
3775#ifndef DOCUMENTATION
3776 AsmPEFileHeader.setDataPrototype(
3777 "unsigned", "e_code_size", "= 0",
3778 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3779#endif // !DOCUMENTATION
3780
3781#ifndef DOCUMENTATION
3782 AsmPEFileHeader.setDataPrototype(
3783 "unsigned", "e_data_size", "= 0",
3784 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3785#endif // !DOCUMENTATION
3786
3787#ifndef DOCUMENTATION
3788 AsmPEFileHeader.setDataPrototype(
3789 "unsigned", "e_bss_size", "= 0",
3790 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3791#endif // !DOCUMENTATION
3792
3793#ifndef DOCUMENTATION
3794 AsmPEFileHeader.setDataPrototype(
3795 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_code_rva", "",
3796 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3797#endif // !DOCUMENTATION
3798
3799#ifndef DOCUMENTATION
3800 AsmPEFileHeader.setDataPrototype(
3801 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_data_rva", "",
3802 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3803#endif // !DOCUMENTATION
3804
3805#ifndef DOCUMENTATION
3806 AsmPEFileHeader.setDataPrototype(
3807 "unsigned", "e_section_align", "= 0",
3808 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3809#endif // !DOCUMENTATION
3810
3811#ifndef DOCUMENTATION
3812 AsmPEFileHeader.setDataPrototype(
3813 "unsigned", "e_file_align", "= 0",
3814 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3815#endif // !DOCUMENTATION
3816
3817#ifndef DOCUMENTATION
3818 AsmPEFileHeader.setDataPrototype(
3819 "unsigned", "e_os_major", "= 0",
3820 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3821#endif // !DOCUMENTATION
3822
3823#ifndef DOCUMENTATION
3824 AsmPEFileHeader.setDataPrototype(
3825 "unsigned", "e_os_minor", "= 0",
3826 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3827#endif // !DOCUMENTATION
3828
3829#ifndef DOCUMENTATION
3830 AsmPEFileHeader.setDataPrototype(
3831 "unsigned", "e_user_major", "= 0",
3832 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3833#endif // !DOCUMENTATION
3834
3835#ifndef DOCUMENTATION
3836 AsmPEFileHeader.setDataPrototype(
3837 "unsigned", "e_user_minor", "= 0",
3838 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3839#endif // !DOCUMENTATION
3840
3841#ifndef DOCUMENTATION
3842 AsmPEFileHeader.setDataPrototype(
3843 "unsigned", "e_subsys_major", "= 0",
3844 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3845#endif // !DOCUMENTATION
3846
3847#ifndef DOCUMENTATION
3848 AsmPEFileHeader.setDataPrototype(
3849 "unsigned", "e_subsys_minor", "= 0",
3850 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3851#endif // !DOCUMENTATION
3852
3853#ifndef DOCUMENTATION
3854 AsmPEFileHeader.setDataPrototype(
3855 "unsigned", "e_reserved9", "= 0",
3856 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3857#endif // !DOCUMENTATION
3858
3859#ifndef DOCUMENTATION
3860 AsmPEFileHeader.setDataPrototype(
3861 "unsigned", "e_image_size", "= 0",
3862 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3863#endif // !DOCUMENTATION
3864
3865#ifndef DOCUMENTATION
3866 AsmPEFileHeader.setDataPrototype(
3867 "unsigned", "e_header_size", "= 0",
3868 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3869#endif // !DOCUMENTATION
3870
3871#ifndef DOCUMENTATION
3872 AsmPEFileHeader.setDataPrototype(
3873 "unsigned", "e_file_checksum", "= 0",
3874 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3875#endif // !DOCUMENTATION
3876
3877#ifndef DOCUMENTATION
3878 AsmPEFileHeader.setDataPrototype(
3879 "unsigned", "e_subsystem", "= 0",
3880 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3881#endif // !DOCUMENTATION
3882
3883#ifndef DOCUMENTATION
3884 AsmPEFileHeader.setDataPrototype(
3885 "unsigned", "e_dll_flags", "= 0",
3886 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3887#endif // !DOCUMENTATION
3888
3889#ifndef DOCUMENTATION
3890 AsmPEFileHeader.setDataPrototype(
3891 "unsigned", "e_stack_reserve_size", "= 0",
3892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3893#endif // !DOCUMENTATION
3894
3895#ifndef DOCUMENTATION
3896 AsmPEFileHeader.setDataPrototype(
3897 "unsigned", "e_stack_commit_size", "= 0",
3898 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3899#endif // !DOCUMENTATION
3900
3901#ifndef DOCUMENTATION
3902 AsmPEFileHeader.setDataPrototype(
3903 "unsigned", "e_heap_reserve_size", "= 0",
3904 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3905#endif // !DOCUMENTATION
3906
3907#ifndef DOCUMENTATION
3908 AsmPEFileHeader.setDataPrototype(
3909 "unsigned", "e_heap_commit_size", "= 0",
3910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3911#endif // !DOCUMENTATION
3912
3913#ifndef DOCUMENTATION
3914 AsmPEFileHeader.setDataPrototype(
3915 "unsigned", "e_loader_flags", "= 0",
3916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3917#endif // !DOCUMENTATION
3918
3919#ifndef DOCUMENTATION
3920 AsmPEFileHeader.setDataPrototype(
3921 "unsigned", "e_num_rvasize_pairs", "= 0",
3922 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3923#endif // !DOCUMENTATION
3924
3925#ifndef DOCUMENTATION
3926 AsmPEFileHeader.setDataPrototype(
3927 "SgAsmPERVASizePairList*", "rvaSizePairs", "= nullptr",
3928 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3929#endif // !DOCUMENTATION
3930
3931#ifndef DOCUMENTATION
3932 AsmPEFileHeader.setDataPrototype(
3933 "SgAsmPESectionTable*", "sectionTable", "= nullptr",
3934 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3935#endif // !DOCUMENTATION
3936
3937#ifndef DOCUMENTATION
3938 AsmPEFileHeader.setDataPrototype(
3939 "SgAsmCoffSymbolTable*", "coffSymbolTable", "= nullptr",
3940 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3941#endif // !DOCUMENTATION
3942
3943 DECLARE_OTHERS(AsmPEFileHeader);
3944#if defined(SgAsmPEFileHeader_OTHERS) || defined(DOCUMENTATION)
3945
3946 //----------------------- Boost serialization for SgAsmPEFileHeader -----------------------
3947#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
3948private:
3949 friend class boost::serialization::access;
3950
3951 template<class S>
3952 void serialize(S &s, const unsigned /*version*/) {
3953 debugSerializationBegin("SgAsmPEFileHeader");
3954 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
3955 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
3956 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
3957 s & BOOST_SERIALIZATION_NVP(p_e_time);
3958 s & BOOST_SERIALIZATION_NVP(p_e_coff_symtab);
3959 s & BOOST_SERIALIZATION_NVP(p_e_nt_hdr_size);
3960 s & BOOST_SERIALIZATION_NVP(p_e_coff_nsyms);
3961 s & BOOST_SERIALIZATION_NVP(p_e_flags);
3962 s & BOOST_SERIALIZATION_NVP(p_e_opt_magic);
3963 s & BOOST_SERIALIZATION_NVP(p_e_lmajor);
3964 s & BOOST_SERIALIZATION_NVP(p_e_lminor);
3965 s & BOOST_SERIALIZATION_NVP(p_e_code_size);
3966 s & BOOST_SERIALIZATION_NVP(p_e_data_size);
3967 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
3968 s & BOOST_SERIALIZATION_NVP(p_e_code_rva);
3969 s & BOOST_SERIALIZATION_NVP(p_e_data_rva);
3970 s & BOOST_SERIALIZATION_NVP(p_e_section_align);
3971 s & BOOST_SERIALIZATION_NVP(p_e_file_align);
3972 s & BOOST_SERIALIZATION_NVP(p_e_os_major);
3973 s & BOOST_SERIALIZATION_NVP(p_e_os_minor);
3974 s & BOOST_SERIALIZATION_NVP(p_e_user_major);
3975 s & BOOST_SERIALIZATION_NVP(p_e_user_minor);
3976 s & BOOST_SERIALIZATION_NVP(p_e_subsys_major);
3977 s & BOOST_SERIALIZATION_NVP(p_e_subsys_minor);
3978 s & BOOST_SERIALIZATION_NVP(p_e_reserved9);
3979 s & BOOST_SERIALIZATION_NVP(p_e_image_size);
3980 s & BOOST_SERIALIZATION_NVP(p_e_header_size);
3981 s & BOOST_SERIALIZATION_NVP(p_e_file_checksum);
3982 s & BOOST_SERIALIZATION_NVP(p_e_subsystem);
3983 s & BOOST_SERIALIZATION_NVP(p_e_dll_flags);
3984 s & BOOST_SERIALIZATION_NVP(p_e_stack_reserve_size);
3985 s & BOOST_SERIALIZATION_NVP(p_e_stack_commit_size);
3986 s & BOOST_SERIALIZATION_NVP(p_e_heap_reserve_size);
3987 s & BOOST_SERIALIZATION_NVP(p_e_heap_commit_size);
3988 s & BOOST_SERIALIZATION_NVP(p_e_loader_flags);
3989 s & BOOST_SERIALIZATION_NVP(p_e_num_rvasize_pairs);
3990 s & BOOST_SERIALIZATION_NVP(p_rvaSizePairs);
3991 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
3992 s & BOOST_SERIALIZATION_NVP(p_coffSymbolTable);
3993 debugSerializationEnd("SgAsmPEFileHeader");
3994 }
3995#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
3997 // Local types
3999public:
4000#ifdef _MSC_VER
4001# pragma pack (1)
4002#endif
4003 /* File format of a PE File Header. All fields are little endian. */
4005 unsigned char e_magic[4]; /* 0x00 magic number "PE\0\0" */
4006 uint16_t e_cpu_type; /* 0x04 e.g., 0x014c = Intel 386 */
4007 uint16_t e_nsections; /* 0x06 number of sections defined in the Section Table */
4008 uint32_t e_time; /* 0x08 time and date file was created or modified by the linker */
4009 uint32_t e_coff_symtab; /* 0x0c offset to COFF symbol table */
4010 uint32_t e_coff_nsyms; /* 0x10 number of symbols in COFF symbol table */
4011 uint16_t e_nt_hdr_size; /* 0x14 num remaining bytes in the header following the 'flags' field */
4012 uint16_t e_flags; /* 0x16 Bit flags: exe file, program/library image, fixed address, etc. */
4013 } /* 0x18 */
4014#if !defined(SWIG) && !defined(_MSC_VER)
4015 __attribute__((packed))
4016#endif
4017 ;
4018
4020 uint16_t e_opt_magic; /* 0x18 magic number */
4021 uint16_t e_lmajor; /* 0x1a linker version */
4022 uint16_t e_lminor; /* 0x1c */
4023 uint16_t e_code_size; /* 0x1e Size of .text or sum of all code sections */
4024 uint32_t e_data_size; /* 0x20 Sum size of initialized data */
4025 uint32_t e_bss_size; /* 0x24 Sum size of uninitialized data */
4026 uint32_t e_entrypoint_rva; /* 0x28 RVA="relative virtual address"; relative to 'image_base', below */
4027 uint32_t e_code_rva; /* 0x2c Addr relative to image base for code section when memory mapped */
4028 uint32_t e_data_rva; /* 0x30 Address relative to image base for data section */
4029 uint32_t e_image_base; /* 0x34 Virt base of image (first byte of file, DOS header). 64k aligned */
4030 uint32_t e_section_align; /* 0x38 Alignment of sections in memory. Power of two 512<=x<=256M */
4031 uint32_t e_file_align; /* 0x3c Alignment factor (in bytes) for image pages */
4032 uint16_t e_os_major; /* 0x40 OS version number required to run this image */
4033 uint16_t e_os_minor; /* 0x42 */
4034 uint16_t e_user_major; /* 0x44 User-specified for differentiating between image revs */
4035 uint16_t e_user_minor; /* 0x46 */
4036 uint16_t e_subsys_major; /* 0x48 Subsystem version number */
4037 uint16_t e_subsys_minor; /* 0x4a */
4038 uint32_t e_reserved9; /* 0x4c */
4039 uint32_t e_image_size; /* 0x50 Virtual size of the image inc. all headers; section_align */
4040 uint32_t e_header_size; /* 0x54 Total header size (DOS Header + PE Header + Section table */
4041 uint32_t e_file_checksum; /* 0x58 Checksum for entire file; Set to zero by the linker */
4042 uint16_t e_subsystem; /* 0x5c Native, WindowsGUI, WindowsCharacter, OS/2 Character, etc. */
4043 uint16_t e_dll_flags; /* 0x5e Bit flags for library init/terminate per process or thread */
4044 uint32_t e_stack_reserve_size;/*0x60 Virtual mem reserved for stack; non-committed pages are guards */
4045 uint32_t e_stack_commit_size;/* 0x64 Size of valid stack; other pages are guards; <=stack_reserve_size*/
4046 uint32_t e_heap_reserve_size;/* 0x68 Size (bytes) of local heap to reserve */
4047 uint32_t e_heap_commit_size; /* 0x6c Size (bytes) of valid local heap */
4048 uint32_t e_loader_flags; /* 0x70 Reserved, must be zero */
4049 uint32_t e_num_rvasize_pairs;/* 0x74 Num RVASizePair entries that follow this member; part of header */
4050 } /* 0x78 */
4051#if !defined(SWIG) && !defined(_MSC_VER)
4052 __attribute__((packed))
4053#endif
4054 ;
4055
4057 uint16_t e_opt_magic; /* 0x18 */
4058 uint16_t e_lmajor; /* 0x1a */
4059 uint16_t e_lminor; /* 0x1c */
4060 uint16_t e_code_size; /* 0x1e */
4061 uint32_t e_data_size; /* 0x20 */
4062 uint32_t e_bss_size; /* 0x24 */
4063 uint32_t e_entrypoint_rva; /* 0x28 */
4064 uint32_t e_code_rva; /* 0x2c */
4065 // uint32_t e_data_rva; /* Not present in PE32+ */
4066 uint64_t e_image_base; /* 0x30 */
4067 uint32_t e_section_align; /* 0x38 */
4068 uint32_t e_file_align; /* 0x3c */
4069 uint16_t e_os_major; /* 0x40 */
4070 uint16_t e_os_minor; /* 0x42 */
4071 uint16_t e_user_major; /* 0x44 */
4072 uint16_t e_user_minor; /* 0x46 */
4073 uint16_t e_subsys_major; /* 0x48 */
4074 uint16_t e_subsys_minor; /* 0x4a */
4075 uint32_t e_reserved9; /* 0x4c */
4076 uint32_t e_image_size; /* 0x50 */
4077 uint32_t e_header_size; /* 0x54 */
4078 uint32_t e_file_checksum; /* 0x58 */
4079 uint16_t e_subsystem; /* 0x5c */
4080 uint16_t e_dll_flags; /* 0x5e */
4081 uint64_t e_stack_reserve_size;/*0x60 */
4082 uint64_t e_stack_commit_size;/* 0x68 */
4083 uint64_t e_heap_reserve_size;/* 0x70 */
4084 uint64_t e_heap_commit_size; /* 0x78 */
4085 uint32_t e_loader_flags; /* 0x80 */
4086 uint32_t e_num_rvasize_pairs;/* 0x84 */
4087 } /* 0x88 */
4088#if !defined(SWIG) && !defined(_MSC_VER)
4089 __attribute__((packed))
4090#endif
4091 ;
4092#ifdef _MSC_VER
4093# pragma pack ()
4094#endif
4095
4096 /* Bit flags for the PE header 'flags' member */
4097 enum HeaderFlags {
4098 HF_PROGRAM = 0x0000, /* Program image (no non-reserved bits set) */
4099 HF_EXECUTABLE = 0x0002, /* Clear indicates can't load: link errors or incrementally linked */
4100 HF_FIXED = 0x0200, /* Image *must* be loaded at image_base address or error */
4101 HF_LIBRARY = 0x2000, /* Library image */
4102 HF_RESERVED_MASK = 0xddfd /* Reserved bits */
4103 };
4104
4105 /* Values for the PE header 'subsystem' member */
4106 enum Subsystem {
4107 HF_SPEC_UNKNOWN = 0x0000, /* Specified as 'unknown' in the file */
4108 HF_NATIVE = 0x0001, /* Native */
4109 HF_WINGUI = 0x0002, /* Windows GUI */
4110 HF_WINCHAR = 0x0003, /* Windows character */
4111 HF_OS2CHAR = 0x0005, /* OS/2 character */
4112 HF_POSIX = 0x0007 /* POSIX character */
4113 };
4114
4115 /* Bit flags for the PE header 'dll_flags' member */
4116 enum DLLFlags {
4117 DLL_PROC_INIT = 0x0001, /* Per-process library initialization */
4118 DLL_PROC_TERM = 0x0002, /* Per-process library termination */
4119 DLL_THRD_INIT = 0x0004, /* Per-thread library initialization */
4120 DLL_THRD_TERM = 0x0008, /* Per-thread library termination */
4121 DLL_RESERVED_MASK = 0xfff0 /* Reserved bits */
4122 };
4123
4125 enum PairPurpose { // Values are important
4126 PAIR_EXPORTS = 0,
4127 PAIR_IMPORTS = 1,
4128 PAIR_RESOURCES = 2,
4129 PAIR_EXCEPTIONS = 3,
4130 PAIR_CERTIFICATES = 4,
4131 PAIR_BASERELOCS = 5,
4132 PAIR_DEBUG = 6,
4133 PAIR_ARCHITECTURE = 7,
4134 PAIR_GLOBALPTR = 8,
4135 PAIR_TLS = 9, // Thread local storage
4136 PAIR_LOADCONFIG = 10,
4137 PAIR_BOUNDIMPORT = 11,
4138 PAIR_IAT = 12, // Import address table
4139 PAIR_DELAYIMPORT = 13, // Delay import descriptor
4140 PAIR_CLRRUNTIME = 14, // CLR(?) runtime header
4141 PAIR_RESERVED15 = 15 // Reserved (always zero according to specification)
4142 };
4143
4145 // Properties
4147public:
4148public:
4154 unsigned const& get_e_cpu_type() const;
4155 void set_e_cpu_type(unsigned const&);
4158public:
4164 unsigned const& get_e_nsections() const;
4165 void set_e_nsections(unsigned const&);
4168public:
4174 unsigned const& get_e_time() const;
4175 void set_e_time(unsigned const&);
4178public:
4184 rose_addr_t const& get_e_coff_symtab() const;
4185 void set_e_coff_symtab(rose_addr_t const&);
4188public:
4194 rose_addr_t const& get_e_nt_hdr_size() const;
4195 void set_e_nt_hdr_size(rose_addr_t const&);
4198public:
4204 unsigned const& get_e_coff_nsyms() const;
4205 void set_e_coff_nsyms(unsigned const&);
4208public:
4214 unsigned const& get_e_flags() const;
4215 void set_e_flags(unsigned const&);
4218public:
4224 unsigned const& get_e_opt_magic() const;
4225 void set_e_opt_magic(unsigned const&);
4228public:
4234 unsigned const& get_e_lmajor() const;
4235 void set_e_lmajor(unsigned const&);
4238public:
4244 unsigned const& get_e_lminor() const;
4245 void set_e_lminor(unsigned const&);
4248public:
4254 unsigned const& get_e_code_size() const;
4255 void set_e_code_size(unsigned const&);
4258public:
4264 unsigned const& get_e_data_size() const;
4265 void set_e_data_size(unsigned const&);
4268public:
4274 unsigned const& get_e_bss_size() const;
4275 void set_e_bss_size(unsigned const&);
4278public:
4289public:
4300public:
4306 unsigned const& get_e_section_align() const;
4307 void set_e_section_align(unsigned const&);
4310public:
4316 unsigned const& get_e_file_align() const;
4317 void set_e_file_align(unsigned const&);
4320public:
4326 unsigned const& get_e_os_major() const;
4327 void set_e_os_major(unsigned const&);
4330public:
4336 unsigned const& get_e_os_minor() const;
4337 void set_e_os_minor(unsigned const&);
4340public:
4346 unsigned const& get_e_user_major() const;
4347 void set_e_user_major(unsigned const&);
4350public:
4356 unsigned const& get_e_user_minor() const;
4357 void set_e_user_minor(unsigned const&);
4360public:
4366 unsigned const& get_e_subsys_major() const;
4367 void set_e_subsys_major(unsigned const&);
4370public:
4376 unsigned const& get_e_subsys_minor() const;
4377 void set_e_subsys_minor(unsigned const&);
4380public:
4386 unsigned const& get_e_reserved9() const;
4387 void set_e_reserved9(unsigned const&);
4390public:
4396 unsigned const& get_e_image_size() const;
4397 void set_e_image_size(unsigned const&);
4400public:
4406 unsigned const& get_e_header_size() const;
4407 void set_e_header_size(unsigned const&);
4410public:
4416 unsigned const& get_e_file_checksum() const;
4417 void set_e_file_checksum(unsigned const&);
4420public:
4426 unsigned const& get_e_subsystem() const;
4427 void set_e_subsystem(unsigned const&);
4430public:
4436 unsigned const& get_e_dll_flags() const;
4437 void set_e_dll_flags(unsigned const&);
4440public:
4446 unsigned const& get_e_stack_reserve_size() const;
4447 void set_e_stack_reserve_size(unsigned const&);
4450public:
4456 unsigned const& get_e_stack_commit_size() const;
4457 void set_e_stack_commit_size(unsigned const&);
4460public:
4466 unsigned const& get_e_heap_reserve_size() const;
4467 void set_e_heap_reserve_size(unsigned const&);
4470public:
4476 unsigned const& get_e_heap_commit_size() const;
4477 void set_e_heap_commit_size(unsigned const&);
4480public:
4486 unsigned const& get_e_loader_flags() const;
4487 void set_e_loader_flags(unsigned const&);
4490public:
4496 unsigned const& get_e_num_rvasize_pairs() const;
4497 void set_e_num_rvasize_pairs(unsigned const&);
4500public:
4510public:
4520public:
4530 // Functions
4532public:
4534
4535 virtual const char* formatName() const override;
4536
4542 static bool isPe(SgAsmGenericFile*);
4543
4550 std::string rvaSizePairName(PairPurpose, const char **short_name);
4551
4554
4557
4558 void addRvaSizePairs();
4559
4560 virtual SgAsmPEFileHeader *parse() override;
4561 virtual bool reallocate() override;
4562 virtual void unparse(std::ostream&) const override;
4563 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4564 void createTableSections();
4565
4566 /* Loader memory maps */
4567 Rose::BinaryAnalysis::MemoryMap::Ptr get_loaderMap() const;
4568 void set_loaderMap(const Rose::BinaryAnalysis::MemoryMap::Ptr&);
4569
4570private:
4571 void *encode(SgAsmPEFileHeader::PEFileHeader_disk*) const;
4572 void *encode(SgAsmPEFileHeader::PE32OptHeader_disk*) const;
4573 void *encode(SgAsmPEFileHeader::PE64OptHeader_disk*) const;
4575
4577 // Deprecated 2023-11
4579public:
4580 SgAsmPERVASizePairList* get_rvasize_pairs() const ROSE_DEPRECATED("use get_rvaSizePairs");
4581 void set_rvasize_pairs(SgAsmPERVASizePairList*) ROSE_DEPRECATED("use set_rvaSizePairs");
4582 SgAsmPESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
4583 void set_section_table(SgAsmPESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
4584 SgAsmCoffSymbolTable* get_coff_symtab() const ROSE_DEPRECATED("use get_coffSymbolTable");
4585 void set_coff_symtab(SgAsmCoffSymbolTable*) ROSE_DEPRECATED("use set_coffSymbolTable");
4586 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
4587 static bool is_PE (SgAsmGenericFile*) ROSE_DEPRECATED("use isPe");
4588 std::string rvasize_pair_name(PairPurpose, const char**) ROSE_DEPRECATED("use rvaSizePairName");
4589 void set_rvasize_pair(PairPurpose, SgAsmPESection*) ROSE_DEPRECATED("use set_rvaSizePair");
4590 void update_rvasize_pairs() ROSE_DEPRECATED("use updateRvaSizePairs");
4591 void add_rvasize_pairs() ROSE_DEPRECATED("use addRvaSizePairs");
4592 void create_table_sections() ROSE_DEPRECATED("use createTableSections");
4593 Rose::BinaryAnalysis::MemoryMap::Ptr get_loader_map() const ROSE_DEPRECATED("use get_loaderMap");
4594 void set_loader_map(const Rose::BinaryAnalysis::MemoryMap::Ptr&) ROSE_DEPRECATED("use set_loaderMap");
4595public:
4598
4599public:
4602
4603protected:
4611#endif // SgAsmPEFileHeader_OTHERS
4612#ifdef DOCUMENTATION
4613};
4614#endif // DOCUMENTATION
4615
4616
4618// SgAsmPEExportSection -- MACHINE GENERATED; DO NOT MODIFY --
4620
4621DECLARE_LEAF_CLASS(AsmPEExportSection);
4622IS_SERIALIZABLE(AsmPEExportSection);
4623
4624#ifndef DOCUMENTATION
4625AsmPEExportSection.useSmallHeader(true);
4626#endif // !DOCUMENTATION
4627
4628DECLARE_HEADERS(AsmPEExportSection);
4629#if defined(SgAsmPEExportSection_HEADERS) || defined(DOCUMENTATION)
4630#ifdef ROSE_SgAsmPEExportSection_IMPL
4631#include <SgAsmPEExportDirectory.h>
4632#include <SgAsmPEExportEntryList.h>
4633#endif
4634#endif // SgAsmPEExportSection_HEADERS
4635
4636#ifdef DOCUMENTATION
4639#endif // DOCUMENTATION
4640
4641#ifndef DOCUMENTATION
4642 AsmPEExportSection.setDataPrototype(
4643 "SgAsmPEExportDirectory*", "exportDirectory", "= nullptr",
4644 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4645#endif // !DOCUMENTATION
4646
4647#ifndef DOCUMENTATION
4648 AsmPEExportSection.setDataPrototype(
4649 "SgAsmPEExportEntryList*", "exports", "= createAndParent<SgAsmPEExportEntryList>(this)",
4650 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4651#endif // !DOCUMENTATION
4652
4653 DECLARE_OTHERS(AsmPEExportSection);
4654#if defined(SgAsmPEExportSection_OTHERS) || defined(DOCUMENTATION)
4655
4656 //----------------------- Boost serialization for SgAsmPEExportSection -----------------------
4657#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4658private:
4659 friend class boost::serialization::access;
4660
4661 template<class S>
4662 void serialize(S &s, const unsigned /*version*/) {
4663 debugSerializationBegin("SgAsmPEExportSection");
4664 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
4665 s & BOOST_SERIALIZATION_NVP(p_exportDirectory);
4666 s & BOOST_SERIALIZATION_NVP(p_exports);
4667 debugSerializationEnd("SgAsmPEExportSection");
4668 }
4669#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4670public:
4671public:
4681public:
4690public:
4696 typedef uint32_t ExportAddress_disk;
4697
4701 typedef uint32_t ExportNamePtr_disk;
4702
4706 typedef uint16_t ExportOrdinal_disk;
4707
4709 virtual SgAsmPEExportSection *parse() override;
4710 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4711 void addEntry(SgAsmPEExportEntry*);
4712
4714 // Deprecated 2023-11
4716public:
4717 SgAsmPEExportDirectory* get_export_dir() const ROSE_DEPRECATED("use get_exportDirectory");
4718 void set_export_dir(SgAsmPEExportDirectory*) ROSE_DEPRECATED("use set_exportDirectory");
4719 void add_entry(SgAsmPEExportEntry*) ROSE_DEPRECATED("use addEntry");
4720public:
4723
4724public:
4727
4728protected:
4736#endif // SgAsmPEExportSection_OTHERS
4737#ifdef DOCUMENTATION
4738};
4739#endif // DOCUMENTATION
4740
4741
4743// SgAsmPESection -- MACHINE GENERATED; DO NOT MODIFY --
4745
4746#ifndef DOCUMENTATION
4747AstNodeClass& AsmPESection = nonTerminalConstructor(
4748 "AsmPESection",
4749 *this,
4750 "AsmPESection",
4751 "AsmPESectionTag",
4752 SubclassListBuilder()
4753 | AsmPEExportSection
4754 | AsmPEImportSection
4755 | AsmPEStringSection
4756 , true);
4757assert(AsmPESection.associatedGrammar != nullptr);
4758AsmPESection.setCppCondition("!defined(DOCUMENTATION)");
4759AsmPESection.isBoostSerializable(true);
4760AsmPESection.setAutomaticGenerationOfConstructor(false);
4761AsmPESection.setAutomaticGenerationOfDestructor(false);
4762#endif // !DOCUMENTATION
4763
4764#ifndef DOCUMENTATION
4765AsmPESection.useSmallHeader(true);
4766#endif // !DOCUMENTATION
4767
4768DECLARE_HEADERS(AsmPESection);
4769#if defined(SgAsmPESection_HEADERS) || defined(DOCUMENTATION)
4770#ifdef ROSE_SgAsmPESection_IMPL
4771#include <SgAsmPESectionTableEntry.h>
4772#endif
4773#endif // SgAsmPESection_HEADERS
4774
4775#ifdef DOCUMENTATION
4778#endif // DOCUMENTATION
4779
4780#ifndef DOCUMENTATION
4781 AsmPESection.setDataPrototype(
4782 "SgAsmPESectionTableEntry*", "section_entry", "= nullptr",
4783 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4784#endif // !DOCUMENTATION
4785
4786 DECLARE_OTHERS(AsmPESection);
4787#if defined(SgAsmPESection_OTHERS) || defined(DOCUMENTATION)
4788
4789 //----------------------- Boost serialization for SgAsmPESection -----------------------
4790#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4791private:
4792 friend class boost::serialization::access;
4793
4794 template<class S>
4795 void serialize(S &s, const unsigned /*version*/) {
4796 debugSerializationBegin("SgAsmPESection");
4797 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
4798 s & BOOST_SERIALIZATION_NVP(p_section_entry);
4799 debugSerializationEnd("SgAsmPESection");
4800 }
4801#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4802public:
4803public:
4812public:
4814
4821 virtual bool reallocate() override;
4822 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4823
4825 // Deprecated 2023-11
4827public:
4828 SgAsmPESection *init_from_section_table(SgAsmPESectionTableEntry*, int) ROSE_DEPRECATED("use initFromSectionTable");
4829public:
4832
4833public:
4836
4837protected:
4845#endif // SgAsmPESection_OTHERS
4846#ifdef DOCUMENTATION
4847};
4848#endif // DOCUMENTATION
4849
4850
4852// SgAsmPEExportEntryList -- MACHINE GENERATED; DO NOT MODIFY --
4854
4855DECLARE_LEAF_CLASS(AsmPEExportEntryList);
4856IS_SERIALIZABLE(AsmPEExportEntryList);
4857
4858#ifndef DOCUMENTATION
4859AsmPEExportEntryList.useSmallHeader(true);
4860#endif // !DOCUMENTATION
4861
4862DECLARE_HEADERS(AsmPEExportEntryList);
4863#if defined(SgAsmPEExportEntryList_HEADERS) || defined(DOCUMENTATION)
4864#include <sageContainer.h>
4865#endif // SgAsmPEExportEntryList_HEADERS
4866
4867#ifdef DOCUMENTATION
4873#endif // DOCUMENTATION
4874
4875#ifndef DOCUMENTATION
4876 AsmPEExportEntryList.setDataPrototype(
4877 "SgAsmPEExportEntryPtrList", "exports", "",
4878 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4879#endif // !DOCUMENTATION
4880
4881 DECLARE_OTHERS(AsmPEExportEntryList);
4882#if defined(SgAsmPEExportEntryList_OTHERS) || defined(DOCUMENTATION)
4883
4884 //----------------------- Boost serialization for SgAsmPEExportEntryList -----------------------
4885#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4886private:
4887 friend class boost::serialization::access;
4888
4889 template<class S>
4890 void serialize(S &s, const unsigned /*version*/) {
4891 debugSerializationBegin("SgAsmPEExportEntryList");
4892 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
4893 s & BOOST_SERIALIZATION_NVP(p_exports);
4894 debugSerializationEnd("SgAsmPEExportEntryList");
4895 }
4896#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4897public:
4898public:
4902 SgAsmPEExportEntryPtrList const& get_exports() const;
4903 SgAsmPEExportEntryPtrList& get_exports();
4904 void set_exports(SgAsmPEExportEntryPtrList const&);
4907public:
4910
4911public:
4914
4915protected:
4923#endif // SgAsmPEExportEntryList_OTHERS
4924#ifdef DOCUMENTATION
4925};
4926#endif // DOCUMENTATION
4927
4928
4930// SgAsmPEExportEntry -- MACHINE GENERATED; DO NOT MODIFY --
4932
4933DECLARE_LEAF_CLASS(AsmPEExportEntry);
4934IS_SERIALIZABLE(AsmPEExportEntry);
4935
4936#ifndef DOCUMENTATION
4937AsmPEExportEntry.useSmallHeader(true);
4938#endif // !DOCUMENTATION
4939
4940DECLARE_HEADERS(AsmPEExportEntry);
4941#if defined(SgAsmPEExportEntry_HEADERS) || defined(DOCUMENTATION)
4942#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
4943#include <Sawyer/Result.h>
4944#endif // SgAsmPEExportEntry_HEADERS
4945
4946#ifdef DOCUMENTATION
4949#endif // DOCUMENTATION
4950
4951#ifndef DOCUMENTATION
4952 AsmPEExportEntry.setDataPrototype(
4953 "SgAsmGenericString*", "name", "= nullptr",
4954 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4955#endif // !DOCUMENTATION
4956
4957#ifndef DOCUMENTATION
4958 AsmPEExportEntry.setDataPrototype(
4959 "unsigned", "ordinal", "= 0",
4960 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4961#endif // !DOCUMENTATION
4962
4963#ifndef DOCUMENTATION
4964 AsmPEExportEntry.setDataPrototype(
4965 "Rose::BinaryAnalysis::RelativeVirtualAddress", "exportRva", "",
4966 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4967#endif // !DOCUMENTATION
4968
4969#ifndef DOCUMENTATION
4970 AsmPEExportEntry.setDataPrototype(
4971 "SgAsmGenericString*", "forwarder", "= nullptr",
4972 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4973#endif // !DOCUMENTATION
4974
4975 DECLARE_OTHERS(AsmPEExportEntry);
4976#if defined(SgAsmPEExportEntry_OTHERS) || defined(DOCUMENTATION)
4977
4978 //----------------------- Boost serialization for SgAsmPEExportEntry -----------------------
4979#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
4980private:
4981 friend class boost::serialization::access;
4982
4983 template<class S>
4984 void serialize(S &s, const unsigned /*version*/) {
4985 debugSerializationBegin("SgAsmPEExportEntry");
4986 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
4987 s & BOOST_SERIALIZATION_NVP(p_name);
4988 s & BOOST_SERIALIZATION_NVP(p_ordinal);
4989 s & BOOST_SERIALIZATION_NVP(p_exportRva);
4990 s & BOOST_SERIALIZATION_NVP(p_forwarder);
4991 debugSerializationEnd("SgAsmPEExportEntry");
4992 }
4993#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
4994public:
4995public:
5004public:
5010 unsigned const& get_ordinal() const;
5011 void set_ordinal(unsigned const&);
5014public:
5025public:
5035public:
5037 SgAsmGenericString *forwarder);
5038 void dump(FILE *f,const char *prefix,ssize_t idx) const;
5039 /* Accessors. Override ROSETTA because we adjust parents. */
5040
5046 Sawyer::Result<unsigned /*ordinal*/, std::string /*reason*/> biasedOrdinal() const;
5047
5049 // Deprecated 2023-11
5051public:
5052 const Rose::BinaryAnalysis::RelativeVirtualAddress& get_export_rva() const ROSE_DEPRECATED("use get_exportRva");
5053 void set_export_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use set_exportRva");
5054public:
5057
5058public:
5061
5062protected:
5070#endif // SgAsmPEExportEntry_OTHERS
5071#ifdef DOCUMENTATION
5072};
5073#endif // DOCUMENTATION
5074
5075
5077// SgAsmPEExportDirectory -- MACHINE GENERATED; DO NOT MODIFY --
5079
5080DECLARE_LEAF_CLASS(AsmPEExportDirectory);
5081IS_SERIALIZABLE(AsmPEExportDirectory);
5082
5083#ifndef DOCUMENTATION
5084AsmPEExportDirectory.useSmallHeader(true);
5085#endif // !DOCUMENTATION
5086
5087DECLARE_HEADERS(AsmPEExportDirectory);
5088#if defined(SgAsmPEExportDirectory_HEADERS) || defined(DOCUMENTATION)
5089#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
5090
5091#ifdef ROSE_SgAsmPEExportDirectory_IMPL
5092#include <SgAsmGenericString.h>
5093#endif
5094#endif // SgAsmPEExportDirectory_HEADERS
5095
5096#ifdef DOCUMENTATION
5099#endif // DOCUMENTATION
5100
5101#ifndef DOCUMENTATION
5102 AsmPEExportDirectory.setDataPrototype(
5103 "unsigned", "res1", "= 0",
5104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5105#endif // !DOCUMENTATION
5106
5107#ifndef DOCUMENTATION
5108 AsmPEExportDirectory.setDataPrototype(
5109 "time_t", "timestamp", "= 0",
5110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5111#endif // !DOCUMENTATION
5112
5113#ifndef DOCUMENTATION
5114 AsmPEExportDirectory.setDataPrototype(
5115 "unsigned", "vmajor", "= 0",
5116 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5117#endif // !DOCUMENTATION
5118
5119#ifndef DOCUMENTATION
5120 AsmPEExportDirectory.setDataPrototype(
5121 "unsigned", "vminor", "= 0",
5122 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5123#endif // !DOCUMENTATION
5124
5125#ifndef DOCUMENTATION
5126 AsmPEExportDirectory.setDataPrototype(
5127 "Rose::BinaryAnalysis::RelativeVirtualAddress", "name_rva", "",
5128 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5129#endif // !DOCUMENTATION
5130
5131#ifndef DOCUMENTATION
5132 AsmPEExportDirectory.setDataPrototype(
5133 "unsigned", "ord_base", "= 0",
5134 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5135#endif // !DOCUMENTATION
5136
5137#ifndef DOCUMENTATION
5138 AsmPEExportDirectory.setDataPrototype(
5139 "size_t", "expaddr_n", "= 0",
5140 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5141#endif // !DOCUMENTATION
5142
5143#ifndef DOCUMENTATION
5144 AsmPEExportDirectory.setDataPrototype(
5145 "size_t", "nameptr_n", "= 0",
5146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5147#endif // !DOCUMENTATION
5148
5149#ifndef DOCUMENTATION
5150 AsmPEExportDirectory.setDataPrototype(
5151 "Rose::BinaryAnalysis::RelativeVirtualAddress", "expaddr_rva", "",
5152 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5153#endif // !DOCUMENTATION
5154
5155#ifndef DOCUMENTATION
5156 AsmPEExportDirectory.setDataPrototype(
5157 "Rose::BinaryAnalysis::RelativeVirtualAddress", "nameptr_rva", "",
5158 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5159#endif // !DOCUMENTATION
5160
5161#ifndef DOCUMENTATION
5162 AsmPEExportDirectory.setDataPrototype(
5163 "Rose::BinaryAnalysis::RelativeVirtualAddress", "ordinals_rva", "",
5164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5165#endif // !DOCUMENTATION
5166
5167#ifndef DOCUMENTATION
5168 AsmPEExportDirectory.setDataPrototype(
5169 "SgAsmGenericString*", "name", "= NULL",
5170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5171#endif // !DOCUMENTATION
5172
5173 DECLARE_OTHERS(AsmPEExportDirectory);
5174#if defined(SgAsmPEExportDirectory_OTHERS) || defined(DOCUMENTATION)
5175
5176 //----------------------- Boost serialization for SgAsmPEExportDirectory -----------------------
5177#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5178private:
5179 friend class boost::serialization::access;
5180
5181 template<class S>
5182 void serialize(S &s, const unsigned /*version*/) {
5183 debugSerializationBegin("SgAsmPEExportDirectory");
5184 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5185 s & BOOST_SERIALIZATION_NVP(p_res1);
5186 s & BOOST_SERIALIZATION_NVP(p_timestamp);
5187 s & BOOST_SERIALIZATION_NVP(p_vmajor);
5188 s & BOOST_SERIALIZATION_NVP(p_vminor);
5189 s & BOOST_SERIALIZATION_NVP(p_name_rva);
5190 s & BOOST_SERIALIZATION_NVP(p_ord_base);
5191 s & BOOST_SERIALIZATION_NVP(p_expaddr_n);
5192 s & BOOST_SERIALIZATION_NVP(p_nameptr_n);
5193 s & BOOST_SERIALIZATION_NVP(p_expaddr_rva);
5194 s & BOOST_SERIALIZATION_NVP(p_nameptr_rva);
5195 s & BOOST_SERIALIZATION_NVP(p_ordinals_rva);
5196 s & BOOST_SERIALIZATION_NVP(p_name);
5197 debugSerializationEnd("SgAsmPEExportDirectory");
5198 }
5199#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5201 // Local types
5203public:
5204#ifdef _MSC_VER
5205# pragma pack (1)
5206#endif
5207 /* An Export Section begins with the Export Directory */
5209 uint32_t res1; /* 0x00 Reserved, must be zero */
5210 uint32_t timestamp; /* 0x04 Time that export data was created */
5211 uint16_t vmajor; /* 0x08 Major version number (user defined) */
5212 uint16_t vminor; /* 0x0a Minor version number (user defined) */
5213 uint32_t name_rva; /* 0x0c Location of name of DLL */
5214 uint32_t ord_base; /* 0x10 Starting ordinal for exports in this image (usually 1) */
5215 uint32_t expaddr_n; /* 0x14 Number of entries in the export address table */
5216 uint32_t nameptr_n; /* 0x18 Number of entries in the name pointer table and ordinal table */
5217 uint32_t expaddr_rva; /* 0x1c Location of Export Address Table */
5218 uint32_t nameptr_rva; /* 0x20 Location of Export Name Pointer Table */
5219 uint32_t ordinals_rva; /* 0x24 Location of Ordinal Table */
5220 } /* 0x28 */
5221#if !defined(SWIG) && !defined(_MSC_VER)
5222 __attribute__((packed))
5223#endif
5224 ;
5225#ifdef _MSC_VER
5226# pragma pack ()
5227#endif
5228
5230 // Properties
5232public:
5233public:
5239 unsigned const& get_res1() const;
5240 void set_res1(unsigned const&);
5243public:
5249 time_t const& get_timestamp() const;
5250 void set_timestamp(time_t const&);
5253public:
5259 unsigned const& get_vmajor() const;
5260 void set_vmajor(unsigned const&);
5263public:
5269 unsigned const& get_vminor() const;
5270 void set_vminor(unsigned const&);
5273public:
5284public:
5290 unsigned const& get_ord_base() const;
5291 void set_ord_base(unsigned const&);
5294public:
5300 size_t const& get_expaddr_n() const;
5301 void set_expaddr_n(size_t const&);
5304public:
5310 size_t const& get_nameptr_n() const;
5311 void set_nameptr_n(size_t const&);
5314public:
5325public:
5336public:
5347public:
5357 // Functions
5359public:
5361 void dump(FILE *f, const char *prefix, ssize_t idx) const;
5362public:
5365
5366public:
5369
5370protected:
5378#endif // SgAsmPEExportDirectory_OTHERS
5379#ifdef DOCUMENTATION
5380};
5381#endif // DOCUMENTATION
5382
5383
5385// SgAsmOperandList -- MACHINE GENERATED; DO NOT MODIFY --
5387
5388DECLARE_LEAF_CLASS(AsmOperandList);
5389IS_SERIALIZABLE(AsmOperandList);
5390
5391#ifndef DOCUMENTATION
5392AsmOperandList.useSmallHeader(true);
5393#endif // !DOCUMENTATION
5394
5395DECLARE_HEADERS(AsmOperandList);
5396#if defined(SgAsmOperandList_HEADERS) || defined(DOCUMENTATION)
5397#include <sageContainer.h>
5398#endif // SgAsmOperandList_HEADERS
5399
5400#ifdef DOCUMENTATION
5403#endif // DOCUMENTATION
5404
5405#ifndef DOCUMENTATION
5406 AsmOperandList.setDataPrototype(
5407 "SgAsmExpressionPtrList", "operands", "",
5408 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5409#endif // !DOCUMENTATION
5410
5411 DECLARE_OTHERS(AsmOperandList);
5412#if defined(SgAsmOperandList_OTHERS) || defined(DOCUMENTATION)
5413
5414 //----------------------- Boost serialization for SgAsmOperandList -----------------------
5415#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5416private:
5417 friend class boost::serialization::access;
5418
5419 template<class S>
5420 void serialize(S &s, const unsigned /*version*/) {
5421 debugSerializationBegin("SgAsmOperandList");
5422 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
5423 s & BOOST_SERIALIZATION_NVP(p_operands);
5424 debugSerializationEnd("SgAsmOperandList");
5425 }
5426#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5427public:
5428public:
5435 SgAsmExpressionPtrList const& get_operands() const;
5436 SgAsmExpressionPtrList& get_operands();
5437 void set_operands(SgAsmExpressionPtrList const&);
5439public:
5442
5444 // Deprecated 2023-11
5446public:
5447 void append_operand(SgAsmExpression*) ROSE_DEPRECATED("use appendOperand");
5448public:
5451
5452public:
5455
5456protected:
5464#endif // SgAsmOperandList_OTHERS
5465#ifdef DOCUMENTATION
5466};
5467#endif // DOCUMENTATION
5468
5469
5471// SgAsmNullInstruction -- MACHINE GENERATED; DO NOT MODIFY --
5473
5474DECLARE_LEAF_CLASS(AsmNullInstruction);
5475IS_SERIALIZABLE(AsmNullInstruction);
5476
5477#ifndef DOCUMENTATION
5478AsmNullInstruction.useSmallHeader(true);
5479#endif // !DOCUMENTATION
5480
5481#ifdef DOCUMENTATION
5483#endif // DOCUMENTATION
5484
5485 DECLARE_OTHERS(AsmNullInstruction);
5486#if defined(SgAsmNullInstruction_OTHERS) || defined(DOCUMENTATION)
5487
5488 //----------------------- Boost serialization for SgAsmNullInstruction -----------------------
5489#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5490private:
5491 friend class boost::serialization::access;
5492
5493 template<class S>
5494 void serialize(S &s, const unsigned /*version*/) {
5495 debugSerializationBegin("SgAsmNullInstruction");
5496 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
5497 debugSerializationEnd("SgAsmNullInstruction");
5498 }
5499#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5500public:
5501 // there's only one kind of null instruction
5502 enum Kind { null_unknown };
5503
5504public: // overrides
5505 virtual unsigned get_anyKind() const override;
5506public:
5509
5510public:
5513
5514public:
5516 SgAsmNullInstruction(rose_addr_t const& address,
5517 uint8_t const& architectureId);
5518
5519protected:
5527#endif // SgAsmNullInstruction_OTHERS
5528#ifdef DOCUMENTATION
5529};
5530#endif // DOCUMENTATION
5531
5532
5534// SgAsmNEStringTable -- MACHINE GENERATED; DO NOT MODIFY --
5536
5537DECLARE_LEAF_CLASS(AsmNEStringTable);
5538IS_SERIALIZABLE(AsmNEStringTable);
5539
5540#ifndef DOCUMENTATION
5541AsmNEStringTable.useSmallHeader(true);
5542#endif // !DOCUMENTATION
5543
5544#ifdef DOCUMENTATION
5546#endif // DOCUMENTATION
5547
5548 DECLARE_OTHERS(AsmNEStringTable);
5549#if defined(SgAsmNEStringTable_OTHERS) || defined(DOCUMENTATION)
5550
5551 //----------------------- Boost serialization for SgAsmNEStringTable -----------------------
5552#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5553private:
5554 friend class boost::serialization::access;
5555
5556 template<class S>
5557 void serialize(S &s, const unsigned /*version*/) {
5558 debugSerializationBegin("SgAsmNEStringTable");
5559 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5560 debugSerializationEnd("SgAsmNEStringTable");
5561 }
5562#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5563public:
5564 SgAsmNEStringTable(SgAsmNEFileHeader *fhdr, rose_addr_t offset, rose_addr_t size);
5565 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5566 std::string get_string(rose_addr_t offset);
5567public:
5570
5571public:
5574
5575protected:
5583#endif // SgAsmNEStringTable_OTHERS
5584#ifdef DOCUMENTATION
5585};
5586#endif // DOCUMENTATION
5587
5588
5590// SgAsmNESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
5592
5593DECLARE_LEAF_CLASS(AsmNESectionTable);
5594IS_SERIALIZABLE(AsmNESectionTable);
5595
5596#ifndef DOCUMENTATION
5597AsmNESectionTable.useSmallHeader(true);
5598#endif // !DOCUMENTATION
5599
5600#ifdef DOCUMENTATION
5602#endif // DOCUMENTATION
5603
5604#ifndef DOCUMENTATION
5605 AsmNESectionTable.setDataPrototype(
5606 "unsigned", "flags", "= 0",
5607 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5608#endif // !DOCUMENTATION
5609
5610#ifndef DOCUMENTATION
5611 AsmNESectionTable.setDataPrototype(
5612 "unsigned", "sector", "= 0",
5613 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5614#endif // !DOCUMENTATION
5615
5616#ifndef DOCUMENTATION
5617 AsmNESectionTable.setDataPrototype(
5618 "rose_addr_t", "physicalSize", "= 0",
5619 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5620#endif // !DOCUMENTATION
5621
5622#ifndef DOCUMENTATION
5623 AsmNESectionTable.setDataPrototype(
5624 "rose_addr_t", "virtualSize", "= 0",
5625 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5626#endif // !DOCUMENTATION
5627
5628 DECLARE_OTHERS(AsmNESectionTable);
5629#if defined(SgAsmNESectionTable_OTHERS) || defined(DOCUMENTATION)
5630
5631 //----------------------- Boost serialization for SgAsmNESectionTable -----------------------
5632#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5633private:
5634 friend class boost::serialization::access;
5635
5636 template<class S>
5637 void serialize(S &s, const unsigned /*version*/) {
5638 debugSerializationBegin("SgAsmNESectionTable");
5639 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5640 s & BOOST_SERIALIZATION_NVP(p_flags);
5641 s & BOOST_SERIALIZATION_NVP(p_sector);
5642 s & BOOST_SERIALIZATION_NVP(p_physicalSize);
5643 s & BOOST_SERIALIZATION_NVP(p_virtualSize);
5644 debugSerializationEnd("SgAsmNESectionTable");
5645 }
5646#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5647public:
5648public:
5649 unsigned const& get_flags() const;
5650 void set_flags(unsigned const&);
5651
5652public:
5653 unsigned const& get_sector() const;
5654 void set_sector(unsigned const&);
5655
5656public:
5657 rose_addr_t const& get_physicalSize() const;
5658 void set_physicalSize(rose_addr_t const&);
5659
5660public:
5661 rose_addr_t const& get_virtualSize() const;
5662 void set_virtualSize(rose_addr_t const&);
5663public:
5665 virtual void unparse(std::ostream&) const override;
5666 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5667
5669 // Deprecated 2023-11
5671public:
5672 rose_addr_t get_physical_size() const ROSE_DEPRECATED("use get_physicalSize");
5673 void set_physical_size(rose_addr_t) ROSE_DEPRECATED("use set_physicalSize");
5674 rose_addr_t get_virtual_size() const ROSE_DEPRECATED("use get_virtualSize");
5675 void set_virtual_size(rose_addr_t) ROSE_DEPRECATED("use set_virtualSize");
5676public:
5679
5680public:
5683
5684protected:
5692#endif // SgAsmNESectionTable_OTHERS
5693#ifdef DOCUMENTATION
5694};
5695#endif // DOCUMENTATION
5696
5697
5699// SgAsmNESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
5701
5702DECLARE_LEAF_CLASS(AsmNESectionTableEntry);
5703IS_SERIALIZABLE(AsmNESectionTableEntry);
5704
5705#ifndef DOCUMENTATION
5706AsmNESectionTableEntry.useSmallHeader(true);
5707#endif // !DOCUMENTATION
5708
5709#ifdef DOCUMENTATION
5711#endif // DOCUMENTATION
5712
5713#ifndef DOCUMENTATION
5714 AsmNESectionTableEntry.setDataPrototype(
5715 "unsigned", "flags", "= 0",
5716 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5717#endif // !DOCUMENTATION
5718
5719#ifndef DOCUMENTATION
5720 AsmNESectionTableEntry.setDataPrototype(
5721 "unsigned", "sector", "= 0",
5722 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5723#endif // !DOCUMENTATION
5724
5725#ifndef DOCUMENTATION
5726 AsmNESectionTableEntry.setDataPrototype(
5727 "rose_addr_t", "physicalSize", "= 0",
5728 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5729#endif // !DOCUMENTATION
5730
5731#ifndef DOCUMENTATION
5732 AsmNESectionTableEntry.setDataPrototype(
5733 "rose_addr_t", "virtualSize", "= 0",
5734 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5735#endif // !DOCUMENTATION
5736
5737 DECLARE_OTHERS(AsmNESectionTableEntry);
5738#if defined(SgAsmNESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
5739
5740 //----------------------- Boost serialization for SgAsmNESectionTableEntry -----------------------
5741#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5742private:
5743 friend class boost::serialization::access;
5744
5745 template<class S>
5746 void serialize(S &s, const unsigned /*version*/) {
5747 debugSerializationBegin("SgAsmNESectionTableEntry");
5748 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5749 s & BOOST_SERIALIZATION_NVP(p_flags);
5750 s & BOOST_SERIALIZATION_NVP(p_sector);
5751 s & BOOST_SERIALIZATION_NVP(p_physicalSize);
5752 s & BOOST_SERIALIZATION_NVP(p_virtualSize);
5753 debugSerializationEnd("SgAsmNESectionTableEntry");
5754 }
5755#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5757 // Local types
5759public:
5760#ifdef _MSC_VER
5761# pragma pack (1)
5762#endif
5763 /* File format of a section table entry. All fields are little endian. */
5765 uint16_t sector; /* 0x00 File offset (sector size defined in hdr); zero means no file data */
5766 uint16_t physical_size; /* 0x02 Length of segment in file; zero means 64k if sector is non-zero */
5767 uint16_t flags; /* 0x04 Segment bit flags */
5768 uint16_t virtual_size; /* 0x06 Total size of segment when mapped to memory; zero means 64k */
5769 } /* 0x08 */
5770// DQ (3/7/2013): Adding support to restrict visability to SWIG.
5771#ifndef SWIG
5772#ifndef _MSC_VER
5773 __attribute__((packed))
5774#endif
5775#endif
5776 ;
5777#ifdef _MSC_VER
5778# pragma pack ()
5779#endif
5780
5781 enum NESectionFlags {
5782 SF_RESERVED = 0x0e08, /* these bits are reserved */
5783
5784 SF_TYPE_MASK = 0x0007, /* segment-type field */
5785 SF_CODE = 0x0000, /* code-segment type */
5786 SF_DATA = 0x0001, /* data-segment (otherwise segment is code) */
5787 SF_ALLOC = 0x0002, /* loader allocates memory */
5788 SF_LOAD = 0x0004, /* load the segment */
5789
5790 SF_MOVABLE = 0x0010, /* segment is not fixed */
5791 SF_PURE = 0x0020, /* segment is pure, or sharable; otherwise impure or non-sharable */
5792 SF_PRELOAD = 0x0040, /* segment will be preloaded; read-only if this is a data segment */
5793 SF_NOT_WRITABLE = 0x0080, /* code segment is execute only; data segment is read-only */
5794 SF_RELOCINFO = 0x0100, /* segment has relocation records */
5795 SF_DISCARDABLE = 0x1000, /* discardable */
5796 SF_DISCARD = 0xf000 /* discard priority */
5797 };
5798
5800 // Properties
5802public:
5803public:
5804 unsigned const& get_flags() const;
5805 void set_flags(unsigned const&);
5806
5807public:
5808 unsigned const& get_sector() const;
5809 void set_sector(unsigned const&);
5810
5811public:
5812 rose_addr_t const& get_physicalSize() const;
5813 void set_physicalSize(rose_addr_t const&);
5814
5815public:
5816 rose_addr_t const& get_virtualSize() const;
5817 void set_virtualSize(rose_addr_t const&);
5819 // Functions
5821public:
5824 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const {dump(f, prefix, idx, NULL);}
5825 void dump(FILE*, const char *prefix, ssize_t idx, SgAsmNEFileHeader *fhdr) const;
5826
5828 // Deprecated 2023-11
5830public:
5831 rose_addr_t get_physical_size() const ROSE_DEPRECATED("use get_physicalSize");
5832 void set_physical_size(rose_addr_t) ROSE_DEPRECATED("use set_physicalSize");
5833 rose_addr_t get_virtual_size() const ROSE_DEPRECATED("use get_virtualSize");
5834 void set_virtual_size(rose_addr_t) ROSE_DEPRECATED("use set_virtualSize");
5835public:
5838
5839public:
5842
5843protected:
5851#endif // SgAsmNESectionTableEntry_OTHERS
5852#ifdef DOCUMENTATION
5853};
5854#endif // DOCUMENTATION
5855
5856
5858// SgAsmNESection -- MACHINE GENERATED; DO NOT MODIFY --
5860
5861DECLARE_LEAF_CLASS(AsmNESection);
5862IS_SERIALIZABLE(AsmNESection);
5863
5864#ifndef DOCUMENTATION
5865AsmNESection.useSmallHeader(true);
5866#endif // !DOCUMENTATION
5867
5868DECLARE_HEADERS(AsmNESection);
5869#if defined(SgAsmNESection_HEADERS) || defined(DOCUMENTATION)
5870#ifdef ROSE_SgAsmNESection_IMPL
5871#include <SgAsmNESectionTableEntry.h>
5872#include <SgAsmNERelocTable.h>
5873#endif
5874#endif // SgAsmNESection_HEADERS
5875
5876#ifdef DOCUMENTATION
5878#endif // DOCUMENTATION
5879
5880#ifndef DOCUMENTATION
5881 AsmNESection.setDataPrototype(
5882 "SgAsmNESectionTableEntry*", "sectionTableEntry", "= nullptr",
5883 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5884#endif // !DOCUMENTATION
5885
5886#ifndef DOCUMENTATION
5887 AsmNESection.setDataPrototype(
5888 "SgAsmNERelocTable*", "relocationTable", "= nullptr",
5889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5890#endif // !DOCUMENTATION
5891
5892 DECLARE_OTHERS(AsmNESection);
5893#if defined(SgAsmNESection_OTHERS) || defined(DOCUMENTATION)
5894
5895 //----------------------- Boost serialization for SgAsmNESection -----------------------
5896#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5897private:
5898 friend class boost::serialization::access;
5899
5900 template<class S>
5901 void serialize(S &s, const unsigned /*version*/) {
5902 debugSerializationBegin("SgAsmNESection");
5903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5904 s & BOOST_SERIALIZATION_NVP(p_sectionTableEntry);
5905 s & BOOST_SERIALIZATION_NVP(p_relocationTable);
5906 debugSerializationEnd("SgAsmNESection");
5907 }
5908#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5909public:
5910public:
5911 SgAsmNESectionTableEntry* const& get_sectionTableEntry() const;
5912 void set_sectionTableEntry(SgAsmNESectionTableEntry* const&);
5913
5914public:
5915 SgAsmNERelocTable* const& get_relocationTable() const;
5916 void set_relocationTable(SgAsmNERelocTable* const&);
5917public:
5918 explicit SgAsmNESection(SgAsmNEFileHeader *fhdr);
5919 virtual void unparse(std::ostream&) const override;
5920 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5921
5923 // Deprecated 2023-11
5925public:
5926 SgAsmNESectionTableEntry* get_st_entry() const ROSE_DEPRECATED("use get_sectionTableEntry");
5927 void set_st_entry(SgAsmNESectionTableEntry*) ROSE_DEPRECATED("use set_sectionTableEntry");
5928 SgAsmNERelocTable* get_reloc_table() const ROSE_DEPRECATED("use get_relocationTable");
5929 void set_reloc_table(SgAsmNERelocTable*) ROSE_DEPRECATED("use set_relocationTable");
5930public:
5932 virtual ~SgAsmNESection();
5933
5934public:
5937
5938protected:
5946#endif // SgAsmNESection_OTHERS
5947#ifdef DOCUMENTATION
5948};
5949#endif // DOCUMENTATION
5950
5951
5953// SgAsmNERelocTable -- MACHINE GENERATED; DO NOT MODIFY --
5955
5956DECLARE_LEAF_CLASS(AsmNERelocTable);
5957IS_SERIALIZABLE(AsmNERelocTable);
5958
5959#ifndef DOCUMENTATION
5960AsmNERelocTable.useSmallHeader(true);
5961#endif // !DOCUMENTATION
5962
5963#ifdef DOCUMENTATION
5965#endif // DOCUMENTATION
5966
5967#ifndef DOCUMENTATION
5968 AsmNERelocTable.setDataPrototype(
5969 "SgAsmNERelocEntryPtrList", "entries", "",
5970 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5971#endif // !DOCUMENTATION
5972
5973 DECLARE_OTHERS(AsmNERelocTable);
5974#if defined(SgAsmNERelocTable_OTHERS) || defined(DOCUMENTATION)
5975
5976 //----------------------- Boost serialization for SgAsmNERelocTable -----------------------
5977#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
5978private:
5979 friend class boost::serialization::access;
5980
5981 template<class S>
5982 void serialize(S &s, const unsigned /*version*/) {
5983 debugSerializationBegin("SgAsmNERelocTable");
5984 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5985 s & BOOST_SERIALIZATION_NVP(p_entries);
5986 debugSerializationEnd("SgAsmNERelocTable");
5987 }
5988#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
5989public:
5990public:
5991 SgAsmNERelocEntryPtrList const& get_entries() const;
5992 SgAsmNERelocEntryPtrList& get_entries();
5993 void set_entries(SgAsmNERelocEntryPtrList const&);
5994public:
5995 explicit SgAsmNERelocTable(SgAsmNEFileHeader *fhdr, SgAsmNESection *section);
5996 virtual void unparse(std::ostream&) const override;
5997 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5998public:
6001
6002public:
6005
6006protected:
6014#endif // SgAsmNERelocTable_OTHERS
6015#ifdef DOCUMENTATION
6016};
6017#endif // DOCUMENTATION
6018
6019
6021// SgAsmNERelocEntry -- MACHINE GENERATED; DO NOT MODIFY --
6023
6024DECLARE_LEAF_CLASS(AsmNERelocEntry);
6025IS_SERIALIZABLE(AsmNERelocEntry);
6026
6027#ifndef DOCUMENTATION
6028AsmNERelocEntry.useSmallHeader(true);
6029#endif // !DOCUMENTATION
6030
6031#ifdef DOCUMENTATION
6033#endif // DOCUMENTATION
6034
6035#ifndef DOCUMENTATION
6036 AsmNERelocEntry.setDataPrototype(
6037 "SgAsmNERelocEntry::NERelocSrcType", "src_type", "= SgAsmNERelocEntry::RF_SRCTYPE_8OFF",
6038 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6039#endif // !DOCUMENTATION
6040
6041#ifndef DOCUMENTATION
6042 AsmNERelocEntry.setDataPrototype(
6043 "SgAsmNERelocEntry::NERelocModifiers", "modifier", "= SgAsmNERelocEntry::RF_MODIFIER_SINGLE",
6044 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6045#endif // !DOCUMENTATION
6046
6047#ifndef DOCUMENTATION
6048 AsmNERelocEntry.setDataPrototype(
6049 "SgAsmNERelocEntry::NERelocTgtType", "tgt_type", "= SgAsmNERelocEntry::RF_TGTTYPE_IREF",
6050 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6051#endif // !DOCUMENTATION
6052
6053#ifndef DOCUMENTATION
6054 AsmNERelocEntry.setDataPrototype(
6055 "SgAsmNERelocEntry::NERelocFlags", "flags", "= SgAsmNERelocEntry::RF_ADDITIVE",
6056 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6057#endif // !DOCUMENTATION
6058
6059#ifndef DOCUMENTATION
6060 AsmNERelocEntry.setDataPrototype(
6061 "rose_addr_t", "src_offset", "= 0",
6062 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6063#endif // !DOCUMENTATION
6064
6065#ifndef DOCUMENTATION
6066 AsmNERelocEntry.setDataPrototype(
6067 "SgAsmNERelocEntry::iref_type", "iref", "",
6068 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6069#endif // !DOCUMENTATION
6070
6071#ifndef DOCUMENTATION
6072 AsmNERelocEntry.setDataPrototype(
6073 "SgAsmNERelocEntry::iord_type", "iord", "",
6074 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6075#endif // !DOCUMENTATION
6076
6077#ifndef DOCUMENTATION
6078 AsmNERelocEntry.setDataPrototype(
6079 "SgAsmNERelocEntry::iname_type", "iname", "",
6080 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6081#endif // !DOCUMENTATION
6082
6083#ifndef DOCUMENTATION
6084 AsmNERelocEntry.setDataPrototype(
6085 "SgAsmNERelocEntry::osfixup_type", "osfixup", "",
6086 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6087#endif // !DOCUMENTATION
6088
6089 DECLARE_OTHERS(AsmNERelocEntry);
6090#if defined(SgAsmNERelocEntry_OTHERS) || defined(DOCUMENTATION)
6091
6092 //----------------------- Boost serialization for SgAsmNERelocEntry -----------------------
6093#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6094private:
6095 friend class boost::serialization::access;
6096
6097 template<class S>
6098 void serialize(S &s, const unsigned /*version*/) {
6099 debugSerializationBegin("SgAsmNERelocEntry");
6100 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
6101 s & BOOST_SERIALIZATION_NVP(p_src_type);
6102 s & BOOST_SERIALIZATION_NVP(p_modifier);
6103 s & BOOST_SERIALIZATION_NVP(p_tgt_type);
6104 s & BOOST_SERIALIZATION_NVP(p_flags);
6105 s & BOOST_SERIALIZATION_NVP(p_src_offset);
6106 s & BOOST_SERIALIZATION_NVP(p_iref);
6107 s & BOOST_SERIALIZATION_NVP(p_iord);
6108 s & BOOST_SERIALIZATION_NVP(p_iname);
6109 s & BOOST_SERIALIZATION_NVP(p_osfixup);
6110 debugSerializationEnd("SgAsmNERelocEntry");
6111 }
6112#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6114 // Local types
6116public:
6117 /* NERelocEntry_disk -- variable size with multiple levels of 'union'. It's easier to just parse it in NERelocEntry::ctor()
6118 * than defining it here as a struct. */
6119 enum NERelocSrcType {
6120 RF_SRCTYPE_8OFF = 0, /* Byte offset */
6121 RF_SRCTYPE_WORDSEG = 2, /* Word segment, 16-bit selector */
6122 RF_SRCTYPE_16PTR = 3, /* 16-bit far pointer */
6123 RF_SRCTYPE_16OFF = 5, /* 16-bit offset */
6124 RF_SRCTYPE_32PTR = 6, /* 32-bit far pointer */
6125 RF_SRCTYPE_32OFF = 7, /* 32-bit offset */
6126 RF_SRCTYPE_NEARCALL = 8, /* near call or jump, WORD/DWROD based on section attribute */
6127 RF_SRCTYPE_48PTR = 11, /* 48-bit pointer */
6128 RF_SRCTYPE_32OFF_b = 13 /* 32-bit offset (not sure how this differs from case 7) */
6129 };
6130
6131 enum NERelocTgtType {
6132 RF_TGTTYPE_IREF = 0, /* Internal reference */
6133 RF_TGTTYPE_IORD = 1, /* Imported (extern) ordinal */
6134 RF_TGTTYPE_INAME = 2, /* Imported (extern) name */
6135 RF_TGTTYPE_OSFIXUP = 3 /* Operating system fixup */
6136 };
6137
6138 enum NERelocModifiers {
6139 RF_MODIFIER_SINGLE = 1,
6140 RF_MODIFIER_MULTI = 3
6141 };
6142
6143 enum NERelocFlags {
6144 RF_ADDITIVE = 0x01, /* add target to source rather than replace source with target */
6145 RF_RESERVED = 0x02, /* reserved bits */
6146 RF_2EXTRA = 0x04, /* relocation info has size with new two bytes at end */
6147 RF_32ADD = 0x08, /* addition with 32-bits rather than 16 */
6148 RF_16SECTION = 0x10, /* 16-bit object number & module name rather than 8-bit */
6149 RF_8ORDINAL = 0x20 /* Ordinal is 8-bits rather than 16 */
6150 };
6151
6152 // 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
6153 // this in ROSETTA. One solution might be to implement a common base class of unsigned, unsigned, rose_addr_t; and then use
6154 // member functions to access the data in the base class.
6155 struct iref_type { /*tgt_type==0x00: internal reference*/
6156 unsigned sect_idx; /* section index (1-origin) */
6157 unsigned res1; /* reserved */
6158 rose_addr_t tgt_offset;
6159
6160#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6161 template<class S>
6162 void serialize(S &s, const unsigned /*version*/) {
6163 s & BOOST_SERIALIZATION_NVP(sect_idx);
6164 s & BOOST_SERIALIZATION_NVP(res1);
6165 s & BOOST_SERIALIZATION_NVP(tgt_offset);
6166 }
6167#endif
6168
6169 // Added to support RTI support in ROSE
6170 friend std::ostream & operator<< ( std::ostream & os, const iref_type & x );
6171
6172 iref_type();
6173 };
6174
6175 struct iord_type { /*tgt_type==0x01: imported ordinal*/
6176 unsigned modref; /* 1-based index into import module table */
6177 unsigned ordinal;
6178 rose_addr_t addend; /* value to add (only present for flags & RF_2EXTRA) */
6179
6180#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6181 template<class S>
6182 void serialize(S &s, const unsigned /*version*/) {
6183 s & BOOST_SERIALIZATION_NVP(modref);
6184 s & BOOST_SERIALIZATION_NVP(ordinal);
6185 s & BOOST_SERIALIZATION_NVP(addend);
6186 }
6187#endif
6188
6189 // Added to support RTI support in ROSE
6190 friend std::ostream & operator<< ( std::ostream & os, const iord_type & x );
6191
6192 iord_type();
6193 };
6194
6195 struct iname_type { /*tgt_type==0x02: imported name*/
6196 unsigned modref; /* 1-based index into import module table */
6197 unsigned nm_off; /* offset into import procedure names */
6198 rose_addr_t addend; /* value to add (only present for flags & RF_2EXTRA) */
6199
6200#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6201 template<class S>
6202 void serialize(S &s, const unsigned /*version*/) {
6203 s & BOOST_SERIALIZATION_NVP(modref);
6204 s & BOOST_SERIALIZATION_NVP(nm_off);
6205 s & BOOST_SERIALIZATION_NVP(addend);
6206 }
6207#endif
6208
6209 // Added to support RTI support in ROSE
6210 friend std::ostream & operator<< ( std::ostream & os, const iname_type & x );
6211
6212 iname_type();
6213 };
6214
6215 struct osfixup_type { /*tgt_type==0x03: operating system fixup*/
6216 unsigned type;
6217 unsigned res3;
6218
6219#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6220 template<class S>
6221 void serialize(S &s, const unsigned /*version*/) {
6222 s & BOOST_SERIALIZATION_NVP(type);
6223 s & BOOST_SERIALIZATION_NVP(res3);
6224 }
6225#endif
6226
6227 // Added to support RTI support in ROSE
6228 friend std::ostream & operator<< ( std::ostream & os, const osfixup_type & x );
6229
6230 osfixup_type();
6231 };
6232
6234 // Properties
6236public:
6237public:
6238 SgAsmNERelocEntry::NERelocSrcType const& get_src_type() const;
6239 void set_src_type(SgAsmNERelocEntry::NERelocSrcType const&);
6240
6241public:
6242 SgAsmNERelocEntry::NERelocModifiers const& get_modifier() const;
6243 void set_modifier(SgAsmNERelocEntry::NERelocModifiers const&);
6244
6245public:
6246 SgAsmNERelocEntry::NERelocTgtType const& get_tgt_type() const;
6247 void set_tgt_type(SgAsmNERelocEntry::NERelocTgtType const&);
6248
6249public:
6250 SgAsmNERelocEntry::NERelocFlags const& get_flags() const;
6251 void set_flags(SgAsmNERelocEntry::NERelocFlags const&);
6252
6253public:
6254 rose_addr_t const& get_src_offset() const;
6255 void set_src_offset(rose_addr_t const&);
6256
6257public:
6258 SgAsmNERelocEntry::iref_type const& get_iref() const;
6259 void set_iref(SgAsmNERelocEntry::iref_type const&);
6260
6261public:
6262 SgAsmNERelocEntry::iord_type const& get_iord() const;
6263 void set_iord(SgAsmNERelocEntry::iord_type const&);
6264
6265public:
6266 SgAsmNERelocEntry::iname_type const& get_iname() const;
6267 void set_iname(SgAsmNERelocEntry::iname_type const&);
6268
6269public:
6270 SgAsmNERelocEntry::osfixup_type const& get_osfixup() const;
6271 void set_osfixup(SgAsmNERelocEntry::osfixup_type const&);
6273 // Functions
6275public:
6276 SgAsmNERelocEntry(SgAsmGenericSection *relocs, rose_addr_t at, rose_addr_t *rec_size);
6277 rose_addr_t unparse(std::ostream&, const SgAsmGenericSection*, rose_addr_t spos) const;
6278 void dump(FILE*, const char *prefix, ssize_t idx) const;
6279public:
6282
6283public:
6286
6287protected:
6295#endif // SgAsmNERelocEntry_OTHERS
6296#ifdef DOCUMENTATION
6297};
6298#endif // DOCUMENTATION
6299
6300
6302// SgAsmNENameTable -- MACHINE GENERATED; DO NOT MODIFY --
6304
6305DECLARE_LEAF_CLASS(AsmNENameTable);
6306IS_SERIALIZABLE(AsmNENameTable);
6307
6308#ifndef DOCUMENTATION
6309AsmNENameTable.useSmallHeader(true);
6310#endif // !DOCUMENTATION
6311
6312#ifdef DOCUMENTATION
6314#endif // DOCUMENTATION
6315
6316#ifndef DOCUMENTATION
6317 AsmNENameTable.setDataPrototype(
6318 "SgStringList", "names", "",
6319 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6320#endif // !DOCUMENTATION
6321
6322#ifndef DOCUMENTATION
6323 AsmNENameTable.setDataPrototype(
6324 "SgUnsignedList", "ordinals", "",
6325 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6326#endif // !DOCUMENTATION
6327
6328 DECLARE_OTHERS(AsmNENameTable);
6329#if defined(SgAsmNENameTable_OTHERS) || defined(DOCUMENTATION)
6330
6331 //----------------------- Boost serialization for SgAsmNENameTable -----------------------
6332#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6333private:
6334 friend class boost::serialization::access;
6335
6336 template<class S>
6337 void serialize(S &s, const unsigned /*version*/) {
6338 debugSerializationBegin("SgAsmNENameTable");
6339 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6340 s & BOOST_SERIALIZATION_NVP(p_names);
6341 s & BOOST_SERIALIZATION_NVP(p_ordinals);
6342 debugSerializationEnd("SgAsmNENameTable");
6343 }
6344#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6345public:
6346public:
6347 SgStringList const& get_names() const;
6348 void set_names(SgStringList const&);
6349
6350public:
6351 SgUnsignedList const& get_ordinals() const;
6352 void set_ordinals(SgUnsignedList const&);
6353public:
6354 SgAsmNENameTable(SgAsmNEFileHeader *fhdr, rose_addr_t offset);
6355 virtual void unparse(std::ostream&) const override;
6356 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6357 std::vector<std::string> get_namesByOrdinal(unsigned ordinal);
6358
6360 // Deprecated 2023-11
6362public:
6363 std::vector<std::string> get_names_by_ordinal(unsigned) ROSE_DEPRECATED("use get_namesByOrdinal");
6364public:
6367
6368public:
6371
6372protected:
6380#endif // SgAsmNENameTable_OTHERS
6381#ifdef DOCUMENTATION
6382};
6383#endif // DOCUMENTATION
6384
6385
6387// SgAsmNEModuleTable -- MACHINE GENERATED; DO NOT MODIFY --
6389
6390DECLARE_LEAF_CLASS(AsmNEModuleTable);
6391IS_SERIALIZABLE(AsmNEModuleTable);
6392
6393#ifndef DOCUMENTATION
6394AsmNEModuleTable.useSmallHeader(true);
6395#endif // !DOCUMENTATION
6396
6397DECLARE_HEADERS(AsmNEModuleTable);
6398#if defined(SgAsmNEModuleTable_HEADERS) || defined(DOCUMENTATION)
6399#ifdef ROSE_SgAsmNEModuleTable_IMPL
6400#include <SgAsmNEStringTable.h>
6401#endif
6402#endif // SgAsmNEModuleTable_HEADERS
6403
6404#ifdef DOCUMENTATION
6406#endif // DOCUMENTATION
6407
6408#ifndef DOCUMENTATION
6409 AsmNEModuleTable.setDataPrototype(
6410 "SgAsmNEStringTable*", "strtab", "= nullptr",
6411 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6412#endif // !DOCUMENTATION
6413
6414#ifndef DOCUMENTATION
6415 AsmNEModuleTable.setDataPrototype(
6416 "SgAddressList", "nameOffsets", "",
6417 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6418#endif // !DOCUMENTATION
6419
6420#ifndef DOCUMENTATION
6421 AsmNEModuleTable.setDataPrototype(
6422 "SgStringList", "names", "",
6423 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6424#endif // !DOCUMENTATION
6425
6426 DECLARE_OTHERS(AsmNEModuleTable);
6427#if defined(SgAsmNEModuleTable_OTHERS) || defined(DOCUMENTATION)
6428
6429 //----------------------- Boost serialization for SgAsmNEModuleTable -----------------------
6430#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6431private:
6432 friend class boost::serialization::access;
6433
6434 template<class S>
6435 void serialize(S &s, const unsigned /*version*/) {
6436 debugSerializationBegin("SgAsmNEModuleTable");
6437 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6438 s & BOOST_SERIALIZATION_NVP(p_strtab);
6439 s & BOOST_SERIALIZATION_NVP(p_nameOffsets);
6440 s & BOOST_SERIALIZATION_NVP(p_names);
6441 debugSerializationEnd("SgAsmNEModuleTable");
6442 }
6443#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6444public:
6445public:
6446 SgAsmNEStringTable* const& get_strtab() const;
6447 void set_strtab(SgAsmNEStringTable* const&);
6448
6449public:
6450 SgAddressList const& get_nameOffsets() const;
6451 void set_nameOffsets(SgAddressList const&);
6452
6453public:
6454 SgStringList const& get_names() const;
6455 void set_names(SgStringList const&);
6456public:
6457 SgAsmNEModuleTable(SgAsmNEFileHeader *fhdr, SgAsmNEStringTable *strtab, rose_addr_t offset, rose_addr_t size);
6458 virtual void unparse(std::ostream&) const override;
6459 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6460
6462 // Deprecated 2023-11
6464public:
6465 const SgAddressList& get_name_offsets() const ROSE_DEPRECATED("use get_nameOffsets");
6466 void set_name_offsets(const SgAddressList&) ROSE_DEPRECATED("use set_nameOffsets");
6467public:
6470
6471public:
6474
6475protected:
6483#endif // SgAsmNEModuleTable_OTHERS
6484#ifdef DOCUMENTATION
6485};
6486#endif // DOCUMENTATION
6487
6488
6490// SgAsmNEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
6492
6493DECLARE_LEAF_CLASS(AsmNEFileHeader);
6494IS_SERIALIZABLE(AsmNEFileHeader);
6495
6496#ifndef DOCUMENTATION
6497AsmNEFileHeader.useSmallHeader(true);
6498#endif // !DOCUMENTATION
6499
6500DECLARE_HEADERS(AsmNEFileHeader);
6501#if defined(SgAsmNEFileHeader_HEADERS) || defined(DOCUMENTATION)
6502#include <Rose/BinaryAnalysis/Address.h>
6503
6504#ifdef ROSE_SgAsmNEFileHeader_IMPL
6505#include <SgAsmDOSExtendedHeader.h>
6506#include <SgAsmNEEntryTable.h>
6507#include <SgAsmNEModuleTable.h>
6508#include <SgAsmNENameTable.h>
6509#include <SgAsmNESectionTable.h>
6510#endif
6511#endif // SgAsmNEFileHeader_HEADERS
6512
6513#ifdef DOCUMENTATION
6515#endif // DOCUMENTATION
6516
6517#ifndef DOCUMENTATION
6518 AsmNEFileHeader.setDataPrototype(
6519 "unsigned", "e_linker_major", "= 0",
6520 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6521#endif // !DOCUMENTATION
6522
6523#ifndef DOCUMENTATION
6524 AsmNEFileHeader.setDataPrototype(
6525 "unsigned", "e_linker_minor", "= 0",
6526 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6527#endif // !DOCUMENTATION
6528
6529#ifndef DOCUMENTATION
6530 AsmNEFileHeader.setDataPrototype(
6531 "unsigned", "e_checksum", "= 0",
6532 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6533#endif // !DOCUMENTATION
6534
6535#ifndef DOCUMENTATION
6536 AsmNEFileHeader.setDataPrototype(
6537 "unsigned", "e_flags1", "= 0",
6538 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6539#endif // !DOCUMENTATION
6540
6541#ifndef DOCUMENTATION
6542 AsmNEFileHeader.setDataPrototype(
6543 "unsigned", "e_autodata_sn", "= 0",
6544 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6545#endif // !DOCUMENTATION
6546
6547#ifndef DOCUMENTATION
6548 AsmNEFileHeader.setDataPrototype(
6549 "unsigned", "e_bss_size", "= 0",
6550 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6551#endif // !DOCUMENTATION
6552
6553#ifndef DOCUMENTATION
6554 AsmNEFileHeader.setDataPrototype(
6555 "unsigned", "e_stack_size", "= 0",
6556 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6557#endif // !DOCUMENTATION
6558
6559#ifndef DOCUMENTATION
6560 AsmNEFileHeader.setDataPrototype(
6561 "unsigned", "e_csip", "= 0",
6562 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6563#endif // !DOCUMENTATION
6564
6565#ifndef DOCUMENTATION
6566 AsmNEFileHeader.setDataPrototype(
6567 "unsigned", "e_sssp", "= 0",
6568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6569#endif // !DOCUMENTATION
6570
6571#ifndef DOCUMENTATION
6572 AsmNEFileHeader.setDataPrototype(
6573 "unsigned", "e_nsections", "= 0",
6574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6575#endif // !DOCUMENTATION
6576
6577#ifndef DOCUMENTATION
6578 AsmNEFileHeader.setDataPrototype(
6579 "unsigned", "e_nmodrefs", "= 0",
6580 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6581#endif // !DOCUMENTATION
6582
6583#ifndef DOCUMENTATION
6584 AsmNEFileHeader.setDataPrototype(
6585 "unsigned", "e_nnonresnames", "= 0",
6586 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6587#endif // !DOCUMENTATION
6588
6589#ifndef DOCUMENTATION
6590 AsmNEFileHeader.setDataPrototype(
6591 "unsigned", "e_nmovable_entries", "= 0",
6592 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6593#endif // !DOCUMENTATION
6594
6595#ifndef DOCUMENTATION
6596 AsmNEFileHeader.setDataPrototype(
6597 "unsigned", "e_sector_align", "= 0",
6598 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6599#endif // !DOCUMENTATION
6600
6601#ifndef DOCUMENTATION
6602 AsmNEFileHeader.setDataPrototype(
6603 "unsigned", "e_nresources", "= 0",
6604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6605#endif // !DOCUMENTATION
6606
6607#ifndef DOCUMENTATION
6608 AsmNEFileHeader.setDataPrototype(
6609 "unsigned", "e_exetype", "= 0",
6610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6611#endif // !DOCUMENTATION
6612
6613#ifndef DOCUMENTATION
6614 AsmNEFileHeader.setDataPrototype(
6615 "unsigned", "e_flags2", "= 0",
6616 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6617#endif // !DOCUMENTATION
6618
6619#ifndef DOCUMENTATION
6620 AsmNEFileHeader.setDataPrototype(
6621 "unsigned", "e_res1", "= 0",
6622 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6623#endif // !DOCUMENTATION
6624
6625#ifndef DOCUMENTATION
6626 AsmNEFileHeader.setDataPrototype(
6627 "unsigned", "e_winvers", "= 0",
6628 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6629#endif // !DOCUMENTATION
6630
6631#ifndef DOCUMENTATION
6632 AsmNEFileHeader.setDataPrototype(
6633 "rose_addr_t", "e_entrytab_rfo", "= 0",
6634 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6635#endif // !DOCUMENTATION
6636
6637#ifndef DOCUMENTATION
6638 AsmNEFileHeader.setDataPrototype(
6639 "rose_addr_t", "e_entrytab_size", "= 0",
6640 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6641#endif // !DOCUMENTATION
6642
6643#ifndef DOCUMENTATION
6644 AsmNEFileHeader.setDataPrototype(
6645 "rose_addr_t", "e_sectab_rfo", "= 0",
6646 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6647#endif // !DOCUMENTATION
6648
6649#ifndef DOCUMENTATION
6650 AsmNEFileHeader.setDataPrototype(
6651 "rose_addr_t", "e_rsrctab_rfo", "= 0",
6652 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6653#endif // !DOCUMENTATION
6654
6655#ifndef DOCUMENTATION
6656 AsmNEFileHeader.setDataPrototype(
6657 "rose_addr_t", "e_resnametab_rfo", "= 0",
6658 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6659#endif // !DOCUMENTATION
6660
6661#ifndef DOCUMENTATION
6662 AsmNEFileHeader.setDataPrototype(
6663 "rose_addr_t", "e_modreftab_rfo", "= 0",
6664 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6665#endif // !DOCUMENTATION
6666
6667#ifndef DOCUMENTATION
6668 AsmNEFileHeader.setDataPrototype(
6669 "rose_addr_t", "e_importnametab_rfo", "= 0",
6670 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6671#endif // !DOCUMENTATION
6672
6673#ifndef DOCUMENTATION
6674 AsmNEFileHeader.setDataPrototype(
6675 "rose_addr_t", "e_nonresnametab_offset", "= 0",
6676 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6677#endif // !DOCUMENTATION
6678
6679#ifndef DOCUMENTATION
6680 AsmNEFileHeader.setDataPrototype(
6681 "rose_addr_t", "e_fastload_sector", "= 0",
6682 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6683#endif // !DOCUMENTATION
6684
6685#ifndef DOCUMENTATION
6686 AsmNEFileHeader.setDataPrototype(
6687 "rose_addr_t", "e_fastload_nsectors", "= 0",
6688 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6689#endif // !DOCUMENTATION
6690
6691#ifndef DOCUMENTATION
6692 AsmNEFileHeader.setDataPrototype(
6693 "SgAsmDOSExtendedHeader*", "dos2Header", "= nullptr",
6694 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6695#endif // !DOCUMENTATION
6696
6697#ifndef DOCUMENTATION
6698 AsmNEFileHeader.setDataPrototype(
6699 "SgAsmNESectionTable*", "sectionTable", "= nullptr",
6700 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6701#endif // !DOCUMENTATION
6702
6703#ifndef DOCUMENTATION
6704 AsmNEFileHeader.setDataPrototype(
6705 "SgAsmNENameTable*", "residentNameTable", "= nullptr",
6706 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6707#endif // !DOCUMENTATION
6708
6709#ifndef DOCUMENTATION
6710 AsmNEFileHeader.setDataPrototype(
6711 "SgAsmNENameTable*", "nonresidentNameTable", "= nullptr",
6712 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6713#endif // !DOCUMENTATION
6714
6715#ifndef DOCUMENTATION
6716 AsmNEFileHeader.setDataPrototype(
6717 "SgAsmNEModuleTable*", "moduleTable", "= nullptr",
6718 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6719#endif // !DOCUMENTATION
6720
6721#ifndef DOCUMENTATION
6722 AsmNEFileHeader.setDataPrototype(
6723 "SgAsmNEEntryTable*", "entryTable", "= nullptr",
6724 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6725#endif // !DOCUMENTATION
6726
6727 DECLARE_OTHERS(AsmNEFileHeader);
6728#if defined(SgAsmNEFileHeader_OTHERS) || defined(DOCUMENTATION)
6729
6730 //----------------------- Boost serialization for SgAsmNEFileHeader -----------------------
6731#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
6732private:
6733 friend class boost::serialization::access;
6734
6735 template<class S>
6736 void serialize(S &s, const unsigned /*version*/) {
6737 debugSerializationBegin("SgAsmNEFileHeader");
6738 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
6739 s & BOOST_SERIALIZATION_NVP(p_e_linker_major);
6740 s & BOOST_SERIALIZATION_NVP(p_e_linker_minor);
6741 s & BOOST_SERIALIZATION_NVP(p_e_checksum);
6742 s & BOOST_SERIALIZATION_NVP(p_e_flags1);
6743 s & BOOST_SERIALIZATION_NVP(p_e_autodata_sn);
6744 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
6745 s & BOOST_SERIALIZATION_NVP(p_e_stack_size);
6746 s & BOOST_SERIALIZATION_NVP(p_e_csip);
6747 s & BOOST_SERIALIZATION_NVP(p_e_sssp);
6748 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
6749 s & BOOST_SERIALIZATION_NVP(p_e_nmodrefs);
6750 s & BOOST_SERIALIZATION_NVP(p_e_nnonresnames);
6751 s & BOOST_SERIALIZATION_NVP(p_e_nmovable_entries);
6752 s & BOOST_SERIALIZATION_NVP(p_e_sector_align);
6753 s & BOOST_SERIALIZATION_NVP(p_e_nresources);
6754 s & BOOST_SERIALIZATION_NVP(p_e_exetype);
6755 s & BOOST_SERIALIZATION_NVP(p_e_flags2);
6756 s & BOOST_SERIALIZATION_NVP(p_e_res1);
6757 s & BOOST_SERIALIZATION_NVP(p_e_winvers);
6758 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
6759 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_size);
6760 s & BOOST_SERIALIZATION_NVP(p_e_sectab_rfo);
6761 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
6762 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
6763 s & BOOST_SERIALIZATION_NVP(p_e_modreftab_rfo);
6764 s & BOOST_SERIALIZATION_NVP(p_e_importnametab_rfo);
6765 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
6766 s & BOOST_SERIALIZATION_NVP(p_e_fastload_sector);
6767 s & BOOST_SERIALIZATION_NVP(p_e_fastload_nsectors);
6768 s & BOOST_SERIALIZATION_NVP(p_dos2Header);
6769 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
6770 s & BOOST_SERIALIZATION_NVP(p_residentNameTable);
6771 s & BOOST_SERIALIZATION_NVP(p_nonresidentNameTable);
6772 s & BOOST_SERIALIZATION_NVP(p_moduleTable);
6773 s & BOOST_SERIALIZATION_NVP(p_entryTable);
6774 debugSerializationEnd("SgAsmNEFileHeader");
6775 }
6776#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
6778 // Local types
6780public:
6781#ifdef _MSC_VER
6782# pragma pack (1)
6783#endif
6784 /* File format of an NE File Header. All fields are little endian.
6785 *
6786 * NOTES
6787 *
6788 * e_sssp: The value specified in SS is an index (1-origin) into the segment table. If SS addresses the automatic data segment
6789 * and SP is zero then SP is set to the address obtained by adding the size of the automatic data segment to the size
6790 * of the stack. */
6792 unsigned char e_magic[2]; /* 0x00 magic number "NE" */
6793 unsigned char e_linker_major; /* 0x02 linker major version number */
6794 unsigned char e_linker_minor; /* 0x03 linker minor version number */
6795 uint16_t e_entrytab_rfo; /* 0x04 entry table offset relative to start of header */
6796 uint16_t e_entrytab_size; /* 0x06 size of entry table in bytes */
6797 uint32_t e_checksum; /* 0x08 32-bit CRC of entire file (this word is taken a zero during the calculation) */
6798 uint16_t e_flags1; /* 0x0c file-level bit flags (see HeaderFlags1) */
6799 uint16_t e_autodata_sn; /* 0x0e auto data section number if (flags & 0x3)==0; else zero */
6800 uint16_t e_bss_size; /* 0x10 num bytes added to data segment for BSS */
6801 uint16_t e_stack_size; /* 0x12 num bytes added to data segment for stack (zero of SS!=DS registers) */
6802 uint32_t e_csip; /* 0x14 section number:offset of CS:IP */
6803 uint32_t e_sssp; /* 0x18 section number:offset of SS:SP (see note 1 above) */
6804 uint16_t e_nsections; /* 0x1c number of entries in the section table */
6805 uint16_t e_nmodrefs; /* 0x1e number of entries in the module reference table */
6806 uint16_t e_nnonresnames; /* 0x20 number of entries in the non-resident name table */
6807 uint16_t e_sectab_rfo; /* 0x22 offset of section table relative to start of header */
6808 uint16_t e_rsrctab_rfo; /* 0x24 offset of resource table relative to start of header */
6809 uint16_t e_resnametab_rfo; /* 0x26 offset of resident name table relative to start of header */
6810 uint16_t e_modreftab_rfo; /* 0x28 offset of module reference table relative to start of header */
6811 uint16_t e_importnametab_rfo; /* 0x2a offset of imported names table relative to start of header */
6812 uint32_t e_nonresnametab_offset; /* 0x2c file offset of non-resident name table */
6813 uint16_t e_nmovable_entries; /* 0x30 number of movable entries in Entry Table */
6814 uint16_t e_sector_align; /* 0x32 sector alignment shift count (log2 of segment sector size) */
6815 uint16_t e_nresources; /* 0x34 number of resource entries */
6816 unsigned char e_exetype; /* 0x36 executable type (2==windows) */
6817 unsigned char e_flags2; /* 0x37 additional flags (see HeaderFlags2) */
6818 uint16_t e_fastload_sector; /* 0x38 sector offset to fast-load area (only for Windows) */
6819 uint16_t e_fastload_nsectors; /* 0x3a size of fast-load area in sectors (only for Windows) */
6820 uint16_t e_res1; /* 0x3c reserved */
6821 uint16_t e_winvers; /* 0x3e expected version number for Windows (only for Windows) */
6822 } /* 0x40 */
6823// DQ (3/7/2013): Adding support to restrict visability to SWIG.
6824#ifndef SWIG
6825#ifndef _MSC_VER
6826 __attribute__((packed))
6827#endif
6828#endif
6829 ;
6830#ifdef _MSC_VER
6831# pragma pack ()
6832#endif
6833
6834 /* Bit flags for the NE header 'e_flags' member.
6835 *
6836 * If HF_LIBRARY (bit 15) is set then the CS:IP registers point to an initialization procedure called with the value in the AX
6837 * register equal to the module handle. The initialization procedure must execute a far return to the caller. The resulting
6838 * value in AX is a status indicator (non-zero for success, zero for failure). */
6839 enum HeaderFlags1 {
6840 HF1_RESERVED = 0x57f4, /* Reserved bits */
6841 HF1_NO_DATA = 0x0000, /* (flags&0x03==0) => an exe not containing a data segment */
6842 HF1_SINGLE_DATA = 0x0001, /* Executable contains one data segment; set if file is a DLL */
6843 HF1_MULTIPLE_DATA = 0x0002, /* Exe with multiple data segments; set if a windows application */
6844 HF1_LOADER_SEGMENT = 0x0800, /* First segment contains code that loads the application */
6845 HF1_FATAL_ERRORS = 0x2000, /* Errors detected at link time; module will not load */
6846 HF1_LIBRARY = 0x8000 /* Module is a library */
6847 };
6848
6849 /* Bit flags for the NE header 'e_flags2' member. */
6850 enum HeaderFlags2 {
6851 HF2_RESERVED = 0xf1, /* Reserved bits */
6852 HF2_PROTECTED_MODE = 0x02, /* Windows 2.x application that runs in 3.x protected mode */
6853 HF2_PFONTS = 0x04, /* Windows 2.x application that supports proportional fonts */
6854 HF2_FASTLOAD = 0x08 /* Executable contains a fast-load area */
6855 };
6856
6858 // Properties
6860public:
6861public:
6862 unsigned const& get_e_linker_major() const;
6863 void set_e_linker_major(unsigned const&);
6864
6865public:
6866 unsigned const& get_e_linker_minor() const;
6867 void set_e_linker_minor(unsigned const&);
6868
6869public:
6870 unsigned const& get_e_checksum() const;
6871 void set_e_checksum(unsigned const&);
6872
6873public:
6874 unsigned const& get_e_flags1() const;
6875 void set_e_flags1(unsigned const&);
6876
6877public:
6878 unsigned const& get_e_autodata_sn() const;
6879 void set_e_autodata_sn(unsigned const&);
6880
6881public:
6882 unsigned const& get_e_bss_size() const;
6883 void set_e_bss_size(unsigned const&);
6884
6885public:
6886 unsigned const& get_e_stack_size() const;
6887 void set_e_stack_size(unsigned const&);
6888
6889public:
6890 unsigned const& get_e_csip() const;
6891 void set_e_csip(unsigned const&);
6892
6893public:
6894 unsigned const& get_e_sssp() const;
6895 void set_e_sssp(unsigned const&);
6896
6897public:
6898 unsigned const& get_e_nsections() const;
6899 void set_e_nsections(unsigned const&);
6900
6901public:
6902 unsigned const& get_e_nmodrefs() const;
6903 void set_e_nmodrefs(unsigned const&);
6904
6905public:
6906 unsigned const& get_e_nnonresnames() const;
6907 void set_e_nnonresnames(unsigned const&);
6908
6909public:
6910 unsigned const& get_e_nmovable_entries() const;
6911 void set_e_nmovable_entries(unsigned const&);
6912
6913public:
6914 unsigned const& get_e_sector_align() const;
6915 void set_e_sector_align(unsigned const&);
6916
6917public:
6918 unsigned const& get_e_nresources() const;
6919 void set_e_nresources(unsigned const&);
6920
6921public:
6922 unsigned const& get_e_exetype() const;
6923 void set_e_exetype(unsigned const&);
6924
6925public:
6926 unsigned const& get_e_flags2() const;
6927 void set_e_flags2(unsigned const&);
6928
6929public:
6930 unsigned const& get_e_res1() const;
6931 void set_e_res1(unsigned const&);
6932
6933public:
6934 unsigned const& get_e_winvers() const;
6935 void set_e_winvers(unsigned const&);
6936
6937public:
6938 rose_addr_t const& get_e_entrytab_rfo() const;
6939 void set_e_entrytab_rfo(rose_addr_t const&);
6940
6941public:
6942 rose_addr_t const& get_e_entrytab_size() const;
6943 void set_e_entrytab_size(rose_addr_t const&);
6944
6945public:
6946 rose_addr_t const& get_e_sectab_rfo() const;
6947 void set_e_sectab_rfo(rose_addr_t const&);
6948
6949public:
6950 rose_addr_t const& get_e_rsrctab_rfo() const;
6951 void set_e_rsrctab_rfo(rose_addr_t const&);
6952
6953public:
6954 rose_addr_t const& get_e_resnametab_rfo() const;
6955 void set_e_resnametab_rfo(rose_addr_t const&);
6956
6957public:
6958 rose_addr_t const& get_e_modreftab_rfo() const;
6959 void set_e_modreftab_rfo(rose_addr_t const&);
6960
6961public:
6962 rose_addr_t const& get_e_importnametab_rfo() const;
6963 void set_e_importnametab_rfo(rose_addr_t const&);
6964
6965public:
6966 rose_addr_t const& get_e_nonresnametab_offset() const;
6967 void set_e_nonresnametab_offset(rose_addr_t const&);
6968
6969public:
6970 rose_addr_t const& get_e_fastload_sector() const;
6971 void set_e_fastload_sector(rose_addr_t const&);
6972
6973public:
6974 rose_addr_t const& get_e_fastload_nsectors() const;
6975 void set_e_fastload_nsectors(rose_addr_t const&);
6976
6977public:
6978 SgAsmDOSExtendedHeader* const& get_dos2Header() const;
6979 void set_dos2Header(SgAsmDOSExtendedHeader* const&);
6980
6981public:
6982 SgAsmNESectionTable* const& get_sectionTable() const;
6983 void set_sectionTable(SgAsmNESectionTable* const&);
6984
6985public:
6986 SgAsmNENameTable* const& get_residentNameTable() const;
6987 void set_residentNameTable(SgAsmNENameTable* const&);
6988
6989public:
6990 SgAsmNENameTable* const& get_nonresidentNameTable() const;
6991 void set_nonresidentNameTable(SgAsmNENameTable* const&);
6992
6993public:
6994 SgAsmNEModuleTable* const& get_moduleTable() const;
6995 void set_moduleTable(SgAsmNEModuleTable* const&);
6996
6997public:
6998 SgAsmNEEntryTable* const& get_entryTable() const;
6999 void set_entryTable(SgAsmNEEntryTable* const&);
7001 // Functions
7003public:
7004 SgAsmNEFileHeader(SgAsmGenericFile *f, rose_addr_t offset);
7005
7006 static bool isNe (SgAsmGenericFile*);
7008 virtual void unparse(std::ostream&) const override;
7009 virtual const char *formatName() const override;
7010 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7011
7012private:
7013 void *encode(SgAsmNEFileHeader::NEFileHeader_disk*) const;
7014
7016 // Deprecated 2023-11
7018public:
7019 SgAsmDOSExtendedHeader* get_dos2_header() const ROSE_DEPRECATED("use get_dos2Header");
7020 void set_dos2_header(SgAsmDOSExtendedHeader*) ROSE_DEPRECATED("use set_dos2Header");
7021 SgAsmNESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
7022 void set_section_table(SgAsmNESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
7023 SgAsmNENameTable* get_resname_table() const ROSE_DEPRECATED("use get_residentNameTable");
7024 void set_resname_table(SgAsmNENameTable*) ROSE_DEPRECATED("use set_residentNameTable");
7025 SgAsmNENameTable* get_nonresname_table() const ROSE_DEPRECATED("use get_nonresidentNameTable");
7026 void set_nonresname_table(SgAsmNENameTable*) ROSE_DEPRECATED("use set_nonresidentNameTable");
7027 SgAsmNEModuleTable* get_module_table() const ROSE_DEPRECATED("use get_moduleTable");
7028 void set_module_table(SgAsmNEModuleTable*) ROSE_DEPRECATED("use set_moduleTable");
7029 SgAsmNEEntryTable* get_entry_table() const ROSE_DEPRECATED("use get_entryTable");
7030 void set_entry_table(SgAsmNEEntryTable*) ROSE_DEPRECATED("use set_entryTable");
7031 static bool is_NE (SgAsmGenericFile*) ROSE_DEPRECATED("use isNe");
7032 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
7033public:
7036
7037public:
7040
7041protected:
7049#endif // SgAsmNEFileHeader_OTHERS
7050#ifdef DOCUMENTATION
7051};
7052#endif // DOCUMENTATION
7053
7054
7056// SgAsmNEEntryTable -- MACHINE GENERATED; DO NOT MODIFY --
7058
7059DECLARE_LEAF_CLASS(AsmNEEntryTable);
7060IS_SERIALIZABLE(AsmNEEntryTable);
7061
7062#ifndef DOCUMENTATION
7063AsmNEEntryTable.useSmallHeader(true);
7064#endif // !DOCUMENTATION
7065
7066#ifdef DOCUMENTATION
7068#endif // DOCUMENTATION
7069
7070#ifndef DOCUMENTATION
7071 AsmNEEntryTable.setDataPrototype(
7072 "SgSizeTList", "bundle_sizes", "",
7073 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7074#endif // !DOCUMENTATION
7075
7076#ifndef DOCUMENTATION
7077 AsmNEEntryTable.setDataPrototype(
7078 "SgAsmNEEntryPointPtrList", "entries", "",
7079 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7080#endif // !DOCUMENTATION
7081
7082 DECLARE_OTHERS(AsmNEEntryTable);
7083#if defined(SgAsmNEEntryTable_OTHERS) || defined(DOCUMENTATION)
7084
7085 //----------------------- Boost serialization for SgAsmNEEntryTable -----------------------
7086#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7087private:
7088 friend class boost::serialization::access;
7089
7090 template<class S>
7091 void serialize(S &s, const unsigned /*version*/) {
7092 debugSerializationBegin("SgAsmNEEntryTable");
7093 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7094 s & BOOST_SERIALIZATION_NVP(p_bundle_sizes);
7095 s & BOOST_SERIALIZATION_NVP(p_entries);
7096 debugSerializationEnd("SgAsmNEEntryTable");
7097 }
7098#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7099public:
7100public:
7101 SgSizeTList const& get_bundle_sizes() const;
7102 void set_bundle_sizes(SgSizeTList const&);
7103
7104public:
7105 SgAsmNEEntryPointPtrList const& get_entries() const;
7106 SgAsmNEEntryPointPtrList& get_entries();
7107 void set_entries(SgAsmNEEntryPointPtrList const&);
7108public:
7109 SgAsmNEEntryTable(SgAsmNEFileHeader *fhdr, rose_addr_t offset, rose_addr_t size);
7110 void populate_entries();
7111 virtual void unparse(std::ostream&) const override;
7112 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7113public:
7116
7117public:
7120
7121protected:
7129#endif // SgAsmNEEntryTable_OTHERS
7130#ifdef DOCUMENTATION
7131};
7132#endif // DOCUMENTATION
7133
7134
7136// SgAsmNEEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
7138
7139DECLARE_LEAF_CLASS(AsmNEEntryPoint);
7140IS_SERIALIZABLE(AsmNEEntryPoint);
7141
7142#ifndef DOCUMENTATION
7143AsmNEEntryPoint.useSmallHeader(true);
7144#endif // !DOCUMENTATION
7145
7146#ifdef DOCUMENTATION
7148#endif // DOCUMENTATION
7149
7150#ifndef DOCUMENTATION
7151 AsmNEEntryPoint.setDataPrototype(
7152 "SgAsmNEEntryPoint::NEEntryFlags", "flags", "= SgAsmNEEntryPoint::EF_ZERO",
7153 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7154#endif // !DOCUMENTATION
7155
7156#ifndef DOCUMENTATION
7157 AsmNEEntryPoint.setDataPrototype(
7158 "unsigned", "int3f", "= 0",
7159 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7160#endif // !DOCUMENTATION
7161
7162#ifndef DOCUMENTATION
7163 AsmNEEntryPoint.setDataPrototype(
7164 "unsigned", "sectionIndex", "= 0",
7165 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7166#endif // !DOCUMENTATION
7167
7168#ifndef DOCUMENTATION
7169 AsmNEEntryPoint.setDataPrototype(
7170 "unsigned", "sectionOffset", "= 0",
7171 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7172#endif // !DOCUMENTATION
7173
7174 DECLARE_OTHERS(AsmNEEntryPoint);
7175#if defined(SgAsmNEEntryPoint_OTHERS) || defined(DOCUMENTATION)
7176
7177 //----------------------- Boost serialization for SgAsmNEEntryPoint -----------------------
7178#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7179private:
7180 friend class boost::serialization::access;
7181
7182 template<class S>
7183 void serialize(S &s, const unsigned /*version*/) {
7184 debugSerializationBegin("SgAsmNEEntryPoint");
7185 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
7186 s & BOOST_SERIALIZATION_NVP(p_flags);
7187 s & BOOST_SERIALIZATION_NVP(p_int3f);
7188 s & BOOST_SERIALIZATION_NVP(p_sectionIndex);
7189 s & BOOST_SERIALIZATION_NVP(p_sectionOffset);
7190 debugSerializationEnd("SgAsmNEEntryPoint");
7191 }
7192#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7194 // Local types
7196public:
7197 enum NEEntryFlags {
7198 EF_ZERO = 0x00, /* No flags set */
7199 EF_RESERVED = 0xfc, /* Reserved bits */
7200 EF_EXPORTED = 0x01, /* Exported */
7201 EF_GLOBAL = 0x02 /* Uses a global (shared) data section */
7202 };
7203
7205 // Properties
7207public:
7208public:
7209 SgAsmNEEntryPoint::NEEntryFlags const& get_flags() const;
7210 void set_flags(SgAsmNEEntryPoint::NEEntryFlags const&);
7211
7212public:
7213 unsigned const& get_int3f() const;
7214 void set_int3f(unsigned const&);
7215
7216public:
7217 unsigned const& get_sectionIndex() const;
7218 void set_sectionIndex(unsigned const&);
7219
7220public:
7221 unsigned const& get_sectionOffset() const;
7222 void set_sectionOffset(unsigned const&);
7224 // Functions
7226public:
7227 SgAsmNEEntryPoint(SgAsmNEEntryPoint::NEEntryFlags flags, unsigned int3f, unsigned s_idx, unsigned s_off);
7228 void dump(FILE*, const char *prefix, ssize_t idx) const;
7229
7231 // Deprecated 2023-11
7233public:
7234 unsigned get_section_idx() const ROSE_DEPRECATED("use get_sectionIndex");
7235 void set_section_idx(unsigned) ROSE_DEPRECATED("use set_sectionIndex");
7236 unsigned get_section_offset() const ROSE_DEPRECATED("use get_sectionOffset");
7237 void set_section_offset(unsigned) ROSE_DEPRECATED("use set_sectionOffset");
7238public:
7241
7242public:
7245
7246protected:
7254#endif // SgAsmNEEntryPoint_OTHERS
7255#ifdef DOCUMENTATION
7256};
7257#endif // DOCUMENTATION
7258
7259
7261// SgAsmMipsInstruction -- MACHINE GENERATED; DO NOT MODIFY --
7263
7264DECLARE_LEAF_CLASS(AsmMipsInstruction);
7265IS_SERIALIZABLE(AsmMipsInstruction);
7266
7267#ifndef DOCUMENTATION
7268AsmMipsInstruction.useSmallHeader(true);
7269#endif // !DOCUMENTATION
7270
7271DECLARE_HEADERS(AsmMipsInstruction);
7272#if defined(SgAsmMipsInstruction_HEADERS) || defined(DOCUMENTATION)
7273#include <Rose/BinaryAnalysis/InstructionEnumsMips.h>
7274#endif // SgAsmMipsInstruction_HEADERS
7275
7276#ifdef DOCUMENTATION
7279#endif // DOCUMENTATION
7280
7281#ifndef DOCUMENTATION
7282 AsmMipsInstruction.setDataPrototype(
7283 "Rose::BinaryAnalysis::MipsInstructionKind", "kind", "= Rose::BinaryAnalysis::mips_unknown_instruction",
7284 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7285#endif // !DOCUMENTATION
7286
7287 DECLARE_OTHERS(AsmMipsInstruction);
7288#if defined(SgAsmMipsInstruction_OTHERS) || defined(DOCUMENTATION)
7289
7290 //----------------------- Boost serialization for SgAsmMipsInstruction -----------------------
7291#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7292private:
7293 friend class boost::serialization::access;
7294
7295 template<class S>
7296 void serialize(S &s, const unsigned /*version*/) {
7297 debugSerializationBegin("SgAsmMipsInstruction");
7298 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
7299 s & BOOST_SERIALIZATION_NVP(p_kind);
7300 debugSerializationEnd("SgAsmMipsInstruction");
7301 }
7302#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7303public:
7304public:
7311 Rose::BinaryAnalysis::MipsInstructionKind const& get_kind() const;
7312 void set_kind(Rose::BinaryAnalysis::MipsInstructionKind const&);
7314public:
7315 // Overrides are documented in the base class
7316 virtual unsigned get_anyKind() const override;
7317public:
7320
7321public:
7324
7325public:
7327 SgAsmMipsInstruction(rose_addr_t const& address,
7328 uint8_t const& architectureId,
7329 Rose::BinaryAnalysis::MipsInstructionKind const& kind);
7330
7331protected:
7339#endif // SgAsmMipsInstruction_OTHERS
7340#ifdef DOCUMENTATION
7341};
7342#endif // DOCUMENTATION
7343
7344
7346// SgAsmMemoryReferenceExpression -- MACHINE GENERATED; DO NOT MODIFY --
7348
7349DECLARE_LEAF_CLASS(AsmMemoryReferenceExpression);
7350IS_SERIALIZABLE(AsmMemoryReferenceExpression);
7351
7352#ifndef DOCUMENTATION
7353AsmMemoryReferenceExpression.useSmallHeader(true);
7354#endif // !DOCUMENTATION
7355
7356#ifdef DOCUMENTATION
7359#endif // DOCUMENTATION
7360
7361#ifndef DOCUMENTATION
7362 AsmMemoryReferenceExpression.setDataPrototype(
7363 "SgAsmExpression*", "address", "= nullptr",
7364 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7365#endif // !DOCUMENTATION
7366
7367#ifndef DOCUMENTATION
7368 AsmMemoryReferenceExpression.setDataPrototype(
7369 "SgAsmExpression*", "segment", "= nullptr",
7370 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7371#endif // !DOCUMENTATION
7372
7373 DECLARE_OTHERS(AsmMemoryReferenceExpression);
7374#if defined(SgAsmMemoryReferenceExpression_OTHERS) || defined(DOCUMENTATION)
7375
7376 //----------------------- Boost serialization for SgAsmMemoryReferenceExpression -----------------------
7377#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7378private:
7379 friend class boost::serialization::access;
7380
7381 template<class S>
7382 void serialize(S &s, const unsigned /*version*/) {
7383 debugSerializationBegin("SgAsmMemoryReferenceExpression");
7384 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
7385 s & BOOST_SERIALIZATION_NVP(p_address);
7386 s & BOOST_SERIALIZATION_NVP(p_segment);
7387 debugSerializationEnd("SgAsmMemoryReferenceExpression");
7388 }
7389#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7390public:
7391public:
7403public:
7415public:
7418
7419public:
7422
7423public:
7426 SgAsmExpression* const& segment);
7427
7428protected:
7436#endif // SgAsmMemoryReferenceExpression_OTHERS
7437#ifdef DOCUMENTATION
7438};
7439#endif // DOCUMENTATION
7440
7441
7443// SgAsmM68kInstruction -- MACHINE GENERATED; DO NOT MODIFY --
7445
7446DECLARE_LEAF_CLASS(AsmM68kInstruction);
7447IS_SERIALIZABLE(AsmM68kInstruction);
7448
7449#ifndef DOCUMENTATION
7450AsmM68kInstruction.useSmallHeader(true);
7451#endif // !DOCUMENTATION
7452
7453DECLARE_HEADERS(AsmM68kInstruction);
7454#if defined(SgAsmM68kInstruction_HEADERS) || defined(DOCUMENTATION)
7455#include <Rose/BinaryAnalysis/InstructionEnumsM68k.h>
7456#endif // SgAsmM68kInstruction_HEADERS
7457
7458#ifdef DOCUMENTATION
7460#endif // DOCUMENTATION
7461
7462#ifndef DOCUMENTATION
7463 AsmM68kInstruction.setDataPrototype(
7464 "Rose::BinaryAnalysis::M68kInstructionKind", "kind", "= Rose::BinaryAnalysis::m68k_unknown_instruction",
7465 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7466#endif // !DOCUMENTATION
7467
7468#ifndef DOCUMENTATION
7469 AsmM68kInstruction.setDataPrototype(
7470 "Rose::BinaryAnalysis::M68kDataFormat", "dataFormat", "= Rose::BinaryAnalysis::m68k_fmt_unknown",
7471 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7472#endif // !DOCUMENTATION
7473
7474 DECLARE_OTHERS(AsmM68kInstruction);
7475#if defined(SgAsmM68kInstruction_OTHERS) || defined(DOCUMENTATION)
7476
7477 //----------------------- Boost serialization for SgAsmM68kInstruction -----------------------
7478#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7479private:
7480 friend class boost::serialization::access;
7481
7482 template<class S>
7483 void serialize(S &s, const unsigned /*version*/) {
7484 debugSerializationBegin("SgAsmM68kInstruction");
7485 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
7486 s & BOOST_SERIALIZATION_NVP(p_kind);
7487 s & BOOST_SERIALIZATION_NVP(p_dataFormat);
7488 debugSerializationEnd("SgAsmM68kInstruction");
7489 }
7490#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7491public:
7492public:
7499 Rose::BinaryAnalysis::M68kInstructionKind const& get_kind() const;
7500 void set_kind(Rose::BinaryAnalysis::M68kInstructionKind const&);
7503public:
7507 Rose::BinaryAnalysis::M68kDataFormat const& get_dataFormat() const;
7508 void set_dataFormat(Rose::BinaryAnalysis::M68kDataFormat const&);
7510public:
7511 // Overrides are documented in the base class
7512 virtual unsigned get_anyKind() const override;
7513public:
7516
7517public:
7520
7521public:
7523 SgAsmM68kInstruction(rose_addr_t const& address,
7524 uint8_t const& architectureId,
7525 Rose::BinaryAnalysis::M68kInstructionKind const& kind,
7526 Rose::BinaryAnalysis::M68kDataFormat const& dataFormat);
7527
7528protected:
7536#endif // SgAsmM68kInstruction_OTHERS
7537#ifdef DOCUMENTATION
7538};
7539#endif // DOCUMENTATION
7540
7541
7543// SgAsmLESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
7545
7546DECLARE_LEAF_CLASS(AsmLESectionTable);
7547IS_SERIALIZABLE(AsmLESectionTable);
7548
7549#ifndef DOCUMENTATION
7550AsmLESectionTable.useSmallHeader(true);
7551#endif // !DOCUMENTATION
7552
7553#ifdef DOCUMENTATION
7555#endif // DOCUMENTATION
7556
7557 DECLARE_OTHERS(AsmLESectionTable);
7558#if defined(SgAsmLESectionTable_OTHERS) || defined(DOCUMENTATION)
7559
7560 //----------------------- Boost serialization for SgAsmLESectionTable -----------------------
7561#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7562private:
7563 friend class boost::serialization::access;
7564
7565 template<class S>
7566 void serialize(S &s, const unsigned /*version*/) {
7567 debugSerializationBegin("SgAsmLESectionTable");
7568 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7569 debugSerializationEnd("SgAsmLESectionTable");
7570 }
7571#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7572public:
7573 SgAsmLESectionTable(SgAsmLEFileHeader *fhdr, rose_addr_t offset, rose_addr_t size);
7574 virtual void unparse(std::ostream&) const override;
7575 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7576public:
7579
7580public:
7583
7584protected:
7592#endif // SgAsmLESectionTable_OTHERS
7593#ifdef DOCUMENTATION
7594};
7595#endif // DOCUMENTATION
7596
7597
7599// SgAsmLESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
7601
7602DECLARE_LEAF_CLASS(AsmLESectionTableEntry);
7603IS_SERIALIZABLE(AsmLESectionTableEntry);
7604
7605#ifndef DOCUMENTATION
7606AsmLESectionTableEntry.useSmallHeader(true);
7607#endif // !DOCUMENTATION
7608
7609DECLARE_HEADERS(AsmLESectionTableEntry);
7610#if defined(SgAsmLESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
7611#include <Rose/BinaryAnalysis/ByteOrder.h>
7612#endif // SgAsmLESectionTableEntry_HEADERS
7613
7614#ifdef DOCUMENTATION
7616#endif // DOCUMENTATION
7617
7618#ifndef DOCUMENTATION
7619 AsmLESectionTableEntry.setDataPrototype(
7620 "unsigned", "flags", "= 0",
7621 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7622#endif // !DOCUMENTATION
7623
7624#ifndef DOCUMENTATION
7625 AsmLESectionTableEntry.setDataPrototype(
7626 "unsigned", "pageMapIndex", "= 0",
7627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7628#endif // !DOCUMENTATION
7629
7630#ifndef DOCUMENTATION
7631 AsmLESectionTableEntry.setDataPrototype(
7632 "unsigned", "pageMapNEntries", "= 0",
7633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7634#endif // !DOCUMENTATION
7635
7636#ifndef DOCUMENTATION
7637 AsmLESectionTableEntry.setDataPrototype(
7638 "unsigned", "res1", "= 0",
7639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7640#endif // !DOCUMENTATION
7641
7642#ifndef DOCUMENTATION
7643 AsmLESectionTableEntry.setDataPrototype(
7644 "rose_addr_t", "mappedSize", "= 0",
7645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7646#endif // !DOCUMENTATION
7647
7648#ifndef DOCUMENTATION
7649 AsmLESectionTableEntry.setDataPrototype(
7650 "rose_addr_t", "baseAddr", "= 0",
7651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7652#endif // !DOCUMENTATION
7653
7654 DECLARE_OTHERS(AsmLESectionTableEntry);
7655#if defined(SgAsmLESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
7656
7657 //----------------------- Boost serialization for SgAsmLESectionTableEntry -----------------------
7658#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7659private:
7660 friend class boost::serialization::access;
7661
7662 template<class S>
7663 void serialize(S &s, const unsigned /*version*/) {
7664 debugSerializationBegin("SgAsmLESectionTableEntry");
7665 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
7666 s & BOOST_SERIALIZATION_NVP(p_flags);
7667 s & BOOST_SERIALIZATION_NVP(p_pageMapIndex);
7668 s & BOOST_SERIALIZATION_NVP(p_pageMapNEntries);
7669 s & BOOST_SERIALIZATION_NVP(p_res1);
7670 s & BOOST_SERIALIZATION_NVP(p_mappedSize);
7671 s & BOOST_SERIALIZATION_NVP(p_baseAddr);
7672 debugSerializationEnd("SgAsmLESectionTableEntry");
7673 }
7674#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7676 // Local types
7678public:
7679#ifdef _MSC_VER
7680# pragma pack (1)
7681#endif
7682 /* File format of a section table entry. Fields are big- or little-endian depending on file header. */
7684 uint32_t mapped_size; /* 0x00 virtual segment size in bytes */
7685 uint32_t base_addr; /* 0x04 relocation base address */
7686 uint32_t flags; /* 0x08 bit flags, see LESectionFlags */
7687 uint32_t pagemap_index; /* 0x0c */
7688 uint32_t pagemap_nentries; /* 0x10 number of entries in the page map */
7689 uint32_t res1; /* 0x14 reserved */
7690 } /* 0x18 */
7691// DQ (3/7/2013): Adding support to restrict visability to SWIG.
7692#ifndef SWIG
7693#ifndef _MSC_VER
7694 __attribute__((packed))
7695#endif
7696#endif
7697 ;
7698#ifdef _MSC_VER
7699# pragma pack ()
7700#endif
7701
7702 /* SF_BIG_BIT: The "big/default" bit, for data segments, controls the setting of the Big bit in the segment descriptor. (The
7703 * Big bit, or B-bit, determines whether ESP or SP is used as the stack pointer.) For code segments, this bit
7704 * controls the setting of the Default bit in the segment descriptor. (The Default bit, or D-bit, determines
7705 * whether the default word size is 32-bits or 16-bits. It also affects the interpretation of the instruction
7706 * stream.) */
7708 SF_RESERVED = 0xffff0800, /* Reserved bits (FIXME) */
7709
7710 SF_READABLE = 0x00000001,
7711 SF_WRITABLE = 0x00000002,
7712 SF_EXECUTABLE = 0x00000004,
7714 SF_RESOURCE = 0x00000008,
7715 SF_DISCARDABLE = 0x00000010,
7716 SF_SHARED = 0x00000020,
7717 SF_PRELOAD_PAGES = 0x00000040,
7718 SF_INVALID_PAGES = 0x00000080,
7720 SF_TYPE_MASK = 0x00000300, /*NO_STRINGIFY*/
7721 SF_TYPE_NORMAL = 0x00000000,
7722 SF_TYPE_ZERO = 0x00000100,
7723 SF_TYPE_RESIDENT = 0x00000200,
7724 SF_TYPE_RESCONT = 0x00000300,
7726 SF_RES_LONG_LOCK = 0x00000400,
7727 SF_1616_ALIAS = 0x00001000,
7728 SF_BIG_BIT = 0x00002000,
7729 SF_CODE_CONFORM = 0x00004000,
7730 SF_IO_PRIV = 0x00008000
7732
7734 // Properties
7736public:
7737public:
7738 unsigned const& get_flags() const;
7739 void set_flags(unsigned const&);
7740
7741public:
7742 unsigned const& get_pageMapIndex() const;
7743 void set_pageMapIndex(unsigned const&);
7744
7745public:
7746 unsigned const& get_pageMapNEntries() const;
7747 void set_pageMapNEntries(unsigned const&);
7748
7749public:
7750 unsigned const& get_res1() const;
7751 void set_res1(unsigned const&);
7752
7753public:
7754 rose_addr_t const& get_mappedSize() const;
7755 void set_mappedSize(rose_addr_t const&);
7756
7757public:
7758 rose_addr_t const& get_baseAddr() const;
7759 void set_baseAddr(rose_addr_t const&);
7761 // Functions
7763public:
7767 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
7768
7770 // Deprecated 2023-11
7772public:
7773 unsigned get_pagemap_index() const ROSE_DEPRECATED("use get pageMapIndex");
7774 void set_pagemap_index(unsigned) ROSE_DEPRECATED("use set_pageMapIndex");
7775 unsigned get_pagemap_nentries() const ROSE_DEPRECATED("use get_pageMapNEntries");
7776 void set_pagemap_nentries(unsigned) ROSE_DEPRECATED("use set_pageMapNEntries");
7777 rose_addr_t get_mapped_size() const ROSE_DEPRECATED("use get_mappedSize");
7778 void set_mapped_size(rose_addr_t) ROSE_DEPRECATED("use set_mappedSize");
7779 rose_addr_t get_base_addr() const ROSE_DEPRECATED("use get_baseAddr");
7780 void set_base_addr(rose_addr_t) ROSE_DEPRECATED("use set_baseAddr");
7781public:
7784
7785public:
7788
7789protected:
7797#endif // SgAsmLESectionTableEntry_OTHERS
7798#ifdef DOCUMENTATION
7799};
7800#endif // DOCUMENTATION
7801
7802
7804// SgAsmLESection -- MACHINE GENERATED; DO NOT MODIFY --
7806
7807DECLARE_LEAF_CLASS(AsmLESection);
7808IS_SERIALIZABLE(AsmLESection);
7809
7810#ifndef DOCUMENTATION
7811AsmLESection.useSmallHeader(true);
7812#endif // !DOCUMENTATION
7813
7814DECLARE_HEADERS(AsmLESection);
7815#if defined(SgAsmLESection_HEADERS) || defined(DOCUMENTATION)
7816#ifdef ROSE_SgAsmLESection_IMPL
7817#include <SgAsmLESectionTableEntry.h>
7818#endif
7819#endif // SgAsmLESection_HEADERS
7820
7821#ifdef DOCUMENTATION
7823#endif // DOCUMENTATION
7824
7825#ifndef DOCUMENTATION
7826 AsmLESection.setDataPrototype(
7827 "SgAsmLESectionTableEntry*", "sectionTableEntry", "= nullptr",
7828 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7829#endif // !DOCUMENTATION
7830
7831 DECLARE_OTHERS(AsmLESection);
7832#if defined(SgAsmLESection_OTHERS) || defined(DOCUMENTATION)
7833
7834 //----------------------- Boost serialization for SgAsmLESection -----------------------
7835#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7836private:
7837 friend class boost::serialization::access;
7838
7839 template<class S>
7840 void serialize(S &s, const unsigned /*version*/) {
7841 debugSerializationBegin("SgAsmLESection");
7842 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7843 s & BOOST_SERIALIZATION_NVP(p_sectionTableEntry);
7844 debugSerializationEnd("SgAsmLESection");
7845 }
7846#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7847public:
7848public:
7849 SgAsmLESectionTableEntry* const& get_sectionTableEntry() const;
7850 void set_sectionTableEntry(SgAsmLESectionTableEntry* const&);
7851public:
7853 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7854
7856 // Deprecated 2023-11
7858public:
7859 SgAsmLESectionTableEntry* get_st_entry() const ROSE_DEPRECATED("use get_sectionTableEntry");
7860 void set_st_entry(SgAsmLESectionTableEntry*) ROSE_DEPRECATED("use set_sectionTableEntry");
7861public:
7863 virtual ~SgAsmLESection();
7864
7865public:
7868
7869protected:
7877#endif // SgAsmLESection_OTHERS
7878#ifdef DOCUMENTATION
7879};
7880#endif // DOCUMENTATION
7881
7882
7884// SgAsmLERelocTable -- MACHINE GENERATED; DO NOT MODIFY --
7886
7887DECLARE_LEAF_CLASS(AsmLERelocTable);
7888IS_SERIALIZABLE(AsmLERelocTable);
7889
7890#ifndef DOCUMENTATION
7891AsmLERelocTable.useSmallHeader(true);
7892#endif // !DOCUMENTATION
7893
7894#ifdef DOCUMENTATION
7896#endif // DOCUMENTATION
7897
7898#ifndef DOCUMENTATION
7899 AsmLERelocTable.setDataPrototype(
7900 "SgAsmLERelocEntryPtrList", "entries", "",
7901 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7902#endif // !DOCUMENTATION
7903
7904 DECLARE_OTHERS(AsmLERelocTable);
7905#if defined(SgAsmLERelocTable_OTHERS) || defined(DOCUMENTATION)
7906
7907 //----------------------- Boost serialization for SgAsmLERelocTable -----------------------
7908#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7909private:
7910 friend class boost::serialization::access;
7911
7912 template<class S>
7913 void serialize(S &s, const unsigned /*version*/) {
7914 debugSerializationBegin("SgAsmLERelocTable");
7915 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7916 s & BOOST_SERIALIZATION_NVP(p_entries);
7917 debugSerializationEnd("SgAsmLERelocTable");
7918 }
7919#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7920public:
7921public:
7922 SgAsmLERelocEntryPtrList const& get_entries() const;
7923 SgAsmLERelocEntryPtrList& get_entries();
7924 void set_entries(SgAsmLERelocEntryPtrList const&);
7925public:
7926 SgAsmLERelocTable(SgAsmLEFileHeader *fhdr, rose_addr_t offset);
7927 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7928public:
7931
7932public:
7935
7936protected:
7944#endif // SgAsmLERelocTable_OTHERS
7945#ifdef DOCUMENTATION
7946};
7947#endif // DOCUMENTATION
7948
7949
7951// SgAsmLEPageTable -- MACHINE GENERATED; DO NOT MODIFY --
7953
7954DECLARE_LEAF_CLASS(AsmLEPageTable);
7955IS_SERIALIZABLE(AsmLEPageTable);
7956
7957#ifndef DOCUMENTATION
7958AsmLEPageTable.useSmallHeader(true);
7959#endif // !DOCUMENTATION
7960
7961#ifdef DOCUMENTATION
7963#endif // DOCUMENTATION
7964
7965#ifndef DOCUMENTATION
7966 AsmLEPageTable.setDataPrototype(
7967 "SgAsmLEPageTableEntryPtrList", "entries", "",
7968 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7969#endif // !DOCUMENTATION
7970
7971 DECLARE_OTHERS(AsmLEPageTable);
7972#if defined(SgAsmLEPageTable_OTHERS) || defined(DOCUMENTATION)
7973
7974 //----------------------- Boost serialization for SgAsmLEPageTable -----------------------
7975#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
7976private:
7977 friend class boost::serialization::access;
7978
7979 template<class S>
7980 void serialize(S &s, const unsigned /*version*/) {
7981 debugSerializationBegin("SgAsmLEPageTable");
7982 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7983 s & BOOST_SERIALIZATION_NVP(p_entries);
7984 debugSerializationEnd("SgAsmLEPageTable");
7985 }
7986#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
7987public:
7988public:
7989 SgAsmLEPageTableEntryPtrList const& get_entries() const;
7990 SgAsmLEPageTableEntryPtrList& get_entries();
7991 void set_entries(SgAsmLEPageTableEntryPtrList const&);
7992public:
7993 SgAsmLEPageTable(SgAsmLEFileHeader *fhdr, rose_addr_t offset, rose_addr_t size);
7994 virtual void unparse(std::ostream&) const override;
7995 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7996 SgAsmLEPageTableEntry *get_page(size_t idx);
7997public:
8000
8001public:
8004
8005protected:
8013#endif // SgAsmLEPageTable_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_HAVE_BOOST_SERIALIZATION_LIB
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_HAVE_BOOST_SERIALIZATION_LIB
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// SgAsmLENameTable -- MACHINE GENERATED; DO NOT MODIFY --
8142
8143DECLARE_LEAF_CLASS(AsmLENameTable);
8144IS_SERIALIZABLE(AsmLENameTable);
8145
8146#ifndef DOCUMENTATION
8147AsmLENameTable.useSmallHeader(true);
8148#endif // !DOCUMENTATION
8149
8150#ifdef DOCUMENTATION
8152#endif // DOCUMENTATION
8153
8154#ifndef DOCUMENTATION
8155 AsmLENameTable.setDataPrototype(
8156 "SgStringList", "names", "",
8157 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8158#endif // !DOCUMENTATION
8159
8160#ifndef DOCUMENTATION
8161 AsmLENameTable.setDataPrototype(
8162 "SgUnsignedList", "ordinals", "",
8163 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8164#endif // !DOCUMENTATION
8165
8166 DECLARE_OTHERS(AsmLENameTable);
8167#if defined(SgAsmLENameTable_OTHERS) || defined(DOCUMENTATION)
8168
8169 //----------------------- Boost serialization for SgAsmLENameTable -----------------------
8170#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
8171private:
8172 friend class boost::serialization::access;
8173
8174 template<class S>
8175 void serialize(S &s, const unsigned /*version*/) {
8176 debugSerializationBegin("SgAsmLENameTable");
8177 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
8178 s & BOOST_SERIALIZATION_NVP(p_names);
8179 s & BOOST_SERIALIZATION_NVP(p_ordinals);
8180 debugSerializationEnd("SgAsmLENameTable");
8181 }
8182#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
8183public:
8184public:
8185 SgStringList const& get_names() const;
8186 void set_names(SgStringList const&);
8187
8188public:
8189 SgUnsignedList const& get_ordinals() const;
8190 void set_ordinals(SgUnsignedList const&);
8191public:
8192 /* This table contains a module name followed by the list of exported function names. Each name is associated with an "ordinal"
8193 * which serves as an index into the Entry Table. The ordinal for the first string (module name) is meaningless and should be
8194 * zero. In the non-resident name table the first entry is a module description and the functions are not always resident in
8195 * system memory (they are discardable). */
8196 SgAsmLENameTable(SgAsmLEFileHeader *fhdr, rose_addr_t offset);
8197 virtual void unparse(std::ostream&) const override;
8198 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
8199public:
8202
8203public:
8206
8207protected:
8215#endif // SgAsmLENameTable_OTHERS
8216#ifdef DOCUMENTATION
8217};
8218#endif // DOCUMENTATION
8219
8220
8222// SgAsmLEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
8224
8225DECLARE_LEAF_CLASS(AsmLEFileHeader);
8226IS_SERIALIZABLE(AsmLEFileHeader);
8227
8228#ifndef DOCUMENTATION
8229AsmLEFileHeader.useSmallHeader(true);
8230#endif // !DOCUMENTATION
8231
8232DECLARE_HEADERS(AsmLEFileHeader);
8233#if defined(SgAsmLEFileHeader_HEADERS) || defined(DOCUMENTATION)
8234#include <Rose/BinaryAnalysis/ByteOrder.h>
8235
8236#ifdef ROSE_SgAsmLEFileHeader_IMPL
8237#include <SgAsmDOSExtendedHeader.h>
8238#include <SgAsmLEEntryTable.h>
8239#include <SgAsmLENameTable.h>
8240#include <SgAsmLEPageTable.h>
8241#include <SgAsmLERelocTable.h>
8242#include <SgAsmLESectionTable.h>
8243#endif
8244#endif // SgAsmLEFileHeader_HEADERS
8245
8246#ifdef DOCUMENTATION
8248#endif // DOCUMENTATION
8249
8250#ifndef DOCUMENTATION
8251 AsmLEFileHeader.setDataPrototype(
8252 "unsigned", "e_byte_order", "= 0",
8253 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8254#endif // !DOCUMENTATION
8255
8256#ifndef DOCUMENTATION
8257 AsmLEFileHeader.setDataPrototype(
8258 "unsigned", "e_word_order", "= 0",
8259 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8260#endif // !DOCUMENTATION
8261
8262#ifndef DOCUMENTATION
8263 AsmLEFileHeader.setDataPrototype(
8264 "unsigned", "e_format_level", "= 0",
8265 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8266#endif // !DOCUMENTATION
8267
8268#ifndef DOCUMENTATION
8269 AsmLEFileHeader.setDataPrototype(
8270 "unsigned", "e_cpu_type", "= 0",
8271 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8272#endif // !DOCUMENTATION
8273
8274#ifndef DOCUMENTATION
8275 AsmLEFileHeader.setDataPrototype(
8276 "unsigned", "e_os_type", "= 0",
8277 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8278#endif // !DOCUMENTATION
8279
8280#ifndef DOCUMENTATION
8281 AsmLEFileHeader.setDataPrototype(
8282 "unsigned", "e_module_version", "= 0",
8283 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8284#endif // !DOCUMENTATION
8285
8286#ifndef DOCUMENTATION
8287 AsmLEFileHeader.setDataPrototype(
8288 "unsigned", "e_flags", "= 0",
8289 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8290#endif // !DOCUMENTATION
8291
8292#ifndef DOCUMENTATION
8293 AsmLEFileHeader.setDataPrototype(
8294 "unsigned", "e_eip_section", "= 0",
8295 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8296#endif // !DOCUMENTATION
8297
8298#ifndef DOCUMENTATION
8299 AsmLEFileHeader.setDataPrototype(
8300 "unsigned", "e_esp_section", "= 0",
8301 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8302#endif // !DOCUMENTATION
8303
8304#ifndef DOCUMENTATION
8305 AsmLEFileHeader.setDataPrototype(
8306 "unsigned", "e_last_page_size", "= 0",
8307 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8308#endif // !DOCUMENTATION
8309
8310#ifndef DOCUMENTATION
8311 AsmLEFileHeader.setDataPrototype(
8312 "unsigned", "e_page_offset_shift", "= 0",
8313 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8314#endif // !DOCUMENTATION
8315
8316#ifndef DOCUMENTATION
8317 AsmLEFileHeader.setDataPrototype(
8318 "unsigned", "e_fixup_sect_cksum", "= 0",
8319 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8320#endif // !DOCUMENTATION
8321
8322#ifndef DOCUMENTATION
8323 AsmLEFileHeader.setDataPrototype(
8324 "unsigned", "e_loader_sect_cksum", "= 0",
8325 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8326#endif // !DOCUMENTATION
8327
8328#ifndef DOCUMENTATION
8329 AsmLEFileHeader.setDataPrototype(
8330 "unsigned", "e_secttab_nentries", "= 0",
8331 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8332#endif // !DOCUMENTATION
8333
8334#ifndef DOCUMENTATION
8335 AsmLEFileHeader.setDataPrototype(
8336 "unsigned", "e_rsrctab_nentries", "= 0",
8337 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8338#endif // !DOCUMENTATION
8339
8340#ifndef DOCUMENTATION
8341 AsmLEFileHeader.setDataPrototype(
8342 "unsigned", "e_fmtdirtab_nentries", "= 0",
8343 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8344#endif // !DOCUMENTATION
8345
8346#ifndef DOCUMENTATION
8347 AsmLEFileHeader.setDataPrototype(
8348 "unsigned", "e_import_modtab_nentries", "= 0",
8349 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8350#endif // !DOCUMENTATION
8351
8352#ifndef DOCUMENTATION
8353 AsmLEFileHeader.setDataPrototype(
8354 "unsigned", "e_preload_npages", "= 0",
8355 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8356#endif // !DOCUMENTATION
8357
8358#ifndef DOCUMENTATION
8359 AsmLEFileHeader.setDataPrototype(
8360 "unsigned", "e_nonresnametab_size", "= 0",
8361 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8362#endif // !DOCUMENTATION
8363
8364#ifndef DOCUMENTATION
8365 AsmLEFileHeader.setDataPrototype(
8366 "unsigned", "e_nonresnametab_cksum", "= 0",
8367 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8368#endif // !DOCUMENTATION
8369
8370#ifndef DOCUMENTATION
8371 AsmLEFileHeader.setDataPrototype(
8372 "unsigned", "e_auto_ds_section", "= 0",
8373 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8374#endif // !DOCUMENTATION
8375
8376#ifndef DOCUMENTATION
8377 AsmLEFileHeader.setDataPrototype(
8378 "unsigned", "e_debug_info_size", "= 0",
8379 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8380#endif // !DOCUMENTATION
8381
8382#ifndef DOCUMENTATION
8383 AsmLEFileHeader.setDataPrototype(
8384 "unsigned", "e_num_instance_preload", "= 0",
8385 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8386#endif // !DOCUMENTATION
8387
8388#ifndef DOCUMENTATION
8389 AsmLEFileHeader.setDataPrototype(
8390 "unsigned", "e_num_instance_demand", "= 0",
8391 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8392#endif // !DOCUMENTATION
8393
8394#ifndef DOCUMENTATION
8395 AsmLEFileHeader.setDataPrototype(
8396 "unsigned", "e_heap_size", "= 0",
8397 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8398#endif // !DOCUMENTATION
8399
8400#ifndef DOCUMENTATION
8401 AsmLEFileHeader.setDataPrototype(
8402 "rose_addr_t", "e_npages", "= 0",
8403 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8404#endif // !DOCUMENTATION
8405
8406#ifndef DOCUMENTATION
8407 AsmLEFileHeader.setDataPrototype(
8408 "rose_addr_t", "e_eip", "= 0",
8409 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8410#endif // !DOCUMENTATION
8411
8412#ifndef DOCUMENTATION
8413 AsmLEFileHeader.setDataPrototype(
8414 "rose_addr_t", "e_esp", "= 0",
8415 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8416#endif // !DOCUMENTATION
8417
8418#ifndef DOCUMENTATION
8419 AsmLEFileHeader.setDataPrototype(
8420 "rose_addr_t", "e_page_size", "= 0",
8421 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8422#endif // !DOCUMENTATION
8423
8424#ifndef DOCUMENTATION
8425 AsmLEFileHeader.setDataPrototype(
8426 "rose_addr_t", "e_fixup_sect_size", "= 0",
8427 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8428#endif // !DOCUMENTATION
8429
8430#ifndef DOCUMENTATION
8431 AsmLEFileHeader.setDataPrototype(
8432 "rose_addr_t", "e_loader_sect_size", "= 0",
8433 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8434#endif // !DOCUMENTATION
8435
8436#ifndef DOCUMENTATION
8437 AsmLEFileHeader.setDataPrototype(
8438 "rose_addr_t", "e_secttab_rfo", "= 0",
8439 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8440#endif // !DOCUMENTATION
8441
8442#ifndef DOCUMENTATION
8443 AsmLEFileHeader.setDataPrototype(
8444 "rose_addr_t", "e_pagetab_rfo", "= 0",
8445 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8446#endif // !DOCUMENTATION
8447
8448#ifndef DOCUMENTATION
8449 AsmLEFileHeader.setDataPrototype(
8450 "rose_addr_t", "e_iterpages_offset", "= 0",
8451 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8452#endif // !DOCUMENTATION
8453
8454#ifndef DOCUMENTATION
8455 AsmLEFileHeader.setDataPrototype(
8456 "rose_addr_t", "e_rsrctab_rfo", "= 0",
8457 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8458#endif // !DOCUMENTATION
8459
8460#ifndef DOCUMENTATION
8461 AsmLEFileHeader.setDataPrototype(
8462 "rose_addr_t", "e_resnametab_rfo", "= 0",
8463 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8464#endif // !DOCUMENTATION
8465
8466#ifndef DOCUMENTATION
8467 AsmLEFileHeader.setDataPrototype(
8468 "rose_addr_t", "e_entrytab_rfo", "= 0",
8469 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8470#endif // !DOCUMENTATION
8471
8472#ifndef DOCUMENTATION
8473 AsmLEFileHeader.setDataPrototype(
8474 "rose_addr_t", "e_fmtdirtab_rfo", "= 0",
8475 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8476#endif // !DOCUMENTATION
8477
8478#ifndef DOCUMENTATION
8479 AsmLEFileHeader.setDataPrototype(
8480 "rose_addr_t", "e_fixup_pagetab_rfo", "= 0",
8481 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8482#endif // !DOCUMENTATION
8483
8484#ifndef DOCUMENTATION
8485 AsmLEFileHeader.setDataPrototype(
8486 "rose_addr_t", "e_fixup_rectab_rfo", "= 0",
8487 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8488#endif // !DOCUMENTATION
8489
8490#ifndef DOCUMENTATION
8491 AsmLEFileHeader.setDataPrototype(
8492 "rose_addr_t", "e_import_modtab_rfo", "= 0",
8493 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8494#endif // !DOCUMENTATION
8495
8496#ifndef DOCUMENTATION
8497 AsmLEFileHeader.setDataPrototype(
8498 "rose_addr_t", "e_import_proctab_rfo", "= 0",
8499 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8500#endif // !DOCUMENTATION
8501
8502#ifndef DOCUMENTATION
8503 AsmLEFileHeader.setDataPrototype(
8504 "rose_addr_t", "e_ppcksumtab_rfo", "= 0",
8505 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8506#endif // !DOCUMENTATION
8507
8508#ifndef DOCUMENTATION
8509 AsmLEFileHeader.setDataPrototype(
8510 "rose_addr_t", "e_data_pages_offset", "= 0",
8511 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8512#endif // !DOCUMENTATION
8513
8514#ifndef DOCUMENTATION
8515 AsmLEFileHeader.setDataPrototype(
8516 "rose_addr_t", "e_nonresnametab_offset", "= 0",
8517 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8518#endif // !DOCUMENTATION
8519
8520#ifndef DOCUMENTATION
8521 AsmLEFileHeader.setDataPrototype(
8522 "rose_addr_t", "e_debug_info_rfo", "= 0",
8523 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8524#endif // !DOCUMENTATION
8525
8526#ifndef DOCUMENTATION
8527 AsmLEFileHeader.setDataPrototype(
8528 "SgAsmDOSExtendedHeader*", "dos2Header", "= nullptr",
8529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8530#endif // !DOCUMENTATION
8531
8532#ifndef DOCUMENTATION
8533 AsmLEFileHeader.setDataPrototype(
8534 "SgAsmLESectionTable*", "sectionTable", "= nullptr",
8535 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8536#endif // !DOCUMENTATION
8537
8538#ifndef DOCUMENTATION
8539 AsmLEFileHeader.setDataPrototype(
8540 "SgAsmLEPageTable*", "pageTable", "= nullptr",
8541 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8542#endif // !DOCUMENTATION
8543
8544#ifndef DOCUMENTATION
8545 AsmLEFileHeader.setDataPrototype(
8546 "SgAsmLENameTable*", "residentNameTable", "= nullptr",
8547 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8548#endif // !DOCUMENTATION
8549
8550#ifndef DOCUMENTATION
8551 AsmLEFileHeader.setDataPrototype(
8552 "SgAsmLENameTable*", "nonresidentNameTable", "= nullptr",
8553 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8554#endif // !DOCUMENTATION
8555
8556#ifndef DOCUMENTATION
8557 AsmLEFileHeader.setDataPrototype(
8558 "SgAsmLEEntryTable*", "entryTable", "= nullptr",
8559 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8560#endif // !DOCUMENTATION
8561
8562#ifndef DOCUMENTATION
8563 AsmLEFileHeader.setDataPrototype(
8564 "SgAsmLERelocTable*", "relocationTable", "= nullptr",
8565 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8566#endif // !DOCUMENTATION
8567
8568 DECLARE_OTHERS(AsmLEFileHeader);
8569#if defined(SgAsmLEFileHeader_OTHERS) || defined(DOCUMENTATION)
8570
8571 //----------------------- Boost serialization for SgAsmLEFileHeader -----------------------
8572#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
8573private:
8574 friend class boost::serialization::access;
8575
8576 template<class S>
8577 void serialize(S &s, const unsigned /*version*/) {
8578 debugSerializationBegin("SgAsmLEFileHeader");
8579 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
8580 s & BOOST_SERIALIZATION_NVP(p_e_byte_order);
8581 s & BOOST_SERIALIZATION_NVP(p_e_word_order);
8582 s & BOOST_SERIALIZATION_NVP(p_e_format_level);
8583 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
8584 s & BOOST_SERIALIZATION_NVP(p_e_os_type);
8585 s & BOOST_SERIALIZATION_NVP(p_e_module_version);
8586 s & BOOST_SERIALIZATION_NVP(p_e_flags);
8587 s & BOOST_SERIALIZATION_NVP(p_e_eip_section);
8588 s & BOOST_SERIALIZATION_NVP(p_e_esp_section);
8589 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
8590 s & BOOST_SERIALIZATION_NVP(p_e_page_offset_shift);
8591 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_cksum);
8592 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_cksum);
8593 s & BOOST_SERIALIZATION_NVP(p_e_secttab_nentries);
8594 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_nentries);
8595 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_nentries);
8596 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_nentries);
8597 s & BOOST_SERIALIZATION_NVP(p_e_preload_npages);
8598 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_size);
8599 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_cksum);
8600 s & BOOST_SERIALIZATION_NVP(p_e_auto_ds_section);
8601 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_size);
8602 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_preload);
8603 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_demand);
8604 s & BOOST_SERIALIZATION_NVP(p_e_heap_size);
8605 s & BOOST_SERIALIZATION_NVP(p_e_npages);
8606 s & BOOST_SERIALIZATION_NVP(p_e_eip);
8607 s & BOOST_SERIALIZATION_NVP(p_e_esp);
8608 s & BOOST_SERIALIZATION_NVP(p_e_page_size);
8609 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_size);
8610 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_size);
8611 s & BOOST_SERIALIZATION_NVP(p_e_secttab_rfo);
8612 s & BOOST_SERIALIZATION_NVP(p_e_pagetab_rfo);
8613 s & BOOST_SERIALIZATION_NVP(p_e_iterpages_offset);
8614 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
8615 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
8616 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
8617 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_rfo);
8618 s & BOOST_SERIALIZATION_NVP(p_e_fixup_pagetab_rfo);
8619 s & BOOST_SERIALIZATION_NVP(p_e_fixup_rectab_rfo);
8620 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_rfo);
8621 s & BOOST_SERIALIZATION_NVP(p_e_import_proctab_rfo);
8622 s & BOOST_SERIALIZATION_NVP(p_e_ppcksumtab_rfo);
8623 s & BOOST_SERIALIZATION_NVP(p_e_data_pages_offset);
8624 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
8625 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_rfo);
8626 s & BOOST_SERIALIZATION_NVP(p_dos2Header);
8627 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
8628 s & BOOST_SERIALIZATION_NVP(p_pageTable);
8629 s & BOOST_SERIALIZATION_NVP(p_residentNameTable);
8630 s & BOOST_SERIALIZATION_NVP(p_nonresidentNameTable);
8631 s & BOOST_SERIALIZATION_NVP(p_entryTable);
8632 s & BOOST_SERIALIZATION_NVP(p_relocationTable);
8633 debugSerializationEnd("SgAsmLEFileHeader");
8634 }
8635#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
8637 // Local types
8639public:
8640#ifdef _MSC_VER
8641# pragma pack (1)
8642#endif
8643 /* File format of an LE/LX File Header (they are identical except bytes 0x2c-0x2f) */
8645 unsigned char e_magic[2]; /* 0x00 magic number "LX" */
8646 unsigned char e_byte_order; /* 0x02 byte order (0=>little endian; otherwise big endian) */
8647 unsigned char e_word_order; /* 0x03 word order (0=>little endian; otherwise big endian) */
8648 uint32_t e_format_level; /* 0x04 LX file format version number */
8649 uint16_t e_cpu_type; /* 0x08 1=>80286, 2=>80386, 3=>80486,4=80586, etc. (see ctor) */
8650 uint16_t e_os_type; /* 0x0a 0=>unknown, 1=>0S/2, 2=>Windows, 3=>DOS 4.x, 4=>Windows 386 */
8651 uint32_t e_module_version; /* 0x0c user-specified module version number */
8652 uint32_t e_flags; /* 0x10 bit flags (see LXFileHeaderFlags) */
8653 uint32_t e_npages; /* 0x14 number of physically contained pages (see e_page_size) */
8654 uint32_t e_eip_section; /* 0x18 the section number to which e_eip is relative */
8655 uint32_t e_eip; /* 0x1c entry address relative to e_eip_section */
8656 uint32_t e_esp_section; /* 0x20 the section number to which e_esp is relative */
8657 uint32_t e_esp; /* 0x24 starting stack address relative to e_esp_section */
8658 uint32_t e_page_size; /* 0x28 page size in bytes */
8659 uint32_t e_lps_or_shift; /* 0x2c size of last page (LE) or shift for page table's page offset field (LX) */
8660 uint32_t e_fixup_sect_size; /* 0x30 total size of fixup info in bytes (fixup page/record tables + import names) */
8661 uint32_t e_fixup_sect_cksum; /* 0x34 cryptographic checksum of all fixup info, or zero */
8662 uint32_t e_loader_sect_size; /* 0x38 size of memory resident tables (section table through per-page checksum table) */
8663 uint32_t e_loader_sect_cksum; /* 0x3c cryptographic checksum for all loader info, or zero */
8664 uint32_t e_secttab_rfo; /* 0x40 offset of section table relative to this header */
8665 uint32_t e_secttab_nentries; /* 0x44 number of entries in section table */
8666 uint32_t e_pagetab_rfo; /* 0x48 section page table offset relative to this header */
8667 uint32_t e_iterpages_offset; /* 0x4c section iterated pages offset (absolute file offset) */
8668 uint32_t e_rsrctab_rfo; /* 0x50 offset of resource table relative to this header */
8669 uint32_t e_rsrctab_nentries; /* 0x54 number of entries in the resource table */
8670 uint32_t e_resnametab_rfo; /* 0x58 offset of resident name table relative to this header */
8671 uint32_t e_entrytab_rfo; /* 0x5c offset of entry table relative to this header */
8672 uint32_t e_fmtdirtab_rfo; /* 0x60 offset of module format directives relative to this header */
8673 uint32_t e_fmtdirtab_nentries; /* 0x64 number of entries in module format directives table */
8674 uint32_t e_fixup_pagetab_rfo; /* 0x68 offset of fixup page table relative to this header */
8675 uint32_t e_fixup_rectab_rfo; /* 0x6c offset of fixup record table relative to this header */
8676 uint32_t e_import_modtab_rfo; /* 0x70 offset of import module name table relative to this header */
8677 uint32_t e_import_modtab_nentries;/*0x74 number of entries in import module name table */
8678 uint32_t e_import_proctab_rfo; /* 0x78 offset of import procedure name table relative to this header */
8679 uint32_t e_ppcksumtab_rfo; /* 0x7c offset of per-page checksum table relative to this header */
8680 uint32_t e_data_pages_offset; /* 0x80 offset of data pages (absolute file offset) */
8681 uint32_t e_preload_npages; /* 0x84 number of preload pages (not respected by OS/2) */
8682 uint32_t e_nonresnametab_offset; /* 0x88 offset of non-resident name table (absolute file offset) */
8683 uint32_t e_nonresnametab_size; /* 0x8c size of non-resident name table in bytes */
8684 uint32_t e_nonresnametab_cksum; /* 0x90 cryptographic checksum of the non-resident name table */
8685 uint32_t e_auto_ds_section; /* 0x94 auto data segment section number (not used by 32-bit modules) */
8686 uint32_t e_debug_info_rfo; /* 0x98 offset of debug information relative to this header */
8687 uint32_t e_debug_info_size; /* 0x9c size of debug information in bytes */
8688 uint32_t e_num_instance_preload; /* 0xa0 number of instance data pages found in the preload section */
8689 uint32_t e_num_instance_demand; /* 0xa4 number of instance data pages found in the demand section */
8690 uint32_t e_heap_size; /* 0xa8 number of bytes added to auto data segment by loader (not used by 32-bit) */
8691 } /* 0xac */
8692// DQ (3/7/2013): Adding support to restrict visability to SWIG.
8693#ifndef SWIG
8694#ifndef _MSC_VER
8695 __attribute__((packed))
8696#endif
8697#endif
8698 ;
8699#ifdef _MSC_VER
8700# pragma pack ()
8701#endif
8702
8703 enum LEFileHeaderFlags {
8704 HF_RESERVED = 0xbffc5ccb, /* Reserved bits */
8705 HF_PROC_LIB_INIT = 0x00000004, /* Per-process library initialization; not used for executables */
8706 HF_IFIXUPS_APPLIED = 0x00000010, /* Sections have preferred load addresses and internal relocs have been applied */
8707 HF_EFIXUPS_APPLIED = 0x00000020, /* External fixups for the module have been applied */
8708 HF_PM_WINDOW_NO = 0x00000100, /* Incompatible with PM windowing */
8709 HF_PM_WINDOW_OK = 0x00000200, /* Compatible with PM windowing */
8710 HF_PM_WINDOW_USE = 0x00000300, /* Uses PM windowing API */
8711 HF_NOT_LOADABLE = 0x00002000, /* Module is not loadable (has errors or incrementally linked) */
8712 HF_PROC_LIB_TERM = 0x40000000, /* Per-process library termination; not used for executables */
8713
8714 HF_MODTYPE_MASK = 0x00038000, /* Module type mask */
8715 HF_MODTYPE_PROG = 0x00000000, /* Program module (other modules cannot link to this one) */
8716 HF_MODTYPE_LIB = 0x00008000, /* Library module */
8717 HF_MODTYPE_PLIB = 0x00018000, /* Protected memory library module */
8718 HF_MODTYPE_PDEV = 0x00020000, /* Physical device driver module */
8719 HF_MODTYPE_VDEV = 0x00028000 /* Virtual device driver module */
8720 };
8721
8723 // Properties
8725public:
8726public:
8727 unsigned const& get_e_byte_order() const;
8728 void set_e_byte_order(unsigned const&);
8729
8730public:
8731 unsigned const& get_e_word_order() const;
8732 void set_e_word_order(unsigned const&);
8733
8734public:
8735 unsigned const& get_e_format_level() const;
8736 void set_e_format_level(unsigned const&);
8737
8738public:
8739 unsigned const& get_e_cpu_type() const;
8740 void set_e_cpu_type(unsigned const&);
8741
8742public:
8743 unsigned const& get_e_os_type() const;
8744 void set_e_os_type(unsigned const&);
8745
8746public:
8747 unsigned const& get_e_module_version() const;
8748 void set_e_module_version(unsigned const&);
8749
8750public:
8751 unsigned const& get_e_flags() const;
8752 void set_e_flags(unsigned const&);
8753
8754public:
8755 unsigned const& get_e_eip_section() const;
8756 void set_e_eip_section(unsigned const&);
8757
8758public:
8759 unsigned const& get_e_esp_section() const;
8760 void set_e_esp_section(unsigned const&);
8761
8762public:
8763 unsigned const& get_e_last_page_size() const;
8764 void set_e_last_page_size(unsigned const&);
8765
8766public:
8767 unsigned const& get_e_page_offset_shift() const;
8768 void set_e_page_offset_shift(unsigned const&);
8769
8770public:
8771 unsigned const& get_e_fixup_sect_cksum() const;
8772 void set_e_fixup_sect_cksum(unsigned const&);
8773
8774public:
8775 unsigned const& get_e_loader_sect_cksum() const;
8776 void set_e_loader_sect_cksum(unsigned const&);
8777
8778public:
8779 unsigned const& get_e_secttab_nentries() const;
8780 void set_e_secttab_nentries(unsigned const&);
8781
8782public:
8783 unsigned const& get_e_rsrctab_nentries() const;
8784 void set_e_rsrctab_nentries(unsigned const&);
8785
8786public:
8787 unsigned const& get_e_fmtdirtab_nentries() const;
8788 void set_e_fmtdirtab_nentries(unsigned const&);
8789
8790public:
8791 unsigned const& get_e_import_modtab_nentries() const;
8792 void set_e_import_modtab_nentries(unsigned const&);
8793
8794public:
8795 unsigned const& get_e_preload_npages() const;
8796 void set_e_preload_npages(unsigned const&);
8797
8798public:
8799 unsigned const& get_e_nonresnametab_size() const;
8800 void set_e_nonresnametab_size(unsigned const&);
8801
8802public:
8803 unsigned const& get_e_nonresnametab_cksum() const;
8804 void set_e_nonresnametab_cksum(unsigned const&);
8805
8806public:
8807 unsigned const& get_e_auto_ds_section() const;
8808 void set_e_auto_ds_section(unsigned const&);
8809
8810public:
8811 unsigned const& get_e_debug_info_size() const;
8812 void set_e_debug_info_size(unsigned const&);
8813
8814public:
8815 unsigned const& get_e_num_instance_preload() const;
8816 void set_e_num_instance_preload(unsigned const&);
8817
8818public:
8819 unsigned const& get_e_num_instance_demand() const;
8820 void set_e_num_instance_demand(unsigned const&);
8821
8822public:
8823 unsigned const& get_e_heap_size() const;
8824 void set_e_heap_size(unsigned const&);
8825
8826public:
8827 rose_addr_t const& get_e_npages() const;
8828 void set_e_npages(rose_addr_t const&);
8829
8830public:
8831 rose_addr_t const& get_e_eip() const;
8832 void set_e_eip(rose_addr_t const&);
8833
8834public:
8835 rose_addr_t const& get_e_esp() const;
8836 void set_e_esp(rose_addr_t const&);
8837
8838public:
8839 rose_addr_t const& get_e_page_size() const;
8840 void set_e_page_size(rose_addr_t const&);
8841
8842public:
8843 rose_addr_t const& get_e_fixup_sect_size() const;
8844 void set_e_fixup_sect_size(rose_addr_t const&);
8845
8846public:
8847 rose_addr_t const& get_e_loader_sect_size() const;
8848 void set_e_loader_sect_size(rose_addr_t const&);
8849
8850public:
8851 rose_addr_t const& get_e_secttab_rfo() const;
8852 void set_e_secttab_rfo(rose_addr_t const&);
8853
8854public:
8855 rose_addr_t const& get_e_pagetab_rfo() const;
8856 void set_e_pagetab_rfo(rose_addr_t const&);
8857
8858public:
8859 rose_addr_t const& get_e_iterpages_offset() const;
8860 void set_e_iterpages_offset(rose_addr_t const&);
8861
8862public:
8863 rose_addr_t const& get_e_rsrctab_rfo() const;
8864 void set_e_rsrctab_rfo(rose_addr_t const&);
8865
8866public:
8867 rose_addr_t const& get_e_resnametab_rfo() const;
8868 void set_e_resnametab_rfo(rose_addr_t const&);
8869
8870public:
8871 rose_addr_t const& get_e_entrytab_rfo() const;
8872 void set_e_entrytab_rfo(rose_addr_t const&);
8873
8874public:
8875 rose_addr_t const& get_e_fmtdirtab_rfo() const;
8876 void set_e_fmtdirtab_rfo(rose_addr_t const&);
8877
8878public:
8879 rose_addr_t const& get_e_fixup_pagetab_rfo() const;
8880 void set_e_fixup_pagetab_rfo(rose_addr_t const&);
8881
8882public:
8883 rose_addr_t const& get_e_fixup_rectab_rfo() const;
8884 void set_e_fixup_rectab_rfo(rose_addr_t const&);
8885
8886public:
8887 rose_addr_t const& get_e_import_modtab_rfo() const;
8888 void set_e_import_modtab_rfo(rose_addr_t const&);
8889
8890public:
8891 rose_addr_t const& get_e_import_proctab_rfo() const;
8892 void set_e_import_proctab_rfo(rose_addr_t const&);
8893
8894public:
8895 rose_addr_t const& get_e_ppcksumtab_rfo() const;
8896 void set_e_ppcksumtab_rfo(rose_addr_t const&);
8897
8898public:
8899 rose_addr_t const& get_e_data_pages_offset() const;
8900 void set_e_data_pages_offset(rose_addr_t const&);
8901
8902public:
8903 rose_addr_t const& get_e_nonresnametab_offset() const;
8904 void set_e_nonresnametab_offset(rose_addr_t const&);
8905
8906public:
8907 rose_addr_t const& get_e_debug_info_rfo() const;
8908 void set_e_debug_info_rfo(rose_addr_t const&);
8909
8910public:
8911 SgAsmDOSExtendedHeader* const& get_dos2Header() const;
8912 void set_dos2Header(SgAsmDOSExtendedHeader* const&);
8913
8914public:
8915 SgAsmLESectionTable* const& get_sectionTable() const;
8916 void set_sectionTable(SgAsmLESectionTable* const&);
8917
8918public:
8919 SgAsmLEPageTable* const& get_pageTable() const;
8920 void set_pageTable(SgAsmLEPageTable* const&);
8921
8922public:
8923 SgAsmLENameTable* const& get_residentNameTable() const;
8924 void set_residentNameTable(SgAsmLENameTable* const&);
8925
8926public:
8927 SgAsmLENameTable* const& get_nonresidentNameTable() const;
8928 void set_nonresidentNameTable(SgAsmLENameTable* const&);
8929
8930public:
8931 SgAsmLEEntryTable* const& get_entryTable() const;
8932 void set_entryTable(SgAsmLEEntryTable* const&);
8933
8934public:
8935 SgAsmLERelocTable* const& get_relocationTable() const;
8936 void set_relocationTable(SgAsmLERelocTable* const&);
8938 // Functions
8940public:
8941 SgAsmLEFileHeader(SgAsmGenericFile *f, rose_addr_t offset);
8942 virtual void unparse(std::ostream&) const override;
8943 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
8944
8945 // Overloaded base class virtual function
8946 const char *formatName() const override;
8947
8948 static bool isLe (SgAsmGenericFile*);
8950
8951private:
8953
8955 // Deprecated 2023-11
8957public:
8958 SgAsmDOSExtendedHeader* get_dos2_header() const ROSE_DEPRECATED("use get_dos2Header");
8959 void set_dos2_header(SgAsmDOSExtendedHeader*) ROSE_DEPRECATED("use set_dos2Header");
8960 SgAsmLESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
8961 void set_section_table(SgAsmLESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
8962 SgAsmLEPageTable* get_page_table() const ROSE_DEPRECATED("use get_pageTable");
8963 void set_page_table(SgAsmLEPageTable*) ROSE_DEPRECATED("use set_pageTable");
8964 SgAsmLENameTable* get_resname_table() const ROSE_DEPRECATED("use get_residentNameTable");
8965 void set_resname_table(SgAsmLENameTable*) ROSE_DEPRECATED("use set_residentNameTable");
8966 SgAsmLENameTable* get_nonresname_table() const ROSE_DEPRECATED("use get_nonresidentNameTable");
8967 void set_nonresname_table(SgAsmLENameTable*) ROSE_DEPRECATED("use set_nonresidentNameTable");
8968 SgAsmLEEntryTable* get_entry_table() const ROSE_DEPRECATED("use get_entryTable");
8969 void set_entry_table(SgAsmLEEntryTable*) ROSE_DEPRECATED("use set_entryTable");
8970 SgAsmLERelocTable* get_reloc_table() const ROSE_DEPRECATED("use get_relocationTable");
8971 void set_reloc_table(SgAsmLERelocTable*) ROSE_DEPRECATED("use set_relocationTable");
8972 const char *format_name() const override ROSE_DEPRECATED("use formatName");
8973 static bool is_LE (SgAsmGenericFile*) ROSE_DEPRECATED("use isLe");
8974public:
8977
8978public:
8981
8982protected:
8990#endif // SgAsmLEFileHeader_OTHERS
8991#ifdef DOCUMENTATION
8992};
8993#endif // DOCUMENTATION
8994
8995
8997// SgAsmLEEntryTable -- MACHINE GENERATED; DO NOT MODIFY --
8999
9000DECLARE_LEAF_CLASS(AsmLEEntryTable);
9001IS_SERIALIZABLE(AsmLEEntryTable);
9002
9003#ifndef DOCUMENTATION
9004AsmLEEntryTable.useSmallHeader(true);
9005#endif // !DOCUMENTATION
9006
9007#ifdef DOCUMENTATION
9009#endif // DOCUMENTATION
9010
9011#ifndef DOCUMENTATION
9012 AsmLEEntryTable.setDataPrototype(
9013 "SgSizeTList", "bundle_sizes", "",
9014 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9015#endif // !DOCUMENTATION
9016
9017#ifndef DOCUMENTATION
9018 AsmLEEntryTable.setDataPrototype(
9019 "SgAsmLEEntryPointPtrList", "entries", "",
9020 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9021#endif // !DOCUMENTATION
9022
9023 DECLARE_OTHERS(AsmLEEntryTable);
9024#if defined(SgAsmLEEntryTable_OTHERS) || defined(DOCUMENTATION)
9025
9026 //----------------------- Boost serialization for SgAsmLEEntryTable -----------------------
9027#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9028private:
9029 friend class boost::serialization::access;
9030
9031 template<class S>
9032 void serialize(S &s, const unsigned /*version*/) {
9033 debugSerializationBegin("SgAsmLEEntryTable");
9034 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
9035 s & BOOST_SERIALIZATION_NVP(p_bundle_sizes);
9036 s & BOOST_SERIALIZATION_NVP(p_entries);
9037 debugSerializationEnd("SgAsmLEEntryTable");
9038 }
9039#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9040public:
9041public:
9042 SgSizeTList const& get_bundle_sizes() const;
9043 void set_bundle_sizes(SgSizeTList const&);
9044
9045public:
9046 SgAsmLEEntryPointPtrList const& get_entries() const;
9047 SgAsmLEEntryPointPtrList& get_entries();
9048 void set_entries(SgAsmLEEntryPointPtrList const&);
9049public:
9050 SgAsmLEEntryTable(SgAsmLEFileHeader *fhdr, rose_addr_t offset);
9051 virtual void unparse(std::ostream&) const override;
9052 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9053public:
9056
9057public:
9060
9061protected:
9069#endif // SgAsmLEEntryTable_OTHERS
9070#ifdef DOCUMENTATION
9071};
9072#endif // DOCUMENTATION
9073
9074
9076// SgAsmLEEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
9078
9079DECLARE_LEAF_CLASS(AsmLEEntryPoint);
9080IS_SERIALIZABLE(AsmLEEntryPoint);
9081
9082#ifndef DOCUMENTATION
9083AsmLEEntryPoint.useSmallHeader(true);
9084#endif // !DOCUMENTATION
9085
9086DECLARE_HEADERS(AsmLEEntryPoint);
9087#if defined(SgAsmLEEntryPoint_HEADERS) || defined(DOCUMENTATION)
9088#include <Rose/BinaryAnalysis/ByteOrder.h>
9089#include <sageContainer.h>
9090#endif // SgAsmLEEntryPoint_HEADERS
9091
9092#ifdef DOCUMENTATION
9094#endif // DOCUMENTATION
9095
9096#ifndef DOCUMENTATION
9097 AsmLEEntryPoint.setDataPrototype(
9098 "SgAsmLEEntryPointPtrList", "entries", "",
9099 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9100#endif // !DOCUMENTATION
9101
9102#ifndef DOCUMENTATION
9103 AsmLEEntryPoint.setDataPrototype(
9104 "unsigned", "flags", "= 0",
9105 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9106#endif // !DOCUMENTATION
9107
9108#ifndef DOCUMENTATION
9109 AsmLEEntryPoint.setDataPrototype(
9110 "unsigned", "objnum", "= 0",
9111 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9112#endif // !DOCUMENTATION
9113
9114#ifndef DOCUMENTATION
9115 AsmLEEntryPoint.setDataPrototype(
9116 "unsigned", "entry_type", "= 0",
9117 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9118#endif // !DOCUMENTATION
9119
9120#ifndef DOCUMENTATION
9121 AsmLEEntryPoint.setDataPrototype(
9122 "unsigned", "res1", "= 0",
9123 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9124#endif // !DOCUMENTATION
9125
9126#ifndef DOCUMENTATION
9127 AsmLEEntryPoint.setDataPrototype(
9128 "rose_addr_t", "entry_offset", "= 0",
9129 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9130#endif // !DOCUMENTATION
9131
9132 DECLARE_OTHERS(AsmLEEntryPoint);
9133#if defined(SgAsmLEEntryPoint_OTHERS) || defined(DOCUMENTATION)
9134
9135 //----------------------- Boost serialization for SgAsmLEEntryPoint -----------------------
9136#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9137private:
9138 friend class boost::serialization::access;
9139
9140 template<class S>
9141 void serialize(S &s, const unsigned /*version*/) {
9142 debugSerializationBegin("SgAsmLEEntryPoint");
9143 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
9144 s & BOOST_SERIALIZATION_NVP(p_entries);
9145 s & BOOST_SERIALIZATION_NVP(p_flags);
9146 s & BOOST_SERIALIZATION_NVP(p_objnum);
9147 s & BOOST_SERIALIZATION_NVP(p_entry_type);
9148 s & BOOST_SERIALIZATION_NVP(p_res1);
9149 s & BOOST_SERIALIZATION_NVP(p_entry_offset);
9150 debugSerializationEnd("SgAsmLEEntryPoint");
9151 }
9152#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9154 // Local types
9156public:
9157#ifdef _MSC_VER
9158# pragma pack (1)
9159#endif
9160 /* 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
9161 * next entry point description follows immediately after the flag. */
9163 uint8_t flags; /* 0x00 Bit flags (0x01=>non-empty bundle; 0x02=>32-bit entry*/
9164 uint16_t objnum; /* 0x01 Object number */
9165 uint8_t entry_type; /* 0x03 Flags for entry type */
9166 uint32_t entry_offset; /* 0x04 Offset of entry point */
9167 uint16_t res1; /* 0x08 Reserved */
9168 } /* 0x0a */
9169// DQ (3/7/2013): Adding support to restrict visability to SWIG.
9170#ifndef SWIG
9171#ifndef _MSC_VER
9172 __attribute__((packed))
9173#endif
9174#endif
9175 ;
9176#ifdef _MSC_VER
9177# pragma pack ()
9178#endif
9179
9181 // Properties
9183public:
9184public:
9185 SgAsmLEEntryPointPtrList const& get_entries() const;
9186 SgAsmLEEntryPointPtrList& get_entries();
9187 void set_entries(SgAsmLEEntryPointPtrList const&);
9188
9189public:
9190 unsigned const& get_flags() const;
9191 void set_flags(unsigned const&);
9192
9193public:
9194 unsigned const& get_objnum() const;
9195 void set_objnum(unsigned const&);
9196
9197public:
9198 unsigned const& get_entry_type() const;
9199 void set_entry_type(unsigned const&);
9200
9201public:
9202 unsigned const& get_res1() const;
9203 void set_res1(unsigned const&);
9204
9205public:
9206 rose_addr_t const& get_entry_offset() const;
9207 void set_entry_offset(rose_addr_t const&);
9209 // Functions
9211public:
9214 rose_addr_t unparse(std::ostream&, Rose::BinaryAnalysis::ByteOrder::Endianness, const SgAsmGenericSection*,
9215 rose_addr_t spos) const;
9216 void dump(FILE*, const char *prefix, ssize_t idx) const;
9217public:
9220
9221public:
9224
9225protected:
9233#endif // SgAsmLEEntryPoint_OTHERS
9234#ifdef DOCUMENTATION
9235};
9236#endif // DOCUMENTATION
9237
9238
9240// SgAsmJvmStackMapVerificationType -- MACHINE GENERATED; DO NOT MODIFY --
9242
9243DECLARE_LEAF_CLASS(AsmJvmStackMapVerificationType);
9244IS_SERIALIZABLE(AsmJvmStackMapVerificationType);
9245
9246#ifndef DOCUMENTATION
9247AsmJvmStackMapVerificationType.useSmallHeader(true);
9248#endif // !DOCUMENTATION
9249
9250#ifdef DOCUMENTATION
9255#endif // DOCUMENTATION
9256
9257#ifndef DOCUMENTATION
9258 AsmJvmStackMapVerificationType.setDataPrototype(
9259 "uint8_t", "tag", "= 9",
9260 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9261#endif // !DOCUMENTATION
9262
9263#ifndef DOCUMENTATION
9264 AsmJvmStackMapVerificationType.setDataPrototype(
9265 "uint16_t", "cpool_index", "= 0",
9266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9267#endif // !DOCUMENTATION
9268
9269#ifndef DOCUMENTATION
9270 AsmJvmStackMapVerificationType.setDataPrototype(
9271 "uint16_t", "offset", "= 0",
9272 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9273#endif // !DOCUMENTATION
9274
9275 DECLARE_OTHERS(AsmJvmStackMapVerificationType);
9276#if defined(SgAsmJvmStackMapVerificationType_OTHERS) || defined(DOCUMENTATION)
9277
9278 //----------------------- Boost serialization for SgAsmJvmStackMapVerificationType -----------------------
9279#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9280private:
9281 friend class boost::serialization::access;
9282
9283 template<class S>
9284 void serialize(S &s, const unsigned /*version*/) {
9285 debugSerializationBegin("SgAsmJvmStackMapVerificationType");
9286 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9287 s & BOOST_SERIALIZATION_NVP(p_tag);
9288 s & BOOST_SERIALIZATION_NVP(p_cpool_index);
9289 s & BOOST_SERIALIZATION_NVP(p_offset);
9290 debugSerializationEnd("SgAsmJvmStackMapVerificationType");
9291 }
9292#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9293private:
9298 enum verification_type_tag {
9299 ITEM_Top = 0,
9300 ITEM_Integer = 1,
9301 ITEM_Float = 2,
9302 ITEM_Double = 3,
9303 ITEM_Long = 4,
9304 ITEM_Null = 5,
9305 ITEM_UninitializedThis = 6,
9306 ITEM_Object = 7,
9307 ITEM_Uninitialized = 8
9308 };
9309
9311 // Local types (for documentation purposes only)
9313#ifdef DOCUMENTATION
9317 union verification_type_info {
9318 Top_variable_info;
9319 Integer_variable_info;
9320 Float_variable_info;
9321 Long_variable_info;
9322 Double_variable_info;
9323 Null_variable_info;
9324 UninitializedThis_variable_info;
9325 Object_variable_info;
9326 Uninitialized_variable_info;
9327 };
9328
9330 struct Top_variable_info {
9331 uint8_t tag;
9332 };
9333 struct Integer_variable_info {
9334 uint8_t tag;
9335 };
9336 struct Float_variable_info {
9337 uint8_t tag;
9338 };
9339 struct Long_variable_info {
9340 uint8_t tag;
9341 };
9342 struct Double_variable_info {
9343 uint8_t tag;
9344 };
9345 struct Null_variable_info {
9346 uint8_t tag;
9347 };
9348 struct UnitializedThis_variable_info {
9349 uint8_t tag;
9350 };
9351 struct Object_variable_info {
9352 uint8_t tag;
9353 uint16_t cpool_index;
9354 };
9355 struct Unitialized_variable_info {
9356 uint8_t tag;
9357 uint16_t offset;
9358 };
9359#endif
9360
9362 // Properties
9364public:
9365public:
9371 uint8_t const& get_tag() const;
9372 void set_tag(uint8_t const&);
9374 /* Not a legal entry */
9375public:
9381 uint16_t const& get_cpool_index() const;
9382 void set_cpool_index(uint16_t const&);
9385public:
9391 uint16_t const& get_offset() const;
9392 void set_offset(uint16_t const&);
9395 // Functions
9397public:
9402
9405
9407 virtual void unparse(std::ostream&) const override;
9408
9410 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9411public:
9414
9415public:
9418
9419protected:
9427#endif // SgAsmJvmStackMapVerificationType_OTHERS
9428#ifdef DOCUMENTATION
9429};
9430#endif // DOCUMENTATION
9431
9432
9434// SgAsmJvmStackMapTable -- MACHINE GENERATED; DO NOT MODIFY --
9436
9437DECLARE_LEAF_CLASS(AsmJvmStackMapTable);
9438IS_SERIALIZABLE(AsmJvmStackMapTable);
9439
9440#ifndef DOCUMENTATION
9441AsmJvmStackMapTable.useSmallHeader(true);
9442#endif // !DOCUMENTATION
9443
9444DECLARE_HEADERS(AsmJvmStackMapTable);
9445#if defined(SgAsmJvmStackMapTable_HEADERS) || defined(DOCUMENTATION)
9446#include <sageContainer.h>
9447#endif // SgAsmJvmStackMapTable_HEADERS
9448
9449#ifdef DOCUMENTATION
9455#endif // DOCUMENTATION
9456
9457#ifndef DOCUMENTATION
9458 AsmJvmStackMapTable.setDataPrototype(
9459 "SgAsmJvmStackMapFramePtrList", "entries", "",
9460 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9461#endif // !DOCUMENTATION
9462
9463 DECLARE_OTHERS(AsmJvmStackMapTable);
9464#if defined(SgAsmJvmStackMapTable_OTHERS) || defined(DOCUMENTATION)
9465
9466 //----------------------- Boost serialization for SgAsmJvmStackMapTable -----------------------
9467#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9468private:
9469 friend class boost::serialization::access;
9470
9471 template<class S>
9472 void serialize(S &s, const unsigned /*version*/) {
9473 debugSerializationBegin("SgAsmJvmStackMapTable");
9474 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9475 s & BOOST_SERIALIZATION_NVP(p_entries);
9476 debugSerializationEnd("SgAsmJvmStackMapTable");
9477 }
9478#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9480 // Properties
9482public:
9483public:
9487 SgAsmJvmStackMapFramePtrList const& get_entries() const;
9488 SgAsmJvmStackMapFramePtrList& get_entries();
9489 void set_entries(SgAsmJvmStackMapFramePtrList const&);
9492 // Functions
9494public:
9499
9502
9504 virtual void unparse(std::ostream&) const override;
9505
9507 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9508public:
9511
9512public:
9515
9516protected:
9524#endif // SgAsmJvmStackMapTable_OTHERS
9525#ifdef DOCUMENTATION
9526};
9527#endif // DOCUMENTATION
9528
9529
9531// SgAsmJvmStackMapFrame -- MACHINE GENERATED; DO NOT MODIFY --
9533
9534DECLARE_LEAF_CLASS(AsmJvmStackMapFrame);
9535IS_SERIALIZABLE(AsmJvmStackMapFrame);
9536
9537#ifndef DOCUMENTATION
9538AsmJvmStackMapFrame.useSmallHeader(true);
9539#endif // !DOCUMENTATION
9540
9541DECLARE_HEADERS(AsmJvmStackMapFrame);
9542#if defined(SgAsmJvmStackMapFrame_HEADERS) || defined(DOCUMENTATION)
9543#include <sageContainer.h>
9544#endif // SgAsmJvmStackMapFrame_HEADERS
9545
9546#ifdef DOCUMENTATION
9551#endif // DOCUMENTATION
9552
9553#ifndef DOCUMENTATION
9554 AsmJvmStackMapFrame.setDataPrototype(
9555 "SgAsmJvmStackMapVerificationTypePtrList", "stack", "",
9556 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9557#endif // !DOCUMENTATION
9558
9559#ifndef DOCUMENTATION
9560 AsmJvmStackMapFrame.setDataPrototype(
9561 "SgAsmJvmStackMapVerificationTypePtrList", "locals", "",
9562 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9563#endif // !DOCUMENTATION
9564
9565#ifndef DOCUMENTATION
9566 AsmJvmStackMapFrame.setDataPrototype(
9567 "uint8_t", "frame_type", "= 0",
9568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9569#endif // !DOCUMENTATION
9570
9571#ifndef DOCUMENTATION
9572 AsmJvmStackMapFrame.setDataPrototype(
9573 "uint16_t", "offset_delta", "= 0",
9574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9575#endif // !DOCUMENTATION
9576
9577 DECLARE_OTHERS(AsmJvmStackMapFrame);
9578#if defined(SgAsmJvmStackMapFrame_OTHERS) || defined(DOCUMENTATION)
9579
9580 //----------------------- Boost serialization for SgAsmJvmStackMapFrame -----------------------
9581#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9582private:
9583 friend class boost::serialization::access;
9584
9585 template<class S>
9586 void serialize(S &s, const unsigned /*version*/) {
9587 debugSerializationBegin("SgAsmJvmStackMapFrame");
9588 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9589 s & BOOST_SERIALIZATION_NVP(p_stack);
9590 s & BOOST_SERIALIZATION_NVP(p_locals);
9591 s & BOOST_SERIALIZATION_NVP(p_frame_type);
9592 s & BOOST_SERIALIZATION_NVP(p_offset_delta);
9593 debugSerializationEnd("SgAsmJvmStackMapFrame");
9594 }
9595#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9596private:
9597public:
9598public:
9602 SgAsmJvmStackMapVerificationTypePtrList const& get_stack() const;
9603 SgAsmJvmStackMapVerificationTypePtrList& get_stack();
9604 void set_stack(SgAsmJvmStackMapVerificationTypePtrList const&);
9607public:
9611 SgAsmJvmStackMapVerificationTypePtrList const& get_locals() const;
9612 SgAsmJvmStackMapVerificationTypePtrList& get_locals();
9613 void set_locals(SgAsmJvmStackMapVerificationTypePtrList const&);
9616 // Local types (for documentation purposes only)
9618#ifdef DOCUMENTATION
9623 same_frame;
9625 same_locals_1_stack_item_frame_extended;
9626 chop_frame;
9629 full_frame;
9630 };
9631
9632 struct same_frame {
9633 uint8_t frame_type; /* 0-63 */
9634 };
9636 uint8_t frame_type; /* 64-127 */
9637 verification_type_info stack;
9638 };
9640 uint8_t frame_type; /* 247 */
9641 uint16_t offset_delta;
9642 verification_type_info stack;
9643 };
9644 struct chop_frame {
9645 uint8_t frame_type; /* 248-250 */
9646 uint16_t offset_delta;
9647 };
9649 uint8_t frame_type; /* 251 */
9650 uint16_t offset_delta;
9651 };
9653 uint8_t frame_type; /* 252-254 */
9654 uint16_t offset_delta;
9655 verification_type_info stack;
9656 };
9657 struct full_frame {
9658 uint8_t frame_type; /* 252-254 */
9659 uint16_t offset_delta;
9660 uint16_t number_of_locals;
9661 verification_type_info stack[number_of_locals];
9662 uint16_t number_of_stack_items;
9663 verification_type_info stack[number_of_stack_items];
9664 };
9665#endif
9666
9668 // Properties
9670private:
9671public:
9677 uint8_t const& get_frame_type() const;
9678 void set_frame_type(uint8_t const&);
9681public:
9687 uint16_t const& get_offset_delta() const;
9688 void set_offset_delta(uint16_t const&);
9691 // Functions
9693public:
9698
9701
9703 virtual void unparse(std::ostream&) const override;
9704
9706 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9707public:
9710
9711public:
9714
9715protected:
9723#endif // SgAsmJvmStackMapFrame_OTHERS
9724#ifdef DOCUMENTATION
9725};
9726#endif // DOCUMENTATION
9727
9728
9730// SgAsmJvmSourceFile -- MACHINE GENERATED; DO NOT MODIFY --
9732
9733DECLARE_LEAF_CLASS(AsmJvmSourceFile);
9734IS_SERIALIZABLE(AsmJvmSourceFile);
9735
9736#ifndef DOCUMENTATION
9737AsmJvmSourceFile.useSmallHeader(true);
9738#endif // !DOCUMENTATION
9739
9740#ifdef DOCUMENTATION
9745#endif // DOCUMENTATION
9746
9747#ifndef DOCUMENTATION
9748 AsmJvmSourceFile.setDataPrototype(
9749 "uint16_t", "sourcefile_index", "= 0",
9750 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9751#endif // !DOCUMENTATION
9752
9753 DECLARE_OTHERS(AsmJvmSourceFile);
9754#if defined(SgAsmJvmSourceFile_OTHERS) || defined(DOCUMENTATION)
9755
9756 //----------------------- Boost serialization for SgAsmJvmSourceFile -----------------------
9757#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9758private:
9759 friend class boost::serialization::access;
9760
9761 template<class S>
9762 void serialize(S &s, const unsigned /*version*/) {
9763 debugSerializationBegin("SgAsmJvmSourceFile");
9764 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9765 s & BOOST_SERIALIZATION_NVP(p_sourcefile_index);
9766 debugSerializationEnd("SgAsmJvmSourceFile");
9767 }
9768#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9769public:
9770public:
9776 uint16_t const& get_sourcefile_index() const;
9777 void set_sourcefile_index(uint16_t const&);
9779public:
9784
9787
9789 virtual void unparse(std::ostream&) const override;
9790
9792 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9793public:
9796
9797public:
9800
9801protected:
9809#endif // SgAsmJvmSourceFile_OTHERS
9810#ifdef DOCUMENTATION
9811};
9812#endif // DOCUMENTATION
9813
9814
9816// SgAsmJvmSignature -- MACHINE GENERATED; DO NOT MODIFY --
9818
9819DECLARE_LEAF_CLASS(AsmJvmSignature);
9820IS_SERIALIZABLE(AsmJvmSignature);
9821
9822#ifndef DOCUMENTATION
9823AsmJvmSignature.useSmallHeader(true);
9824#endif // !DOCUMENTATION
9825
9826#ifdef DOCUMENTATION
9832#endif // DOCUMENTATION
9833
9834#ifndef DOCUMENTATION
9835 AsmJvmSignature.setDataPrototype(
9836 "uint16_t", "signature_index", "= 0",
9837 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9838#endif // !DOCUMENTATION
9839
9840 DECLARE_OTHERS(AsmJvmSignature);
9841#if defined(SgAsmJvmSignature_OTHERS) || defined(DOCUMENTATION)
9842
9843 //----------------------- Boost serialization for SgAsmJvmSignature -----------------------
9844#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9845private:
9846 friend class boost::serialization::access;
9847
9848 template<class S>
9849 void serialize(S &s, const unsigned /*version*/) {
9850 debugSerializationBegin("SgAsmJvmSignature");
9851 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9852 s & BOOST_SERIALIZATION_NVP(p_signature_index);
9853 debugSerializationEnd("SgAsmJvmSignature");
9854 }
9855#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9856public:
9857public:
9863 uint16_t const& get_signature_index() const;
9864 void set_signature_index(uint16_t const&);
9866public:
9871
9874
9876 virtual void unparse(std::ostream&) const override;
9877
9879 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9880public:
9883
9884public:
9887
9888protected:
9896#endif // SgAsmJvmSignature_OTHERS
9897#ifdef DOCUMENTATION
9898};
9899#endif // DOCUMENTATION
9900
9901
9903// SgAsmJvmNestMembers -- MACHINE GENERATED; DO NOT MODIFY --
9905
9906DECLARE_LEAF_CLASS(AsmJvmNestMembers);
9907IS_SERIALIZABLE(AsmJvmNestMembers);
9908
9909#ifndef DOCUMENTATION
9910AsmJvmNestMembers.useSmallHeader(true);
9911#endif // !DOCUMENTATION
9912
9913DECLARE_HEADERS(AsmJvmNestMembers);
9914#if defined(SgAsmJvmNestMembers_HEADERS) || defined(DOCUMENTATION)
9915#include <sageContainer.h>
9916#endif // SgAsmJvmNestMembers_HEADERS
9917
9918#ifdef DOCUMENTATION
9925#endif // DOCUMENTATION
9926
9927#ifndef DOCUMENTATION
9928 AsmJvmNestMembers.setDataPrototype(
9929 "SgUnsigned16List", "classes", "",
9930 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9931#endif // !DOCUMENTATION
9932
9933 DECLARE_OTHERS(AsmJvmNestMembers);
9934#if defined(SgAsmJvmNestMembers_OTHERS) || defined(DOCUMENTATION)
9935
9936 //----------------------- Boost serialization for SgAsmJvmNestMembers -----------------------
9937#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9938private:
9939 friend class boost::serialization::access;
9940
9941 template<class S>
9942 void serialize(S &s, const unsigned /*version*/) {
9943 debugSerializationBegin("SgAsmJvmNestMembers");
9944 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9945 s & BOOST_SERIALIZATION_NVP(p_classes);
9946 debugSerializationEnd("SgAsmJvmNestMembers");
9947 }
9948#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
9949public:
9950public:
9959 SgUnsigned16List const& get_classes() const;
9960 void set_classes(SgUnsigned16List const&);
9962public:
9967
9970
9972 virtual void unparse(std::ostream&) const override;
9973
9975 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9976public:
9979
9980public:
9983
9984protected:
9992#endif // SgAsmJvmNestMembers_OTHERS
9993#ifdef DOCUMENTATION
9994};
9995#endif // DOCUMENTATION
9996
9997
9999// SgAsmJvmNestHost -- MACHINE GENERATED; DO NOT MODIFY --
10001
10002DECLARE_LEAF_CLASS(AsmJvmNestHost);
10003IS_SERIALIZABLE(AsmJvmNestHost);
10004
10005#ifndef DOCUMENTATION
10006AsmJvmNestHost.useSmallHeader(true);
10007#endif // !DOCUMENTATION
10008
10009#ifdef DOCUMENTATION
10015#endif // DOCUMENTATION
10016
10017#ifndef DOCUMENTATION
10018 AsmJvmNestHost.setDataPrototype(
10019 "uint16_t", "host_class_index", "= 0",
10020 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10021#endif // !DOCUMENTATION
10022
10023 DECLARE_OTHERS(AsmJvmNestHost);
10024#if defined(SgAsmJvmNestHost_OTHERS) || defined(DOCUMENTATION)
10025
10026 //----------------------- Boost serialization for SgAsmJvmNestHost -----------------------
10027#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10028private:
10029 friend class boost::serialization::access;
10030
10031 template<class S>
10032 void serialize(S &s, const unsigned /*version*/) {
10033 debugSerializationBegin("SgAsmJvmNestHost");
10034 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10035 s & BOOST_SERIALIZATION_NVP(p_host_class_index);
10036 debugSerializationEnd("SgAsmJvmNestHost");
10037 }
10038#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10039public:
10040public:
10049 uint16_t const& get_host_class_index() const;
10050 void set_host_class_index(uint16_t const&);
10052public:
10057
10060
10062 virtual void unparse(std::ostream&) const override;
10063
10065 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10066public:
10069
10070public:
10073
10074protected:
10082#endif // SgAsmJvmNestHost_OTHERS
10083#ifdef DOCUMENTATION
10084};
10085#endif // DOCUMENTATION
10086
10087
10089// SgAsmJvmModuleMainClass -- MACHINE GENERATED; DO NOT MODIFY --
10091
10092DECLARE_LEAF_CLASS(AsmJvmModuleMainClass);
10093IS_SERIALIZABLE(AsmJvmModuleMainClass);
10094
10095#ifndef DOCUMENTATION
10096AsmJvmModuleMainClass.useSmallHeader(true);
10097#endif // !DOCUMENTATION
10098
10099#ifdef DOCUMENTATION
10105#endif // DOCUMENTATION
10106
10107#ifndef DOCUMENTATION
10108 AsmJvmModuleMainClass.setDataPrototype(
10109 "uint16_t", "main_class_index", "= 0",
10110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10111#endif // !DOCUMENTATION
10112
10113 DECLARE_OTHERS(AsmJvmModuleMainClass);
10114#if defined(SgAsmJvmModuleMainClass_OTHERS) || defined(DOCUMENTATION)
10115
10116 //----------------------- Boost serialization for SgAsmJvmModuleMainClass -----------------------
10117#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10118private:
10119 friend class boost::serialization::access;
10120
10121 template<class S>
10122 void serialize(S &s, const unsigned /*version*/) {
10123 debugSerializationBegin("SgAsmJvmModuleMainClass");
10124 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10125 s & BOOST_SERIALIZATION_NVP(p_main_class_index);
10126 debugSerializationEnd("SgAsmJvmModuleMainClass");
10127 }
10128#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10129public:
10130public:
10136 uint16_t const& get_main_class_index() const;
10137 void set_main_class_index(uint16_t const&);
10139public:
10144
10147
10149 virtual void unparse(std::ostream&) const override;
10150
10152 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10153public:
10156
10157public:
10160
10161protected:
10169#endif // SgAsmJvmModuleMainClass_OTHERS
10170#ifdef DOCUMENTATION
10171};
10172#endif // DOCUMENTATION
10173
10174
10176// SgAsmJvmMethodTable -- MACHINE GENERATED; DO NOT MODIFY --
10178
10179DECLARE_LEAF_CLASS(AsmJvmMethodTable);
10180IS_SERIALIZABLE(AsmJvmMethodTable);
10181
10182#ifndef DOCUMENTATION
10183AsmJvmMethodTable.useSmallHeader(true);
10184#endif // !DOCUMENTATION
10185
10186#ifdef DOCUMENTATION
10193#endif // DOCUMENTATION
10194
10195#ifndef DOCUMENTATION
10196 AsmJvmMethodTable.setDataPrototype(
10197 "SgAsmJvmMethodPtrList", "methods", "",
10198 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10199#endif // !DOCUMENTATION
10200
10201 DECLARE_OTHERS(AsmJvmMethodTable);
10202#if defined(SgAsmJvmMethodTable_OTHERS) || defined(DOCUMENTATION)
10203
10204 //----------------------- Boost serialization for SgAsmJvmMethodTable -----------------------
10205#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10206private:
10207 friend class boost::serialization::access;
10208
10209 template<class S>
10210 void serialize(S &s, const unsigned /*version*/) {
10211 debugSerializationBegin("SgAsmJvmMethodTable");
10212 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
10213 s & BOOST_SERIALIZATION_NVP(p_methods);
10214 debugSerializationEnd("SgAsmJvmMethodTable");
10215 }
10216#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10217public:
10218public:
10222 SgAsmJvmMethodPtrList const& get_methods() const;
10223 SgAsmJvmMethodPtrList& get_methods();
10224 void set_methods(SgAsmJvmMethodPtrList const&);
10226public:
10231
10236 virtual SgAsmJvmMethodTable* parse() override;
10237
10239 virtual void unparse(std::ostream&) const override;
10240
10242 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10243public:
10246
10247public:
10250
10251protected:
10259#endif // SgAsmJvmMethodTable_OTHERS
10260#ifdef DOCUMENTATION
10261};
10262#endif // DOCUMENTATION
10263
10264
10266// SgAsmJvmMethodParameters -- MACHINE GENERATED; DO NOT MODIFY --
10268
10269DECLARE_LEAF_CLASS(AsmJvmMethodParameters);
10270IS_SERIALIZABLE(AsmJvmMethodParameters);
10271
10272#ifndef DOCUMENTATION
10273AsmJvmMethodParameters.useSmallHeader(true);
10274#endif // !DOCUMENTATION
10275
10276DECLARE_HEADERS(AsmJvmMethodParameters);
10277#if defined(SgAsmJvmMethodParameters_HEADERS) || defined(DOCUMENTATION)
10278#include <sageContainer.h>
10279#endif // SgAsmJvmMethodParameters_HEADERS
10280
10281#ifdef DOCUMENTATION
10288#endif // DOCUMENTATION
10289
10290#ifndef DOCUMENTATION
10291 AsmJvmMethodParameters.setDataPrototype(
10292 "SgAsmJvmMethodParametersEntryPtrList", "parameters", "",
10293 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10294#endif // !DOCUMENTATION
10295
10296 DECLARE_OTHERS(AsmJvmMethodParameters);
10297#if defined(SgAsmJvmMethodParameters_OTHERS) || defined(DOCUMENTATION)
10298
10299 //----------------------- Boost serialization for SgAsmJvmMethodParameters -----------------------
10300#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10301private:
10302 friend class boost::serialization::access;
10303
10304 template<class S>
10305 void serialize(S &s, const unsigned /*version*/) {
10306 debugSerializationBegin("SgAsmJvmMethodParameters");
10307 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10308 s & BOOST_SERIALIZATION_NVP(p_parameters);
10309 debugSerializationEnd("SgAsmJvmMethodParameters");
10310 }
10311#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10312public:
10313public:
10319 SgAsmJvmMethodParametersEntryPtrList const& get_parameters() const;
10320 SgAsmJvmMethodParametersEntryPtrList& get_parameters();
10321 void set_parameters(SgAsmJvmMethodParametersEntryPtrList const&);
10323public:
10328
10331
10333 virtual void unparse(std::ostream&) const override;
10334
10336 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10337public:
10340
10341public:
10344
10345protected:
10353#endif // SgAsmJvmMethodParameters_OTHERS
10354#ifdef DOCUMENTATION
10355};
10356#endif // DOCUMENTATION
10357
10358
10360// SgAsmJvmMethodParametersEntry -- MACHINE GENERATED; DO NOT MODIFY --
10362
10363DECLARE_LEAF_CLASS(AsmJvmMethodParametersEntry);
10364IS_SERIALIZABLE(AsmJvmMethodParametersEntry);
10365
10366#ifndef DOCUMENTATION
10367AsmJvmMethodParametersEntry.useSmallHeader(true);
10368#endif // !DOCUMENTATION
10369
10370#ifdef DOCUMENTATION
10376#endif // DOCUMENTATION
10377
10378#ifndef DOCUMENTATION
10379 AsmJvmMethodParametersEntry.setDataPrototype(
10380 "uint16_t", "name_index", "= 0",
10381 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10382#endif // !DOCUMENTATION
10383
10384#ifndef DOCUMENTATION
10385 AsmJvmMethodParametersEntry.setDataPrototype(
10386 "uint16_t", "access_flags", "= 0",
10387 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10388#endif // !DOCUMENTATION
10389
10390 DECLARE_OTHERS(AsmJvmMethodParametersEntry);
10391#if defined(SgAsmJvmMethodParametersEntry_OTHERS) || defined(DOCUMENTATION)
10392
10393 //----------------------- Boost serialization for SgAsmJvmMethodParametersEntry -----------------------
10394#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10395private:
10396 friend class boost::serialization::access;
10397
10398 template<class S>
10399 void serialize(S &s, const unsigned /*version*/) {
10400 debugSerializationBegin("SgAsmJvmMethodParametersEntry");
10401 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10402 s & BOOST_SERIALIZATION_NVP(p_name_index);
10403 s & BOOST_SERIALIZATION_NVP(p_access_flags);
10404 debugSerializationEnd("SgAsmJvmMethodParametersEntry");
10405 }
10406#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10407public:
10408public:
10415 uint16_t const& get_name_index() const;
10416 void set_name_index(uint16_t const&);
10419public:
10425 uint16_t const& get_access_flags() const;
10426 void set_access_flags(uint16_t const&);
10428 public:
10433
10436
10438 virtual void unparse(std::ostream&) const override;
10439
10441 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10442public:
10445
10446public:
10449
10450protected:
10458#endif // SgAsmJvmMethodParametersEntry_OTHERS
10459#ifdef DOCUMENTATION
10460};
10461#endif // DOCUMENTATION
10462
10463
10465// SgAsmJvmMethod -- MACHINE GENERATED; DO NOT MODIFY --
10467
10468DECLARE_LEAF_CLASS(AsmJvmMethod);
10469IS_SERIALIZABLE(AsmJvmMethod);
10470
10471#ifndef DOCUMENTATION
10472AsmJvmMethod.useSmallHeader(true);
10473#endif // !DOCUMENTATION
10474
10475DECLARE_HEADERS(AsmJvmMethod);
10476#if defined(SgAsmJvmMethod_HEADERS) || defined(DOCUMENTATION)
10477#ifdef ROSE_SgAsmJvmMethod_IMPL
10478#include <SgAsmInstructionList.h>
10479#include <SgAsmJvmAttributeTable.h>
10480#endif
10481#endif // SgAsmJvmMethod_HEADERS
10482
10483#ifdef DOCUMENTATION
10489#endif // DOCUMENTATION
10490
10491#ifndef DOCUMENTATION
10492 AsmJvmMethod.setDataPrototype(
10493 "uint16_t", "access_flags", "= 0",
10494 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10495#endif // !DOCUMENTATION
10496
10497#ifndef DOCUMENTATION
10498 AsmJvmMethod.setDataPrototype(
10499 "uint16_t", "name_index", "= 0",
10500 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10501#endif // !DOCUMENTATION
10502
10503#ifndef DOCUMENTATION
10504 AsmJvmMethod.setDataPrototype(
10505 "uint16_t", "descriptor_index", "= 0",
10506 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10507#endif // !DOCUMENTATION
10508
10509#ifndef DOCUMENTATION
10510 AsmJvmMethod.setDataPrototype(
10511 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
10512 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10513#endif // !DOCUMENTATION
10514
10515#ifndef DOCUMENTATION
10516 AsmJvmMethod.setDataPrototype(
10517 "SgAsmInstructionList*", "instruction_list", "= createAndParent<SgAsmInstructionList>(this)",
10518 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10519#endif // !DOCUMENTATION
10520
10521 DECLARE_OTHERS(AsmJvmMethod);
10522#if defined(SgAsmJvmMethod_OTHERS) || defined(DOCUMENTATION)
10523
10524 //----------------------- Boost serialization for SgAsmJvmMethod -----------------------
10525#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10526private:
10527 friend class boost::serialization::access;
10528
10529 template<class S>
10530 void serialize(S &s, const unsigned /*version*/) {
10531 debugSerializationBegin("SgAsmJvmMethod");
10532 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10533 s & BOOST_SERIALIZATION_NVP(p_access_flags);
10534 s & BOOST_SERIALIZATION_NVP(p_name_index);
10535 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
10536 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
10537 s & BOOST_SERIALIZATION_NVP(p_instruction_list);
10538 debugSerializationEnd("SgAsmJvmMethod");
10539 }
10540#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10541public:
10542public:
10549 uint16_t const& get_access_flags() const;
10550 void set_access_flags(uint16_t const&);
10553public:
10559 uint16_t const& get_name_index() const;
10560 void set_name_index(uint16_t const&);
10563public:
10569 uint16_t const& get_descriptor_index() const;
10570 void set_descriptor_index(uint16_t const&);
10573public:
10581public:
10590public:
10595
10598
10600 virtual void unparse(std::ostream&) const override;
10601
10603 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10604public:
10607
10608public:
10611
10612protected:
10620#endif // SgAsmJvmMethod_OTHERS
10621#ifdef DOCUMENTATION
10622};
10623#endif // DOCUMENTATION
10624
10625
10627// SgAsmJvmLocalVariableTypeTable -- MACHINE GENERATED; DO NOT MODIFY --
10629
10630DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeTable);
10631IS_SERIALIZABLE(AsmJvmLocalVariableTypeTable);
10632
10633#ifndef DOCUMENTATION
10634AsmJvmLocalVariableTypeTable.useSmallHeader(true);
10635#endif // !DOCUMENTATION
10636
10637DECLARE_HEADERS(AsmJvmLocalVariableTypeTable);
10638#if defined(SgAsmJvmLocalVariableTypeTable_HEADERS) || defined(DOCUMENTATION)
10639#include <sageContainer.h>
10640#endif // SgAsmJvmLocalVariableTypeTable_HEADERS
10641
10642#ifdef DOCUMENTATION
10649#endif // DOCUMENTATION
10650
10651#ifndef DOCUMENTATION
10652 AsmJvmLocalVariableTypeTable.setDataPrototype(
10653 "SgAsmJvmLocalVariableTypeEntryPtrList", "local_variable_type_table", "",
10654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10655#endif // !DOCUMENTATION
10656
10657 DECLARE_OTHERS(AsmJvmLocalVariableTypeTable);
10658#if defined(SgAsmJvmLocalVariableTypeTable_OTHERS) || defined(DOCUMENTATION)
10659
10660 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeTable -----------------------
10661#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10662private:
10663 friend class boost::serialization::access;
10664
10665 template<class S>
10666 void serialize(S &s, const unsigned /*version*/) {
10667 debugSerializationBegin("SgAsmJvmLocalVariableTypeTable");
10668 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10669 s & BOOST_SERIALIZATION_NVP(p_local_variable_type_table);
10670 debugSerializationEnd("SgAsmJvmLocalVariableTypeTable");
10671 }
10672#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10673public:
10674public:
10680 SgAsmJvmLocalVariableTypeEntryPtrList const& get_local_variable_type_table() const;
10681 SgAsmJvmLocalVariableTypeEntryPtrList& get_local_variable_type_table();
10682 void set_local_variable_type_table(SgAsmJvmLocalVariableTypeEntryPtrList const&);
10684public:
10689
10692
10694 virtual void unparse(std::ostream&) const override;
10695
10697 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10698public:
10701
10702public:
10705
10706protected:
10714#endif // SgAsmJvmLocalVariableTypeTable_OTHERS
10715#ifdef DOCUMENTATION
10716};
10717#endif // DOCUMENTATION
10718
10719
10721// SgAsmJvmLocalVariableTypeEntry -- MACHINE GENERATED; DO NOT MODIFY --
10723
10724DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeEntry);
10725IS_SERIALIZABLE(AsmJvmLocalVariableTypeEntry);
10726
10727#ifndef DOCUMENTATION
10728AsmJvmLocalVariableTypeEntry.useSmallHeader(true);
10729#endif // !DOCUMENTATION
10730
10731#ifdef DOCUMENTATION
10736#endif // DOCUMENTATION
10737
10738#ifndef DOCUMENTATION
10739 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10740 "uint16_t", "start_pc", "= 0",
10741 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10742#endif // !DOCUMENTATION
10743
10744#ifndef DOCUMENTATION
10745 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10746 "uint16_t", "length", "= 0",
10747 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10748#endif // !DOCUMENTATION
10749
10750#ifndef DOCUMENTATION
10751 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10752 "uint16_t", "name_index", "= 0",
10753 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10754#endif // !DOCUMENTATION
10755
10756#ifndef DOCUMENTATION
10757 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10758 "uint16_t", "signature_index", "= 0",
10759 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10760#endif // !DOCUMENTATION
10761
10762#ifndef DOCUMENTATION
10763 AsmJvmLocalVariableTypeEntry.setDataPrototype(
10764 "uint16_t", "index", "= 0",
10765 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10766#endif // !DOCUMENTATION
10767
10768 DECLARE_OTHERS(AsmJvmLocalVariableTypeEntry);
10769#if defined(SgAsmJvmLocalVariableTypeEntry_OTHERS) || defined(DOCUMENTATION)
10770
10771 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeEntry -----------------------
10772#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10773private:
10774 friend class boost::serialization::access;
10775
10776 template<class S>
10777 void serialize(S &s, const unsigned /*version*/) {
10778 debugSerializationBegin("SgAsmJvmLocalVariableTypeEntry");
10779 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10780 s & BOOST_SERIALIZATION_NVP(p_start_pc);
10781 s & BOOST_SERIALIZATION_NVP(p_length);
10782 s & BOOST_SERIALIZATION_NVP(p_name_index);
10783 s & BOOST_SERIALIZATION_NVP(p_signature_index);
10784 s & BOOST_SERIALIZATION_NVP(p_index);
10785 debugSerializationEnd("SgAsmJvmLocalVariableTypeEntry");
10786 }
10787#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10788public:
10789public:
10796 uint16_t const& get_start_pc() const;
10797 void set_start_pc(uint16_t const&);
10800public:
10808 uint16_t const& get_length() const;
10809 void set_length(uint16_t const&);
10812public:
10820 uint16_t const& get_name_index() const;
10821 void set_name_index(uint16_t const&);
10824public:
10832 uint16_t const& get_signature_index() const;
10833 void set_signature_index(uint16_t const&);
10836public:
10843 uint16_t const& get_index() const;
10844 void set_index(uint16_t const&);
10846 public:
10851
10854
10856 virtual void unparse(std::ostream&) const override;
10857
10859 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10860public:
10863
10864public:
10867
10868protected:
10876#endif // SgAsmJvmLocalVariableTypeEntry_OTHERS
10877#ifdef DOCUMENTATION
10878};
10879#endif // DOCUMENTATION
10880
10881
10883// SgAsmJvmLocalVariableTable -- MACHINE GENERATED; DO NOT MODIFY --
10885
10886DECLARE_LEAF_CLASS(AsmJvmLocalVariableTable);
10887IS_SERIALIZABLE(AsmJvmLocalVariableTable);
10888
10889#ifndef DOCUMENTATION
10890AsmJvmLocalVariableTable.useSmallHeader(true);
10891#endif // !DOCUMENTATION
10892
10893DECLARE_HEADERS(AsmJvmLocalVariableTable);
10894#if defined(SgAsmJvmLocalVariableTable_HEADERS) || defined(DOCUMENTATION)
10895#include <sageContainer.h>
10896#endif // SgAsmJvmLocalVariableTable_HEADERS
10897
10898#ifdef DOCUMENTATION
10905#endif // DOCUMENTATION
10906
10907#ifndef DOCUMENTATION
10908 AsmJvmLocalVariableTable.setDataPrototype(
10909 "SgAsmJvmLocalVariableEntryPtrList", "local_variable_table", "",
10910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10911#endif // !DOCUMENTATION
10912
10913 DECLARE_OTHERS(AsmJvmLocalVariableTable);
10914#if defined(SgAsmJvmLocalVariableTable_OTHERS) || defined(DOCUMENTATION)
10915
10916 //----------------------- Boost serialization for SgAsmJvmLocalVariableTable -----------------------
10917#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
10918private:
10919 friend class boost::serialization::access;
10920
10921 template<class S>
10922 void serialize(S &s, const unsigned /*version*/) {
10923 debugSerializationBegin("SgAsmJvmLocalVariableTable");
10924 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10925 s & BOOST_SERIALIZATION_NVP(p_local_variable_table);
10926 debugSerializationEnd("SgAsmJvmLocalVariableTable");
10927 }
10928#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
10929public:
10930public:
10936 SgAsmJvmLocalVariableEntryPtrList const& get_local_variable_table() const;
10937 SgAsmJvmLocalVariableEntryPtrList& get_local_variable_table();
10938 void set_local_variable_table(SgAsmJvmLocalVariableEntryPtrList const&);
10940public:
10945
10948
10950 virtual void unparse(std::ostream&) const override;
10951
10953 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10954public:
10957
10958public:
10961
10962protected:
10970#endif // SgAsmJvmLocalVariableTable_OTHERS
10971#ifdef DOCUMENTATION
10972};
10973#endif // DOCUMENTATION
10974
10975
10977// SgAsmJvmLocalVariableEntry -- MACHINE GENERATED; DO NOT MODIFY --
10979
10980DECLARE_LEAF_CLASS(AsmJvmLocalVariableEntry);
10981IS_SERIALIZABLE(AsmJvmLocalVariableEntry);
10982
10983#ifndef DOCUMENTATION
10984AsmJvmLocalVariableEntry.useSmallHeader(true);
10985#endif // !DOCUMENTATION
10986
10987#ifdef DOCUMENTATION
10992#endif // DOCUMENTATION
10993
10994#ifndef DOCUMENTATION
10995 AsmJvmLocalVariableEntry.setDataPrototype(
10996 "uint16_t", "start_pc", "= 0",
10997 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10998#endif // !DOCUMENTATION
10999
11000#ifndef DOCUMENTATION
11001 AsmJvmLocalVariableEntry.setDataPrototype(
11002 "uint16_t", "length", "= 0",
11003 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11004#endif // !DOCUMENTATION
11005
11006#ifndef DOCUMENTATION
11007 AsmJvmLocalVariableEntry.setDataPrototype(
11008 "uint16_t", "name_index", "= 0",
11009 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11010#endif // !DOCUMENTATION
11011
11012#ifndef DOCUMENTATION
11013 AsmJvmLocalVariableEntry.setDataPrototype(
11014 "uint16_t", "descriptor_index", "= 0",
11015 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11016#endif // !DOCUMENTATION
11017
11018#ifndef DOCUMENTATION
11019 AsmJvmLocalVariableEntry.setDataPrototype(
11020 "uint16_t", "index", "= 0",
11021 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11022#endif // !DOCUMENTATION
11023
11024 DECLARE_OTHERS(AsmJvmLocalVariableEntry);
11025#if defined(SgAsmJvmLocalVariableEntry_OTHERS) || defined(DOCUMENTATION)
11026
11027 //----------------------- Boost serialization for SgAsmJvmLocalVariableEntry -----------------------
11028#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11029private:
11030 friend class boost::serialization::access;
11031
11032 template<class S>
11033 void serialize(S &s, const unsigned /*version*/) {
11034 debugSerializationBegin("SgAsmJvmLocalVariableEntry");
11035 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11036 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11037 s & BOOST_SERIALIZATION_NVP(p_length);
11038 s & BOOST_SERIALIZATION_NVP(p_name_index);
11039 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
11040 s & BOOST_SERIALIZATION_NVP(p_index);
11041 debugSerializationEnd("SgAsmJvmLocalVariableEntry");
11042 }
11043#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11044public:
11045public:
11052 uint16_t const& get_start_pc() const;
11053 void set_start_pc(uint16_t const&);
11056public:
11064 uint16_t const& get_length() const;
11065 void set_length(uint16_t const&);
11068public:
11076 uint16_t const& get_name_index() const;
11077 void set_name_index(uint16_t const&);
11080public:
11088 uint16_t const& get_descriptor_index() const;
11089 void set_descriptor_index(uint16_t const&);
11092public:
11099 uint16_t const& get_index() const;
11100 void set_index(uint16_t const&);
11102 public:
11107
11110
11112 virtual void unparse(std::ostream&) const override;
11113
11115 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11116public:
11119
11120public:
11123
11124protected:
11132#endif // SgAsmJvmLocalVariableEntry_OTHERS
11133#ifdef DOCUMENTATION
11134};
11135#endif // DOCUMENTATION
11136
11137
11139// SgAsmJvmLineNumberTable -- MACHINE GENERATED; DO NOT MODIFY --
11141
11142DECLARE_LEAF_CLASS(AsmJvmLineNumberTable);
11143IS_SERIALIZABLE(AsmJvmLineNumberTable);
11144
11145#ifndef DOCUMENTATION
11146AsmJvmLineNumberTable.useSmallHeader(true);
11147#endif // !DOCUMENTATION
11148
11149DECLARE_HEADERS(AsmJvmLineNumberTable);
11150#if defined(SgAsmJvmLineNumberTable_HEADERS) || defined(DOCUMENTATION)
11151#include <sageContainer.h>
11152#endif // SgAsmJvmLineNumberTable_HEADERS
11153
11154#ifdef DOCUMENTATION
11161#endif // DOCUMENTATION
11162
11163#ifndef DOCUMENTATION
11164 AsmJvmLineNumberTable.setDataPrototype(
11165 "SgAsmJvmLineNumberEntryPtrList", "line_number_table", "",
11166 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11167#endif // !DOCUMENTATION
11168
11169 DECLARE_OTHERS(AsmJvmLineNumberTable);
11170#if defined(SgAsmJvmLineNumberTable_OTHERS) || defined(DOCUMENTATION)
11171
11172 //----------------------- Boost serialization for SgAsmJvmLineNumberTable -----------------------
11173#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11174private:
11175 friend class boost::serialization::access;
11176
11177 template<class S>
11178 void serialize(S &s, const unsigned /*version*/) {
11179 debugSerializationBegin("SgAsmJvmLineNumberTable");
11180 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11181 s & BOOST_SERIALIZATION_NVP(p_line_number_table);
11182 debugSerializationEnd("SgAsmJvmLineNumberTable");
11183 }
11184#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11185public:
11186public:
11192 SgAsmJvmLineNumberEntryPtrList const& get_line_number_table() const;
11193 SgAsmJvmLineNumberEntryPtrList& get_line_number_table();
11194 void set_line_number_table(SgAsmJvmLineNumberEntryPtrList const&);
11196public:
11201
11204
11206 virtual void unparse(std::ostream&) const override;
11207
11209 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11210public:
11213
11214public:
11217
11218protected:
11226#endif // SgAsmJvmLineNumberTable_OTHERS
11227#ifdef DOCUMENTATION
11228};
11229#endif // DOCUMENTATION
11230
11231
11233// SgAsmJvmLineNumberEntry -- MACHINE GENERATED; DO NOT MODIFY --
11235
11236DECLARE_LEAF_CLASS(AsmJvmLineNumberEntry);
11237IS_SERIALIZABLE(AsmJvmLineNumberEntry);
11238
11239#ifndef DOCUMENTATION
11240AsmJvmLineNumberEntry.useSmallHeader(true);
11241#endif // !DOCUMENTATION
11242
11243#ifdef DOCUMENTATION
11248#endif // DOCUMENTATION
11249
11250#ifndef DOCUMENTATION
11251 AsmJvmLineNumberEntry.setDataPrototype(
11252 "uint16_t", "start_pc", "= 0",
11253 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11254#endif // !DOCUMENTATION
11255
11256#ifndef DOCUMENTATION
11257 AsmJvmLineNumberEntry.setDataPrototype(
11258 "uint16_t", "line_number", "= 0",
11259 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11260#endif // !DOCUMENTATION
11261
11262 DECLARE_OTHERS(AsmJvmLineNumberEntry);
11263#if defined(SgAsmJvmLineNumberEntry_OTHERS) || defined(DOCUMENTATION)
11264
11265 //----------------------- Boost serialization for SgAsmJvmLineNumberEntry -----------------------
11266#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11267private:
11268 friend class boost::serialization::access;
11269
11270 template<class S>
11271 void serialize(S &s, const unsigned /*version*/) {
11272 debugSerializationBegin("SgAsmJvmLineNumberEntry");
11273 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11274 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11275 s & BOOST_SERIALIZATION_NVP(p_line_number);
11276 debugSerializationEnd("SgAsmJvmLineNumberEntry");
11277 }
11278#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11279public:
11280public:
11286 uint16_t const& get_start_pc() const;
11287 void set_start_pc(uint16_t const&);
11290public:
11296 uint16_t const& get_line_number() const;
11297 void set_line_number(uint16_t const&);
11299 public:
11304
11307
11309 virtual void unparse(std::ostream&) const override;
11310
11312 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11313public:
11316
11317public:
11320
11321protected:
11329#endif // SgAsmJvmLineNumberEntry_OTHERS
11330#ifdef DOCUMENTATION
11331};
11332#endif // DOCUMENTATION
11333
11334
11336// SgAsmJvmInstruction -- MACHINE GENERATED; DO NOT MODIFY --
11338
11339DECLARE_LEAF_CLASS(AsmJvmInstruction);
11340IS_SERIALIZABLE(AsmJvmInstruction);
11341
11342#ifndef DOCUMENTATION
11343AsmJvmInstruction.useSmallHeader(true);
11344#endif // !DOCUMENTATION
11345
11346DECLARE_HEADERS(AsmJvmInstruction);
11347#if defined(SgAsmJvmInstruction_HEADERS) || defined(DOCUMENTATION)
11348#include <Rose/BinaryAnalysis/InstructionEnumsJvm.h>
11349#endif // SgAsmJvmInstruction_HEADERS
11350
11351#ifdef DOCUMENTATION
11354#endif // DOCUMENTATION
11355
11356#ifndef DOCUMENTATION
11357 AsmJvmInstruction.setDataPrototype(
11358 "Rose::BinaryAnalysis::JvmInstructionKind", "kind", "= Rose::BinaryAnalysis::JvmInstructionKind::unknown",
11359 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11360#endif // !DOCUMENTATION
11361
11362 DECLARE_OTHERS(AsmJvmInstruction);
11363#if defined(SgAsmJvmInstruction_OTHERS) || defined(DOCUMENTATION)
11364
11365 //----------------------- Boost serialization for SgAsmJvmInstruction -----------------------
11366#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11367private:
11368 friend class boost::serialization::access;
11369
11370 template<class S>
11371 void serialize(S &s, const unsigned /*version*/) {
11372 debugSerializationBegin("SgAsmJvmInstruction");
11373 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
11374 s & BOOST_SERIALIZATION_NVP(p_kind);
11375 debugSerializationEnd("SgAsmJvmInstruction");
11376 }
11377#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11378public:
11379public:
11386 Rose::BinaryAnalysis::JvmInstructionKind const& get_kind() const;
11387 void set_kind(Rose::BinaryAnalysis::JvmInstructionKind const&);
11389public:
11390 // Overrides are documented in the base class
11391 virtual unsigned get_anyKind() const override;
11392public:
11395
11396public:
11399
11400public:
11402 SgAsmJvmInstruction(rose_addr_t const& address,
11403 uint8_t const& architectureId,
11404 Rose::BinaryAnalysis::JvmInstructionKind const& kind);
11405
11406protected:
11414#endif // SgAsmJvmInstruction_OTHERS
11415#ifdef DOCUMENTATION
11416};
11417#endif // DOCUMENTATION
11418
11419
11421// SgAsmJvmInnerClasses -- MACHINE GENERATED; DO NOT MODIFY --
11423
11424DECLARE_LEAF_CLASS(AsmJvmInnerClasses);
11425IS_SERIALIZABLE(AsmJvmInnerClasses);
11426
11427#ifndef DOCUMENTATION
11428AsmJvmInnerClasses.useSmallHeader(true);
11429#endif // !DOCUMENTATION
11430
11431DECLARE_HEADERS(AsmJvmInnerClasses);
11432#if defined(SgAsmJvmInnerClasses_HEADERS) || defined(DOCUMENTATION)
11433#include <sageContainer.h>
11434#endif // SgAsmJvmInnerClasses_HEADERS
11435
11436#ifdef DOCUMENTATION
11443#endif // DOCUMENTATION
11444
11445#ifndef DOCUMENTATION
11446 AsmJvmInnerClasses.setDataPrototype(
11447 "SgAsmJvmInnerClassesEntryPtrList", "classes", "",
11448 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11449#endif // !DOCUMENTATION
11450
11451 DECLARE_OTHERS(AsmJvmInnerClasses);
11452#if defined(SgAsmJvmInnerClasses_OTHERS) || defined(DOCUMENTATION)
11453
11454 //----------------------- Boost serialization for SgAsmJvmInnerClasses -----------------------
11455#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11456private:
11457 friend class boost::serialization::access;
11458
11459 template<class S>
11460 void serialize(S &s, const unsigned /*version*/) {
11461 debugSerializationBegin("SgAsmJvmInnerClasses");
11462 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11463 s & BOOST_SERIALIZATION_NVP(p_classes);
11464 debugSerializationEnd("SgAsmJvmInnerClasses");
11465 }
11466#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11467public:
11468public:
11472 SgAsmJvmInnerClassesEntryPtrList const& get_classes() const;
11473 SgAsmJvmInnerClassesEntryPtrList& get_classes();
11474 void set_classes(SgAsmJvmInnerClassesEntryPtrList const&);
11476public:
11481
11487
11489 virtual void unparse(std::ostream&) const override;
11490
11492 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11493public:
11496
11497public:
11500
11501protected:
11509#endif // SgAsmJvmInnerClasses_OTHERS
11510#ifdef DOCUMENTATION
11511};
11512#endif // DOCUMENTATION
11513
11514
11516// SgAsmJvmInnerClassesEntry -- MACHINE GENERATED; DO NOT MODIFY --
11518
11519DECLARE_LEAF_CLASS(AsmJvmInnerClassesEntry);
11520IS_SERIALIZABLE(AsmJvmInnerClassesEntry);
11521
11522#ifndef DOCUMENTATION
11523AsmJvmInnerClassesEntry.useSmallHeader(true);
11524#endif // !DOCUMENTATION
11525
11526#ifdef DOCUMENTATION
11532#endif // DOCUMENTATION
11533
11534#ifndef DOCUMENTATION
11535 AsmJvmInnerClassesEntry.setDataPrototype(
11536 "uint16_t", "inner_class_info_index", "= 0",
11537 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11538#endif // !DOCUMENTATION
11539
11540#ifndef DOCUMENTATION
11541 AsmJvmInnerClassesEntry.setDataPrototype(
11542 "uint16_t", "outer_class_info_index", "= 0",
11543 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11544#endif // !DOCUMENTATION
11545
11546#ifndef DOCUMENTATION
11547 AsmJvmInnerClassesEntry.setDataPrototype(
11548 "uint16_t", "inner_name_index", "= 0",
11549 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11550#endif // !DOCUMENTATION
11551
11552#ifndef DOCUMENTATION
11553 AsmJvmInnerClassesEntry.setDataPrototype(
11554 "uint16_t", "inner_class_access_flags", "= 0",
11555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11556#endif // !DOCUMENTATION
11557
11558 DECLARE_OTHERS(AsmJvmInnerClassesEntry);
11559#if defined(SgAsmJvmInnerClassesEntry_OTHERS) || defined(DOCUMENTATION)
11560
11561 //----------------------- Boost serialization for SgAsmJvmInnerClassesEntry -----------------------
11562#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11563private:
11564 friend class boost::serialization::access;
11565
11566 template<class S>
11567 void serialize(S &s, const unsigned /*version*/) {
11568 debugSerializationBegin("SgAsmJvmInnerClassesEntry");
11569 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11570 s & BOOST_SERIALIZATION_NVP(p_inner_class_info_index);
11571 s & BOOST_SERIALIZATION_NVP(p_outer_class_info_index);
11572 s & BOOST_SERIALIZATION_NVP(p_inner_name_index);
11573 s & BOOST_SERIALIZATION_NVP(p_inner_class_access_flags);
11574 debugSerializationEnd("SgAsmJvmInnerClassesEntry");
11575 }
11576#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11577public:
11578public:
11585 uint16_t const& get_inner_class_info_index() const;
11586 void set_inner_class_info_index(uint16_t const&);
11589public:
11596 uint16_t const& get_outer_class_info_index() const;
11597 void set_outer_class_info_index(uint16_t const&);
11600public:
11607 uint16_t const& get_inner_name_index() const;
11608 void set_inner_name_index(uint16_t const&);
11611public:
11619 uint16_t const& get_inner_class_access_flags() const;
11620 void set_inner_class_access_flags(uint16_t const&);
11622public:
11627
11630
11632 virtual void unparse(std::ostream&) const override;
11633
11635 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11636public:
11639
11640public:
11643
11644protected:
11652#endif // SgAsmJvmInnerClassesEntry_OTHERS
11653#ifdef DOCUMENTATION
11654};
11655#endif // DOCUMENTATION
11656
11657
11659// SgAsmJvmFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
11661
11662DECLARE_LEAF_CLASS(AsmJvmFileHeader);
11663IS_SERIALIZABLE(AsmJvmFileHeader);
11664
11665#ifndef DOCUMENTATION
11666AsmJvmFileHeader.useSmallHeader(true);
11667#endif // !DOCUMENTATION
11668
11669#ifdef DOCUMENTATION
11677#endif // DOCUMENTATION
11678
11679#ifndef DOCUMENTATION
11680 AsmJvmFileHeader.setDataPrototype(
11681 "uint16_t", "minor_version", "= 0",
11682 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11683#endif // !DOCUMENTATION
11684
11685#ifndef DOCUMENTATION
11686 AsmJvmFileHeader.setDataPrototype(
11687 "uint16_t", "major_version", "= 0",
11688 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11689#endif // !DOCUMENTATION
11690
11691#ifndef DOCUMENTATION
11692 AsmJvmFileHeader.setDataPrototype(
11693 "uint16_t", "access_flags", "= 0",
11694 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11695#endif // !DOCUMENTATION
11696
11697#ifndef DOCUMENTATION
11698 AsmJvmFileHeader.setDataPrototype(
11699 "uint16_t", "this_class", "= 0",
11700 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11701#endif // !DOCUMENTATION
11702
11703#ifndef DOCUMENTATION
11704 AsmJvmFileHeader.setDataPrototype(
11705 "uint16_t", "super_class", "= 0",
11706 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11707#endif // !DOCUMENTATION
11708
11709#ifndef DOCUMENTATION
11710 AsmJvmFileHeader.setDataPrototype(
11711 "SgAsmJvmConstantPool*", "constant_pool", "= nullptr",
11712 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11713#endif // !DOCUMENTATION
11714
11715#ifndef DOCUMENTATION
11716 AsmJvmFileHeader.setDataPrototype(
11717 "std::list<uint16_t>", "interfaces", "",
11718 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11719#endif // !DOCUMENTATION
11720
11721#ifndef DOCUMENTATION
11722 AsmJvmFileHeader.setDataPrototype(
11723 "SgAsmJvmFieldTable*", "field_table", "= nullptr",
11724 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11725#endif // !DOCUMENTATION
11726
11727#ifndef DOCUMENTATION
11728 AsmJvmFileHeader.setDataPrototype(
11729 "SgAsmJvmMethodTable*", "method_table", "= nullptr",
11730 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11731#endif // !DOCUMENTATION
11732
11733#ifndef DOCUMENTATION
11734 AsmJvmFileHeader.setDataPrototype(
11735 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
11736 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11737#endif // !DOCUMENTATION
11738
11739 DECLARE_OTHERS(AsmJvmFileHeader);
11740#if defined(SgAsmJvmFileHeader_OTHERS) || defined(DOCUMENTATION)
11741
11742 //----------------------- Boost serialization for SgAsmJvmFileHeader -----------------------
11743#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11744private:
11745 friend class boost::serialization::access;
11746
11747 template<class S>
11748 void serialize(S &s, const unsigned /*version*/) {
11749 debugSerializationBegin("SgAsmJvmFileHeader");
11750 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
11751 s & BOOST_SERIALIZATION_NVP(p_minor_version);
11752 s & BOOST_SERIALIZATION_NVP(p_major_version);
11753 s & BOOST_SERIALIZATION_NVP(p_access_flags);
11754 s & BOOST_SERIALIZATION_NVP(p_this_class);
11755 s & BOOST_SERIALIZATION_NVP(p_super_class);
11756 s & BOOST_SERIALIZATION_NVP(p_constant_pool);
11757 s & BOOST_SERIALIZATION_NVP(p_interfaces);
11758 s & BOOST_SERIALIZATION_NVP(p_field_table);
11759 s & BOOST_SERIALIZATION_NVP(p_method_table);
11760 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
11761 debugSerializationEnd("SgAsmJvmFileHeader");
11762 }
11763#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11764public:
11765public:
11771 uint16_t const& get_minor_version() const;
11772 void set_minor_version(uint16_t const&);
11775public:
11781 uint16_t const& get_major_version() const;
11782 void set_major_version(uint16_t const&);
11785public:
11791 uint16_t const& get_access_flags() const;
11792 void set_access_flags(uint16_t const&);
11795public:
11801 uint16_t const& get_this_class() const;
11802 void set_this_class(uint16_t const&);
11805public:
11811 uint16_t const& get_super_class() const;
11812 void set_super_class(uint16_t const&);
11815public:
11828public:
11836 std::list<uint16_t> const& get_interfaces() const;
11837 std::list<uint16_t>& get_interfaces();
11838 void set_interfaces(std::list<uint16_t> const&);
11841public:
11854public:
11867public:
11879public:
11882
11888 virtual SgAsmJvmFileHeader* parse() override;
11889
11891 virtual void unparse(std::ostream&) const override;
11892
11895
11896protected:
11897 // Some extra clean-up actions on destruction
11898 virtual void destructorHelper() override;
11899public:
11902
11903public:
11906
11907protected:
11915#endif // SgAsmJvmFileHeader_OTHERS
11916#ifdef DOCUMENTATION
11917};
11918#endif // DOCUMENTATION
11919
11920
11922// SgAsmJvmFieldTable -- MACHINE GENERATED; DO NOT MODIFY --
11924
11925DECLARE_LEAF_CLASS(AsmJvmFieldTable);
11926IS_SERIALIZABLE(AsmJvmFieldTable);
11927
11928#ifndef DOCUMENTATION
11929AsmJvmFieldTable.useSmallHeader(true);
11930#endif // !DOCUMENTATION
11931
11932#ifdef DOCUMENTATION
11939#endif // DOCUMENTATION
11940
11941#ifndef DOCUMENTATION
11942 AsmJvmFieldTable.setDataPrototype(
11943 "SgAsmJvmFieldPtrList", "fields", "",
11944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
11945#endif // !DOCUMENTATION
11946
11947 DECLARE_OTHERS(AsmJvmFieldTable);
11948#if defined(SgAsmJvmFieldTable_OTHERS) || defined(DOCUMENTATION)
11949
11950 //----------------------- Boost serialization for SgAsmJvmFieldTable -----------------------
11951#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
11952private:
11953 friend class boost::serialization::access;
11954
11955 template<class S>
11956 void serialize(S &s, const unsigned /*version*/) {
11957 debugSerializationBegin("SgAsmJvmFieldTable");
11958 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
11959 s & BOOST_SERIALIZATION_NVP(p_fields);
11960 debugSerializationEnd("SgAsmJvmFieldTable");
11961 }
11962#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
11963public:
11964public:
11968 SgAsmJvmFieldPtrList const& get_fields() const;
11969 SgAsmJvmFieldPtrList& get_fields();
11970 void set_fields(SgAsmJvmFieldPtrList const&);
11972public:
11977
11981 virtual SgAsmJvmFieldTable* parse() override;
11982
11984 virtual void unparse(std::ostream&) const override;
11985
11987 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11988public:
11991
11992public:
11995
11996protected:
12004#endif // SgAsmJvmFieldTable_OTHERS
12005#ifdef DOCUMENTATION
12006};
12007#endif // DOCUMENTATION
12008
12009
12011// SgAsmJvmField -- MACHINE GENERATED; DO NOT MODIFY --
12013
12014DECLARE_LEAF_CLASS(AsmJvmField);
12015IS_SERIALIZABLE(AsmJvmField);
12016
12017#ifndef DOCUMENTATION
12018AsmJvmField.useSmallHeader(true);
12019#endif // !DOCUMENTATION
12020
12021DECLARE_HEADERS(AsmJvmField);
12022#if defined(SgAsmJvmField_HEADERS) || defined(DOCUMENTATION)
12023#ifdef ROSE_SgAsmJvmField_IMPL
12024#include <SgAsmJvmAttributeTable.h>
12025#endif
12026#endif // SgAsmJvmField_HEADERS
12027
12028#ifdef DOCUMENTATION
12033#endif // DOCUMENTATION
12034
12035#ifndef DOCUMENTATION
12036 AsmJvmField.setDataPrototype(
12037 "uint16_t", "access_flags", "= 0",
12038 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12039#endif // !DOCUMENTATION
12040
12041#ifndef DOCUMENTATION
12042 AsmJvmField.setDataPrototype(
12043 "uint16_t", "name_index", "= 0",
12044 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12045#endif // !DOCUMENTATION
12046
12047#ifndef DOCUMENTATION
12048 AsmJvmField.setDataPrototype(
12049 "uint16_t", "descriptor_index", "= 0",
12050 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12051#endif // !DOCUMENTATION
12052
12053#ifndef DOCUMENTATION
12054 AsmJvmField.setDataPrototype(
12055 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
12056 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
12057#endif // !DOCUMENTATION
12058
12059 DECLARE_OTHERS(AsmJvmField);
12060#if defined(SgAsmJvmField_OTHERS) || defined(DOCUMENTATION)
12061
12062 //----------------------- Boost serialization for SgAsmJvmField -----------------------
12063#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12064private:
12065 friend class boost::serialization::access;
12066
12067 template<class S>
12068 void serialize(S &s, const unsigned /*version*/) {
12069 debugSerializationBegin("SgAsmJvmField");
12070 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
12071 s & BOOST_SERIALIZATION_NVP(p_access_flags);
12072 s & BOOST_SERIALIZATION_NVP(p_name_index);
12073 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
12074 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
12075 debugSerializationEnd("SgAsmJvmField");
12076 }
12077#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12078public:
12079public:
12086 uint16_t const& get_access_flags() const;
12087 void set_access_flags(uint16_t const&);
12090public:
12096 uint16_t const& get_name_index() const;
12097 void set_name_index(uint16_t const&);
12100public:
12106 uint16_t const& get_descriptor_index() const;
12107 void set_descriptor_index(uint16_t const&);
12110public:
12117 public:
12122
12125
12127 virtual void unparse(std::ostream&) const override;
12128
12130 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12131public:
12134
12135public:
12138
12139protected:
12147#endif // SgAsmJvmField_OTHERS
12148#ifdef DOCUMENTATION
12149};
12150#endif // DOCUMENTATION
12151
12152
12154// SgAsmJvmExceptionTable -- MACHINE GENERATED; DO NOT MODIFY --
12156
12157DECLARE_LEAF_CLASS(AsmJvmExceptionTable);
12158IS_SERIALIZABLE(AsmJvmExceptionTable);
12159
12160#ifndef DOCUMENTATION
12161AsmJvmExceptionTable.useSmallHeader(true);
12162#endif // !DOCUMENTATION
12163
12164DECLARE_HEADERS(AsmJvmExceptionTable);
12165#if defined(SgAsmJvmExceptionTable_HEADERS) || defined(DOCUMENTATION)
12166#include <sageContainer.h>
12167#endif // SgAsmJvmExceptionTable_HEADERS
12168
12169#ifdef DOCUMENTATION
12175#endif // DOCUMENTATION
12176
12177#ifndef DOCUMENTATION
12178 AsmJvmExceptionTable.setDataPrototype(
12179 "SgAsmJvmExceptionHandlerPtrList", "handlers", "",
12180 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12181#endif // !DOCUMENTATION
12182
12183 DECLARE_OTHERS(AsmJvmExceptionTable);
12184#if defined(SgAsmJvmExceptionTable_OTHERS) || defined(DOCUMENTATION)
12185
12186 //----------------------- Boost serialization for SgAsmJvmExceptionTable -----------------------
12187#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12188private:
12189 friend class boost::serialization::access;
12190
12191 template<class S>
12192 void serialize(S &s, const unsigned /*version*/) {
12193 debugSerializationBegin("SgAsmJvmExceptionTable");
12194 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
12195 s & BOOST_SERIALIZATION_NVP(p_handlers);
12196 debugSerializationEnd("SgAsmJvmExceptionTable");
12197 }
12198#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12199public:
12200public:
12204 SgAsmJvmExceptionHandlerPtrList const& get_handlers() const;
12205 SgAsmJvmExceptionHandlerPtrList& get_handlers();
12206 void set_handlers(SgAsmJvmExceptionHandlerPtrList const&);
12208public:
12213
12219
12221 virtual void unparse(std::ostream&) const override;
12222
12224 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12225public:
12228
12229public:
12232
12233protected:
12241#endif // SgAsmJvmExceptionTable_OTHERS
12242#ifdef DOCUMENTATION
12243};
12244#endif // DOCUMENTATION
12245
12246
12248// SgAsmJvmExceptions -- MACHINE GENERATED; DO NOT MODIFY --
12250
12251DECLARE_LEAF_CLASS(AsmJvmExceptions);
12252IS_SERIALIZABLE(AsmJvmExceptions);
12253
12254#ifndef DOCUMENTATION
12255AsmJvmExceptions.useSmallHeader(true);
12256#endif // !DOCUMENTATION
12257
12258DECLARE_HEADERS(AsmJvmExceptions);
12259#if defined(SgAsmJvmExceptions_HEADERS) || defined(DOCUMENTATION)
12260#include <sageContainer.h>
12261#endif // SgAsmJvmExceptions_HEADERS
12262
12263#ifdef DOCUMENTATION
12270#endif // DOCUMENTATION
12271
12272#ifndef DOCUMENTATION
12273 AsmJvmExceptions.setDataPrototype(
12274 "SgUnsigned16List", "exception_index_table", "",
12275 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12276#endif // !DOCUMENTATION
12277
12278 DECLARE_OTHERS(AsmJvmExceptions);
12279#if defined(SgAsmJvmExceptions_OTHERS) || defined(DOCUMENTATION)
12280
12281 //----------------------- Boost serialization for SgAsmJvmExceptions -----------------------
12282#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12283private:
12284 friend class boost::serialization::access;
12285
12286 template<class S>
12287 void serialize(S &s, const unsigned /*version*/) {
12288 debugSerializationBegin("SgAsmJvmExceptions");
12289 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12290 s & BOOST_SERIALIZATION_NVP(p_exception_index_table);
12291 debugSerializationEnd("SgAsmJvmExceptions");
12292 }
12293#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12294public:
12295public:
12303 SgUnsigned16List const& get_exception_index_table() const;
12304 void set_exception_index_table(SgUnsigned16List const&);
12306 public:
12311
12314
12316 virtual void unparse(std::ostream&) const override;
12317
12319 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12320public:
12323
12324public:
12327
12328protected:
12336#endif // SgAsmJvmExceptions_OTHERS
12337#ifdef DOCUMENTATION
12338};
12339#endif // DOCUMENTATION
12340
12341
12343// SgAsmJvmExceptionHandler -- MACHINE GENERATED; DO NOT MODIFY --
12345
12346DECLARE_LEAF_CLASS(AsmJvmExceptionHandler);
12347IS_SERIALIZABLE(AsmJvmExceptionHandler);
12348
12349#ifndef DOCUMENTATION
12350AsmJvmExceptionHandler.useSmallHeader(true);
12351#endif // !DOCUMENTATION
12352
12353#ifdef DOCUMENTATION
12358#endif // DOCUMENTATION
12359
12360#ifndef DOCUMENTATION
12361 AsmJvmExceptionHandler.setDataPrototype(
12362 "uint16_t", "start_pc", "= 0",
12363 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12364#endif // !DOCUMENTATION
12365
12366#ifndef DOCUMENTATION
12367 AsmJvmExceptionHandler.setDataPrototype(
12368 "uint16_t", "end_pc", "= 0",
12369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12370#endif // !DOCUMENTATION
12371
12372#ifndef DOCUMENTATION
12373 AsmJvmExceptionHandler.setDataPrototype(
12374 "uint16_t", "handler_pc", "= 0",
12375 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12376#endif // !DOCUMENTATION
12377
12378#ifndef DOCUMENTATION
12379 AsmJvmExceptionHandler.setDataPrototype(
12380 "uint16_t", "catch_type", "= 0",
12381 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12382#endif // !DOCUMENTATION
12383
12384 DECLARE_OTHERS(AsmJvmExceptionHandler);
12385#if defined(SgAsmJvmExceptionHandler_OTHERS) || defined(DOCUMENTATION)
12386
12387 //----------------------- Boost serialization for SgAsmJvmExceptionHandler -----------------------
12388#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12389private:
12390 friend class boost::serialization::access;
12391
12392 template<class S>
12393 void serialize(S &s, const unsigned /*version*/) {
12394 debugSerializationBegin("SgAsmJvmExceptionHandler");
12395 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
12396 s & BOOST_SERIALIZATION_NVP(p_start_pc);
12397 s & BOOST_SERIALIZATION_NVP(p_end_pc);
12398 s & BOOST_SERIALIZATION_NVP(p_handler_pc);
12399 s & BOOST_SERIALIZATION_NVP(p_catch_type);
12400 debugSerializationEnd("SgAsmJvmExceptionHandler");
12401 }
12402#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12403public:
12404public:
12411 uint16_t const& get_start_pc() const;
12412 void set_start_pc(uint16_t const&);
12415public:
12422 uint16_t const& get_end_pc() const;
12423 void set_end_pc(uint16_t const&);
12426public:
12433 uint16_t const& get_handler_pc() const;
12434 void set_handler_pc(uint16_t const&);
12437public:
12444 uint16_t const& get_catch_type() const;
12445 void set_catch_type(uint16_t const&);
12447 public:
12452
12455
12457 virtual void unparse(std::ostream&) const override;
12458
12460 void dump(FILE*, const char *prefix, ssize_t idx) const override;
12461public:
12464
12465public:
12468
12469protected:
12477#endif // SgAsmJvmExceptionHandler_OTHERS
12478#ifdef DOCUMENTATION
12479};
12480#endif // DOCUMENTATION
12481
12482
12484// SgAsmJvmEnclosingMethod -- MACHINE GENERATED; DO NOT MODIFY --
12486
12487DECLARE_LEAF_CLASS(AsmJvmEnclosingMethod);
12488IS_SERIALIZABLE(AsmJvmEnclosingMethod);
12489
12490#ifndef DOCUMENTATION
12491AsmJvmEnclosingMethod.useSmallHeader(true);
12492#endif // !DOCUMENTATION
12493
12494#ifdef DOCUMENTATION
12501#endif // DOCUMENTATION
12502
12503#ifndef DOCUMENTATION
12504 AsmJvmEnclosingMethod.setDataPrototype(
12505 "uint16_t", "class_index", "= 0",
12506 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12507#endif // !DOCUMENTATION
12508
12509#ifndef DOCUMENTATION
12510 AsmJvmEnclosingMethod.setDataPrototype(
12511 "uint16_t", "method_index", "= 0",
12512 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12513#endif // !DOCUMENTATION
12514
12515 DECLARE_OTHERS(AsmJvmEnclosingMethod);
12516#if defined(SgAsmJvmEnclosingMethod_OTHERS) || defined(DOCUMENTATION)
12517
12518 //----------------------- Boost serialization for SgAsmJvmEnclosingMethod -----------------------
12519#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12520private:
12521 friend class boost::serialization::access;
12522
12523 template<class S>
12524 void serialize(S &s, const unsigned /*version*/) {
12525 debugSerializationBegin("SgAsmJvmEnclosingMethod");
12526 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12527 s & BOOST_SERIALIZATION_NVP(p_class_index);
12528 s & BOOST_SERIALIZATION_NVP(p_method_index);
12529 debugSerializationEnd("SgAsmJvmEnclosingMethod");
12530 }
12531#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12532public:
12533public:
12539 uint16_t const& get_class_index() const;
12540 void set_class_index(uint16_t const&);
12543public:
12550 uint16_t const& get_method_index() const;
12551 void set_method_index(uint16_t const&);
12553public:
12558
12561
12563 virtual void unparse(std::ostream&) const override;
12564
12566 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12567public:
12570
12571public:
12574
12575protected:
12583#endif // SgAsmJvmEnclosingMethod_OTHERS
12584#ifdef DOCUMENTATION
12585};
12586#endif // DOCUMENTATION
12587
12588
12590// SgAsmJvmConstantValue -- MACHINE GENERATED; DO NOT MODIFY --
12592
12593DECLARE_LEAF_CLASS(AsmJvmConstantValue);
12594IS_SERIALIZABLE(AsmJvmConstantValue);
12595
12596#ifndef DOCUMENTATION
12597AsmJvmConstantValue.useSmallHeader(true);
12598#endif // !DOCUMENTATION
12599
12600#ifdef DOCUMENTATION
12606#endif // DOCUMENTATION
12607
12608#ifndef DOCUMENTATION
12609 AsmJvmConstantValue.setDataPrototype(
12610 "uint16_t", "constantvalue_index", "= 0",
12611 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12612#endif // !DOCUMENTATION
12613
12614 DECLARE_OTHERS(AsmJvmConstantValue);
12615#if defined(SgAsmJvmConstantValue_OTHERS) || defined(DOCUMENTATION)
12616
12617 //----------------------- Boost serialization for SgAsmJvmConstantValue -----------------------
12618#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12619private:
12620 friend class boost::serialization::access;
12621
12622 template<class S>
12623 void serialize(S &s, const unsigned /*version*/) {
12624 debugSerializationBegin("SgAsmJvmConstantValue");
12625 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12626 s & BOOST_SERIALIZATION_NVP(p_constantvalue_index);
12627 debugSerializationEnd("SgAsmJvmConstantValue");
12628 }
12629#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12630public:
12631public:
12637 uint16_t const& get_constantvalue_index() const;
12638 void set_constantvalue_index(uint16_t const&);
12640public:
12645
12648
12650 virtual void unparse(std::ostream&) const override;
12651
12653 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12654public:
12657
12658public:
12661
12662protected:
12670#endif // SgAsmJvmConstantValue_OTHERS
12671#ifdef DOCUMENTATION
12672};
12673#endif // DOCUMENTATION
12674
12675
12677// SgAsmJvmConstantPool -- MACHINE GENERATED; DO NOT MODIFY --
12679
12680DECLARE_LEAF_CLASS(AsmJvmConstantPool);
12681IS_SERIALIZABLE(AsmJvmConstantPool);
12682
12683#ifndef DOCUMENTATION
12684AsmJvmConstantPool.useSmallHeader(true);
12685#endif // !DOCUMENTATION
12686
12687#ifdef DOCUMENTATION
12694#endif // DOCUMENTATION
12695
12696#ifndef DOCUMENTATION
12697 AsmJvmConstantPool.setDataPrototype(
12698 "SgAsmJvmConstantPoolEntryPtrList", "entries", "",
12699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12700#endif // !DOCUMENTATION
12701
12702 DECLARE_OTHERS(AsmJvmConstantPool);
12703#if defined(SgAsmJvmConstantPool_OTHERS) || defined(DOCUMENTATION)
12704
12705 //----------------------- Boost serialization for SgAsmJvmConstantPool -----------------------
12706#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12707private:
12708 friend class boost::serialization::access;
12709
12710 template<class S>
12711 void serialize(S &s, const unsigned /*version*/) {
12712 debugSerializationBegin("SgAsmJvmConstantPool");
12713 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
12714 s & BOOST_SERIALIZATION_NVP(p_entries);
12715 debugSerializationEnd("SgAsmJvmConstantPool");
12716 }
12717#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12718public:
12719public:
12723 SgAsmJvmConstantPoolEntryPtrList const& get_entries() const;
12724 SgAsmJvmConstantPoolEntryPtrList& get_entries();
12725 void set_entries(SgAsmJvmConstantPoolEntryPtrList const&);
12727public:
12730
12736 virtual SgAsmJvmConstantPool* parse() override;
12737
12750 std::string get_utf8_string(size_t index) const;
12751
12753 virtual void unparse(std::ostream&) const override;
12754
12756 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12757
12758protected:
12759 // Some extra clean-up actions on destruction
12760 virtual void destructorHelper() override;
12761public:
12764
12765public:
12768
12769protected:
12777#endif // SgAsmJvmConstantPool_OTHERS
12778#ifdef DOCUMENTATION
12779};
12780#endif // DOCUMENTATION
12781
12782
12784// SgAsmJvmConstantPoolEntry -- MACHINE GENERATED; DO NOT MODIFY --
12786
12787DECLARE_LEAF_CLASS(AsmJvmConstantPoolEntry);
12788IS_SERIALIZABLE(AsmJvmConstantPoolEntry);
12789
12790#ifndef DOCUMENTATION
12791AsmJvmConstantPoolEntry.useSmallHeader(true);
12792#endif // !DOCUMENTATION
12793
12794#ifdef DOCUMENTATION
12800#endif // DOCUMENTATION
12801
12802#ifndef DOCUMENTATION
12803 AsmJvmConstantPoolEntry.setDataPrototype(
12804 "SgAsmJvmConstantPoolEntry::Kind", "tag", "= SgAsmJvmConstantPoolEntry::EMPTY",
12805 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12806#endif // !DOCUMENTATION
12807
12808#ifndef DOCUMENTATION
12809 AsmJvmConstantPoolEntry.setDataPrototype(
12810 "uint32_t", "bytes", "= 0",
12811 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12812#endif // !DOCUMENTATION
12813
12814#ifndef DOCUMENTATION
12815 AsmJvmConstantPoolEntry.setDataPrototype(
12816 "uint32_t", "hi_bytes", "= 0",
12817 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12818#endif // !DOCUMENTATION
12819
12820#ifndef DOCUMENTATION
12821 AsmJvmConstantPoolEntry.setDataPrototype(
12822 "uint32_t", "low_bytes", "= 0",
12823 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12824#endif // !DOCUMENTATION
12825
12826#ifndef DOCUMENTATION
12827 AsmJvmConstantPoolEntry.setDataPrototype(
12828 "uint16_t", "bootstrap_method_attr_index", "= 0",
12829 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12830#endif // !DOCUMENTATION
12831
12832#ifndef DOCUMENTATION
12833 AsmJvmConstantPoolEntry.setDataPrototype(
12834 "uint16_t", "class_index", "= 0",
12835 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12836#endif // !DOCUMENTATION
12837
12838#ifndef DOCUMENTATION
12839 AsmJvmConstantPoolEntry.setDataPrototype(
12840 "uint16_t", "descriptor_index", "= 0",
12841 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12842#endif // !DOCUMENTATION
12843
12844#ifndef DOCUMENTATION
12845 AsmJvmConstantPoolEntry.setDataPrototype(
12846 "uint16_t", "name_index", "= 0",
12847 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12848#endif // !DOCUMENTATION
12849
12850#ifndef DOCUMENTATION
12851 AsmJvmConstantPoolEntry.setDataPrototype(
12852 "uint16_t", "name_and_type_index", "= 0",
12853 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12854#endif // !DOCUMENTATION
12855
12856#ifndef DOCUMENTATION
12857 AsmJvmConstantPoolEntry.setDataPrototype(
12858 "uint16_t", "reference_index", "= 0",
12859 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12860#endif // !DOCUMENTATION
12861
12862#ifndef DOCUMENTATION
12863 AsmJvmConstantPoolEntry.setDataPrototype(
12864 "uint8_t", "reference_kind", "= 0",
12865 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12866#endif // !DOCUMENTATION
12867
12868#ifndef DOCUMENTATION
12869 AsmJvmConstantPoolEntry.setDataPrototype(
12870 "uint16_t", "string_index", "= 0",
12871 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12872#endif // !DOCUMENTATION
12873
12874#ifndef DOCUMENTATION
12875 AsmJvmConstantPoolEntry.setDataPrototype(
12876 "uint16_t", "length", "= 0",
12877 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12878#endif // !DOCUMENTATION
12879
12880#ifndef DOCUMENTATION
12881 AsmJvmConstantPoolEntry.setDataPrototype(
12882 "char*", "utf8_bytes", "= nullptr",
12883 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12884#endif // !DOCUMENTATION
12885
12886 DECLARE_OTHERS(AsmJvmConstantPoolEntry);
12887#if defined(SgAsmJvmConstantPoolEntry_OTHERS) || defined(DOCUMENTATION)
12888
12889 //----------------------- Boost serialization for SgAsmJvmConstantPoolEntry -----------------------
12890#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
12891private:
12892 friend class boost::serialization::access;
12893
12894 template<class S>
12895 void serialize(S &s, const unsigned /*version*/) {
12896 debugSerializationBegin("SgAsmJvmConstantPoolEntry");
12897 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
12898 s & BOOST_SERIALIZATION_NVP(p_tag);
12899 s & BOOST_SERIALIZATION_NVP(p_bytes);
12900 s & BOOST_SERIALIZATION_NVP(p_hi_bytes);
12901 s & BOOST_SERIALIZATION_NVP(p_low_bytes);
12902 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_attr_index);
12903 s & BOOST_SERIALIZATION_NVP(p_class_index);
12904 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
12905 s & BOOST_SERIALIZATION_NVP(p_name_index);
12906 s & BOOST_SERIALIZATION_NVP(p_name_and_type_index);
12907 s & BOOST_SERIALIZATION_NVP(p_reference_index);
12908 s & BOOST_SERIALIZATION_NVP(p_reference_kind);
12909 s & BOOST_SERIALIZATION_NVP(p_string_index);
12910 s & BOOST_SERIALIZATION_NVP(p_length);
12911 debugSerializationEnd("SgAsmJvmConstantPoolEntry");
12912 }
12913#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
12915 // Local types
12917public:
12922 enum Kind {
12923 EMPTY = 0,
12924 CONSTANT_Utf8 = 1,
12925 CONSTANT_Integer = 3,
12926 CONSTANT_Float = 4,
12927 CONSTANT_Long = 5,
12928 CONSTANT_Double = 6,
12929 CONSTANT_Class = 7,
12930 CONSTANT_String = 8,
12931 CONSTANT_Fieldref = 9,
12932 CONSTANT_Methodref = 10,
12933 CONSTANT_InterfaceMethodref = 11,
12934 CONSTANT_NameAndType = 12,
12935 CONSTANT_MethodHandle = 15,
12936 CONSTANT_MethodType = 16,
12937 CONSTANT_Dynamic = 17,
12938 CONSTANT_InvokeDynamic = 18,
12939 CONSTANT_Module = 19,
12940 CONSTANT_Package = 20
12941 };
12942
12943#ifdef DOCUMENTATION
12947#endif
12950 uint8_t tag;
12951 uint16_t name_index;
12952 };
12953
12957 uint8_t tag;
12958 uint16_t class_index;
12959 uint16_t name_and_type_index;
12960 };
12962 uint8_t tag;
12963 uint16_t class_index;
12964 uint16_t name_and_type_index;
12965 };
12967 uint8_t tag;
12968 uint16_t class_index;
12969 uint16_t name_and_type_index;
12970 };
12971
12974 uint8_t tag;
12975 uint16_t string_index;
12976 };
12977
12980 uint8_t tag;
12981 uint32_t bytes;
12982 };
12984 uint8_t tag;
12985 uint32_t bytes;
12986 };
12988 uint8_t tag;
12989 uint32_t hi_bytes;
12990 uint32_t low_bytes;
12991 };
12993 uint8_t tag;
12994 uint32_t hi_bytes;
12995 uint32_t low_bytes;
12996 };
12997
13000 uint8_t tag;
13001 uint16_t name_index;
13002 uint16_t descriptor_index;
13003 };
13004
13007 uint8_t tag;
13008 uint16_t length;
13009 uint8_t* bytes;
13010 };
13011
13014 uint8_t tag;
13015 uint8_t reference_kind;
13016 uint16_t reference_index;
13017 };
13018
13021 uint8_t tag;
13022 uint16_t descriptor_index;
13023 };
13024
13027 uint8_t tag;
13028 uint16_t bootstrap_method_attr_index;
13029 uint16_t name_and_type_index;
13030 };
13032 uint8_t tag;
13033 uint16_t bootstrap_method_attr_index;
13034 uint16_t name_and_type_index;
13035 };
13036
13039 uint8_t tag;
13040 uint16_t name_index;
13041 };
13042
13045 uint8_t tag;
13046 uint16_t name_index;
13047 };
13048
13050 // Properties
13052public:
13053public:
13063public:
13070 uint32_t const& get_bytes() const;
13071 void set_bytes(uint32_t const&);
13074public:
13082 uint32_t const& get_hi_bytes() const;
13083 void set_hi_bytes(uint32_t const&);
13086public:
13094 uint32_t const& get_low_bytes() const;
13095 void set_low_bytes(uint32_t const&);
13098public:
13105 uint16_t const& get_bootstrap_method_attr_index() const;
13106 void set_bootstrap_method_attr_index(uint16_t const&);
13109public:
13116 uint16_t const& get_class_index() const;
13117 void set_class_index(uint16_t const&);
13120public:
13127 uint16_t const& get_descriptor_index() const;
13128 void set_descriptor_index(uint16_t const&);
13131public:
13138 uint16_t const& get_name_index() const;
13139 void set_name_index(uint16_t const&);
13142public:
13150 uint16_t const& get_name_and_type_index() const;
13151 void set_name_and_type_index(uint16_t const&);
13154public:
13161 uint16_t const& get_reference_index() const;
13162 void set_reference_index(uint16_t const&);
13165public:
13172 uint8_t const& get_reference_kind() const;
13173 void set_reference_kind(uint8_t const&);
13176public:
13183 uint16_t const& get_string_index() const;
13184 void set_string_index(uint16_t const&);
13187public:
13194 uint16_t const& get_length() const;
13195 void set_length(uint16_t const&);
13197 // [Robb Matzke 2023-03-22]: I (and the serialization) have no idea what this points to, and therefore it cannot be
13198 // serialized. E.g., how many 'chars' should be serialized? Is the length stored in the `length` property? If so, `utf8_bytes`
13199 // should probably be an std::vector instead, which is a serializable thing. Furthermore, the data member cannot be 'const'
13200 // because that prevents it from being initialized by some de-serialization mechanisms (e.g., boost::serialize creates a default
13201 // constructed object and then fills it in).
13202public:
13208 char* const& get_utf8_bytes() const;
13209 void set_utf8_bytes(char* const&);
13212 // Functions
13214public:
13217
13225 virtual void unparse(std::ostream&) const override;
13226
13228 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13229
13232public:
13235
13236public:
13239
13240protected:
13248#endif // SgAsmJvmConstantPoolEntry_OTHERS
13249#ifdef DOCUMENTATION
13250};
13251#endif // DOCUMENTATION
13252
13253
13255// SgAsmJvmCodeAttribute -- MACHINE GENERATED; DO NOT MODIFY --
13257
13258DECLARE_LEAF_CLASS(AsmJvmCodeAttribute);
13259IS_SERIALIZABLE(AsmJvmCodeAttribute);
13260
13261#ifndef DOCUMENTATION
13262AsmJvmCodeAttribute.useSmallHeader(true);
13263#endif // !DOCUMENTATION
13264
13265#ifdef DOCUMENTATION
13272#endif // DOCUMENTATION
13273
13274#ifndef DOCUMENTATION
13275 AsmJvmCodeAttribute.setDataPrototype(
13276 "uint16_t", "max_stack", "= 0",
13277 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13278#endif // !DOCUMENTATION
13279
13280#ifndef DOCUMENTATION
13281 AsmJvmCodeAttribute.setDataPrototype(
13282 "uint16_t", "max_locals", "= 0",
13283 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13284#endif // !DOCUMENTATION
13285
13286#ifndef DOCUMENTATION
13287 AsmJvmCodeAttribute.setDataPrototype(
13288 "uint32_t", "code_length", "= 0",
13289 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13290#endif // !DOCUMENTATION
13291
13292#ifndef DOCUMENTATION
13293 AsmJvmCodeAttribute.setDataPrototype(
13294 "const char*", "code", "= nullptr",
13295 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13296#endif // !DOCUMENTATION
13297
13298#ifndef DOCUMENTATION
13299 AsmJvmCodeAttribute.setDataPrototype(
13300 "SgAsmJvmExceptionTable*", "exception_table", "= nullptr",
13301 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13302#endif // !DOCUMENTATION
13303
13304#ifndef DOCUMENTATION
13305 AsmJvmCodeAttribute.setDataPrototype(
13306 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
13307 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13308#endif // !DOCUMENTATION
13309
13310#ifndef DOCUMENTATION
13311 AsmJvmCodeAttribute.setDataPrototype(
13312 "rose_addr_t", "code_offset", "= 0",
13313 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13314#endif // !DOCUMENTATION
13315
13316 DECLARE_OTHERS(AsmJvmCodeAttribute);
13317#if defined(SgAsmJvmCodeAttribute_OTHERS) || defined(DOCUMENTATION)
13318
13319 //----------------------- Boost serialization for SgAsmJvmCodeAttribute -----------------------
13320#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
13321private:
13322 friend class boost::serialization::access;
13323
13324 template<class S>
13325 void serialize(S &s, const unsigned /*version*/) {
13326 debugSerializationBegin("SgAsmJvmCodeAttribute");
13327 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
13328 s & BOOST_SERIALIZATION_NVP(p_max_stack);
13329 s & BOOST_SERIALIZATION_NVP(p_max_locals);
13330 s & BOOST_SERIALIZATION_NVP(p_code_length);
13331 s & BOOST_SERIALIZATION_NVP(p_exception_table);
13332 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
13333 s & BOOST_SERIALIZATION_NVP(p_code_offset);
13334 debugSerializationEnd("SgAsmJvmCodeAttribute");
13335 }
13336#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
13337public:
13338public:
13345 uint16_t const& get_max_stack() const;
13346 void set_max_stack(uint16_t const&);
13349public:
13356 uint16_t const& get_max_locals() const;
13357 void set_max_locals(uint16_t const&);
13360public:
13367 uint32_t const& get_code_length() const;
13368 void set_code_length(uint32_t const&);
13370 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
13371public:
13377 const char* const& get_code() const;
13378 void set_code(const char* const&);
13381public:
13391public:
13401public:
13408 rose_addr_t const& get_code_offset() const;
13409 void set_code_offset(rose_addr_t const&);
13411public:
13416
13419
13421 virtual void unparse(std::ostream&) const override;
13422
13424 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13425public:
13428
13429public:
13432
13433protected:
13441#endif // SgAsmJvmCodeAttribute_OTHERS
13442#ifdef DOCUMENTATION
13443};
13444#endif // DOCUMENTATION
13445
13446
13448// SgAsmJvmClass -- MACHINE GENERATED; DO NOT MODIFY --
13450
13451DECLARE_LEAF_CLASS(AsmJvmClass);
13452IS_SERIALIZABLE(AsmJvmClass);
13453
13454#ifndef DOCUMENTATION
13455AsmJvmClass.useSmallHeader(true);
13456#endif // !DOCUMENTATION
13457
13458#ifdef DOCUMENTATION
13463#endif // DOCUMENTATION
13464
13465 DECLARE_OTHERS(AsmJvmClass);
13466#if defined(SgAsmJvmClass_OTHERS) || defined(DOCUMENTATION)
13467
13468 //----------------------- Boost serialization for SgAsmJvmClass -----------------------
13469#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
13470private:
13471 friend class boost::serialization::access;
13472
13473 template<class S>
13474 void serialize(S &s, const unsigned /*version*/) {
13475 debugSerializationBegin("SgAsmJvmClass");
13476 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13477 debugSerializationEnd("SgAsmJvmClass");
13478 }
13479#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
13480
13481public:
13484
13485public:
13488
13489protected:
13497#endif // SgAsmJvmClass_OTHERS
13498#ifdef DOCUMENTATION
13499};
13500#endif // DOCUMENTATION
13501
13502
13504// SgAsmJvmBootstrapMethods -- MACHINE GENERATED; DO NOT MODIFY --
13506
13507DECLARE_LEAF_CLASS(AsmJvmBootstrapMethods);
13508IS_SERIALIZABLE(AsmJvmBootstrapMethods);
13509
13510#ifndef DOCUMENTATION
13511AsmJvmBootstrapMethods.useSmallHeader(true);
13512#endif // !DOCUMENTATION
13513
13514DECLARE_HEADERS(AsmJvmBootstrapMethods);
13515#if defined(SgAsmJvmBootstrapMethods_HEADERS) || defined(DOCUMENTATION)
13516#include <sageContainer.h>
13517#endif // SgAsmJvmBootstrapMethods_HEADERS
13518
13519#ifdef DOCUMENTATION
13525#endif // DOCUMENTATION
13526
13527#ifndef DOCUMENTATION
13528 AsmJvmBootstrapMethods.setDataPrototype(
13529 "SgAsmJvmBootstrapMethodPtrList", "bootstrap_methods", "",
13530 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13531#endif // !DOCUMENTATION
13532
13533 DECLARE_OTHERS(AsmJvmBootstrapMethods);
13534#if defined(SgAsmJvmBootstrapMethods_OTHERS) || defined(DOCUMENTATION)
13535
13536 //----------------------- Boost serialization for SgAsmJvmBootstrapMethods -----------------------
13537#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
13538private:
13539 friend class boost::serialization::access;
13540
13541 template<class S>
13542 void serialize(S &s, const unsigned /*version*/) {
13543 debugSerializationBegin("SgAsmJvmBootstrapMethods");
13544 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
13545 s & BOOST_SERIALIZATION_NVP(p_bootstrap_methods);
13546 debugSerializationEnd("SgAsmJvmBootstrapMethods");
13547 }
13548#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
13550 // Properties
13552public:
13553public:
13557 SgAsmJvmBootstrapMethodPtrList const& get_bootstrap_methods() const;
13558 SgAsmJvmBootstrapMethodPtrList& get_bootstrap_methods();
13559 void set_bootstrap_methods(SgAsmJvmBootstrapMethodPtrList const&);
13562 // Functions
13564public:
13569
13572
13574 virtual void unparse(std::ostream&) const override;
13575
13577 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13578public:
13581
13582public:
13585
13586protected:
13594#endif // SgAsmJvmBootstrapMethods_OTHERS
13595#ifdef DOCUMENTATION
13596};
13597#endif // DOCUMENTATION
13598
13599
13601// SgAsmJvmBootstrapMethod -- MACHINE GENERATED; DO NOT MODIFY --
13603
13604DECLARE_LEAF_CLASS(AsmJvmBootstrapMethod);
13605IS_SERIALIZABLE(AsmJvmBootstrapMethod);
13606
13607#ifndef DOCUMENTATION
13608AsmJvmBootstrapMethod.useSmallHeader(true);
13609#endif // !DOCUMENTATION
13610
13611DECLARE_HEADERS(AsmJvmBootstrapMethod);
13612#if defined(SgAsmJvmBootstrapMethod_HEADERS) || defined(DOCUMENTATION)
13613#include <sageContainer.h>
13614#endif // SgAsmJvmBootstrapMethod_HEADERS
13615
13616#ifdef DOCUMENTATION
13623#endif // DOCUMENTATION
13624
13625#ifndef DOCUMENTATION
13626 AsmJvmBootstrapMethod.setDataPrototype(
13627 "uint16_t", "bootstrap_method_ref", "= 0",
13628 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13629#endif // !DOCUMENTATION
13630
13631#ifndef DOCUMENTATION
13632 AsmJvmBootstrapMethod.setDataPrototype(
13633 "SgUnsigned16List", "bootstrap_arguments", "",
13634 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13635#endif // !DOCUMENTATION
13636
13637 DECLARE_OTHERS(AsmJvmBootstrapMethod);
13638#if defined(SgAsmJvmBootstrapMethod_OTHERS) || defined(DOCUMENTATION)
13639
13640 //----------------------- Boost serialization for SgAsmJvmBootstrapMethod -----------------------
13641#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
13642private:
13643 friend class boost::serialization::access;
13644
13645 template<class S>
13646 void serialize(S &s, const unsigned /*version*/) {
13647 debugSerializationBegin("SgAsmJvmBootstrapMethod");
13648 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13649 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_ref);
13650 s & BOOST_SERIALIZATION_NVP(p_bootstrap_arguments);
13651 debugSerializationEnd("SgAsmJvmBootstrapMethod");
13652 }
13653#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
13654public:
13655public:
13662 uint16_t const& get_bootstrap_method_ref() const;
13663 void set_bootstrap_method_ref(uint16_t const&);
13666public:
13673 SgUnsigned16List const& get_bootstrap_arguments() const;
13674 void set_bootstrap_arguments(SgUnsigned16List const&);
13676 public:
13681
13684
13686 virtual void unparse(std::ostream&) const override;
13687
13689 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13690public:
13693
13694public:
13697
13698protected:
13706#endif // SgAsmJvmBootstrapMethod_OTHERS
13707#ifdef DOCUMENTATION
13708};
13709#endif // DOCUMENTATION
13710
13711
13713// SgAsmJvmAttributeTable -- MACHINE GENERATED; DO NOT MODIFY --
13715
13716DECLARE_LEAF_CLASS(AsmJvmAttributeTable);
13717IS_SERIALIZABLE(AsmJvmAttributeTable);
13718
13719#ifndef DOCUMENTATION
13720AsmJvmAttributeTable.useSmallHeader(true);
13721#endif // !DOCUMENTATION
13722
13723#ifdef DOCUMENTATION
13730#endif // DOCUMENTATION
13731
13732#ifndef DOCUMENTATION
13733 AsmJvmAttributeTable.setDataPrototype(
13734 "SgAsmJvmAttributePtrList", "attributes", "",
13735 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
13736#endif // !DOCUMENTATION
13737
13738 DECLARE_OTHERS(AsmJvmAttributeTable);
13739#if defined(SgAsmJvmAttributeTable_OTHERS) || defined(DOCUMENTATION)
13740
13741 //----------------------- Boost serialization for SgAsmJvmAttributeTable -----------------------
13742#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
13743private:
13744 friend class boost::serialization::access;
13745
13746 template<class S>
13747 void serialize(S &s, const unsigned /*version*/) {
13748 debugSerializationBegin("SgAsmJvmAttributeTable");
13749 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
13750 s & BOOST_SERIALIZATION_NVP(p_attributes);
13751 debugSerializationEnd("SgAsmJvmAttributeTable");
13752 }
13753#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
13754public:
13755public:
13759 SgAsmJvmAttributePtrList const& get_attributes() const;
13760 SgAsmJvmAttributePtrList& get_attributes();
13761 void set_attributes(SgAsmJvmAttributePtrList const&);
13763public:
13768
13773 using SgAsmGenericSection::parse; // Removes warning messages on some compilers
13774 // ("hidden virtual overloaded function")
13776
13778 virtual void unparse(std::ostream&) const override;
13779
13781 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13782public:
13785
13786public:
13789
13790protected:
13798#endif // SgAsmJvmAttributeTable_OTHERS
13799#ifdef DOCUMENTATION
13800};
13801#endif // DOCUMENTATION
13802
13803
13805// SgAsmJvmAttribute -- MACHINE GENERATED; DO NOT MODIFY --
13807
13808#ifndef DOCUMENTATION
13809AstNodeClass& AsmJvmAttribute = nonTerminalConstructor(
13810 "AsmJvmAttribute",
13811 *this,
13812 "AsmJvmAttribute",
13813 "AsmJvmAttributeTag",
13814 SubclassListBuilder()
13815 | AsmJvmBootstrapMethods
13816 | AsmJvmCodeAttribute
13817 | AsmJvmConstantValue
13818 | AsmJvmEnclosingMethod
13819 | AsmJvmExceptions
13820 | AsmJvmInnerClasses
13821 | AsmJvmLineNumberTable
13822 | AsmJvmLocalVariableTable
13823 | AsmJvmLocalVariableTypeTable
13824 | AsmJvmMethodParameters
13825 | AsmJvmModuleMainClass
13826 | AsmJvmNestHost
13827 | AsmJvmNestMembers
13828 | AsmJvmSignature
13829 | AsmJvmSourceFile
13830 | AsmJvmStackMapTable
13831 , false);
13832assert(AsmJvmAttribute.associatedGrammar != nullptr);
13833AsmJvmAttribute.setCppCondition("!defined(DOCUMENTATION)");
13834AsmJvmAttribute.isBoostSerializable(true);
13835AsmJvmAttribute.setAutomaticGenerationOfConstructor(false);
13836AsmJvmAttribute.setAutomaticGenerationOfDestructor(false);
13837#endif // !DOCUMENTATION
13838
13839#ifndef DOCUMENTATION
13840AsmJvmAttribute.useSmallHeader(true);
13841#endif // !DOCUMENTATION
13842
13843#ifdef DOCUMENTATION
13846#endif // DOCUMENTATION
13847
13848#ifndef DOCUMENTATION
13849 AsmJvmAttribute.setDataPrototype(
13850 "uint16_t", "attribute_name_index", "= 0",
13851 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13852#endif // !DOCUMENTATION
13853
13854#ifndef DOCUMENTATION
13855 AsmJvmAttribute.setDataPrototype(
13856 "uint32_t", "attribute_length", "= 0",
13857 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13858#endif // !DOCUMENTATION
13859
13860 DECLARE_OTHERS(AsmJvmAttribute);
13861#if defined(SgAsmJvmAttribute_OTHERS) || defined(DOCUMENTATION)
13862
13863 //----------------------- Boost serialization for SgAsmJvmAttribute -----------------------
13864#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
13865private:
13866 friend class boost::serialization::access;
13867
13868 template<class S>
13869 void serialize(S &s, const unsigned /*version*/) {
13870 debugSerializationBegin("SgAsmJvmAttribute");
13871 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13872 s & BOOST_SERIALIZATION_NVP(p_attribute_name_index);
13873 s & BOOST_SERIALIZATION_NVP(p_attribute_length);
13874 debugSerializationEnd("SgAsmJvmAttribute");
13875 }
13876#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
13877public:
13878public:
13884 uint16_t const& get_attribute_name_index() const;
13885 void set_attribute_name_index(uint16_t const&);
13888public:
13895 uint32_t const& get_attribute_length() const;
13896 void set_attribute_length(uint32_t const&);
13898public:
13901
13904
13906 virtual void unparse(std::ostream&) const override;
13907
13909 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13910public:
13913
13914protected:
13917
13918protected:
13926#endif // SgAsmJvmAttribute_OTHERS
13927#ifdef DOCUMENTATION
13928};
13929#endif // DOCUMENTATION
13930
13931
13933// SgAsmJvmNode -- MACHINE GENERATED; DO NOT MODIFY --
13935
13936#ifndef DOCUMENTATION
13937AstNodeClass& AsmJvmNode = nonTerminalConstructor(
13938 "AsmJvmNode",
13939 *this,
13940 "AsmJvmNode",
13941 "AsmJvmNodeTag",
13942 SubclassListBuilder()
13943 | AsmJvmAttribute
13944 | AsmJvmBootstrapMethod
13945 | AsmJvmClass
13946 | AsmJvmConstantPoolEntry
13947 | AsmJvmExceptionHandler
13948 | AsmJvmExceptionTable
13949 | AsmJvmField
13950 | AsmJvmInnerClassesEntry
13951 | AsmJvmLineNumberEntry
13952 | AsmJvmLocalVariableEntry
13953 | AsmJvmLocalVariableTypeEntry
13954 | AsmJvmMethod
13955 | AsmJvmMethodParametersEntry
13956 | AsmJvmStackMapFrame
13957 | AsmJvmStackMapVerificationType
13958 , false);
13959assert(AsmJvmNode.associatedGrammar != nullptr);
13960AsmJvmNode.setCppCondition("!defined(DOCUMENTATION)");
13961AsmJvmNode.isBoostSerializable(true);
13962AsmJvmNode.setAutomaticGenerationOfConstructor(false);
13963AsmJvmNode.setAutomaticGenerationOfDestructor(false);
13964#endif // !DOCUMENTATION
13965
13966#ifndef DOCUMENTATION
13967AsmJvmNode.useSmallHeader(true);
13968#endif // !DOCUMENTATION
13969
13970#ifdef DOCUMENTATION
13973#endif // DOCUMENTATION
13974
13975 DECLARE_OTHERS(AsmJvmNode);
13976#if defined(SgAsmJvmNode_OTHERS) || defined(DOCUMENTATION)
13977
13978 //----------------------- Boost serialization for SgAsmJvmNode -----------------------
13979#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
13980private:
13981 friend class boost::serialization::access;
13982
13983 template<class S>
13984 void serialize(S &s, const unsigned /*version*/) {
13985 debugSerializationBegin("SgAsmJvmNode");
13986 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
13987 debugSerializationEnd("SgAsmJvmNode");
13988 }
13989#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
13990public:
13992 virtual void unparse(std::ostream&) const;
13993
13995 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
13996public:
13998 virtual ~SgAsmJvmNode();
13999
14000protected:
14003
14004protected:
14012#endif // SgAsmJvmNode_OTHERS
14013#ifdef DOCUMENTATION
14014};
14015#endif // DOCUMENTATION
14016
14017
14019// SgAsmInterpretationList -- MACHINE GENERATED; DO NOT MODIFY --
14021
14022DECLARE_LEAF_CLASS(AsmInterpretationList);
14023IS_SERIALIZABLE(AsmInterpretationList);
14024
14025#ifndef DOCUMENTATION
14026AsmInterpretationList.useSmallHeader(true);
14027#endif // !DOCUMENTATION
14028
14029DECLARE_HEADERS(AsmInterpretationList);
14030#if defined(SgAsmInterpretationList_HEADERS) || defined(DOCUMENTATION)
14031#include <sageContainer.h>
14032#endif // SgAsmInterpretationList_HEADERS
14033
14034#ifdef DOCUMENTATION
14036#endif // DOCUMENTATION
14037
14038#ifndef DOCUMENTATION
14039 AsmInterpretationList.setDataPrototype(
14040 "SgAsmInterpretationPtrList", "interpretations", "",
14041 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14042#endif // !DOCUMENTATION
14043
14044 DECLARE_OTHERS(AsmInterpretationList);
14045#if defined(SgAsmInterpretationList_OTHERS) || defined(DOCUMENTATION)
14046
14047 //----------------------- Boost serialization for SgAsmInterpretationList -----------------------
14048#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14049private:
14050 friend class boost::serialization::access;
14051
14052 template<class S>
14053 void serialize(S &s, const unsigned /*version*/) {
14054 debugSerializationBegin("SgAsmInterpretationList");
14055 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14056 s & BOOST_SERIALIZATION_NVP(p_interpretations);
14057 debugSerializationEnd("SgAsmInterpretationList");
14058 }
14059#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14060public:
14061public:
14068 SgAsmInterpretationPtrList const& get_interpretations() const;
14069 SgAsmInterpretationPtrList& get_interpretations();
14070 void set_interpretations(SgAsmInterpretationPtrList const&);
14073public:
14076
14077public:
14080
14081protected:
14089#endif // SgAsmInterpretationList_OTHERS
14090#ifdef DOCUMENTATION
14091};
14092#endif // DOCUMENTATION
14093
14094
14096// SgAsmInterpretation -- MACHINE GENERATED; DO NOT MODIFY --
14098
14099DECLARE_LEAF_CLASS(AsmInterpretation);
14100IS_SERIALIZABLE(AsmInterpretation);
14101
14102#ifndef DOCUMENTATION
14103AsmInterpretation.useSmallHeader(true);
14104#endif // !DOCUMENTATION
14105
14106DECLARE_HEADERS(AsmInterpretation);
14107#if defined(SgAsmInterpretation_HEADERS) || defined(DOCUMENTATION)
14108#include <Rose/BinaryAnalysis/BasicTypes.h>
14109#include <Rose/BinaryAnalysis/InstructionMap.h>
14110#include <Rose/BinaryAnalysis/MemoryMap.h>
14111
14112#ifdef ROSE_SgAsmInterpretation_IMPL
14113#include <SgAsmBlock.h>
14114#include <SgAsmGenericHeaderList.h>
14115#endif
14116#endif // SgAsmInterpretation_HEADERS
14117
14118#ifdef DOCUMENTATION
14126#endif // DOCUMENTATION
14127
14128#ifndef DOCUMENTATION
14129 AsmInterpretation.setDataPrototype(
14130 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
14131 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14132#endif // !DOCUMENTATION
14133
14134#ifndef DOCUMENTATION
14135 AsmInterpretation.setDataPrototype(
14136 "SgAsmBlock*", "globalBlock", "= nullptr",
14137 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14138#endif // !DOCUMENTATION
14139
14140#ifndef DOCUMENTATION
14141 AsmInterpretation.setDataPrototype(
14142 "bool", "coverageComputed", "= false",
14143 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14144#endif // !DOCUMENTATION
14145
14146#ifndef DOCUMENTATION
14147 AsmInterpretation.setDataPrototype(
14148 "double", "percentageCoverage", "= NAN",
14149 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14150#endif // !DOCUMENTATION
14151
14152 DECLARE_OTHERS(AsmInterpretation);
14153#if defined(SgAsmInterpretation_OTHERS) || defined(DOCUMENTATION)
14154
14155 //----------------------- Boost serialization for SgAsmInterpretation -----------------------
14156#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14157private:
14158 friend class boost::serialization::access;
14159
14160 template<class S>
14161 void serialize(S &s, const unsigned /*version*/) {
14162 debugSerializationBegin("SgAsmInterpretation");
14163 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14164 s & BOOST_SERIALIZATION_NVP(p_headers);
14165 s & BOOST_SERIALIZATION_NVP(p_globalBlock);
14166 s & BOOST_SERIALIZATION_NVP(p_map);
14167 s & BOOST_SERIALIZATION_NVP(instruction_map);
14168 s & BOOST_SERIALIZATION_NVP(p_coverageComputed);
14169 s & BOOST_SERIALIZATION_NVP(p_percentageCoverage);
14170 debugSerializationEnd("SgAsmInterpretation");
14171 }
14172#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14173public:
14174public:
14187public:
14196 // ROSETTA doesn't understand this type, but we want this treated like a property whose data member name is "p_map"
14197 // and which has automatically generator accessors and mutators named "get_map" and "set_map" and is serialized.
14198private:
14200
14201public:
14210 // ROSETTA doesn't understand this type, but we want it serialized. Therfore, we'll define it as a property, but we'll
14211 // supply our own accessor and no mutator.
14212private:
14213 mutable Rose::BinaryAnalysis::InstructionMap instruction_map;
14214
14215public:
14223 // cached instruction map
14224
14228public:
14236 bool const& get_coverageComputed() const;
14237 void set_coverageComputed(bool const&);
14240public:
14247 double const& get_percentageCoverage() const;
14248 void set_percentageCoverage(double const&);
14250public:
14255 SgAsmGenericFilePtrList get_files() const;
14256
14262
14268
14270 // Deprecated 2023-11
14272public:
14273 SgAsmBlock* get_global_block() const ROSE_DEPRECATED("use get_globalBlock");
14274 void set_global_block(SgAsmBlock*) ROSE_DEPRECATED("use set_globalBlock");
14275 Rose::BinaryAnalysis::InstructionMap& get_instruction_map(bool=false) ROSE_DEPRECATED("use get_instructionMap");
14276 void set_instruction_map(const Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use set_instructionMap");
14277 void insert_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use insertInstructions");
14278 void erase_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use eraseInstructions");
14279public:
14282
14283public:
14286
14287protected:
14295#endif // SgAsmInterpretation_OTHERS
14296#ifdef DOCUMENTATION
14297};
14298#endif // DOCUMENTATION
14299
14300
14302// SgAsmIntegerValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
14304
14305DECLARE_LEAF_CLASS(AsmIntegerValueExpression);
14306IS_SERIALIZABLE(AsmIntegerValueExpression);
14307
14308#ifndef DOCUMENTATION
14309AsmIntegerValueExpression.useSmallHeader(true);
14310#endif // !DOCUMENTATION
14311
14312#ifdef DOCUMENTATION
14329#endif // DOCUMENTATION
14330
14331#ifndef DOCUMENTATION
14332 AsmIntegerValueExpression.setDataPrototype(
14333 "SgNode*", "baseNode", "= nullptr",
14334 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14335#endif // !DOCUMENTATION
14336
14337 DECLARE_OTHERS(AsmIntegerValueExpression);
14338#if defined(SgAsmIntegerValueExpression_OTHERS) || defined(DOCUMENTATION)
14339
14340 //----------------------- Boost serialization for SgAsmIntegerValueExpression -----------------------
14341#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14342private:
14343 friend class boost::serialization::access;
14344
14345 template<class S>
14346 void serialize(S &s, const unsigned /*version*/) {
14347 debugSerializationBegin("SgAsmIntegerValueExpression");
14348 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
14349 s & BOOST_SERIALIZATION_NVP(p_baseNode);
14350 debugSerializationEnd("SgAsmIntegerValueExpression");
14351 }
14352#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14353public:
14354public:
14365 SgNode* const& get_baseNode() const;
14366 void set_baseNode(SgNode* const&);
14368public:
14374
14381
14383 static uint64_t virtualAddress(SgNode*);
14384
14404 std::string get_label(bool quiet=false) const;
14405
14407 size_t get_significantBits() const;
14408
14414 void makeRelativeTo(SgNode *baseNode);
14415
14420 uint64_t get_baseAddress() const;
14421
14427 uint64_t get_absoluteValue(size_t nbits=0) const;
14428
14432 void set_absoluteValue(uint64_t);
14433
14435 int64_t get_signedValue() const;
14436
14440 int64_t get_relativeValue() const;
14441
14446 void set_relativeValue(int64_t v, size_t nbits=64);
14447
14448 uint64_t get_value() const { return get_absoluteValue(); }
14449public:
14452
14453public:
14456
14457protected:
14465#endif // SgAsmIntegerValueExpression_OTHERS
14466#ifdef DOCUMENTATION
14467};
14468#endif // DOCUMENTATION
14469
14470
14472// SgAsmIntegerType -- MACHINE GENERATED; DO NOT MODIFY --
14474
14475DECLARE_LEAF_CLASS(AsmIntegerType);
14476IS_SERIALIZABLE(AsmIntegerType);
14477
14478#ifndef DOCUMENTATION
14479AsmIntegerType.useSmallHeader(true);
14480#endif // !DOCUMENTATION
14481
14482DECLARE_HEADERS(AsmIntegerType);
14483#if defined(SgAsmIntegerType_HEADERS) || defined(DOCUMENTATION)
14484#include <Rose/BinaryAnalysis/ByteOrder.h>
14485#endif // SgAsmIntegerType_HEADERS
14486
14487#ifdef DOCUMENTATION
14490#endif // DOCUMENTATION
14491
14492#ifndef DOCUMENTATION
14493 AsmIntegerType.setDataPrototype(
14494 "bool", "isSigned", "= false",
14495 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14496#endif // !DOCUMENTATION
14497
14498 DECLARE_OTHERS(AsmIntegerType);
14499#if defined(SgAsmIntegerType_OTHERS) || defined(DOCUMENTATION)
14500
14501 //----------------------- Boost serialization for SgAsmIntegerType -----------------------
14502#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14503private:
14504 friend class boost::serialization::access;
14505
14506 template<class S>
14507 void serialize(S &s, const unsigned /*version*/) {
14508 debugSerializationBegin("SgAsmIntegerType");
14509 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
14510 s & BOOST_SERIALIZATION_NVP(p_isSigned);
14511 debugSerializationEnd("SgAsmIntegerType");
14512 }
14513#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14514public:
14515public:
14521 bool get_isSigned() const;
14524public:
14529
14532
14535
14536 // Overrides documented in base class
14537 virtual void check() const override;
14538 virtual std::string toString() const override;
14539public:
14542
14543public:
14546
14547protected:
14555#endif // SgAsmIntegerType_OTHERS
14556#ifdef DOCUMENTATION
14557};
14558#endif // DOCUMENTATION
14559
14560
14562// SgAsmInstructionList -- MACHINE GENERATED; DO NOT MODIFY --
14564
14565DECLARE_LEAF_CLASS(AsmInstructionList);
14566IS_SERIALIZABLE(AsmInstructionList);
14567
14568#ifndef DOCUMENTATION
14569AsmInstructionList.useSmallHeader(true);
14570#endif // !DOCUMENTATION
14571
14572DECLARE_HEADERS(AsmInstructionList);
14573#if defined(SgAsmInstructionList_HEADERS) || defined(DOCUMENTATION)
14574#include <sageContainer.h>
14575#endif // SgAsmInstructionList_HEADERS
14576
14577#ifdef DOCUMENTATION
14580#endif // DOCUMENTATION
14581
14582#ifndef DOCUMENTATION
14583 AsmInstructionList.setDataPrototype(
14584 "SgAsmInstructionPtrList", "instructions", "",
14585 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14586#endif // !DOCUMENTATION
14587
14588 DECLARE_OTHERS(AsmInstructionList);
14589#if defined(SgAsmInstructionList_OTHERS) || defined(DOCUMENTATION)
14590
14591 //----------------------- Boost serialization for SgAsmInstructionList -----------------------
14592#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14593private:
14594 friend class boost::serialization::access;
14595
14596 template<class S>
14597 void serialize(S &s, const unsigned /*version*/) {
14598 debugSerializationBegin("SgAsmInstructionList");
14599 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14600 s & BOOST_SERIALIZATION_NVP(p_instructions);
14601 debugSerializationEnd("SgAsmInstructionList");
14602 }
14603#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14604public:
14605public:
14613 SgAsmInstructionPtrList const& get_instructions() const;
14614 SgAsmInstructionPtrList& get_instructions();
14615 void set_instructions(SgAsmInstructionPtrList const&);
14618public:
14621
14622public:
14625
14626protected:
14634#endif // SgAsmInstructionList_OTHERS
14635#ifdef DOCUMENTATION
14636};
14637#endif // DOCUMENTATION
14638
14639
14641// SgAsmIndirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
14643
14644DECLARE_LEAF_CLASS(AsmIndirectRegisterExpression);
14645IS_SERIALIZABLE(AsmIndirectRegisterExpression);
14646
14647#ifndef DOCUMENTATION
14648AsmIndirectRegisterExpression.useSmallHeader(true);
14649#endif // !DOCUMENTATION
14650
14651#ifdef DOCUMENTATION
14668#endif // DOCUMENTATION
14669
14670#ifndef DOCUMENTATION
14671 AsmIndirectRegisterExpression.setDataPrototype(
14672 "Rose::BinaryAnalysis::RegisterDescriptor", "stride", "",
14673 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14674#endif // !DOCUMENTATION
14675
14676#ifndef DOCUMENTATION
14677 AsmIndirectRegisterExpression.setDataPrototype(
14678 "Rose::BinaryAnalysis::RegisterDescriptor", "offset", "",
14679 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14680#endif // !DOCUMENTATION
14681
14682#ifndef DOCUMENTATION
14683 AsmIndirectRegisterExpression.setDataPrototype(
14684 "size_t", "index", "= 0",
14685 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14686#endif // !DOCUMENTATION
14687
14688#ifndef DOCUMENTATION
14689 AsmIndirectRegisterExpression.setDataPrototype(
14690 "size_t", "modulus", "= 0",
14691 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14692#endif // !DOCUMENTATION
14693
14694 DECLARE_OTHERS(AsmIndirectRegisterExpression);
14695#if defined(SgAsmIndirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
14696
14697 //----------------------- Boost serialization for SgAsmIndirectRegisterExpression -----------------------
14698#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14699private:
14700 friend class boost::serialization::access;
14701
14702 template<class S>
14703 void serialize(S &s, const unsigned /*version*/) {
14704 debugSerializationBegin("SgAsmIndirectRegisterExpression");
14705 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
14706 s & BOOST_SERIALIZATION_NVP(p_stride);
14707 s & BOOST_SERIALIZATION_NVP(p_offset);
14708 s & BOOST_SERIALIZATION_NVP(p_index);
14709 s & BOOST_SERIALIZATION_NVP(p_modulus);
14710 debugSerializationEnd("SgAsmIndirectRegisterExpression");
14711 }
14712#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14713public:
14714public:
14724public:
14734public:
14740 size_t const& get_index() const;
14741 void set_index(size_t const&);
14744public:
14750 size_t const& get_modulus() const;
14751 void set_modulus(size_t const&);
14754public:
14757
14758public:
14761
14762public:
14767 size_t const& index,
14768 size_t const& modulus);
14769
14770protected:
14778#endif // SgAsmIndirectRegisterExpression_OTHERS
14779#ifdef DOCUMENTATION
14780};
14781#endif // DOCUMENTATION
14782
14783
14785// SgAsmGenericSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
14787
14788DECLARE_LEAF_CLASS(AsmGenericSymbolList);
14789IS_SERIALIZABLE(AsmGenericSymbolList);
14790
14791#ifndef DOCUMENTATION
14792AsmGenericSymbolList.useSmallHeader(true);
14793#endif // !DOCUMENTATION
14794
14795DECLARE_HEADERS(AsmGenericSymbolList);
14796#if defined(SgAsmGenericSymbolList_HEADERS) || defined(DOCUMENTATION)
14797#include <sageContainer.h>
14798#endif // SgAsmGenericSymbolList_HEADERS
14799
14800#ifdef DOCUMENTATION
14806#endif // DOCUMENTATION
14807
14808#ifndef DOCUMENTATION
14809 AsmGenericSymbolList.setDataPrototype(
14810 "SgAsmGenericSymbolPtrList", "symbols", "",
14811 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14812#endif // !DOCUMENTATION
14813
14814 DECLARE_OTHERS(AsmGenericSymbolList);
14815#if defined(SgAsmGenericSymbolList_OTHERS) || defined(DOCUMENTATION)
14816
14817 //----------------------- Boost serialization for SgAsmGenericSymbolList -----------------------
14818#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14819private:
14820 friend class boost::serialization::access;
14821
14822 template<class S>
14823 void serialize(S &s, const unsigned /*version*/) {
14824 debugSerializationBegin("SgAsmGenericSymbolList");
14825 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
14826 s & BOOST_SERIALIZATION_NVP(p_symbols);
14827 debugSerializationEnd("SgAsmGenericSymbolList");
14828 }
14829#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14830public:
14831public:
14835 SgAsmGenericSymbolPtrList const& get_symbols() const;
14836 SgAsmGenericSymbolPtrList& get_symbols();
14837 void set_symbols(SgAsmGenericSymbolPtrList const&);
14840public:
14843
14844public:
14847
14848protected:
14856#endif // SgAsmGenericSymbolList_OTHERS
14857#ifdef DOCUMENTATION
14858};
14859#endif // DOCUMENTATION
14860
14861
14863// SgAsmGenericSectionList -- MACHINE GENERATED; DO NOT MODIFY --
14865
14866DECLARE_LEAF_CLASS(AsmGenericSectionList);
14867IS_SERIALIZABLE(AsmGenericSectionList);
14868
14869#ifndef DOCUMENTATION
14870AsmGenericSectionList.useSmallHeader(true);
14871#endif // !DOCUMENTATION
14872
14873DECLARE_HEADERS(AsmGenericSectionList);
14874#if defined(SgAsmGenericSectionList_HEADERS) || defined(DOCUMENTATION)
14875#include <sageContainer.h>
14876#endif // SgAsmGenericSectionList_HEADERS
14877
14878#ifdef DOCUMENTATION
14884#endif // DOCUMENTATION
14885
14886#ifndef DOCUMENTATION
14887 AsmGenericSectionList.setDataPrototype(
14888 "SgAsmGenericSectionPtrList", "sections", "",
14889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14890#endif // !DOCUMENTATION
14891
14892 DECLARE_OTHERS(AsmGenericSectionList);
14893#if defined(SgAsmGenericSectionList_OTHERS) || defined(DOCUMENTATION)
14894
14895 //----------------------- Boost serialization for SgAsmGenericSectionList -----------------------
14896#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14897private:
14898 friend class boost::serialization::access;
14899
14900 template<class S>
14901 void serialize(S &s, const unsigned /*version*/) {
14902 debugSerializationBegin("SgAsmGenericSectionList");
14903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
14904 s & BOOST_SERIALIZATION_NVP(p_sections);
14905 debugSerializationEnd("SgAsmGenericSectionList");
14906 }
14907#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14908public:
14909public:
14913 SgAsmGenericSectionPtrList const& get_sections() const;
14914 SgAsmGenericSectionPtrList& get_sections();
14915 void set_sections(SgAsmGenericSectionPtrList const&);
14918public:
14921
14922public:
14925
14926protected:
14934#endif // SgAsmGenericSectionList_OTHERS
14935#ifdef DOCUMENTATION
14936};
14937#endif // DOCUMENTATION
14938
14939
14941// SgAsmGenericHeaderList -- MACHINE GENERATED; DO NOT MODIFY --
14943
14944DECLARE_LEAF_CLASS(AsmGenericHeaderList);
14945IS_SERIALIZABLE(AsmGenericHeaderList);
14946
14947#ifndef DOCUMENTATION
14948AsmGenericHeaderList.useSmallHeader(true);
14949#endif // !DOCUMENTATION
14950
14951DECLARE_HEADERS(AsmGenericHeaderList);
14952#if defined(SgAsmGenericHeaderList_HEADERS) || defined(DOCUMENTATION)
14953#include <sageContainer.h>
14954#endif // SgAsmGenericHeaderList_HEADERS
14955
14956#ifdef DOCUMENTATION
14962#endif // DOCUMENTATION
14963
14964#ifndef DOCUMENTATION
14965 AsmGenericHeaderList.setDataPrototype(
14966 "SgAsmGenericHeaderPtrList", "headers", "",
14967 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14968#endif // !DOCUMENTATION
14969
14970 DECLARE_OTHERS(AsmGenericHeaderList);
14971#if defined(SgAsmGenericHeaderList_OTHERS) || defined(DOCUMENTATION)
14972
14973 //----------------------- Boost serialization for SgAsmGenericHeaderList -----------------------
14974#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
14975private:
14976 friend class boost::serialization::access;
14977
14978 template<class S>
14979 void serialize(S &s, const unsigned /*version*/) {
14980 debugSerializationBegin("SgAsmGenericHeaderList");
14981 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
14982 s & BOOST_SERIALIZATION_NVP(p_headers);
14983 debugSerializationEnd("SgAsmGenericHeaderList");
14984 }
14985#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
14986public:
14987public:
14991 SgAsmGenericHeaderPtrList const& get_headers() const;
14992 SgAsmGenericHeaderPtrList& get_headers();
14993 void set_headers(SgAsmGenericHeaderPtrList const&);
14996public:
14999
15000public:
15003
15004protected:
15012#endif // SgAsmGenericHeaderList_OTHERS
15013#ifdef DOCUMENTATION
15014};
15015#endif // DOCUMENTATION
15016
15017
15019// SgAsmGenericFormat -- MACHINE GENERATED; DO NOT MODIFY --
15021
15022DECLARE_LEAF_CLASS(AsmGenericFormat);
15023IS_SERIALIZABLE(AsmGenericFormat);
15024
15025#ifndef DOCUMENTATION
15026AsmGenericFormat.useSmallHeader(true);
15027#endif // !DOCUMENTATION
15028
15029DECLARE_HEADERS(AsmGenericFormat);
15030#if defined(SgAsmGenericFormat_HEADERS) || defined(DOCUMENTATION)
15031#include <Rose/BinaryAnalysis/ByteOrder.h>
15032#endif // SgAsmGenericFormat_HEADERS
15033
15034#ifdef DOCUMENTATION
15037#endif // DOCUMENTATION
15038
15039#ifndef DOCUMENTATION
15040 AsmGenericFormat.setDataPrototype(
15041 "SgAsmGenericFormat::ExecFamily", "family", "= SgAsmGenericFormat::FAMILY_UNSPECIFIED",
15042 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15043#endif // !DOCUMENTATION
15044
15045#ifndef DOCUMENTATION
15046 AsmGenericFormat.setDataPrototype(
15047 "SgAsmGenericFormat::ExecPurpose", "purpose", "= SgAsmGenericFormat::PURPOSE_EXECUTABLE",
15048 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15049#endif // !DOCUMENTATION
15050
15051#ifndef DOCUMENTATION
15052 AsmGenericFormat.setDataPrototype(
15053 "Rose::BinaryAnalysis::ByteOrder::Endianness", "sex", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
15054 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15055#endif // !DOCUMENTATION
15056
15057#ifndef DOCUMENTATION
15058 AsmGenericFormat.setDataPrototype(
15059 "unsigned", "version", "= 0",
15060 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15061#endif // !DOCUMENTATION
15062
15063#ifndef DOCUMENTATION
15064 AsmGenericFormat.setDataPrototype(
15065 "bool", "isCurrentVersion", "= false",
15066 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15067#endif // !DOCUMENTATION
15068
15069#ifndef DOCUMENTATION
15070 AsmGenericFormat.setDataPrototype(
15071 "SgAsmGenericFormat::ExecABI", "abi", "= SgAsmGenericFormat::ABI_UNSPECIFIED",
15072 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15073#endif // !DOCUMENTATION
15074
15075#ifndef DOCUMENTATION
15076 AsmGenericFormat.setDataPrototype(
15077 "unsigned", "abiVersion", "= 0",
15078 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15079#endif // !DOCUMENTATION
15080
15081#ifndef DOCUMENTATION
15082 AsmGenericFormat.setDataPrototype(
15083 "size_t", "wordSize", "= 0",
15084 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15085#endif // !DOCUMENTATION
15086
15087 DECLARE_OTHERS(AsmGenericFormat);
15088#if defined(SgAsmGenericFormat_OTHERS) || defined(DOCUMENTATION)
15089
15090 //----------------------- Boost serialization for SgAsmGenericFormat -----------------------
15091#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
15092private:
15093 friend class boost::serialization::access;
15094
15095 template<class S>
15096 void serialize(S &s, const unsigned /*version*/) {
15097 debugSerializationBegin("SgAsmGenericFormat");
15098 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15099 s & BOOST_SERIALIZATION_NVP(p_family);
15100 s & BOOST_SERIALIZATION_NVP(p_purpose);
15101 s & BOOST_SERIALIZATION_NVP(p_sex);
15102 s & BOOST_SERIALIZATION_NVP(p_version);
15103 s & BOOST_SERIALIZATION_NVP(p_isCurrentVersion);
15104 s & BOOST_SERIALIZATION_NVP(p_abi);
15105 s & BOOST_SERIALIZATION_NVP(p_abiVersion);
15106 s & BOOST_SERIALIZATION_NVP(p_wordSize);
15107 debugSerializationEnd("SgAsmGenericFormat");
15108 }
15109#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
15110public:
15111public:
15119public:
15127public:
15135public:
15139 unsigned const& get_version() const;
15140 void set_version(unsigned const&);
15143public:
15150 bool const& get_isCurrentVersion() const;
15151 void set_isCurrentVersion(bool const&);
15154public:
15162public:
15166 unsigned const& get_abiVersion() const;
15167 void set_abiVersion(unsigned const&);
15170public:
15174 size_t const& get_wordSize() const;
15175 void set_wordSize(size_t const&);
15177public:
15179 void dump(FILE*, const char *prefix, ssize_t idx) const;
15180
15182 // Deprecated 2023-11
15184public:
15185 bool get_is_current_version() const ROSE_DEPRECATED("use get_isCurrentVersion");
15186 void set_is_current_version(bool) ROSE_DEPRECATED("use set_isCurrentVersion");
15187 unsigned get_abi_version() const ROSE_DEPRECATED("use get_abiVersion");
15188 void set_abi_version(unsigned) ROSE_DEPRECATED("use set_abiVersion");
15189 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
15190 void set_word_size(size_t) ROSE_DEPRECATED("use set_wordSize");
15191public:
15194
15195public:
15198
15199protected:
15207#endif // SgAsmGenericFormat_OTHERS
15208#ifdef DOCUMENTATION
15209};
15210#endif // DOCUMENTATION
15211
15212
15214// SgAsmGenericFileList -- MACHINE GENERATED; DO NOT MODIFY --
15216
15217DECLARE_LEAF_CLASS(AsmGenericFileList);
15218IS_SERIALIZABLE(AsmGenericFileList);
15219
15220#ifndef DOCUMENTATION
15221AsmGenericFileList.useSmallHeader(true);
15222#endif // !DOCUMENTATION
15223
15224DECLARE_HEADERS(AsmGenericFileList);
15225#if defined(SgAsmGenericFileList_HEADERS) || defined(DOCUMENTATION)
15226#include <sageContainer.h>
15227#endif // SgAsmGenericFileList_HEADERS
15228
15229#ifdef DOCUMENTATION
15235#endif // DOCUMENTATION
15236
15237#ifndef DOCUMENTATION
15238 AsmGenericFileList.setDataPrototype(
15239 "SgAsmGenericFilePtrList", "files", "",
15240 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15241#endif // !DOCUMENTATION
15242
15243 DECLARE_OTHERS(AsmGenericFileList);
15244#if defined(SgAsmGenericFileList_OTHERS) || defined(DOCUMENTATION)
15245
15246 //----------------------- Boost serialization for SgAsmGenericFileList -----------------------
15247#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
15248private:
15249 friend class boost::serialization::access;
15250
15251 template<class S>
15252 void serialize(S &s, const unsigned /*version*/) {
15253 debugSerializationBegin("SgAsmGenericFileList");
15254 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
15255 s & BOOST_SERIALIZATION_NVP(p_files);
15256 debugSerializationEnd("SgAsmGenericFileList");
15257 }
15258#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
15259public:
15260public:
15264 SgAsmGenericFilePtrList const& get_files() const;
15265 SgAsmGenericFilePtrList& get_files();
15266 void set_files(SgAsmGenericFilePtrList const&);
15269public:
15272
15273public:
15276
15277protected:
15285#endif // SgAsmGenericFileList_OTHERS
15286#ifdef DOCUMENTATION
15287};
15288#endif // DOCUMENTATION
15289
15290
15292// SgAsmGenericFile -- MACHINE GENERATED; DO NOT MODIFY --
15294
15295DECLARE_LEAF_CLASS(AsmGenericFile);
15296IS_SERIALIZABLE(AsmGenericFile);
15297
15298#ifndef DOCUMENTATION
15299AsmGenericFile.useSmallHeader(true);
15300#endif // !DOCUMENTATION
15301
15302DECLARE_HEADERS(AsmGenericFile);
15303#if defined(SgAsmGenericFile_HEADERS) || defined(DOCUMENTATION)
15304#include <Rose/BinaryAnalysis/MemoryMap.h>
15305#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
15306
15307#include "DataConversion.h"
15308#include "StatSerializer.h" // non-intrusive serialization of struct stat
15309
15310#ifdef ROSE_SgAsmGenericFile_IMPL
15311#include <SgAsmDwarfCompilationUnitList.h>
15312#include <SgAsmGenericSectionList.h>
15313#include <SgAsmGenericHeaderList.h>
15314#endif
15315#endif // SgAsmGenericFile_HEADERS
15316
15317#ifdef DOCUMENTATION
15320#endif // DOCUMENTATION
15321
15322#ifndef DOCUMENTATION
15323 AsmGenericFile.setDataPrototype(
15324 "SgAsmDwarfCompilationUnitList*", "dwarfInfo", "= nullptr",
15325 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15326#endif // !DOCUMENTATION
15327
15328#ifndef DOCUMENTATION
15329 AsmGenericFile.setDataPrototype(
15330 "std::string", "name", "",
15331 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15332#endif // !DOCUMENTATION
15333
15334#ifndef DOCUMENTATION
15335 AsmGenericFile.setDataPrototype(
15336 "int", "fd", "= -1",
15337 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15338#endif // !DOCUMENTATION
15339
15340#ifndef DOCUMENTATION
15341 AsmGenericFile.setDataPrototype(
15342 "struct stat", "sb", "",
15343 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15344#endif // !DOCUMENTATION
15345
15346#ifndef DOCUMENTATION
15347 AsmGenericFile.setDataPrototype(
15348 "SgFileContentList", "data", "",
15349 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15350#endif // !DOCUMENTATION
15351
15352#ifndef DOCUMENTATION
15353 AsmGenericFile.setDataPrototype(
15354 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
15355 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15356#endif // !DOCUMENTATION
15357
15358#ifndef DOCUMENTATION
15359 AsmGenericFile.setDataPrototype(
15360 "SgAsmGenericSectionList*", "holes", "= createAndParent<SgAsmGenericSectionList>(this)",
15361 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15362#endif // !DOCUMENTATION
15363
15364#ifndef DOCUMENTATION
15365 AsmGenericFile.setDataPrototype(
15366 "bool", "truncateZeros", "= false",
15367 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15368#endif // !DOCUMENTATION
15369
15370#ifndef DOCUMENTATION
15371 AsmGenericFile.setDataPrototype(
15372 "bool", "trackingReferences", "= true",
15373 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15374#endif // !DOCUMENTATION
15375
15376#ifndef DOCUMENTATION
15377 AsmGenericFile.setDataPrototype(
15378 "Rose::BinaryAnalysis::AddressIntervalSet", "referencedExtents", "",
15379 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15380#endif // !DOCUMENTATION
15381
15382#ifndef DOCUMENTATION
15383 AsmGenericFile.setDataPrototype(
15384 "bool", "neuter", "= false",
15385 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15386#endif // !DOCUMENTATION
15387
15388 DECLARE_OTHERS(AsmGenericFile);
15389#if defined(SgAsmGenericFile_OTHERS) || defined(DOCUMENTATION)
15390
15391 //----------------------- Boost serialization for SgAsmGenericFile -----------------------
15392#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
15393private:
15394 friend class boost::serialization::access;
15395
15396 template<class S>
15397 void serialize(S &s, const unsigned /*version*/) {
15398 debugSerializationBegin("SgAsmGenericFile");
15399 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15400 s & BOOST_SERIALIZATION_NVP(p_dwarfInfo);
15401 s & BOOST_SERIALIZATION_NVP(p_name);
15402 s & BOOST_SERIALIZATION_NVP(p_sb);
15403 s & BOOST_SERIALIZATION_NVP(p_data);
15404 s & BOOST_SERIALIZATION_NVP(p_headers);
15405 s & BOOST_SERIALIZATION_NVP(p_holes);
15406 s & BOOST_SERIALIZATION_NVP(p_truncateZeros);
15407 s & BOOST_SERIALIZATION_NVP(p_trackingReferences);
15408 s & BOOST_SERIALIZATION_NVP(p_referencedExtents);
15409 s & BOOST_SERIALIZATION_NVP(p_neuter);
15410 debugSerializationEnd("SgAsmGenericFile");
15411 }
15412#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
15414 // Local types
15416public:
15419 ADDRSP_MEMORY = 0x0001,
15420 ADDRSP_FILE = 0x0002,
15421 ADDRSP_ALL = 0x0003
15422 };
15423
15430
15432 // Properties
15434public:
15435public:
15443public:
15447 std::string const& get_name() const;
15448 void set_name(std::string const&);
15451public:
15457 int const& get_fd() const;
15458 void set_fd(int const&);
15461public:
15462 struct stat const& get_sb() const;
15463
15464public:
15472public:
15482public:
15493public:
15497 bool const& get_truncateZeros() const;
15498 void set_truncateZeros(bool const&);
15501public:
15505 bool const& get_trackingReferences() const;
15506 void set_trackingReferences(bool const&);
15509public:
15517public:
15521 bool const& get_neuter() const;
15522 void set_neuter(bool const&);
15525 // Non-property data members
15527private:
15528 mutable Rose::BinaryAnalysis::AddressIntervalSet *p_unreferenced_cache = nullptr;
15529 DataConverter *p_data_converter = nullptr;
15530
15532 // Functions
15534public:
15536 SgAsmGenericFile* parse(std::string file_name);
15537
15538 void reallocate();
15539
15546 void unparse(std::ostream&) const;
15547
15549 void extendToEof(std::ostream&) const;
15550
15552 void dump(FILE*) const;
15553
15560 void dumpAll(bool in_cwd=true, const char *ext=NULL);
15561
15563 void dumpAll(const std::string& dumpname);
15564
15567
15569 void markReferencedExtent(rose_addr_t start_rva, rose_addr_t size);
15570
15581 rose_addr_t get_currentSize() const;
15582
15584 rose_addr_t get_originalSize() const;
15585
15593 size_t readContent(rose_addr_t offset, void *dst_buf, rose_addr_t size, bool strict=true);
15594
15601 size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t va, void *dst_buf,
15602 rose_addr_t size, bool strict=true);
15603
15611 std::string readContentString(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t va, bool strict=true);
15612
15620 std::string readContentString(rose_addr_t abs_offset, bool strict=true);
15621
15623 const SgFileContentList& content() { return p_data; }
15624
15631 SgFileContentList content(rose_addr_t offset, rose_addr_t size);
15632
15634 SgAsmGenericSectionPtrList get_mappedSections() const;
15635
15637 SgAsmGenericSectionPtrList get_sections(bool include_holes=true) const;
15638
15640 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
15641
15643 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep='\0') const;
15644
15649 SgAsmGenericSectionPtrList get_sectionsByOffset(rose_addr_t offset, rose_addr_t size) const;
15650
15655 SgAsmGenericSectionPtrList get_sectionsByRva(rose_addr_t rva) const;
15656
15661 SgAsmGenericSectionPtrList get_sectionsByVa(rose_addr_t va) const;
15662
15667 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
15668
15674 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
15675
15680 SgAsmGenericSection *get_sectionByOffset(rose_addr_t offset, rose_addr_t size, size_t *nfound=0) const;
15681
15686 SgAsmGenericSection *get_sectionByRva(rose_addr_t rva, size_t *nfound=0) const;
15687
15692 SgAsmGenericSection *get_sectionByVa(rose_addr_t va, size_t *nfound=0) const;
15693
15699 SgAsmGenericSection *get_bestSectionByVa(rose_addr_t va, size_t *nfound=0) const;
15700
15711 static SgAsmGenericSection *bestSectionByVa(const SgAsmGenericSectionPtrList &sections, rose_addr_t va);
15712
15752 void shiftExtend(SgAsmGenericSection*, rose_addr_t sa, rose_addr_t sn, AddressSpace, Elasticity);
15753 void shiftExtend(SgAsmGenericSection *s, rose_addr_t sa, rose_addr_t sn);
15760 rose_addr_t get_nextSectionOffset(rose_addr_t offset);
15761
15766
15769
15776
15781
15786
15789
15792
15797 const char *formatName() const;
15798
15799protected:
15800 // Some extra clean-up actions on destruction
15801 virtual void destructorHelper() override;
15802
15804 // Deprecated 2023-11
15806public:
15807 SgAsmDwarfCompilationUnitList* get_dwarf_info() const ROSE_DEPRECATED("use get_dwarfInfo");
15808 void set_dwarf_info(SgAsmDwarfCompilationUnitList*) ROSE_DEPRECATED("use set_dwarfInfo");
15809 bool get_truncate_zeros() const ROSE_DEPRECATED("use get_truncateZeros");
15810 void set_truncate_zeros(bool) ROSE_DEPRECATED("use set_truncateZeros");
15811 bool get_tracking_references() const ROSE_DEPRECATED("use get_trackingReferences");
15812 void set_tracking_references(bool) ROSE_DEPRECATED("use set_trackingReferences");
15813 const Rose::BinaryAnalysis::AddressIntervalSet& get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
15814 void set_referenced_extents(const Rose::BinaryAnalysis::AddressIntervalSet&) ROSE_DEPRECATED("use set_referencedExtents");
15815 void extend_to_eof(std::ostream&) const ROSE_DEPRECATED("use extendToEof");
15816 void dump_all(bool in_cwd=true, const char *ext=NULL) ROSE_DEPRECATED("use dumpAll");
15817 void dump_all(const std::string& dumpname) ROSE_DEPRECATED("use dumpAll");
15818 const Rose::BinaryAnalysis::AddressIntervalSet& get_unreferenced_extents() const ROSE_DEPRECATED("use get_unreferencedExtents");
15819 void mark_referenced_extent(rose_addr_t, rose_addr_t) ROSE_DEPRECATED("use markReferencedExtent");
15820 DataConverter* get_data_converter() const ROSE_DEPRECATED("use get_dataConverter");
15821 void set_data_converter(DataConverter*) ROSE_DEPRECATED("use set_dataConverter");
15822 rose_addr_t get_current_size() const ROSE_DEPRECATED("use get_currentSize");
15823 rose_addr_t get_orig_size() const ROSE_DEPRECATED("use get_originalSize");
15824 size_t read_content(rose_addr_t, void*, rose_addr_t, bool=true) ROSE_DEPRECATED("use readContent");
15825 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t, void*, rose_addr_t, bool=true)
15826 ROSE_DEPRECATED("use readContent");
15827 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t, bool=true)
15828 ROSE_DEPRECATED("use readContentString");
15829 std::string read_content_str(rose_addr_t, bool=true) ROSE_DEPRECATED("use readContentString");
15830 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
15831 SgAsmGenericSectionPtrList get_sections_by_id(int id) const ROSE_DEPRECATED("use get_sectionById");
15832 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char='\0') const ROSE_DEPRECATED("use get_sectionsByName");
15833 SgAsmGenericSectionPtrList get_sections_by_offset(rose_addr_t, rose_addr_t) const ROSE_DEPRECATED("use get_sectionsByOffset");
15834 SgAsmGenericSectionPtrList get_sections_by_rva(rose_addr_t) const ROSE_DEPRECATED("use get_sectionsByRva");
15835 SgAsmGenericSectionPtrList get_sections_by_va(rose_addr_t) const ROSE_DEPRECATED("use get_sectionsByVa");
15836 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
15837 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
15838 ROSE_DEPRECATED("use get_sectionByName");
15839 SgAsmGenericSection *get_section_by_offset(rose_addr_t, rose_addr_t, size_t* = nullptr) const
15840 ROSE_DEPRECATED("use get_sectionByOffset");
15841 SgAsmGenericSection *get_section_by_rva(rose_addr_t, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionByRva");
15842 SgAsmGenericSection *get_section_by_va(rose_addr_t, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionByVa");
15843 SgAsmGenericSection *get_best_section_by_va(rose_addr_t, size_t* = nullptr) const ROSE_DEPRECATED("use get_bestSectionByVa");
15844 static SgAsmGenericSection *best_section_by_va(const SgAsmGenericSectionPtrList&, rose_addr_t)
15845 ROSE_DEPRECATED("use bestSectionByVa");
15846 void shift_extend(SgAsmGenericSection*, rose_addr_t, rose_addr_t, AddressSpace, Elasticity) ROSE_DEPRECATED("use shiftExtend");
15847 void shift_extend(SgAsmGenericSection*, rose_addr_t, rose_addr_t) ROSE_DEPRECATED("use shiftExtend");
15848 rose_addr_t get_next_section_offset(rose_addr_t) ROSE_DEPRECATED("use get_nextSectionOffset");
15849 void add_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use addHole");
15850 void remove_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use remoeHole");
15851 void fill_holes() ROSE_DEPRECATED("use fillHoles");
15852 void unfill_holes() ROSE_DEPRECATED("use unfillHoles");
15853 void add_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use addHeader");
15854 void remove_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use removeHeader");
15855 const char *format_name() const ROSE_DEPRECATED("use formatName");
15856public:
15859
15860public:
15863
15864protected:
15872#endif // SgAsmGenericFile_OTHERS
15873#ifdef DOCUMENTATION
15874};
15875#endif // DOCUMENTATION
15876
15877
15879// SgAsmGenericDLLList -- MACHINE GENERATED; DO NOT MODIFY --
15881
15882DECLARE_LEAF_CLASS(AsmGenericDLLList);
15883IS_SERIALIZABLE(AsmGenericDLLList);
15884
15885#ifndef DOCUMENTATION
15886AsmGenericDLLList.useSmallHeader(true);
15887#endif // !DOCUMENTATION
15888
15889DECLARE_HEADERS(AsmGenericDLLList);
15890#if defined(SgAsmGenericDLLList_HEADERS) || defined(DOCUMENTATION)
15891#include <sageContainer.h>
15892#endif // SgAsmGenericDLLList_HEADERS
15893
15894#ifdef DOCUMENTATION
15900#endif // DOCUMENTATION
15901
15902#ifndef DOCUMENTATION
15903 AsmGenericDLLList.setDataPrototype(
15904 "SgAsmGenericDLLPtrList", "dlls", "",
15905 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15906#endif // !DOCUMENTATION
15907
15908 DECLARE_OTHERS(AsmGenericDLLList);
15909#if defined(SgAsmGenericDLLList_OTHERS) || defined(DOCUMENTATION)
15910
15911 //----------------------- Boost serialization for SgAsmGenericDLLList -----------------------
15912#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
15913private:
15914 friend class boost::serialization::access;
15915
15916 template<class S>
15917 void serialize(S &s, const unsigned /*version*/) {
15918 debugSerializationBegin("SgAsmGenericDLLList");
15919 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15920 s & BOOST_SERIALIZATION_NVP(p_dlls);
15921 debugSerializationEnd("SgAsmGenericDLLList");
15922 }
15923#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
15924public:
15925public:
15929 SgAsmGenericDLLPtrList const& get_dlls() const;
15930 SgAsmGenericDLLPtrList& get_dlls();
15931 void set_dlls(SgAsmGenericDLLPtrList const&);
15934public:
15937
15938public:
15941
15942protected:
15950#endif // SgAsmGenericDLLList_OTHERS
15951#ifdef DOCUMENTATION
15952};
15953#endif // DOCUMENTATION
15954
15955
15957// SgAsmGenericDLL -- MACHINE GENERATED; DO NOT MODIFY --
15959
15960DECLARE_LEAF_CLASS(AsmGenericDLL);
15961IS_SERIALIZABLE(AsmGenericDLL);
15962
15963#ifndef DOCUMENTATION
15964AsmGenericDLL.useSmallHeader(true);
15965#endif // !DOCUMENTATION
15966
15967DECLARE_HEADERS(AsmGenericDLL);
15968#if defined(SgAsmGenericDLL_HEADERS) || defined(DOCUMENTATION)
15969#include <sageContainer.h>
15970
15971#ifdef ROSE_SgAsmGenericDLL_IMPL
15972#include <SgAsmBasicString.h>
15973#endif
15974#endif // SgAsmGenericDLL_HEADERS
15975
15976#ifdef DOCUMENTATION
15979#endif // DOCUMENTATION
15980
15981#ifndef DOCUMENTATION
15982 AsmGenericDLL.setDataPrototype(
15983 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
15984 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15985#endif // !DOCUMENTATION
15986
15987#ifndef DOCUMENTATION
15988 AsmGenericDLL.setDataPrototype(
15989 "SgStringList", "symbols", "",
15990 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15991#endif // !DOCUMENTATION
15992
15993 DECLARE_OTHERS(AsmGenericDLL);
15994#if defined(SgAsmGenericDLL_OTHERS) || defined(DOCUMENTATION)
15995
15996 //----------------------- Boost serialization for SgAsmGenericDLL -----------------------
15997#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
15998private:
15999 friend class boost::serialization::access;
16000
16001 template<class S>
16002 void serialize(S &s, const unsigned /*version*/) {
16003 debugSerializationBegin("SgAsmGenericDLL");
16004 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16005 s & BOOST_SERIALIZATION_NVP(p_name);
16006 s & BOOST_SERIALIZATION_NVP(p_symbols);
16007 debugSerializationEnd("SgAsmGenericDLL");
16008 }
16009#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
16010public:
16011public:
16018public:
16022 SgStringList const& get_symbols() const;
16023 void set_symbols(SgStringList const&);
16025public:
16028
16030 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
16031
16033 void addSymbol(const std::string&);
16034
16036 // Deprecated 2023-11
16038public:
16039 void add_symbol(const std::string&) ROSE_DEPRECATED("use addSymbol");
16040public:
16043
16044public:
16047
16048protected:
16056#endif // SgAsmGenericDLL_OTHERS
16057#ifdef DOCUMENTATION
16058};
16059#endif // DOCUMENTATION
16060
16061
16063// SgAsmFunction -- MACHINE GENERATED; DO NOT MODIFY --
16065
16066DECLARE_LEAF_CLASS(AsmFunction);
16067IS_SERIALIZABLE(AsmFunction);
16068
16069#ifndef DOCUMENTATION
16070AsmFunction.useSmallHeader(true);
16071#endif // !DOCUMENTATION
16072
16073DECLARE_HEADERS(AsmFunction);
16074#if defined(SgAsmFunction_HEADERS) || defined(DOCUMENTATION)
16075#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
16076#include <sageContainer.h>
16077
16078#ifdef ROSE_SgAsmFunction_IMPL
16079#include <SgAsmInstruction.h>
16080#endif
16081#endif // SgAsmFunction_HEADERS
16082
16083#ifdef DOCUMENTATION
16100#endif // DOCUMENTATION
16101
16102#ifndef DOCUMENTATION
16103 AsmFunction.setDataPrototype(
16104 "std::string", "name", "",
16105 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16106#endif // !DOCUMENTATION
16107
16108#ifndef DOCUMENTATION
16109 AsmFunction.setDataPrototype(
16110 "unsigned", "reason", "= SgAsmFunction::FUNC_NONE",
16111 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16112#endif // !DOCUMENTATION
16113
16114#ifndef DOCUMENTATION
16115 AsmFunction.setDataPrototype(
16116 "std::string", "reasonComment", "",
16117 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16118#endif // !DOCUMENTATION
16119
16120#ifndef DOCUMENTATION
16121 AsmFunction.setDataPrototype(
16122 "SgAsmFunction::function_kind_enum", "functionKind", "= SgAsmFunction::e_unknown",
16123 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16124#endif // !DOCUMENTATION
16125
16126#ifndef DOCUMENTATION
16127 AsmFunction.setDataPrototype(
16128 "SgAsmFunction::MayReturn", "mayReturn", "= SgAsmFunction::RET_UNKNOWN",
16129 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16130#endif // !DOCUMENTATION
16131
16132#ifndef DOCUMENTATION
16133 AsmFunction.setDataPrototype(
16134 "std::string", "nameMd5", "",
16135 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16136#endif // !DOCUMENTATION
16137
16138#ifndef DOCUMENTATION
16139 AsmFunction.setDataPrototype(
16140 "SgAsmStatementPtrList", "statementList", "",
16141 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16142#endif // !DOCUMENTATION
16143
16144#ifndef DOCUMENTATION
16145 AsmFunction.setDataPrototype(
16146 "SgAsmStatementPtrList", "dest", "",
16147 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16148#endif // !DOCUMENTATION
16149
16150#ifndef DOCUMENTATION
16151 AsmFunction.setDataPrototype(
16152 "rose_addr_t", "entryVa", "= 0",
16153 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16154#endif // !DOCUMENTATION
16155
16156#ifndef DOCUMENTATION
16157 AsmFunction.setDataPrototype(
16158 "SgSymbolTable*", "symbolTable", "= nullptr",
16159 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16160#endif // !DOCUMENTATION
16161
16162#ifndef DOCUMENTATION
16163 AsmFunction.setDataPrototype(
16164 "size_t", "cachedVertex", "= (size_t)(-1)",
16165 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16166#endif // !DOCUMENTATION
16167
16168#ifndef DOCUMENTATION
16169 AsmFunction.setDataPrototype(
16170 "int64_t", "stackDelta", "= SgAsmInstruction::INVALID_STACK_DELTA",
16171 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16172#endif // !DOCUMENTATION
16173
16174#ifndef DOCUMENTATION
16175 AsmFunction.setDataPrototype(
16176 "std::string", "callingConvention", "",
16177 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16178#endif // !DOCUMENTATION
16179
16180 DECLARE_OTHERS(AsmFunction);
16181#if defined(SgAsmFunction_OTHERS) || defined(DOCUMENTATION)
16182
16183 //----------------------- Boost serialization for SgAsmFunction -----------------------
16184#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
16185private:
16186 friend class boost::serialization::access;
16187
16188 template<class S>
16189 void serialize(S &s, const unsigned /*version*/) {
16190 debugSerializationBegin("SgAsmFunction");
16191 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
16192 s & BOOST_SERIALIZATION_NVP(p_name);
16193 s & BOOST_SERIALIZATION_NVP(p_reason);
16194 s & BOOST_SERIALIZATION_NVP(p_reasonComment);
16195 s & BOOST_SERIALIZATION_NVP(p_functionKind);
16196 s & BOOST_SERIALIZATION_NVP(p_mayReturn);
16197 s & BOOST_SERIALIZATION_NVP(p_nameMd5);
16198 s & BOOST_SERIALIZATION_NVP(p_statementList);
16199 s & BOOST_SERIALIZATION_NVP(p_dest);
16200 s & BOOST_SERIALIZATION_NVP(p_entryVa);
16201 s & BOOST_SERIALIZATION_NVP(p_cachedVertex);
16202 s & BOOST_SERIALIZATION_NVP(p_stackDelta);
16203 s & BOOST_SERIALIZATION_NVP(p_callingConvention);
16204 debugSerializationEnd("SgAsmFunction");
16205 }
16206#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
16208 // Local types
16210public:
16218
16223 // NOTE: If you add more here, then fix Partitioner::parse_switches()
16224 // Also fix SgAsmFunction::reason_key()
16225 FUNC_NONE = 0x00000000,
16226 FUNC_THUNK_TARGET= 0x00004000,
16228 = 0x00008000,
16229 FUNC_ENTRY_POINT = 0x00010000,
16230 FUNC_CALL_TARGET = 0x00020000,
16233 FUNC_CALL_INSN = 0x00040000,
16239 FUNC_EH_FRAME = 0x00080000,
16240 FUNC_SYMBOL = 0x00100000,
16241 FUNC_PATTERN = 0x00200000,
16246 FUNC_GRAPH = 0x00400000,
16250 FUNC_USERDEF = 0x00800000,
16251 FUNC_PADDING = 0x01000000,
16256 FUNC_DISCONT = 0x02000000,
16259 FUNC_INSNHEAD = 0x04000000,
16260 FUNC_IMPORT = 0x08000000,
16263 FUNC_LEFTOVERS = 0x10000000,
16267 FUNC_INTRABLOCK = 0x20000000,
16275 FUNC_THUNK = 0x40000000,
16284 FUNC_EXPORT = 0x80000000,
16286 FUNC_DEFAULT = 0xefff80ff,
16288 /*========= Miscellaneous Reasons ===========================================================================
16289 * The first half of the range (1-127, inclusive) is used for algorithms defined by ROSE. The second half is
16290 * availalble for users to use as they see fit. */
16291 FUNC_MISCMASK = 0x000000ff,
16297 FUNC_INTERPADFUNC = 1,
16304 FUNC_INSN_RO_DATA = 6,
16306 };
16307
16310 e_unknown = 0,
16311 e_standard = 1,
16312 e_library = 2,
16313 e_imported = 3,
16314 e_thunk = 4,
16315 e_last
16316 };
16317
16319 // Properties
16321public:
16322public:
16328 std::string const& get_name() const;
16329 void set_name(std::string const&);
16332public:
16339 unsigned const& get_reason() const;
16340 void set_reason(unsigned const&);
16343public:
16351 std::string const& get_reasonComment() const;
16352 void set_reasonComment(std::string const&);
16355public:
16365public:
16373public:
16379 std::string const& get_nameMd5() const;
16380 void set_nameMd5(std::string const&);
16383public:
16389 SgAsmStatementPtrList const& get_statementList() const;
16390 SgAsmStatementPtrList& get_statementList();
16391 void set_statementList(SgAsmStatementPtrList const&);
16393 // FIXME[Robb P Matzke 2017-02-13]: unused?
16394public:
16395 SgAsmStatementPtrList const& get_dest() const;
16396 void set_dest(SgAsmStatementPtrList const&);
16397
16398public:
16405 rose_addr_t const& get_entryVa() const;
16406 void set_entryVa(rose_addr_t const&);
16409public:
16419 // FIXME[Robb P Matzke 2017-02-13]: what is this?
16420public:
16421 size_t const& get_cachedVertex() const;
16422 void set_cachedVertex(size_t const&);
16423
16424public:
16434 int64_t const& get_stackDelta() const;
16435 void set_stackDelta(int64_t const&);
16438public:
16447 std::string const& get_callingConvention() const;
16448 void set_callingConvention(std::string const&);
16451 // Functions
16453public:
16456
16461
16467
16471 static std::string reasonKey(const std::string &prefix = "");
16472
16474 std::string reasonString(bool pad) const;
16475
16479 static std::string reasonString(bool pad, unsigned reason);
16480
16483 public:
16484 virtual ~NodeSelector() {}
16485 virtual bool operator()(SgNode*) = 0;
16486 };
16487
16527 size_t get_extent(Rose::BinaryAnalysis::AddressIntervalSet *emap=NULL, rose_addr_t *lo_addr=NULL, rose_addr_t *hi_addr=NULL,
16528 NodeSelector *selector=NULL);
16529
16535 bool get_sha1(uint8_t digest[20]/*out*/, NodeSelector *selector=NULL);
16536
16538 // Deprecated 2023-11
16540public:
16541 function_kind_enum get_function_kind() const ROSE_DEPRECATED("use get_functionKind");
16542 void set_function_kind(function_kind_enum) ROSE_DEPRECATED("use set_functionKind");
16543 MayReturn get_may_return() const ROSE_DEPRECATED("use get_mayReturn");
16544 void set_may_return(MayReturn) ROSE_DEPRECATED("use set_mayReturn");
16545 const std::string& get_name_md5() const ROSE_DEPRECATED("use get_nameMd5");
16546 void set_name_md5(const std::string&) ROSE_DEPRECATED("use set_nameMd5");
16547 rose_addr_t get_entry_va() const ROSE_DEPRECATED("use get_entryVa");
16548 void set_entry_va(rose_addr_t) ROSE_DEPRECATED("use set_entryVa");
16549 SgSymbolTable* get_symbol_table() const ROSE_DEPRECATED("use get_symbolTable");
16550 void set_symbol_table(SgSymbolTable*) ROSE_DEPRECATED("use set_symbolTable");
16551 size_t get_cached_vertex() const ROSE_DEPRECATED("use get_cachedVertex");
16552 void set_cached_vertex(size_t) ROSE_DEPRECATED("use set_cachedVertex");
16553 void append_statement(SgAsmStatement*) ROSE_DEPRECATED("use appendStatement");
16554 void remove_statement(SgAsmStatement* statement) ROSE_DEPRECATED("use removeStatement");
16555 SgAsmBlock* get_entry_block() const ROSE_DEPRECATED("use get_entryBlock");
16556 static std::string reason_key(const std::string &prefix="") ROSE_DEPRECATED("use reasonKey");
16557 std::string reason_str(bool) const ROSE_DEPRECATED("use reasonString");
16558 static std::string reason_str(bool, unsigned) ROSE_DEPRECATED("use reasonString");
16559public:
16561 virtual ~SgAsmFunction();
16562
16563public:
16566
16567public:
16569 SgAsmFunction(rose_addr_t const& address,
16570 std::string const& name,
16571 unsigned const& reason,
16572 SgAsmFunction::function_kind_enum const& functionKind);
16573
16574protected:
16582#endif // SgAsmFunction_OTHERS
16583#ifdef DOCUMENTATION
16584};
16585#endif // DOCUMENTATION
16586
16587
16589// SgAsmSynthesizedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
16591
16592#ifndef DOCUMENTATION
16593AstNodeClass& AsmSynthesizedDeclaration = nonTerminalConstructor(
16594 "AsmSynthesizedDeclaration",
16595 *this,
16596 "AsmSynthesizedDeclaration",
16597 "AsmSynthesizedDeclarationTag",
16598 SubclassListBuilder()
16599 | AsmFunction
16600 | AsmSynthesizedDataStructureDeclaration
16601 | AsmSynthesizedFieldDeclaration
16602 , false);
16603assert(AsmSynthesizedDeclaration.associatedGrammar != nullptr);
16604AsmSynthesizedDeclaration.setCppCondition("!defined(DOCUMENTATION)");
16605AsmSynthesizedDeclaration.isBoostSerializable(true);
16606AsmSynthesizedDeclaration.setAutomaticGenerationOfConstructor(false);
16607AsmSynthesizedDeclaration.setAutomaticGenerationOfDestructor(false);
16608#endif // !DOCUMENTATION
16609
16610#ifndef DOCUMENTATION
16611AsmSynthesizedDeclaration.useSmallHeader(true);
16612#endif // !DOCUMENTATION
16613
16614#ifdef DOCUMENTATION
16622#endif // DOCUMENTATION
16623
16624 DECLARE_OTHERS(AsmSynthesizedDeclaration);
16625#if defined(SgAsmSynthesizedDeclaration_OTHERS) || defined(DOCUMENTATION)
16626
16627 //----------------------- Boost serialization for SgAsmSynthesizedDeclaration -----------------------
16628#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
16629private:
16630 friend class boost::serialization::access;
16631
16632 template<class S>
16633 void serialize(S &s, const unsigned /*version*/) {
16634 debugSerializationBegin("SgAsmSynthesizedDeclaration");
16635 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
16636 debugSerializationEnd("SgAsmSynthesizedDeclaration");
16637 }
16638#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
16639
16640public:
16643
16644protected:
16647
16648protected:
16650 explicit SgAsmSynthesizedDeclaration(rose_addr_t const& address);
16651
16652protected:
16660#endif // SgAsmSynthesizedDeclaration_OTHERS
16661#ifdef DOCUMENTATION
16662};
16663#endif // DOCUMENTATION
16664
16665
16667// SgAsmFloatValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
16669
16670DECLARE_LEAF_CLASS(AsmFloatValueExpression);
16671IS_SERIALIZABLE(AsmFloatValueExpression);
16672
16673#ifndef DOCUMENTATION
16674AsmFloatValueExpression.useSmallHeader(true);
16675#endif // !DOCUMENTATION
16676
16677#ifdef DOCUMENTATION
16683#endif // DOCUMENTATION
16684
16685 DECLARE_OTHERS(AsmFloatValueExpression);
16686#if defined(SgAsmFloatValueExpression_OTHERS) || defined(DOCUMENTATION)
16687
16688 //----------------------- Boost serialization for SgAsmFloatValueExpression -----------------------
16689#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
16690private:
16691 friend class boost::serialization::access;
16692
16693 template<class S>
16694 void serialize(S &s, const unsigned /*version*/) {
16695 debugSerializationBegin("SgAsmFloatValueExpression");
16696 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
16697 s & BOOST_SERIALIZATION_NVP(p_nativeValue);
16698 s & BOOST_SERIALIZATION_NVP(p_nativeValueIsValid);
16699 debugSerializationEnd("SgAsmFloatValueExpression");
16700 }
16701#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
16702private:
16703 // This node stores its primary representation of the value in the p_bitVector of a parent class. However, since we
16704 // often access the value as a native "double", and since converting to/from a bit vector is costly, we want to cache
16705 // the native double value whenever we compute it. ROSETTA does not need to be aware of the cached value since it can
16706 // be recomputed from the bit vector, and in fact, ROSETTA can't handle cache data members because it doesn't
16707 // understand "mutable".
16708 //
16709 // However, Rosebud handles this just fine.
16710private:
16711 mutable double p_nativeValue;
16712
16713public:
16714
16715private:
16716 mutable bool p_nativeValueIsValid;
16717
16718public:
16719public:
16729
16736
16738 void set_nativeValue(double);
16739
16741 double get_nativeValue() const;
16742
16748
16753 void updateNativeValue() const;
16754public:
16757
16758public:
16761
16762protected:
16770#endif // SgAsmFloatValueExpression_OTHERS
16771#ifdef DOCUMENTATION
16772};
16773#endif // DOCUMENTATION
16774
16775
16777// SgAsmFloatType -- MACHINE GENERATED; DO NOT MODIFY --
16779
16780DECLARE_LEAF_CLASS(AsmFloatType);
16781IS_SERIALIZABLE(AsmFloatType);
16782
16783#ifndef DOCUMENTATION
16784AsmFloatType.useSmallHeader(true);
16785#endif // !DOCUMENTATION
16786
16787DECLARE_HEADERS(AsmFloatType);
16788#if defined(SgAsmFloatType_HEADERS) || defined(DOCUMENTATION)
16789#include <Sawyer/BitVector.h>
16790#include <Rose/BitFlags.h>
16791#include <Rose/BinaryAnalysis/ByteOrder.h>
16792#endif // SgAsmFloatType_HEADERS
16793
16794#ifdef DOCUMENTATION
16797#endif // DOCUMENTATION
16798
16799#ifndef DOCUMENTATION
16800 AsmFloatType.setDataPrototype(
16801 "size_t", "significandOffset", "= (size_t)(-1)",
16802 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16803#endif // !DOCUMENTATION
16804
16805#ifndef DOCUMENTATION
16806 AsmFloatType.setDataPrototype(
16807 "size_t", "significandNBits", "= (size_t)(-1)",
16808 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16809#endif // !DOCUMENTATION
16810
16811#ifndef DOCUMENTATION
16812 AsmFloatType.setDataPrototype(
16813 "size_t", "signBitOffset", "= (size_t)(-1)",
16814 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16815#endif // !DOCUMENTATION
16816
16817#ifndef DOCUMENTATION
16818 AsmFloatType.setDataPrototype(
16819 "size_t", "exponentOffset", "= (size_t)(-1)",
16820 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16821#endif // !DOCUMENTATION
16822
16823#ifndef DOCUMENTATION
16824 AsmFloatType.setDataPrototype(
16825 "size_t", "exponentNBits", "= (size_t)(-1)",
16826 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16827#endif // !DOCUMENTATION
16828
16829#ifndef DOCUMENTATION
16830 AsmFloatType.setDataPrototype(
16831 "uint64_t", "exponentBias", "= 0",
16832 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16833#endif // !DOCUMENTATION
16834
16835#ifndef DOCUMENTATION
16836 AsmFloatType.setDataPrototype(
16837 "unsigned", "flags", "= 0",
16838 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16839#endif // !DOCUMENTATION
16840
16841 DECLARE_OTHERS(AsmFloatType);
16842#if defined(SgAsmFloatType_OTHERS) || defined(DOCUMENTATION)
16843
16844 //----------------------- Boost serialization for SgAsmFloatType -----------------------
16845#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
16846private:
16847 friend class boost::serialization::access;
16848
16849 template<class S>
16850 void serialize(S &s, const unsigned /*version*/) {
16851 debugSerializationBegin("SgAsmFloatType");
16852 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
16853 s & BOOST_SERIALIZATION_NVP(p_significandOffset);
16854 s & BOOST_SERIALIZATION_NVP(p_significandNBits);
16855 s & BOOST_SERIALIZATION_NVP(p_signBitOffset);
16856 s & BOOST_SERIALIZATION_NVP(p_exponentOffset);
16857 s & BOOST_SERIALIZATION_NVP(p_exponentNBits);
16858 s & BOOST_SERIALIZATION_NVP(p_exponentBias);
16859 s & BOOST_SERIALIZATION_NVP(p_flags);
16860 debugSerializationEnd("SgAsmFloatType");
16861 }
16862#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
16863public:
16865 enum Flag {
16866 GRADUAL_UNDERFLOW = 0x00000001,
16867 IMPLICIT_BIT_CONVENTION = 0x00000002
16869
16872
16875
16876public:
16877public:
16878
16879public:
16880
16881public:
16882
16883public:
16884
16885public:
16886
16887public:
16888
16889public:
16890public:
16894 uint64_t exponentBias, Flags flags);
16895
16905
16908
16910 size_t signBit() const;
16911
16913 uint64_t exponentBias() const;
16914
16916 Flags flags() const;
16917
16923
16929 bool gradualUnderflow() const;
16930
16937
16938 // Overrides documented in base class
16939 virtual void check() const override;
16940 virtual std::string toString() const override;
16941public:
16944
16945public:
16948
16949protected:
16957#endif // SgAsmFloatType_OTHERS
16958#ifdef DOCUMENTATION
16959};
16960#endif // DOCUMENTATION
16961
16962
16964// SgAsmScalarType -- MACHINE GENERATED; DO NOT MODIFY --
16966
16967#ifndef DOCUMENTATION
16968AstNodeClass& AsmScalarType = nonTerminalConstructor(
16969 "AsmScalarType",
16970 *this,
16971 "AsmScalarType",
16972 "AsmScalarTypeTag",
16973 SubclassListBuilder()
16974 | AsmFloatType
16975 | AsmIntegerType
16976 | AsmPointerType
16977 , false);
16978assert(AsmScalarType.associatedGrammar != nullptr);
16979AsmScalarType.setCppCondition("!defined(DOCUMENTATION)");
16980AsmScalarType.isBoostSerializable(true);
16981AsmScalarType.setAutomaticGenerationOfConstructor(false);
16982AsmScalarType.setAutomaticGenerationOfDestructor(false);
16983#endif // !DOCUMENTATION
16984
16985#ifndef DOCUMENTATION
16986AsmScalarType.useSmallHeader(true);
16987#endif // !DOCUMENTATION
16988
16989DECLARE_HEADERS(AsmScalarType);
16990#if defined(SgAsmScalarType_HEADERS) || defined(DOCUMENTATION)
16991#include <Rose/BinaryAnalysis/ByteOrder.h>
16992#endif // SgAsmScalarType_HEADERS
16993
16994#ifdef DOCUMENTATION
16997#endif // DOCUMENTATION
16998
16999#ifndef DOCUMENTATION
17000 AsmScalarType.setDataPrototype(
17001 "Rose::BinaryAnalysis::ByteOrder::Endianness", "minorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17002 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17003#endif // !DOCUMENTATION
17004
17005#ifndef DOCUMENTATION
17006 AsmScalarType.setDataPrototype(
17007 "Rose::BinaryAnalysis::ByteOrder::Endianness", "majorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17008 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17009#endif // !DOCUMENTATION
17010
17011#ifndef DOCUMENTATION
17012 AsmScalarType.setDataPrototype(
17013 "size_t", "majorNBytes", "= 0",
17014 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17015#endif // !DOCUMENTATION
17016
17017#ifndef DOCUMENTATION
17018 AsmScalarType.setDataPrototype(
17019 "size_t", "nBits", "= 0",
17020 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17021#endif // !DOCUMENTATION
17022
17023 DECLARE_OTHERS(AsmScalarType);
17024#if defined(SgAsmScalarType_OTHERS) || defined(DOCUMENTATION)
17025
17026 //----------------------- Boost serialization for SgAsmScalarType -----------------------
17027#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17028private:
17029 friend class boost::serialization::access;
17030
17031 template<class S>
17032 void serialize(S &s, const unsigned /*version*/) {
17033 debugSerializationBegin("SgAsmScalarType");
17034 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
17035 s & BOOST_SERIALIZATION_NVP(p_minorOrder);
17036 s & BOOST_SERIALIZATION_NVP(p_majorOrder);
17037 s & BOOST_SERIALIZATION_NVP(p_majorNBytes);
17038 s & BOOST_SERIALIZATION_NVP(p_nBits);
17039 debugSerializationEnd("SgAsmScalarType");
17040 }
17041#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17042public:
17043public:
17044
17045public:
17051public:
17057public:
17062protected:
17068
17069public:
17071 virtual size_t get_nBits() const override;
17072
17075
17078
17080 size_t get_majorNBytes() const;
17081
17082 // Overrides documented in base class
17083 virtual void check() const override;
17084 virtual std::string toString() const override;
17085public:
17088
17089protected:
17092
17093protected:
17101#endif // SgAsmScalarType_OTHERS
17102#ifdef DOCUMENTATION
17103};
17104#endif // DOCUMENTATION
17105
17106
17108// SgAsmType -- MACHINE GENERATED; DO NOT MODIFY --
17110
17111#ifndef DOCUMENTATION
17112AstNodeClass& AsmType = nonTerminalConstructor(
17113 "AsmType",
17114 *this,
17115 "AsmType",
17116 "AsmTypeTag",
17117 SubclassListBuilder()
17118 | AsmScalarType
17119 | AsmVectorType
17120 | AsmVoidType
17121 , false);
17122assert(AsmType.associatedGrammar != nullptr);
17123AsmType.setCppCondition("!defined(DOCUMENTATION)");
17124AsmType.isBoostSerializable(true);
17125AsmType.setAutomaticGenerationOfConstructor(false);
17126AsmType.setAutomaticGenerationOfDestructor(false);
17127#endif // !DOCUMENTATION
17128
17129#ifndef DOCUMENTATION
17130AsmType.useSmallHeader(true);
17131#endif // !DOCUMENTATION
17132
17133#ifdef DOCUMENTATION
17135class SgAsmType: public SgAsmNode {
17136#endif // DOCUMENTATION
17137
17138 DECLARE_OTHERS(AsmType);
17139#if defined(SgAsmType_OTHERS) || defined(DOCUMENTATION)
17140
17141 //----------------------- Boost serialization for SgAsmType -----------------------
17142#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17143private:
17144 friend class boost::serialization::access;
17145
17146 template<class S>
17147 void serialize(S &s, const unsigned /*version*/) {
17148 debugSerializationBegin("SgAsmType");
17149 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
17150 debugSerializationEnd("SgAsmType");
17151 }
17152#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17153private:
17155
17156public:
17164 virtual void check() const;
17165
17171 virtual std::string toString() const {
17172 abort(); // ROSETTA limitation: intended pure virtual
17173 return NULL; // Windows limitation: return value required [Too, 2014-08-11]
17174 }
17175
17177 virtual size_t get_nBits() const {
17178 abort(); // ROSETTA limitation: intended pure virtual
17179 return (size_t)-1; // Windows limitation: return value required [Too, 2014-08-11]
17180 }
17181
17183 virtual size_t get_nBytes() const;
17184
17190 template<class Type> // Type is a subclass of SgAsmType
17191 static Type* registerOrDelete(Type *toInsert) {
17192 ASSERT_not_null(toInsert);
17193 std::string key = toInsert->toString();
17194 Type *retval = dynamic_cast<Type*>(p_typeRegistry.insertMaybe(key, toInsert));
17195 ASSERT_not_null(retval);
17196 if (retval!=toInsert)
17197 delete toInsert;
17198 return retval;
17199 }
17200public:
17202 virtual ~SgAsmType();
17203
17204protected:
17207
17208protected:
17216#endif // SgAsmType_OTHERS
17217#ifdef DOCUMENTATION
17218};
17219#endif // DOCUMENTATION
17220
17221
17223// SgAsmExprListExp -- MACHINE GENERATED; DO NOT MODIFY --
17225
17226DECLARE_LEAF_CLASS(AsmExprListExp);
17227IS_SERIALIZABLE(AsmExprListExp);
17228
17229#ifndef DOCUMENTATION
17230AsmExprListExp.useSmallHeader(true);
17231#endif // !DOCUMENTATION
17232
17233DECLARE_HEADERS(AsmExprListExp);
17234#if defined(SgAsmExprListExp_HEADERS) || defined(DOCUMENTATION)
17235#include <sageContainer.h>
17236#endif // SgAsmExprListExp_HEADERS
17237
17238#ifdef DOCUMENTATION
17241#endif // DOCUMENTATION
17242
17243#ifndef DOCUMENTATION
17244 AsmExprListExp.setDataPrototype(
17245 "SgAsmExpressionPtrList", "expressions", "",
17246 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17247#endif // !DOCUMENTATION
17248
17249 DECLARE_OTHERS(AsmExprListExp);
17250#if defined(SgAsmExprListExp_OTHERS) || defined(DOCUMENTATION)
17251
17252 //----------------------- Boost serialization for SgAsmExprListExp -----------------------
17253#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17254private:
17255 friend class boost::serialization::access;
17256
17257 template<class S>
17258 void serialize(S &s, const unsigned /*version*/) {
17259 debugSerializationBegin("SgAsmExprListExp");
17260 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
17261 s & BOOST_SERIALIZATION_NVP(p_expressions);
17262 debugSerializationEnd("SgAsmExprListExp");
17263 }
17264#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17265public:
17266public:
17273 SgAsmExpressionPtrList const& get_expressions() const;
17274 SgAsmExpressionPtrList& get_expressions();
17275 void set_expressions(SgAsmExpressionPtrList const&);
17278public:
17281
17282public:
17285
17286protected:
17294#endif // SgAsmExprListExp_OTHERS
17295#ifdef DOCUMENTATION
17296};
17297#endif // DOCUMENTATION
17298
17299
17301// SgAsmElfSymverSection -- MACHINE GENERATED; DO NOT MODIFY --
17303
17304DECLARE_LEAF_CLASS(AsmElfSymverSection);
17305IS_SERIALIZABLE(AsmElfSymverSection);
17306
17307#ifndef DOCUMENTATION
17308AsmElfSymverSection.useSmallHeader(true);
17309#endif // !DOCUMENTATION
17310
17311DECLARE_HEADERS(AsmElfSymverSection);
17312#if defined(SgAsmElfSymverSection_HEADERS) || defined(DOCUMENTATION)
17313#ifdef ROSE_SgAsmElfSymverSection_IMPL
17314#include <SgAsmElfSymverEntryList.h>
17315#endif
17316#endif // SgAsmElfSymverSection_HEADERS
17317
17318#ifdef DOCUMENTATION
17324#endif // DOCUMENTATION
17325
17326#ifndef DOCUMENTATION
17327 AsmElfSymverSection.setDataPrototype(
17328 "SgAsmElfSymverEntryList*", "entries", "= createAndParent<SgAsmElfSymverEntryList>(this)",
17329 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17330#endif // !DOCUMENTATION
17331
17332 DECLARE_OTHERS(AsmElfSymverSection);
17333#if defined(SgAsmElfSymverSection_OTHERS) || defined(DOCUMENTATION)
17334
17335 //----------------------- Boost serialization for SgAsmElfSymverSection -----------------------
17336#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17337private:
17338 friend class boost::serialization::access;
17339
17340 template<class S>
17341 void serialize(S &s, const unsigned /*version*/) {
17342 debugSerializationBegin("SgAsmElfSymverSection");
17343 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
17344 s & BOOST_SERIALIZATION_NVP(p_entries);
17345 debugSerializationEnd("SgAsmElfSymverSection");
17346 }
17347#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17348public:
17349public:
17359public:
17362
17364 virtual SgAsmElfSymverSection* parse() override;
17365
17370 virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
17371
17373 virtual void unparse(std::ostream&) const override;
17374
17376 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
17377
17379 // Deprecated 2023-11
17381public:
17382 using SgAsmElfSection::calculate_sizes;
17383 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override ROSE_DEPRECATED("use calculateSizes");
17384public:
17387
17388public:
17391
17392protected:
17400#endif // SgAsmElfSymverSection_OTHERS
17401#ifdef DOCUMENTATION
17402};
17403#endif // DOCUMENTATION
17404
17405
17407// SgAsmElfSymverNeededSection -- MACHINE GENERATED; DO NOT MODIFY --
17409
17410DECLARE_LEAF_CLASS(AsmElfSymverNeededSection);
17411IS_SERIALIZABLE(AsmElfSymverNeededSection);
17412
17413#ifndef DOCUMENTATION
17414AsmElfSymverNeededSection.useSmallHeader(true);
17415#endif // !DOCUMENTATION
17416
17417DECLARE_HEADERS(AsmElfSymverNeededSection);
17418#if defined(SgAsmElfSymverNeededSection_HEADERS) || defined(DOCUMENTATION)
17419#ifdef ROSE_SgAsmElfSymverNeededSection_IMPL
17420#include <SgAsmElfSymverNeededEntryList.h>
17421#endif
17422#endif // SgAsmElfSymverNeededSection_HEADERS
17423
17424#ifdef DOCUMENTATION
17431#endif // DOCUMENTATION
17432
17433#ifndef DOCUMENTATION
17434 AsmElfSymverNeededSection.setDataPrototype(
17435 "SgAsmElfSymverNeededEntryList*", "entries", "= createAndParent<SgAsmElfSymverNeededEntryList>(this)",
17436 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17437#endif // !DOCUMENTATION
17438
17439 DECLARE_OTHERS(AsmElfSymverNeededSection);
17440#if defined(SgAsmElfSymverNeededSection_OTHERS) || defined(DOCUMENTATION)
17441
17442 //----------------------- Boost serialization for SgAsmElfSymverNeededSection -----------------------
17443#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17444private:
17445 friend class boost::serialization::access;
17446
17447 template<class S>
17448 void serialize(S &s, const unsigned /*version*/) {
17449 debugSerializationBegin("SgAsmElfSymverNeededSection");
17450 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
17451 s & BOOST_SERIALIZATION_NVP(p_entries);
17452 debugSerializationEnd("SgAsmElfSymverNeededSection");
17453 }
17454#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17455public:
17456public:
17466public:
17471
17482
17483 using SgAsmElfSection::calculate_sizes;
17487 virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
17488
17492 virtual void unparse(std::ostream&) const override;
17493
17495 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
17496
17498 // Deprecated 2023-11
17500public:
17501 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override ROSE_DEPRECATED("use calculateSizes");
17502public:
17505
17506public:
17509
17510protected:
17518#endif // SgAsmElfSymverNeededSection_OTHERS
17519#ifdef DOCUMENTATION
17520};
17521#endif // DOCUMENTATION
17522
17523
17525// SgAsmElfSymverNeededEntryList -- MACHINE GENERATED; DO NOT MODIFY --
17527
17528DECLARE_LEAF_CLASS(AsmElfSymverNeededEntryList);
17529IS_SERIALIZABLE(AsmElfSymverNeededEntryList);
17530
17531#ifndef DOCUMENTATION
17532AsmElfSymverNeededEntryList.useSmallHeader(true);
17533#endif // !DOCUMENTATION
17534
17535DECLARE_HEADERS(AsmElfSymverNeededEntryList);
17536#if defined(SgAsmElfSymverNeededEntryList_HEADERS) || defined(DOCUMENTATION)
17537#include <sageContainer.h>
17538#endif // SgAsmElfSymverNeededEntryList_HEADERS
17539
17540#ifdef DOCUMENTATION
17546#endif // DOCUMENTATION
17547
17548#ifndef DOCUMENTATION
17549 AsmElfSymverNeededEntryList.setDataPrototype(
17550 "SgAsmElfSymverNeededEntryPtrList", "entries", "",
17551 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17552#endif // !DOCUMENTATION
17553
17554 DECLARE_OTHERS(AsmElfSymverNeededEntryList);
17555#if defined(SgAsmElfSymverNeededEntryList_OTHERS) || defined(DOCUMENTATION)
17556
17557 //----------------------- Boost serialization for SgAsmElfSymverNeededEntryList -----------------------
17558#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17559private:
17560 friend class boost::serialization::access;
17561
17562 template<class S>
17563 void serialize(S &s, const unsigned /*version*/) {
17564 debugSerializationBegin("SgAsmElfSymverNeededEntryList");
17565 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
17566 s & BOOST_SERIALIZATION_NVP(p_entries);
17567 debugSerializationEnd("SgAsmElfSymverNeededEntryList");
17568 }
17569#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17570public:
17571public:
17575 SgAsmElfSymverNeededEntryPtrList const& get_entries() const;
17576 SgAsmElfSymverNeededEntryPtrList& get_entries();
17577 void set_entries(SgAsmElfSymverNeededEntryPtrList const&);
17580public:
17583
17584public:
17587
17588protected:
17596#endif // SgAsmElfSymverNeededEntryList_OTHERS
17597#ifdef DOCUMENTATION
17598};
17599#endif // DOCUMENTATION
17600
17601
17603// SgAsmElfSymverNeededEntry -- MACHINE GENERATED; DO NOT MODIFY --
17605
17606DECLARE_LEAF_CLASS(AsmElfSymverNeededEntry);
17607IS_SERIALIZABLE(AsmElfSymverNeededEntry);
17608
17609#ifndef DOCUMENTATION
17610AsmElfSymverNeededEntry.useSmallHeader(true);
17611#endif // !DOCUMENTATION
17612
17613DECLARE_HEADERS(AsmElfSymverNeededEntry);
17614#if defined(SgAsmElfSymverNeededEntry_HEADERS) || defined(DOCUMENTATION)
17615#include <Rose/BinaryAnalysis/ByteOrder.h>
17616
17617#ifdef ROSE_SgAsmElfSymverNeededEntry_IMPL
17618#include <SgAsmElfSymverNeededAuxList.h>
17619#include <SgAsmGenericString.h>
17620#endif
17621#endif // SgAsmElfSymverNeededEntry_HEADERS
17622
17623#ifdef DOCUMENTATION
17626#endif // DOCUMENTATION
17627
17628#ifndef DOCUMENTATION
17629 AsmElfSymverNeededEntry.setDataPrototype(
17630 "size_t", "version", "= 0",
17631 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17632#endif // !DOCUMENTATION
17633
17634#ifndef DOCUMENTATION
17635 AsmElfSymverNeededEntry.setDataPrototype(
17636 "SgAsmGenericString*", "fileName", "= nullptr",
17637 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17638#endif // !DOCUMENTATION
17639
17640#ifndef DOCUMENTATION
17641 AsmElfSymverNeededEntry.setDataPrototype(
17642 "SgAsmElfSymverNeededAuxList*", "entries", "= createAndParent<SgAsmElfSymverNeededAuxList>(this)",
17643 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17644#endif // !DOCUMENTATION
17645
17646 DECLARE_OTHERS(AsmElfSymverNeededEntry);
17647#if defined(SgAsmElfSymverNeededEntry_OTHERS) || defined(DOCUMENTATION)
17648
17649 //----------------------- Boost serialization for SgAsmElfSymverNeededEntry -----------------------
17650#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17651private:
17652 friend class boost::serialization::access;
17653
17654 template<class S>
17655 void serialize(S &s, const unsigned /*version*/) {
17656 debugSerializationBegin("SgAsmElfSymverNeededEntry");
17657 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
17658 s & BOOST_SERIALIZATION_NVP(p_version);
17659 s & BOOST_SERIALIZATION_NVP(p_fileName);
17660 s & BOOST_SERIALIZATION_NVP(p_entries);
17661 debugSerializationEnd("SgAsmElfSymverNeededEntry");
17662 }
17663#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17665 // Local types
17667public:
17668#ifdef _MSC_VER
17669# pragma pack (1)
17670#endif
17671
17674 uint16_t vn_version;
17675 uint16_t vn_cnt;
17676 uint32_t vn_file;
17677 uint32_t vn_aux;
17678 uint32_t vn_next;
17679 }
17680#if !defined(SWIG) && !defined(_MSC_VER)
17681 __attribute__((packed))
17682#endif
17683 ;
17684
17685#ifdef _MSC_VER
17686# pragma pack ()
17687#endif
17688
17690 // Properties
17692public:
17693public:
17699 size_t const& get_version() const;
17700 void set_version(size_t const&);
17703public:
17711public:
17722 // Functions
17724public:
17727
17730
17733
17735 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
17736
17738 // Deprecated 2023-11
17740public:
17741 SgAsmGenericString* get_file_name() const ROSE_DEPRECATED("use get_fileName");
17742 void set_file_name(SgAsmGenericString*) ROSE_DEPRECATED("use set_fileName");
17743public:
17746
17747public:
17750
17751protected:
17759#endif // SgAsmElfSymverNeededEntry_OTHERS
17760#ifdef DOCUMENTATION
17761};
17762#endif // DOCUMENTATION
17763
17764
17766// SgAsmElfSymverNeededAuxList -- MACHINE GENERATED; DO NOT MODIFY --
17768
17769DECLARE_LEAF_CLASS(AsmElfSymverNeededAuxList);
17770IS_SERIALIZABLE(AsmElfSymverNeededAuxList);
17771
17772#ifndef DOCUMENTATION
17773AsmElfSymverNeededAuxList.useSmallHeader(true);
17774#endif // !DOCUMENTATION
17775
17776DECLARE_HEADERS(AsmElfSymverNeededAuxList);
17777#if defined(SgAsmElfSymverNeededAuxList_HEADERS) || defined(DOCUMENTATION)
17778#include <sageContainer.h>
17779#endif // SgAsmElfSymverNeededAuxList_HEADERS
17780
17781#ifdef DOCUMENTATION
17787#endif // DOCUMENTATION
17788
17789#ifndef DOCUMENTATION
17790 AsmElfSymverNeededAuxList.setDataPrototype(
17791 "SgAsmElfSymverNeededAuxPtrList", "entries", "",
17792 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17793#endif // !DOCUMENTATION
17794
17795 DECLARE_OTHERS(AsmElfSymverNeededAuxList);
17796#if defined(SgAsmElfSymverNeededAuxList_OTHERS) || defined(DOCUMENTATION)
17797
17798 //----------------------- Boost serialization for SgAsmElfSymverNeededAuxList -----------------------
17799#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17800private:
17801 friend class boost::serialization::access;
17802
17803 template<class S>
17804 void serialize(S &s, const unsigned /*version*/) {
17805 debugSerializationBegin("SgAsmElfSymverNeededAuxList");
17806 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
17807 s & BOOST_SERIALIZATION_NVP(p_entries);
17808 debugSerializationEnd("SgAsmElfSymverNeededAuxList");
17809 }
17810#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17811public:
17812public:
17816 SgAsmElfSymverNeededAuxPtrList const& get_entries() const;
17817 SgAsmElfSymverNeededAuxPtrList& get_entries();
17818 void set_entries(SgAsmElfSymverNeededAuxPtrList const&);
17821public:
17824
17825public:
17828
17829protected:
17837#endif // SgAsmElfSymverNeededAuxList_OTHERS
17838#ifdef DOCUMENTATION
17839};
17840#endif // DOCUMENTATION
17841
17842
17844// SgAsmElfSymverNeededAux -- MACHINE GENERATED; DO NOT MODIFY --
17846
17847DECLARE_LEAF_CLASS(AsmElfSymverNeededAux);
17848IS_SERIALIZABLE(AsmElfSymverNeededAux);
17849
17850#ifndef DOCUMENTATION
17851AsmElfSymverNeededAux.useSmallHeader(true);
17852#endif // !DOCUMENTATION
17853
17854DECLARE_HEADERS(AsmElfSymverNeededAux);
17855#if defined(SgAsmElfSymverNeededAux_HEADERS) || defined(DOCUMENTATION)
17856#include <Rose/BinaryAnalysis/ByteOrder.h>
17857
17858#ifdef ROSE_SgAsmElfSymverNeededAux_IMPL
17859#include <SgAsmGenericString.h>
17860#endif
17861#endif // SgAsmElfSymverNeededAux_HEADERS
17862
17863#ifdef DOCUMENTATION
17866#endif // DOCUMENTATION
17867
17868#ifndef DOCUMENTATION
17869 AsmElfSymverNeededAux.setDataPrototype(
17870 "uint32_t", "hash", "= 0",
17871 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17872#endif // !DOCUMENTATION
17873
17874#ifndef DOCUMENTATION
17875 AsmElfSymverNeededAux.setDataPrototype(
17876 "int", "flags", "= 0",
17877 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17878#endif // !DOCUMENTATION
17879
17880#ifndef DOCUMENTATION
17881 AsmElfSymverNeededAux.setDataPrototype(
17882 "size_t", "other", "= 0",
17883 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17884#endif // !DOCUMENTATION
17885
17886#ifndef DOCUMENTATION
17887 AsmElfSymverNeededAux.setDataPrototype(
17888 "SgAsmGenericString*", "name", "= 0",
17889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17890#endif // !DOCUMENTATION
17891
17892 DECLARE_OTHERS(AsmElfSymverNeededAux);
17893#if defined(SgAsmElfSymverNeededAux_OTHERS) || defined(DOCUMENTATION)
17894
17895 //----------------------- Boost serialization for SgAsmElfSymverNeededAux -----------------------
17896#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
17897private:
17898 friend class boost::serialization::access;
17899
17900 template<class S>
17901 void serialize(S &s, const unsigned /*version*/) {
17902 debugSerializationBegin("SgAsmElfSymverNeededAux");
17903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
17904 s & BOOST_SERIALIZATION_NVP(p_hash);
17905 s & BOOST_SERIALIZATION_NVP(p_flags);
17906 s & BOOST_SERIALIZATION_NVP(p_other);
17907 s & BOOST_SERIALIZATION_NVP(p_name);
17908 debugSerializationEnd("SgAsmElfSymverNeededAux");
17909 }
17910#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
17912 // Local types
17914public:
17915#ifdef _MSC_VER
17916# pragma pack (1)
17917#endif
17918
17921 uint32_t vna_hash;
17922 uint16_t vna_flags;
17923 uint16_t vna_other;
17924 uint32_t vna_name;
17925 uint32_t vna_next;
17926 }
17927#if !defined(SWIG) && !defined(_MSC_VER)
17928 __attribute__((packed))
17929#endif
17930 ;
17931
17932#ifdef _MSC_VER
17933# pragma pack ()
17934#endif
17935
17937 // Properties
17939public:
17940public:
17946 uint32_t const& get_hash() const;
17947 void set_hash(uint32_t const&);
17950public:
17956 int const& get_flags() const;
17957 void set_flags(int const&);
17960public:
17966 size_t const& get_other() const;
17967 void set_other(size_t const&);
17970public:
17978 // Functions
17980public:
17986
17989
17992
17998 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
17999public:
18002
18003public:
18006
18007protected:
18015#endif // SgAsmElfSymverNeededAux_OTHERS
18016#ifdef DOCUMENTATION
18017};
18018#endif // DOCUMENTATION
18019
18020
18022// SgAsmElfSymverEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18024
18025DECLARE_LEAF_CLASS(AsmElfSymverEntryList);
18026IS_SERIALIZABLE(AsmElfSymverEntryList);
18027
18028#ifndef DOCUMENTATION
18029AsmElfSymverEntryList.useSmallHeader(true);
18030#endif // !DOCUMENTATION
18031
18032DECLARE_HEADERS(AsmElfSymverEntryList);
18033#if defined(SgAsmElfSymverEntryList_HEADERS) || defined(DOCUMENTATION)
18034#include <sageContainer.h>
18035#endif // SgAsmElfSymverEntryList_HEADERS
18036
18037#ifdef DOCUMENTATION
18043#endif // DOCUMENTATION
18044
18045#ifndef DOCUMENTATION
18046 AsmElfSymverEntryList.setDataPrototype(
18047 "SgAsmElfSymverEntryPtrList", "entries", "",
18048 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18049#endif // !DOCUMENTATION
18050
18051 DECLARE_OTHERS(AsmElfSymverEntryList);
18052#if defined(SgAsmElfSymverEntryList_OTHERS) || defined(DOCUMENTATION)
18053
18054 //----------------------- Boost serialization for SgAsmElfSymverEntryList -----------------------
18055#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18056private:
18057 friend class boost::serialization::access;
18058
18059 template<class S>
18060 void serialize(S &s, const unsigned /*version*/) {
18061 debugSerializationBegin("SgAsmElfSymverEntryList");
18062 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18063 s & BOOST_SERIALIZATION_NVP(p_entries);
18064 debugSerializationEnd("SgAsmElfSymverEntryList");
18065 }
18066#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18067public:
18068public:
18072 SgAsmElfSymverEntryPtrList const& get_entries() const;
18073 SgAsmElfSymverEntryPtrList& get_entries();
18074 void set_entries(SgAsmElfSymverEntryPtrList const&);
18077public:
18080
18081public:
18084
18085protected:
18093#endif // SgAsmElfSymverEntryList_OTHERS
18094#ifdef DOCUMENTATION
18095};
18096#endif // DOCUMENTATION
18097
18098
18100// SgAsmElfSymverEntry -- MACHINE GENERATED; DO NOT MODIFY --
18102
18103DECLARE_LEAF_CLASS(AsmElfSymverEntry);
18104IS_SERIALIZABLE(AsmElfSymverEntry);
18105
18106#ifndef DOCUMENTATION
18107AsmElfSymverEntry.useSmallHeader(true);
18108#endif // !DOCUMENTATION
18109
18110#ifdef DOCUMENTATION
18113#endif // DOCUMENTATION
18114
18115#ifndef DOCUMENTATION
18116 AsmElfSymverEntry.setDataPrototype(
18117 "size_t", "value", "= 0",
18118 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18119#endif // !DOCUMENTATION
18120
18121 DECLARE_OTHERS(AsmElfSymverEntry);
18122#if defined(SgAsmElfSymverEntry_OTHERS) || defined(DOCUMENTATION)
18123
18124 //----------------------- Boost serialization for SgAsmElfSymverEntry -----------------------
18125#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18126private:
18127 friend class boost::serialization::access;
18128
18129 template<class S>
18130 void serialize(S &s, const unsigned /*version*/) {
18131 debugSerializationBegin("SgAsmElfSymverEntry");
18132 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18133 s & BOOST_SERIALIZATION_NVP(p_value);
18134 debugSerializationEnd("SgAsmElfSymverEntry");
18135 }
18136#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18137public:
18138public:
18144 size_t const& get_value() const;
18145 void set_value(size_t const&);
18147public:
18150
18152 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18153public:
18156
18157public:
18160
18161protected:
18169#endif // SgAsmElfSymverEntry_OTHERS
18170#ifdef DOCUMENTATION
18171};
18172#endif // DOCUMENTATION
18173
18174
18176// SgAsmElfSymverDefinedSection -- MACHINE GENERATED; DO NOT MODIFY --
18178
18179DECLARE_LEAF_CLASS(AsmElfSymverDefinedSection);
18180IS_SERIALIZABLE(AsmElfSymverDefinedSection);
18181
18182#ifndef DOCUMENTATION
18183AsmElfSymverDefinedSection.useSmallHeader(true);
18184#endif // !DOCUMENTATION
18185
18186DECLARE_HEADERS(AsmElfSymverDefinedSection);
18187#if defined(SgAsmElfSymverDefinedSection_HEADERS) || defined(DOCUMENTATION)
18188#ifdef ROSE_SgAsmElfSymverDefinedSection_IMPL
18189#include <SgAsmElfSymverDefinedEntryList.h>
18190#endif
18191#endif // SgAsmElfSymverDefinedSection_HEADERS
18192
18193#ifdef DOCUMENTATION
18200#endif // DOCUMENTATION
18201
18202#ifndef DOCUMENTATION
18203 AsmElfSymverDefinedSection.setDataPrototype(
18204 "SgAsmElfSymverDefinedEntryList*", "entries", "= createAndParent<SgAsmElfSymverDefinedEntryList>(this)",
18205 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18206#endif // !DOCUMENTATION
18207
18208 DECLARE_OTHERS(AsmElfSymverDefinedSection);
18209#if defined(SgAsmElfSymverDefinedSection_OTHERS) || defined(DOCUMENTATION)
18210
18211 //----------------------- Boost serialization for SgAsmElfSymverDefinedSection -----------------------
18212#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18213private:
18214 friend class boost::serialization::access;
18215
18216 template<class S>
18217 void serialize(S &s, const unsigned /*version*/) {
18218 debugSerializationBegin("SgAsmElfSymverDefinedSection");
18219 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
18220 s & BOOST_SERIALIZATION_NVP(p_entries);
18221 debugSerializationEnd("SgAsmElfSymverDefinedSection");
18222 }
18223#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18224public:
18225public:
18235public:
18238
18308
18311 virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
18312
18316 virtual void unparse(std::ostream&) const override;
18317
18319 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
18320
18322 // Deprecated 2023-11
18324public:
18325 using SgAsmElfSection::calculate_sizes;
18326 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override ROSE_DEPRECATED("use calculateSizes");
18327public:
18330
18331public:
18334
18335protected:
18343#endif // SgAsmElfSymverDefinedSection_OTHERS
18344#ifdef DOCUMENTATION
18345};
18346#endif // DOCUMENTATION
18347
18348
18350// SgAsmElfSymverDefinedEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18352
18353DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntryList);
18354IS_SERIALIZABLE(AsmElfSymverDefinedEntryList);
18355
18356#ifndef DOCUMENTATION
18357AsmElfSymverDefinedEntryList.useSmallHeader(true);
18358#endif // !DOCUMENTATION
18359
18360DECLARE_HEADERS(AsmElfSymverDefinedEntryList);
18361#if defined(SgAsmElfSymverDefinedEntryList_HEADERS) || defined(DOCUMENTATION)
18362#include <sageContainer.h>
18363#endif // SgAsmElfSymverDefinedEntryList_HEADERS
18364
18365#ifdef DOCUMENTATION
18371#endif // DOCUMENTATION
18372
18373#ifndef DOCUMENTATION
18374 AsmElfSymverDefinedEntryList.setDataPrototype(
18375 "SgAsmElfSymverDefinedEntryPtrList", "entries", "",
18376 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18377#endif // !DOCUMENTATION
18378
18379 DECLARE_OTHERS(AsmElfSymverDefinedEntryList);
18380#if defined(SgAsmElfSymverDefinedEntryList_OTHERS) || defined(DOCUMENTATION)
18381
18382 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntryList -----------------------
18383#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18384private:
18385 friend class boost::serialization::access;
18386
18387 template<class S>
18388 void serialize(S &s, const unsigned /*version*/) {
18389 debugSerializationBegin("SgAsmElfSymverDefinedEntryList");
18390 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18391 s & BOOST_SERIALIZATION_NVP(p_entries);
18392 debugSerializationEnd("SgAsmElfSymverDefinedEntryList");
18393 }
18394#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18395public:
18396public:
18400 SgAsmElfSymverDefinedEntryPtrList const& get_entries() const;
18401 SgAsmElfSymverDefinedEntryPtrList& get_entries();
18402 void set_entries(SgAsmElfSymverDefinedEntryPtrList const&);
18405public:
18408
18409public:
18412
18413protected:
18421#endif // SgAsmElfSymverDefinedEntryList_OTHERS
18422#ifdef DOCUMENTATION
18423};
18424#endif // DOCUMENTATION
18425
18426
18428// SgAsmElfSymverDefinedEntry -- MACHINE GENERATED; DO NOT MODIFY --
18430
18431DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntry);
18432IS_SERIALIZABLE(AsmElfSymverDefinedEntry);
18433
18434#ifndef DOCUMENTATION
18435AsmElfSymverDefinedEntry.useSmallHeader(true);
18436#endif // !DOCUMENTATION
18437
18438DECLARE_HEADERS(AsmElfSymverDefinedEntry);
18439#if defined(SgAsmElfSymverDefinedEntry_HEADERS) || defined(DOCUMENTATION)
18440#include <Rose/BinaryAnalysis/ByteOrder.h>
18441
18442#ifdef ROSE_SgAsmElfSymverDefinedEntry_IMPL
18443#include <SgAsmElfSymverDefinedAuxList.h>
18444#endif
18445#endif // SgAsmElfSymverDefinedEntry_HEADERS
18446
18447#ifdef DOCUMENTATION
18450#endif // DOCUMENTATION
18451
18452#ifndef DOCUMENTATION
18453 AsmElfSymverDefinedEntry.setDataPrototype(
18454 "size_t", "version", "= 0",
18455 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18456#endif // !DOCUMENTATION
18457
18458#ifndef DOCUMENTATION
18459 AsmElfSymverDefinedEntry.setDataPrototype(
18460 "int", "flags", "= 0",
18461 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18462#endif // !DOCUMENTATION
18463
18464#ifndef DOCUMENTATION
18465 AsmElfSymverDefinedEntry.setDataPrototype(
18466 "size_t", "index", "= 0",
18467 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18468#endif // !DOCUMENTATION
18469
18470#ifndef DOCUMENTATION
18471 AsmElfSymverDefinedEntry.setDataPrototype(
18472 "uint32_t", "hash", "= 0",
18473 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18474#endif // !DOCUMENTATION
18475
18476#ifndef DOCUMENTATION
18477 AsmElfSymverDefinedEntry.setDataPrototype(
18478 "SgAsmElfSymverDefinedAuxList*", "entries", "= createAndParent<SgAsmElfSymverDefinedAuxList>(this)",
18479 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18480#endif // !DOCUMENTATION
18481
18482 DECLARE_OTHERS(AsmElfSymverDefinedEntry);
18483#if defined(SgAsmElfSymverDefinedEntry_OTHERS) || defined(DOCUMENTATION)
18484
18485 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntry -----------------------
18486#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18487private:
18488 friend class boost::serialization::access;
18489
18490 template<class S>
18491 void serialize(S &s, const unsigned /*version*/) {
18492 debugSerializationBegin("SgAsmElfSymverDefinedEntry");
18493 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18494 s & BOOST_SERIALIZATION_NVP(p_version);
18495 s & BOOST_SERIALIZATION_NVP(p_flags);
18496 s & BOOST_SERIALIZATION_NVP(p_index);
18497 s & BOOST_SERIALIZATION_NVP(p_hash);
18498 s & BOOST_SERIALIZATION_NVP(p_entries);
18499 debugSerializationEnd("SgAsmElfSymverDefinedEntry");
18500 }
18501#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18503 // Local types
18505public:
18506#ifdef _MSC_VER
18507# pragma pack (1)
18508#endif
18511 uint16_t vd_version;
18512 uint16_t vd_flags;
18513 uint16_t vd_ndx;
18514 uint16_t vd_cnt;
18515 uint32_t vd_hash;
18516 uint32_t vd_aux;
18517 uint32_t vd_next;
18518 }
18519#if !defined(SWIG) && !defined(_MSC_VER)
18520 __attribute__((packed))
18521#endif
18522 ;
18523
18524#ifdef _MSC_VER
18525# pragma pack ()
18526#endif
18527
18529 // Properties
18531public:
18532public:
18538 size_t const& get_version() const;
18539 void set_version(size_t const&);
18542public:
18548 int const& get_flags() const;
18549 void set_flags(int const&);
18552public:
18558 size_t const& get_index() const;
18559 void set_index(size_t const&);
18562public:
18568 uint32_t const& get_hash() const;
18569 void set_hash(uint32_t const&);
18572public:
18583 // Functions
18585public:
18588
18591
18594
18596 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18597public:
18600
18601public:
18604
18605protected:
18613#endif // SgAsmElfSymverDefinedEntry_OTHERS
18614#ifdef DOCUMENTATION
18615};
18616#endif // DOCUMENTATION
18617
18618
18620// SgAsmElfSymverDefinedAuxList -- MACHINE GENERATED; DO NOT MODIFY --
18622
18623DECLARE_LEAF_CLASS(AsmElfSymverDefinedAuxList);
18624IS_SERIALIZABLE(AsmElfSymverDefinedAuxList);
18625
18626#ifndef DOCUMENTATION
18627AsmElfSymverDefinedAuxList.useSmallHeader(true);
18628#endif // !DOCUMENTATION
18629
18630DECLARE_HEADERS(AsmElfSymverDefinedAuxList);
18631#if defined(SgAsmElfSymverDefinedAuxList_HEADERS) || defined(DOCUMENTATION)
18632#include <sageContainer.h>
18633#endif // SgAsmElfSymverDefinedAuxList_HEADERS
18634
18635#ifdef DOCUMENTATION
18641#endif // DOCUMENTATION
18642
18643#ifndef DOCUMENTATION
18644 AsmElfSymverDefinedAuxList.setDataPrototype(
18645 "SgAsmElfSymverDefinedAuxPtrList", "entries", "",
18646 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18647#endif // !DOCUMENTATION
18648
18649 DECLARE_OTHERS(AsmElfSymverDefinedAuxList);
18650#if defined(SgAsmElfSymverDefinedAuxList_OTHERS) || defined(DOCUMENTATION)
18651
18652 //----------------------- Boost serialization for SgAsmElfSymverDefinedAuxList -----------------------
18653#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18654private:
18655 friend class boost::serialization::access;
18656
18657 template<class S>
18658 void serialize(S &s, const unsigned /*version*/) {
18659 debugSerializationBegin("SgAsmElfSymverDefinedAuxList");
18660 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18661 s & BOOST_SERIALIZATION_NVP(p_entries);
18662 debugSerializationEnd("SgAsmElfSymverDefinedAuxList");
18663 }
18664#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18665public:
18666public:
18670 SgAsmElfSymverDefinedAuxPtrList const& get_entries() const;
18671 SgAsmElfSymverDefinedAuxPtrList& get_entries();
18672 void set_entries(SgAsmElfSymverDefinedAuxPtrList const&);
18675public:
18678
18679public:
18682
18683protected:
18691#endif // SgAsmElfSymverDefinedAuxList_OTHERS
18692#ifdef DOCUMENTATION
18693};
18694#endif // DOCUMENTATION
18695
18696
18698// SgAsmElfSymverDefinedAux -- MACHINE GENERATED; DO NOT MODIFY --
18700
18701DECLARE_LEAF_CLASS(AsmElfSymverDefinedAux);
18702IS_SERIALIZABLE(AsmElfSymverDefinedAux);
18703
18704#ifndef DOCUMENTATION
18705AsmElfSymverDefinedAux.useSmallHeader(true);
18706#endif // !DOCUMENTATION
18707
18708DECLARE_HEADERS(AsmElfSymverDefinedAux);
18709#if defined(SgAsmElfSymverDefinedAux_HEADERS) || defined(DOCUMENTATION)
18710#include <Rose/BinaryAnalysis/ByteOrder.h>
18711
18712#ifdef ROSE_SgAsmElfSymverDefinedAux_IMPL
18713#include <SgAsmGenericString.h>
18714#endif
18715#endif // SgAsmElfSymverDefinedAux_HEADERS
18716
18717#ifdef DOCUMENTATION
18720#endif // DOCUMENTATION
18721
18722#ifndef DOCUMENTATION
18723 AsmElfSymverDefinedAux.setDataPrototype(
18724 "SgAsmGenericString*", "name", "= 0",
18725 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18726#endif // !DOCUMENTATION
18727
18728 DECLARE_OTHERS(AsmElfSymverDefinedAux);
18729#if defined(SgAsmElfSymverDefinedAux_OTHERS) || defined(DOCUMENTATION)
18730
18731 //----------------------- Boost serialization for SgAsmElfSymverDefinedAux -----------------------
18732#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18733private:
18734 friend class boost::serialization::access;
18735
18736 template<class S>
18737 void serialize(S &s, const unsigned /*version*/) {
18738 debugSerializationBegin("SgAsmElfSymverDefinedAux");
18739 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18740 s & BOOST_SERIALIZATION_NVP(p_name);
18741 debugSerializationEnd("SgAsmElfSymverDefinedAux");
18742 }
18743#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18745 // Local types
18747public:
18748#ifdef _MSC_VER
18749# pragma pack (1)
18750#endif
18751
18754 uint32_t vda_name;
18755 uint32_t vda_next;
18756 }
18757#if !defined(SWIG) && !defined(_MSC_VER)
18758 __attribute__((packed))
18759#endif
18760 ;
18761
18762#ifdef _MSC_VER
18763# pragma pack ()
18764#endif
18765
18767 // Properties
18769public:
18770public:
18778 // Functions
18780public:
18785
18788
18791
18797 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18798public:
18801
18802public:
18805
18806protected:
18814#endif // SgAsmElfSymverDefinedAux_OTHERS
18815#ifdef DOCUMENTATION
18816};
18817#endif // DOCUMENTATION
18818
18819
18821// SgAsmElfSymbolSection -- MACHINE GENERATED; DO NOT MODIFY --
18823
18824DECLARE_LEAF_CLASS(AsmElfSymbolSection);
18825IS_SERIALIZABLE(AsmElfSymbolSection);
18826
18827#ifndef DOCUMENTATION
18828AsmElfSymbolSection.useSmallHeader(true);
18829#endif // !DOCUMENTATION
18830
18831DECLARE_HEADERS(AsmElfSymbolSection);
18832#if defined(SgAsmElfSymbolSection_HEADERS) || defined(DOCUMENTATION)
18833#ifdef ROSE_SgAsmElfSymbolSection_IMPL
18834#include <SgAsmElfSymbolList.h>
18835#endif
18836#endif // SgAsmElfSymbolSection_HEADERS
18837
18838#ifdef DOCUMENTATION
18841#endif // DOCUMENTATION
18842
18843#ifndef DOCUMENTATION
18844 AsmElfSymbolSection.setDataPrototype(
18845 "bool", "isDynamic", "= false",
18846 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18847#endif // !DOCUMENTATION
18848
18849#ifndef DOCUMENTATION
18850 AsmElfSymbolSection.setDataPrototype(
18851 "SgAsmElfSymbolList*", "symbols", "= createAndParent<SgAsmElfSymbolList>(this)",
18852 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18853#endif // !DOCUMENTATION
18854
18855 DECLARE_OTHERS(AsmElfSymbolSection);
18856#if defined(SgAsmElfSymbolSection_OTHERS) || defined(DOCUMENTATION)
18857
18858 //----------------------- Boost serialization for SgAsmElfSymbolSection -----------------------
18859#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18860private:
18861 friend class boost::serialization::access;
18862
18863 template<class S>
18864 void serialize(S &s, const unsigned /*version*/) {
18865 debugSerializationBegin("SgAsmElfSymbolSection");
18866 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
18867 s & BOOST_SERIALIZATION_NVP(p_isDynamic);
18868 s & BOOST_SERIALIZATION_NVP(p_symbols);
18869 debugSerializationEnd("SgAsmElfSymbolSection");
18870 }
18871#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
18872public:
18873public:
18877 bool const& get_isDynamic() const;
18878 void set_isDynamic(bool const&);
18881public:
18891public:
18894
18896 virtual SgAsmElfSymbolSection* parse() override;
18897
18910 virtual void finishParsing() override;
18911
18914
18919 virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
18920
18924 virtual bool reallocate() override;
18925
18927 virtual void unparse(std::ostream&) const override;
18928
18930 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
18931
18933 // Deprecated 2023-11
18935public:
18936 bool get_is_dynamic() const ROSE_DEPRECATED("use get_isDynamic");
18937 void set_is_dynamic(bool) ROSE_DEPRECATED("use set_isDynamic");
18938 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing");
18939 size_t index_of(SgAsmElfSymbol*) ROSE_DEPRECATED("use indexOf");
18940 using SgAsmElfSection::calculate_sizes;
18941 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override ROSE_DEPRECATED("use calculateSizes");
18942public:
18945
18946public:
18949
18950protected:
18958#endif // SgAsmElfSymbolSection_OTHERS
18959#ifdef DOCUMENTATION
18960};
18961#endif // DOCUMENTATION
18962
18963
18965// SgAsmElfSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
18967
18968DECLARE_LEAF_CLASS(AsmElfSymbolList);
18969IS_SERIALIZABLE(AsmElfSymbolList);
18970
18971#ifndef DOCUMENTATION
18972AsmElfSymbolList.useSmallHeader(true);
18973#endif // !DOCUMENTATION
18974
18975DECLARE_HEADERS(AsmElfSymbolList);
18976#if defined(SgAsmElfSymbolList_HEADERS) || defined(DOCUMENTATION)
18977#include <sageContainer.h>
18978#endif // SgAsmElfSymbolList_HEADERS
18979
18980#ifdef DOCUMENTATION
18982#endif // DOCUMENTATION
18983
18984#ifndef DOCUMENTATION
18985 AsmElfSymbolList.setDataPrototype(
18986 "SgAsmElfSymbolPtrList", "symbols", "",
18987 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18988#endif // !DOCUMENTATION
18989
18990 DECLARE_OTHERS(AsmElfSymbolList);
18991#if defined(SgAsmElfSymbolList_OTHERS) || defined(DOCUMENTATION)
18992
18993 //----------------------- Boost serialization for SgAsmElfSymbolList -----------------------
18994#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
18995private:
18996 friend class boost::serialization::access;
18997
18998 template<class S>
18999 void serialize(S &s, const unsigned /*version*/) {
19000 debugSerializationBegin("SgAsmElfSymbolList");
19001 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19002 s & BOOST_SERIALIZATION_NVP(p_symbols);
19003 debugSerializationEnd("SgAsmElfSymbolList");
19004 }
19005#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
19006public:
19007public:
19014 SgAsmElfSymbolPtrList const& get_symbols() const;
19015 SgAsmElfSymbolPtrList& get_symbols();
19016 void set_symbols(SgAsmElfSymbolPtrList const&);
19019public:
19022
19023public:
19026
19027protected:
19035#endif // SgAsmElfSymbolList_OTHERS
19036#ifdef DOCUMENTATION
19037};
19038#endif // DOCUMENTATION
19039
19040
19042// SgAsmElfSymbol -- MACHINE GENERATED; DO NOT MODIFY --
19044
19045DECLARE_LEAF_CLASS(AsmElfSymbol);
19046IS_SERIALIZABLE(AsmElfSymbol);
19047
19048#ifndef DOCUMENTATION
19049AsmElfSymbol.useSmallHeader(true);
19050#endif // !DOCUMENTATION
19051
19052DECLARE_HEADERS(AsmElfSymbol);
19053#if defined(SgAsmElfSymbol_HEADERS) || defined(DOCUMENTATION)
19054#include <Rose/BinaryAnalysis/ByteOrder.h>
19055#include <sageContainer.h>
19056#endif // SgAsmElfSymbol_HEADERS
19057
19058#ifdef DOCUMENTATION
19064#endif // DOCUMENTATION
19065
19066#ifndef DOCUMENTATION
19067 AsmElfSymbol.setDataPrototype(
19068 "unsigned char", "st_info", "= 0",
19069 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19070#endif // !DOCUMENTATION
19071
19072#ifndef DOCUMENTATION
19073 AsmElfSymbol.setDataPrototype(
19074 "unsigned char", "st_res1", "= 0",
19075 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19076#endif // !DOCUMENTATION
19077
19078#ifndef DOCUMENTATION
19079 AsmElfSymbol.setDataPrototype(
19080 "unsigned", "st_shndx", "= 0",
19081 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19082#endif // !DOCUMENTATION
19083
19084#ifndef DOCUMENTATION
19085 AsmElfSymbol.setDataPrototype(
19086 "rose_addr_t", "st_size", "= 0",
19087 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19088#endif // !DOCUMENTATION
19089
19090#ifndef DOCUMENTATION
19091 AsmElfSymbol.setDataPrototype(
19092 "SgUnsignedCharList", "extra", "",
19093 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19094#endif // !DOCUMENTATION
19095
19096 DECLARE_OTHERS(AsmElfSymbol);
19097#if defined(SgAsmElfSymbol_OTHERS) || defined(DOCUMENTATION)
19098
19099 //----------------------- Boost serialization for SgAsmElfSymbol -----------------------
19100#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
19101private:
19102 friend class boost::serialization::access;
19103
19104 template<class S>
19105 void serialize(S &s, const unsigned /*version*/) {
19106 debugSerializationBegin("SgAsmElfSymbol");
19107 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
19108 s & BOOST_SERIALIZATION_NVP(p_st_info);
19109 s & BOOST_SERIALIZATION_NVP(p_st_res1);
19110 s & BOOST_SERIALIZATION_NVP(p_st_shndx);
19111 s & BOOST_SERIALIZATION_NVP(p_st_size);
19112 s & BOOST_SERIALIZATION_NVP(p_extra);
19113 debugSerializationEnd("SgAsmElfSymbol");
19114 }
19115#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
19117 // Local types
19119public:
19120 enum ElfSymBinding {
19121 STB_LOCAL=0,
19122 STB_GLOBAL=1,
19123 STB_WEAK=2
19124 };
19125
19136
19137#ifdef _MSC_VER
19138# pragma pack (1)
19139#endif
19140
19143 uint32_t st_name;
19144 uint32_t st_value;
19145 uint32_t st_size;
19146 unsigned char st_info;
19147 unsigned char st_res1;
19148 uint16_t st_shndx;
19149 }
19150#if !defined(SWIG) && !defined(_MSC_VER)
19151 __attribute__((packed))
19152#endif
19153 ;
19154
19156 uint32_t st_name;
19157 unsigned char st_info;
19158 unsigned char st_res1;
19159 uint16_t st_shndx;
19160 uint64_t st_value;
19161 uint64_t st_size;
19162 }
19163#if !defined(SWIG) && !defined(_MSC_VER)
19164 __attribute__((packed))
19165#endif
19166 ;
19167
19168#ifdef _MSC_VER
19169# pragma pack ()
19170#endif
19171
19173 // Properties
19175public:
19176public:
19182 unsigned char const& get_st_info() const;
19183 void set_st_info(unsigned char const&);
19186public:
19192 unsigned char const& get_st_res1() const;
19193 void set_st_res1(unsigned char const&);
19196public:
19202 unsigned const& get_st_shndx() const;
19203 void set_st_shndx(unsigned const&);
19206public:
19212 rose_addr_t const& get_st_size() const;
19213 void set_st_size(rose_addr_t const&);
19216public:
19222 SgUnsignedCharList const& get_extra() const;
19223 SgUnsignedCharList& get_extra();
19224 void set_extra(SgUnsignedCharList const&);
19227 // Functions
19229public:
19232
19237
19242
19255 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
19256 void dump(FILE*, const char *prefix, ssize_t idx, SgAsmGenericSection*) const;
19260 SgAsmElfSymbol::ElfSymBinding get_elfBinding() const;
19261
19264
19266 static std::string toString(SgAsmElfSymbol::ElfSymBinding);
19267
19270
19271private:
19272 void parse_common(); // initialization common to all parse() methods
19273
19275 // Deprecated 2023-11
19277public:
19278 SgAsmElfSymbol::ElfSymBinding get_elf_binding() const ROSE_DEPRECATED("use get_elfBinding");
19279 SgAsmElfSymbol::ElfSymType get_elf_type() const ROSE_DEPRECATED("use get_elfType");
19280 static std::string to_string(SgAsmElfSymbol::ElfSymBinding) ROSE_DEPRECATED("use toString");
19281 static std::string to_string(SgAsmElfSymbol::ElfSymType) ROSE_DEPRECATED("use toString");
19282public:
19284 virtual ~SgAsmElfSymbol();
19285
19286public:
19289
19290protected:
19298#endif // SgAsmElfSymbol_OTHERS
19299#ifdef DOCUMENTATION
19300};
19301#endif // DOCUMENTATION
19302
19303
19305// SgAsmElfStrtab -- MACHINE GENERATED; DO NOT MODIFY --
19307
19308DECLARE_LEAF_CLASS(AsmElfStrtab);
19309IS_SERIALIZABLE(AsmElfStrtab);
19310
19311#ifndef DOCUMENTATION
19312AsmElfStrtab.useSmallHeader(true);
19313#endif // !DOCUMENTATION
19314
19315#ifdef DOCUMENTATION
19318#endif // DOCUMENTATION
19319
19320 DECLARE_OTHERS(AsmElfStrtab);
19321#if defined(SgAsmElfStrtab_OTHERS) || defined(DOCUMENTATION)
19322
19323 //----------------------- Boost serialization for SgAsmElfStrtab -----------------------
19324#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
19325private:
19326 friend class boost::serialization::access;
19327
19328 template<class S>
19329 void serialize(S &s, const unsigned /*version*/) {
19330 debugSerializationBegin("SgAsmElfStrtab");
19331 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
19332 debugSerializationEnd("SgAsmElfStrtab");
19333 }
19334#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
19335public:
19339 explicit SgAsmElfStrtab(class SgAsmElfSection *containing_section);
19340
19347 void destructorHelper() override;
19348
19352 virtual SgAsmElfStrtab *parse() override;
19353
19357 virtual void unparse(std::ostream&) const;
19358
19364 virtual SgAsmStringStorage *createStorage(rose_addr_t offset, bool shared) override;
19365
19369 virtual rose_addr_t get_storageSize(const SgAsmStringStorage*) override;
19370
19380 virtual void allocateOverlap(SgAsmStringStorage*) override;
19381
19383 virtual void rebind(SgAsmStringStorage*, rose_addr_t) override;
19384
19386 // Deprecated 2023-11
19388public:
19389 virtual SgAsmStringStorage *create_storage(rose_addr_t, bool) override ROSE_DEPRECATED("use createStorage");
19390 virtual rose_addr_t get_storage_size(const SgAsmStringStorage*) override ROSE_DEPRECATED("use get_storageSize");
19391 virtual void allocate_overlap(SgAsmStringStorage*) override ROSE_DEPRECATED("use allocateOverlap");
19392public:
19395
19396public:
19399
19400protected:
19408#endif // SgAsmElfStrtab_OTHERS
19409#ifdef DOCUMENTATION
19410};
19411#endif // DOCUMENTATION
19412
19413
19415// SgAsmElfStringSection -- MACHINE GENERATED; DO NOT MODIFY --
19417
19418DECLARE_LEAF_CLASS(AsmElfStringSection);
19419IS_SERIALIZABLE(AsmElfStringSection);
19420
19421#ifndef DOCUMENTATION
19422AsmElfStringSection.useSmallHeader(true);
19423#endif // !DOCUMENTATION
19424
19425#ifdef DOCUMENTATION
19430#endif // DOCUMENTATION
19431
19432#ifndef DOCUMENTATION
19433 AsmElfStringSection.setDataPrototype(
19434 "SgAsmElfStrtab*", "strtab", "= nullptr",
19435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19436#endif // !DOCUMENTATION
19437
19438 DECLARE_OTHERS(AsmElfStringSection);
19439#if defined(SgAsmElfStringSection_OTHERS) || defined(DOCUMENTATION)
19440
19441 //----------------------- Boost serialization for SgAsmElfStringSection -----------------------
19442#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
19443private:
19444 friend class boost::serialization::access;
19445
19446 template<class S>
19447 void serialize(S &s, const unsigned /*version*/) {
19448 debugSerializationBegin("SgAsmElfStringSection");
19449 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
19450 s & BOOST_SERIALIZATION_NVP(p_strtab);
19451 debugSerializationEnd("SgAsmElfStringSection");
19452 }
19453#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
19454public:
19455public:
19464public:
19467
19469 virtual SgAsmElfStringSection *parse() override;
19470
19472 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19473
19478 virtual void set_size(rose_addr_t newsize) override;
19479
19486 virtual bool reallocate() override;
19487
19489 virtual void unparse(std::ostream&) const override;
19490public:
19493
19494public:
19497
19498protected:
19506#endif // SgAsmElfStringSection_OTHERS
19507#ifdef DOCUMENTATION
19508};
19509#endif // DOCUMENTATION
19510
19511
19513// SgAsmElfSegmentTable -- MACHINE GENERATED; DO NOT MODIFY --
19515
19516DECLARE_LEAF_CLASS(AsmElfSegmentTable);
19517IS_SERIALIZABLE(AsmElfSegmentTable);
19518
19519#ifndef DOCUMENTATION
19520AsmElfSegmentTable.useSmallHeader(true);
19521#endif // !DOCUMENTATION
19522
19523#ifdef DOCUMENTATION
19531#endif // DOCUMENTATION
19532
19533 DECLARE_OTHERS(AsmElfSegmentTable);
19534#if defined(SgAsmElfSegmentTable_OTHERS) || defined(DOCUMENTATION)
19535
19536 //----------------------- Boost serialization for SgAsmElfSegmentTable -----------------------
19537#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
19538private:
19539 friend class boost::serialization::access;
19540
19541 template<class S>
19542 void serialize(S &s, const unsigned /*version*/) {
19543 debugSerializationBegin("SgAsmElfSegmentTable");
19544 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
19545 debugSerializationEnd("SgAsmElfSegmentTable");
19546 }
19547#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
19548public:
19551
19556 virtual SgAsmElfSegmentTable *parse() override;
19557
19572
19576 rose_addr_t calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
19577
19578 virtual bool reallocate() override;
19579
19581 virtual void unparse(std::ostream&) const override;
19582
19584 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19585
19587 // Deprecated 2023-11
19589public:
19590 SgAsmElfSegmentTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
19591 rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
19592public:
19595
19596public:
19599
19600protected:
19608#endif // SgAsmElfSegmentTable_OTHERS
19609#ifdef DOCUMENTATION
19610};
19611#endif // DOCUMENTATION
19612
19613
19615// SgAsmElfSegmentTableEntryList -- MACHINE GENERATED; DO NOT MODIFY --
19617
19618DECLARE_LEAF_CLASS(AsmElfSegmentTableEntryList);
19619IS_SERIALIZABLE(AsmElfSegmentTableEntryList);
19620
19621#ifndef DOCUMENTATION
19622AsmElfSegmentTableEntryList.useSmallHeader(true);
19623#endif // !DOCUMENTATION
19624
19625DECLARE_HEADERS(AsmElfSegmentTableEntryList);
19626#if defined(SgAsmElfSegmentTableEntryList_HEADERS) || defined(DOCUMENTATION)
19627#include <sageContainer.h>
19628#endif // SgAsmElfSegmentTableEntryList_HEADERS
19629
19630#ifdef DOCUMENTATION
19632#endif // DOCUMENTATION
19633
19634#ifndef DOCUMENTATION
19635 AsmElfSegmentTableEntryList.setDataPrototype(
19636 "SgAsmElfSegmentTableEntryPtrList", "entries", "",
19637 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19638#endif // !DOCUMENTATION
19639
19640 DECLARE_OTHERS(AsmElfSegmentTableEntryList);
19641#if defined(SgAsmElfSegmentTableEntryList_OTHERS) || defined(DOCUMENTATION)
19642
19643 //----------------------- Boost serialization for SgAsmElfSegmentTableEntryList -----------------------
19644#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
19645private:
19646 friend class boost::serialization::access;
19647
19648 template<class S>
19649 void serialize(S &s, const unsigned /*version*/) {
19650 debugSerializationBegin("SgAsmElfSegmentTableEntryList");
19651 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19652 s & BOOST_SERIALIZATION_NVP(p_entries);
19653 debugSerializationEnd("SgAsmElfSegmentTableEntryList");
19654 }
19655#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
19656public:
19657public:
19664 SgAsmElfSegmentTableEntryPtrList const& get_entries() const;
19665 SgAsmElfSegmentTableEntryPtrList& get_entries();
19666 void set_entries(SgAsmElfSegmentTableEntryPtrList const&);
19669public:
19672
19673public:
19676
19677protected:
19685#endif // SgAsmElfSegmentTableEntryList_OTHERS
19686#ifdef DOCUMENTATION
19687};
19688#endif // DOCUMENTATION
19689
19690
19692// SgAsmElfSegmentTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
19694
19695DECLARE_LEAF_CLASS(AsmElfSegmentTableEntry);
19696IS_SERIALIZABLE(AsmElfSegmentTableEntry);
19697
19698#ifndef DOCUMENTATION
19699AsmElfSegmentTableEntry.useSmallHeader(true);
19700#endif // !DOCUMENTATION
19701
19702DECLARE_HEADERS(AsmElfSegmentTableEntry);
19703#if defined(SgAsmElfSegmentTableEntry_HEADERS) || defined(DOCUMENTATION)
19704#include <Rose/BinaryAnalysis/ByteOrder.h>
19705#include <sageContainer.h>
19706#endif // SgAsmElfSegmentTableEntry_HEADERS
19707
19708#ifdef DOCUMENTATION
19711#endif // DOCUMENTATION
19712
19713#ifndef DOCUMENTATION
19714 AsmElfSegmentTableEntry.setDataPrototype(
19715 "size_t", "index", "= 0",
19716 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19717#endif // !DOCUMENTATION
19718
19719#ifndef DOCUMENTATION
19720 AsmElfSegmentTableEntry.setDataPrototype(
19721 "SgAsmElfSegmentTableEntry::SegmentType", "type", "= SgAsmElfSegmentTableEntry::PT_LOAD",
19722 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19723#endif // !DOCUMENTATION
19724
19725#ifndef DOCUMENTATION
19726 AsmElfSegmentTableEntry.setDataPrototype(
19727 "SgAsmElfSegmentTableEntry::SegmentFlags", "flags", "= SgAsmElfSegmentTableEntry::PF_NONE",
19728 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19729#endif // !DOCUMENTATION
19730
19731#ifndef DOCUMENTATION
19732 AsmElfSegmentTableEntry.setDataPrototype(
19733 "rose_addr_t", "offset", "= 0",
19734 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19735#endif // !DOCUMENTATION
19736
19737#ifndef DOCUMENTATION
19738 AsmElfSegmentTableEntry.setDataPrototype(
19739 "rose_addr_t", "vaddr", "= 0",
19740 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19741#endif // !DOCUMENTATION
19742
19743#ifndef DOCUMENTATION
19744 AsmElfSegmentTableEntry.setDataPrototype(
19745 "rose_addr_t", "paddr", "= 0",
19746 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19747#endif // !DOCUMENTATION
19748
19749#ifndef DOCUMENTATION
19750 AsmElfSegmentTableEntry.setDataPrototype(
19751 "rose_addr_t", "filesz", "= 0",
19752 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19753#endif // !DOCUMENTATION
19754
19755#ifndef DOCUMENTATION
19756 AsmElfSegmentTableEntry.setDataPrototype(
19757 "rose_addr_t", "memsz", "= 0",
19758 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19759#endif // !DOCUMENTATION
19760
19761#ifndef DOCUMENTATION
19762 AsmElfSegmentTableEntry.setDataPrototype(
19763 "rose_addr_t", "align", "= 0",
19764 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19765#endif // !DOCUMENTATION
19766
19767#ifndef DOCUMENTATION
19768 AsmElfSegmentTableEntry.setDataPrototype(
19769 "SgUnsignedCharList", "extra", "",
19770 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19771#endif // !DOCUMENTATION
19772
19773 DECLARE_OTHERS(AsmElfSegmentTableEntry);
19774#if defined(SgAsmElfSegmentTableEntry_OTHERS) || defined(DOCUMENTATION)
19775
19776 //----------------------- Boost serialization for SgAsmElfSegmentTableEntry -----------------------
19777#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
19778private:
19779 friend class boost::serialization::access;
19780
19781 template<class S>
19782 void serialize(S &s, const unsigned /*version*/) {
19783 debugSerializationBegin("SgAsmElfSegmentTableEntry");
19784 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19785 s & BOOST_SERIALIZATION_NVP(p_index);
19786 s & BOOST_SERIALIZATION_NVP(p_type);
19787 s & BOOST_SERIALIZATION_NVP(p_flags);
19788 s & BOOST_SERIALIZATION_NVP(p_offset);
19789 s & BOOST_SERIALIZATION_NVP(p_vaddr);
19790 s & BOOST_SERIALIZATION_NVP(p_paddr);
19791 s & BOOST_SERIALIZATION_NVP(p_filesz);
19792 s & BOOST_SERIALIZATION_NVP(p_memsz);
19793 s & BOOST_SERIALIZATION_NVP(p_align);
19794 s & BOOST_SERIALIZATION_NVP(p_extra);
19795 debugSerializationEnd("SgAsmElfSegmentTableEntry");
19796 }
19797#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
19799 // Local types
19801public:
19813 // OS- and Processor-specific ranges
19814 PT_LOOS = 0x60000000,
19815 PT_HIOS = 0x6fffffff,
19816 PT_LOPROC = 0x70000000,
19817 PT_HIPROC = 0x7fffffff,
19818
19819 // OS-specific values for GNU/Linux
19820 PT_GNU_EH_FRAME = 0x6474e550,
19821 PT_GNU_STACK = 0x6474e551,
19822 PT_GNU_RELRO = 0x6474e552,
19823 PT_PAX_FLAGS = 0x65041580,
19825 // OS-specific values for Sun
19826 PT_SUNWBSS = 0x6ffffffa,
19827 PT_SUNWSTACK = 0x6ffffffb
19829
19833 PF_RESERVED = 0x000ffff8,
19834 PF_XPERM = 0x00000001,
19835 PF_WPERM = 0x00000002,
19836 PF_RPERM = 0x00000004,
19837 PF_OS_MASK = 0x0ff00000,
19838 PF_PROC_MASK = 0xf0000000
19840
19841#ifdef _MSC_VER
19842# pragma pack (1)
19843#endif
19852 uint32_t p_type;
19853 uint32_t p_offset;
19854 uint32_t p_vaddr;
19855 uint32_t p_paddr;
19856 uint32_t p_filesz;
19857 uint32_t p_memsz;
19858 uint32_t p_flags;
19859 uint32_t p_align;
19860 } /* 0x30 */
19861#if !defined(SWIG) && !defined(_MSC_VER)
19862 __attribute__((packed))
19863#endif
19864 ;
19865
19867 uint32_t p_type; /* 0x00 */
19868 uint32_t p_flags; /* 0x04 */
19869 uint64_t p_offset; /* 0x08 */
19870 uint64_t p_vaddr; /* 0x10 */
19871 uint64_t p_paddr; /* 0x18 */
19872 uint64_t p_filesz; /* 0x20 */
19873 uint64_t p_memsz; /* 0x28 */
19874 uint64_t p_align; /* 0x30 */
19875 } /* 0x38 */
19876#if !defined(SWIG) && !defined(_MSC_VER)
19877 __attribute__((packed))
19878#endif
19879 ;
19880#ifdef _MSC_VER
19881# pragma pack ()
19882#endif
19883
19885 // Properties
19887public:
19888public:
19894 size_t const& get_index() const;
19895 void set_index(size_t const&);
19898public:
19906public:
19914public:
19920 rose_addr_t const& get_offset() const;
19921 void set_offset(rose_addr_t const&);
19924public:
19931 rose_addr_t const& get_vaddr() const;
19932 void set_vaddr(rose_addr_t const&);
19935public:
19941 rose_addr_t const& get_paddr() const;
19942 void set_paddr(rose_addr_t const&);
19945public:
19951 rose_addr_t const& get_filesz() const;
19952 void set_filesz(rose_addr_t const&);
19955public:
19961 rose_addr_t const& get_memsz() const;
19962 void set_memsz(rose_addr_t const&);
19965public:
19971 rose_addr_t const& get_align() const;
19972 void set_align(rose_addr_t const&);
19975public:
19981 SgUnsignedCharList const& get_extra() const;
19982 SgUnsignedCharList& get_extra();
19983 void set_extra(SgUnsignedCharList const&);
19986 // Functions
19988public:
19992
19996
20006
20008 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
20009
20012
20015
20017 // Deprecated 2023-11
20019public:
20020 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
20021 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentType) ROSE_DEPRECATED("use toString");
20022 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentFlags) ROSE_DEPRECATED("use toString");
20023public:
20026
20027public:
20030
20031protected:
20039#endif // SgAsmElfSegmentTableEntry_OTHERS
20040#ifdef DOCUMENTATION
20041};
20042#endif // DOCUMENTATION
20043
20044
20046// SgAsmElfSectionTable -- MACHINE GENERATED; DO NOT MODIFY --
20048
20049DECLARE_LEAF_CLASS(AsmElfSectionTable);
20050IS_SERIALIZABLE(AsmElfSectionTable);
20051
20052#ifndef DOCUMENTATION
20053AsmElfSectionTable.useSmallHeader(true);
20054#endif // !DOCUMENTATION
20055
20056#ifdef DOCUMENTATION
20063#endif // DOCUMENTATION
20064
20065 DECLARE_OTHERS(AsmElfSectionTable);
20066#if defined(SgAsmElfSectionTable_OTHERS) || defined(DOCUMENTATION)
20067
20068 //----------------------- Boost serialization for SgAsmElfSectionTable -----------------------
20069#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
20070private:
20071 friend class boost::serialization::access;
20072
20073 template<class S>
20074 void serialize(S &s, const unsigned /*version*/) {
20075 debugSerializationBegin("SgAsmElfSectionTable");
20076 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
20077 debugSerializationEnd("SgAsmElfSectionTable");
20078 }
20079#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
20080public:
20083
20089 virtual SgAsmElfSectionTable *parse() override;
20090
20102
20106 rose_addr_t calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
20107
20108 virtual bool reallocate() override;
20109
20111 virtual void unparse(std::ostream&) const override;
20112
20114 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20115
20117 // Deprecated 2023-11
20119public:
20120 SgAsmElfSectionTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
20121 rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
20122public:
20125
20126public:
20129
20130protected:
20138#endif // SgAsmElfSectionTable_OTHERS
20139#ifdef DOCUMENTATION
20140};
20141#endif // DOCUMENTATION
20142
20143
20145// SgAsmElfSectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
20147
20148DECLARE_LEAF_CLASS(AsmElfSectionTableEntry);
20149IS_SERIALIZABLE(AsmElfSectionTableEntry);
20150
20151#ifndef DOCUMENTATION
20152AsmElfSectionTableEntry.useSmallHeader(true);
20153#endif // !DOCUMENTATION
20154
20155DECLARE_HEADERS(AsmElfSectionTableEntry);
20156#if defined(SgAsmElfSectionTableEntry_HEADERS) || defined(DOCUMENTATION)
20157#include <Rose/BinaryAnalysis/ByteOrder.h>
20158#include <sageContainer.h>
20159#endif // SgAsmElfSectionTableEntry_HEADERS
20160
20161#ifdef DOCUMENTATION
20164#endif // DOCUMENTATION
20165
20166#ifndef DOCUMENTATION
20167 AsmElfSectionTableEntry.setDataPrototype(
20168 "unsigned", "sh_name", "= 0",
20169 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20170#endif // !DOCUMENTATION
20171
20172#ifndef DOCUMENTATION
20173 AsmElfSectionTableEntry.setDataPrototype(
20174 "SgAsmElfSectionTableEntry::SectionType", "sh_type", "= SHT_PROGBITS",
20175 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20176#endif // !DOCUMENTATION
20177
20178#ifndef DOCUMENTATION
20179 AsmElfSectionTableEntry.setDataPrototype(
20180 "unsigned long", "sh_link", "= 0",
20181 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20182#endif // !DOCUMENTATION
20183
20184#ifndef DOCUMENTATION
20185 AsmElfSectionTableEntry.setDataPrototype(
20186 "unsigned long", "sh_info", "= 0",
20187 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20188#endif // !DOCUMENTATION
20189
20190#ifndef DOCUMENTATION
20191 AsmElfSectionTableEntry.setDataPrototype(
20192 "uint64_t", "sh_flags", "= 0",
20193 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20194#endif // !DOCUMENTATION
20195
20196#ifndef DOCUMENTATION
20197 AsmElfSectionTableEntry.setDataPrototype(
20198 "rose_addr_t", "sh_addr", "= 0",
20199 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20200#endif // !DOCUMENTATION
20201
20202#ifndef DOCUMENTATION
20203 AsmElfSectionTableEntry.setDataPrototype(
20204 "rose_addr_t", "sh_offset", "= 0",
20205 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20206#endif // !DOCUMENTATION
20207
20208#ifndef DOCUMENTATION
20209 AsmElfSectionTableEntry.setDataPrototype(
20210 "rose_addr_t", "sh_size", "= 0",
20211 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20212#endif // !DOCUMENTATION
20213
20214#ifndef DOCUMENTATION
20215 AsmElfSectionTableEntry.setDataPrototype(
20216 "rose_addr_t", "sh_addralign", "= 0",
20217 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20218#endif // !DOCUMENTATION
20219
20220#ifndef DOCUMENTATION
20221 AsmElfSectionTableEntry.setDataPrototype(
20222 "rose_addr_t", "sh_entsize", "= 0",
20223 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20224#endif // !DOCUMENTATION
20225
20226#ifndef DOCUMENTATION
20227 AsmElfSectionTableEntry.setDataPrototype(
20228 "SgUnsignedCharList", "extra", "",
20229 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20230#endif // !DOCUMENTATION
20231
20232 DECLARE_OTHERS(AsmElfSectionTableEntry);
20233#if defined(SgAsmElfSectionTableEntry_OTHERS) || defined(DOCUMENTATION)
20234
20235 //----------------------- Boost serialization for SgAsmElfSectionTableEntry -----------------------
20236#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
20237private:
20238 friend class boost::serialization::access;
20239
20240 template<class S>
20241 void serialize(S &s, const unsigned /*version*/) {
20242 debugSerializationBegin("SgAsmElfSectionTableEntry");
20243 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20244 s & BOOST_SERIALIZATION_NVP(p_sh_name);
20245 s & BOOST_SERIALIZATION_NVP(p_sh_type);
20246 s & BOOST_SERIALIZATION_NVP(p_sh_link);
20247 s & BOOST_SERIALIZATION_NVP(p_sh_info);
20248 s & BOOST_SERIALIZATION_NVP(p_sh_flags);
20249 s & BOOST_SERIALIZATION_NVP(p_sh_addr);
20250 s & BOOST_SERIALIZATION_NVP(p_sh_offset);
20251 s & BOOST_SERIALIZATION_NVP(p_sh_size);
20252 s & BOOST_SERIALIZATION_NVP(p_sh_addralign);
20253 s & BOOST_SERIALIZATION_NVP(p_sh_entsize);
20254 s & BOOST_SERIALIZATION_NVP(p_extra);
20255 debugSerializationEnd("SgAsmElfSectionTableEntry");
20256 }
20257#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
20259 // Local types
20261public:
20277 SHT_LOOS = 0x60000000,
20278 SHT_GNU_verdef = 0x6ffffffd,
20279 SHT_GNU_verneed = 0x6ffffffe,
20280 SHT_GNU_versym = 0x6fffffff,
20281 SHT_HIOS = 0x6fffffff, /*NO_STRINGIFY*/
20282
20283 SHT_LOPROC = 0x70000000, /* Processor specific semantics */
20284 SHT_HIPROC = 0x7fffffff,
20285 SHT_LOUSER = 0x80000000, /* Application specific semantics */
20286 SHT_HIUSER = 0xffffffff
20287 };
20288
20292 SHF_WRITE= (1 << 0),
20293 SHF_ALLOC= (1 << 1),
20294 SHF_EXECINSTR= (1 << 2),
20295 SHF_MERGE= (1 << 4),
20296 SHF_STRINGS= (1 << 5),
20297 SHF_INFO_LINK= (1 << 6),
20298 SHF_LINK_ORDER= (1 << 7),
20300 SHF_GROUP= (1 << 9),
20301 SHF_TLS= (1 << 10),
20302 SHF_MASKOS= 0x0ff00000,
20303 SHF_MASKPROC= 0xf0000000
20305
20312#ifdef _MSC_VER
20313# pragma pack (1)
20314#endif
20316 uint32_t sh_name; /* 0x00 Section name; index into section header string table */
20317 uint32_t sh_type; /* 0x04 Section contents and semantics (see SectionType enum) */
20318 uint32_t sh_flags; /* 0x08 Bit flags */
20319 uint32_t sh_addr; /* 0x0c Desired mapped address */
20320 uint32_t sh_offset; /* 0x10 Section location in file unless sh_type==SHT_NOBITS */
20321 uint32_t sh_size; /* 0x14 Section size in bytes */
20322 uint32_t sh_link; /* 0x18 Section ID of another section; meaning depends on section type */
20323 uint32_t sh_info; /* 0x1c Extra info depending on section type */
20324 uint32_t sh_addralign; /* 0x20 Mapped alignment (0 and 1=>byte aligned); sh_addr must be aligned*/
20325 uint32_t sh_entsize; /* 0x24 If non-zero, size in bytes of each array member in the section */
20326 } /* 0x28 */
20327#if !defined(SWIG) && !defined(_MSC_VER)
20328 __attribute__((packed))
20329#endif
20330 ;
20331
20333 uint32_t sh_name; /* 0x00 see Elf32SectionTableEntry_disk */
20334 uint32_t sh_type; /* 0x04 */
20335 uint64_t sh_flags; /* 0x08 */
20336 uint64_t sh_addr; /* 0x10 */
20337 uint64_t sh_offset; /* 0x18 */
20338 uint64_t sh_size; /* 0x20 */
20339 uint32_t sh_link; /* 0x28 */
20340 uint32_t sh_info; /* 0x2c */
20341 uint64_t sh_addralign; /* 0x30 */
20342 uint64_t sh_entsize; /* 0x38 */
20343 } /* 0x40 */
20344#if !defined(SWIG) && !defined(_MSC_VER)
20345 __attribute__((packed))
20346#endif
20347 ;
20348#ifdef _MSC_VER
20349# pragma pack ()
20350#endif
20351
20353 // Properties
20355public:
20356public:
20362 unsigned const& get_sh_name() const;
20363 void set_sh_name(unsigned const&);
20366public:
20376public:
20382 unsigned long const& get_sh_link() const;
20383 void set_sh_link(unsigned long const&);
20386public:
20392 unsigned long const& get_sh_info() const;
20393 void set_sh_info(unsigned long const&);
20396public:
20402 uint64_t const& get_sh_flags() const;
20403 void set_sh_flags(uint64_t const&);
20406public:
20412 rose_addr_t const& get_sh_addr() const;
20413 void set_sh_addr(rose_addr_t const&);
20416public:
20422 rose_addr_t const& get_sh_offset() const;
20423 void set_sh_offset(rose_addr_t const&);
20426public:
20432 rose_addr_t const& get_sh_size() const;
20433 void set_sh_size(rose_addr_t const&);
20436public:
20442 rose_addr_t const& get_sh_addralign() const;
20443 void set_sh_addralign(rose_addr_t const&);
20446public:
20452 rose_addr_t const& get_sh_entsize() const;
20453 void set_sh_entsize(rose_addr_t const&);
20456public:
20462 SgUnsignedCharList const& get_extra() const;
20463 SgUnsignedCharList& get_extra();
20464 void set_extra(SgUnsignedCharList const&);
20467 // Functions
20469public:
20473
20477
20489
20491 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
20492
20493 // Use Rose::stringify... function instead.
20494 static std::string toString(SgAsmElfSectionTableEntry::SectionType);
20495 static std::string toString(SgAsmElfSectionTableEntry::SectionFlags);
20496
20498 // Deprecated 2023-11
20500public:
20501 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
20502 static std::string to_string(SgAsmElfSectionTableEntry::SectionType) ROSE_DEPRECATED("use toString");
20503 static std::string to_string(SgAsmElfSectionTableEntry::SectionFlags) ROSE_DEPRECATED("use toString");
20504public:
20507
20508public:
20511
20512protected:
20520#endif // SgAsmElfSectionTableEntry_OTHERS
20521#ifdef DOCUMENTATION
20522};
20523#endif // DOCUMENTATION
20524
20525
20527// SgAsmElfRelocSection -- MACHINE GENERATED; DO NOT MODIFY --
20529
20530DECLARE_LEAF_CLASS(AsmElfRelocSection);
20531IS_SERIALIZABLE(AsmElfRelocSection);
20532
20533#ifndef DOCUMENTATION
20534AsmElfRelocSection.useSmallHeader(true);
20535#endif // !DOCUMENTATION
20536
20537DECLARE_HEADERS(AsmElfRelocSection);
20538#if defined(SgAsmElfRelocSection_HEADERS) || defined(DOCUMENTATION)
20539#ifdef ROSE_SgAsmElfRelocSection_IMPL
20540#include <SgAsmElfRelocEntryList.h>
20541#endif
20542#endif // SgAsmElfRelocSection_HEADERS
20543
20544#ifdef DOCUMENTATION
20547#endif // DOCUMENTATION
20548
20549#ifndef DOCUMENTATION
20550 AsmElfRelocSection.setDataPrototype(
20551 "bool", "usesAddend", "= true",
20552 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20553#endif // !DOCUMENTATION
20554
20555#ifndef DOCUMENTATION
20556 AsmElfRelocSection.setDataPrototype(
20557 "SgAsmElfSection*", "targetSection", "= nullptr",
20558 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20559#endif // !DOCUMENTATION
20560
20561#ifndef DOCUMENTATION
20562 AsmElfRelocSection.setDataPrototype(
20563 "SgAsmElfRelocEntryList*", "entries", "= createAndParent<SgAsmElfRelocEntryList>(this)",
20564 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
20565#endif // !DOCUMENTATION
20566
20567 DECLARE_OTHERS(AsmElfRelocSection);
20568#if defined(SgAsmElfRelocSection_OTHERS) || defined(DOCUMENTATION)
20569
20570 //----------------------- Boost serialization for SgAsmElfRelocSection -----------------------
20571#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
20572private:
20573 friend class boost::serialization::access;
20574
20575 template<class S>
20576 void serialize(S &s, const unsigned /*version*/) {
20577 debugSerializationBegin("SgAsmElfRelocSection");
20578 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
20579 s & BOOST_SERIALIZATION_NVP(p_usesAddend);
20580 s & BOOST_SERIALIZATION_NVP(p_targetSection);
20581 s & BOOST_SERIALIZATION_NVP(p_entries);
20582 debugSerializationEnd("SgAsmElfRelocSection");
20583 }
20584#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
20585public:
20586public:
20590 bool const& get_usesAddend() const;
20591 void set_usesAddend(bool const&);
20594public:
20602public:
20611public:
20613
20616 virtual SgAsmElfRelocSection *parse() override;
20617
20619 virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
20620
20621 virtual bool reallocate() override;
20622
20624 virtual void unparse(std::ostream&) const override;
20625
20627 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20628
20630 // Deprecated 2023-11
20632public:
20633 bool get_uses_addend() const ROSE_DEPRECATED("use get_usesAddend");
20634 void set_uses_addend(bool) ROSE_DEPRECATED("use set_usesAddend");
20635 SgAsmElfSection* get_target_section() const ROSE_DEPRECATED("use get_targetSection");
20636 void set_target_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_targetSection");
20637 using SgAsmElfSection::calculate_sizes;
20638 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override ROSE_DEPRECATED("use calculateSizes");
20639public:
20642
20643public:
20646
20647protected:
20655#endif // SgAsmElfRelocSection_OTHERS
20656#ifdef DOCUMENTATION
20657};
20658#endif // DOCUMENTATION
20659
20660
20662// SgAsmElfRelocEntryList -- MACHINE GENERATED; DO NOT MODIFY --
20664
20665DECLARE_LEAF_CLASS(AsmElfRelocEntryList);
20666IS_SERIALIZABLE(AsmElfRelocEntryList);
20667
20668#ifndef DOCUMENTATION
20669AsmElfRelocEntryList.useSmallHeader(true);
20670#endif // !DOCUMENTATION
20671
20672DECLARE_HEADERS(AsmElfRelocEntryList);
20673#if defined(SgAsmElfRelocEntryList_HEADERS) || defined(DOCUMENTATION)
20674#include <sageContainer.h>
20675#endif // SgAsmElfRelocEntryList_HEADERS
20676
20677#ifdef DOCUMENTATION
20683#endif // DOCUMENTATION
20684
20685#ifndef DOCUMENTATION
20686 AsmElfRelocEntryList.setDataPrototype(
20687 "SgAsmElfRelocEntryPtrList", "entries", "",
20688 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
20689#endif // !DOCUMENTATION
20690
20691 DECLARE_OTHERS(AsmElfRelocEntryList);
20692#if defined(SgAsmElfRelocEntryList_OTHERS) || defined(DOCUMENTATION)
20693
20694 //----------------------- Boost serialization for SgAsmElfRelocEntryList -----------------------
20695#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
20696private:
20697 friend class boost::serialization::access;
20698
20699 template<class S>
20700 void serialize(S &s, const unsigned /*version*/) {
20701 debugSerializationBegin("SgAsmElfRelocEntryList");
20702 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20703 s & BOOST_SERIALIZATION_NVP(p_entries);
20704 debugSerializationEnd("SgAsmElfRelocEntryList");
20705 }
20706#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
20707public:
20708public:
20712 SgAsmElfRelocEntryPtrList const& get_entries() const;
20713 SgAsmElfRelocEntryPtrList& get_entries();
20714 void set_entries(SgAsmElfRelocEntryPtrList const&);
20717public:
20720
20721public:
20724
20725protected:
20733#endif // SgAsmElfRelocEntryList_OTHERS
20734#ifdef DOCUMENTATION
20735};
20736#endif // DOCUMENTATION
20737
20738
20740// SgAsmElfRelocEntry -- MACHINE GENERATED; DO NOT MODIFY --
20742
20743DECLARE_LEAF_CLASS(AsmElfRelocEntry);
20744IS_SERIALIZABLE(AsmElfRelocEntry);
20745
20746#ifndef DOCUMENTATION
20747AsmElfRelocEntry.useSmallHeader(true);
20748#endif // !DOCUMENTATION
20749
20750DECLARE_HEADERS(AsmElfRelocEntry);
20751#if defined(SgAsmElfRelocEntry_HEADERS) || defined(DOCUMENTATION)
20752#include <Rose/BinaryAnalysis/ByteOrder.h>
20753#include <sageContainer.h>
20754#endif // SgAsmElfRelocEntry_HEADERS
20755
20756#ifdef DOCUMENTATION
20759#endif // DOCUMENTATION
20760
20761#ifndef DOCUMENTATION
20762 AsmElfRelocEntry.setDataPrototype(
20763 "rose_addr_t", "r_offset", "= 0",
20764 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20765#endif // !DOCUMENTATION
20766
20767#ifndef DOCUMENTATION
20768 AsmElfRelocEntry.setDataPrototype(
20769 "rose_addr_t", "r_addend", "= 0",
20770 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20771#endif // !DOCUMENTATION
20772
20773#ifndef DOCUMENTATION
20774 AsmElfRelocEntry.setDataPrototype(
20775 "unsigned long", "sym", "= 0",
20776 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20777#endif // !DOCUMENTATION
20778
20779#ifndef DOCUMENTATION
20780 AsmElfRelocEntry.setDataPrototype(
20781 "SgAsmElfRelocEntry::RelocType", "type", "= R_386_NONE",
20782 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20783#endif // !DOCUMENTATION
20784
20785#ifndef DOCUMENTATION
20786 AsmElfRelocEntry.setDataPrototype(
20787 "SgUnsignedCharList", "extra", "",
20788 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20789#endif // !DOCUMENTATION
20790
20791 DECLARE_OTHERS(AsmElfRelocEntry);
20792#if defined(SgAsmElfRelocEntry_OTHERS) || defined(DOCUMENTATION)
20793
20794 //----------------------- Boost serialization for SgAsmElfRelocEntry -----------------------
20795#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
20796private:
20797 friend class boost::serialization::access;
20798
20799 template<class S>
20800 void serialize(S &s, const unsigned /*version*/) {
20801 debugSerializationBegin("SgAsmElfRelocEntry");
20802 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20803 s & BOOST_SERIALIZATION_NVP(p_r_offset);
20804 s & BOOST_SERIALIZATION_NVP(p_r_addend);
20805 s & BOOST_SERIALIZATION_NVP(p_sym);
20806 s & BOOST_SERIALIZATION_NVP(p_type);
20807 s & BOOST_SERIALIZATION_NVP(p_extra);
20808 debugSerializationEnd("SgAsmElfRelocEntry");
20809 }
20810#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
20812 // Local types
20814public:
20817 // Intel 80386 specific definitions.
20829 R_386_32PLT =11,
20836 R_386_16 =20,
20837 R_386_PC16 =21,
20838 R_386_8 =22,
20839 R_386_PC8 =23,
20855 // First Entry for X86-64
20879 R_X86_64_TPOFF32 =123
20881
20882#ifdef _MSC_VER
20883# pragma pack (1)
20884#endif
20885
20887 uint32_t r_offset;
20888 uint32_t r_info;
20889 uint32_t r_addend;
20890 }
20891#if !defined(SWIG) && !defined(_MSC_VER)
20892 __attribute__((packed))
20893#endif
20894 ;
20895
20897 uint64_t r_offset;
20898 uint64_t r_info;
20899 uint64_t r_addend;
20900 }
20901#if !defined(SWIG) && !defined(_MSC_VER)
20902 __attribute__((packed))
20903#endif
20904 ;
20905
20907 uint32_t r_offset;
20908 uint32_t r_info;
20909 }
20910#if !defined(SWIG) && !defined(_MSC_VER)
20911 __attribute__((packed))
20912#endif
20913 ;
20914
20916 uint64_t r_offset;
20917 uint64_t r_info;
20918 }
20919#if !defined(SWIG) && !defined(_MSC_VER)
20920 __attribute__((packed))
20921#endif
20922 ;
20923
20924#ifdef _MSC_VER
20925# pragma pack ()
20926#endif
20927
20929 // Properties
20931public:
20932public:
20938 rose_addr_t const& get_r_offset() const;
20939 void set_r_offset(rose_addr_t const&);
20942public:
20948 rose_addr_t const& get_r_addend() const;
20949 void set_r_addend(rose_addr_t const&);
20952public:
20958 unsigned long const& get_sym() const;
20959 void set_sym(unsigned long const&);
20962public:
20972public:
20976 SgUnsignedCharList const& get_extra() const;
20977 SgUnsignedCharList& get_extra();
20978 void set_extra(SgUnsignedCharList const&);
20981 // Functions
20983public:
20986
21008 void dump(FILE *f, const char *prefix, ssize_t idx, SgAsmElfSymbolSection *symtab) const;
21009 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const {
21010 dump(f, prefix, idx, NULL);
21011 }
21015 std::string toString() const;
21016
21018 // Deprecated 2023-11
21020public:
21021 std::string reloc_name() const ROSE_DEPRECATED("use toString");
21022public:
21025
21026public:
21029
21030protected:
21038#endif // SgAsmElfRelocEntry_OTHERS
21039#ifdef DOCUMENTATION
21040};
21041#endif // DOCUMENTATION
21042
21043
21045// SgAsmElfNoteSection -- MACHINE GENERATED; DO NOT MODIFY --
21047
21048DECLARE_LEAF_CLASS(AsmElfNoteSection);
21049IS_SERIALIZABLE(AsmElfNoteSection);
21050
21051#ifndef DOCUMENTATION
21052AsmElfNoteSection.useSmallHeader(true);
21053#endif // !DOCUMENTATION
21054
21055DECLARE_HEADERS(AsmElfNoteSection);
21056#if defined(SgAsmElfNoteSection_HEADERS) || defined(DOCUMENTATION)
21057#ifdef ROSE_SgAsmElfNoteSection_IMPL
21058#include <SgAsmElfNoteEntryList.h>
21059#endif
21060#endif // SgAsmElfNoteSection_HEADERS
21061
21062#ifdef DOCUMENTATION
21064#endif // DOCUMENTATION
21065
21066#ifndef DOCUMENTATION
21067 AsmElfNoteSection.setDataPrototype(
21068 "SgAsmElfNoteEntryList*", "entries", "= createAndParent<SgAsmElfNoteEntryList>(this)",
21069 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21070#endif // !DOCUMENTATION
21071
21072 DECLARE_OTHERS(AsmElfNoteSection);
21073#if defined(SgAsmElfNoteSection_OTHERS) || defined(DOCUMENTATION)
21074
21075 //----------------------- Boost serialization for SgAsmElfNoteSection -----------------------
21076#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
21077private:
21078 friend class boost::serialization::access;
21079
21080 template<class S>
21081 void serialize(S &s, const unsigned /*version*/) {
21082 debugSerializationBegin("SgAsmElfNoteSection");
21083 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
21084 s & BOOST_SERIALIZATION_NVP(p_entries);
21085 debugSerializationEnd("SgAsmElfNoteSection");
21086 }
21087#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
21088public:
21089public:
21099public:
21102
21103 virtual SgAsmElfNoteSection *parse() override;
21104
21105 virtual bool reallocate() override;
21106
21108 virtual void unparse(std::ostream&) const override;
21109
21111 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21112public:
21115
21116public:
21119
21120protected:
21128#endif // SgAsmElfNoteSection_OTHERS
21129#ifdef DOCUMENTATION
21130};
21131#endif // DOCUMENTATION
21132
21133
21135// SgAsmElfNoteEntryList -- MACHINE GENERATED; DO NOT MODIFY --
21137
21138DECLARE_LEAF_CLASS(AsmElfNoteEntryList);
21139IS_SERIALIZABLE(AsmElfNoteEntryList);
21140
21141#ifndef DOCUMENTATION
21142AsmElfNoteEntryList.useSmallHeader(true);
21143#endif // !DOCUMENTATION
21144
21145DECLARE_HEADERS(AsmElfNoteEntryList);
21146#if defined(SgAsmElfNoteEntryList_HEADERS) || defined(DOCUMENTATION)
21147#include <sageContainer.h>
21148#endif // SgAsmElfNoteEntryList_HEADERS
21149
21150#ifdef DOCUMENTATION
21156#endif // DOCUMENTATION
21157
21158#ifndef DOCUMENTATION
21159 AsmElfNoteEntryList.setDataPrototype(
21160 "SgAsmElfNoteEntryPtrList", "entries", "",
21161 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21162#endif // !DOCUMENTATION
21163
21164 DECLARE_OTHERS(AsmElfNoteEntryList);
21165#if defined(SgAsmElfNoteEntryList_OTHERS) || defined(DOCUMENTATION)
21166
21167 //----------------------- Boost serialization for SgAsmElfNoteEntryList -----------------------
21168#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
21169private:
21170 friend class boost::serialization::access;
21171
21172 template<class S>
21173 void serialize(S &s, const unsigned /*version*/) {
21174 debugSerializationBegin("SgAsmElfNoteEntryList");
21175 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21176 s & BOOST_SERIALIZATION_NVP(p_entries);
21177 debugSerializationEnd("SgAsmElfNoteEntryList");
21178 }
21179#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
21180public:
21181public:
21185 SgAsmElfNoteEntryPtrList const& get_entries() const;
21186 SgAsmElfNoteEntryPtrList& get_entries();
21187 void set_entries(SgAsmElfNoteEntryPtrList const&);
21190public:
21193
21194public:
21197
21198protected:
21206#endif // SgAsmElfNoteEntryList_OTHERS
21207#ifdef DOCUMENTATION
21208};
21209#endif // DOCUMENTATION
21210
21211
21213// SgAsmElfNoteEntry -- MACHINE GENERATED; DO NOT MODIFY --
21215
21216DECLARE_LEAF_CLASS(AsmElfNoteEntry);
21217IS_SERIALIZABLE(AsmElfNoteEntry);
21218
21219#ifndef DOCUMENTATION
21220AsmElfNoteEntry.useSmallHeader(true);
21221#endif // !DOCUMENTATION
21222
21223DECLARE_HEADERS(AsmElfNoteEntry);
21224#if defined(SgAsmElfNoteEntry_HEADERS) || defined(DOCUMENTATION)
21225#include <sageContainer.h>
21226
21227#ifdef ROSE_SgAsmElfNoteEntry_IMPL
21228#include <SgAsmBasicString.h>
21229#endif
21230#endif // SgAsmElfNoteEntry_HEADERS
21231
21232#ifdef DOCUMENTATION
21235#endif // DOCUMENTATION
21236
21237#ifndef DOCUMENTATION
21238 AsmElfNoteEntry.setDataPrototype(
21239 "unsigned", "type", "= 0",
21240 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21241#endif // !DOCUMENTATION
21242
21243#ifndef DOCUMENTATION
21244 AsmElfNoteEntry.setDataPrototype(
21245 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
21246 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21247#endif // !DOCUMENTATION
21248
21249#ifndef DOCUMENTATION
21250 AsmElfNoteEntry.setDataPrototype(
21251 "SgUnsignedCharList", "payload", "",
21252 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21253#endif // !DOCUMENTATION
21254
21255 DECLARE_OTHERS(AsmElfNoteEntry);
21256#if defined(SgAsmElfNoteEntry_OTHERS) || defined(DOCUMENTATION)
21257
21258 //----------------------- Boost serialization for SgAsmElfNoteEntry -----------------------
21259#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
21260private:
21261 friend class boost::serialization::access;
21262
21263 template<class S>
21264 void serialize(S &s, const unsigned /*version*/) {
21265 debugSerializationBegin("SgAsmElfNoteEntry");
21266 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21267 s & BOOST_SERIALIZATION_NVP(p_type);
21268 s & BOOST_SERIALIZATION_NVP(p_name);
21269 s & BOOST_SERIALIZATION_NVP(p_payload);
21270 debugSerializationEnd("SgAsmElfNoteEntry");
21271 }
21272#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
21273public:
21274public:
21280 unsigned const& get_type() const;
21281 void set_type(unsigned const&);
21284public:
21293public:
21299 SgUnsignedCharList const& get_payload() const;
21300 SgUnsignedCharList& get_payload();
21301 void set_payload(SgUnsignedCharList const&);
21303public:
21306
21320 rose_addr_t parse(rose_addr_t starting_offset);
21321
21325 rose_addr_t unparse(std::ostream &f, rose_addr_t starting_offset);
21326
21328 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
21329
21333 void set_payload(const void*, size_t nbytes);
21334
21336 rose_addr_t calculateSize() const;
21337
21339 // Deprecated 2023-11
21341public:
21342 rose_addr_t calculate_size() const ROSE_DEPRECATED("use calculateSize");
21343public:
21346
21347public:
21350
21351protected:
21359#endif // SgAsmElfNoteEntry_OTHERS
21360#ifdef DOCUMENTATION
21361};
21362#endif // DOCUMENTATION
21363
21364
21366// SgAsmElfFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
21368
21369DECLARE_LEAF_CLASS(AsmElfFileHeader);
21370IS_SERIALIZABLE(AsmElfFileHeader);
21371
21372#ifndef DOCUMENTATION
21373AsmElfFileHeader.useSmallHeader(true);
21374#endif // !DOCUMENTATION
21375
21376DECLARE_HEADERS(AsmElfFileHeader);
21377#if defined(SgAsmElfFileHeader_HEADERS) || defined(DOCUMENTATION)
21378#include <Rose/BinaryAnalysis/ByteOrder.h>
21379#endif // SgAsmElfFileHeader_HEADERS
21380
21381#ifdef DOCUMENTATION
21391#endif // DOCUMENTATION
21392
21393#ifndef DOCUMENTATION
21394 AsmElfFileHeader.setDataPrototype(
21395 "unsigned char", "e_ident_file_class", "= 0",
21396 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21397#endif // !DOCUMENTATION
21398
21399#ifndef DOCUMENTATION
21400 AsmElfFileHeader.setDataPrototype(
21401 "unsigned char", "e_ident_data_encoding", "= 0",
21402 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21403#endif // !DOCUMENTATION
21404
21405#ifndef DOCUMENTATION
21406 AsmElfFileHeader.setDataPrototype(
21407 "unsigned char", "e_ident_file_version", "= 0",
21408 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21409#endif // !DOCUMENTATION
21410
21411#ifndef DOCUMENTATION
21412 AsmElfFileHeader.setDataPrototype(
21413 "SgUnsignedCharList", "e_ident_padding", "",
21414 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21415#endif // !DOCUMENTATION
21416
21417#ifndef DOCUMENTATION
21418 AsmElfFileHeader.setDataPrototype(
21419 "unsigned long", "e_type", "= 0",
21420 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21421#endif // !DOCUMENTATION
21422
21423#ifndef DOCUMENTATION
21424 AsmElfFileHeader.setDataPrototype(
21425 "unsigned long", "e_machine", "= 0",
21426 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21427#endif // !DOCUMENTATION
21428
21429#ifndef DOCUMENTATION
21430 AsmElfFileHeader.setDataPrototype(
21431 "unsigned long", "e_flags", "= 0",
21432 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21433#endif // !DOCUMENTATION
21434
21435#ifndef DOCUMENTATION
21436 AsmElfFileHeader.setDataPrototype(
21437 "unsigned long", "e_ehsize", "= 0",
21438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21439#endif // !DOCUMENTATION
21440
21441#ifndef DOCUMENTATION
21442 AsmElfFileHeader.setDataPrototype(
21443 "unsigned long", "phextrasz", "= 0",
21444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21445#endif // !DOCUMENTATION
21446
21447#ifndef DOCUMENTATION
21448 AsmElfFileHeader.setDataPrototype(
21449 "unsigned long", "e_phnum", "= 0",
21450 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21451#endif // !DOCUMENTATION
21452
21453#ifndef DOCUMENTATION
21454 AsmElfFileHeader.setDataPrototype(
21455 "unsigned long", "shextrasz", "= 0",
21456 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21457#endif // !DOCUMENTATION
21458
21459#ifndef DOCUMENTATION
21460 AsmElfFileHeader.setDataPrototype(
21461 "unsigned long", "e_shnum", "= 0",
21462 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21463#endif // !DOCUMENTATION
21464
21465#ifndef DOCUMENTATION
21466 AsmElfFileHeader.setDataPrototype(
21467 "unsigned long", "e_shstrndx", "= 0",
21468 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21469#endif // !DOCUMENTATION
21470
21471#ifndef DOCUMENTATION
21472 AsmElfFileHeader.setDataPrototype(
21473 "SgAsmElfSectionTable*", "sectionTable", "= nullptr",
21474 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21475#endif // !DOCUMENTATION
21476
21477#ifndef DOCUMENTATION
21478 AsmElfFileHeader.setDataPrototype(
21479 "SgAsmElfSegmentTable*", "segmentTable", "= nullptr",
21480 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21481#endif // !DOCUMENTATION
21482
21483 DECLARE_OTHERS(AsmElfFileHeader);
21484#if defined(SgAsmElfFileHeader_OTHERS) || defined(DOCUMENTATION)
21485
21486 //----------------------- Boost serialization for SgAsmElfFileHeader -----------------------
21487#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
21488private:
21489 friend class boost::serialization::access;
21490
21491 template<class S>
21492 void serialize(S &s, const unsigned /*version*/) {
21493 debugSerializationBegin("SgAsmElfFileHeader");
21494 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
21495 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_class);
21496 s & BOOST_SERIALIZATION_NVP(p_e_ident_data_encoding);
21497 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_version);
21498 s & BOOST_SERIALIZATION_NVP(p_e_ident_padding);
21499 s & BOOST_SERIALIZATION_NVP(p_e_type);
21500 s & BOOST_SERIALIZATION_NVP(p_e_machine);
21501 s & BOOST_SERIALIZATION_NVP(p_e_flags);
21502 s & BOOST_SERIALIZATION_NVP(p_e_ehsize);
21503 s & BOOST_SERIALIZATION_NVP(p_phextrasz);
21504 s & BOOST_SERIALIZATION_NVP(p_e_phnum);
21505 s & BOOST_SERIALIZATION_NVP(p_shextrasz);
21506 s & BOOST_SERIALIZATION_NVP(p_e_shnum);
21507 s & BOOST_SERIALIZATION_NVP(p_e_shstrndx);
21508 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
21509 s & BOOST_SERIALIZATION_NVP(p_segmentTable);
21510 debugSerializationEnd("SgAsmElfFileHeader");
21511 }
21512#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
21514 // Local types
21516public:
21519 ET_NONE = 0
21525 ,ET_LOOS = 0xfe00
21526 ,ET_HIOS = 0xfeff
21527 ,ET_LOPROC = 0xff00
21528 ,ET_HIPROC = 0xffff
21530
21531 // Some structures are used to represent certain things whose layout is very precise in binary files, thus we need to
21532 // make sure the compiler doesn't insert alignment padding between the struct members. ROSE can be compiled on an
21533 // architecture that has different alignment constraints than the architecture that these structs describe. GNU
21534 // compilers have long used the attribute mechanism. Microsoft compilers on the other hand use pragmas. GCC versions
21535 // 4.0 and earlier do not recognize the Microsoft pragmas and issue compiler errors when one is encountered.
21536#ifdef _MSC_VER
21537# pragma pack (1)
21538#endif
21539
21546 unsigned char e_ident_magic[4];
21547 unsigned char e_ident_file_class;
21549 unsigned char e_ident_file_version;
21550 unsigned char e_ident_padding[9];
21551 uint16_t e_type;
21552 uint16_t e_machine;
21553 uint32_t e_version;
21554 uint32_t e_entry;
21555 uint32_t e_phoff;
21556 uint32_t e_shoff;
21557 uint32_t e_flags;
21558 uint16_t e_ehsize;
21559 uint16_t e_phentsize;
21560 uint16_t e_phnum;
21561 uint16_t e_shentsize;
21562 uint16_t e_shnum;
21563 uint16_t e_shstrndx;
21564 }
21565#if !defined(SWIG) && !defined(_MSC_VER)
21566 __attribute__((packed))
21567#endif
21568 ;
21569
21571 unsigned char e_ident_magic[4];
21572 unsigned char e_ident_file_class;
21573 unsigned char e_ident_data_encoding;
21574 unsigned char e_ident_file_version;
21575 unsigned char e_ident_padding[9];
21576 uint16_t e_type;
21577 uint16_t e_machine;
21578 uint32_t e_version;
21579 uint64_t e_entry;
21580 uint64_t e_phoff;
21581 uint64_t e_shoff;
21582 uint32_t e_flags;
21583 uint16_t e_ehsize;
21584 uint16_t e_phentsize;
21585 uint16_t e_phnum;
21586 uint16_t e_shentsize;
21587 uint16_t e_shnum;
21588 uint16_t e_shstrndx;
21589 }
21590#if !defined(SWIG) && !defined(_MSC_VER)
21591 __attribute__((packed))
21592#endif
21593 ;
21594
21595#ifdef _MSC_VER
21596# pragma pack ()
21597#endif
21598
21600 // Properties
21602public:
21603public:
21609 unsigned char const& get_e_ident_file_class() const;
21610 void set_e_ident_file_class(unsigned char const&);
21613public:
21619 unsigned char const& get_e_ident_data_encoding() const;
21620 void set_e_ident_data_encoding(unsigned char const&);
21623public:
21629 unsigned char const& get_e_ident_file_version() const;
21630 void set_e_ident_file_version(unsigned char const&);
21633public:
21639 SgUnsignedCharList const& get_e_ident_padding() const;
21640 void set_e_ident_padding(SgUnsignedCharList const&);
21643public:
21649 unsigned long const& get_e_type() const;
21650 void set_e_type(unsigned long const&);
21653public:
21659 unsigned long const& get_e_machine() const;
21660 void set_e_machine(unsigned long const&);
21663public:
21669 unsigned long const& get_e_flags() const;
21670 void set_e_flags(unsigned long const&);
21673public:
21679 unsigned long const& get_e_ehsize() const;
21680 void set_e_ehsize(unsigned long const&);
21683public:
21689 unsigned long const& get_phextrasz() const;
21690 void set_phextrasz(unsigned long const&);
21693public:
21699 unsigned long const& get_e_phnum() const;
21700 void set_e_phnum(unsigned long const&);
21703public:
21709 unsigned long const& get_shextrasz() const;
21710 void set_shextrasz(unsigned long const&);
21713public:
21719 unsigned long const& get_e_shnum() const;
21720 void set_e_shnum(unsigned long const&);
21723public:
21729 unsigned long const& get_e_shstrndx() const;
21730 void set_e_shstrndx(unsigned long const&);
21733public:
21745public:
21756 // Functions
21758public:
21766
21773
21776
21779
21785 virtual SgAsmElfFileHeader *parse() override;
21786
21787 virtual bool reallocate() override;
21788
21790 virtual void unparse(std::ostream&) const override;
21791
21793 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21794
21797
21799 SgAsmGenericSectionPtrList get_sectionTableSections();
21800
21802 SgAsmGenericSectionPtrList get_segmentTableSections();
21803
21804 // Overrides documented in base class
21805 virtual const char *formatName() const override;
21806
21807private:
21810
21812 // Deprecated 2023-11
21814public:
21815 SgAsmElfSectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
21816 void set_section_table(SgAsmElfSectionTable*) ROSE_DEPRECATED("use set_sectionTable");
21817 SgAsmElfSegmentTable* get_segment_table() const ROSE_DEPRECATED("use get_segmentTable");
21818 void set_segment_table(SgAsmElfSegmentTable*) ROSE_DEPRECATED("use set_segmentTable");
21819 uint64_t max_page_size() ROSE_DEPRECATED("use maximumPageSize");
21820 static SgAsmExecutableFileFormat::InsSetArchitecture machine_to_isa(unsigned) ROSE_DEPRECATED("use machineToIsa");
21821 unsigned isa_to_machine(SgAsmExecutableFileFormat::InsSetArchitecture) const ROSE_DEPRECATED("use isaToMachine");
21822 static bool is_ELF(SgAsmGenericFile*) ROSE_DEPRECATED("use isElf");
21823 SgAsmGenericSectionPtrList get_sectab_sections() ROSE_DEPRECATED("use get_sectionTableSections");
21824 SgAsmGenericSectionPtrList get_segtab_sections() ROSE_DEPRECATED("use get_segmentTableSections");
21825 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
21826public:
21829
21830public:
21833
21834protected:
21842#endif // SgAsmElfFileHeader_OTHERS
21843#ifdef DOCUMENTATION
21844};
21845#endif // DOCUMENTATION
21846
21847
21849// SgAsmElfEHFrameSection -- MACHINE GENERATED; DO NOT MODIFY --
21851
21852DECLARE_LEAF_CLASS(AsmElfEHFrameSection);
21853IS_SERIALIZABLE(AsmElfEHFrameSection);
21854
21855#ifndef DOCUMENTATION
21856AsmElfEHFrameSection.useSmallHeader(true);
21857#endif // !DOCUMENTATION
21858
21859DECLARE_HEADERS(AsmElfEHFrameSection);
21860#if defined(SgAsmElfEHFrameSection_HEADERS) || defined(DOCUMENTATION)
21861#ifdef ROSE_SgAsmElfEHFrameSection_IMPL
21862#include <SgAsmElfEHFrameEntryCIList.h>
21863#endif
21864#endif // SgAsmElfEHFrameSection_HEADERS
21865
21866#ifdef DOCUMENTATION
21869#endif // DOCUMENTATION
21870
21871#ifndef DOCUMENTATION
21872 AsmElfEHFrameSection.setDataPrototype(
21873 "SgAsmElfEHFrameEntryCIList*", "ci_entries", "= createAndParent<SgAsmElfEHFrameEntryCIList>(this)",
21874 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21875#endif // !DOCUMENTATION
21876
21877 DECLARE_OTHERS(AsmElfEHFrameSection);
21878#if defined(SgAsmElfEHFrameSection_OTHERS) || defined(DOCUMENTATION)
21879
21880 //----------------------- Boost serialization for SgAsmElfEHFrameSection -----------------------
21881#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
21882private:
21883 friend class boost::serialization::access;
21884
21885 template<class S>
21886 void serialize(S &s, const unsigned /*version*/) {
21887 debugSerializationBegin("SgAsmElfEHFrameSection");
21888 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
21889 s & BOOST_SERIALIZATION_NVP(p_ci_entries);
21890 debugSerializationEnd("SgAsmElfEHFrameSection");
21891 }
21892#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
21893public:
21894public:
21904public:
21907
21909 virtual SgAsmElfEHFrameSection *parse() override;
21910
21915 virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
21916
21918 virtual void unparse(std::ostream&) const override;
21919
21924 rose_addr_t unparse(std::ostream*) const;
21925
21927 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21928
21930 // Deprecated 2023-11
21932public:
21933 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override ROSE_DEPRECATED("use calculateSizes");
21934public:
21937
21938public:
21941
21942protected:
21950#endif // SgAsmElfEHFrameSection_OTHERS
21951#ifdef DOCUMENTATION
21952};
21953#endif // DOCUMENTATION
21954
21955
21957// SgAsmElfEHFrameEntryFDList -- MACHINE GENERATED; DO NOT MODIFY --
21959
21960DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFDList);
21961IS_SERIALIZABLE(AsmElfEHFrameEntryFDList);
21962
21963#ifndef DOCUMENTATION
21964AsmElfEHFrameEntryFDList.useSmallHeader(true);
21965#endif // !DOCUMENTATION
21966
21967DECLARE_HEADERS(AsmElfEHFrameEntryFDList);
21968#if defined(SgAsmElfEHFrameEntryFDList_HEADERS) || defined(DOCUMENTATION)
21969#include <sageContainer.h>
21970#endif // SgAsmElfEHFrameEntryFDList_HEADERS
21971
21972#ifdef DOCUMENTATION
21978#endif // DOCUMENTATION
21979
21980#ifndef DOCUMENTATION
21981 AsmElfEHFrameEntryFDList.setDataPrototype(
21982 "SgAsmElfEHFrameEntryFDPtrList", "entries", "",
21983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21984#endif // !DOCUMENTATION
21985
21986 DECLARE_OTHERS(AsmElfEHFrameEntryFDList);
21987#if defined(SgAsmElfEHFrameEntryFDList_OTHERS) || defined(DOCUMENTATION)
21988
21989 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFDList -----------------------
21990#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
21991private:
21992 friend class boost::serialization::access;
21993
21994 template<class S>
21995 void serialize(S &s, const unsigned /*version*/) {
21996 debugSerializationBegin("SgAsmElfEHFrameEntryFDList");
21997 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21998 s & BOOST_SERIALIZATION_NVP(p_entries);
21999 debugSerializationEnd("SgAsmElfEHFrameEntryFDList");
22000 }
22001#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
22002public:
22003public:
22007 SgAsmElfEHFrameEntryFDPtrList const& get_entries() const;
22008 SgAsmElfEHFrameEntryFDPtrList& get_entries();
22009 void set_entries(SgAsmElfEHFrameEntryFDPtrList const&);
22012public:
22015
22016public:
22019
22020protected:
22028#endif // SgAsmElfEHFrameEntryFDList_OTHERS
22029#ifdef DOCUMENTATION
22030};
22031#endif // DOCUMENTATION
22032
22033
22035// SgAsmElfEHFrameEntryFD -- MACHINE GENERATED; DO NOT MODIFY --
22037
22038DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFD);
22039IS_SERIALIZABLE(AsmElfEHFrameEntryFD);
22040
22041#ifndef DOCUMENTATION
22042AsmElfEHFrameEntryFD.useSmallHeader(true);
22043#endif // !DOCUMENTATION
22044
22045DECLARE_HEADERS(AsmElfEHFrameEntryFD);
22046#if defined(SgAsmElfEHFrameEntryFD_HEADERS) || defined(DOCUMENTATION)
22047#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
22048#include <sageContainer.h>
22049#endif // SgAsmElfEHFrameEntryFD_HEADERS
22050
22051#ifdef DOCUMENTATION
22054#endif // DOCUMENTATION
22055
22056#ifndef DOCUMENTATION
22057 AsmElfEHFrameEntryFD.setDataPrototype(
22058 "Rose::BinaryAnalysis::RelativeVirtualAddress", "begin_rva", "",
22059 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22060#endif // !DOCUMENTATION
22061
22062#ifndef DOCUMENTATION
22063 AsmElfEHFrameEntryFD.setDataPrototype(
22064 "rose_addr_t", "size", "= 0",
22065 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22066#endif // !DOCUMENTATION
22067
22068#ifndef DOCUMENTATION
22069 AsmElfEHFrameEntryFD.setDataPrototype(
22070 "SgUnsignedCharList", "augmentation_data", "",
22071 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22072#endif // !DOCUMENTATION
22073
22074#ifndef DOCUMENTATION
22075 AsmElfEHFrameEntryFD.setDataPrototype(
22076 "SgUnsignedCharList", "instructions", "",
22077 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22078#endif // !DOCUMENTATION
22079
22080 DECLARE_OTHERS(AsmElfEHFrameEntryFD);
22081#if defined(SgAsmElfEHFrameEntryFD_OTHERS) || defined(DOCUMENTATION)
22082
22083 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFD -----------------------
22084#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
22085private:
22086 friend class boost::serialization::access;
22087
22088 template<class S>
22089 void serialize(S &s, const unsigned /*version*/) {
22090 debugSerializationBegin("SgAsmElfEHFrameEntryFD");
22091 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22092 s & BOOST_SERIALIZATION_NVP(p_begin_rva);
22093 s & BOOST_SERIALIZATION_NVP(p_size);
22094 s & BOOST_SERIALIZATION_NVP(p_augmentation_data);
22095 s & BOOST_SERIALIZATION_NVP(p_instructions);
22096 debugSerializationEnd("SgAsmElfEHFrameEntryFD");
22097 }
22098#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
22099public:
22100public:
22111public:
22117 rose_addr_t const& get_size() const;
22118 void set_size(rose_addr_t const&);
22121public:
22127 SgUnsignedCharList const& get_augmentation_data() const;
22128 SgUnsignedCharList& get_augmentation_data();
22129 void set_augmentation_data(SgUnsignedCharList const&);
22132public:
22138 SgUnsignedCharList const& get_instructions() const;
22139 SgUnsignedCharList& get_instructions();
22140 void set_instructions(SgUnsignedCharList const&);
22142public:
22145
22147 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
22148
22154public:
22157
22158public:
22161
22162protected:
22170#endif // SgAsmElfEHFrameEntryFD_OTHERS
22171#ifdef DOCUMENTATION
22172};
22173#endif // DOCUMENTATION
22174
22175
22177// SgAsmElfEHFrameEntryCIList -- MACHINE GENERATED; DO NOT MODIFY --
22179
22180DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCIList);
22181IS_SERIALIZABLE(AsmElfEHFrameEntryCIList);
22182
22183#ifndef DOCUMENTATION
22184AsmElfEHFrameEntryCIList.useSmallHeader(true);
22185#endif // !DOCUMENTATION
22186
22187DECLARE_HEADERS(AsmElfEHFrameEntryCIList);
22188#if defined(SgAsmElfEHFrameEntryCIList_HEADERS) || defined(DOCUMENTATION)
22189#include <sageContainer.h>
22190#endif // SgAsmElfEHFrameEntryCIList_HEADERS
22191
22192#ifdef DOCUMENTATION
22198#endif // DOCUMENTATION
22199
22200#ifndef DOCUMENTATION
22201 AsmElfEHFrameEntryCIList.setDataPrototype(
22202 "SgAsmElfEHFrameEntryCIPtrList", "entries", "",
22203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22204#endif // !DOCUMENTATION
22205
22206 DECLARE_OTHERS(AsmElfEHFrameEntryCIList);
22207#if defined(SgAsmElfEHFrameEntryCIList_OTHERS) || defined(DOCUMENTATION)
22208
22209 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCIList -----------------------
22210#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
22211private:
22212 friend class boost::serialization::access;
22213
22214 template<class S>
22215 void serialize(S &s, const unsigned /*version*/) {
22216 debugSerializationBegin("SgAsmElfEHFrameEntryCIList");
22217 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22218 s & BOOST_SERIALIZATION_NVP(p_entries);
22219 debugSerializationEnd("SgAsmElfEHFrameEntryCIList");
22220 }
22221#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
22222public:
22223public:
22227 SgAsmElfEHFrameEntryCIPtrList const& get_entries() const;
22228 SgAsmElfEHFrameEntryCIPtrList& get_entries();
22229 void set_entries(SgAsmElfEHFrameEntryCIPtrList const&);
22232public:
22235
22236public:
22239
22240protected:
22248#endif // SgAsmElfEHFrameEntryCIList_OTHERS
22249#ifdef DOCUMENTATION
22250};
22251#endif // DOCUMENTATION
22252
22253
22255// SgAsmElfEHFrameEntryCI -- MACHINE GENERATED; DO NOT MODIFY --
22257
22258DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCI);
22259IS_SERIALIZABLE(AsmElfEHFrameEntryCI);
22260
22261#ifndef DOCUMENTATION
22262AsmElfEHFrameEntryCI.useSmallHeader(true);
22263#endif // !DOCUMENTATION
22264
22265DECLARE_HEADERS(AsmElfEHFrameEntryCI);
22266#if defined(SgAsmElfEHFrameEntryCI_HEADERS) || defined(DOCUMENTATION)
22267#include <sageContainer.h>
22268
22269#ifdef ROSE_SgAsmElfEHFrameEntryCI_IMPL
22270#include <SgAsmElfEHFrameEntryFDList.h>
22271#endif
22272#endif // SgAsmElfEHFrameEntryCI_HEADERS
22273
22274#ifdef DOCUMENTATION
22279#endif // DOCUMENTATION
22280
22281#ifndef DOCUMENTATION
22282 AsmElfEHFrameEntryCI.setDataPrototype(
22283 "int", "version", "= 0",
22284 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22285#endif // !DOCUMENTATION
22286
22287#ifndef DOCUMENTATION
22288 AsmElfEHFrameEntryCI.setDataPrototype(
22289 "std::string", "augmentation_string", "",
22290 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22291#endif // !DOCUMENTATION
22292
22293#ifndef DOCUMENTATION
22294 AsmElfEHFrameEntryCI.setDataPrototype(
22295 "uint64_t", "eh_data", "= 0",
22296 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22297#endif // !DOCUMENTATION
22298
22299#ifndef DOCUMENTATION
22300 AsmElfEHFrameEntryCI.setDataPrototype(
22301 "uint64_t", "code_alignment_factor", "= 0",
22302 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22303#endif // !DOCUMENTATION
22304
22305#ifndef DOCUMENTATION
22306 AsmElfEHFrameEntryCI.setDataPrototype(
22307 "int64_t", "data_alignment_factor", "= 0",
22308 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22309#endif // !DOCUMENTATION
22310
22311#ifndef DOCUMENTATION
22312 AsmElfEHFrameEntryCI.setDataPrototype(
22313 "uint64_t", "augmentation_data_length", "= 0",
22314 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22315#endif // !DOCUMENTATION
22316
22317#ifndef DOCUMENTATION
22318 AsmElfEHFrameEntryCI.setDataPrototype(
22319 "int", "lsda_encoding", "= -1",
22320 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22321#endif // !DOCUMENTATION
22322
22323#ifndef DOCUMENTATION
22324 AsmElfEHFrameEntryCI.setDataPrototype(
22325 "int", "prh_encoding", "= -1",
22326 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22327#endif // !DOCUMENTATION
22328
22329#ifndef DOCUMENTATION
22330 AsmElfEHFrameEntryCI.setDataPrototype(
22331 "unsigned", "prh_arg", "= 0",
22332 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22333#endif // !DOCUMENTATION
22334
22335#ifndef DOCUMENTATION
22336 AsmElfEHFrameEntryCI.setDataPrototype(
22337 "rose_addr_t", "prh_addr", "= 0",
22338 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22339#endif // !DOCUMENTATION
22340
22341#ifndef DOCUMENTATION
22342 AsmElfEHFrameEntryCI.setDataPrototype(
22343 "int", "addr_encoding", "= -1",
22344 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22345#endif // !DOCUMENTATION
22346
22347#ifndef DOCUMENTATION
22348 AsmElfEHFrameEntryCI.setDataPrototype(
22349 "bool", "sig_frame", "= false",
22350 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22351#endif // !DOCUMENTATION
22352
22353#ifndef DOCUMENTATION
22354 AsmElfEHFrameEntryCI.setDataPrototype(
22355 "SgUnsignedCharList", "instructions", "",
22356 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22357#endif // !DOCUMENTATION
22358
22359#ifndef DOCUMENTATION
22360 AsmElfEHFrameEntryCI.setDataPrototype(
22361 "SgAsmElfEHFrameEntryFDList*", "fd_entries", "= createAndParent<SgAsmElfEHFrameEntryFDList>(this)",
22362 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22363#endif // !DOCUMENTATION
22364
22365 DECLARE_OTHERS(AsmElfEHFrameEntryCI);
22366#if defined(SgAsmElfEHFrameEntryCI_OTHERS) || defined(DOCUMENTATION)
22367
22368 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCI -----------------------
22369#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
22370private:
22371 friend class boost::serialization::access;
22372
22373 template<class S>
22374 void serialize(S &s, const unsigned /*version*/) {
22375 debugSerializationBegin("SgAsmElfEHFrameEntryCI");
22376 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22377 s & BOOST_SERIALIZATION_NVP(p_version);
22378 s & BOOST_SERIALIZATION_NVP(p_augmentation_string);
22379 s & BOOST_SERIALIZATION_NVP(p_eh_data);
22380 s & BOOST_SERIALIZATION_NVP(p_code_alignment_factor);
22381 s & BOOST_SERIALIZATION_NVP(p_data_alignment_factor);
22382 s & BOOST_SERIALIZATION_NVP(p_augmentation_data_length);
22383 s & BOOST_SERIALIZATION_NVP(p_lsda_encoding);
22384 s & BOOST_SERIALIZATION_NVP(p_prh_encoding);
22385 s & BOOST_SERIALIZATION_NVP(p_prh_arg);
22386 s & BOOST_SERIALIZATION_NVP(p_prh_addr);
22387 s & BOOST_SERIALIZATION_NVP(p_addr_encoding);
22388 s & BOOST_SERIALIZATION_NVP(p_sig_frame);
22389 s & BOOST_SERIALIZATION_NVP(p_instructions);
22390 s & BOOST_SERIALIZATION_NVP(p_fd_entries);
22391 debugSerializationEnd("SgAsmElfEHFrameEntryCI");
22392 }
22393#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
22394public:
22395public:
22401 int const& get_version() const;
22402 void set_version(int const&);
22405public:
22411 std::string const& get_augmentation_string() const;
22412 void set_augmentation_string(std::string const&);
22415public:
22421 uint64_t const& get_eh_data() const;
22422 void set_eh_data(uint64_t const&);
22425public:
22431 uint64_t const& get_code_alignment_factor() const;
22432 void set_code_alignment_factor(uint64_t const&);
22435public:
22441 int64_t const& get_data_alignment_factor() const;
22442 void set_data_alignment_factor(int64_t const&);
22445public:
22451 uint64_t const& get_augmentation_data_length() const;
22452 void set_augmentation_data_length(uint64_t const&);
22455public:
22461 int const& get_lsda_encoding() const;
22462 void set_lsda_encoding(int const&);
22465public:
22471 int const& get_prh_encoding() const;
22472 void set_prh_encoding(int const&);
22475public:
22481 unsigned const& get_prh_arg() const;
22482 void set_prh_arg(unsigned const&);
22485public:
22491 rose_addr_t const& get_prh_addr() const;
22492 void set_prh_addr(rose_addr_t const&);
22495public:
22501 int const& get_addr_encoding() const;
22502 void set_addr_encoding(int const&);
22505public:
22511 bool const& get_sig_frame() const;
22512 void set_sig_frame(bool const&);
22515public:
22521 SgUnsignedCharList const& get_instructions() const;
22522 SgUnsignedCharList& get_instructions();
22523 void set_instructions(SgUnsignedCharList const&);
22526public:
22536public:
22539
22541 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
22542
22547 std::string unparse(const SgAsmElfEHFrameSection*) const;
22548public:
22551
22552public:
22555
22556protected:
22564#endif // SgAsmElfEHFrameEntryCI_OTHERS
22565#ifdef DOCUMENTATION
22566};
22567#endif // DOCUMENTATION
22568
22569
22571// SgAsmElfDynamicSection -- MACHINE GENERATED; DO NOT MODIFY --
22573
22574DECLARE_LEAF_CLASS(AsmElfDynamicSection);
22575IS_SERIALIZABLE(AsmElfDynamicSection);
22576
22577#ifndef DOCUMENTATION
22578AsmElfDynamicSection.useSmallHeader(true);
22579#endif // !DOCUMENTATION
22580
22581DECLARE_HEADERS(AsmElfDynamicSection);
22582#if defined(SgAsmElfDynamicSection_HEADERS) || defined(DOCUMENTATION)
22583#ifdef ROSE_SgAsmElfDynamicSection_IMPL
22584#include <SgAsmElfDynamicEntryList.h>
22585#endif
22586#endif // SgAsmElfDynamicSection_HEADERS
22587
22588#ifdef DOCUMENTATION
22591#endif // DOCUMENTATION
22592
22593#ifndef DOCUMENTATION
22594 AsmElfDynamicSection.setDataPrototype(
22595 "SgAsmElfDynamicEntryList*", "entries", "= createAndParent<SgAsmElfDynamicEntryList>(this)",
22596 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22597#endif // !DOCUMENTATION
22598
22599 DECLARE_OTHERS(AsmElfDynamicSection);
22600#if defined(SgAsmElfDynamicSection_OTHERS) || defined(DOCUMENTATION)
22601
22602 //----------------------- Boost serialization for SgAsmElfDynamicSection -----------------------
22603#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
22604private:
22605 friend class boost::serialization::access;
22606
22607 template<class S>
22608 void serialize(S &s, const unsigned /*version*/) {
22609 debugSerializationBegin("SgAsmElfDynamicSection");
22610 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
22611 s & BOOST_SERIALIZATION_NVP(p_entries);
22612 debugSerializationEnd("SgAsmElfDynamicSection");
22613 }
22614#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
22615public:
22616public:
22626public:
22629
22631 virtual SgAsmElfDynamicSection* parse() override;
22632
22634 virtual void finishParsing() override;
22635
22638 virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
22639
22640 virtual bool reallocate() override;
22641
22643 virtual void unparse(std::ostream&) const override;
22644
22646 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22647
22649 // Deprecated 2023-11
22651public:
22652 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing") ROSE_DEPRECATED("use finishParsing");
22653 using SgAsmElfSection::calculate_sizes;
22654 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override ROSE_DEPRECATED("use calculateSizes");
22655public:
22658
22659public:
22662
22663protected:
22671#endif // SgAsmElfDynamicSection_OTHERS
22672#ifdef DOCUMENTATION
22673};
22674#endif // DOCUMENTATION
22675
22676
22678// SgAsmElfSection -- MACHINE GENERATED; DO NOT MODIFY --
22680
22681#ifndef DOCUMENTATION
22682AstNodeClass& AsmElfSection = nonTerminalConstructor(
22683 "AsmElfSection",
22684 *this,
22685 "AsmElfSection",
22686 "AsmElfSectionTag",
22687 SubclassListBuilder()
22688 | AsmElfDynamicSection
22689 | AsmElfEHFrameSection
22690 | AsmElfNoteSection
22691 | AsmElfRelocSection
22692 | AsmElfStringSection
22693 | AsmElfSymbolSection
22694 | AsmElfSymverDefinedSection
22695 | AsmElfSymverNeededSection
22696 | AsmElfSymverSection
22697 , true);
22698assert(AsmElfSection.associatedGrammar != nullptr);
22699AsmElfSection.setCppCondition("!defined(DOCUMENTATION)");
22700AsmElfSection.isBoostSerializable(true);
22701AsmElfSection.setAutomaticGenerationOfConstructor(false);
22702AsmElfSection.setAutomaticGenerationOfDestructor(false);
22703#endif // !DOCUMENTATION
22704
22705#ifndef DOCUMENTATION
22706AsmElfSection.useSmallHeader(true);
22707#endif // !DOCUMENTATION
22708
22709DECLARE_HEADERS(AsmElfSection);
22710#if defined(SgAsmElfSection_HEADERS) || defined(DOCUMENTATION)
22711#ifdef ROSE_SgAsmElfSection_IMPL
22712#include <SgAsmElfSectionTableEntry.h>
22713#include <SgAsmElfSegmentTableEntry.h>
22714#endif
22715#endif // SgAsmElfSection_HEADERS
22716
22717#ifdef DOCUMENTATION
22720#endif // DOCUMENTATION
22721
22722#ifndef DOCUMENTATION
22723 AsmElfSection.setDataPrototype(
22724 "SgAsmElfSection*", "linkedSection", "= nullptr",
22725 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22726#endif // !DOCUMENTATION
22727
22728#ifndef DOCUMENTATION
22729 AsmElfSection.setDataPrototype(
22730 "SgAsmElfSectionTableEntry*", "sectionEntry", "= nullptr",
22731 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22732#endif // !DOCUMENTATION
22733
22734#ifndef DOCUMENTATION
22735 AsmElfSection.setDataPrototype(
22736 "SgAsmElfSegmentTableEntry*", "segmentEntry", "= nullptr",
22737 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22738#endif // !DOCUMENTATION
22739
22740 DECLARE_OTHERS(AsmElfSection);
22741#if defined(SgAsmElfSection_OTHERS) || defined(DOCUMENTATION)
22742
22743 //----------------------- Boost serialization for SgAsmElfSection -----------------------
22744#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
22745private:
22746 friend class boost::serialization::access;
22747
22748 template<class S>
22749 void serialize(S &s, const unsigned /*version*/) {
22750 debugSerializationBegin("SgAsmElfSection");
22751 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
22752 s & BOOST_SERIALIZATION_NVP(p_linkedSection);
22753 s & BOOST_SERIALIZATION_NVP(p_sectionEntry);
22754 s & BOOST_SERIALIZATION_NVP(p_segmentEntry);
22755 debugSerializationEnd("SgAsmElfSection");
22756 }
22757#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
22758public:
22759public:
22768public:
22776public:
22783public:
22789
22796
22801
22822 rose_addr_t calculateSizes(size_t r32size, size_t r64size, const std::vector<size_t> &optsizes,
22823 size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
22824
22825 virtual void finishParsing();
22826
22843 virtual rose_addr_t calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
22844
22845 virtual bool reallocate() override;
22846
22848 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22849
22852
22857
22859 // Deprecated 2023-11
22861public:
22862 SgAsmElfSection* get_linked_section() const ROSE_DEPRECATED("use get_linkedSection");
22863 virtual void set_linked_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_linkSection");
22864 SgAsmElfSectionTableEntry* get_section_entry() const ROSE_DEPRECATED("use get_sectionEntry");
22865 void set_section_entry(SgAsmElfSectionTableEntry*) ROSE_DEPRECATED("use set_sectionEntry");
22866 SgAsmElfSegmentTableEntry* get_segment_entry() const ROSE_DEPRECATED("use get_segmentEntry");
22867 void set_segment_entry(SgAsmElfSegmentTableEntry*) ROSE_DEPRECATED("use set_segmentEntry");
22868 SgAsmElfSection *init_from_section_table(SgAsmElfSectionTableEntry*, SgAsmElfStringSection*, int)
22869 ROSE_DEPRECATED("use initFromSectionTable");
22870 SgAsmElfSection *init_from_segment_table(SgAsmElfSegmentTableEntry*, bool mmap_only=false)
22871 ROSE_DEPRECATED("use initFromSegmentTable");
22872 rose_addr_t calculate_sizes(size_t, size_t, const std::vector<size_t>&, size_t*, size_t*, size_t*, size_t*) const
22873 ROSE_DEPRECATED("use calculateSizes");
22874 virtual void finish_parsing() ROSE_DEPRECATED("use finishParsing");
22875 virtual rose_addr_t calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
22876 void allocate_name_to_storage(SgAsmElfStringSection*) ROSE_DEPRECATED("use allocateNameToStorage");
22877 SgAsmElfFileHeader *get_elf_header() const ROSE_DEPRECATED("use get_elfHeader");
22878public:
22881
22882public:
22885
22886protected:
22894#endif // SgAsmElfSection_OTHERS
22895#ifdef DOCUMENTATION
22896};
22897#endif // DOCUMENTATION
22898
22899
22901// SgAsmElfDynamicEntryList -- MACHINE GENERATED; DO NOT MODIFY --
22903
22904DECLARE_LEAF_CLASS(AsmElfDynamicEntryList);
22905IS_SERIALIZABLE(AsmElfDynamicEntryList);
22906
22907#ifndef DOCUMENTATION
22908AsmElfDynamicEntryList.useSmallHeader(true);
22909#endif // !DOCUMENTATION
22910
22911DECLARE_HEADERS(AsmElfDynamicEntryList);
22912#if defined(SgAsmElfDynamicEntryList_HEADERS) || defined(DOCUMENTATION)
22913#include <sageContainer.h>
22914#endif // SgAsmElfDynamicEntryList_HEADERS
22915
22916#ifdef DOCUMENTATION
22922#endif // DOCUMENTATION
22923
22924#ifndef DOCUMENTATION
22925 AsmElfDynamicEntryList.setDataPrototype(
22926 "SgAsmElfDynamicEntryPtrList", "entries", "",
22927 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22928#endif // !DOCUMENTATION
22929
22930 DECLARE_OTHERS(AsmElfDynamicEntryList);
22931#if defined(SgAsmElfDynamicEntryList_OTHERS) || defined(DOCUMENTATION)
22932
22933 //----------------------- Boost serialization for SgAsmElfDynamicEntryList -----------------------
22934#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
22935private:
22936 friend class boost::serialization::access;
22937
22938 template<class S>
22939 void serialize(S &s, const unsigned /*version*/) {
22940 debugSerializationBegin("SgAsmElfDynamicEntryList");
22941 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22942 s & BOOST_SERIALIZATION_NVP(p_entries);
22943 debugSerializationEnd("SgAsmElfDynamicEntryList");
22944 }
22945#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
22946public:
22947public:
22951 SgAsmElfDynamicEntryPtrList const& get_entries() const;
22952 SgAsmElfDynamicEntryPtrList& get_entries();
22953 void set_entries(SgAsmElfDynamicEntryPtrList const&);
22956public:
22959
22960public:
22963
22964protected:
22972#endif // SgAsmElfDynamicEntryList_OTHERS
22973#ifdef DOCUMENTATION
22974};
22975#endif // DOCUMENTATION
22976
22977
22979// SgAsmElfDynamicEntry -- MACHINE GENERATED; DO NOT MODIFY --
22981
22982DECLARE_LEAF_CLASS(AsmElfDynamicEntry);
22983IS_SERIALIZABLE(AsmElfDynamicEntry);
22984
22985#ifndef DOCUMENTATION
22986AsmElfDynamicEntry.useSmallHeader(true);
22987#endif // !DOCUMENTATION
22988
22989DECLARE_HEADERS(AsmElfDynamicEntry);
22990#if defined(SgAsmElfDynamicEntry_HEADERS) || defined(DOCUMENTATION)
22991#include <Rose/BinaryAnalysis/ByteOrder.h>
22992#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
22993#include <sageContainer.h>
22994#endif // SgAsmElfDynamicEntry_HEADERS
22995
22996#ifdef DOCUMENTATION
22999#endif // DOCUMENTATION
23000
23001#ifndef DOCUMENTATION
23002 AsmElfDynamicEntry.setDataPrototype(
23003 "SgAsmElfDynamicEntry::EntryType", "d_tag", "= SgAsmElfDynamicEntry::DT_NULL",
23004 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23005#endif // !DOCUMENTATION
23006
23007#ifndef DOCUMENTATION
23008 AsmElfDynamicEntry.setDataPrototype(
23009 "Rose::BinaryAnalysis::RelativeVirtualAddress", "d_val", "",
23010 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23011#endif // !DOCUMENTATION
23012
23013#ifndef DOCUMENTATION
23014 AsmElfDynamicEntry.setDataPrototype(
23015 "SgAsmGenericString*", "name", "= nullptr",
23016 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23017#endif // !DOCUMENTATION
23018
23019#ifndef DOCUMENTATION
23020 AsmElfDynamicEntry.setDataPrototype(
23021 "SgUnsignedCharList", "extra", "",
23022 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23023#endif // !DOCUMENTATION
23024
23025 DECLARE_OTHERS(AsmElfDynamicEntry);
23026#if defined(SgAsmElfDynamicEntry_OTHERS) || defined(DOCUMENTATION)
23027
23028 //----------------------- Boost serialization for SgAsmElfDynamicEntry -----------------------
23029#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23030private:
23031 friend class boost::serialization::access;
23032
23033 template<class S>
23034 void serialize(S &s, const unsigned /*version*/) {
23035 debugSerializationBegin("SgAsmElfDynamicEntry");
23036 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23037 s & BOOST_SERIALIZATION_NVP(p_d_tag);
23038 s & BOOST_SERIALIZATION_NVP(p_d_val);
23039 s & BOOST_SERIALIZATION_NVP(p_name);
23040 s & BOOST_SERIALIZATION_NVP(p_extra);
23041 debugSerializationEnd("SgAsmElfDynamicEntry");
23042 }
23043#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23045 // Local types
23047public:
23048 enum EntryType { /* Type Executable SharedObj Purpose */
23049 DT_NULL = 0, /* ignored mandatory mandatory Marks end of dynamic array */
23050 DT_NEEDED = 1, /* value optional optional Name of needed library */
23051 DT_PLTRELSZ = 2, /* value optional optional Size of reloc entries associated with PLT */
23052 DT_PLTGOT = 3, /* pointer optional optional PLT and/or GOT */
23053 DT_HASH = 4, /* pointer mandatory mandatory Symbol hash table */
23054 DT_STRTAB = 5, /* pointer mandatory mandatory String table for symbols, lib names, etc. */
23055 DT_SYMTAB = 6, /* pointer mandatory mandatory Symbol table */
23056 DT_RELA = 7, /* pointer mandatory optional Relocation table */
23057 DT_RELASZ = 8, /* value mandatory optional Size of RELA relocation table */
23058 DT_RELAENT = 9, /* value mandatory optional Size of each RELA table entry */
23059 DT_STRSZ = 10, /* value mandatory mandatory Size of string table */
23060 DT_SYMENT = 11, /* value mandatory mandatory Size of symbol table entry */
23061 DT_INIT = 12, /* pointer optional optional Initialization function */
23062 DT_FINI = 13, /* pointer optional optional Termination function */
23063 DT_SONAME = 14, /* value ignored optional Name of shared object */
23064 DT_RPATH = 15, /* value optional ignored NUL-term library search path */
23065 DT_SYMBOLIC = 16, /* ignored ignored optional Bool determines dynamic linker symbol resolution */
23066 DT_REL = 17, /* pointer mandatory optional Relocation table */
23067 DT_RELSZ = 18, /* value mandatory optional Size of REL relocation table */
23068 DT_RELENT = 19, /* value mandatory optional Size of each REL table entry */
23069 DT_PLTREL = 20, /* value optional optional Reloc type for PLT; value is DT_RELA or DT_REL */
23070 DT_DEBUG = 21, /* pointer optional ignored Contents are not specified at ABI level */
23071 DT_TEXTREL = 22, /* ignored optional optional presence => relocs to nonwritable segments OK */
23072 DT_JMPREL = 23, /* pointer optional optional Addr of relocation entries for PLT */
23073 DT_BIND_NOW = 24, /* ignored optional optional Shall dynlinker do relocs before xfering control?*/
23074 DT_INIT_ARRAY = 25, /* pointer optional ? Array with addresses of init fct */
23075 DT_FINI_ARRAY = 26, /* pointer optional ? Array with address of fini fct */
23076 DT_INIT_ARRAYSZ = 27, /* value optional ? Size in bytes of DT_INIT_ARRAY */
23077 DT_FINI_ARRAYSZ = 28, /* value optional ? Size in bytes of DT_FINI_ARRAY */
23078 DT_RUNPATH = 29, /* ? optional ? Library search path (how diff from DT_RPATH?) */
23079 DT_FLAGS = 30, /* value optional ? Bit flags */
23080 DT_PREINIT_ARRAY = 32, /* pointer optional ? Array with addrs of preinit fct (aka DT_ENCODING)*/
23081 DT_PREINIT_ARRAYSZ = 33,/* value optional ? size in bytes of DT_PREINIT_ARRAY */
23082 DT_NUM = 34, /* ? ? ? "number used"? */
23083
23084 DT_GNU_PRELINKED =0x6ffffdf5,/*value ? ? Prelinking time stamp */
23085 DT_GNU_CONFLICTSZ=0x6ffffdf6,/*value ? ? Size of conflict section */
23086 DT_GNU_LIBLISTSZ=0x6ffffdf7,/*value ? ? Size of library list */
23087 DT_CHECKSUM = 0x6ffffdf8, /* value ? ? ? */
23088 DT_PLTPADSZ = 0x6ffffdf9, /* value ? ? ? */
23089 DT_MOVEENT = 0x6ffffdfa, /* value ? ? ? */
23090 DT_MOVESZ = 0x6ffffdfb, /* value ? ? ? */
23091 DT_FEATURE_1= 0x6ffffdfc, /* value ? ? Feature selection (DTF_*) */
23092 DT_POSFLAG_1= 0x6ffffdfd, /* value ? ? Flag for DT_* entries affecting next entry */
23093 DT_SYMINSZ = 0x6ffffdfe, /* value ? ? Size of syminfo table in bytes */
23094 DT_SYMINENT = 0x6ffffdff, /* value ? ? Size of each syminfo table entry */
23095
23096 DT_GNU_HASH = 0x6ffffef5, /* pointer ? ? GNU-style hash table */
23097 DT_TLSDESC_PLT=0x6ffffef6,/* pointer ? ? ? */
23098 DT_TLSDESC_GOT=0x6ffffef7,/* pointer ? ? ? */
23099 DT_GNU_CONFLICT=0x6ffffef8,/*pointer ? ? Start of conflict section */
23100 DT_GNU_LIBLIST=0x6ffffef9,/* pointer ? ? Library list */
23101 DT_CONFIG = 0x6ffffefa, /* pointer ? ? Configuration information */
23102 DT_DEPAUDIT = 0x6ffffefb, /* pointer ? ? Dependency auditing */
23103 DT_AUDIT = 0x6ffffefc, /* pointer ? ? Object auditing */
23104 DT_PLTPAD = 0x6ffffefd, /* pointer ? ? PLT padding */
23105 DT_MOVETAB = 0x6ffffefe, /* pointer ? ? Move table */
23106 DT_SYMINFO = 0x6ffffeff, /* pointer ? ? Syminfo table */
23107
23108 DT_VERSYM = 0x6ffffff0, /* pointer ? ? ? */
23109 DT_RELACOUNT= 0x6ffffff9, /* value ? ? ? */
23110 DT_RELCOUNT = 0x6ffffffa, /* value ? ? ? */
23111 DT_FLAGS_1 = 0x6ffffffb, /* value ? ? Sun state flags */
23112 DT_VERDEF = 0x6ffffffc, /* pointer ? ? Sun version definition table */
23113 DT_VERDEFNUM= 0x6ffffffd, /* value ? ? Sun number of version definitions */
23114 DT_VERNEED = 0x6ffffffe, /* pointer ? ? Sun needed versions table */
23115 DT_VERNEEDNUM=0x6fffffff, /* value ? ? Sun number of needed versions */
23116
23117 DT_AUXILIARY= 0x7ffffffd, /* pointer ? ? Sun shared obj to load before self */
23118 DT_FILTER = 0x7fffffff /* pointer ? ? Shared object ot get values from */
23119 };
23120
23121#ifdef _MSC_VER
23122# pragma pack (1)
23123#endif
23124
23127 uint32_t d_tag;
23128 uint32_t d_val;
23129 }
23130#if !defined(SWIG) && !defined(_MSC_VER)
23131 __attribute__((packed))
23132#endif
23133 ;
23134
23136 uint64_t d_tag;
23137 uint64_t d_val;
23138 }
23139#if !defined(SWIG) && !defined(_MSC_VER)
23140 __attribute__((packed))
23141#endif
23142 ;
23143
23144#ifdef _MSC_VER
23145# pragma pack ()
23146#endif
23147
23149 // Properties
23151public:
23152public:
23158 SgAsmElfDynamicEntry::EntryType const& get_d_tag() const;
23159 void set_d_tag(SgAsmElfDynamicEntry::EntryType const&);
23162public:
23173public:
23180public:
23184 SgUnsignedCharList const& get_extra() const;
23185 SgUnsignedCharList& get_extra();
23186 void set_extra(SgUnsignedCharList const&);
23189 // Functions
23191public:
23194
23210 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
23211
23213 static std::string toString(SgAsmElfDynamicEntry::EntryType);
23214
23216 // Deprecated 2023-11
23218public:
23219 static std::string to_string(SgAsmElfDynamicEntry::EntryType) ROSE_DEPRECATED("use toString");
23220public:
23223
23224public:
23227
23228protected:
23236#endif // SgAsmElfDynamicEntry_OTHERS
23237#ifdef DOCUMENTATION
23238};
23239#endif // DOCUMENTATION
23240
23241
23243// SgAsmDwarfWithStmt -- MACHINE GENERATED; DO NOT MODIFY --
23245
23246DECLARE_LEAF_CLASS(AsmDwarfWithStmt);
23247IS_SERIALIZABLE(AsmDwarfWithStmt);
23248
23249#ifndef DOCUMENTATION
23250AsmDwarfWithStmt.useSmallHeader(true);
23251#endif // !DOCUMENTATION
23252
23253#ifdef DOCUMENTATION
23255#endif // DOCUMENTATION
23256
23257 DECLARE_OTHERS(AsmDwarfWithStmt);
23258#if defined(SgAsmDwarfWithStmt_OTHERS) || defined(DOCUMENTATION)
23259
23260 //----------------------- Boost serialization for SgAsmDwarfWithStmt -----------------------
23261#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23262private:
23263 friend class boost::serialization::access;
23264
23265 template<class S>
23266 void serialize(S &s, const unsigned /*version*/) {
23267 debugSerializationBegin("SgAsmDwarfWithStmt");
23268 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23269 debugSerializationEnd("SgAsmDwarfWithStmt");
23270 }
23271#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23272
23273public:
23276
23277public:
23280
23281public:
23283 SgAsmDwarfWithStmt(int const& nesting_level,
23284 uint64_t const& offset,
23285 uint64_t const& overall_offset);
23286
23287protected:
23295#endif // SgAsmDwarfWithStmt_OTHERS
23296#ifdef DOCUMENTATION
23297};
23298#endif // DOCUMENTATION
23299
23300
23302// SgAsmDwarfVolatileType -- MACHINE GENERATED; DO NOT MODIFY --
23304
23305DECLARE_LEAF_CLASS(AsmDwarfVolatileType);
23306IS_SERIALIZABLE(AsmDwarfVolatileType);
23307
23308#ifndef DOCUMENTATION
23309AsmDwarfVolatileType.useSmallHeader(true);
23310#endif // !DOCUMENTATION
23311
23312#ifdef DOCUMENTATION
23314#endif // DOCUMENTATION
23315
23316 DECLARE_OTHERS(AsmDwarfVolatileType);
23317#if defined(SgAsmDwarfVolatileType_OTHERS) || defined(DOCUMENTATION)
23318
23319 //----------------------- Boost serialization for SgAsmDwarfVolatileType -----------------------
23320#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23321private:
23322 friend class boost::serialization::access;
23323
23324 template<class S>
23325 void serialize(S &s, const unsigned /*version*/) {
23326 debugSerializationBegin("SgAsmDwarfVolatileType");
23327 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23328 debugSerializationEnd("SgAsmDwarfVolatileType");
23329 }
23330#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23331
23332public:
23335
23336public:
23339
23340public:
23342 SgAsmDwarfVolatileType(int const& nesting_level,
23343 uint64_t const& offset,
23344 uint64_t const& overall_offset);
23345
23346protected:
23354#endif // SgAsmDwarfVolatileType_OTHERS
23355#ifdef DOCUMENTATION
23356};
23357#endif // DOCUMENTATION
23358
23359
23361// SgAsmDwarfVariantPart -- MACHINE GENERATED; DO NOT MODIFY --
23363
23364DECLARE_LEAF_CLASS(AsmDwarfVariantPart);
23365IS_SERIALIZABLE(AsmDwarfVariantPart);
23366
23367#ifndef DOCUMENTATION
23368AsmDwarfVariantPart.useSmallHeader(true);
23369#endif // !DOCUMENTATION
23370
23371#ifdef DOCUMENTATION
23373#endif // DOCUMENTATION
23374
23375 DECLARE_OTHERS(AsmDwarfVariantPart);
23376#if defined(SgAsmDwarfVariantPart_OTHERS) || defined(DOCUMENTATION)
23377
23378 //----------------------- Boost serialization for SgAsmDwarfVariantPart -----------------------
23379#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23380private:
23381 friend class boost::serialization::access;
23382
23383 template<class S>
23384 void serialize(S &s, const unsigned /*version*/) {
23385 debugSerializationBegin("SgAsmDwarfVariantPart");
23386 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23387 debugSerializationEnd("SgAsmDwarfVariantPart");
23388 }
23389#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23390
23391public:
23394
23395public:
23398
23399public:
23401 SgAsmDwarfVariantPart(int const& nesting_level,
23402 uint64_t const& offset,
23403 uint64_t const& overall_offset);
23404
23405protected:
23413#endif // SgAsmDwarfVariantPart_OTHERS
23414#ifdef DOCUMENTATION
23415};
23416#endif // DOCUMENTATION
23417
23418
23420// SgAsmDwarfVariant -- MACHINE GENERATED; DO NOT MODIFY --
23422
23423DECLARE_LEAF_CLASS(AsmDwarfVariant);
23424IS_SERIALIZABLE(AsmDwarfVariant);
23425
23426#ifndef DOCUMENTATION
23427AsmDwarfVariant.useSmallHeader(true);
23428#endif // !DOCUMENTATION
23429
23430#ifdef DOCUMENTATION
23432#endif // DOCUMENTATION
23433
23434 DECLARE_OTHERS(AsmDwarfVariant);
23435#if defined(SgAsmDwarfVariant_OTHERS) || defined(DOCUMENTATION)
23436
23437 //----------------------- Boost serialization for SgAsmDwarfVariant -----------------------
23438#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23439private:
23440 friend class boost::serialization::access;
23441
23442 template<class S>
23443 void serialize(S &s, const unsigned /*version*/) {
23444 debugSerializationBegin("SgAsmDwarfVariant");
23445 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23446 debugSerializationEnd("SgAsmDwarfVariant");
23447 }
23448#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23449
23450public:
23453
23454public:
23457
23458public:
23460 SgAsmDwarfVariant(int const& nesting_level,
23461 uint64_t const& offset,
23462 uint64_t const& overall_offset);
23463
23464protected:
23472#endif // SgAsmDwarfVariant_OTHERS
23473#ifdef DOCUMENTATION
23474};
23475#endif // DOCUMENTATION
23476
23477
23479// SgAsmDwarfVariable -- MACHINE GENERATED; DO NOT MODIFY --
23481
23482DECLARE_LEAF_CLASS(AsmDwarfVariable);
23483IS_SERIALIZABLE(AsmDwarfVariable);
23484
23485#ifndef DOCUMENTATION
23486AsmDwarfVariable.useSmallHeader(true);
23487#endif // !DOCUMENTATION
23488
23489#ifdef DOCUMENTATION
23491#endif // DOCUMENTATION
23492
23493 DECLARE_OTHERS(AsmDwarfVariable);
23494#if defined(SgAsmDwarfVariable_OTHERS) || defined(DOCUMENTATION)
23495
23496 //----------------------- Boost serialization for SgAsmDwarfVariable -----------------------
23497#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23498private:
23499 friend class boost::serialization::access;
23500
23501 template<class S>
23502 void serialize(S &s, const unsigned /*version*/) {
23503 debugSerializationBegin("SgAsmDwarfVariable");
23504 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23505 debugSerializationEnd("SgAsmDwarfVariable");
23506 }
23507#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23508
23509public:
23512
23513public:
23516
23517public:
23519 SgAsmDwarfVariable(int const& nesting_level,
23520 uint64_t const& offset,
23521 uint64_t const& overall_offset);
23522
23523protected:
23531#endif // SgAsmDwarfVariable_OTHERS
23532#ifdef DOCUMENTATION
23533};
23534#endif // DOCUMENTATION
23535
23536
23538// SgAsmDwarfUpcStrictType -- MACHINE GENERATED; DO NOT MODIFY --
23540
23541DECLARE_LEAF_CLASS(AsmDwarfUpcStrictType);
23542IS_SERIALIZABLE(AsmDwarfUpcStrictType);
23543
23544#ifndef DOCUMENTATION
23545AsmDwarfUpcStrictType.useSmallHeader(true);
23546#endif // !DOCUMENTATION
23547
23548#ifdef DOCUMENTATION
23550#endif // DOCUMENTATION
23551
23552 DECLARE_OTHERS(AsmDwarfUpcStrictType);
23553#if defined(SgAsmDwarfUpcStrictType_OTHERS) || defined(DOCUMENTATION)
23554
23555 //----------------------- Boost serialization for SgAsmDwarfUpcStrictType -----------------------
23556#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23557private:
23558 friend class boost::serialization::access;
23559
23560 template<class S>
23561 void serialize(S &s, const unsigned /*version*/) {
23562 debugSerializationBegin("SgAsmDwarfUpcStrictType");
23563 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23564 debugSerializationEnd("SgAsmDwarfUpcStrictType");
23565 }
23566#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23567
23568public:
23571
23572public:
23575
23576public:
23578 SgAsmDwarfUpcStrictType(int const& nesting_level,
23579 uint64_t const& offset,
23580 uint64_t const& overall_offset);
23581
23582protected:
23590#endif // SgAsmDwarfUpcStrictType_OTHERS
23591#ifdef DOCUMENTATION
23592};
23593#endif // DOCUMENTATION
23594
23595
23597// SgAsmDwarfUpcSharedType -- MACHINE GENERATED; DO NOT MODIFY --
23599
23600DECLARE_LEAF_CLASS(AsmDwarfUpcSharedType);
23601IS_SERIALIZABLE(AsmDwarfUpcSharedType);
23602
23603#ifndef DOCUMENTATION
23604AsmDwarfUpcSharedType.useSmallHeader(true);
23605#endif // !DOCUMENTATION
23606
23607#ifdef DOCUMENTATION
23609#endif // DOCUMENTATION
23610
23611 DECLARE_OTHERS(AsmDwarfUpcSharedType);
23612#if defined(SgAsmDwarfUpcSharedType_OTHERS) || defined(DOCUMENTATION)
23613
23614 //----------------------- Boost serialization for SgAsmDwarfUpcSharedType -----------------------
23615#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23616private:
23617 friend class boost::serialization::access;
23618
23619 template<class S>
23620 void serialize(S &s, const unsigned /*version*/) {
23621 debugSerializationBegin("SgAsmDwarfUpcSharedType");
23622 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23623 debugSerializationEnd("SgAsmDwarfUpcSharedType");
23624 }
23625#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23626
23627public:
23630
23631public:
23634
23635public:
23637 SgAsmDwarfUpcSharedType(int const& nesting_level,
23638 uint64_t const& offset,
23639 uint64_t const& overall_offset);
23640
23641protected:
23649#endif // SgAsmDwarfUpcSharedType_OTHERS
23650#ifdef DOCUMENTATION
23651};
23652#endif // DOCUMENTATION
23653
23654
23656// SgAsmDwarfUpcRelaxedType -- MACHINE GENERATED; DO NOT MODIFY --
23658
23659DECLARE_LEAF_CLASS(AsmDwarfUpcRelaxedType);
23660IS_SERIALIZABLE(AsmDwarfUpcRelaxedType);
23661
23662#ifndef DOCUMENTATION
23663AsmDwarfUpcRelaxedType.useSmallHeader(true);
23664#endif // !DOCUMENTATION
23665
23666#ifdef DOCUMENTATION
23668#endif // DOCUMENTATION
23669
23670 DECLARE_OTHERS(AsmDwarfUpcRelaxedType);
23671#if defined(SgAsmDwarfUpcRelaxedType_OTHERS) || defined(DOCUMENTATION)
23672
23673 //----------------------- Boost serialization for SgAsmDwarfUpcRelaxedType -----------------------
23674#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23675private:
23676 friend class boost::serialization::access;
23677
23678 template<class S>
23679 void serialize(S &s, const unsigned /*version*/) {
23680 debugSerializationBegin("SgAsmDwarfUpcRelaxedType");
23681 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23682 debugSerializationEnd("SgAsmDwarfUpcRelaxedType");
23683 }
23684#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23685
23686public:
23689
23690public:
23693
23694public:
23696 SgAsmDwarfUpcRelaxedType(int const& nesting_level,
23697 uint64_t const& offset,
23698 uint64_t const& overall_offset);
23699
23700protected:
23708#endif // SgAsmDwarfUpcRelaxedType_OTHERS
23709#ifdef DOCUMENTATION
23710};
23711#endif // DOCUMENTATION
23712
23713
23715// SgAsmDwarfUnspecifiedType -- MACHINE GENERATED; DO NOT MODIFY --
23717
23718DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedType);
23719IS_SERIALIZABLE(AsmDwarfUnspecifiedType);
23720
23721#ifndef DOCUMENTATION
23722AsmDwarfUnspecifiedType.useSmallHeader(true);
23723#endif // !DOCUMENTATION
23724
23725#ifdef DOCUMENTATION
23727#endif // DOCUMENTATION
23728
23729 DECLARE_OTHERS(AsmDwarfUnspecifiedType);
23730#if defined(SgAsmDwarfUnspecifiedType_OTHERS) || defined(DOCUMENTATION)
23731
23732 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedType -----------------------
23733#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23734private:
23735 friend class boost::serialization::access;
23736
23737 template<class S>
23738 void serialize(S &s, const unsigned /*version*/) {
23739 debugSerializationBegin("SgAsmDwarfUnspecifiedType");
23740 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23741 debugSerializationEnd("SgAsmDwarfUnspecifiedType");
23742 }
23743#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23744
23745public:
23748
23749public:
23752
23753public:
23755 SgAsmDwarfUnspecifiedType(int const& nesting_level,
23756 uint64_t const& offset,
23757 uint64_t const& overall_offset);
23758
23759protected:
23767#endif // SgAsmDwarfUnspecifiedType_OTHERS
23768#ifdef DOCUMENTATION
23769};
23770#endif // DOCUMENTATION
23771
23772
23774// SgAsmDwarfUnspecifiedParameters -- MACHINE GENERATED; DO NOT MODIFY --
23776
23777DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedParameters);
23778IS_SERIALIZABLE(AsmDwarfUnspecifiedParameters);
23779
23780#ifndef DOCUMENTATION
23781AsmDwarfUnspecifiedParameters.useSmallHeader(true);
23782#endif // !DOCUMENTATION
23783
23784#ifdef DOCUMENTATION
23786#endif // DOCUMENTATION
23787
23788 DECLARE_OTHERS(AsmDwarfUnspecifiedParameters);
23789#if defined(SgAsmDwarfUnspecifiedParameters_OTHERS) || defined(DOCUMENTATION)
23790
23791 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedParameters -----------------------
23792#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23793private:
23794 friend class boost::serialization::access;
23795
23796 template<class S>
23797 void serialize(S &s, const unsigned /*version*/) {
23798 debugSerializationBegin("SgAsmDwarfUnspecifiedParameters");
23799 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23800 debugSerializationEnd("SgAsmDwarfUnspecifiedParameters");
23801 }
23802#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23803
23804public:
23807
23808public:
23811
23812public:
23814 SgAsmDwarfUnspecifiedParameters(int const& nesting_level,
23815 uint64_t const& offset,
23816 uint64_t const& overall_offset);
23817
23818protected:
23826#endif // SgAsmDwarfUnspecifiedParameters_OTHERS
23827#ifdef DOCUMENTATION
23828};
23829#endif // DOCUMENTATION
23830
23831
23833// SgAsmDwarfUnknownConstruct -- MACHINE GENERATED; DO NOT MODIFY --
23835
23836DECLARE_LEAF_CLASS(AsmDwarfUnknownConstruct);
23837IS_SERIALIZABLE(AsmDwarfUnknownConstruct);
23838
23839#ifndef DOCUMENTATION
23840AsmDwarfUnknownConstruct.useSmallHeader(true);
23841#endif // !DOCUMENTATION
23842
23843#ifdef DOCUMENTATION
23845#endif // DOCUMENTATION
23846
23847 DECLARE_OTHERS(AsmDwarfUnknownConstruct);
23848#if defined(SgAsmDwarfUnknownConstruct_OTHERS) || defined(DOCUMENTATION)
23849
23850 //----------------------- Boost serialization for SgAsmDwarfUnknownConstruct -----------------------
23851#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23852private:
23853 friend class boost::serialization::access;
23854
23855 template<class S>
23856 void serialize(S &s, const unsigned /*version*/) {
23857 debugSerializationBegin("SgAsmDwarfUnknownConstruct");
23858 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23859 debugSerializationEnd("SgAsmDwarfUnknownConstruct");
23860 }
23861#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23862
23863public:
23866
23867public:
23870
23871public:
23873 SgAsmDwarfUnknownConstruct(int const& nesting_level,
23874 uint64_t const& offset,
23875 uint64_t const& overall_offset);
23876
23877protected:
23885#endif // SgAsmDwarfUnknownConstruct_OTHERS
23886#ifdef DOCUMENTATION
23887};
23888#endif // DOCUMENTATION
23889
23890
23892// SgAsmDwarfUnionType -- MACHINE GENERATED; DO NOT MODIFY --
23894
23895DECLARE_LEAF_CLASS(AsmDwarfUnionType);
23896IS_SERIALIZABLE(AsmDwarfUnionType);
23897
23898#ifndef DOCUMENTATION
23899AsmDwarfUnionType.useSmallHeader(true);
23900#endif // !DOCUMENTATION
23901
23902DECLARE_HEADERS(AsmDwarfUnionType);
23903#if defined(SgAsmDwarfUnionType_HEADERS) || defined(DOCUMENTATION)
23904#ifdef ROSE_SgAsmDwarfUnionType_IMPL
23905#include <SgAsmDwarfConstructList.h>
23906#endif
23907#endif // SgAsmDwarfUnionType_HEADERS
23908
23909#ifdef DOCUMENTATION
23911#endif // DOCUMENTATION
23912
23913#ifndef DOCUMENTATION
23914 AsmDwarfUnionType.setDataPrototype(
23915 "SgAsmDwarfConstructList*", "body", "= NULL",
23916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23917#endif // !DOCUMENTATION
23918
23919 DECLARE_OTHERS(AsmDwarfUnionType);
23920#if defined(SgAsmDwarfUnionType_OTHERS) || defined(DOCUMENTATION)
23921
23922 //----------------------- Boost serialization for SgAsmDwarfUnionType -----------------------
23923#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23924private:
23925 friend class boost::serialization::access;
23926
23927 template<class S>
23928 void serialize(S &s, const unsigned /*version*/) {
23929 debugSerializationBegin("SgAsmDwarfUnionType");
23930 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23931 s & BOOST_SERIALIZATION_NVP(p_body);
23932 debugSerializationEnd("SgAsmDwarfUnionType");
23933 }
23934#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23935public:
23936public:
23937 SgAsmDwarfConstructList* const& get_body() const;
23938 void set_body(SgAsmDwarfConstructList* const&);
23939public:
23940 SgAsmDwarfConstructList* get_children() override;
23941public:
23944
23945public:
23948
23949public:
23951 SgAsmDwarfUnionType(int const& nesting_level,
23952 uint64_t const& offset,
23953 uint64_t const& overall_offset);
23954
23955protected:
23963#endif // SgAsmDwarfUnionType_OTHERS
23964#ifdef DOCUMENTATION
23965};
23966#endif // DOCUMENTATION
23967
23968
23970// SgAsmDwarfTypedef -- MACHINE GENERATED; DO NOT MODIFY --
23972
23973DECLARE_LEAF_CLASS(AsmDwarfTypedef);
23974IS_SERIALIZABLE(AsmDwarfTypedef);
23975
23976#ifndef DOCUMENTATION
23977AsmDwarfTypedef.useSmallHeader(true);
23978#endif // !DOCUMENTATION
23979
23980#ifdef DOCUMENTATION
23982#endif // DOCUMENTATION
23983
23984 DECLARE_OTHERS(AsmDwarfTypedef);
23985#if defined(SgAsmDwarfTypedef_OTHERS) || defined(DOCUMENTATION)
23986
23987 //----------------------- Boost serialization for SgAsmDwarfTypedef -----------------------
23988#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
23989private:
23990 friend class boost::serialization::access;
23991
23992 template<class S>
23993 void serialize(S &s, const unsigned /*version*/) {
23994 debugSerializationBegin("SgAsmDwarfTypedef");
23995 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
23996 debugSerializationEnd("SgAsmDwarfTypedef");
23997 }
23998#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
23999
24000public:
24003
24004public:
24007
24008public:
24010 SgAsmDwarfTypedef(int const& nesting_level,
24011 uint64_t const& offset,
24012 uint64_t const& overall_offset);
24013
24014protected:
24022#endif // SgAsmDwarfTypedef_OTHERS
24023#ifdef DOCUMENTATION
24024};
24025#endif // DOCUMENTATION
24026
24027
24029// SgAsmDwarfTryBlock -- MACHINE GENERATED; DO NOT MODIFY --
24031
24032DECLARE_LEAF_CLASS(AsmDwarfTryBlock);
24033IS_SERIALIZABLE(AsmDwarfTryBlock);
24034
24035#ifndef DOCUMENTATION
24036AsmDwarfTryBlock.useSmallHeader(true);
24037#endif // !DOCUMENTATION
24038
24039#ifdef DOCUMENTATION
24041#endif // DOCUMENTATION
24042
24043 DECLARE_OTHERS(AsmDwarfTryBlock);
24044#if defined(SgAsmDwarfTryBlock_OTHERS) || defined(DOCUMENTATION)
24045
24046 //----------------------- Boost serialization for SgAsmDwarfTryBlock -----------------------
24047#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24048private:
24049 friend class boost::serialization::access;
24050
24051 template<class S>
24052 void serialize(S &s, const unsigned /*version*/) {
24053 debugSerializationBegin("SgAsmDwarfTryBlock");
24054 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24055 debugSerializationEnd("SgAsmDwarfTryBlock");
24056 }
24057#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24058
24059public:
24062
24063public:
24066
24067public:
24069 SgAsmDwarfTryBlock(int const& nesting_level,
24070 uint64_t const& offset,
24071 uint64_t const& overall_offset);
24072
24073protected:
24081#endif // SgAsmDwarfTryBlock_OTHERS
24082#ifdef DOCUMENTATION
24083};
24084#endif // DOCUMENTATION
24085
24086
24088// SgAsmDwarfThrownType -- MACHINE GENERATED; DO NOT MODIFY --
24090
24091DECLARE_LEAF_CLASS(AsmDwarfThrownType);
24092IS_SERIALIZABLE(AsmDwarfThrownType);
24093
24094#ifndef DOCUMENTATION
24095AsmDwarfThrownType.useSmallHeader(true);
24096#endif // !DOCUMENTATION
24097
24098#ifdef DOCUMENTATION
24100#endif // DOCUMENTATION
24101
24102 DECLARE_OTHERS(AsmDwarfThrownType);
24103#if defined(SgAsmDwarfThrownType_OTHERS) || defined(DOCUMENTATION)
24104
24105 //----------------------- Boost serialization for SgAsmDwarfThrownType -----------------------
24106#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24107private:
24108 friend class boost::serialization::access;
24109
24110 template<class S>
24111 void serialize(S &s, const unsigned /*version*/) {
24112 debugSerializationBegin("SgAsmDwarfThrownType");
24113 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24114 debugSerializationEnd("SgAsmDwarfThrownType");
24115 }
24116#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24117
24118public:
24121
24122public:
24125
24126public:
24128 SgAsmDwarfThrownType(int const& nesting_level,
24129 uint64_t const& offset,
24130 uint64_t const& overall_offset);
24131
24132protected:
24140#endif // SgAsmDwarfThrownType_OTHERS
24141#ifdef DOCUMENTATION
24142};
24143#endif // DOCUMENTATION
24144
24145
24147// SgAsmDwarfTemplateValueParameter -- MACHINE GENERATED; DO NOT MODIFY --
24149
24150DECLARE_LEAF_CLASS(AsmDwarfTemplateValueParameter);
24151IS_SERIALIZABLE(AsmDwarfTemplateValueParameter);
24152
24153#ifndef DOCUMENTATION
24154AsmDwarfTemplateValueParameter.useSmallHeader(true);
24155#endif // !DOCUMENTATION
24156
24157#ifdef DOCUMENTATION
24159#endif // DOCUMENTATION
24160
24161 DECLARE_OTHERS(AsmDwarfTemplateValueParameter);
24162#if defined(SgAsmDwarfTemplateValueParameter_OTHERS) || defined(DOCUMENTATION)
24163
24164 //----------------------- Boost serialization for SgAsmDwarfTemplateValueParameter -----------------------
24165#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24166private:
24167 friend class boost::serialization::access;
24168
24169 template<class S>
24170 void serialize(S &s, const unsigned /*version*/) {
24171 debugSerializationBegin("SgAsmDwarfTemplateValueParameter");
24172 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24173 debugSerializationEnd("SgAsmDwarfTemplateValueParameter");
24174 }
24175#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24176
24177public:
24180
24181public:
24184
24185public:
24187 SgAsmDwarfTemplateValueParameter(int const& nesting_level,
24188 uint64_t const& offset,
24189 uint64_t const& overall_offset);
24190
24191protected:
24199#endif // SgAsmDwarfTemplateValueParameter_OTHERS
24200#ifdef DOCUMENTATION
24201};
24202#endif // DOCUMENTATION
24203
24204
24206// SgAsmDwarfTemplateTypeParameter -- MACHINE GENERATED; DO NOT MODIFY --
24208
24209DECLARE_LEAF_CLASS(AsmDwarfTemplateTypeParameter);
24210IS_SERIALIZABLE(AsmDwarfTemplateTypeParameter);
24211
24212#ifndef DOCUMENTATION
24213AsmDwarfTemplateTypeParameter.useSmallHeader(true);
24214#endif // !DOCUMENTATION
24215
24216#ifdef DOCUMENTATION
24218#endif // DOCUMENTATION
24219
24220 DECLARE_OTHERS(AsmDwarfTemplateTypeParameter);
24221#if defined(SgAsmDwarfTemplateTypeParameter_OTHERS) || defined(DOCUMENTATION)
24222
24223 //----------------------- Boost serialization for SgAsmDwarfTemplateTypeParameter -----------------------
24224#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24225private:
24226 friend class boost::serialization::access;
24227
24228 template<class S>
24229 void serialize(S &s, const unsigned /*version*/) {
24230 debugSerializationBegin("SgAsmDwarfTemplateTypeParameter");
24231 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24232 debugSerializationEnd("SgAsmDwarfTemplateTypeParameter");
24233 }
24234#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24235
24236public:
24239
24240public:
24243
24244public:
24246 SgAsmDwarfTemplateTypeParameter(int const& nesting_level,
24247 uint64_t const& offset,
24248 uint64_t const& overall_offset);
24249
24250protected:
24258#endif // SgAsmDwarfTemplateTypeParameter_OTHERS
24259#ifdef DOCUMENTATION
24260};
24261#endif // DOCUMENTATION
24262
24263
24265// SgAsmDwarfSubroutineType -- MACHINE GENERATED; DO NOT MODIFY --
24267
24268DECLARE_LEAF_CLASS(AsmDwarfSubroutineType);
24269IS_SERIALIZABLE(AsmDwarfSubroutineType);
24270
24271#ifndef DOCUMENTATION
24272AsmDwarfSubroutineType.useSmallHeader(true);
24273#endif // !DOCUMENTATION
24274
24275DECLARE_HEADERS(AsmDwarfSubroutineType);
24276#if defined(SgAsmDwarfSubroutineType_HEADERS) || defined(DOCUMENTATION)
24277#ifdef ROSE_SgAsmDwarfSubroutineType_IMPL
24278#include <SgAsmDwarfConstructList.h>
24279#endif
24280#endif // SgAsmDwarfSubroutineType_HEADERS
24281
24282#ifdef DOCUMENTATION
24284#endif // DOCUMENTATION
24285
24286#ifndef DOCUMENTATION
24287 AsmDwarfSubroutineType.setDataPrototype(
24288 "SgAsmDwarfConstructList*", "body", "= nullptr",
24289 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24290#endif // !DOCUMENTATION
24291
24292 DECLARE_OTHERS(AsmDwarfSubroutineType);
24293#if defined(SgAsmDwarfSubroutineType_OTHERS) || defined(DOCUMENTATION)
24294
24295 //----------------------- Boost serialization for SgAsmDwarfSubroutineType -----------------------
24296#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24297private:
24298 friend class boost::serialization::access;
24299
24300 template<class S>
24301 void serialize(S &s, const unsigned /*version*/) {
24302 debugSerializationBegin("SgAsmDwarfSubroutineType");
24303 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24304 s & BOOST_SERIALIZATION_NVP(p_body);
24305 debugSerializationEnd("SgAsmDwarfSubroutineType");
24306 }
24307#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24308public:
24309public:
24310 SgAsmDwarfConstructList* const& get_body() const;
24311 void set_body(SgAsmDwarfConstructList* const&);
24312public:
24313 SgAsmDwarfConstructList* get_children() override;
24314public:
24317
24318public:
24321
24322public:
24324 SgAsmDwarfSubroutineType(int const& nesting_level,
24325 uint64_t const& offset,
24326 uint64_t const& overall_offset);
24327
24328protected:
24336#endif // SgAsmDwarfSubroutineType_OTHERS
24337#ifdef DOCUMENTATION
24338};
24339#endif // DOCUMENTATION
24340
24341
24343// SgAsmDwarfSubrangeType -- MACHINE GENERATED; DO NOT MODIFY --
24345
24346DECLARE_LEAF_CLASS(AsmDwarfSubrangeType);
24347IS_SERIALIZABLE(AsmDwarfSubrangeType);
24348
24349#ifndef DOCUMENTATION
24350AsmDwarfSubrangeType.useSmallHeader(true);
24351#endif // !DOCUMENTATION
24352
24353#ifdef DOCUMENTATION
24355#endif // DOCUMENTATION
24356
24357 DECLARE_OTHERS(AsmDwarfSubrangeType);
24358#if defined(SgAsmDwarfSubrangeType_OTHERS) || defined(DOCUMENTATION)
24359
24360 //----------------------- Boost serialization for SgAsmDwarfSubrangeType -----------------------
24361#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24362private:
24363 friend class boost::serialization::access;
24364
24365 template<class S>
24366 void serialize(S &s, const unsigned /*version*/) {
24367 debugSerializationBegin("SgAsmDwarfSubrangeType");
24368 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24369 debugSerializationEnd("SgAsmDwarfSubrangeType");
24370 }
24371#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24372
24373public:
24376
24377public:
24380
24381public:
24383 SgAsmDwarfSubrangeType(int const& nesting_level,
24384 uint64_t const& offset,
24385 uint64_t const& overall_offset);
24386
24387protected:
24395#endif // SgAsmDwarfSubrangeType_OTHERS
24396#ifdef DOCUMENTATION
24397};
24398#endif // DOCUMENTATION
24399
24400
24402// SgAsmDwarfSubprogram -- MACHINE GENERATED; DO NOT MODIFY --
24404
24405DECLARE_LEAF_CLASS(AsmDwarfSubprogram);
24406IS_SERIALIZABLE(AsmDwarfSubprogram);
24407
24408#ifndef DOCUMENTATION
24409AsmDwarfSubprogram.useSmallHeader(true);
24410#endif // !DOCUMENTATION
24411
24412DECLARE_HEADERS(AsmDwarfSubprogram);
24413#if defined(SgAsmDwarfSubprogram_HEADERS) || defined(DOCUMENTATION)
24414#ifdef ROSE_SgAsmDwarfSubprogram_IMPL
24415#include <SgAsmDwarfConstructList.h>
24416#endif
24417#endif // SgAsmDwarfSubprogram_HEADERS
24418
24419#ifdef DOCUMENTATION
24421#endif // DOCUMENTATION
24422
24423#ifndef DOCUMENTATION
24424 AsmDwarfSubprogram.setDataPrototype(
24425 "SgAsmDwarfConstructList*", "body", "= NULL",
24426 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24427#endif // !DOCUMENTATION
24428
24429 DECLARE_OTHERS(AsmDwarfSubprogram);
24430#if defined(SgAsmDwarfSubprogram_OTHERS) || defined(DOCUMENTATION)
24431
24432 //----------------------- Boost serialization for SgAsmDwarfSubprogram -----------------------
24433#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24434private:
24435 friend class boost::serialization::access;
24436
24437 template<class S>
24438 void serialize(S &s, const unsigned /*version*/) {
24439 debugSerializationBegin("SgAsmDwarfSubprogram");
24440 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24441 s & BOOST_SERIALIZATION_NVP(p_body);
24442 debugSerializationEnd("SgAsmDwarfSubprogram");
24443 }
24444#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24445public:
24446public:
24447 SgAsmDwarfConstructList* const& get_body() const;
24448 void set_body(SgAsmDwarfConstructList* const&);
24449public:
24450 SgAsmDwarfConstructList* get_children() override;
24451public:
24454
24455public:
24458
24459public:
24461 SgAsmDwarfSubprogram(int const& nesting_level,
24462 uint64_t const& offset,
24463 uint64_t const& overall_offset);
24464
24465protected:
24473#endif // SgAsmDwarfSubprogram_OTHERS
24474#ifdef DOCUMENTATION
24475};
24476#endif // DOCUMENTATION
24477
24478
24480// SgAsmDwarfStructureType -- MACHINE GENERATED; DO NOT MODIFY --
24482
24483DECLARE_LEAF_CLASS(AsmDwarfStructureType);
24484IS_SERIALIZABLE(AsmDwarfStructureType);
24485
24486#ifndef DOCUMENTATION
24487AsmDwarfStructureType.useSmallHeader(true);
24488#endif // !DOCUMENTATION
24489
24490DECLARE_HEADERS(AsmDwarfStructureType);
24491#if defined(SgAsmDwarfStructureType_HEADERS) || defined(DOCUMENTATION)
24492#ifdef ROSE_SgAsmDwarfStructureType_IMPL
24493#include <SgAsmDwarfConstructList.h>
24494#endif
24495#endif // SgAsmDwarfStructureType_HEADERS
24496
24497#ifdef DOCUMENTATION
24499#endif // DOCUMENTATION
24500
24501#ifndef DOCUMENTATION
24502 AsmDwarfStructureType.setDataPrototype(
24503 "SgAsmDwarfConstructList*", "body", "= nullptr",
24504 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24505#endif // !DOCUMENTATION
24506
24507 DECLARE_OTHERS(AsmDwarfStructureType);
24508#if defined(SgAsmDwarfStructureType_OTHERS) || defined(DOCUMENTATION)
24509
24510 //----------------------- Boost serialization for SgAsmDwarfStructureType -----------------------
24511#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24512private:
24513 friend class boost::serialization::access;
24514
24515 template<class S>
24516 void serialize(S &s, const unsigned /*version*/) {
24517 debugSerializationBegin("SgAsmDwarfStructureType");
24518 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24519 s & BOOST_SERIALIZATION_NVP(p_body);
24520 debugSerializationEnd("SgAsmDwarfStructureType");
24521 }
24522#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24523public:
24524public:
24525 SgAsmDwarfConstructList* const& get_body() const;
24526 void set_body(SgAsmDwarfConstructList* const&);
24527public:
24528 SgAsmDwarfConstructList* get_children() override;
24529public:
24532
24533public:
24536
24537public:
24539 SgAsmDwarfStructureType(int const& nesting_level,
24540 uint64_t const& offset,
24541 uint64_t const& overall_offset);
24542
24543protected:
24551#endif // SgAsmDwarfStructureType_OTHERS
24552#ifdef DOCUMENTATION
24553};
24554#endif // DOCUMENTATION
24555
24556
24558// SgAsmDwarfStringType -- MACHINE GENERATED; DO NOT MODIFY --
24560
24561DECLARE_LEAF_CLASS(AsmDwarfStringType);
24562IS_SERIALIZABLE(AsmDwarfStringType);
24563
24564#ifndef DOCUMENTATION
24565AsmDwarfStringType.useSmallHeader(true);
24566#endif // !DOCUMENTATION
24567
24568#ifdef DOCUMENTATION
24570#endif // DOCUMENTATION
24571
24572 DECLARE_OTHERS(AsmDwarfStringType);
24573#if defined(SgAsmDwarfStringType_OTHERS) || defined(DOCUMENTATION)
24574
24575 //----------------------- Boost serialization for SgAsmDwarfStringType -----------------------
24576#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24577private:
24578 friend class boost::serialization::access;
24579
24580 template<class S>
24581 void serialize(S &s, const unsigned /*version*/) {
24582 debugSerializationBegin("SgAsmDwarfStringType");
24583 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24584 debugSerializationEnd("SgAsmDwarfStringType");
24585 }
24586#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24587
24588public:
24591
24592public:
24595
24596public:
24598 SgAsmDwarfStringType(int const& nesting_level,
24599 uint64_t const& offset,
24600 uint64_t const& overall_offset);
24601
24602protected:
24610#endif // SgAsmDwarfStringType_OTHERS
24611#ifdef DOCUMENTATION
24612};
24613#endif // DOCUMENTATION
24614
24615
24617// SgAsmDwarfSharedType -- MACHINE GENERATED; DO NOT MODIFY --
24619
24620DECLARE_LEAF_CLASS(AsmDwarfSharedType);
24621IS_SERIALIZABLE(AsmDwarfSharedType);
24622
24623#ifndef DOCUMENTATION
24624AsmDwarfSharedType.useSmallHeader(true);
24625#endif // !DOCUMENTATION
24626
24627#ifdef DOCUMENTATION
24629#endif // DOCUMENTATION
24630
24631 DECLARE_OTHERS(AsmDwarfSharedType);
24632#if defined(SgAsmDwarfSharedType_OTHERS) || defined(DOCUMENTATION)
24633
24634 //----------------------- Boost serialization for SgAsmDwarfSharedType -----------------------
24635#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24636private:
24637 friend class boost::serialization::access;
24638
24639 template<class S>
24640 void serialize(S &s, const unsigned /*version*/) {
24641 debugSerializationBegin("SgAsmDwarfSharedType");
24642 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24643 debugSerializationEnd("SgAsmDwarfSharedType");
24644 }
24645#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24646
24647public:
24650
24651public:
24654
24655public:
24657 SgAsmDwarfSharedType(int const& nesting_level,
24658 uint64_t const& offset,
24659 uint64_t const& overall_offset);
24660
24661protected:
24669#endif // SgAsmDwarfSharedType_OTHERS
24670#ifdef DOCUMENTATION
24671};
24672#endif // DOCUMENTATION
24673
24674
24676// SgAsmDwarfSetType -- MACHINE GENERATED; DO NOT MODIFY --
24678
24679DECLARE_LEAF_CLASS(AsmDwarfSetType);
24680IS_SERIALIZABLE(AsmDwarfSetType);
24681
24682#ifndef DOCUMENTATION
24683AsmDwarfSetType.useSmallHeader(true);
24684#endif // !DOCUMENTATION
24685
24686#ifdef DOCUMENTATION
24688#endif // DOCUMENTATION
24689
24690 DECLARE_OTHERS(AsmDwarfSetType);
24691#if defined(SgAsmDwarfSetType_OTHERS) || defined(DOCUMENTATION)
24692
24693 //----------------------- Boost serialization for SgAsmDwarfSetType -----------------------
24694#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24695private:
24696 friend class boost::serialization::access;
24697
24698 template<class S>
24699 void serialize(S &s, const unsigned /*version*/) {
24700 debugSerializationBegin("SgAsmDwarfSetType");
24701 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24702 debugSerializationEnd("SgAsmDwarfSetType");
24703 }
24704#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24705
24706public:
24709
24710public:
24713
24714public:
24716 SgAsmDwarfSetType(int const& nesting_level,
24717 uint64_t const& offset,
24718 uint64_t const& overall_offset);
24719
24720protected:
24728#endif // SgAsmDwarfSetType_OTHERS
24729#ifdef DOCUMENTATION
24730};
24731#endif // DOCUMENTATION
24732
24733
24735// SgAsmDwarfRestrictType -- MACHINE GENERATED; DO NOT MODIFY --
24737
24738DECLARE_LEAF_CLASS(AsmDwarfRestrictType);
24739IS_SERIALIZABLE(AsmDwarfRestrictType);
24740
24741#ifndef DOCUMENTATION
24742AsmDwarfRestrictType.useSmallHeader(true);
24743#endif // !DOCUMENTATION
24744
24745#ifdef DOCUMENTATION
24747#endif // DOCUMENTATION
24748
24749 DECLARE_OTHERS(AsmDwarfRestrictType);
24750#if defined(SgAsmDwarfRestrictType_OTHERS) || defined(DOCUMENTATION)
24751
24752 //----------------------- Boost serialization for SgAsmDwarfRestrictType -----------------------
24753#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24754private:
24755 friend class boost::serialization::access;
24756
24757 template<class S>
24758 void serialize(S &s, const unsigned /*version*/) {
24759 debugSerializationBegin("SgAsmDwarfRestrictType");
24760 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24761 debugSerializationEnd("SgAsmDwarfRestrictType");
24762 }
24763#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24764
24765public:
24768
24769public:
24772
24773public:
24775 SgAsmDwarfRestrictType(int const& nesting_level,
24776 uint64_t const& offset,
24777 uint64_t const& overall_offset);
24778
24779protected:
24787#endif // SgAsmDwarfRestrictType_OTHERS
24788#ifdef DOCUMENTATION
24789};
24790#endif // DOCUMENTATION
24791
24792
24794// SgAsmDwarfReferenceType -- MACHINE GENERATED; DO NOT MODIFY --
24796
24797DECLARE_LEAF_CLASS(AsmDwarfReferenceType);
24798IS_SERIALIZABLE(AsmDwarfReferenceType);
24799
24800#ifndef DOCUMENTATION
24801AsmDwarfReferenceType.useSmallHeader(true);
24802#endif // !DOCUMENTATION
24803
24804#ifdef DOCUMENTATION
24806#endif // DOCUMENTATION
24807
24808 DECLARE_OTHERS(AsmDwarfReferenceType);
24809#if defined(SgAsmDwarfReferenceType_OTHERS) || defined(DOCUMENTATION)
24810
24811 //----------------------- Boost serialization for SgAsmDwarfReferenceType -----------------------
24812#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24813private:
24814 friend class boost::serialization::access;
24815
24816 template<class S>
24817 void serialize(S &s, const unsigned /*version*/) {
24818 debugSerializationBegin("SgAsmDwarfReferenceType");
24819 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24820 debugSerializationEnd("SgAsmDwarfReferenceType");
24821 }
24822#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24823
24824public:
24827
24828public:
24831
24832public:
24834 SgAsmDwarfReferenceType(int const& nesting_level,
24835 uint64_t const& offset,
24836 uint64_t const& overall_offset);
24837
24838protected:
24846#endif // SgAsmDwarfReferenceType_OTHERS
24847#ifdef DOCUMENTATION
24848};
24849#endif // DOCUMENTATION
24850
24851
24853// SgAsmDwarfPtrToMemberType -- MACHINE GENERATED; DO NOT MODIFY --
24855
24856DECLARE_LEAF_CLASS(AsmDwarfPtrToMemberType);
24857IS_SERIALIZABLE(AsmDwarfPtrToMemberType);
24858
24859#ifndef DOCUMENTATION
24860AsmDwarfPtrToMemberType.useSmallHeader(true);
24861#endif // !DOCUMENTATION
24862
24863#ifdef DOCUMENTATION
24865#endif // DOCUMENTATION
24866
24867 DECLARE_OTHERS(AsmDwarfPtrToMemberType);
24868#if defined(SgAsmDwarfPtrToMemberType_OTHERS) || defined(DOCUMENTATION)
24869
24870 //----------------------- Boost serialization for SgAsmDwarfPtrToMemberType -----------------------
24871#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24872private:
24873 friend class boost::serialization::access;
24874
24875 template<class S>
24876 void serialize(S &s, const unsigned /*version*/) {
24877 debugSerializationBegin("SgAsmDwarfPtrToMemberType");
24878 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24879 debugSerializationEnd("SgAsmDwarfPtrToMemberType");
24880 }
24881#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24882
24883public:
24886
24887public:
24890
24891public:
24893 SgAsmDwarfPtrToMemberType(int const& nesting_level,
24894 uint64_t const& offset,
24895 uint64_t const& overall_offset);
24896
24897protected:
24905#endif // SgAsmDwarfPtrToMemberType_OTHERS
24906#ifdef DOCUMENTATION
24907};
24908#endif // DOCUMENTATION
24909
24910
24912// SgAsmDwarfPointerType -- MACHINE GENERATED; DO NOT MODIFY --
24914
24915DECLARE_LEAF_CLASS(AsmDwarfPointerType);
24916IS_SERIALIZABLE(AsmDwarfPointerType);
24917
24918#ifndef DOCUMENTATION
24919AsmDwarfPointerType.useSmallHeader(true);
24920#endif // !DOCUMENTATION
24921
24922#ifdef DOCUMENTATION
24924#endif // DOCUMENTATION
24925
24926 DECLARE_OTHERS(AsmDwarfPointerType);
24927#if defined(SgAsmDwarfPointerType_OTHERS) || defined(DOCUMENTATION)
24928
24929 //----------------------- Boost serialization for SgAsmDwarfPointerType -----------------------
24930#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24931private:
24932 friend class boost::serialization::access;
24933
24934 template<class S>
24935 void serialize(S &s, const unsigned /*version*/) {
24936 debugSerializationBegin("SgAsmDwarfPointerType");
24937 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24938 debugSerializationEnd("SgAsmDwarfPointerType");
24939 }
24940#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
24941
24942public:
24945
24946public:
24949
24950public:
24952 SgAsmDwarfPointerType(int const& nesting_level,
24953 uint64_t const& offset,
24954 uint64_t const& overall_offset);
24955
24956protected:
24964#endif // SgAsmDwarfPointerType_OTHERS
24965#ifdef DOCUMENTATION
24966};
24967#endif // DOCUMENTATION
24968
24969
24971// SgAsmDwarfPartialUnit -- MACHINE GENERATED; DO NOT MODIFY --
24973
24974DECLARE_LEAF_CLASS(AsmDwarfPartialUnit);
24975IS_SERIALIZABLE(AsmDwarfPartialUnit);
24976
24977#ifndef DOCUMENTATION
24978AsmDwarfPartialUnit.useSmallHeader(true);
24979#endif // !DOCUMENTATION
24980
24981#ifdef DOCUMENTATION
24983#endif // DOCUMENTATION
24984
24985 DECLARE_OTHERS(AsmDwarfPartialUnit);
24986#if defined(SgAsmDwarfPartialUnit_OTHERS) || defined(DOCUMENTATION)
24987
24988 //----------------------- Boost serialization for SgAsmDwarfPartialUnit -----------------------
24989#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
24990private:
24991 friend class boost::serialization::access;
24992
24993 template<class S>
24994 void serialize(S &s, const unsigned /*version*/) {
24995 debugSerializationBegin("SgAsmDwarfPartialUnit");
24996 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24997 debugSerializationEnd("SgAsmDwarfPartialUnit");
24998 }
24999#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25000
25001public:
25004
25005public:
25008
25009public:
25011 SgAsmDwarfPartialUnit(int const& nesting_level,
25012 uint64_t const& offset,
25013 uint64_t const& overall_offset);
25014
25015protected:
25023#endif // SgAsmDwarfPartialUnit_OTHERS
25024#ifdef DOCUMENTATION
25025};
25026#endif // DOCUMENTATION
25027
25028
25030// SgAsmDwarfPackedType -- MACHINE GENERATED; DO NOT MODIFY --
25032
25033DECLARE_LEAF_CLASS(AsmDwarfPackedType);
25034IS_SERIALIZABLE(AsmDwarfPackedType);
25035
25036#ifndef DOCUMENTATION
25037AsmDwarfPackedType.useSmallHeader(true);
25038#endif // !DOCUMENTATION
25039
25040#ifdef DOCUMENTATION
25042#endif // DOCUMENTATION
25043
25044 DECLARE_OTHERS(AsmDwarfPackedType);
25045#if defined(SgAsmDwarfPackedType_OTHERS) || defined(DOCUMENTATION)
25046
25047 //----------------------- Boost serialization for SgAsmDwarfPackedType -----------------------
25048#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25049private:
25050 friend class boost::serialization::access;
25051
25052 template<class S>
25053 void serialize(S &s, const unsigned /*version*/) {
25054 debugSerializationBegin("SgAsmDwarfPackedType");
25055 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25056 debugSerializationEnd("SgAsmDwarfPackedType");
25057 }
25058#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25059
25060public:
25063
25064public:
25067
25068public:
25070 SgAsmDwarfPackedType(int const& nesting_level,
25071 uint64_t const& offset,
25072 uint64_t const& overall_offset);
25073
25074protected:
25082#endif // SgAsmDwarfPackedType_OTHERS
25083#ifdef DOCUMENTATION
25084};
25085#endif // DOCUMENTATION
25086
25087
25089// SgAsmDwarfNamespace -- MACHINE GENERATED; DO NOT MODIFY --
25091
25092DECLARE_LEAF_CLASS(AsmDwarfNamespace);
25093IS_SERIALIZABLE(AsmDwarfNamespace);
25094
25095#ifndef DOCUMENTATION
25096AsmDwarfNamespace.useSmallHeader(true);
25097#endif // !DOCUMENTATION
25098
25099DECLARE_HEADERS(AsmDwarfNamespace);
25100#if defined(SgAsmDwarfNamespace_HEADERS) || defined(DOCUMENTATION)
25101#ifdef ROSE_SgAsmDwarfNamespace_IMPL
25102#include <SgAsmDwarfConstructList.h>
25103#endif
25104#endif // SgAsmDwarfNamespace_HEADERS
25105
25106#ifdef DOCUMENTATION
25108#endif // DOCUMENTATION
25109
25110#ifndef DOCUMENTATION
25111 AsmDwarfNamespace.setDataPrototype(
25112 "SgAsmDwarfConstructList*", "body", "= NULL",
25113 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25114#endif // !DOCUMENTATION
25115
25116 DECLARE_OTHERS(AsmDwarfNamespace);
25117#if defined(SgAsmDwarfNamespace_OTHERS) || defined(DOCUMENTATION)
25118
25119 //----------------------- Boost serialization for SgAsmDwarfNamespace -----------------------
25120#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25121private:
25122 friend class boost::serialization::access;
25123
25124 template<class S>
25125 void serialize(S &s, const unsigned /*version*/) {
25126 debugSerializationBegin("SgAsmDwarfNamespace");
25127 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25128 s & BOOST_SERIALIZATION_NVP(p_body);
25129 debugSerializationEnd("SgAsmDwarfNamespace");
25130 }
25131#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25132public:
25133public:
25134 SgAsmDwarfConstructList* const& get_body() const;
25135 void set_body(SgAsmDwarfConstructList* const&);
25136public:
25137 SgAsmDwarfConstructList* get_children() override;
25138public:
25141
25142public:
25145
25146public:
25148 SgAsmDwarfNamespace(int const& nesting_level,
25149 uint64_t const& offset,
25150 uint64_t const& overall_offset);
25151
25152protected:
25160#endif // SgAsmDwarfNamespace_OTHERS
25161#ifdef DOCUMENTATION
25162};
25163#endif // DOCUMENTATION
25164
25165
25167// SgAsmDwarfNamelistItem -- MACHINE GENERATED; DO NOT MODIFY --
25169
25170DECLARE_LEAF_CLASS(AsmDwarfNamelistItem);
25171IS_SERIALIZABLE(AsmDwarfNamelistItem);
25172
25173#ifndef DOCUMENTATION
25174AsmDwarfNamelistItem.useSmallHeader(true);
25175#endif // !DOCUMENTATION
25176
25177#ifdef DOCUMENTATION
25179#endif // DOCUMENTATION
25180
25181 DECLARE_OTHERS(AsmDwarfNamelistItem);
25182#if defined(SgAsmDwarfNamelistItem_OTHERS) || defined(DOCUMENTATION)
25183
25184 //----------------------- Boost serialization for SgAsmDwarfNamelistItem -----------------------
25185#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25186private:
25187 friend class boost::serialization::access;
25188
25189 template<class S>
25190 void serialize(S &s, const unsigned /*version*/) {
25191 debugSerializationBegin("SgAsmDwarfNamelistItem");
25192 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25193 debugSerializationEnd("SgAsmDwarfNamelistItem");
25194 }
25195#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25196
25197public:
25200
25201public:
25204
25205public:
25207 SgAsmDwarfNamelistItem(int const& nesting_level,
25208 uint64_t const& offset,
25209 uint64_t const& overall_offset);
25210
25211protected:
25219#endif // SgAsmDwarfNamelistItem_OTHERS
25220#ifdef DOCUMENTATION
25221};
25222#endif // DOCUMENTATION
25223
25224
25226// SgAsmDwarfNamelist -- MACHINE GENERATED; DO NOT MODIFY --
25228
25229DECLARE_LEAF_CLASS(AsmDwarfNamelist);
25230IS_SERIALIZABLE(AsmDwarfNamelist);
25231
25232#ifndef DOCUMENTATION
25233AsmDwarfNamelist.useSmallHeader(true);
25234#endif // !DOCUMENTATION
25235
25236#ifdef DOCUMENTATION
25238#endif // DOCUMENTATION
25239
25240 DECLARE_OTHERS(AsmDwarfNamelist);
25241#if defined(SgAsmDwarfNamelist_OTHERS) || defined(DOCUMENTATION)
25242
25243 //----------------------- Boost serialization for SgAsmDwarfNamelist -----------------------
25244#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25245private:
25246 friend class boost::serialization::access;
25247
25248 template<class S>
25249 void serialize(S &s, const unsigned /*version*/) {
25250 debugSerializationBegin("SgAsmDwarfNamelist");
25251 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25252 debugSerializationEnd("SgAsmDwarfNamelist");
25253 }
25254#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25255
25256public:
25259
25260public:
25263
25264public:
25266 SgAsmDwarfNamelist(int const& nesting_level,
25267 uint64_t const& offset,
25268 uint64_t const& overall_offset);
25269
25270protected:
25278#endif // SgAsmDwarfNamelist_OTHERS
25279#ifdef DOCUMENTATION
25280};
25281#endif // DOCUMENTATION
25282
25283
25285// SgAsmDwarfMutableType -- MACHINE GENERATED; DO NOT MODIFY --
25287
25288DECLARE_LEAF_CLASS(AsmDwarfMutableType);
25289IS_SERIALIZABLE(AsmDwarfMutableType);
25290
25291#ifndef DOCUMENTATION
25292AsmDwarfMutableType.useSmallHeader(true);
25293#endif // !DOCUMENTATION
25294
25295#ifdef DOCUMENTATION
25297#endif // DOCUMENTATION
25298
25299 DECLARE_OTHERS(AsmDwarfMutableType);
25300#if defined(SgAsmDwarfMutableType_OTHERS) || defined(DOCUMENTATION)
25301
25302 //----------------------- Boost serialization for SgAsmDwarfMutableType -----------------------
25303#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25304private:
25305 friend class boost::serialization::access;
25306
25307 template<class S>
25308 void serialize(S &s, const unsigned /*version*/) {
25309 debugSerializationBegin("SgAsmDwarfMutableType");
25310 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25311 debugSerializationEnd("SgAsmDwarfMutableType");
25312 }
25313#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25314
25315public:
25318
25319public:
25322
25323public:
25325 SgAsmDwarfMutableType(int const& nesting_level,
25326 uint64_t const& offset,
25327 uint64_t const& overall_offset);
25328
25329protected:
25337#endif // SgAsmDwarfMutableType_OTHERS
25338#ifdef DOCUMENTATION
25339};
25340#endif // DOCUMENTATION
25341
25342
25344// SgAsmDwarfModule -- MACHINE GENERATED; DO NOT MODIFY --
25346
25347DECLARE_LEAF_CLASS(AsmDwarfModule);
25348IS_SERIALIZABLE(AsmDwarfModule);
25349
25350#ifndef DOCUMENTATION
25351AsmDwarfModule.useSmallHeader(true);
25352#endif // !DOCUMENTATION
25353
25354#ifdef DOCUMENTATION
25356#endif // DOCUMENTATION
25357
25358 DECLARE_OTHERS(AsmDwarfModule);
25359#if defined(SgAsmDwarfModule_OTHERS) || defined(DOCUMENTATION)
25360
25361 //----------------------- Boost serialization for SgAsmDwarfModule -----------------------
25362#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25363private:
25364 friend class boost::serialization::access;
25365
25366 template<class S>
25367 void serialize(S &s, const unsigned /*version*/) {
25368 debugSerializationBegin("SgAsmDwarfModule");
25369 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25370 debugSerializationEnd("SgAsmDwarfModule");
25371 }
25372#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25373
25374public:
25377
25378public:
25381
25382public:
25384 SgAsmDwarfModule(int const& nesting_level,
25385 uint64_t const& offset,
25386 uint64_t const& overall_offset);
25387
25388protected:
25396#endif // SgAsmDwarfModule_OTHERS
25397#ifdef DOCUMENTATION
25398};
25399#endif // DOCUMENTATION
25400
25401
25403// SgAsmDwarfMember -- MACHINE GENERATED; DO NOT MODIFY --
25405
25406DECLARE_LEAF_CLASS(AsmDwarfMember);
25407IS_SERIALIZABLE(AsmDwarfMember);
25408
25409#ifndef DOCUMENTATION
25410AsmDwarfMember.useSmallHeader(true);
25411#endif // !DOCUMENTATION
25412
25413#ifdef DOCUMENTATION
25415#endif // DOCUMENTATION
25416
25417 DECLARE_OTHERS(AsmDwarfMember);
25418#if defined(SgAsmDwarfMember_OTHERS) || defined(DOCUMENTATION)
25419
25420 //----------------------- Boost serialization for SgAsmDwarfMember -----------------------
25421#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25422private:
25423 friend class boost::serialization::access;
25424
25425 template<class S>
25426 void serialize(S &s, const unsigned /*version*/) {
25427 debugSerializationBegin("SgAsmDwarfMember");
25428 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25429 debugSerializationEnd("SgAsmDwarfMember");
25430 }
25431#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25432
25433public:
25436
25437public:
25440
25441public:
25443 SgAsmDwarfMember(int const& nesting_level,
25444 uint64_t const& offset,
25445 uint64_t const& overall_offset);
25446
25447protected:
25455#endif // SgAsmDwarfMember_OTHERS
25456#ifdef DOCUMENTATION
25457};
25458#endif // DOCUMENTATION
25459
25460
25462// SgAsmDwarfMacroList -- MACHINE GENERATED; DO NOT MODIFY --
25464
25465DECLARE_LEAF_CLASS(AsmDwarfMacroList);
25466IS_SERIALIZABLE(AsmDwarfMacroList);
25467
25468#ifndef DOCUMENTATION
25469AsmDwarfMacroList.useSmallHeader(true);
25470#endif // !DOCUMENTATION
25471
25472DECLARE_HEADERS(AsmDwarfMacroList);
25473#if defined(SgAsmDwarfMacroList_HEADERS) || defined(DOCUMENTATION)
25474#include <sageContainer.h>
25475#endif // SgAsmDwarfMacroList_HEADERS
25476
25477#ifdef DOCUMENTATION
25479#endif // DOCUMENTATION
25480
25481#ifndef DOCUMENTATION
25482 AsmDwarfMacroList.setDataPrototype(
25483 "SgAsmDwarfMacroPtrList", "macro_list", "",
25484 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25485#endif // !DOCUMENTATION
25486
25487 DECLARE_OTHERS(AsmDwarfMacroList);
25488#if defined(SgAsmDwarfMacroList_OTHERS) || defined(DOCUMENTATION)
25489
25490 //----------------------- Boost serialization for SgAsmDwarfMacroList -----------------------
25491#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25492private:
25493 friend class boost::serialization::access;
25494
25495 template<class S>
25496 void serialize(S &s, const unsigned /*version*/) {
25497 debugSerializationBegin("SgAsmDwarfMacroList");
25498 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
25499 s & BOOST_SERIALIZATION_NVP(p_macro_list);
25500 debugSerializationEnd("SgAsmDwarfMacroList");
25501 }
25502#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25503public:
25504public:
25505 SgAsmDwarfMacroPtrList const& get_macro_list() const;
25506 void set_macro_list(SgAsmDwarfMacroPtrList const&);
25507
25508public:
25511
25512public:
25515
25516protected:
25524#endif // SgAsmDwarfMacroList_OTHERS
25525#ifdef DOCUMENTATION
25526};
25527#endif // DOCUMENTATION
25528
25529
25531// SgAsmDwarfMacro -- MACHINE GENERATED; DO NOT MODIFY --
25533
25534DECLARE_LEAF_CLASS(AsmDwarfMacro);
25535IS_SERIALIZABLE(AsmDwarfMacro);
25536
25537#ifndef DOCUMENTATION
25538AsmDwarfMacro.useSmallHeader(true);
25539#endif // !DOCUMENTATION
25540
25541#ifdef DOCUMENTATION
25543#endif // DOCUMENTATION
25544
25545#ifndef DOCUMENTATION
25546 AsmDwarfMacro.setDataPrototype(
25547 "std::string", "macro_string", "",
25548 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
25549#endif // !DOCUMENTATION
25550
25551 DECLARE_OTHERS(AsmDwarfMacro);
25552#if defined(SgAsmDwarfMacro_OTHERS) || defined(DOCUMENTATION)
25553
25554 //----------------------- Boost serialization for SgAsmDwarfMacro -----------------------
25555#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25556private:
25557 friend class boost::serialization::access;
25558
25559 template<class S>
25560 void serialize(S &s, const unsigned /*version*/) {
25561 debugSerializationBegin("SgAsmDwarfMacro");
25562 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
25563 s & BOOST_SERIALIZATION_NVP(p_macro_string);
25564 debugSerializationEnd("SgAsmDwarfMacro");
25565 }
25566#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25567public:
25568public:
25569 std::string const& get_macro_string() const;
25570 void set_macro_string(std::string const&);
25571
25572public:
25575
25576public:
25579
25580protected:
25588#endif // SgAsmDwarfMacro_OTHERS
25589#ifdef DOCUMENTATION
25590};
25591#endif // DOCUMENTATION
25592
25593
25595// SgAsmDwarfLineList -- MACHINE GENERATED; DO NOT MODIFY --
25597
25598DECLARE_LEAF_CLASS(AsmDwarfLineList);
25599IS_SERIALIZABLE(AsmDwarfLineList);
25600
25601#ifndef DOCUMENTATION
25602AsmDwarfLineList.useSmallHeader(true);
25603#endif // !DOCUMENTATION
25604
25605DECLARE_HEADERS(AsmDwarfLineList);
25606#if defined(SgAsmDwarfLineList_HEADERS) || defined(DOCUMENTATION)
25607#include <sageContainer.h>
25608#endif // SgAsmDwarfLineList_HEADERS
25609
25610#ifdef DOCUMENTATION
25612#endif // DOCUMENTATION
25613
25614#ifndef DOCUMENTATION
25615 AsmDwarfLineList.setDataPrototype(
25616 "SgAsmDwarfLinePtrList", "line_list", "",
25617 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25618#endif // !DOCUMENTATION
25619
25620 DECLARE_OTHERS(AsmDwarfLineList);
25621#if defined(SgAsmDwarfLineList_OTHERS) || defined(DOCUMENTATION)
25622
25623 //----------------------- Boost serialization for SgAsmDwarfLineList -----------------------
25624#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25625private:
25626 friend class boost::serialization::access;
25627
25628 template<class S>
25629 void serialize(S &s, const unsigned /*version*/) {
25630 debugSerializationBegin("SgAsmDwarfLineList");
25631 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
25632 s & BOOST_SERIALIZATION_NVP(p_line_list);
25633 debugSerializationEnd("SgAsmDwarfLineList");
25634 }
25635#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25636public:
25637public:
25638 SgAsmDwarfLinePtrList const& get_line_list() const;
25639 SgAsmDwarfLinePtrList& get_line_list();
25640 void set_line_list(SgAsmDwarfLinePtrList const&);
25641#if 0
25642 // I [DQ] am having trouble making these proper data members so just use function to return them, so that they are
25643 // computed dynamically.
25644 AsmDwarfLineList.setDataPrototype("SgInstructionAddressSourcePositionMapPtrList", "instructionToSourceMap", "",
25645 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
25646 AsmDwarfLineList.setDataPrototype("SgSourcePositionInstructionAddressMapPtrList", "sourceToInstructionMap", "",
25647 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
25648#endif
25649
25650public:
25651 // Once the maps are setup using a valid SgAsmDwarfCompilationUnit, NULL is an acceptable value.
25653 static DwarfInstructionSourceMapReturnType buildInstructionAddressSourcePositionMaps( SgAsmDwarfCompilationUnit* dwarf_cu = NULL );
25654
25656 void display( const std::string & label );
25657
25658 static std::pair<uint64_t,uint64_t> instructionRange();
25659 static std::pair<LineColumnFilePosition,LineColumnFilePosition> sourceCodeRange( int file_id );
25660
25661 static uint64_t sourceCodeToAddress ( FileIdLineColumnFilePosition sourcePosition );
25662 static FileIdLineColumnFilePosition addressToSourceCode ( uint64_t address );
25663public:
25666
25667public:
25670
25671protected:
25679#endif // SgAsmDwarfLineList_OTHERS
25680#ifdef DOCUMENTATION
25681};
25682#endif // DOCUMENTATION
25683
25684
25686// SgAsmDwarfLine -- MACHINE GENERATED; DO NOT MODIFY --
25688
25689DECLARE_LEAF_CLASS(AsmDwarfLine);
25690IS_SERIALIZABLE(AsmDwarfLine);
25691
25692#ifndef DOCUMENTATION
25693AsmDwarfLine.useSmallHeader(true);
25694#endif // !DOCUMENTATION
25695
25696#ifdef DOCUMENTATION
25698#endif // DOCUMENTATION
25699
25700#ifndef DOCUMENTATION
25701 AsmDwarfLine.setDataPrototype(
25702 "uint64_t", "address", "= 0",
25703 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
25704#endif // !DOCUMENTATION
25705
25706#ifndef DOCUMENTATION
25707 AsmDwarfLine.setDataPrototype(
25708 "int", "file_id", "= -2",
25709 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
25710#endif // !DOCUMENTATION
25711
25712#ifndef DOCUMENTATION
25713 AsmDwarfLine.setDataPrototype(
25714 "int", "line", "= 0",
25715 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
25716#endif // !DOCUMENTATION
25717
25718#ifndef DOCUMENTATION
25719 AsmDwarfLine.setDataPrototype(
25720 "int", "column", "= 0",
25721 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
25722#endif // !DOCUMENTATION
25723
25724 DECLARE_OTHERS(AsmDwarfLine);
25725#if defined(SgAsmDwarfLine_OTHERS) || defined(DOCUMENTATION)
25726
25727 //----------------------- Boost serialization for SgAsmDwarfLine -----------------------
25728#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25729private:
25730 friend class boost::serialization::access;
25731
25732 template<class S>
25733 void serialize(S &s, const unsigned /*version*/) {
25734 debugSerializationBegin("SgAsmDwarfLine");
25735 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
25736 s & BOOST_SERIALIZATION_NVP(p_address);
25737 s & BOOST_SERIALIZATION_NVP(p_file_id);
25738 s & BOOST_SERIALIZATION_NVP(p_line);
25739 s & BOOST_SERIALIZATION_NVP(p_column);
25740 debugSerializationEnd("SgAsmDwarfLine");
25741 }
25742#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25743public:
25744public:
25745 uint64_t const& get_address() const;
25746 void set_address(uint64_t const&);
25747 // FIXME[Robb Matzke 2024-03-14]: Sg_File_Info::NULL_FILE_ID == -2, but since Sg_File_Info's definition is in the
25748 // huge Cxx_Grammar.h file we don't want to include it here.
25749public:
25750 int const& get_file_id() const;
25751 void set_file_id(int const&);
25752
25753public:
25754 int const& get_line() const;
25755 void set_line(int const&);
25756
25757public:
25758 int const& get_column() const;
25759 void set_column(int const&);
25760
25761public:
25764
25765public:
25768
25769public:
25771 SgAsmDwarfLine(uint64_t const& address,
25772 int const& file_id,
25773 int const& line,
25774 int const& column);
25775
25776protected:
25784#endif // SgAsmDwarfLine_OTHERS
25785#ifdef DOCUMENTATION
25786};
25787#endif // DOCUMENTATION
25788
25789
25791// SgAsmDwarfLexicalBlock -- MACHINE GENERATED; DO NOT MODIFY --
25793
25794DECLARE_LEAF_CLASS(AsmDwarfLexicalBlock);
25795IS_SERIALIZABLE(AsmDwarfLexicalBlock);
25796
25797#ifndef DOCUMENTATION
25798AsmDwarfLexicalBlock.useSmallHeader(true);
25799#endif // !DOCUMENTATION
25800
25801DECLARE_HEADERS(AsmDwarfLexicalBlock);
25802#if defined(SgAsmDwarfLexicalBlock_HEADERS) || defined(DOCUMENTATION)
25803#ifdef ROSE_SgAsmDwarfLexicalBlock_IMPL
25804#include <SgAsmDwarfConstructList.h>
25805#endif
25806#endif // SgAsmDwarfLexicalBlock_HEADERS
25807
25808#ifdef DOCUMENTATION
25810#endif // DOCUMENTATION
25811
25812#ifndef DOCUMENTATION
25813 AsmDwarfLexicalBlock.setDataPrototype(
25814 "SgAsmDwarfConstructList*", "body", "= nullptr",
25815 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25816#endif // !DOCUMENTATION
25817
25818 DECLARE_OTHERS(AsmDwarfLexicalBlock);
25819#if defined(SgAsmDwarfLexicalBlock_OTHERS) || defined(DOCUMENTATION)
25820
25821 //----------------------- Boost serialization for SgAsmDwarfLexicalBlock -----------------------
25822#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25823private:
25824 friend class boost::serialization::access;
25825
25826 template<class S>
25827 void serialize(S &s, const unsigned /*version*/) {
25828 debugSerializationBegin("SgAsmDwarfLexicalBlock");
25829 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25830 s & BOOST_SERIALIZATION_NVP(p_body);
25831 debugSerializationEnd("SgAsmDwarfLexicalBlock");
25832 }
25833#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25834public:
25835public:
25836 SgAsmDwarfConstructList* const& get_body() const;
25837 void set_body(SgAsmDwarfConstructList* const&);
25838public:
25839 SgAsmDwarfConstructList* get_children() override;
25840public:
25843
25844public:
25847
25848public:
25850 SgAsmDwarfLexicalBlock(int const& nesting_level,
25851 uint64_t const& offset,
25852 uint64_t const& overall_offset);
25853
25854protected:
25862#endif // SgAsmDwarfLexicalBlock_OTHERS
25863#ifdef DOCUMENTATION
25864};
25865#endif // DOCUMENTATION
25866
25867
25869// SgAsmDwarfLabel -- MACHINE GENERATED; DO NOT MODIFY --
25871
25872DECLARE_LEAF_CLASS(AsmDwarfLabel);
25873IS_SERIALIZABLE(AsmDwarfLabel);
25874
25875#ifndef DOCUMENTATION
25876AsmDwarfLabel.useSmallHeader(true);
25877#endif // !DOCUMENTATION
25878
25879#ifdef DOCUMENTATION
25881#endif // DOCUMENTATION
25882
25883 DECLARE_OTHERS(AsmDwarfLabel);
25884#if defined(SgAsmDwarfLabel_OTHERS) || defined(DOCUMENTATION)
25885
25886 //----------------------- Boost serialization for SgAsmDwarfLabel -----------------------
25887#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25888private:
25889 friend class boost::serialization::access;
25890
25891 template<class S>
25892 void serialize(S &s, const unsigned /*version*/) {
25893 debugSerializationBegin("SgAsmDwarfLabel");
25894 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25895 debugSerializationEnd("SgAsmDwarfLabel");
25896 }
25897#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25898
25899public:
25902
25903public:
25906
25907public:
25909 SgAsmDwarfLabel(int const& nesting_level,
25910 uint64_t const& offset,
25911 uint64_t const& overall_offset);
25912
25913protected:
25921#endif // SgAsmDwarfLabel_OTHERS
25922#ifdef DOCUMENTATION
25923};
25924#endif // DOCUMENTATION
25925
25926
25928// SgAsmDwarfInterfaceType -- MACHINE GENERATED; DO NOT MODIFY --
25930
25931DECLARE_LEAF_CLASS(AsmDwarfInterfaceType);
25932IS_SERIALIZABLE(AsmDwarfInterfaceType);
25933
25934#ifndef DOCUMENTATION
25935AsmDwarfInterfaceType.useSmallHeader(true);
25936#endif // !DOCUMENTATION
25937
25938#ifdef DOCUMENTATION
25940#endif // DOCUMENTATION
25941
25942 DECLARE_OTHERS(AsmDwarfInterfaceType);
25943#if defined(SgAsmDwarfInterfaceType_OTHERS) || defined(DOCUMENTATION)
25944
25945 //----------------------- Boost serialization for SgAsmDwarfInterfaceType -----------------------
25946#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
25947private:
25948 friend class boost::serialization::access;
25949
25950 template<class S>
25951 void serialize(S &s, const unsigned /*version*/) {
25952 debugSerializationBegin("SgAsmDwarfInterfaceType");
25953 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25954 debugSerializationEnd("SgAsmDwarfInterfaceType");
25955 }
25956#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
25957
25958public:
25961
25962public:
25965
25966public:
25968 SgAsmDwarfInterfaceType(int const& nesting_level,
25969 uint64_t const& offset,
25970 uint64_t const& overall_offset);
25971
25972protected:
25980#endif // SgAsmDwarfInterfaceType_OTHERS
25981#ifdef DOCUMENTATION
25982};
25983#endif // DOCUMENTATION
25984
25985
25987// SgAsmDwarfInlinedSubroutine -- MACHINE GENERATED; DO NOT MODIFY --
25989
25990DECLARE_LEAF_CLASS(AsmDwarfInlinedSubroutine);
25991IS_SERIALIZABLE(AsmDwarfInlinedSubroutine);
25992
25993#ifndef DOCUMENTATION
25994AsmDwarfInlinedSubroutine.useSmallHeader(true);
25995#endif // !DOCUMENTATION
25996
25997DECLARE_HEADERS(AsmDwarfInlinedSubroutine);
25998#if defined(SgAsmDwarfInlinedSubroutine_HEADERS) || defined(DOCUMENTATION)
25999#ifdef ROSE_SgAsmDwarfInlinedSubroutine_IMPL
26000#include <SgAsmDwarfConstructList.h>
26001#endif
26002#endif // SgAsmDwarfInlinedSubroutine_HEADERS
26003
26004#ifdef DOCUMENTATION
26006#endif // DOCUMENTATION
26007
26008#ifndef DOCUMENTATION
26009 AsmDwarfInlinedSubroutine.setDataPrototype(
26010 "SgAsmDwarfConstructList*", "body", "= nullptr",
26011 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26012#endif // !DOCUMENTATION
26013
26014 DECLARE_OTHERS(AsmDwarfInlinedSubroutine);
26015#if defined(SgAsmDwarfInlinedSubroutine_OTHERS) || defined(DOCUMENTATION)
26016
26017 //----------------------- Boost serialization for SgAsmDwarfInlinedSubroutine -----------------------
26018#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26019private:
26020 friend class boost::serialization::access;
26021
26022 template<class S>
26023 void serialize(S &s, const unsigned /*version*/) {
26024 debugSerializationBegin("SgAsmDwarfInlinedSubroutine");
26025 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26026 s & BOOST_SERIALIZATION_NVP(p_body);
26027 debugSerializationEnd("SgAsmDwarfInlinedSubroutine");
26028 }
26029#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26030public:
26031public:
26032 SgAsmDwarfConstructList* const& get_body() const;
26033 void set_body(SgAsmDwarfConstructList* const&);
26034public:
26035 SgAsmDwarfConstructList* get_children() override;
26036public:
26039
26040public:
26043
26044public:
26046 SgAsmDwarfInlinedSubroutine(int const& nesting_level,
26047 uint64_t const& offset,
26048 uint64_t const& overall_offset);
26049
26050protected:
26058#endif // SgAsmDwarfInlinedSubroutine_OTHERS
26059#ifdef DOCUMENTATION
26060};
26061#endif // DOCUMENTATION
26062
26063
26065// SgAsmDwarfInheritance -- MACHINE GENERATED; DO NOT MODIFY --
26067
26068DECLARE_LEAF_CLASS(AsmDwarfInheritance);
26069IS_SERIALIZABLE(AsmDwarfInheritance);
26070
26071#ifndef DOCUMENTATION
26072AsmDwarfInheritance.useSmallHeader(true);
26073#endif // !DOCUMENTATION
26074
26075#ifdef DOCUMENTATION
26077#endif // DOCUMENTATION
26078
26079 DECLARE_OTHERS(AsmDwarfInheritance);
26080#if defined(SgAsmDwarfInheritance_OTHERS) || defined(DOCUMENTATION)
26081
26082 //----------------------- Boost serialization for SgAsmDwarfInheritance -----------------------
26083#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26084private:
26085 friend class boost::serialization::access;
26086
26087 template<class S>
26088 void serialize(S &s, const unsigned /*version*/) {
26089 debugSerializationBegin("SgAsmDwarfInheritance");
26090 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26091 debugSerializationEnd("SgAsmDwarfInheritance");
26092 }
26093#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26094
26095public:
26098
26099public:
26102
26103public:
26105 SgAsmDwarfInheritance(int const& nesting_level,
26106 uint64_t const& offset,
26107 uint64_t const& overall_offset);
26108
26109protected:
26117#endif // SgAsmDwarfInheritance_OTHERS
26118#ifdef DOCUMENTATION
26119};
26120#endif // DOCUMENTATION
26121
26122
26124// SgAsmDwarfImportedUnit -- MACHINE GENERATED; DO NOT MODIFY --
26126
26127DECLARE_LEAF_CLASS(AsmDwarfImportedUnit);
26128IS_SERIALIZABLE(AsmDwarfImportedUnit);
26129
26130#ifndef DOCUMENTATION
26131AsmDwarfImportedUnit.useSmallHeader(true);
26132#endif // !DOCUMENTATION
26133
26134#ifdef DOCUMENTATION
26136#endif // DOCUMENTATION
26137
26138 DECLARE_OTHERS(AsmDwarfImportedUnit);
26139#if defined(SgAsmDwarfImportedUnit_OTHERS) || defined(DOCUMENTATION)
26140
26141 //----------------------- Boost serialization for SgAsmDwarfImportedUnit -----------------------
26142#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26143private:
26144 friend class boost::serialization::access;
26145
26146 template<class S>
26147 void serialize(S &s, const unsigned /*version*/) {
26148 debugSerializationBegin("SgAsmDwarfImportedUnit");
26149 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26150 debugSerializationEnd("SgAsmDwarfImportedUnit");
26151 }
26152#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26153
26154public:
26157
26158public:
26161
26162public:
26164 SgAsmDwarfImportedUnit(int const& nesting_level,
26165 uint64_t const& offset,
26166 uint64_t const& overall_offset);
26167
26168protected:
26176#endif // SgAsmDwarfImportedUnit_OTHERS
26177#ifdef DOCUMENTATION
26178};
26179#endif // DOCUMENTATION
26180
26181
26183// SgAsmDwarfImportedModule -- MACHINE GENERATED; DO NOT MODIFY --
26185
26186DECLARE_LEAF_CLASS(AsmDwarfImportedModule);
26187IS_SERIALIZABLE(AsmDwarfImportedModule);
26188
26189#ifndef DOCUMENTATION
26190AsmDwarfImportedModule.useSmallHeader(true);
26191#endif // !DOCUMENTATION
26192
26193#ifdef DOCUMENTATION
26195#endif // DOCUMENTATION
26196
26197 DECLARE_OTHERS(AsmDwarfImportedModule);
26198#if defined(SgAsmDwarfImportedModule_OTHERS) || defined(DOCUMENTATION)
26199
26200 //----------------------- Boost serialization for SgAsmDwarfImportedModule -----------------------
26201#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26202private:
26203 friend class boost::serialization::access;
26204
26205 template<class S>
26206 void serialize(S &s, const unsigned /*version*/) {
26207 debugSerializationBegin("SgAsmDwarfImportedModule");
26208 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26209 debugSerializationEnd("SgAsmDwarfImportedModule");
26210 }
26211#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26212
26213public:
26216
26217public:
26220
26221public:
26223 SgAsmDwarfImportedModule(int const& nesting_level,
26224 uint64_t const& offset,
26225 uint64_t const& overall_offset);
26226
26227protected:
26235#endif // SgAsmDwarfImportedModule_OTHERS
26236#ifdef DOCUMENTATION
26237};
26238#endif // DOCUMENTATION
26239
26240
26242// SgAsmDwarfImportedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
26244
26245DECLARE_LEAF_CLASS(AsmDwarfImportedDeclaration);
26246IS_SERIALIZABLE(AsmDwarfImportedDeclaration);
26247
26248#ifndef DOCUMENTATION
26249AsmDwarfImportedDeclaration.useSmallHeader(true);
26250#endif // !DOCUMENTATION
26251
26252#ifdef DOCUMENTATION
26254#endif // DOCUMENTATION
26255
26256 DECLARE_OTHERS(AsmDwarfImportedDeclaration);
26257#if defined(SgAsmDwarfImportedDeclaration_OTHERS) || defined(DOCUMENTATION)
26258
26259 //----------------------- Boost serialization for SgAsmDwarfImportedDeclaration -----------------------
26260#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26261private:
26262 friend class boost::serialization::access;
26263
26264 template<class S>
26265 void serialize(S &s, const unsigned /*version*/) {
26266 debugSerializationBegin("SgAsmDwarfImportedDeclaration");
26267 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26268 debugSerializationEnd("SgAsmDwarfImportedDeclaration");
26269 }
26270#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26271
26272public:
26275
26276public:
26279
26280public:
26282 SgAsmDwarfImportedDeclaration(int const& nesting_level,
26283 uint64_t const& offset,
26284 uint64_t const& overall_offset);
26285
26286protected:
26294#endif // SgAsmDwarfImportedDeclaration_OTHERS
26295#ifdef DOCUMENTATION
26296};
26297#endif // DOCUMENTATION
26298
26299
26301// SgAsmDwarfFunctionTemplate -- MACHINE GENERATED; DO NOT MODIFY --
26303
26304DECLARE_LEAF_CLASS(AsmDwarfFunctionTemplate);
26305IS_SERIALIZABLE(AsmDwarfFunctionTemplate);
26306
26307#ifndef DOCUMENTATION
26308AsmDwarfFunctionTemplate.useSmallHeader(true);
26309#endif // !DOCUMENTATION
26310
26311#ifdef DOCUMENTATION
26313#endif // DOCUMENTATION
26314
26315 DECLARE_OTHERS(AsmDwarfFunctionTemplate);
26316#if defined(SgAsmDwarfFunctionTemplate_OTHERS) || defined(DOCUMENTATION)
26317
26318 //----------------------- Boost serialization for SgAsmDwarfFunctionTemplate -----------------------
26319#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26320private:
26321 friend class boost::serialization::access;
26322
26323 template<class S>
26324 void serialize(S &s, const unsigned /*version*/) {
26325 debugSerializationBegin("SgAsmDwarfFunctionTemplate");
26326 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26327 debugSerializationEnd("SgAsmDwarfFunctionTemplate");
26328 }
26329#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26330
26331public:
26334
26335public:
26338
26339public:
26341 SgAsmDwarfFunctionTemplate(int const& nesting_level,
26342 uint64_t const& offset,
26343 uint64_t const& overall_offset);
26344
26345protected:
26353#endif // SgAsmDwarfFunctionTemplate_OTHERS
26354#ifdef DOCUMENTATION
26355};
26356#endif // DOCUMENTATION
26357
26358
26360// SgAsmDwarfFriend -- MACHINE GENERATED; DO NOT MODIFY --
26362
26363DECLARE_LEAF_CLASS(AsmDwarfFriend);
26364IS_SERIALIZABLE(AsmDwarfFriend);
26365
26366#ifndef DOCUMENTATION
26367AsmDwarfFriend.useSmallHeader(true);
26368#endif // !DOCUMENTATION
26369
26370#ifdef DOCUMENTATION
26372#endif // DOCUMENTATION
26373
26374 DECLARE_OTHERS(AsmDwarfFriend);
26375#if defined(SgAsmDwarfFriend_OTHERS) || defined(DOCUMENTATION)
26376
26377 //----------------------- Boost serialization for SgAsmDwarfFriend -----------------------
26378#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26379private:
26380 friend class boost::serialization::access;
26381
26382 template<class S>
26383 void serialize(S &s, const unsigned /*version*/) {
26384 debugSerializationBegin("SgAsmDwarfFriend");
26385 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26386 debugSerializationEnd("SgAsmDwarfFriend");
26387 }
26388#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26389
26390public:
26393
26394public:
26397
26398public:
26400 SgAsmDwarfFriend(int const& nesting_level,
26401 uint64_t const& offset,
26402 uint64_t const& overall_offset);
26403
26404protected:
26412#endif // SgAsmDwarfFriend_OTHERS
26413#ifdef DOCUMENTATION
26414};
26415#endif // DOCUMENTATION
26416
26417
26419// SgAsmDwarfFormatLabel -- MACHINE GENERATED; DO NOT MODIFY --
26421
26422DECLARE_LEAF_CLASS(AsmDwarfFormatLabel);
26423IS_SERIALIZABLE(AsmDwarfFormatLabel);
26424
26425#ifndef DOCUMENTATION
26426AsmDwarfFormatLabel.useSmallHeader(true);
26427#endif // !DOCUMENTATION
26428
26429#ifdef DOCUMENTATION
26431#endif // DOCUMENTATION
26432
26433 DECLARE_OTHERS(AsmDwarfFormatLabel);
26434#if defined(SgAsmDwarfFormatLabel_OTHERS) || defined(DOCUMENTATION)
26435
26436 //----------------------- Boost serialization for SgAsmDwarfFormatLabel -----------------------
26437#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26438private:
26439 friend class boost::serialization::access;
26440
26441 template<class S>
26442 void serialize(S &s, const unsigned /*version*/) {
26443 debugSerializationBegin("SgAsmDwarfFormatLabel");
26444 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26445 debugSerializationEnd("SgAsmDwarfFormatLabel");
26446 }
26447#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26448
26449public:
26452
26453public:
26456
26457public:
26459 SgAsmDwarfFormatLabel(int const& nesting_level,
26460 uint64_t const& offset,
26461 uint64_t const& overall_offset);
26462
26463protected:
26471#endif // SgAsmDwarfFormatLabel_OTHERS
26472#ifdef DOCUMENTATION
26473};
26474#endif // DOCUMENTATION
26475
26476
26478// SgAsmDwarfFormalParameter -- MACHINE GENERATED; DO NOT MODIFY --
26480
26481DECLARE_LEAF_CLASS(AsmDwarfFormalParameter);
26482IS_SERIALIZABLE(AsmDwarfFormalParameter);
26483
26484#ifndef DOCUMENTATION
26485AsmDwarfFormalParameter.useSmallHeader(true);
26486#endif // !DOCUMENTATION
26487
26488#ifdef DOCUMENTATION
26490#endif // DOCUMENTATION
26491
26492 DECLARE_OTHERS(AsmDwarfFormalParameter);
26493#if defined(SgAsmDwarfFormalParameter_OTHERS) || defined(DOCUMENTATION)
26494
26495 //----------------------- Boost serialization for SgAsmDwarfFormalParameter -----------------------
26496#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26497private:
26498 friend class boost::serialization::access;
26499
26500 template<class S>
26501 void serialize(S &s, const unsigned /*version*/) {
26502 debugSerializationBegin("SgAsmDwarfFormalParameter");
26503 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26504 debugSerializationEnd("SgAsmDwarfFormalParameter");
26505 }
26506#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26507
26508public:
26511
26512public:
26515
26516public:
26518 SgAsmDwarfFormalParameter(int const& nesting_level,
26519 uint64_t const& offset,
26520 uint64_t const& overall_offset);
26521
26522protected:
26530#endif // SgAsmDwarfFormalParameter_OTHERS
26531#ifdef DOCUMENTATION
26532};
26533#endif // DOCUMENTATION
26534
26535
26537// SgAsmDwarfFileType -- MACHINE GENERATED; DO NOT MODIFY --
26539
26540DECLARE_LEAF_CLASS(AsmDwarfFileType);
26541IS_SERIALIZABLE(AsmDwarfFileType);
26542
26543#ifndef DOCUMENTATION
26544AsmDwarfFileType.useSmallHeader(true);
26545#endif // !DOCUMENTATION
26546
26547#ifdef DOCUMENTATION
26549#endif // DOCUMENTATION
26550
26551 DECLARE_OTHERS(AsmDwarfFileType);
26552#if defined(SgAsmDwarfFileType_OTHERS) || defined(DOCUMENTATION)
26553
26554 //----------------------- Boost serialization for SgAsmDwarfFileType -----------------------
26555#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26556private:
26557 friend class boost::serialization::access;
26558
26559 template<class S>
26560 void serialize(S &s, const unsigned /*version*/) {
26561 debugSerializationBegin("SgAsmDwarfFileType");
26562 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26563 debugSerializationEnd("SgAsmDwarfFileType");
26564 }
26565#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26566
26567public:
26570
26571public:
26574
26575public:
26577 SgAsmDwarfFileType(int const& nesting_level,
26578 uint64_t const& offset,
26579 uint64_t const& overall_offset);
26580
26581protected:
26589#endif // SgAsmDwarfFileType_OTHERS
26590#ifdef DOCUMENTATION
26591};
26592#endif // DOCUMENTATION
26593
26594
26596// SgAsmDwarfEnumerator -- MACHINE GENERATED; DO NOT MODIFY --
26598
26599DECLARE_LEAF_CLASS(AsmDwarfEnumerator);
26600IS_SERIALIZABLE(AsmDwarfEnumerator);
26601
26602#ifndef DOCUMENTATION
26603AsmDwarfEnumerator.useSmallHeader(true);
26604#endif // !DOCUMENTATION
26605
26606#ifdef DOCUMENTATION
26608#endif // DOCUMENTATION
26609
26610 DECLARE_OTHERS(AsmDwarfEnumerator);
26611#if defined(SgAsmDwarfEnumerator_OTHERS) || defined(DOCUMENTATION)
26612
26613 //----------------------- Boost serialization for SgAsmDwarfEnumerator -----------------------
26614#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26615private:
26616 friend class boost::serialization::access;
26617
26618 template<class S>
26619 void serialize(S &s, const unsigned /*version*/) {
26620 debugSerializationBegin("SgAsmDwarfEnumerator");
26621 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26622 debugSerializationEnd("SgAsmDwarfEnumerator");
26623 }
26624#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26625
26626public:
26629
26630public:
26633
26634public:
26636 SgAsmDwarfEnumerator(int const& nesting_level,
26637 uint64_t const& offset,
26638 uint64_t const& overall_offset);
26639
26640protected:
26648#endif // SgAsmDwarfEnumerator_OTHERS
26649#ifdef DOCUMENTATION
26650};
26651#endif // DOCUMENTATION
26652
26653
26655// SgAsmDwarfEnumerationType -- MACHINE GENERATED; DO NOT MODIFY --
26657
26658DECLARE_LEAF_CLASS(AsmDwarfEnumerationType);
26659IS_SERIALIZABLE(AsmDwarfEnumerationType);
26660
26661#ifndef DOCUMENTATION
26662AsmDwarfEnumerationType.useSmallHeader(true);
26663#endif // !DOCUMENTATION
26664
26665DECLARE_HEADERS(AsmDwarfEnumerationType);
26666#if defined(SgAsmDwarfEnumerationType_HEADERS) || defined(DOCUMENTATION)
26667#ifdef ROSE_SgAsmDwarfEnumerationType_IMPL
26668#include <SgAsmDwarfConstructList.h>
26669#endif
26670#endif // SgAsmDwarfEnumerationType_HEADERS
26671
26672#ifdef DOCUMENTATION
26674#endif // DOCUMENTATION
26675
26676#ifndef DOCUMENTATION
26677 AsmDwarfEnumerationType.setDataPrototype(
26678 "SgAsmDwarfConstructList*", "body", "= NULL",
26679 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26680#endif // !DOCUMENTATION
26681
26682 DECLARE_OTHERS(AsmDwarfEnumerationType);
26683#if defined(SgAsmDwarfEnumerationType_OTHERS) || defined(DOCUMENTATION)
26684
26685 //----------------------- Boost serialization for SgAsmDwarfEnumerationType -----------------------
26686#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26687private:
26688 friend class boost::serialization::access;
26689
26690 template<class S>
26691 void serialize(S &s, const unsigned /*version*/) {
26692 debugSerializationBegin("SgAsmDwarfEnumerationType");
26693 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26694 s & BOOST_SERIALIZATION_NVP(p_body);
26695 debugSerializationEnd("SgAsmDwarfEnumerationType");
26696 }
26697#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26698public:
26699public:
26700 SgAsmDwarfConstructList* const& get_body() const;
26701 void set_body(SgAsmDwarfConstructList* const&);
26702public:
26703 SgAsmDwarfConstructList* get_children() override;
26704public:
26707
26708public:
26711
26712public:
26714 SgAsmDwarfEnumerationType(int const& nesting_level,
26715 uint64_t const& offset,
26716 uint64_t const& overall_offset);
26717
26718protected:
26726#endif // SgAsmDwarfEnumerationType_OTHERS
26727#ifdef DOCUMENTATION
26728};
26729#endif // DOCUMENTATION
26730
26731
26733// SgAsmDwarfEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
26735
26736DECLARE_LEAF_CLASS(AsmDwarfEntryPoint);
26737IS_SERIALIZABLE(AsmDwarfEntryPoint);
26738
26739#ifndef DOCUMENTATION
26740AsmDwarfEntryPoint.useSmallHeader(true);
26741#endif // !DOCUMENTATION
26742
26743#ifdef DOCUMENTATION
26745#endif // DOCUMENTATION
26746
26747 DECLARE_OTHERS(AsmDwarfEntryPoint);
26748#if defined(SgAsmDwarfEntryPoint_OTHERS) || defined(DOCUMENTATION)
26749
26750 //----------------------- Boost serialization for SgAsmDwarfEntryPoint -----------------------
26751#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26752private:
26753 friend class boost::serialization::access;
26754
26755 template<class S>
26756 void serialize(S &s, const unsigned /*version*/) {
26757 debugSerializationBegin("SgAsmDwarfEntryPoint");
26758 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26759 debugSerializationEnd("SgAsmDwarfEntryPoint");
26760 }
26761#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26762
26763public:
26766
26767public:
26770
26771public:
26773 SgAsmDwarfEntryPoint(int const& nesting_level,
26774 uint64_t const& offset,
26775 uint64_t const& overall_offset);
26776
26777protected:
26785#endif // SgAsmDwarfEntryPoint_OTHERS
26786#ifdef DOCUMENTATION
26787};
26788#endif // DOCUMENTATION
26789
26790
26792// SgAsmDwarfDwarfProcedure -- MACHINE GENERATED; DO NOT MODIFY --
26794
26795DECLARE_LEAF_CLASS(AsmDwarfDwarfProcedure);
26796IS_SERIALIZABLE(AsmDwarfDwarfProcedure);
26797
26798#ifndef DOCUMENTATION
26799AsmDwarfDwarfProcedure.useSmallHeader(true);
26800#endif // !DOCUMENTATION
26801
26802#ifdef DOCUMENTATION
26804#endif // DOCUMENTATION
26805
26806 DECLARE_OTHERS(AsmDwarfDwarfProcedure);
26807#if defined(SgAsmDwarfDwarfProcedure_OTHERS) || defined(DOCUMENTATION)
26808
26809 //----------------------- Boost serialization for SgAsmDwarfDwarfProcedure -----------------------
26810#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26811private:
26812 friend class boost::serialization::access;
26813
26814 template<class S>
26815 void serialize(S &s, const unsigned /*version*/) {
26816 debugSerializationBegin("SgAsmDwarfDwarfProcedure");
26817 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26818 debugSerializationEnd("SgAsmDwarfDwarfProcedure");
26819 }
26820#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26821
26822public:
26825
26826public:
26829
26830public:
26832 SgAsmDwarfDwarfProcedure(int const& nesting_level,
26833 uint64_t const& offset,
26834 uint64_t const& overall_offset);
26835
26836protected:
26844#endif // SgAsmDwarfDwarfProcedure_OTHERS
26845#ifdef DOCUMENTATION
26846};
26847#endif // DOCUMENTATION
26848
26849
26851// SgAsmDwarfConstType -- MACHINE GENERATED; DO NOT MODIFY --
26853
26854DECLARE_LEAF_CLASS(AsmDwarfConstType);
26855IS_SERIALIZABLE(AsmDwarfConstType);
26856
26857#ifndef DOCUMENTATION
26858AsmDwarfConstType.useSmallHeader(true);
26859#endif // !DOCUMENTATION
26860
26861#ifdef DOCUMENTATION
26863#endif // DOCUMENTATION
26864
26865 DECLARE_OTHERS(AsmDwarfConstType);
26866#if defined(SgAsmDwarfConstType_OTHERS) || defined(DOCUMENTATION)
26867
26868 //----------------------- Boost serialization for SgAsmDwarfConstType -----------------------
26869#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26870private:
26871 friend class boost::serialization::access;
26872
26873 template<class S>
26874 void serialize(S &s, const unsigned /*version*/) {
26875 debugSerializationBegin("SgAsmDwarfConstType");
26876 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26877 debugSerializationEnd("SgAsmDwarfConstType");
26878 }
26879#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26880
26881public:
26884
26885public:
26888
26889public:
26891 SgAsmDwarfConstType(int const& nesting_level,
26892 uint64_t const& offset,
26893 uint64_t const& overall_offset);
26894
26895protected:
26903#endif // SgAsmDwarfConstType_OTHERS
26904#ifdef DOCUMENTATION
26905};
26906#endif // DOCUMENTATION
26907
26908
26910// SgAsmDwarfConstructList -- MACHINE GENERATED; DO NOT MODIFY --
26912
26913DECLARE_LEAF_CLASS(AsmDwarfConstructList);
26914IS_SERIALIZABLE(AsmDwarfConstructList);
26915
26916#ifndef DOCUMENTATION
26917AsmDwarfConstructList.useSmallHeader(true);
26918#endif // !DOCUMENTATION
26919
26920DECLARE_HEADERS(AsmDwarfConstructList);
26921#if defined(SgAsmDwarfConstructList_HEADERS) || defined(DOCUMENTATION)
26922#include <sageContainer.h>
26923#endif // SgAsmDwarfConstructList_HEADERS
26924
26925#ifdef DOCUMENTATION
26927#endif // DOCUMENTATION
26928
26929#ifndef DOCUMENTATION
26930 AsmDwarfConstructList.setDataPrototype(
26931 "SgAsmDwarfConstructPtrList", "list", "",
26932 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26933#endif // !DOCUMENTATION
26934
26935 DECLARE_OTHERS(AsmDwarfConstructList);
26936#if defined(SgAsmDwarfConstructList_OTHERS) || defined(DOCUMENTATION)
26937
26938 //----------------------- Boost serialization for SgAsmDwarfConstructList -----------------------
26939#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26940private:
26941 friend class boost::serialization::access;
26942
26943 template<class S>
26944 void serialize(S &s, const unsigned /*version*/) {
26945 debugSerializationBegin("SgAsmDwarfConstructList");
26946 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26947 s & BOOST_SERIALIZATION_NVP(p_list);
26948 debugSerializationEnd("SgAsmDwarfConstructList");
26949 }
26950#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
26951public:
26952public:
26953 SgAsmDwarfConstructPtrList const& get_list() const;
26954 SgAsmDwarfConstructPtrList& get_list();
26955 void set_list(SgAsmDwarfConstructPtrList const&);
26956
26957public:
26960
26961public:
26964
26965protected:
26973#endif // SgAsmDwarfConstructList_OTHERS
26974#ifdef DOCUMENTATION
26975};
26976#endif // DOCUMENTATION
26977
26978
26980// SgAsmDwarfConstant -- MACHINE GENERATED; DO NOT MODIFY --
26982
26983DECLARE_LEAF_CLASS(AsmDwarfConstant);
26984IS_SERIALIZABLE(AsmDwarfConstant);
26985
26986#ifndef DOCUMENTATION
26987AsmDwarfConstant.useSmallHeader(true);
26988#endif // !DOCUMENTATION
26989
26990#ifdef DOCUMENTATION
26992#endif // DOCUMENTATION
26993
26994 DECLARE_OTHERS(AsmDwarfConstant);
26995#if defined(SgAsmDwarfConstant_OTHERS) || defined(DOCUMENTATION)
26996
26997 //----------------------- Boost serialization for SgAsmDwarfConstant -----------------------
26998#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
26999private:
27000 friend class boost::serialization::access;
27001
27002 template<class S>
27003 void serialize(S &s, const unsigned /*version*/) {
27004 debugSerializationBegin("SgAsmDwarfConstant");
27005 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27006 debugSerializationEnd("SgAsmDwarfConstant");
27007 }
27008#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27009
27010public:
27013
27014public:
27017
27018public:
27020 SgAsmDwarfConstant(int const& nesting_level,
27021 uint64_t const& offset,
27022 uint64_t const& overall_offset);
27023
27024protected:
27032#endif // SgAsmDwarfConstant_OTHERS
27033#ifdef DOCUMENTATION
27034};
27035#endif // DOCUMENTATION
27036
27037
27039// SgAsmDwarfCondition -- MACHINE GENERATED; DO NOT MODIFY --
27041
27042DECLARE_LEAF_CLASS(AsmDwarfCondition);
27043IS_SERIALIZABLE(AsmDwarfCondition);
27044
27045#ifndef DOCUMENTATION
27046AsmDwarfCondition.useSmallHeader(true);
27047#endif // !DOCUMENTATION
27048
27049#ifdef DOCUMENTATION
27051#endif // DOCUMENTATION
27052
27053 DECLARE_OTHERS(AsmDwarfCondition);
27054#if defined(SgAsmDwarfCondition_OTHERS) || defined(DOCUMENTATION)
27055
27056 //----------------------- Boost serialization for SgAsmDwarfCondition -----------------------
27057#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27058private:
27059 friend class boost::serialization::access;
27060
27061 template<class S>
27062 void serialize(S &s, const unsigned /*version*/) {
27063 debugSerializationBegin("SgAsmDwarfCondition");
27064 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27065 debugSerializationEnd("SgAsmDwarfCondition");
27066 }
27067#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27068
27069public:
27072
27073public:
27076
27077public:
27079 SgAsmDwarfCondition(int const& nesting_level,
27080 uint64_t const& offset,
27081 uint64_t const& overall_offset);
27082
27083protected:
27091#endif // SgAsmDwarfCondition_OTHERS
27092#ifdef DOCUMENTATION
27093};
27094#endif // DOCUMENTATION
27095
27096
27098// SgAsmDwarfCompilationUnitList -- MACHINE GENERATED; DO NOT MODIFY --
27100
27101DECLARE_LEAF_CLASS(AsmDwarfCompilationUnitList);
27102IS_SERIALIZABLE(AsmDwarfCompilationUnitList);
27103
27104#ifndef DOCUMENTATION
27105AsmDwarfCompilationUnitList.useSmallHeader(true);
27106#endif // !DOCUMENTATION
27107
27108DECLARE_HEADERS(AsmDwarfCompilationUnitList);
27109#if defined(SgAsmDwarfCompilationUnitList_HEADERS) || defined(DOCUMENTATION)
27110#include <sageContainer.h>
27111#endif // SgAsmDwarfCompilationUnitList_HEADERS
27112
27113#ifdef DOCUMENTATION
27115#endif // DOCUMENTATION
27116
27117#ifndef DOCUMENTATION
27118 AsmDwarfCompilationUnitList.setDataPrototype(
27119 "SgAsmDwarfCompilationUnitPtrList", "cu_list", "",
27120 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27121#endif // !DOCUMENTATION
27122
27123 DECLARE_OTHERS(AsmDwarfCompilationUnitList);
27124#if defined(SgAsmDwarfCompilationUnitList_OTHERS) || defined(DOCUMENTATION)
27125
27126 //----------------------- Boost serialization for SgAsmDwarfCompilationUnitList -----------------------
27127#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27128private:
27129 friend class boost::serialization::access;
27130
27131 template<class S>
27132 void serialize(S &s, const unsigned /*version*/) {
27133 debugSerializationBegin("SgAsmDwarfCompilationUnitList");
27134 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
27135 s & BOOST_SERIALIZATION_NVP(p_cu_list);
27136 debugSerializationEnd("SgAsmDwarfCompilationUnitList");
27137 }
27138#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27139public:
27140public:
27141 SgAsmDwarfCompilationUnitPtrList const& get_cu_list() const;
27142 SgAsmDwarfCompilationUnitPtrList& get_cu_list();
27143 void set_cu_list(SgAsmDwarfCompilationUnitPtrList const&);
27144
27145public:
27148
27149public:
27152
27153protected:
27161#endif // SgAsmDwarfCompilationUnitList_OTHERS
27162#ifdef DOCUMENTATION
27163};
27164#endif // DOCUMENTATION
27165
27166
27168// SgAsmDwarfCompilationUnit -- MACHINE GENERATED; DO NOT MODIFY --
27170
27171DECLARE_LEAF_CLASS(AsmDwarfCompilationUnit);
27172IS_SERIALIZABLE(AsmDwarfCompilationUnit);
27173
27174#ifndef DOCUMENTATION
27175AsmDwarfCompilationUnit.useSmallHeader(true);
27176#endif // !DOCUMENTATION
27177
27178DECLARE_HEADERS(AsmDwarfCompilationUnit);
27179#if defined(SgAsmDwarfCompilationUnit_HEADERS) || defined(DOCUMENTATION)
27180#ifdef ROSE_SgAsmDwarfCompilationUnit_IMPL
27181#include <SgAsmDwarfConstructList.h>
27182#include <SgAsmDwarfLineList.h>
27183#include <SgAsmDwarfMacroList.h>
27184#endif
27185#endif // SgAsmDwarfCompilationUnit_HEADERS
27186
27187#ifdef DOCUMENTATION
27189#endif // DOCUMENTATION
27190
27191#ifndef DOCUMENTATION
27192 AsmDwarfCompilationUnit.setDataPrototype(
27193 "std::string", "producer", "",
27194 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27195#endif // !DOCUMENTATION
27196
27197#ifndef DOCUMENTATION
27198 AsmDwarfCompilationUnit.setDataPrototype(
27199 "std::string", "language", "",
27200 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27201#endif // !DOCUMENTATION
27202
27203#ifndef DOCUMENTATION
27204 AsmDwarfCompilationUnit.setDataPrototype(
27205 "uint64_t", "low_pc", "= 0",
27206 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27207#endif // !DOCUMENTATION
27208
27209#ifndef DOCUMENTATION
27210 AsmDwarfCompilationUnit.setDataPrototype(
27211 "uint64_t", "hi_pc", "= 0",
27212 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27213#endif // !DOCUMENTATION
27214
27215#ifndef DOCUMENTATION
27216 AsmDwarfCompilationUnit.setDataPrototype(
27217 "int", "version_stamp", "= 0",
27218 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27219#endif // !DOCUMENTATION
27220
27221#ifndef DOCUMENTATION
27222 AsmDwarfCompilationUnit.setDataPrototype(
27223 "uint64_t", "abbrev_offset", "= 0",
27224 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27225#endif // !DOCUMENTATION
27226
27227#ifndef DOCUMENTATION
27228 AsmDwarfCompilationUnit.setDataPrototype(
27229 "uint64_t", "address_size", "= 0",
27230 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27231#endif // !DOCUMENTATION
27232
27233#ifndef DOCUMENTATION
27234 AsmDwarfCompilationUnit.setDataPrototype(
27235 "uint64_t", "offset_length", "= 0",
27236 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27237#endif // !DOCUMENTATION
27238
27239#ifndef DOCUMENTATION
27240 AsmDwarfCompilationUnit.setDataPrototype(
27241 "SgAsmDwarfLineList*", "line_info", "= nullptr",
27242 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27243#endif // !DOCUMENTATION
27244
27245#ifndef DOCUMENTATION
27246 AsmDwarfCompilationUnit.setDataPrototype(
27247 "SgAsmDwarfConstructList*", "language_constructs", "= nullptr",
27248 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27249#endif // !DOCUMENTATION
27250
27251#ifndef DOCUMENTATION
27252 AsmDwarfCompilationUnit.setDataPrototype(
27253 "SgAsmDwarfMacroList*", "macro_info", "= nullptr",
27254 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27255#endif // !DOCUMENTATION
27256
27257 DECLARE_OTHERS(AsmDwarfCompilationUnit);
27258#if defined(SgAsmDwarfCompilationUnit_OTHERS) || defined(DOCUMENTATION)
27259
27260 //----------------------- Boost serialization for SgAsmDwarfCompilationUnit -----------------------
27261#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27262private:
27263 friend class boost::serialization::access;
27264
27265 template<class S>
27266 void serialize(S &s, const unsigned /*version*/) {
27267 debugSerializationBegin("SgAsmDwarfCompilationUnit");
27268 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27269 s & BOOST_SERIALIZATION_NVP(p_producer);
27270 s & BOOST_SERIALIZATION_NVP(p_language);
27271 s & BOOST_SERIALIZATION_NVP(p_low_pc);
27272 s & BOOST_SERIALIZATION_NVP(p_hi_pc);
27273 s & BOOST_SERIALIZATION_NVP(p_version_stamp);
27274 s & BOOST_SERIALIZATION_NVP(p_abbrev_offset);
27275 s & BOOST_SERIALIZATION_NVP(p_address_size);
27276 s & BOOST_SERIALIZATION_NVP(p_offset_length);
27277 s & BOOST_SERIALIZATION_NVP(p_line_info);
27278 s & BOOST_SERIALIZATION_NVP(p_language_constructs);
27279 s & BOOST_SERIALIZATION_NVP(p_macro_info);
27280 debugSerializationEnd("SgAsmDwarfCompilationUnit");
27281 }
27282#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27283public:
27284public:
27285 std::string const& get_producer() const;
27286 void set_producer(std::string const&);
27287
27288public:
27289 std::string const& get_language() const;
27290 void set_language(std::string const&);
27291
27292public:
27293 uint64_t const& get_low_pc() const;
27294 void set_low_pc(uint64_t const&);
27295
27296public:
27297 uint64_t const& get_hi_pc() const;
27298 void set_hi_pc(uint64_t const&);
27299
27300public:
27301 int const& get_version_stamp() const;
27302 void set_version_stamp(int const&);
27303
27304public:
27305 uint64_t const& get_abbrev_offset() const;
27306 void set_abbrev_offset(uint64_t const&);
27307
27308public:
27309 uint64_t const& get_address_size() const;
27310 void set_address_size(uint64_t const&);
27311
27312public:
27313 uint64_t const& get_offset_length() const;
27314 void set_offset_length(uint64_t const&);
27315
27316public:
27317 SgAsmDwarfLineList* const& get_line_info() const;
27318 void set_line_info(SgAsmDwarfLineList* const&);
27319
27320public:
27321 SgAsmDwarfConstructList* const& get_language_constructs() const;
27322 void set_language_constructs(SgAsmDwarfConstructList* const&);
27323
27324public:
27325 SgAsmDwarfMacroList* const& get_macro_info() const;
27326 void set_macro_info(SgAsmDwarfMacroList* const&);
27327public:
27328 SgAsmDwarfConstructList* get_children() override;
27329public:
27332
27333public:
27336
27337public:
27339 SgAsmDwarfCompilationUnit(int const& nesting_level,
27340 uint64_t const& offset,
27341 uint64_t const& overall_offset);
27342
27343protected:
27351#endif // SgAsmDwarfCompilationUnit_OTHERS
27352#ifdef DOCUMENTATION
27353};
27354#endif // DOCUMENTATION
27355
27356
27358// SgAsmDwarfCommonInclusion -- MACHINE GENERATED; DO NOT MODIFY --
27360
27361DECLARE_LEAF_CLASS(AsmDwarfCommonInclusion);
27362IS_SERIALIZABLE(AsmDwarfCommonInclusion);
27363
27364#ifndef DOCUMENTATION
27365AsmDwarfCommonInclusion.useSmallHeader(true);
27366#endif // !DOCUMENTATION
27367
27368#ifdef DOCUMENTATION
27370#endif // DOCUMENTATION
27371
27372 DECLARE_OTHERS(AsmDwarfCommonInclusion);
27373#if defined(SgAsmDwarfCommonInclusion_OTHERS) || defined(DOCUMENTATION)
27374
27375 //----------------------- Boost serialization for SgAsmDwarfCommonInclusion -----------------------
27376#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27377private:
27378 friend class boost::serialization::access;
27379
27380 template<class S>
27381 void serialize(S &s, const unsigned /*version*/) {
27382 debugSerializationBegin("SgAsmDwarfCommonInclusion");
27383 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27384 debugSerializationEnd("SgAsmDwarfCommonInclusion");
27385 }
27386#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27387
27388public:
27391
27392public:
27395
27396public:
27398 SgAsmDwarfCommonInclusion(int const& nesting_level,
27399 uint64_t const& offset,
27400 uint64_t const& overall_offset);
27401
27402protected:
27410#endif // SgAsmDwarfCommonInclusion_OTHERS
27411#ifdef DOCUMENTATION
27412};
27413#endif // DOCUMENTATION
27414
27415
27417// SgAsmDwarfCommonBlock -- MACHINE GENERATED; DO NOT MODIFY --
27419
27420DECLARE_LEAF_CLASS(AsmDwarfCommonBlock);
27421IS_SERIALIZABLE(AsmDwarfCommonBlock);
27422
27423#ifndef DOCUMENTATION
27424AsmDwarfCommonBlock.useSmallHeader(true);
27425#endif // !DOCUMENTATION
27426
27427DECLARE_HEADERS(AsmDwarfCommonBlock);
27428#if defined(SgAsmDwarfCommonBlock_HEADERS) || defined(DOCUMENTATION)
27429#ifdef ROSE_SgAsmDwarfCommonBlock_IMPL
27430#include <SgAsmDwarfConstructList.h>
27431#endif
27432#endif // SgAsmDwarfCommonBlock_HEADERS
27433
27434#ifdef DOCUMENTATION
27436#endif // DOCUMENTATION
27437
27438#ifndef DOCUMENTATION
27439 AsmDwarfCommonBlock.setDataPrototype(
27440 "SgAsmDwarfConstructList*", "body", "= NULL",
27441 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27442#endif // !DOCUMENTATION
27443
27444 DECLARE_OTHERS(AsmDwarfCommonBlock);
27445#if defined(SgAsmDwarfCommonBlock_OTHERS) || defined(DOCUMENTATION)
27446
27447 //----------------------- Boost serialization for SgAsmDwarfCommonBlock -----------------------
27448#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27449private:
27450 friend class boost::serialization::access;
27451
27452 template<class S>
27453 void serialize(S &s, const unsigned /*version*/) {
27454 debugSerializationBegin("SgAsmDwarfCommonBlock");
27455 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27456 s & BOOST_SERIALIZATION_NVP(p_body);
27457 debugSerializationEnd("SgAsmDwarfCommonBlock");
27458 }
27459#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27460public:
27461public:
27462 SgAsmDwarfConstructList* const& get_body() const;
27463 void set_body(SgAsmDwarfConstructList* const&);
27464public:
27465 SgAsmDwarfConstructList* get_children() override;
27466public:
27469
27470public:
27473
27474public:
27476 SgAsmDwarfCommonBlock(int const& nesting_level,
27477 uint64_t const& offset,
27478 uint64_t const& overall_offset);
27479
27480protected:
27488#endif // SgAsmDwarfCommonBlock_OTHERS
27489#ifdef DOCUMENTATION
27490};
27491#endif // DOCUMENTATION
27492
27493
27495// SgAsmDwarfClassType -- MACHINE GENERATED; DO NOT MODIFY --
27497
27498DECLARE_LEAF_CLASS(AsmDwarfClassType);
27499IS_SERIALIZABLE(AsmDwarfClassType);
27500
27501#ifndef DOCUMENTATION
27502AsmDwarfClassType.useSmallHeader(true);
27503#endif // !DOCUMENTATION
27504
27505DECLARE_HEADERS(AsmDwarfClassType);
27506#if defined(SgAsmDwarfClassType_HEADERS) || defined(DOCUMENTATION)
27507#ifdef ROSE_SgAsmDwarfClassType_IMPL
27508#include <SgAsmDwarfConstructList.h>
27509#endif
27510#endif // SgAsmDwarfClassType_HEADERS
27511
27512#ifdef DOCUMENTATION
27514#endif // DOCUMENTATION
27515
27516#ifndef DOCUMENTATION
27517 AsmDwarfClassType.setDataPrototype(
27518 "SgAsmDwarfConstructList*", "body", "= nullptr",
27519 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27520#endif // !DOCUMENTATION
27521
27522 DECLARE_OTHERS(AsmDwarfClassType);
27523#if defined(SgAsmDwarfClassType_OTHERS) || defined(DOCUMENTATION)
27524
27525 //----------------------- Boost serialization for SgAsmDwarfClassType -----------------------
27526#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27527private:
27528 friend class boost::serialization::access;
27529
27530 template<class S>
27531 void serialize(S &s, const unsigned /*version*/) {
27532 debugSerializationBegin("SgAsmDwarfClassType");
27533 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27534 s & BOOST_SERIALIZATION_NVP(p_body);
27535 debugSerializationEnd("SgAsmDwarfClassType");
27536 }
27537#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27538public:
27539public:
27540 SgAsmDwarfConstructList* const& get_body() const;
27541 void set_body(SgAsmDwarfConstructList* const&);
27542public:
27543 SgAsmDwarfConstructList* get_children() override;
27544public:
27547
27548public:
27551
27552public:
27554 SgAsmDwarfClassType(int const& nesting_level,
27555 uint64_t const& offset,
27556 uint64_t const& overall_offset);
27557
27558protected:
27566#endif // SgAsmDwarfClassType_OTHERS
27567#ifdef DOCUMENTATION
27568};
27569#endif // DOCUMENTATION
27570
27571
27573// SgAsmDwarfClassTemplate -- MACHINE GENERATED; DO NOT MODIFY --
27575
27576DECLARE_LEAF_CLASS(AsmDwarfClassTemplate);
27577IS_SERIALIZABLE(AsmDwarfClassTemplate);
27578
27579#ifndef DOCUMENTATION
27580AsmDwarfClassTemplate.useSmallHeader(true);
27581#endif // !DOCUMENTATION
27582
27583#ifdef DOCUMENTATION
27585#endif // DOCUMENTATION
27586
27587 DECLARE_OTHERS(AsmDwarfClassTemplate);
27588#if defined(SgAsmDwarfClassTemplate_OTHERS) || defined(DOCUMENTATION)
27589
27590 //----------------------- Boost serialization for SgAsmDwarfClassTemplate -----------------------
27591#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27592private:
27593 friend class boost::serialization::access;
27594
27595 template<class S>
27596 void serialize(S &s, const unsigned /*version*/) {
27597 debugSerializationBegin("SgAsmDwarfClassTemplate");
27598 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27599 debugSerializationEnd("SgAsmDwarfClassTemplate");
27600 }
27601#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27602
27603public:
27606
27607public:
27610
27611public:
27613 SgAsmDwarfClassTemplate(int const& nesting_level,
27614 uint64_t const& offset,
27615 uint64_t const& overall_offset);
27616
27617protected:
27625#endif // SgAsmDwarfClassTemplate_OTHERS
27626#ifdef DOCUMENTATION
27627};
27628#endif // DOCUMENTATION
27629
27630
27632// SgAsmDwarfCatchBlock -- MACHINE GENERATED; DO NOT MODIFY --
27634
27635DECLARE_LEAF_CLASS(AsmDwarfCatchBlock);
27636IS_SERIALIZABLE(AsmDwarfCatchBlock);
27637
27638#ifndef DOCUMENTATION
27639AsmDwarfCatchBlock.useSmallHeader(true);
27640#endif // !DOCUMENTATION
27641
27642#ifdef DOCUMENTATION
27644#endif // DOCUMENTATION
27645
27646 DECLARE_OTHERS(AsmDwarfCatchBlock);
27647#if defined(SgAsmDwarfCatchBlock_OTHERS) || defined(DOCUMENTATION)
27648
27649 //----------------------- Boost serialization for SgAsmDwarfCatchBlock -----------------------
27650#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27651private:
27652 friend class boost::serialization::access;
27653
27654 template<class S>
27655 void serialize(S &s, const unsigned /*version*/) {
27656 debugSerializationBegin("SgAsmDwarfCatchBlock");
27657 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27658 debugSerializationEnd("SgAsmDwarfCatchBlock");
27659 }
27660#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27661
27662public:
27665
27666public:
27669
27670public:
27672 SgAsmDwarfCatchBlock(int const& nesting_level,
27673 uint64_t const& offset,
27674 uint64_t const& overall_offset);
27675
27676protected:
27684#endif // SgAsmDwarfCatchBlock_OTHERS
27685#ifdef DOCUMENTATION
27686};
27687#endif // DOCUMENTATION
27688
27689
27691// SgAsmDwarfBaseType -- MACHINE GENERATED; DO NOT MODIFY --
27693
27694DECLARE_LEAF_CLASS(AsmDwarfBaseType);
27695IS_SERIALIZABLE(AsmDwarfBaseType);
27696
27697#ifndef DOCUMENTATION
27698AsmDwarfBaseType.useSmallHeader(true);
27699#endif // !DOCUMENTATION
27700
27701#ifdef DOCUMENTATION
27703#endif // DOCUMENTATION
27704
27705 DECLARE_OTHERS(AsmDwarfBaseType);
27706#if defined(SgAsmDwarfBaseType_OTHERS) || defined(DOCUMENTATION)
27707
27708 //----------------------- Boost serialization for SgAsmDwarfBaseType -----------------------
27709#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27710private:
27711 friend class boost::serialization::access;
27712
27713 template<class S>
27714 void serialize(S &s, const unsigned /*version*/) {
27715 debugSerializationBegin("SgAsmDwarfBaseType");
27716 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27717 debugSerializationEnd("SgAsmDwarfBaseType");
27718 }
27719#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27720
27721public:
27724
27725public:
27728
27729public:
27731 SgAsmDwarfBaseType(int const& nesting_level,
27732 uint64_t const& offset,
27733 uint64_t const& overall_offset);
27734
27735protected:
27743#endif // SgAsmDwarfBaseType_OTHERS
27744#ifdef DOCUMENTATION
27745};
27746#endif // DOCUMENTATION
27747
27748
27750// SgAsmDwarfArrayType -- MACHINE GENERATED; DO NOT MODIFY --
27752
27753DECLARE_LEAF_CLASS(AsmDwarfArrayType);
27754IS_SERIALIZABLE(AsmDwarfArrayType);
27755
27756#ifndef DOCUMENTATION
27757AsmDwarfArrayType.useSmallHeader(true);
27758#endif // !DOCUMENTATION
27759
27760DECLARE_HEADERS(AsmDwarfArrayType);
27761#if defined(SgAsmDwarfArrayType_HEADERS) || defined(DOCUMENTATION)
27762#ifdef ROSE_SgAsmDwarfArrayType_IMPL
27763#include <SgAsmDwarfConstructList.h>
27764#endif
27765#endif // SgAsmDwarfArrayType_HEADERS
27766
27767#ifdef DOCUMENTATION
27769#endif // DOCUMENTATION
27770
27771#ifndef DOCUMENTATION
27772 AsmDwarfArrayType.setDataPrototype(
27773 "SgAsmDwarfConstructList*", "body", "= nullptr",
27774 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27775#endif // !DOCUMENTATION
27776
27777 DECLARE_OTHERS(AsmDwarfArrayType);
27778#if defined(SgAsmDwarfArrayType_OTHERS) || defined(DOCUMENTATION)
27779
27780 //----------------------- Boost serialization for SgAsmDwarfArrayType -----------------------
27781#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27782private:
27783 friend class boost::serialization::access;
27784
27785 template<class S>
27786 void serialize(S &s, const unsigned /*version*/) {
27787 debugSerializationBegin("SgAsmDwarfArrayType");
27788 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27789 s & BOOST_SERIALIZATION_NVP(p_body);
27790 debugSerializationEnd("SgAsmDwarfArrayType");
27791 }
27792#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27793public:
27794public:
27795 SgAsmDwarfConstructList* const& get_body() const;
27796 void set_body(SgAsmDwarfConstructList* const&);
27797public:
27798 SgAsmDwarfConstructList* get_children() override;
27799public:
27802
27803public:
27806
27807public:
27809 SgAsmDwarfArrayType(int const& nesting_level,
27810 uint64_t const& offset,
27811 uint64_t const& overall_offset);
27812
27813protected:
27821#endif // SgAsmDwarfArrayType_OTHERS
27822#ifdef DOCUMENTATION
27823};
27824#endif // DOCUMENTATION
27825
27826
27828// SgAsmDwarfAccessDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
27830
27831DECLARE_LEAF_CLASS(AsmDwarfAccessDeclaration);
27832IS_SERIALIZABLE(AsmDwarfAccessDeclaration);
27833
27834#ifndef DOCUMENTATION
27835AsmDwarfAccessDeclaration.useSmallHeader(true);
27836#endif // !DOCUMENTATION
27837
27838#ifdef DOCUMENTATION
27840#endif // DOCUMENTATION
27841
27842 DECLARE_OTHERS(AsmDwarfAccessDeclaration);
27843#if defined(SgAsmDwarfAccessDeclaration_OTHERS) || defined(DOCUMENTATION)
27844
27845 //----------------------- Boost serialization for SgAsmDwarfAccessDeclaration -----------------------
27846#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
27847private:
27848 friend class boost::serialization::access;
27849
27850 template<class S>
27851 void serialize(S &s, const unsigned /*version*/) {
27852 debugSerializationBegin("SgAsmDwarfAccessDeclaration");
27853 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27854 debugSerializationEnd("SgAsmDwarfAccessDeclaration");
27855 }
27856#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
27857
27858public:
27861
27862public:
27865
27866public:
27868 SgAsmDwarfAccessDeclaration(int const& nesting_level,
27869 uint64_t const& offset,
27870 uint64_t const& overall_offset);
27871
27872protected:
27880#endif // SgAsmDwarfAccessDeclaration_OTHERS
27881#ifdef DOCUMENTATION
27882};
27883#endif // DOCUMENTATION
27884
27885
27887// SgAsmDwarfConstruct -- MACHINE GENERATED; DO NOT MODIFY --
27889
27890#ifndef DOCUMENTATION
27891AstNodeClass& AsmDwarfConstruct = nonTerminalConstructor(
27892 "AsmDwarfConstruct",
27893 *this,
27894 "AsmDwarfConstruct",
27895 "AsmDwarfConstructTag",
27896 SubclassListBuilder()
27897 | AsmDwarfAccessDeclaration
27898 | AsmDwarfArrayType
27899 | AsmDwarfBaseType
27900 | AsmDwarfCatchBlock
27901 | AsmDwarfClassTemplate
27902 | AsmDwarfClassType
27903 | AsmDwarfCommonBlock
27904 | AsmDwarfCommonInclusion
27905 | AsmDwarfCompilationUnit
27906 | AsmDwarfCondition
27907 | AsmDwarfConstant
27908 | AsmDwarfConstType
27909 | AsmDwarfDwarfProcedure
27910 | AsmDwarfEntryPoint
27911 | AsmDwarfEnumerationType
27912 | AsmDwarfEnumerator
27913 | AsmDwarfFileType
27914 | AsmDwarfFormalParameter
27915 | AsmDwarfFormatLabel
27916 | AsmDwarfFriend
27917 | AsmDwarfFunctionTemplate
27918 | AsmDwarfImportedDeclaration
27919 | AsmDwarfImportedModule
27920 | AsmDwarfImportedUnit
27921 | AsmDwarfInheritance
27922 | AsmDwarfInlinedSubroutine
27923 | AsmDwarfInterfaceType
27924 | AsmDwarfLabel
27925 | AsmDwarfLexicalBlock
27926 | AsmDwarfMember
27927 | AsmDwarfModule
27928 | AsmDwarfMutableType
27929 | AsmDwarfNamelist
27930 | AsmDwarfNamelistItem
27931 | AsmDwarfNamespace
27932 | AsmDwarfPackedType
27933 | AsmDwarfPartialUnit
27934 | AsmDwarfPointerType
27935 | AsmDwarfPtrToMemberType
27936 | AsmDwarfReferenceType
27937 | AsmDwarfRestrictType
27938 | AsmDwarfSetType
27939 | AsmDwarfSharedType
27940 | AsmDwarfStringType
27941 | AsmDwarfStructureType
27942 | AsmDwarfSubprogram
27943 | AsmDwarfSubrangeType
27944 | AsmDwarfSubroutineType
27945 | AsmDwarfTemplateTypeParameter
27946 | AsmDwarfTemplateValueParameter
27947 | AsmDwarfThrownType
27948 | AsmDwarfTryBlock
27949 | AsmDwarfTypedef
27950 | AsmDwarfUnionType
27951 | AsmDwarfUnknownConstruct
27952 | AsmDwarfUnspecifiedParameters
27953 | AsmDwarfUnspecifiedType
27954 | AsmDwarfUpcRelaxedType
27955 | AsmDwarfUpcSharedType
27956 | AsmDwarfUpcStrictType
27957 | AsmDwarfVariable
27958 | AsmDwarfVariant
27959 | AsmDwarfVariantPart
27960 | AsmDwarfVolatileType
27961 | AsmDwarfWithStmt
27962 , false);
27963assert(AsmDwarfConstruct.associatedGrammar != nullptr);
27964AsmDwarfConstruct.setCppCondition("!defined(DOCUMENTATION)");
27965AsmDwarfConstruct.isBoostSerializable(true);
27966AsmDwarfConstruct.setAutomaticGenerationOfConstructor(false);
27967AsmDwarfConstruct.setAutomaticGenerationOfDestructor(false);
27968#endif // !DOCUMENTATION
27969
27970#ifndef DOCUMENTATION
27971AsmDwarfConstruct.useSmallHeader(true);
27972#endif // !DOCUMENTATION
27973
27974#ifdef DOCUMENTATION
27976#endif // DOCUMENTATION
27977
27978#ifndef DOCUMENTATION
27979 AsmDwarfConstruct.setDataPrototype(
27980 "int", "nesting_level", "= 0",
27981 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27982#endif // !DOCUMENTATION
27983
27984#ifndef DOCUMENTATION
27985 AsmDwarfConstruct.setDataPrototype(
27986 "uint64_t", "offset", "= 0",
27987 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27988#endif // !DOCUMENTATION
27989
27990#ifndef DOCUMENTATION
27991 AsmDwarfConstruct.setDataPrototype(
27992 "uint64_t", "overall_offset", "= 0",
27993 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
27994#endif // !DOCUMENTATION
27995
27996#ifndef DOCUMENTATION
27997 AsmDwarfConstruct.setDataPrototype(
27998 "std::string", "name", "",
27999 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28000#endif // !DOCUMENTATION
28001
28002#ifndef DOCUMENTATION
28003 AsmDwarfConstruct.setDataPrototype(
28004 "SgAsmDwarfLine*", "source_position", "= nullptr",
28005 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28006#endif // !DOCUMENTATION
28007
28008 DECLARE_OTHERS(AsmDwarfConstruct);
28009#if defined(SgAsmDwarfConstruct_OTHERS) || defined(DOCUMENTATION)
28010
28011 //----------------------- Boost serialization for SgAsmDwarfConstruct -----------------------
28012#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
28013private:
28014 friend class boost::serialization::access;
28015
28016 template<class S>
28017 void serialize(S &s, const unsigned /*version*/) {
28018 debugSerializationBegin("SgAsmDwarfConstruct");
28019 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
28020 s & BOOST_SERIALIZATION_NVP(p_nesting_level);
28021 s & BOOST_SERIALIZATION_NVP(p_offset);
28022 s & BOOST_SERIALIZATION_NVP(p_overall_offset);
28023 s & BOOST_SERIALIZATION_NVP(p_name);
28024 s & BOOST_SERIALIZATION_NVP(p_source_position);
28025 debugSerializationEnd("SgAsmDwarfConstruct");
28026 }
28027#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
28028public:
28029 // For now we will store the nesting level (just to support debugging), then it will be removed.
28030public:
28031 int const& get_nesting_level() const;
28032 void set_nesting_level(int const&);
28033
28034public:
28035 uint64_t const& get_offset() const;
28036 void set_offset(uint64_t const&);
28037
28038public:
28039 uint64_t const& get_overall_offset() const;
28040 void set_overall_offset(uint64_t const&);
28041 // A lot of constructs have a name so put the name into the base class
28042public:
28043 std::string const& get_name() const;
28044 void set_name(std::string const&);
28045 // This is a data member that can be filled in via a separate analysis (we would have to read the line information before
28046 // hand).
28047public:
28048 SgAsmDwarfLine* const& get_source_position() const;
28049 void set_source_position(SgAsmDwarfLine* const&);
28050 // [Robb Matzke 2023-03-22]: SgNode already has an attributeMechanism
28051 // [[using Rosebud: rosetta]]
28052 // AstAttributeMechanism* attributeMechanism = nullptr;
28053
28054public:
28056 static SgAsmDwarfConstruct* createDwarfConstruct( int tag, int nesting_level, uint64_t offset, uint64_t overall_offset );
28057
28058 virtual SgAsmDwarfConstructList* get_children();
28059public:
28062
28063protected:
28066
28067protected:
28069 SgAsmDwarfConstruct(int const& nesting_level,
28070 uint64_t const& offset,
28071 uint64_t const& overall_offset);
28072
28073protected:
28081#endif // SgAsmDwarfConstruct_OTHERS
28082#ifdef DOCUMENTATION
28083};
28084#endif // DOCUMENTATION
28085
28086
28088// SgAsmDwarfInformation -- MACHINE GENERATED; DO NOT MODIFY --
28090
28091#ifndef DOCUMENTATION
28092AstNodeClass& AsmDwarfInformation = nonTerminalConstructor(
28093 "AsmDwarfInformation",
28094 *this,
28095 "AsmDwarfInformation",
28096 "AsmDwarfInformationTag",
28097 SubclassListBuilder()
28098 | AsmDwarfCompilationUnitList
28099 | AsmDwarfConstruct
28100 | AsmDwarfConstructList
28101 | AsmDwarfLine
28102 | AsmDwarfLineList
28103 | AsmDwarfMacro
28104 | AsmDwarfMacroList
28105 , false);
28106assert(AsmDwarfInformation.associatedGrammar != nullptr);
28107AsmDwarfInformation.setCppCondition("!defined(DOCUMENTATION)");
28108AsmDwarfInformation.isBoostSerializable(true);
28109AsmDwarfInformation.setAutomaticGenerationOfConstructor(false);
28110AsmDwarfInformation.setAutomaticGenerationOfDestructor(false);
28111#endif // !DOCUMENTATION
28112
28113#ifndef DOCUMENTATION
28114AsmDwarfInformation.useSmallHeader(true);
28115#endif // !DOCUMENTATION
28116
28117#ifdef DOCUMENTATION
28119#endif // DOCUMENTATION
28120
28121 DECLARE_OTHERS(AsmDwarfInformation);
28122#if defined(SgAsmDwarfInformation_OTHERS) || defined(DOCUMENTATION)
28123
28124 //----------------------- Boost serialization for SgAsmDwarfInformation -----------------------
28125#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
28126private:
28127 friend class boost::serialization::access;
28128
28129 template<class S>
28130 void serialize(S &s, const unsigned /*version*/) {
28131 debugSerializationBegin("SgAsmDwarfInformation");
28132 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
28133 debugSerializationEnd("SgAsmDwarfInformation");
28134 }
28135#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
28136
28137public:
28140
28141protected:
28144
28145protected:
28153#endif // SgAsmDwarfInformation_OTHERS
28154#ifdef DOCUMENTATION
28155};
28156#endif // DOCUMENTATION
28157
28158
28160// SgAsmDOSFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
28162
28163DECLARE_LEAF_CLASS(AsmDOSFileHeader);
28164IS_SERIALIZABLE(AsmDOSFileHeader);
28165
28166#ifndef DOCUMENTATION
28167AsmDOSFileHeader.useSmallHeader(true);
28168#endif // !DOCUMENTATION
28169
28170#ifdef DOCUMENTATION
28176#endif // DOCUMENTATION
28177
28178#ifndef DOCUMENTATION
28179 AsmDOSFileHeader.setDataPrototype(
28180 "uint16_t", "e_last_page_size", "= 0",
28181 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28182#endif // !DOCUMENTATION
28183
28184#ifndef DOCUMENTATION
28185 AsmDOSFileHeader.setDataPrototype(
28186 "uint16_t", "e_total_pages", "= 0",
28187 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28188#endif // !DOCUMENTATION
28189
28190#ifndef DOCUMENTATION
28191 AsmDOSFileHeader.setDataPrototype(
28192 "uint16_t", "e_nrelocs", "= 0",
28193 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28194#endif // !DOCUMENTATION
28195
28196#ifndef DOCUMENTATION
28197 AsmDOSFileHeader.setDataPrototype(
28198 "uint16_t", "e_header_paragraphs", "= 0",
28199 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28200#endif // !DOCUMENTATION
28201
28202#ifndef DOCUMENTATION
28203 AsmDOSFileHeader.setDataPrototype(
28204 "uint16_t", "e_minalloc", "= 0",
28205 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28206#endif // !DOCUMENTATION
28207
28208#ifndef DOCUMENTATION
28209 AsmDOSFileHeader.setDataPrototype(
28210 "uint16_t", "e_maxalloc", "= 0",
28211 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28212#endif // !DOCUMENTATION
28213
28214#ifndef DOCUMENTATION
28215 AsmDOSFileHeader.setDataPrototype(
28216 "uint16_t", "e_ss", "= 0",
28217 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28218#endif // !DOCUMENTATION
28219
28220#ifndef DOCUMENTATION
28221 AsmDOSFileHeader.setDataPrototype(
28222 "uint16_t", "e_sp", "= 0",
28223 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28224#endif // !DOCUMENTATION
28225
28226#ifndef DOCUMENTATION
28227 AsmDOSFileHeader.setDataPrototype(
28228 "uint16_t", "e_cksum", "= 0",
28229 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28230#endif // !DOCUMENTATION
28231
28232#ifndef DOCUMENTATION
28233 AsmDOSFileHeader.setDataPrototype(
28234 "uint16_t", "e_ip", "= 0",
28235 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28236#endif // !DOCUMENTATION
28237
28238#ifndef DOCUMENTATION
28239 AsmDOSFileHeader.setDataPrototype(
28240 "uint16_t", "e_cs", "= 0",
28241 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28242#endif // !DOCUMENTATION
28243
28244#ifndef DOCUMENTATION
28245 AsmDOSFileHeader.setDataPrototype(
28246 "uint16_t", "e_overlay", "= 0",
28247 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28248#endif // !DOCUMENTATION
28249
28250#ifndef DOCUMENTATION
28251 AsmDOSFileHeader.setDataPrototype(
28252 "rose_addr_t", "e_relocs_offset", "= 0",
28253 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28254#endif // !DOCUMENTATION
28255
28256#ifndef DOCUMENTATION
28257 AsmDOSFileHeader.setDataPrototype(
28258 "unsigned", "e_res1", "= 0",
28259 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28260#endif // !DOCUMENTATION
28261
28262#ifndef DOCUMENTATION
28263 AsmDOSFileHeader.setDataPrototype(
28264 "SgAsmGenericSection*", "relocs", "= nullptr",
28265 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28266#endif // !DOCUMENTATION
28267
28268#ifndef DOCUMENTATION
28269 AsmDOSFileHeader.setDataPrototype(
28270 "SgAsmGenericSection*", "rm_section", "= nullptr",
28271 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28272#endif // !DOCUMENTATION
28273
28274 DECLARE_OTHERS(AsmDOSFileHeader);
28275#if defined(SgAsmDOSFileHeader_OTHERS) || defined(DOCUMENTATION)
28276
28277 //----------------------- Boost serialization for SgAsmDOSFileHeader -----------------------
28278#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
28279private:
28280 friend class boost::serialization::access;
28281
28282 template<class S>
28283 void serialize(S &s, const unsigned /*version*/) {
28284 debugSerializationBegin("SgAsmDOSFileHeader");
28285 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
28286 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
28287 s & BOOST_SERIALIZATION_NVP(p_e_total_pages);
28288 s & BOOST_SERIALIZATION_NVP(p_e_nrelocs);
28289 s & BOOST_SERIALIZATION_NVP(p_e_header_paragraphs);
28290 s & BOOST_SERIALIZATION_NVP(p_e_minalloc);
28291 s & BOOST_SERIALIZATION_NVP(p_e_maxalloc);
28292 s & BOOST_SERIALIZATION_NVP(p_e_ss);
28293 s & BOOST_SERIALIZATION_NVP(p_e_sp);
28294 s & BOOST_SERIALIZATION_NVP(p_e_cksum);
28295 s & BOOST_SERIALIZATION_NVP(p_e_ip);
28296 s & BOOST_SERIALIZATION_NVP(p_e_cs);
28297 s & BOOST_SERIALIZATION_NVP(p_e_overlay);
28298 s & BOOST_SERIALIZATION_NVP(p_e_relocs_offset);
28299 s & BOOST_SERIALIZATION_NVP(p_e_res1);
28300 s & BOOST_SERIALIZATION_NVP(p_relocs);
28301 s & BOOST_SERIALIZATION_NVP(p_rm_section);
28302 debugSerializationEnd("SgAsmDOSFileHeader");
28303 }
28304#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
28306 // Local types
28308public:
28309#ifdef _MSC_VER
28310# pragma pack (1)
28311#endif
28314 unsigned char e_magic[2];
28315 uint16_t e_last_page_size; //
28317 uint16_t e_total_pages;
28318 uint16_t e_nrelocs;
28320 uint16_t e_minalloc;
28321 uint16_t e_maxalloc;
28322 uint16_t e_ss;
28323 uint16_t e_sp;
28324 uint16_t e_cksum;
28326 uint16_t e_ip;
28327 uint16_t e_cs;
28329 uint16_t e_overlay;
28330 uint32_t e_res1;
28331 } /* 0x20 */
28332#if !defined(SWIG) && !defined(_MSC_VER)
28333 __attribute__((packed))
28334#endif
28335 ;
28336
28338 uint16_t offset; /* 0x00 */
28339 uint16_t segment; /* 0x02 */
28340 } /* 0x04 */
28341#if !defined(SWIG) && !defined(_MSC_VER)
28342 __attribute__((packed))
28343#endif
28344 ;
28345
28346#ifdef _MSC_VER
28347# pragma pack ()
28348#endif
28349
28351 // Properties
28353public:
28354public:
28360 uint16_t const& get_e_last_page_size() const;
28361 void set_e_last_page_size(uint16_t const&);
28364public:
28370 uint16_t const& get_e_total_pages() const;
28371 void set_e_total_pages(uint16_t const&);
28374public:
28380 uint16_t const& get_e_nrelocs() const;
28381 void set_e_nrelocs(uint16_t const&);
28384public:
28390 uint16_t const& get_e_header_paragraphs() const;
28391 void set_e_header_paragraphs(uint16_t const&);
28394public:
28400 uint16_t const& get_e_minalloc() const;
28401 void set_e_minalloc(uint16_t const&);
28404public:
28410 uint16_t const& get_e_maxalloc() const;
28411 void set_e_maxalloc(uint16_t const&);
28414public:
28420 uint16_t const& get_e_ss() const;
28421 void set_e_ss(uint16_t const&);
28424public:
28430 uint16_t const& get_e_sp() const;
28431 void set_e_sp(uint16_t const&);
28434public:
28440 uint16_t const& get_e_cksum() const;
28441 void set_e_cksum(uint16_t const&);
28444public:
28450 uint16_t const& get_e_ip() const;
28451 void set_e_ip(uint16_t const&);
28454public:
28460 uint16_t const& get_e_cs() const;
28461 void set_e_cs(uint16_t const&);
28464public:
28470 uint16_t const& get_e_overlay() const;
28471 void set_e_overlay(uint16_t const&);
28474public:
28480 rose_addr_t const& get_e_relocs_offset() const;
28481 void set_e_relocs_offset(rose_addr_t const&);
28484public:
28490 unsigned const& get_e_res1() const;
28491 void set_e_res1(unsigned const&);
28494public:
28502public:
28510 // Functions
28512public:
28514 virtual SgAsmDOSFileHeader *parse() override {return parse(true);}
28515 SgAsmDOSFileHeader *parse(bool define_rm_section);
28516 virtual bool reallocate() override;
28517 virtual void unparse(std::ostream&) const override;
28518 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
28519 virtual const char *formatName() const override;
28520
28526 SgAsmGenericSection *parseRealModeSection(rose_addr_t max_offset=0);
28527
28534
28537
28538private:
28539 void *encode(SgAsmDOSFileHeader::DOSFileHeader_disk*) const;
28540
28542 // Deprecated 2023-11
28544public:
28545 virtual const char* format_name() const override ROSE_DEPRECATED("use formatName");
28546 SgAsmGenericSection* parse_rm_section(rose_addr_t max_offset = 0) ROSE_DEPRECATED("use parseRealModeSection");
28547 void update_from_rm_section() ROSE_DEPRECATED("use updateFromRealModeSection");
28548 static bool is_DOS(SgAsmGenericFile*) ROSE_DEPRECATED("use isDos");
28549public:
28552
28553public:
28556
28557protected:
28565#endif // SgAsmDOSFileHeader_OTHERS
28566#ifdef DOCUMENTATION
28567};
28568#endif // DOCUMENTATION
28569
28570
28572// SgAsmGenericHeader -- MACHINE GENERATED; DO NOT MODIFY --
28574
28575#ifndef DOCUMENTATION
28576AstNodeClass& AsmGenericHeader = nonTerminalConstructor(
28577 "AsmGenericHeader",
28578 *this,
28579 "AsmGenericHeader",
28580 "AsmGenericHeaderTag",
28581 SubclassListBuilder()
28582 | AsmDOSFileHeader
28583 | AsmElfFileHeader
28584 | AsmJvmFileHeader
28585 | AsmLEFileHeader
28586 | AsmNEFileHeader
28587 | AsmPEFileHeader
28588 , true);
28589assert(AsmGenericHeader.associatedGrammar != nullptr);
28590AsmGenericHeader.setCppCondition("!defined(DOCUMENTATION)");
28591AsmGenericHeader.isBoostSerializable(true);
28592AsmGenericHeader.setAutomaticGenerationOfConstructor(false);
28593AsmGenericHeader.setAutomaticGenerationOfDestructor(false);
28594#endif // !DOCUMENTATION
28595
28596#ifndef DOCUMENTATION
28597AsmGenericHeader.useSmallHeader(true);
28598#endif // !DOCUMENTATION
28599
28600DECLARE_HEADERS(AsmGenericHeader);
28601#if defined(SgAsmGenericHeader_HEADERS) || defined(DOCUMENTATION)
28602#include <Rose/BinaryAnalysis/ByteOrder.h>
28603#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
28604#include <sageContainer.h>
28605#include <SgAsmGenericFormat.h>
28606
28607#ifdef ROSE_SgAsmGenericHeader_IMPL
28608#include <SgAsmGenericDLLList.h>
28609#include <SgAsmGenericSectionList.h>
28610#endif
28611
28612class SgAsmGenericDLL;
28614#endif // SgAsmGenericHeader_HEADERS
28615
28616#ifdef DOCUMENTATION
28619#endif // DOCUMENTATION
28620
28621#ifndef DOCUMENTATION
28622 AsmGenericHeader.setDataPrototype(
28623 "SgAsmGenericFormat*", "executableFormat", "= createAndParent<SgAsmGenericFormat>(this)",
28624 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28625#endif // !DOCUMENTATION
28626
28627#ifndef DOCUMENTATION
28628 AsmGenericHeader.setDataPrototype(
28629 "SgCharList", "magic", "",
28630 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28631#endif // !DOCUMENTATION
28632
28633#ifndef DOCUMENTATION
28634 AsmGenericHeader.setDataPrototype(
28635 "SgAsmGenericFormat::InsSetArchitecture", "isa", "= SgAsmGenericFormat::ISA_UNSPECIFIED",
28636 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28637#endif // !DOCUMENTATION
28638
28639#ifndef DOCUMENTATION
28640 AsmGenericHeader.setDataPrototype(
28641 "rose_addr_t", "baseVa", "= 0",
28642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28643#endif // !DOCUMENTATION
28644
28645#ifndef DOCUMENTATION
28646 AsmGenericHeader.setDataPrototype(
28647 "SgRVAList", "entryRvas", "",
28648 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28649#endif // !DOCUMENTATION
28650
28651#ifndef DOCUMENTATION
28652 AsmGenericHeader.setDataPrototype(
28653 "SgAsmGenericDLLList*", "dlls", "= createAndParent<SgAsmGenericDLLList>(this)",
28654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28655#endif // !DOCUMENTATION
28656
28657#ifndef DOCUMENTATION
28658 AsmGenericHeader.setDataPrototype(
28659 "SgAsmGenericSectionList*", "sections", "= createAndParent<SgAsmGenericSectionList>(this)",
28660 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28661#endif // !DOCUMENTATION
28662
28663 DECLARE_OTHERS(AsmGenericHeader);
28664#if defined(SgAsmGenericHeader_OTHERS) || defined(DOCUMENTATION)
28665
28666 //----------------------- Boost serialization for SgAsmGenericHeader -----------------------
28667#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
28668private:
28669 friend class boost::serialization::access;
28670
28671 template<class S>
28672 void serialize(S &s, const unsigned /*version*/) {
28673 debugSerializationBegin("SgAsmGenericHeader");
28674 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
28675 s & BOOST_SERIALIZATION_NVP(p_executableFormat);
28676 s & BOOST_SERIALIZATION_NVP(p_magic);
28677 s & BOOST_SERIALIZATION_NVP(p_isa);
28678 s & BOOST_SERIALIZATION_NVP(p_baseVa);
28679 s & BOOST_SERIALIZATION_NVP(p_entryRvas);
28680 s & BOOST_SERIALIZATION_NVP(p_dlls);
28681 s & BOOST_SERIALIZATION_NVP(p_sections);
28682 debugSerializationEnd("SgAsmGenericHeader");
28683 }
28684#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
28685public:
28686public:
28694public:
28698 SgCharList const& get_magic() const;
28699 SgCharList& get_magic();
28700 void set_magic(SgCharList const&);
28703public:
28711public:
28715 rose_addr_t const& get_baseVa() const;
28716 void set_baseVa(rose_addr_t const&);
28719public:
28723 SgRVAList const& get_entryRvas() const;
28724 SgRVAList& get_entryRvas();
28725 void set_entryRvas(SgRVAList const&);
28728public:
28736public:
28743public:
28752
28753 virtual bool reallocate() override;
28754
28756 virtual void unparse(std::ostream&) const override;
28757
28759 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
28760
28762 virtual const char *formatName() const;
28763
28766
28768 std::vector<SgAsmGenericDLL*>& get_dlls();
28769
28774 rose_addr_t get_entryRva() const;
28775
28778
28779 /* Convenience functions */
28781 size_t get_wordSize() const;
28782
28787
28790
28792 SgAsmGenericSectionPtrList get_mappedSections() const;
28793
28795 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
28796
28800 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep=0) const;
28801
28803 SgAsmGenericSectionPtrList get_sectionsByOffset(rose_addr_t offset, rose_addr_t size) const;
28804
28806 SgAsmGenericSectionPtrList get_sectionsByRva(rose_addr_t rva) const;
28807
28814 SgAsmGenericSectionPtrList get_sectionsByVa(rose_addr_t va, bool use_preferred) const;
28815
28817 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
28818
28820 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
28821
28823 SgAsmGenericSection *get_sectionByOffset(rose_addr_t offset, rose_addr_t size, size_t *nfound=0) const;
28824
28828 SgAsmGenericSection *get_sectionByRva(rose_addr_t rva, size_t *nfound=0) const;
28829
28836 SgAsmGenericSection *get_sectionByVa(rose_addr_t va, bool use_preferred, size_t *nfound=0) const;
28837
28839 SgAsmGenericSection *get_bestSectionByVa(rose_addr_t va, bool use_preferred, size_t *nfound=0) const;
28840
28842 // Deprecated 2023-11
28844public:
28845 SgAsmGenericFormat* get_exec_format() const ROSE_DEPRECATED("use get_executableFormat");
28846 void set_exec_format(SgAsmGenericFormat*) ROSE_DEPRECATED("use set_executableFormat");
28847 rose_addr_t get_base_va() const ROSE_DEPRECATED("use get_baseVa");
28848 void set_base_va(rose_addr_t) ROSE_DEPRECATED("use set_baseVa");
28849 SgRVAList& get_entry_rvas() ROSE_DEPRECATED("use get_entryRvas");
28850 const SgRVAList& get_entry_rvas() const ROSE_DEPRECATED("use get_entryRvas");
28851 void set_entry_rvas(const SgRVAList&) ROSE_DEPRECATED("use set_entryRvas");
28852 virtual const char *format_name() const ROSE_DEPRECATED("use formatName");
28853 void add_dll(SgAsmGenericDLL*) ROSE_DEPRECATED("use addDll");
28854 rose_addr_t get_entry_rva() const ROSE_DEPRECATED("use get_entryRva");
28855 void add_entry_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use addEntryRva");
28856 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
28857 void add_section(SgAsmGenericSection*) ROSE_DEPRECATED("use addSection");
28858 void remove_section(SgAsmGenericSection*) ROSE_DEPRECATED("use removeSection");
28859 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
28860 SgAsmGenericSectionPtrList get_sections_by_id(int) const ROSE_DEPRECATED("use get_sectionsById");
28861 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char=0) const ROSE_DEPRECATED("use get_sectionsByName");
28862 SgAsmGenericSectionPtrList get_sections_by_offset(rose_addr_t, rose_addr_t) const ROSE_DEPRECATED("use get_sectionsByOffset");
28863 SgAsmGenericSectionPtrList get_sections_by_rva(rose_addr_t) const ROSE_DEPRECATED("use get_sectionsByRva");
28864 SgAsmGenericSectionPtrList get_sections_by_va(rose_addr_t, bool) const ROSE_DEPRECATED("use get_sectionsByVa");
28865 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
28866 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
28867 ROSE_DEPRECATED("use get_sectionByName");
28868 SgAsmGenericSection *get_section_by_offset(rose_addr_t, rose_addr_t, size_t* = nullptr) const
28869 ROSE_DEPRECATED("use get_sectionByOffset");
28870 SgAsmGenericSection *get_section_by_rva(rose_addr_t, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionByRva");
28871 SgAsmGenericSection *get_section_by_va(rose_addr_t, bool, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionByVa");
28872 SgAsmGenericSection *get_best_section_by_va(rose_addr_t, bool, size_t* = nullptr) const ROSE_DEPRECATED("use get_bestSectionByVa");
28873public:
28876
28877public:
28880
28881protected:
28889#endif // SgAsmGenericHeader_OTHERS
28890#ifdef DOCUMENTATION
28891};
28892#endif // DOCUMENTATION
28893
28894
28896// SgAsmDOSExtendedHeader -- MACHINE GENERATED; DO NOT MODIFY --
28898
28899DECLARE_LEAF_CLASS(AsmDOSExtendedHeader);
28900IS_SERIALIZABLE(AsmDOSExtendedHeader);
28901
28902#ifndef DOCUMENTATION
28903AsmDOSExtendedHeader.useSmallHeader(true);
28904#endif // !DOCUMENTATION
28905
28906#ifdef DOCUMENTATION
28911#endif // DOCUMENTATION
28912
28913#ifndef DOCUMENTATION
28914 AsmDOSExtendedHeader.setDataPrototype(
28915 "unsigned", "e_res1", "= 0",
28916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28917#endif // !DOCUMENTATION
28918
28919#ifndef DOCUMENTATION
28920 AsmDOSExtendedHeader.setDataPrototype(
28921 "unsigned", "e_oemid", "= 0",
28922 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28923#endif // !DOCUMENTATION
28924
28925#ifndef DOCUMENTATION
28926 AsmDOSExtendedHeader.setDataPrototype(
28927 "unsigned", "e_oeminfo", "= 0",
28928 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28929#endif // !DOCUMENTATION
28930
28931#ifndef DOCUMENTATION
28932 AsmDOSExtendedHeader.setDataPrototype(
28933 "unsigned", "e_res2", "= 0",
28934 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28935#endif // !DOCUMENTATION
28936
28937#ifndef DOCUMENTATION
28938 AsmDOSExtendedHeader.setDataPrototype(
28939 "unsigned", "e_res3", "= 0",
28940 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28941#endif // !DOCUMENTATION
28942
28943#ifndef DOCUMENTATION
28944 AsmDOSExtendedHeader.setDataPrototype(
28945 "unsigned", "e_res4", "= 0",
28946 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28947#endif // !DOCUMENTATION
28948
28949#ifndef DOCUMENTATION
28950 AsmDOSExtendedHeader.setDataPrototype(
28951 "unsigned", "e_res5", "= 0",
28952 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28953#endif // !DOCUMENTATION
28954
28955#ifndef DOCUMENTATION
28956 AsmDOSExtendedHeader.setDataPrototype(
28957 "unsigned", "e_res6", "= 0",
28958 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28959#endif // !DOCUMENTATION
28960
28961#ifndef DOCUMENTATION
28962 AsmDOSExtendedHeader.setDataPrototype(
28963 "rose_addr_t", "e_lfanew", "= 0",
28964 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28965#endif // !DOCUMENTATION
28966
28967 DECLARE_OTHERS(AsmDOSExtendedHeader);
28968#if defined(SgAsmDOSExtendedHeader_OTHERS) || defined(DOCUMENTATION)
28969
28970 //----------------------- Boost serialization for SgAsmDOSExtendedHeader -----------------------
28971#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
28972private:
28973 friend class boost::serialization::access;
28974
28975 template<class S>
28976 void serialize(S &s, const unsigned /*version*/) {
28977 debugSerializationBegin("SgAsmDOSExtendedHeader");
28978 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
28979 s & BOOST_SERIALIZATION_NVP(p_e_res1);
28980 s & BOOST_SERIALIZATION_NVP(p_e_oemid);
28981 s & BOOST_SERIALIZATION_NVP(p_e_oeminfo);
28982 s & BOOST_SERIALIZATION_NVP(p_e_res2);
28983 s & BOOST_SERIALIZATION_NVP(p_e_res3);
28984 s & BOOST_SERIALIZATION_NVP(p_e_res4);
28985 s & BOOST_SERIALIZATION_NVP(p_e_res5);
28986 s & BOOST_SERIALIZATION_NVP(p_e_res6);
28987 s & BOOST_SERIALIZATION_NVP(p_e_lfanew);
28988 debugSerializationEnd("SgAsmDOSExtendedHeader");
28989 }
28990#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
28992 // Local types
28994public:
28995#ifdef _MSC_VER
28996# pragma pack (1)
28997#endif
28999 uint32_t e_res1; /* 0x00 reserved */
29000 uint16_t e_oemid; /* 0x04 OEM Identifier */
29001 uint16_t e_oeminfo; /* 0x06 other OEM information; oemid specific */
29002 uint32_t e_res2; /* 0x08 reserved */
29003 uint32_t e_res3; /* 0x0c reserved */
29004 uint32_t e_res4; /* 0x10 reserved */
29005 uint32_t e_res5; /* 0x14 reserved */
29006 uint32_t e_res6; /* 0x18 reserved */
29007 uint32_t e_lfanew; /* 0x1c file offset of new exe (PE) header */
29008 } /* 0x20 */
29009#if !defined(SWIG) && !defined(_MSC_VER)
29010 __attribute__((packed))
29011#endif
29012 ;
29013#ifdef _MSC_VER
29014# pragma pack ()
29015#endif
29016
29018 // Properties
29020public:
29021public:
29027 unsigned const& get_e_res1() const;
29028 void set_e_res1(unsigned const&);
29031public:
29037 unsigned const& get_e_oemid() const;
29038 void set_e_oemid(unsigned const&);
29041public:
29047 unsigned const& get_e_oeminfo() const;
29048 void set_e_oeminfo(unsigned const&);
29051public:
29057 unsigned const& get_e_res2() const;
29058 void set_e_res2(unsigned const&);
29061public:
29067 unsigned const& get_e_res3() const;
29068 void set_e_res3(unsigned const&);
29071public:
29077 unsigned const& get_e_res4() const;
29078 void set_e_res4(unsigned const&);
29081public:
29087 unsigned const& get_e_res5() const;
29088 void set_e_res5(unsigned const&);
29091public:
29097 unsigned const& get_e_res6() const;
29098 void set_e_res6(unsigned const&);
29101public:
29107 rose_addr_t const& get_e_lfanew() const;
29108 void set_e_lfanew(rose_addr_t const&);
29111 // Functions
29113public:
29115 virtual SgAsmDOSExtendedHeader *parse() override;
29117 virtual void unparse(std::ostream&) const override;
29118 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29119public:
29122
29123public:
29126
29127protected:
29135#endif // SgAsmDOSExtendedHeader_OTHERS
29136#ifdef DOCUMENTATION
29137};
29138#endif // DOCUMENTATION
29139
29140
29142// SgAsmDirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
29144
29145DECLARE_LEAF_CLASS(AsmDirectRegisterExpression);
29146IS_SERIALIZABLE(AsmDirectRegisterExpression);
29147
29148#ifndef DOCUMENTATION
29149AsmDirectRegisterExpression.useSmallHeader(true);
29150#endif // !DOCUMENTATION
29151
29152#ifdef DOCUMENTATION
29155#endif // DOCUMENTATION
29156
29157 DECLARE_OTHERS(AsmDirectRegisterExpression);
29158#if defined(SgAsmDirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
29159
29160 //----------------------- Boost serialization for SgAsmDirectRegisterExpression -----------------------
29161#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29162private:
29163 friend class boost::serialization::access;
29164
29165 template<class S>
29166 void serialize(S &s, const unsigned /*version*/) {
29167 debugSerializationBegin("SgAsmDirectRegisterExpression");
29168 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
29169 debugSerializationEnd("SgAsmDirectRegisterExpression");
29170 }
29171#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29172
29173public:
29176
29177public:
29180
29181public:
29184
29185protected:
29193#endif // SgAsmDirectRegisterExpression_OTHERS
29194#ifdef DOCUMENTATION
29195};
29196#endif // DOCUMENTATION
29197
29198
29200// SgAsmRegisterReferenceExpression -- MACHINE GENERATED; DO NOT MODIFY --
29202
29203#ifndef DOCUMENTATION
29204AstNodeClass& AsmRegisterReferenceExpression = nonTerminalConstructor(
29205 "AsmRegisterReferenceExpression",
29206 *this,
29207 "AsmRegisterReferenceExpression",
29208 "AsmRegisterReferenceExpressionTag",
29209 SubclassListBuilder()
29210 | AsmDirectRegisterExpression
29211 | AsmIndirectRegisterExpression
29212 , false);
29213assert(AsmRegisterReferenceExpression.associatedGrammar != nullptr);
29214AsmRegisterReferenceExpression.setCppCondition("!defined(DOCUMENTATION)");
29215AsmRegisterReferenceExpression.isBoostSerializable(true);
29216AsmRegisterReferenceExpression.setAutomaticGenerationOfConstructor(false);
29217AsmRegisterReferenceExpression.setAutomaticGenerationOfDestructor(false);
29218#endif // !DOCUMENTATION
29219
29220#ifndef DOCUMENTATION
29221AsmRegisterReferenceExpression.useSmallHeader(true);
29222#endif // !DOCUMENTATION
29223
29224#ifdef DOCUMENTATION
29227#endif // DOCUMENTATION
29228
29229#ifndef DOCUMENTATION
29230 AsmRegisterReferenceExpression.setDataPrototype(
29231 "Rose::BinaryAnalysis::RegisterDescriptor", "descriptor", "",
29232 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29233#endif // !DOCUMENTATION
29234
29235#ifndef DOCUMENTATION
29236 AsmRegisterReferenceExpression.setDataPrototype(
29237 "int", "adjustment", "= 0",
29238 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29239#endif // !DOCUMENTATION
29240
29241 DECLARE_OTHERS(AsmRegisterReferenceExpression);
29242#if defined(SgAsmRegisterReferenceExpression_OTHERS) || defined(DOCUMENTATION)
29243
29244 //----------------------- Boost serialization for SgAsmRegisterReferenceExpression -----------------------
29245#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29246private:
29247 friend class boost::serialization::access;
29248
29249 template<class S>
29250 void serialize(S &s, const unsigned /*version*/) {
29251 debugSerializationBegin("SgAsmRegisterReferenceExpression");
29252 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
29253 s & BOOST_SERIALIZATION_NVP(p_descriptor);
29254 s & BOOST_SERIALIZATION_NVP(p_adjustment);
29255 debugSerializationEnd("SgAsmRegisterReferenceExpression");
29256 }
29257#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29258public:
29259public:
29267public:
29273 int const& get_adjustment() const;
29274 void set_adjustment(int const&);
29277public:
29280
29281protected:
29284
29285protected:
29288
29289protected:
29297#endif // SgAsmRegisterReferenceExpression_OTHERS
29298#ifdef DOCUMENTATION
29299};
29300#endif // DOCUMENTATION
29301
29302
29304// SgAsmControlFlagsExpression -- MACHINE GENERATED; DO NOT MODIFY --
29306
29307DECLARE_LEAF_CLASS(AsmControlFlagsExpression);
29308IS_SERIALIZABLE(AsmControlFlagsExpression);
29309
29310#ifndef DOCUMENTATION
29311AsmControlFlagsExpression.useSmallHeader(true);
29312#endif // !DOCUMENTATION
29313
29314DECLARE_HEADERS(AsmControlFlagsExpression);
29315#if defined(SgAsmControlFlagsExpression_HEADERS) || defined(DOCUMENTATION)
29316// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
29317#endif // SgAsmControlFlagsExpression_HEADERS
29318
29319#ifdef DOCUMENTATION
29321#endif // DOCUMENTATION
29322
29323#ifndef DOCUMENTATION
29324 AsmControlFlagsExpression.setDataPrototype(
29325 "unsigned long", "bitFlags", "= 0",
29326 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29327#endif // !DOCUMENTATION
29328
29329 DECLARE_OTHERS(AsmControlFlagsExpression);
29330#if defined(SgAsmControlFlagsExpression_OTHERS) || defined(DOCUMENTATION)
29331
29332 //----------------------- Boost serialization for SgAsmControlFlagsExpression -----------------------
29333#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29334private:
29335 friend class boost::serialization::access;
29336
29337 template<class S>
29338 void serialize(S &s, const unsigned /*version*/) {
29339 debugSerializationBegin("SgAsmControlFlagsExpression");
29340 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
29341 s & BOOST_SERIALIZATION_NVP(p_bitFlags);
29342 debugSerializationEnd("SgAsmControlFlagsExpression");
29343 }
29344#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29345public:
29346public:
29347 unsigned long const& get_bitFlags() const;
29348 void set_bitFlags(unsigned long const&);
29349 // [Robb Matzke 2023-11-06] deprecated 2023-11
29350 unsigned long get_bit_flags() const ROSE_DEPRECATED("use get_bitFlags");
29351 void set_bit_flags(unsigned long) ROSE_DEPRECATED("use set_bitFlags");
29352public:
29355
29356public:
29359
29360protected:
29368#endif // SgAsmControlFlagsExpression_OTHERS
29369#ifdef DOCUMENTATION
29370};
29371#endif // DOCUMENTATION
29372
29373
29375// SgAsmConstantExpression -- MACHINE GENERATED; DO NOT MODIFY --
29377
29378#ifndef DOCUMENTATION
29379AstNodeClass& AsmConstantExpression = nonTerminalConstructor(
29380 "AsmConstantExpression",
29381 *this,
29382 "AsmConstantExpression",
29383 "AsmConstantExpressionTag",
29384 SubclassListBuilder()
29385 | AsmFloatValueExpression
29386 | AsmIntegerValueExpression
29387 , false);
29388assert(AsmConstantExpression.associatedGrammar != nullptr);
29389AsmConstantExpression.setCppCondition("!defined(DOCUMENTATION)");
29390AsmConstantExpression.isBoostSerializable(true);
29391AsmConstantExpression.setAutomaticGenerationOfConstructor(false);
29392AsmConstantExpression.setAutomaticGenerationOfDestructor(false);
29393#endif // !DOCUMENTATION
29394
29395#ifndef DOCUMENTATION
29396AsmConstantExpression.useSmallHeader(true);
29397#endif // !DOCUMENTATION
29398
29399DECLARE_HEADERS(AsmConstantExpression);
29400#if defined(SgAsmConstantExpression_HEADERS) || defined(DOCUMENTATION)
29401#include <Sawyer/BitVector.h>
29402#endif // SgAsmConstantExpression_HEADERS
29403
29404#ifdef DOCUMENTATION
29410#endif // DOCUMENTATION
29411
29412#ifndef DOCUMENTATION
29413 AsmConstantExpression.setDataPrototype(
29414 "Sawyer::Container::BitVector", "bitVector", "",
29415 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29416#endif // !DOCUMENTATION
29417
29418 DECLARE_OTHERS(AsmConstantExpression);
29419#if defined(SgAsmConstantExpression_OTHERS) || defined(DOCUMENTATION)
29420
29421 //----------------------- Boost serialization for SgAsmConstantExpression -----------------------
29422#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29423private:
29424 friend class boost::serialization::access;
29425
29426 template<class S>
29427 void serialize(S &s, const unsigned /*version*/) {
29428 debugSerializationBegin("SgAsmConstantExpression");
29429 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmValueExpression);
29430 s & BOOST_SERIALIZATION_NVP(p_bitVector);
29431 debugSerializationEnd("SgAsmConstantExpression");
29432 }
29433#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29434public:
29435public:
29446public:
29449
29450protected:
29453
29454protected:
29462#endif // SgAsmConstantExpression_OTHERS
29463#ifdef DOCUMENTATION
29464};
29465#endif // DOCUMENTATION
29466
29467
29469// SgAsmValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
29471
29472#ifndef DOCUMENTATION
29473AstNodeClass& AsmValueExpression = nonTerminalConstructor(
29474 "AsmValueExpression",
29475 *this,
29476 "AsmValueExpression",
29477 "AsmValueExpressionTag",
29478 SubclassListBuilder()
29479 | AsmConstantExpression
29480 , false);
29481assert(AsmValueExpression.associatedGrammar != nullptr);
29482AsmValueExpression.setCppCondition("!defined(DOCUMENTATION)");
29483AsmValueExpression.isBoostSerializable(true);
29484AsmValueExpression.setAutomaticGenerationOfConstructor(false);
29485AsmValueExpression.setAutomaticGenerationOfDestructor(false);
29486#endif // !DOCUMENTATION
29487
29488#ifndef DOCUMENTATION
29489AsmValueExpression.useSmallHeader(true);
29490#endif // !DOCUMENTATION
29491
29492#ifdef DOCUMENTATION
29501#endif // DOCUMENTATION
29502
29503#ifndef DOCUMENTATION
29504 AsmValueExpression.setDataPrototype(
29505 "SgAsmValueExpression*", "unfoldedExpression", "= nullptr",
29506 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29507#endif // !DOCUMENTATION
29508
29509#ifndef DOCUMENTATION
29510 AsmValueExpression.setDataPrototype(
29511 "unsigned short", "bitOffset", "= 0",
29512 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29513#endif // !DOCUMENTATION
29514
29515#ifndef DOCUMENTATION
29516 AsmValueExpression.setDataPrototype(
29517 "unsigned short", "bitSize", "= 0",
29518 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29519#endif // !DOCUMENTATION
29520
29521#ifndef DOCUMENTATION
29522 AsmValueExpression.setDataPrototype(
29523 "SgSymbol*", "symbol", "= nullptr",
29524 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29525#endif // !DOCUMENTATION
29526
29527 DECLARE_OTHERS(AsmValueExpression);
29528#if defined(SgAsmValueExpression_OTHERS) || defined(DOCUMENTATION)
29529
29530 //----------------------- Boost serialization for SgAsmValueExpression -----------------------
29531#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29532private:
29533 friend class boost::serialization::access;
29534
29535 template<class S>
29536 void serialize(S &s, const unsigned /*version*/) {
29537 debugSerializationBegin("SgAsmValueExpression");
29538 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
29539 s & BOOST_SERIALIZATION_NVP(p_unfoldedExpression);
29540 s & BOOST_SERIALIZATION_NVP(p_bitOffset);
29541 s & BOOST_SERIALIZATION_NVP(p_bitSize);
29542 debugSerializationEnd("SgAsmValueExpression");
29543 }
29544#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29545public:
29546public:
29558public:
29567 unsigned short const& get_bitOffset() const;
29568 void set_bitOffset(unsigned short const&);
29571public:
29578 unsigned short const& get_bitSize() const;
29579 void set_bitSize(unsigned short const&);
29582public:
29589 SgSymbol* const& get_symbol() const;
29590 void set_symbol(SgSymbol* const&);
29593 // Deprecated 2023-11
29595public:
29596 SgAsmValueExpression* get_unfolded_expression_tree() const ROSE_DEPRECATED("use get_unfoldedExpression");
29597 void set_unfolded_expression_tree(SgAsmValueExpression*) ROSE_DEPRECATED("use set_unfoldedExpression");
29598 unsigned short get_bit_offset() const ROSE_DEPRECATED("use get_bitOffset");
29599 void set_bit_offset(unsigned short) ROSE_DEPRECATED("use set_bitOffset");
29600 unsigned short get_bit_size() const ROSE_DEPRECATED("use get_bitSize");
29601 void set_bit_size(unsigned short) ROSE_DEPRECATED("use set_bitSize");
29602public:
29605
29606protected:
29609
29610protected:
29618#endif // SgAsmValueExpression_OTHERS
29619#ifdef DOCUMENTATION
29620};
29621#endif // DOCUMENTATION
29622
29623
29625// SgAsmCommonSubExpression -- MACHINE GENERATED; DO NOT MODIFY --
29627
29628DECLARE_LEAF_CLASS(AsmCommonSubExpression);
29629IS_SERIALIZABLE(AsmCommonSubExpression);
29630
29631#ifndef DOCUMENTATION
29632AsmCommonSubExpression.useSmallHeader(true);
29633#endif // !DOCUMENTATION
29634
29635DECLARE_HEADERS(AsmCommonSubExpression);
29636#if defined(SgAsmCommonSubExpression_HEADERS) || defined(DOCUMENTATION)
29637// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
29638#endif // SgAsmCommonSubExpression_HEADERS
29639
29640#ifdef DOCUMENTATION
29642#endif // DOCUMENTATION
29643
29644#ifndef DOCUMENTATION
29645 AsmCommonSubExpression.setDataPrototype(
29646 "SgAsmExpression*", "subexpression", "= nullptr",
29647 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29648#endif // !DOCUMENTATION
29649
29650 DECLARE_OTHERS(AsmCommonSubExpression);
29651#if defined(SgAsmCommonSubExpression_OTHERS) || defined(DOCUMENTATION)
29652
29653 //----------------------- Boost serialization for SgAsmCommonSubExpression -----------------------
29654#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29655private:
29656 friend class boost::serialization::access;
29657
29658 template<class S>
29659 void serialize(S &s, const unsigned /*version*/) {
29660 debugSerializationBegin("SgAsmCommonSubExpression");
29661 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
29662 s & BOOST_SERIALIZATION_NVP(p_subexpression);
29663 debugSerializationEnd("SgAsmCommonSubExpression");
29664 }
29665#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29666public:
29667public:
29668 SgAsmExpression* const& get_subexpression() const;
29669 void set_subexpression(SgAsmExpression* const&);
29670
29671public:
29674
29675public:
29678
29679protected:
29687#endif // SgAsmCommonSubExpression_OTHERS
29688#ifdef DOCUMENTATION
29689};
29690#endif // DOCUMENTATION
29691
29692
29694// SgAsmCoffSymbolTable -- MACHINE GENERATED; DO NOT MODIFY --
29696
29697DECLARE_LEAF_CLASS(AsmCoffSymbolTable);
29698IS_SERIALIZABLE(AsmCoffSymbolTable);
29699
29700#ifndef DOCUMENTATION
29701AsmCoffSymbolTable.useSmallHeader(true);
29702#endif // !DOCUMENTATION
29703
29704DECLARE_HEADERS(AsmCoffSymbolTable);
29705#if defined(SgAsmCoffSymbolTable_HEADERS) || defined(DOCUMENTATION)
29706#ifdef ROSE_SgAsmCoffSymbolTable_IMPL
29707#include <SgAsmCoffSymbolList.h>
29708#endif
29709#endif // SgAsmCoffSymbolTable_HEADERS
29710
29711#ifdef DOCUMENTATION
29716#endif // DOCUMENTATION
29717
29718#ifndef DOCUMENTATION
29719 AsmCoffSymbolTable.setDataPrototype(
29720 "SgAsmGenericSection*", "strtab", "= nullptr",
29721 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29722#endif // !DOCUMENTATION
29723
29724#ifndef DOCUMENTATION
29725 AsmCoffSymbolTable.setDataPrototype(
29726 "SgAsmCoffSymbolList*", "symbols", "= createAndParent<SgAsmCoffSymbolList>(this)",
29727 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29728#endif // !DOCUMENTATION
29729
29730 DECLARE_OTHERS(AsmCoffSymbolTable);
29731#if defined(SgAsmCoffSymbolTable_OTHERS) || defined(DOCUMENTATION)
29732
29733 //----------------------- Boost serialization for SgAsmCoffSymbolTable -----------------------
29734#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29735private:
29736 friend class boost::serialization::access;
29737
29738 template<class S>
29739 void serialize(S &s, const unsigned /*version*/) {
29740 debugSerializationBegin("SgAsmCoffSymbolTable");
29741 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
29742 s & BOOST_SERIALIZATION_NVP(p_strtab);
29743 s & BOOST_SERIALIZATION_NVP(p_symbols);
29744 debugSerializationEnd("SgAsmCoffSymbolTable");
29745 }
29746#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29747public:
29748public:
29758public:
29765public:
29767 size_t get_nslots() const;
29768 virtual SgAsmCoffSymbolTable *parse() override;
29769 virtual void unparse(std::ostream&) const override;
29770 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29771public:
29774
29775public:
29778
29779protected:
29787#endif // SgAsmCoffSymbolTable_OTHERS
29788#ifdef DOCUMENTATION
29789};
29790#endif // DOCUMENTATION
29791
29792
29794// SgAsmCoffSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
29796
29797DECLARE_LEAF_CLASS(AsmCoffSymbolList);
29798IS_SERIALIZABLE(AsmCoffSymbolList);
29799
29800#ifndef DOCUMENTATION
29801AsmCoffSymbolList.useSmallHeader(true);
29802#endif // !DOCUMENTATION
29803
29804DECLARE_HEADERS(AsmCoffSymbolList);
29805#if defined(SgAsmCoffSymbolList_HEADERS) || defined(DOCUMENTATION)
29806#include <sageContainer.h>
29807#endif // SgAsmCoffSymbolList_HEADERS
29808
29809#ifdef DOCUMENTATION
29812#endif // DOCUMENTATION
29813
29814#ifndef DOCUMENTATION
29815 AsmCoffSymbolList.setDataPrototype(
29816 "SgAsmCoffSymbolPtrList", "symbols", "",
29817 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29818#endif // !DOCUMENTATION
29819
29820 DECLARE_OTHERS(AsmCoffSymbolList);
29821#if defined(SgAsmCoffSymbolList_OTHERS) || defined(DOCUMENTATION)
29822
29823 //----------------------- Boost serialization for SgAsmCoffSymbolList -----------------------
29824#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29825private:
29826 friend class boost::serialization::access;
29827
29828 template<class S>
29829 void serialize(S &s, const unsigned /*version*/) {
29830 debugSerializationBegin("SgAsmCoffSymbolList");
29831 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
29832 s & BOOST_SERIALIZATION_NVP(p_symbols);
29833 debugSerializationEnd("SgAsmCoffSymbolList");
29834 }
29835#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29836public:
29837public:
29841 SgAsmCoffSymbolPtrList const& get_symbols() const;
29842 SgAsmCoffSymbolPtrList& get_symbols();
29843 void set_symbols(SgAsmCoffSymbolPtrList const&);
29846public:
29849
29850public:
29853
29854protected:
29862#endif // SgAsmCoffSymbolList_OTHERS
29863#ifdef DOCUMENTATION
29864};
29865#endif // DOCUMENTATION
29866
29867
29869// SgAsmCoffSymbol -- MACHINE GENERATED; DO NOT MODIFY --
29871
29872DECLARE_LEAF_CLASS(AsmCoffSymbol);
29873IS_SERIALIZABLE(AsmCoffSymbol);
29874
29875#ifndef DOCUMENTATION
29876AsmCoffSymbol.useSmallHeader(true);
29877#endif // !DOCUMENTATION
29878
29879DECLARE_HEADERS(AsmCoffSymbol);
29880#if defined(SgAsmCoffSymbol_HEADERS) || defined(DOCUMENTATION)
29881#include <sageContainer.h>
29882#endif // SgAsmCoffSymbol_HEADERS
29883
29884#ifdef DOCUMENTATION
29887#endif // DOCUMENTATION
29888
29889#ifndef DOCUMENTATION
29890 AsmCoffSymbol.setDataPrototype(
29891 "std::string", "st_name", "",
29892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29893#endif // !DOCUMENTATION
29894
29895#ifndef DOCUMENTATION
29896 AsmCoffSymbol.setDataPrototype(
29897 "rose_addr_t", "st_name_offset", "= 0",
29898 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29899#endif // !DOCUMENTATION
29900
29901#ifndef DOCUMENTATION
29902 AsmCoffSymbol.setDataPrototype(
29903 "int", "st_section_num", "= 0",
29904 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29905#endif // !DOCUMENTATION
29906
29907#ifndef DOCUMENTATION
29908 AsmCoffSymbol.setDataPrototype(
29909 "unsigned", "st_type", "= 0",
29910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29911#endif // !DOCUMENTATION
29912
29913#ifndef DOCUMENTATION
29914 AsmCoffSymbol.setDataPrototype(
29915 "unsigned", "st_storage_class", "= 0",
29916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29917#endif // !DOCUMENTATION
29918
29919#ifndef DOCUMENTATION
29920 AsmCoffSymbol.setDataPrototype(
29921 "unsigned", "st_num_aux_entries", "= 0",
29922 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29923#endif // !DOCUMENTATION
29924
29925#ifndef DOCUMENTATION
29926 AsmCoffSymbol.setDataPrototype(
29927 "SgUnsignedCharList", "auxiliaryData", "",
29928 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29929#endif // !DOCUMENTATION
29930
29931 DECLARE_OTHERS(AsmCoffSymbol);
29932#if defined(SgAsmCoffSymbol_OTHERS) || defined(DOCUMENTATION)
29933
29934 //----------------------- Boost serialization for SgAsmCoffSymbol -----------------------
29935#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
29936private:
29937 friend class boost::serialization::access;
29938
29939 template<class S>
29940 void serialize(S &s, const unsigned /*version*/) {
29941 debugSerializationBegin("SgAsmCoffSymbol");
29942 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
29943 s & BOOST_SERIALIZATION_NVP(p_st_name);
29944 s & BOOST_SERIALIZATION_NVP(p_st_name_offset);
29945 s & BOOST_SERIALIZATION_NVP(p_st_section_num);
29946 s & BOOST_SERIALIZATION_NVP(p_st_type);
29947 s & BOOST_SERIALIZATION_NVP(p_st_storage_class);
29948 s & BOOST_SERIALIZATION_NVP(p_st_num_aux_entries);
29949 s & BOOST_SERIALIZATION_NVP(p_auxiliaryData);
29950 debugSerializationEnd("SgAsmCoffSymbol");
29951 }
29952#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
29954 // Local types
29956public:
29957#ifdef _MSC_VER
29958# pragma pack (1)
29959#endif
29961 union {
29962 char st_name[8];
29963 struct {
29964 uint32_t st_zero;
29965 uint32_t st_offset;
29966 };
29967 };
29968 uint32_t st_value;
29969 int16_t st_section_num;
29970 uint16_t st_type;
29971 unsigned char st_storage_class;
29972 unsigned char st_num_aux_entries;
29973 }
29974// DQ (3/7/2013): Adding support to restrict visability to SWIG.
29975#if !defined(SWIG) && !defined(_MSC_VER)
29976 __attribute__((packed))
29977#endif
29978 ;
29979#ifdef _MSC_VER
29980# pragma pack ()
29981#endif
29982
29984 // Properties and data members
29986public:
29987public:
29991 std::string const& get_st_name() const;
29992 void set_st_name(std::string const&);
29995public:
29999 rose_addr_t const& get_st_name_offset() const;
30000 void set_st_name_offset(rose_addr_t const&);
30003public:
30007 int const& get_st_section_num() const;
30008 void set_st_section_num(int const&);
30011public:
30015 unsigned const& get_st_type() const;
30016 void set_st_type(unsigned const&);
30019public:
30023 unsigned const& get_st_storage_class() const;
30024 void set_st_storage_class(unsigned const&);
30027public:
30031 unsigned const& get_st_num_aux_entries() const;
30032 void set_st_num_aux_entries(unsigned const&);
30035public:
30039 SgUnsignedCharList const& get_auxiliaryData() const;
30040 SgUnsignedCharList& get_auxiliaryData();
30041 void set_auxiliaryData(SgUnsignedCharList const&);
30043public:
30044 static const unsigned int COFFSymbol_disk_size = 18;
30045
30047 // Functions
30049public:
30050 SgAsmCoffSymbol(SgAsmPEFileHeader *fhdr, SgAsmGenericSection *symtab, SgAsmGenericSection *strtab, size_t idx);
30051 void *encode(SgAsmCoffSymbol::COFFSymbol_disk*) const;
30052 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
30053
30055 // Deprecated
30057public:
30058 const SgUnsignedCharList& get_aux_data() const ROSE_DEPRECATED("use get_auxiliaryData");
30059 void set_aux_data(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_auxiliaryData");
30060public:
30063
30064public:
30067
30068protected:
30076#endif // SgAsmCoffSymbol_OTHERS
30077#ifdef DOCUMENTATION
30078};
30079#endif // DOCUMENTATION
30080
30081
30083// SgAsmGenericSymbol -- MACHINE GENERATED; DO NOT MODIFY --
30085
30086#ifndef DOCUMENTATION
30087AstNodeClass& AsmGenericSymbol = nonTerminalConstructor(
30088 "AsmGenericSymbol",
30089 *this,
30090 "AsmGenericSymbol",
30091 "AsmGenericSymbolTag",
30092 SubclassListBuilder()
30093 | AsmCoffSymbol
30094 | AsmElfSymbol
30095 , false);
30096assert(AsmGenericSymbol.associatedGrammar != nullptr);
30097AsmGenericSymbol.setCppCondition("!defined(DOCUMENTATION)");
30098AsmGenericSymbol.isBoostSerializable(true);
30099AsmGenericSymbol.setAutomaticGenerationOfConstructor(false);
30100AsmGenericSymbol.setAutomaticGenerationOfDestructor(false);
30101#endif // !DOCUMENTATION
30102
30103#ifndef DOCUMENTATION
30104AsmGenericSymbol.useSmallHeader(true);
30105#endif // !DOCUMENTATION
30106
30107DECLARE_HEADERS(AsmGenericSymbol);
30108#if defined(SgAsmGenericSymbol_HEADERS) || defined(DOCUMENTATION)
30109/* Base class for symbol tables. */
30110#endif // SgAsmGenericSymbol_HEADERS
30111
30112#ifdef DOCUMENTATION
30114#endif // DOCUMENTATION
30115
30116#ifndef DOCUMENTATION
30117 AsmGenericSymbol.setDataPrototype(
30118 "SgAsmGenericSymbol::SymbolDefState", "definitionState", "= SgAsmGenericSymbol::SYM_UNDEFINED",
30119 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30120#endif // !DOCUMENTATION
30121
30122#ifndef DOCUMENTATION
30123 AsmGenericSymbol.setDataPrototype(
30124 "SgAsmGenericSymbol::SymbolBinding", "binding", "= SgAsmGenericSymbol::SYM_NO_BINDING",
30125 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30126#endif // !DOCUMENTATION
30127
30128#ifndef DOCUMENTATION
30129 AsmGenericSymbol.setDataPrototype(
30130 "SgAsmGenericSymbol::SymbolType", "type", "= SgAsmGenericSymbol::SYM_NO_TYPE",
30131 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30132#endif // !DOCUMENTATION
30133
30134#ifndef DOCUMENTATION
30135 AsmGenericSymbol.setDataPrototype(
30136 "rose_addr_t", "value", "= 0",
30137 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30138#endif // !DOCUMENTATION
30139
30140#ifndef DOCUMENTATION
30141 AsmGenericSymbol.setDataPrototype(
30142 "rose_addr_t", "size", "= 0",
30143 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30144#endif // !DOCUMENTATION
30145
30146#ifndef DOCUMENTATION
30147 AsmGenericSymbol.setDataPrototype(
30148 "SgAsmGenericSection*", "bound", "= nullptr",
30149 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30150#endif // !DOCUMENTATION
30151
30152#ifndef DOCUMENTATION
30153 AsmGenericSymbol.setDataPrototype(
30154 "SgAsmGenericString*", "name", "= nullptr",
30155 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30156#endif // !DOCUMENTATION
30157
30158 DECLARE_OTHERS(AsmGenericSymbol);
30159#if defined(SgAsmGenericSymbol_OTHERS) || defined(DOCUMENTATION)
30160
30161 //----------------------- Boost serialization for SgAsmGenericSymbol -----------------------
30162#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
30163private:
30164 friend class boost::serialization::access;
30165
30166 template<class S>
30167 void serialize(S &s, const unsigned /*version*/) {
30168 debugSerializationBegin("SgAsmGenericSymbol");
30169 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
30170 s & BOOST_SERIALIZATION_NVP(p_definitionState);
30171 s & BOOST_SERIALIZATION_NVP(p_binding);
30172 s & BOOST_SERIALIZATION_NVP(p_type);
30173 s & BOOST_SERIALIZATION_NVP(p_value);
30174 s & BOOST_SERIALIZATION_NVP(p_size);
30175 s & BOOST_SERIALIZATION_NVP(p_bound);
30176 s & BOOST_SERIALIZATION_NVP(p_name);
30177 debugSerializationEnd("SgAsmGenericSymbol");
30178 }
30179#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
30181 // Local types
30183public:
30190
30204
30212
30214 // Properties
30216public:
30217public:
30225public:
30233public:
30241public:
30245 rose_addr_t const& get_value() const;
30246 void set_value(rose_addr_t const&);
30249public:
30253 rose_addr_t const& get_size() const;
30254 void set_size(rose_addr_t const&);
30257public:
30265public:
30274 // Functions
30276public:
30278 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
30279
30281 // Deprecated 2023-11
30283public:
30284 SymbolDefState get_def_state() const ROSE_DEPRECATED("use get_definitionState");
30285 void set_def_state(SymbolDefState) ROSE_DEPRECATED("use set_definitionState");
30286public:
30289
30290protected:
30293
30294protected:
30302#endif // SgAsmGenericSymbol_OTHERS
30303#ifdef DOCUMENTATION
30304};
30305#endif // DOCUMENTATION
30306
30307
30309// SgAsmCoffStrtab -- MACHINE GENERATED; DO NOT MODIFY --
30311
30312DECLARE_LEAF_CLASS(AsmCoffStrtab);
30313IS_SERIALIZABLE(AsmCoffStrtab);
30314
30315#ifndef DOCUMENTATION
30316AsmCoffStrtab.useSmallHeader(true);
30317#endif // !DOCUMENTATION
30318
30319#ifdef DOCUMENTATION
30322#endif // DOCUMENTATION
30323
30324 DECLARE_OTHERS(AsmCoffStrtab);
30325#if defined(SgAsmCoffStrtab_OTHERS) || defined(DOCUMENTATION)
30326
30327 //----------------------- Boost serialization for SgAsmCoffStrtab -----------------------
30328#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
30329private:
30330 friend class boost::serialization::access;
30331
30332 template<class S>
30333 void serialize(S &s, const unsigned /*version*/) {
30334 debugSerializationBegin("SgAsmCoffStrtab");
30335 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
30336 debugSerializationEnd("SgAsmCoffStrtab");
30337 }
30338#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
30339public:
30340 explicit SgAsmCoffStrtab(class SgAsmPESection *containing_section);
30341 void destructorHelper() override;
30342 virtual void unparse(std::ostream&) const;
30343 virtual SgAsmStringStorage *createStorage(rose_addr_t offset, bool shared) override;
30344 virtual rose_addr_t get_storageSize(const SgAsmStringStorage*) override;
30345
30347 // Deprecated 2023-11
30349 virtual SgAsmStringStorage *create_storage(rose_addr_t, bool) override ROSE_DEPRECATED("use createStorage");
30350 virtual rose_addr_t get_storage_size(const SgAsmStringStorage*) override ROSE_DEPRECATED("use get_storageSize");
30351public:
30354
30355public:
30358
30359protected:
30367#endif // SgAsmCoffStrtab_OTHERS
30368#ifdef DOCUMENTATION
30369};
30370#endif // DOCUMENTATION
30371
30372
30374// SgAsmGenericStrtab -- MACHINE GENERATED; DO NOT MODIFY --
30376
30377#ifndef DOCUMENTATION
30378AstNodeClass& AsmGenericStrtab = nonTerminalConstructor(
30379 "AsmGenericStrtab",
30380 *this,
30381 "AsmGenericStrtab",
30382 "AsmGenericStrtabTag",
30383 SubclassListBuilder()
30384 | AsmCoffStrtab
30385 | AsmElfStrtab
30386 , false);
30387assert(AsmGenericStrtab.associatedGrammar != nullptr);
30388AsmGenericStrtab.setCppCondition("!defined(DOCUMENTATION)");
30389AsmGenericStrtab.isBoostSerializable(true);
30390AsmGenericStrtab.setAutomaticGenerationOfConstructor(false);
30391AsmGenericStrtab.setAutomaticGenerationOfDestructor(false);
30392#endif // !DOCUMENTATION
30393
30394#ifndef DOCUMENTATION
30395AsmGenericStrtab.useSmallHeader(true);
30396#endif // !DOCUMENTATION
30397
30398DECLARE_HEADERS(AsmGenericStrtab);
30399#if defined(SgAsmGenericStrtab_HEADERS) || defined(DOCUMENTATION)
30400#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
30401#endif // SgAsmGenericStrtab_HEADERS
30402
30403#ifdef DOCUMENTATION
30406#endif // DOCUMENTATION
30407
30408#ifndef DOCUMENTATION
30409 AsmGenericStrtab.setDataPrototype(
30410 "SgAsmGenericSection*", "container", "= nullptr",
30411 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30412#endif // !DOCUMENTATION
30413
30414#ifndef DOCUMENTATION
30415 AsmGenericStrtab.setDataPrototype(
30416 "SgAsmGenericStrtab::referenced_t", "storageList", "",
30417 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30418#endif // !DOCUMENTATION
30419
30420#ifndef DOCUMENTATION
30421 AsmGenericStrtab.setDataPrototype(
30422 "Rose::BinaryAnalysis::AddressIntervalSet", "freeList", "",
30423 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30424#endif // !DOCUMENTATION
30425
30426#ifndef DOCUMENTATION
30427 AsmGenericStrtab.setDataPrototype(
30428 "SgAsmStringStorage*", "dontFree", "= nullptr",
30429 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30430#endif // !DOCUMENTATION
30431
30432#ifndef DOCUMENTATION
30433 AsmGenericStrtab.setDataPrototype(
30434 "size_t", "numberFreed", "= 0",
30435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30436#endif // !DOCUMENTATION
30437
30438 DECLARE_OTHERS(AsmGenericStrtab);
30439#if defined(SgAsmGenericStrtab_OTHERS) || defined(DOCUMENTATION)
30440
30441 //----------------------- Boost serialization for SgAsmGenericStrtab -----------------------
30442#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
30443private:
30444 friend class boost::serialization::access;
30445
30446 template<class S>
30447 void serialize(S &s, const unsigned /*version*/) {
30448 debugSerializationBegin("SgAsmGenericStrtab");
30449 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
30450 s & BOOST_SERIALIZATION_NVP(p_container);
30451 s & BOOST_SERIALIZATION_NVP(p_storageList);
30452 s & BOOST_SERIALIZATION_NVP(p_freeList);
30453 s & BOOST_SERIALIZATION_NVP(p_dontFree);
30454 s & BOOST_SERIALIZATION_NVP(p_numberFreed);
30455 debugSerializationEnd("SgAsmGenericStrtab");
30456 }
30457#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
30459 // Local types
30461public:
30462 typedef std::vector<class SgAsmStringStorage*> referenced_t;
30463
30465 // Properties
30467public:
30468public:
30476public:
30480 SgAsmGenericStrtab::referenced_t const& get_storageList() const;
30481 void set_storageList(SgAsmGenericStrtab::referenced_t const&);
30484public:
30493public:
30501public:
30505 size_t const& get_numberFreed() const;
30506 void set_numberFreed(size_t const&);
30509 // Functions
30511public:
30514
30516 virtual SgAsmGenericStrtab* parse() {return this;}
30517
30519 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
30520
30522 SgAsmStoredString *createString(rose_addr_t offset, bool shared);
30523
30528
30533 void free(rose_addr_t offset, rose_addr_t size); /*mark part of table as free*/
30534
30539 void freeAllStrings(bool blow_away_holes=false);
30540
30541 virtual void allocateOverlap(SgAsmStringStorage*);
30542
30548 bool reallocate(bool shrink);
30549
30550 //These should be pure virtual but ROSETTA apparently doesn't support that (RPM 2008-10-03)
30551 virtual SgAsmStringStorage *createStorage(rose_addr_t /*offset*/, bool /*shared*/);
30552 virtual rose_addr_t get_storageSize(const SgAsmStringStorage*);
30553 virtual void rebind(SgAsmStringStorage*, rose_addr_t);
30554
30556 // Deprecated 2023-11
30558public:
30559 const referenced_t& get_storage_list() const ROSE_DEPRECATED("use get_storageList");
30560 void set_storage_list(const referenced_t&) ROSE_DEPRECATED("use set_storageList");
30561 const Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() const ROSE_DEPRECATED("use get_freeList");
30562 Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() ROSE_DEPRECATED("use set_freeList");
30563 SgAsmStringStorage* get_dont_free() const ROSE_DEPRECATED("use get_dontFree");
30564 void set_dont_free(SgAsmStringStorage*) ROSE_DEPRECATED("use set_dontFree");
30565 size_t get_num_freed() const ROSE_DEPRECATED("use get_numberFreed");
30566 void set_num_freed(size_t) ROSE_DEPRECATED("use set_numberFreed");
30567 SgAsmStoredString *create_string(rose_addr_t, bool) ROSE_DEPRECATED("use createString");
30568 void free_all_strings(bool=false) ROSE_DEPRECATED("use freeAllStrings");
30569 virtual void allocate_overlap(SgAsmStringStorage*) ROSE_DEPRECATED("use allocateOverlap");
30570 virtual SgAsmStringStorage *create_storage(rose_addr_t, bool) ROSE_DEPRECATED("use createStorage");
30571 virtual rose_addr_t get_storage_size(const SgAsmStringStorage*) ROSE_DEPRECATED("use get_storageSize");
30572public:
30575
30576protected:
30579
30580protected:
30588#endif // SgAsmGenericStrtab_OTHERS
30589#ifdef DOCUMENTATION
30590};
30591#endif // DOCUMENTATION
30592
30593
30595// SgAsmCliHeader -- MACHINE GENERATED; DO NOT MODIFY --
30597
30598DECLARE_LEAF_CLASS(AsmCliHeader);
30599IS_SERIALIZABLE(AsmCliHeader);
30600
30601#ifndef DOCUMENTATION
30602AsmCliHeader.useSmallHeader(true);
30603#endif // !DOCUMENTATION
30604
30605DECLARE_HEADERS(AsmCliHeader);
30606#if defined(SgAsmCliHeader_HEADERS) || defined(DOCUMENTATION)
30607#ifdef ROSE_SgAsmCliHeader_IMPL
30608#include <SgAsmCilMetadataRoot.h>
30609#endif
30610#endif // SgAsmCliHeader_HEADERS
30611
30612#ifdef DOCUMENTATION
30617#endif // DOCUMENTATION
30618
30619#ifndef DOCUMENTATION
30620 AsmCliHeader.setDataPrototype(
30621 "uint32_t", "cb", "= 0",
30622 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30623#endif // !DOCUMENTATION
30624
30625#ifndef DOCUMENTATION
30626 AsmCliHeader.setDataPrototype(
30627 "uint16_t", "majorRuntimeVersion", "= 0",
30628 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30629#endif // !DOCUMENTATION
30630
30631#ifndef DOCUMENTATION
30632 AsmCliHeader.setDataPrototype(
30633 "uint16_t", "minorRuntimeVersion", "= 0",
30634 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30635#endif // !DOCUMENTATION
30636
30637#ifndef DOCUMENTATION
30638 AsmCliHeader.setDataPrototype(
30639 "uint64_t", "metaData", "= 0",
30640 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30641#endif // !DOCUMENTATION
30642
30643#ifndef DOCUMENTATION
30644 AsmCliHeader.setDataPrototype(
30645 "uint32_t", "flags", "= 0",
30646 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30647#endif // !DOCUMENTATION
30648
30649#ifndef DOCUMENTATION
30650 AsmCliHeader.setDataPrototype(
30651 "uint32_t", "entryPointToken", "= 0",
30652 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30653#endif // !DOCUMENTATION
30654
30655#ifndef DOCUMENTATION
30656 AsmCliHeader.setDataPrototype(
30657 "uint64_t", "resources", "= 0",
30658 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30659#endif // !DOCUMENTATION
30660
30661#ifndef DOCUMENTATION
30662 AsmCliHeader.setDataPrototype(
30663 "uint64_t", "strongNameSignature", "= 0",
30664 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30665#endif // !DOCUMENTATION
30666
30667#ifndef DOCUMENTATION
30668 AsmCliHeader.setDataPrototype(
30669 "uint64_t", "codeManagerTable", "= 0",
30670 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30671#endif // !DOCUMENTATION
30672
30673#ifndef DOCUMENTATION
30674 AsmCliHeader.setDataPrototype(
30675 "uint64_t", "vTableFixups", "= 0",
30676 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30677#endif // !DOCUMENTATION
30678
30679#ifndef DOCUMENTATION
30680 AsmCliHeader.setDataPrototype(
30681 "uint64_t", "exportAddressTableJumps", "= 0",
30682 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30683#endif // !DOCUMENTATION
30684
30685#ifndef DOCUMENTATION
30686 AsmCliHeader.setDataPrototype(
30687 "uint64_t", "managedNativeHeader", "= 0",
30688 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30689#endif // !DOCUMENTATION
30690
30691#ifndef DOCUMENTATION
30692 AsmCliHeader.setDataPrototype(
30693 "SgAsmCilMetadataRoot*", "metadataRoot", "= nullptr",
30694 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30695#endif // !DOCUMENTATION
30696
30697 DECLARE_OTHERS(AsmCliHeader);
30698#if defined(SgAsmCliHeader_OTHERS) || defined(DOCUMENTATION)
30699
30700 //----------------------- Boost serialization for SgAsmCliHeader -----------------------
30701#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
30702private:
30703 friend class boost::serialization::access;
30704
30705 template<class S>
30706 void serialize(S &s, const unsigned /*version*/) {
30707 debugSerializationBegin("SgAsmCliHeader");
30708 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
30709 s & BOOST_SERIALIZATION_NVP(p_cb);
30710 s & BOOST_SERIALIZATION_NVP(p_majorRuntimeVersion);
30711 s & BOOST_SERIALIZATION_NVP(p_minorRuntimeVersion);
30712 s & BOOST_SERIALIZATION_NVP(p_metaData);
30713 s & BOOST_SERIALIZATION_NVP(p_flags);
30714 s & BOOST_SERIALIZATION_NVP(p_entryPointToken);
30715 s & BOOST_SERIALIZATION_NVP(p_resources);
30716 s & BOOST_SERIALIZATION_NVP(p_strongNameSignature);
30717 s & BOOST_SERIALIZATION_NVP(p_codeManagerTable);
30718 s & BOOST_SERIALIZATION_NVP(p_vTableFixups);
30719 s & BOOST_SERIALIZATION_NVP(p_exportAddressTableJumps);
30720 s & BOOST_SERIALIZATION_NVP(p_managedNativeHeader);
30721 debugSerializationEnd("SgAsmCliHeader");
30722 }
30723#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
30724public:
30725public:
30731 uint32_t const& get_cb() const;
30732 void set_cb(uint32_t const&);
30735public:
30741 uint16_t const& get_majorRuntimeVersion() const;
30742 void set_majorRuntimeVersion(uint16_t const&);
30745public:
30751 uint16_t const& get_minorRuntimeVersion() const;
30752 void set_minorRuntimeVersion(uint16_t const&);
30755public:
30761 uint64_t const& get_metaData() const;
30762 void set_metaData(uint64_t const&);
30765public:
30771 uint32_t const& get_flags() const;
30772 void set_flags(uint32_t const&);
30775public:
30781 uint32_t const& get_entryPointToken() const;
30782 void set_entryPointToken(uint32_t const&);
30785public:
30791 uint64_t const& get_resources() const;
30792 void set_resources(uint64_t const&);
30795public:
30801 uint64_t const& get_strongNameSignature() const;
30802 void set_strongNameSignature(uint64_t const&);
30805public:
30811 uint64_t const& get_codeManagerTable() const;
30812 void set_codeManagerTable(uint64_t const&);
30815public:
30821 uint64_t const& get_vTableFixups() const;
30822 void set_vTableFixups(uint64_t const&);
30825public:
30831 uint64_t const& get_exportAddressTableJumps() const;
30832 void set_exportAddressTableJumps(uint64_t const&);
30835public:
30841 uint64_t const& get_managedNativeHeader() const;
30842 void set_managedNativeHeader(uint64_t const&);
30844 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
30845public:
30852 public:
30857
30859 virtual SgAsmCliHeader* parse() override;
30860
30862 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
30863public:
30866
30867public:
30870
30871protected:
30879#endif // SgAsmCliHeader_OTHERS
30880#ifdef DOCUMENTATION
30881};
30882#endif // DOCUMENTATION
30883
30884
30886// SgAsmGenericSection -- MACHINE GENERATED; DO NOT MODIFY --
30888
30889#ifndef DOCUMENTATION
30890AstNodeClass& AsmGenericSection = nonTerminalConstructor(
30891 "AsmGenericSection",
30892 *this,
30893 "AsmGenericSection",
30894 "AsmGenericSectionTag",
30895 SubclassListBuilder()
30896 | AsmCliHeader
30897 | AsmCoffSymbolTable
30898 | AsmDOSExtendedHeader
30899 | AsmElfSection
30900 | AsmElfSectionTable
30901 | AsmElfSegmentTable
30902 | AsmGenericHeader
30903 | AsmJvmAttributeTable
30904 | AsmJvmConstantPool
30905 | AsmJvmFieldTable
30906 | AsmJvmMethodTable
30907 | AsmLEEntryTable
30908 | AsmLENameTable
30909 | AsmLEPageTable
30910 | AsmLERelocTable
30911 | AsmLESection
30912 | AsmLESectionTable
30913 | AsmNEEntryTable
30914 | AsmNEModuleTable
30915 | AsmNENameTable
30916 | AsmNERelocTable
30917 | AsmNESection
30918 | AsmNESectionTable
30919 | AsmNEStringTable
30920 | AsmPESection
30921 | AsmPESectionTable
30922 , true);
30923assert(AsmGenericSection.associatedGrammar != nullptr);
30924AsmGenericSection.setCppCondition("!defined(DOCUMENTATION)");
30925AsmGenericSection.isBoostSerializable(true);
30926AsmGenericSection.setAutomaticGenerationOfConstructor(false);
30927AsmGenericSection.setAutomaticGenerationOfDestructor(false);
30928#endif // !DOCUMENTATION
30929
30930#ifndef DOCUMENTATION
30931AsmGenericSection.useSmallHeader(true);
30932#endif // !DOCUMENTATION
30933
30934DECLARE_HEADERS(AsmGenericSection);
30935#if defined(SgAsmGenericSection_HEADERS) || defined(DOCUMENTATION)
30936#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
30937#include <Rose/BinaryAnalysis/MemoryMap.h>
30938#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
30939#include <sageContainer.h>
30940
30941#ifdef ROSE_SgAsmGenericSection_IMPL
30942#include <SgAsmBasicString.h>
30943#endif
30944#endif // SgAsmGenericSection_HEADERS
30945
30946#ifdef DOCUMENTATION
30952#endif // DOCUMENTATION
30953
30954#ifndef DOCUMENTATION
30955 AsmGenericSection.setDataPrototype(
30956 "SgAsmGenericFile*", "file", "= nullptr",
30957 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30958#endif // !DOCUMENTATION
30959
30960#ifndef DOCUMENTATION
30961 AsmGenericSection.setDataPrototype(
30962 "SgAsmGenericHeader*", "header", "= nullptr",
30963 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30964#endif // !DOCUMENTATION
30965
30966#ifndef DOCUMENTATION
30967 AsmGenericSection.setDataPrototype(
30968 "rose_addr_t", "size", "= 0",
30969 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30970#endif // !DOCUMENTATION
30971
30972#ifndef DOCUMENTATION
30973 AsmGenericSection.setDataPrototype(
30974 "rose_addr_t", "offset", "= 0",
30975 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30976#endif // !DOCUMENTATION
30977
30978#ifndef DOCUMENTATION
30979 AsmGenericSection.setDataPrototype(
30980 "rose_addr_t", "fileAlignment", "= 0",
30981 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30982#endif // !DOCUMENTATION
30983
30984#ifndef DOCUMENTATION
30985 AsmGenericSection.setDataPrototype(
30986 "SgFileContentList", "data", "",
30987 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30988#endif // !DOCUMENTATION
30989
30990#ifndef DOCUMENTATION
30991 AsmGenericSection.setDataPrototype(
30992 "SgAsmGenericSection::SectionPurpose", "purpose", "= SgAsmGenericSection::SP_UNSPECIFIED",
30993 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30994#endif // !DOCUMENTATION
30995
30996#ifndef DOCUMENTATION
30997 AsmGenericSection.setDataPrototype(
30998 "bool", "synthesized", "= false",
30999 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31000#endif // !DOCUMENTATION
31001
31002#ifndef DOCUMENTATION
31003 AsmGenericSection.setDataPrototype(
31004 "int", "id", "= -1",
31005 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31006#endif // !DOCUMENTATION
31007
31008#ifndef DOCUMENTATION
31009 AsmGenericSection.setDataPrototype(
31010 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
31011 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31012#endif // !DOCUMENTATION
31013
31014#ifndef DOCUMENTATION
31015 AsmGenericSection.setDataPrototype(
31016 "std::string", "shortName", "",
31017 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31018#endif // !DOCUMENTATION
31019
31020#ifndef DOCUMENTATION
31021 AsmGenericSection.setDataPrototype(
31022 "rose_addr_t", "mappedPreferredRva", "= 0",
31023 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31024#endif // !DOCUMENTATION
31025
31026#ifndef DOCUMENTATION
31027 AsmGenericSection.setDataPrototype(
31028 "rose_addr_t", "mappedSize", "= 0",
31029 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31030#endif // !DOCUMENTATION
31031
31032#ifndef DOCUMENTATION
31033 AsmGenericSection.setDataPrototype(
31034 "rose_addr_t", "mappedAlignment", "= 0",
31035 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31036#endif // !DOCUMENTATION
31037
31038#ifndef DOCUMENTATION
31039 AsmGenericSection.setDataPrototype(
31040 "bool", "mappedReadPermission", "= false",
31041 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31042#endif // !DOCUMENTATION
31043
31044#ifndef DOCUMENTATION
31045 AsmGenericSection.setDataPrototype(
31046 "bool", "mappedWritePermission", "= false",
31047 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31048#endif // !DOCUMENTATION
31049
31050#ifndef DOCUMENTATION
31051 AsmGenericSection.setDataPrototype(
31052 "bool", "mappedExecutePermission", "= false",
31053 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31054#endif // !DOCUMENTATION
31055
31056#ifndef DOCUMENTATION
31057 AsmGenericSection.setDataPrototype(
31058 "bool", "containsCode", "= false",
31059 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31060#endif // !DOCUMENTATION
31061
31062#ifndef DOCUMENTATION
31063 AsmGenericSection.setDataPrototype(
31064 "rose_addr_t", "mappedActualVa", "= 0",
31065 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31066#endif // !DOCUMENTATION
31067
31068 DECLARE_OTHERS(AsmGenericSection);
31069#if defined(SgAsmGenericSection_OTHERS) || defined(DOCUMENTATION)
31070
31071 //----------------------- Boost serialization for SgAsmGenericSection -----------------------
31072#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
31073private:
31074 friend class boost::serialization::access;
31075
31076 template<class S>
31077 void serialize(S &s, const unsigned /*version*/) {
31078 debugSerializationBegin("SgAsmGenericSection");
31079 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
31080 s & BOOST_SERIALIZATION_NVP(p_file);
31081 s & BOOST_SERIALIZATION_NVP(p_header);
31082 s & BOOST_SERIALIZATION_NVP(p_size);
31083 s & BOOST_SERIALIZATION_NVP(p_offset);
31084 s & BOOST_SERIALIZATION_NVP(p_fileAlignment);
31085 s & BOOST_SERIALIZATION_NVP(p_data);
31086 s & BOOST_SERIALIZATION_NVP(p_purpose);
31087 s & BOOST_SERIALIZATION_NVP(p_synthesized);
31088 s & BOOST_SERIALIZATION_NVP(p_id);
31089 s & BOOST_SERIALIZATION_NVP(p_name);
31090 s & BOOST_SERIALIZATION_NVP(p_shortName);
31091 s & BOOST_SERIALIZATION_NVP(p_mappedPreferredRva);
31092 s & BOOST_SERIALIZATION_NVP(p_mappedSize);
31093 s & BOOST_SERIALIZATION_NVP(p_mappedAlignment);
31094 s & BOOST_SERIALIZATION_NVP(p_mappedReadPermission);
31095 s & BOOST_SERIALIZATION_NVP(p_mappedWritePermission);
31096 s & BOOST_SERIALIZATION_NVP(p_mappedExecutePermission);
31097 s & BOOST_SERIALIZATION_NVP(p_containsCode);
31098 s & BOOST_SERIALIZATION_NVP(p_mappedActualVa);
31099 debugSerializationEnd("SgAsmGenericSection");
31100 }
31101#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
31103 // Local types
31105public:
31117
31119 // Properties
31121public:
31122public:
31130public:
31138public:
31149 rose_addr_t get_size() const;
31150 virtual void set_size(rose_addr_t);
31152public:
31160 // Starting file offset of the section
31161
31162 rose_addr_t get_offset() const;
31163 virtual void set_offset(rose_addr_t);
31165public:
31171 rose_addr_t const& get_fileAlignment() const;
31172 void set_fileAlignment(rose_addr_t const&);
31175public:
31185public:
31193public:
31199 bool const& get_synthesized() const;
31200 void set_synthesized(bool const&);
31203public:
31209 int const& get_id() const;
31210 void set_id(int const&);
31213public:
31224public:
31232 void set_shortName(std::string const&);
31233 std::string get_shortName() const;
31235public:
31245 rose_addr_t const& get_mappedPreferredRva() const;
31246 virtual void set_mappedPreferredRva(rose_addr_t);
31248public:
31254 rose_addr_t const& get_mappedSize() const;
31255 virtual void set_mappedSize(rose_addr_t);
31257public:
31261 rose_addr_t const& get_mappedAlignment() const;
31262 void set_mappedAlignment(rose_addr_t const&);
31265public:
31269 bool const& get_mappedReadPermission() const;
31270 void set_mappedReadPermission(bool const&);
31273public:
31277 bool const& get_mappedWritePermission() const;
31278 void set_mappedWritePermission(bool const&);
31281public:
31285 bool const& get_mappedExecutePermission() const;
31289public:
31299 bool const& get_containsCode() const;
31300 void set_containsCode(bool const&);
31303public:
31317 rose_addr_t const& get_mappedActualVa() const;
31318 void set_mappedActualVa(rose_addr_t const&);
31321 // Non-property data members
31323private:
31324protected: // Allows local_data_pool to be initialized by subclasses. Note, destruction is problematic, freeing non-allocated ptr.
31325 // Set breakpoint in malloc_error_break to debug [Rasmussen, 2024.03.02]
31326 /* This is an optional local, writable pool for the p_data member. Normally a section will point into the pool
31327 * for its SgAsmGenericFile which is memory-mapped (read-only) from the actual file being parsed. The default
31328 * unparsing action is to write the original data back to the file. By allowing a section to allocate its own
31329 * pool for `data` we create a very easy way to get data into the unparsed file (the alternative is to derive
31330 * a new class and override the unparse() method). */
31331 unsigned char *local_data_pool;
31332
31334 // Functions
31336public:
31344
31346 static void dumpContainingSections(FILE*, const std::string &prefix, Rose::BinaryAnalysis::RelativeVirtualAddress,
31347 const SgAsmGenericSectionPtrList&);
31348
31354
31359
31361 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
31362
31364 virtual bool reallocate() { return false; }
31365
31369 virtual void unparse(std::ostream&) const;
31370
31372 void unparse(std::ostream&, const ExtentMap&) const;
31373
31375 void unparseHoles(std::ostream&) const;
31376
31382
31384 rose_addr_t get_endOffset() const;
31385
31392 void extend(rose_addr_t nbytes);
31393
31407 rose_addr_t write(std::ostream &f, rose_addr_t offset, size_t bufsize, const void *buf) const;
31408 rose_addr_t write(std::ostream &f, rose_addr_t offset, const std::string &str) const;
31409 rose_addr_t write(std::ostream &f, rose_addr_t offset, char c) const;
31410 rose_addr_t write(std::ostream &f, rose_addr_t offset, const SgFileContentList &buf) const;
31411 rose_addr_t write(std::ostream &f, rose_addr_t offset, const SgUnsignedCharList &buf) const;
31417 rose_addr_t writeUleb128(unsigned char*, rose_addr_t offset, uint64_t) const;
31418
31422 rose_addr_t writeSleb128(unsigned char*, rose_addr_t offset, int64_t) const;
31423
31431 size_t readContent(rose_addr_t abs_offset, void *dst_buf, rose_addr_t size, bool strict=true);
31432
31444 size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t start, void *dst_buf,
31445 rose_addr_t size, bool strict=true);
31447 void *dst_buf, rose_addr_t size, bool strict=true);
31456 size_t readContentLocal(rose_addr_t rel_offset, void *dst_buf, rose_addr_t size, bool strict=true);
31457
31464 std::string readContentString(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t va, bool strict=true);
31465
31473 std::string readContentString(rose_addr_t abs_offset, bool strict=true);
31475 bool strict=true);
31483 std::string readContentLocalString(rose_addr_t rel_offset, bool strict=true);
31484
31489 SgUnsignedCharList readContentLocalUcl(rose_addr_t rel_offset, rose_addr_t size);
31490
31496 int64_t readContentLocalSleb128(rose_addr_t *rel_offset, bool strict=true);
31497
31503 uint64_t readContentLocalUleb128(rose_addr_t *rel_offset, bool strict=true);
31504
31512 unsigned char *writableContent(size_t nbytes);
31513
31520
31527
31531 bool isMapped() const;
31532
31537
31542 rose_addr_t get_baseVa() const;
31543
31547 rose_addr_t get_mappedPreferredVa() const;
31548
31553 rose_addr_t get_vaOffset(rose_addr_t va) const;
31554
31559 rose_addr_t get_rvaOffset(rose_addr_t rva) const;
31560
31565
31571
31585 bool align();
31586
31587protected:
31588 virtual void destructorHelper() override;
31589
31591 // Deprecated 2023-11
31593public:
31594 rose_addr_t get_file_alignment() const ROSE_DEPRECATED("use get_fileAlignment");
31595 void set_file_alignment(rose_addr_t) ROSE_DEPRECATED("use set_fileAlignment");
31596 std::string get_short_name() const ROSE_DEPRECATED("use get_shortName");
31597 void set_short_name(const std::string&) ROSE_DEPRECATED("use set_shortName");
31598 rose_addr_t get_mapped_preferred_rva() const ROSE_DEPRECATED("use get_mappedPreferredRva");
31599 void set_mapped_preferred_rva(rose_addr_t) ROSE_DEPRECATED("use set_mappedPreferredRva");
31600 rose_addr_t get_mapped_size() const ROSE_DEPRECATED("use get_mappedSize");
31601 void set_mapped_size(rose_addr_t) ROSE_DEPRECATED("use set_mappedSize");
31602 rose_addr_t get_mapped_alignment() const ROSE_DEPRECATED("use get_mappedAlignment");
31603 void set_mapped_alignment(rose_addr_t) ROSE_DEPRECATED("use set_mappedAlignment");
31604 bool get_mapped_rperm() const ROSE_DEPRECATED("use get_mappedReadPermission");
31605 void set_mapped_rperm(bool) ROSE_DEPRECATED("use set_mappedReadPermission");
31606 bool get_mapped_wperm() const ROSE_DEPRECATED("use get_mappedWritePermission");
31607 void set_mapped_wperm(bool) ROSE_DEPRECATED("use set_mappedWritePermission");
31608 bool get_mapped_xperm() const ROSE_DEPRECATED("use get_mappedExecutePermission");
31609 void set_mapped_xperm(bool) ROSE_DEPRECATED("use set_mappedExecutePermission");
31610 bool get_contains_code() const ROSE_DEPRECATED("use get_containsCode");
31611 void set_contains_code(bool) ROSE_DEPRECATED("use set_containsCode");
31612 rose_addr_t get_mapped_actual_va() const ROSE_DEPRECATED("use get_mappedActualVa");
31613 void set_mapped_actual_va(rose_addr_t) ROSE_DEPRECATED("use set_mappedActualVa");
31614 static void dump_containing_sections(FILE*, const std::string&, Rose::BinaryAnalysis::RelativeVirtualAddress,
31615 const SgAsmGenericSectionPtrList&)
31616 ROSE_DEPRECATED("use dumpContainingSections");
31617 void grab_content() ROSE_DEPRECATED("use grabContent");
31618 void unparse_holes(std::ostream&) const ROSE_DEPRECATED("use unparseHoles");
31619 SgAsmGenericHeader *is_file_header() ROSE_DEPRECATED("use isFileHeader");
31620 rose_addr_t get_end_offset() const ROSE_DEPRECATED("use get_endOffset");
31621 rose_addr_t write_uleb128(unsigned char*, rose_addr_t, uint64_t) const ROSE_DEPRECATED("use writeUleb128");
31622 rose_addr_t write_sleb128(unsigned char*, rose_addr_t, int64_t) const ROSE_DEPRECATED("use writeSleb128");
31623 size_t read_content(rose_addr_t, void*, rose_addr_t, bool=true) ROSE_DEPRECATED("use readContent");
31624 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t, void*, rose_addr_t, bool=true)
31625 ROSE_DEPRECATED("use readContent");
31626 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, const Rose::BinaryAnalysis::RelativeVirtualAddress&, void*,
31627 rose_addr_t, bool=true)
31628 ROSE_DEPRECATED("use readContent");
31629 size_t read_content_local(rose_addr_t, void*, rose_addr_t, bool=true) ROSE_DEPRECATED("use readContentLocal");
31630 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, rose_addr_t, bool=true)
31631 ROSE_DEPRECATED("use readContentString");
31632 std::string read_content_str(rose_addr_t, bool=true) ROSE_DEPRECATED("use readContentString");
31633 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::RelativeVirtualAddress,
31634 bool=true)
31635 ROSE_DEPRECATED("use readContentString");
31636 std::string read_content_local_str(rose_addr_t, bool=true) ROSE_DEPRECATED("use readContentLocalString");
31637 SgUnsignedCharList read_content_local_ucl(rose_addr_t, rose_addr_t) ROSE_DEPRECATED("use readContentLocalUcl");
31638 int64_t read_content_local_sleb128(rose_addr_t*, bool=true) ROSE_DEPRECATED("use readContentLocalSleb128");
31639 uint64_t read_content_local_uleb128(rose_addr_t*, bool=true) ROSE_DEPRECATED("use readContentLocalUleb128");
31640 unsigned char *writable_content(size_t) ROSE_DEPRECATED("use writableContent");
31641 Rose::BinaryAnalysis::AddressIntervalSet get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
31642 Rose::BinaryAnalysis::AddressIntervalSet get_unreferenced_extents() const ROSE_DEPRECATED("use get_unreferencedExtents");
31643 bool is_mapped() const ROSE_DEPRECATED("use isMapped");
31644 void clear_mapped() ROSE_DEPRECATED("use clearMapped");
31645 rose_addr_t get_base_va() const ROSE_DEPRECATED("use get_baseVa");
31646 rose_addr_t get_mapped_preferred_va() const ROSE_DEPRECATED("use get_mappedPreferredVa");
31647 rose_addr_t get_va_offset(rose_addr_t) const ROSE_DEPRECATED("use get_vaOffset");
31648 rose_addr_t get_rva_offset(rose_addr_t) const ROSE_DEPRECATED("use get_rvaOffset");
31649 Extent get_file_extent() const ROSE_DEPRECATED("use get_fileExtent");
31650 Extent get_mapped_preferred_extent() const ROSE_DEPRECATED("use get_mappedPreferredExtent");
31651public:
31654
31655public:
31658
31659protected:
31667#endif // SgAsmGenericSection_OTHERS
31668#ifdef DOCUMENTATION
31669};
31670#endif // DOCUMENTATION
31671
31672
31674// SgAsmCilUint8Heap -- MACHINE GENERATED; DO NOT MODIFY --
31676
31677DECLARE_LEAF_CLASS(AsmCilUint8Heap);
31678IS_SERIALIZABLE(AsmCilUint8Heap);
31679
31680#ifndef DOCUMENTATION
31681AsmCilUint8Heap.useSmallHeader(true);
31682#endif // !DOCUMENTATION
31683
31684#ifdef DOCUMENTATION
31687#endif // DOCUMENTATION
31688
31689#ifndef DOCUMENTATION
31690 AsmCilUint8Heap.setDataPrototype(
31691 "std::vector<uint8_t>", "Stream", "",
31692 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31693#endif // !DOCUMENTATION
31694
31695 DECLARE_OTHERS(AsmCilUint8Heap);
31696#if defined(SgAsmCilUint8Heap_OTHERS) || defined(DOCUMENTATION)
31697
31698 //----------------------- Boost serialization for SgAsmCilUint8Heap -----------------------
31699#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
31700private:
31701 friend class boost::serialization::access;
31702
31703 template<class S>
31704 void serialize(S &s, const unsigned /*version*/) {
31705 debugSerializationBegin("SgAsmCilUint8Heap");
31706 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
31707 s & BOOST_SERIALIZATION_NVP(p_Stream);
31708 debugSerializationEnd("SgAsmCilUint8Heap");
31709 }
31710#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
31711
31712public:
31713 std::vector<uint8_t> const& get_Stream() const;
31714 std::vector<uint8_t>& get_Stream();
31715public:
31716 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
31717 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
31718 void dump(std::ostream& os) const override;
31719public:
31722
31723public:
31726
31727public:
31729 SgAsmCilUint8Heap(uint32_t const& Offset,
31730 uint32_t const& Size,
31731 std::string const& Name,
31732 uint32_t const& NamePadding);
31733
31734protected:
31742#endif // SgAsmCilUint8Heap_OTHERS
31743#ifdef DOCUMENTATION
31744};
31745#endif // DOCUMENTATION
31746
31747
31749// SgAsmCilUint32Heap -- MACHINE GENERATED; DO NOT MODIFY --
31751
31752DECLARE_LEAF_CLASS(AsmCilUint32Heap);
31753IS_SERIALIZABLE(AsmCilUint32Heap);
31754
31755#ifndef DOCUMENTATION
31756AsmCilUint32Heap.useSmallHeader(true);
31757#endif // !DOCUMENTATION
31758
31759#ifdef DOCUMENTATION
31762#endif // DOCUMENTATION
31763
31764#ifndef DOCUMENTATION
31765 AsmCilUint32Heap.setDataPrototype(
31766 "std::vector<uint32_t>", "Stream", "",
31767 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31768#endif // !DOCUMENTATION
31769
31770 DECLARE_OTHERS(AsmCilUint32Heap);
31771#if defined(SgAsmCilUint32Heap_OTHERS) || defined(DOCUMENTATION)
31772
31773 //----------------------- Boost serialization for SgAsmCilUint32Heap -----------------------
31774#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
31775private:
31776 friend class boost::serialization::access;
31777
31778 template<class S>
31779 void serialize(S &s, const unsigned /*version*/) {
31780 debugSerializationBegin("SgAsmCilUint32Heap");
31781 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
31782 s & BOOST_SERIALIZATION_NVP(p_Stream);
31783 debugSerializationEnd("SgAsmCilUint32Heap");
31784 }
31785#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
31786
31787public:
31788 std::vector<uint32_t> const& get_Stream() const;
31789 std::vector<uint32_t>& get_Stream();
31790public:
31791 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
31792 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
31793 void dump(std::ostream& os) const override;
31794public:
31797
31798public:
31801
31802public:
31804 SgAsmCilUint32Heap(uint32_t const& Offset,
31805 uint32_t const& Size,
31806 std::string const& Name,
31807 uint32_t const& NamePadding);
31808
31809protected:
31817#endif // SgAsmCilUint32Heap_OTHERS
31818#ifdef DOCUMENTATION
31819};
31820#endif // DOCUMENTATION
31821
31822
31824// SgAsmCilTypeSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
31826
31827DECLARE_LEAF_CLASS(AsmCilTypeSpecTable);
31828IS_SERIALIZABLE(AsmCilTypeSpecTable);
31829
31830#ifndef DOCUMENTATION
31831AsmCilTypeSpecTable.useSmallHeader(true);
31832#endif // !DOCUMENTATION
31833
31834#ifdef DOCUMENTATION
31837#endif // DOCUMENTATION
31838
31839#ifndef DOCUMENTATION
31840 AsmCilTypeSpecTable.setDataPrototype(
31841 "std::vector<SgAsmCilTypeSpec*>", "elements", "",
31842 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
31843#endif // !DOCUMENTATION
31844
31845 DECLARE_OTHERS(AsmCilTypeSpecTable);
31846#if defined(SgAsmCilTypeSpecTable_OTHERS) || defined(DOCUMENTATION)
31847
31848 //----------------------- Boost serialization for SgAsmCilTypeSpecTable -----------------------
31849#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
31850private:
31851 friend class boost::serialization::access;
31852
31853 template<class S>
31854 void serialize(S &s, const unsigned /*version*/) {
31855 debugSerializationBegin("SgAsmCilTypeSpecTable");
31856 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
31857 s & BOOST_SERIALIZATION_NVP(p_elements);
31858 debugSerializationEnd("SgAsmCilTypeSpecTable");
31859 }
31860#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
31861
31862public:
31863 std::vector<SgAsmCilTypeSpec*> const& get_elements() const;
31864 std::vector<SgAsmCilTypeSpec*>& get_elements();
31865public:
31867public:
31870
31871public:
31874
31875protected:
31883#endif // SgAsmCilTypeSpecTable_OTHERS
31884#ifdef DOCUMENTATION
31885};
31886#endif // DOCUMENTATION
31887
31888
31890// SgAsmCilTypeSpec -- MACHINE GENERATED; DO NOT MODIFY --
31892
31893DECLARE_LEAF_CLASS(AsmCilTypeSpec);
31894IS_SERIALIZABLE(AsmCilTypeSpec);
31895
31896#ifndef DOCUMENTATION
31897AsmCilTypeSpec.useSmallHeader(true);
31898#endif // !DOCUMENTATION
31899
31900#ifdef DOCUMENTATION
31903#endif // DOCUMENTATION
31904
31905#ifndef DOCUMENTATION
31906 AsmCilTypeSpec.setDataPrototype(
31907 "uint32_t", "Signature", "= 0",
31908 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31909#endif // !DOCUMENTATION
31910
31911 DECLARE_OTHERS(AsmCilTypeSpec);
31912#if defined(SgAsmCilTypeSpec_OTHERS) || defined(DOCUMENTATION)
31913
31914 //----------------------- Boost serialization for SgAsmCilTypeSpec -----------------------
31915#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
31916private:
31917 friend class boost::serialization::access;
31918
31919 template<class S>
31920 void serialize(S &s, const unsigned /*version*/) {
31921 debugSerializationBegin("SgAsmCilTypeSpec");
31922 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
31923 s & BOOST_SERIALIZATION_NVP(p_Signature);
31924 debugSerializationEnd("SgAsmCilTypeSpec");
31925 }
31926#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
31927
31928public:
31934 uint32_t const& get_Signature() const;
31935 void set_Signature(uint32_t const&);
31937public:
31938 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
31939 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
31940 void dump(std::ostream&) const;
31941
31942 const std::uint8_t* get_Signature_blob() const;
31943public:
31946
31947public:
31950
31951protected:
31959#endif // SgAsmCilTypeSpec_OTHERS
31960#ifdef DOCUMENTATION
31961};
31962#endif // DOCUMENTATION
31963
31964
31966// SgAsmCilTypeRefTable -- MACHINE GENERATED; DO NOT MODIFY --
31968
31969DECLARE_LEAF_CLASS(AsmCilTypeRefTable);
31970IS_SERIALIZABLE(AsmCilTypeRefTable);
31971
31972#ifndef DOCUMENTATION
31973AsmCilTypeRefTable.useSmallHeader(true);
31974#endif // !DOCUMENTATION
31975
31976#ifdef DOCUMENTATION
31979#endif // DOCUMENTATION
31980
31981#ifndef DOCUMENTATION
31982 AsmCilTypeRefTable.setDataPrototype(
31983 "std::vector<SgAsmCilTypeRef*>", "elements", "",
31984 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
31985#endif // !DOCUMENTATION
31986
31987 DECLARE_OTHERS(AsmCilTypeRefTable);
31988#if defined(SgAsmCilTypeRefTable_OTHERS) || defined(DOCUMENTATION)
31989
31990 //----------------------- Boost serialization for SgAsmCilTypeRefTable -----------------------
31991#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
31992private:
31993 friend class boost::serialization::access;
31994
31995 template<class S>
31996 void serialize(S &s, const unsigned /*version*/) {
31997 debugSerializationBegin("SgAsmCilTypeRefTable");
31998 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
31999 s & BOOST_SERIALIZATION_NVP(p_elements);
32000 debugSerializationEnd("SgAsmCilTypeRefTable");
32001 }
32002#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32003
32004public:
32005 std::vector<SgAsmCilTypeRef*> const& get_elements() const;
32006 std::vector<SgAsmCilTypeRef*>& get_elements();
32007public:
32009public:
32012
32013public:
32016
32017protected:
32025#endif // SgAsmCilTypeRefTable_OTHERS
32026#ifdef DOCUMENTATION
32027};
32028#endif // DOCUMENTATION
32029
32030
32032// SgAsmCilTypeRef -- MACHINE GENERATED; DO NOT MODIFY --
32034
32035DECLARE_LEAF_CLASS(AsmCilTypeRef);
32036IS_SERIALIZABLE(AsmCilTypeRef);
32037
32038#ifndef DOCUMENTATION
32039AsmCilTypeRef.useSmallHeader(true);
32040#endif // !DOCUMENTATION
32041
32042#ifdef DOCUMENTATION
32045#endif // DOCUMENTATION
32046
32047#ifndef DOCUMENTATION
32048 AsmCilTypeRef.setDataPrototype(
32049 "uint16_t", "ResolutionScope", "= 0",
32050 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32051#endif // !DOCUMENTATION
32052
32053#ifndef DOCUMENTATION
32054 AsmCilTypeRef.setDataPrototype(
32055 "uint32_t", "TypeName", "= 0",
32056 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32057#endif // !DOCUMENTATION
32058
32059#ifndef DOCUMENTATION
32060 AsmCilTypeRef.setDataPrototype(
32061 "uint32_t", "TypeNamespace", "= 0",
32062 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32063#endif // !DOCUMENTATION
32064
32065 DECLARE_OTHERS(AsmCilTypeRef);
32066#if defined(SgAsmCilTypeRef_OTHERS) || defined(DOCUMENTATION)
32067
32068 //----------------------- Boost serialization for SgAsmCilTypeRef -----------------------
32069#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32070private:
32071 friend class boost::serialization::access;
32072
32073 template<class S>
32074 void serialize(S &s, const unsigned /*version*/) {
32075 debugSerializationBegin("SgAsmCilTypeRef");
32076 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32077 s & BOOST_SERIALIZATION_NVP(p_ResolutionScope);
32078 s & BOOST_SERIALIZATION_NVP(p_TypeName);
32079 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
32080 debugSerializationEnd("SgAsmCilTypeRef");
32081 }
32082#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32083
32084public:
32090 uint16_t const& get_ResolutionScope() const;
32091 void set_ResolutionScope(uint16_t const&);
32094public:
32100 uint32_t const& get_TypeName() const;
32101 void set_TypeName(uint32_t const&);
32104public:
32110 uint32_t const& get_TypeNamespace() const;
32111 void set_TypeNamespace(uint32_t const&);
32113public:
32114 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32115 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32116 void dump(std::ostream&) const;
32117
32118 const SgAsmCilMetadata* get_ResolutionScope_object() const;
32119 const std::uint8_t* get_TypeName_string() const;
32120 const std::uint8_t* get_TypeNamespace_string() const;
32121public:
32124
32125public:
32128
32129protected:
32137#endif // SgAsmCilTypeRef_OTHERS
32138#ifdef DOCUMENTATION
32139};
32140#endif // DOCUMENTATION
32141
32142
32144// SgAsmCilTypeDefTable -- MACHINE GENERATED; DO NOT MODIFY --
32146
32147DECLARE_LEAF_CLASS(AsmCilTypeDefTable);
32148IS_SERIALIZABLE(AsmCilTypeDefTable);
32149
32150#ifndef DOCUMENTATION
32151AsmCilTypeDefTable.useSmallHeader(true);
32152#endif // !DOCUMENTATION
32153
32154#ifdef DOCUMENTATION
32157#endif // DOCUMENTATION
32158
32159#ifndef DOCUMENTATION
32160 AsmCilTypeDefTable.setDataPrototype(
32161 "std::vector<SgAsmCilTypeDef*>", "elements", "",
32162 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32163#endif // !DOCUMENTATION
32164
32165 DECLARE_OTHERS(AsmCilTypeDefTable);
32166#if defined(SgAsmCilTypeDefTable_OTHERS) || defined(DOCUMENTATION)
32167
32168 //----------------------- Boost serialization for SgAsmCilTypeDefTable -----------------------
32169#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32170private:
32171 friend class boost::serialization::access;
32172
32173 template<class S>
32174 void serialize(S &s, const unsigned /*version*/) {
32175 debugSerializationBegin("SgAsmCilTypeDefTable");
32176 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32177 s & BOOST_SERIALIZATION_NVP(p_elements);
32178 debugSerializationEnd("SgAsmCilTypeDefTable");
32179 }
32180#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32181
32182public:
32183 std::vector<SgAsmCilTypeDef*> const& get_elements() const;
32184 std::vector<SgAsmCilTypeDef*>& get_elements();
32185public:
32187public:
32190
32191public:
32194
32195protected:
32203#endif // SgAsmCilTypeDefTable_OTHERS
32204#ifdef DOCUMENTATION
32205};
32206#endif // DOCUMENTATION
32207
32208
32210// SgAsmCilTypeDef -- MACHINE GENERATED; DO NOT MODIFY --
32212
32213DECLARE_LEAF_CLASS(AsmCilTypeDef);
32214IS_SERIALIZABLE(AsmCilTypeDef);
32215
32216#ifndef DOCUMENTATION
32217AsmCilTypeDef.useSmallHeader(true);
32218#endif // !DOCUMENTATION
32219
32220#ifdef DOCUMENTATION
32223#endif // DOCUMENTATION
32224
32225#ifndef DOCUMENTATION
32226 AsmCilTypeDef.setDataPrototype(
32227 "uint32_t", "Flags", "= 0",
32228 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32229#endif // !DOCUMENTATION
32230
32231#ifndef DOCUMENTATION
32232 AsmCilTypeDef.setDataPrototype(
32233 "uint32_t", "TypeName", "= 0",
32234 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32235#endif // !DOCUMENTATION
32236
32237#ifndef DOCUMENTATION
32238 AsmCilTypeDef.setDataPrototype(
32239 "uint32_t", "TypeNamespace", "= 0",
32240 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32241#endif // !DOCUMENTATION
32242
32243#ifndef DOCUMENTATION
32244 AsmCilTypeDef.setDataPrototype(
32245 "uint32_t", "Extends", "= 0",
32246 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32247#endif // !DOCUMENTATION
32248
32249#ifndef DOCUMENTATION
32250 AsmCilTypeDef.setDataPrototype(
32251 "uint32_t", "FieldList", "= 0",
32252 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32253#endif // !DOCUMENTATION
32254
32255#ifndef DOCUMENTATION
32256 AsmCilTypeDef.setDataPrototype(
32257 "uint32_t", "MethodList", "= 0",
32258 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32259#endif // !DOCUMENTATION
32260
32261 DECLARE_OTHERS(AsmCilTypeDef);
32262#if defined(SgAsmCilTypeDef_OTHERS) || defined(DOCUMENTATION)
32263
32264 //----------------------- Boost serialization for SgAsmCilTypeDef -----------------------
32265#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32266private:
32267 friend class boost::serialization::access;
32268
32269 template<class S>
32270 void serialize(S &s, const unsigned /*version*/) {
32271 debugSerializationBegin("SgAsmCilTypeDef");
32272 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32273 s & BOOST_SERIALIZATION_NVP(p_Flags);
32274 s & BOOST_SERIALIZATION_NVP(p_TypeName);
32275 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
32276 s & BOOST_SERIALIZATION_NVP(p_Extends);
32277 s & BOOST_SERIALIZATION_NVP(p_FieldList);
32278 s & BOOST_SERIALIZATION_NVP(p_MethodList);
32279 debugSerializationEnd("SgAsmCilTypeDef");
32280 }
32281#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32282
32283public:
32289 uint32_t const& get_Flags() const;
32290 void set_Flags(uint32_t const&);
32293public:
32299 uint32_t const& get_TypeName() const;
32300 void set_TypeName(uint32_t const&);
32303public:
32309 uint32_t const& get_TypeNamespace() const;
32310 void set_TypeNamespace(uint32_t const&);
32313public:
32319 uint32_t const& get_Extends() const;
32320 void set_Extends(uint32_t const&);
32323public:
32329 uint32_t const& get_FieldList() const;
32330 void set_FieldList(uint32_t const&);
32333public:
32339 uint32_t const& get_MethodList() const;
32340 void set_MethodList(uint32_t const&);
32342public:
32343 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32344 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32345 void dump(std::ostream&) const;
32346
32347 const std::uint8_t* get_TypeName_string() const;
32348 const std::uint8_t* get_TypeNamespace_string() const;
32349 const SgAsmCilMetadata* get_Extends_object() const;
32350 const SgAsmCilMetadata* get_FieldList_object() const;
32351 const SgAsmCilMetadata* get_MethodList_object() const;
32352 const SgAsmCilMetadata* get_MethodList_object(const SgAsmCilMethodDef*) const;
32353public:
32356
32357public:
32360
32361protected:
32369#endif // SgAsmCilTypeDef_OTHERS
32370#ifdef DOCUMENTATION
32371};
32372#endif // DOCUMENTATION
32373
32374
32376// SgAsmCilStandAloneSigTable -- MACHINE GENERATED; DO NOT MODIFY --
32378
32379DECLARE_LEAF_CLASS(AsmCilStandAloneSigTable);
32380IS_SERIALIZABLE(AsmCilStandAloneSigTable);
32381
32382#ifndef DOCUMENTATION
32383AsmCilStandAloneSigTable.useSmallHeader(true);
32384#endif // !DOCUMENTATION
32385
32386#ifdef DOCUMENTATION
32389#endif // DOCUMENTATION
32390
32391#ifndef DOCUMENTATION
32392 AsmCilStandAloneSigTable.setDataPrototype(
32393 "std::vector<SgAsmCilStandAloneSig*>", "elements", "",
32394 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32395#endif // !DOCUMENTATION
32396
32397 DECLARE_OTHERS(AsmCilStandAloneSigTable);
32398#if defined(SgAsmCilStandAloneSigTable_OTHERS) || defined(DOCUMENTATION)
32399
32400 //----------------------- Boost serialization for SgAsmCilStandAloneSigTable -----------------------
32401#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32402private:
32403 friend class boost::serialization::access;
32404
32405 template<class S>
32406 void serialize(S &s, const unsigned /*version*/) {
32407 debugSerializationBegin("SgAsmCilStandAloneSigTable");
32408 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32409 s & BOOST_SERIALIZATION_NVP(p_elements);
32410 debugSerializationEnd("SgAsmCilStandAloneSigTable");
32411 }
32412#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32413
32414public:
32415 std::vector<SgAsmCilStandAloneSig*> const& get_elements() const;
32416 std::vector<SgAsmCilStandAloneSig*>& get_elements();
32417public:
32419public:
32422
32423public:
32426
32427protected:
32435#endif // SgAsmCilStandAloneSigTable_OTHERS
32436#ifdef DOCUMENTATION
32437};
32438#endif // DOCUMENTATION
32439
32440
32442// SgAsmCilStandAloneSig -- MACHINE GENERATED; DO NOT MODIFY --
32444
32445DECLARE_LEAF_CLASS(AsmCilStandAloneSig);
32446IS_SERIALIZABLE(AsmCilStandAloneSig);
32447
32448#ifndef DOCUMENTATION
32449AsmCilStandAloneSig.useSmallHeader(true);
32450#endif // !DOCUMENTATION
32451
32452#ifdef DOCUMENTATION
32455#endif // DOCUMENTATION
32456
32457#ifndef DOCUMENTATION
32458 AsmCilStandAloneSig.setDataPrototype(
32459 "uint32_t", "Signature", "= 0",
32460 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32461#endif // !DOCUMENTATION
32462
32463 DECLARE_OTHERS(AsmCilStandAloneSig);
32464#if defined(SgAsmCilStandAloneSig_OTHERS) || defined(DOCUMENTATION)
32465
32466 //----------------------- Boost serialization for SgAsmCilStandAloneSig -----------------------
32467#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32468private:
32469 friend class boost::serialization::access;
32470
32471 template<class S>
32472 void serialize(S &s, const unsigned /*version*/) {
32473 debugSerializationBegin("SgAsmCilStandAloneSig");
32474 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32475 s & BOOST_SERIALIZATION_NVP(p_Signature);
32476 debugSerializationEnd("SgAsmCilStandAloneSig");
32477 }
32478#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32479
32480public:
32486 uint32_t const& get_Signature() const;
32487 void set_Signature(uint32_t const&);
32489public:
32490 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32491 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32492 void dump(std::ostream&) const;
32493
32494 const std::uint8_t* get_Signature_blob() const;
32495public:
32498
32499public:
32502
32503protected:
32511#endif // SgAsmCilStandAloneSig_OTHERS
32512#ifdef DOCUMENTATION
32513};
32514#endif // DOCUMENTATION
32515
32516
32518// SgAsmCilPropertyTable -- MACHINE GENERATED; DO NOT MODIFY --
32520
32521DECLARE_LEAF_CLASS(AsmCilPropertyTable);
32522IS_SERIALIZABLE(AsmCilPropertyTable);
32523
32524#ifndef DOCUMENTATION
32525AsmCilPropertyTable.useSmallHeader(true);
32526#endif // !DOCUMENTATION
32527
32528#ifdef DOCUMENTATION
32531#endif // DOCUMENTATION
32532
32533#ifndef DOCUMENTATION
32534 AsmCilPropertyTable.setDataPrototype(
32535 "std::vector<SgAsmCilProperty*>", "elements", "",
32536 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32537#endif // !DOCUMENTATION
32538
32539 DECLARE_OTHERS(AsmCilPropertyTable);
32540#if defined(SgAsmCilPropertyTable_OTHERS) || defined(DOCUMENTATION)
32541
32542 //----------------------- Boost serialization for SgAsmCilPropertyTable -----------------------
32543#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32544private:
32545 friend class boost::serialization::access;
32546
32547 template<class S>
32548 void serialize(S &s, const unsigned /*version*/) {
32549 debugSerializationBegin("SgAsmCilPropertyTable");
32550 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32551 s & BOOST_SERIALIZATION_NVP(p_elements);
32552 debugSerializationEnd("SgAsmCilPropertyTable");
32553 }
32554#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32555
32556public:
32557 std::vector<SgAsmCilProperty*> const& get_elements() const;
32558 std::vector<SgAsmCilProperty*>& get_elements();
32559public:
32561public:
32564
32565public:
32568
32569protected:
32577#endif // SgAsmCilPropertyTable_OTHERS
32578#ifdef DOCUMENTATION
32579};
32580#endif // DOCUMENTATION
32581
32582
32584// SgAsmCilPropertyMapTable -- MACHINE GENERATED; DO NOT MODIFY --
32586
32587DECLARE_LEAF_CLASS(AsmCilPropertyMapTable);
32588IS_SERIALIZABLE(AsmCilPropertyMapTable);
32589
32590#ifndef DOCUMENTATION
32591AsmCilPropertyMapTable.useSmallHeader(true);
32592#endif // !DOCUMENTATION
32593
32594#ifdef DOCUMENTATION
32597#endif // DOCUMENTATION
32598
32599#ifndef DOCUMENTATION
32600 AsmCilPropertyMapTable.setDataPrototype(
32601 "std::vector<SgAsmCilPropertyMap*>", "elements", "",
32602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32603#endif // !DOCUMENTATION
32604
32605 DECLARE_OTHERS(AsmCilPropertyMapTable);
32606#if defined(SgAsmCilPropertyMapTable_OTHERS) || defined(DOCUMENTATION)
32607
32608 //----------------------- Boost serialization for SgAsmCilPropertyMapTable -----------------------
32609#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32610private:
32611 friend class boost::serialization::access;
32612
32613 template<class S>
32614 void serialize(S &s, const unsigned /*version*/) {
32615 debugSerializationBegin("SgAsmCilPropertyMapTable");
32616 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32617 s & BOOST_SERIALIZATION_NVP(p_elements);
32618 debugSerializationEnd("SgAsmCilPropertyMapTable");
32619 }
32620#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32621
32622public:
32623 std::vector<SgAsmCilPropertyMap*> const& get_elements() const;
32624 std::vector<SgAsmCilPropertyMap*>& get_elements();
32625public:
32627public:
32630
32631public:
32634
32635protected:
32643#endif // SgAsmCilPropertyMapTable_OTHERS
32644#ifdef DOCUMENTATION
32645};
32646#endif // DOCUMENTATION
32647
32648
32650// SgAsmCilPropertyMap -- MACHINE GENERATED; DO NOT MODIFY --
32652
32653DECLARE_LEAF_CLASS(AsmCilPropertyMap);
32654IS_SERIALIZABLE(AsmCilPropertyMap);
32655
32656#ifndef DOCUMENTATION
32657AsmCilPropertyMap.useSmallHeader(true);
32658#endif // !DOCUMENTATION
32659
32660#ifdef DOCUMENTATION
32663#endif // DOCUMENTATION
32664
32665#ifndef DOCUMENTATION
32666 AsmCilPropertyMap.setDataPrototype(
32667 "uint32_t", "Parent", "= 0",
32668 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32669#endif // !DOCUMENTATION
32670
32671#ifndef DOCUMENTATION
32672 AsmCilPropertyMap.setDataPrototype(
32673 "uint32_t", "PropertyList", "= 0",
32674 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32675#endif // !DOCUMENTATION
32676
32677 DECLARE_OTHERS(AsmCilPropertyMap);
32678#if defined(SgAsmCilPropertyMap_OTHERS) || defined(DOCUMENTATION)
32679
32680 //----------------------- Boost serialization for SgAsmCilPropertyMap -----------------------
32681#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32682private:
32683 friend class boost::serialization::access;
32684
32685 template<class S>
32686 void serialize(S &s, const unsigned /*version*/) {
32687 debugSerializationBegin("SgAsmCilPropertyMap");
32688 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32689 s & BOOST_SERIALIZATION_NVP(p_Parent);
32690 s & BOOST_SERIALIZATION_NVP(p_PropertyList);
32691 debugSerializationEnd("SgAsmCilPropertyMap");
32692 }
32693#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32694
32695public:
32701 uint32_t const& get_Parent() const;
32702 void set_Parent(uint32_t const&);
32705public:
32711 uint32_t const& get_PropertyList() const;
32712 void set_PropertyList(uint32_t const&);
32714public:
32715 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32716 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32717 void dump(std::ostream&) const;
32718
32719 const SgAsmCilMetadata* get_Parent_object() const;
32720 const SgAsmCilMetadata* get_PropertyList_object() const;
32721public:
32724
32725public:
32728
32729protected:
32737#endif // SgAsmCilPropertyMap_OTHERS
32738#ifdef DOCUMENTATION
32739};
32740#endif // DOCUMENTATION
32741
32742
32744// SgAsmCilProperty -- MACHINE GENERATED; DO NOT MODIFY --
32746
32747DECLARE_LEAF_CLASS(AsmCilProperty);
32748IS_SERIALIZABLE(AsmCilProperty);
32749
32750#ifndef DOCUMENTATION
32751AsmCilProperty.useSmallHeader(true);
32752#endif // !DOCUMENTATION
32753
32754#ifdef DOCUMENTATION
32757#endif // DOCUMENTATION
32758
32759#ifndef DOCUMENTATION
32760 AsmCilProperty.setDataPrototype(
32761 "uint16_t", "Flags", "= 0",
32762 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32763#endif // !DOCUMENTATION
32764
32765#ifndef DOCUMENTATION
32766 AsmCilProperty.setDataPrototype(
32767 "uint32_t", "Name", "= 0",
32768 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32769#endif // !DOCUMENTATION
32770
32771#ifndef DOCUMENTATION
32772 AsmCilProperty.setDataPrototype(
32773 "uint32_t", "Type", "= 0",
32774 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32775#endif // !DOCUMENTATION
32776
32777 DECLARE_OTHERS(AsmCilProperty);
32778#if defined(SgAsmCilProperty_OTHERS) || defined(DOCUMENTATION)
32779
32780 //----------------------- Boost serialization for SgAsmCilProperty -----------------------
32781#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32782private:
32783 friend class boost::serialization::access;
32784
32785 template<class S>
32786 void serialize(S &s, const unsigned /*version*/) {
32787 debugSerializationBegin("SgAsmCilProperty");
32788 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32789 s & BOOST_SERIALIZATION_NVP(p_Flags);
32790 s & BOOST_SERIALIZATION_NVP(p_Name);
32791 s & BOOST_SERIALIZATION_NVP(p_Type);
32792 debugSerializationEnd("SgAsmCilProperty");
32793 }
32794#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32795
32796public:
32802 uint16_t const& get_Flags() const;
32803 void set_Flags(uint16_t const&);
32806public:
32812 uint32_t const& get_Name() const;
32813 void set_Name(uint32_t const&);
32816public:
32822 uint32_t const& get_Type() const;
32823 void set_Type(uint32_t const&);
32825public:
32826 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32827 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32828 void dump(std::ostream&) const;
32829
32830 const std::uint8_t* get_Name_string() const;
32831 const std::uint8_t* get_Type_blob() const;
32832public:
32835
32836public:
32839
32840protected:
32848#endif // SgAsmCilProperty_OTHERS
32849#ifdef DOCUMENTATION
32850};
32851#endif // DOCUMENTATION
32852
32853
32855// SgAsmCilParamTable -- MACHINE GENERATED; DO NOT MODIFY --
32857
32858DECLARE_LEAF_CLASS(AsmCilParamTable);
32859IS_SERIALIZABLE(AsmCilParamTable);
32860
32861#ifndef DOCUMENTATION
32862AsmCilParamTable.useSmallHeader(true);
32863#endif // !DOCUMENTATION
32864
32865#ifdef DOCUMENTATION
32868#endif // DOCUMENTATION
32869
32870#ifndef DOCUMENTATION
32871 AsmCilParamTable.setDataPrototype(
32872 "std::vector<SgAsmCilParam*>", "elements", "",
32873 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32874#endif // !DOCUMENTATION
32875
32876 DECLARE_OTHERS(AsmCilParamTable);
32877#if defined(SgAsmCilParamTable_OTHERS) || defined(DOCUMENTATION)
32878
32879 //----------------------- Boost serialization for SgAsmCilParamTable -----------------------
32880#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32881private:
32882 friend class boost::serialization::access;
32883
32884 template<class S>
32885 void serialize(S &s, const unsigned /*version*/) {
32886 debugSerializationBegin("SgAsmCilParamTable");
32887 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32888 s & BOOST_SERIALIZATION_NVP(p_elements);
32889 debugSerializationEnd("SgAsmCilParamTable");
32890 }
32891#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32892
32893public:
32894 std::vector<SgAsmCilParam*> const& get_elements() const;
32895 std::vector<SgAsmCilParam*>& get_elements();
32896public:
32898public:
32901
32902public:
32905
32906protected:
32914#endif // SgAsmCilParamTable_OTHERS
32915#ifdef DOCUMENTATION
32916};
32917#endif // DOCUMENTATION
32918
32919
32921// SgAsmCilParam -- MACHINE GENERATED; DO NOT MODIFY --
32923
32924DECLARE_LEAF_CLASS(AsmCilParam);
32925IS_SERIALIZABLE(AsmCilParam);
32926
32927#ifndef DOCUMENTATION
32928AsmCilParam.useSmallHeader(true);
32929#endif // !DOCUMENTATION
32930
32931#ifdef DOCUMENTATION
32934#endif // DOCUMENTATION
32935
32936#ifndef DOCUMENTATION
32937 AsmCilParam.setDataPrototype(
32938 "uint16_t", "Flags", "= 0",
32939 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32940#endif // !DOCUMENTATION
32941
32942#ifndef DOCUMENTATION
32943 AsmCilParam.setDataPrototype(
32944 "uint16_t", "Sequence", "= 0",
32945 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32946#endif // !DOCUMENTATION
32947
32948#ifndef DOCUMENTATION
32949 AsmCilParam.setDataPrototype(
32950 "uint32_t", "Name", "= 0",
32951 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32952#endif // !DOCUMENTATION
32953
32954 DECLARE_OTHERS(AsmCilParam);
32955#if defined(SgAsmCilParam_OTHERS) || defined(DOCUMENTATION)
32956
32957 //----------------------- Boost serialization for SgAsmCilParam -----------------------
32958#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
32959private:
32960 friend class boost::serialization::access;
32961
32962 template<class S>
32963 void serialize(S &s, const unsigned /*version*/) {
32964 debugSerializationBegin("SgAsmCilParam");
32965 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32966 s & BOOST_SERIALIZATION_NVP(p_Flags);
32967 s & BOOST_SERIALIZATION_NVP(p_Sequence);
32968 s & BOOST_SERIALIZATION_NVP(p_Name);
32969 debugSerializationEnd("SgAsmCilParam");
32970 }
32971#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
32972
32973public:
32979 uint16_t const& get_Flags() const;
32980 void set_Flags(uint16_t const&);
32983public:
32989 uint16_t const& get_Sequence() const;
32990 void set_Sequence(uint16_t const&);
32993public:
32999 uint32_t const& get_Name() const;
33000 void set_Name(uint32_t const&);
33002public:
33003 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33004 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33005 void dump(std::ostream&) const;
33006
33007 const std::uint8_t* get_Name_blob() const;
33008public:
33011
33012public:
33015
33016protected:
33024#endif // SgAsmCilParam_OTHERS
33025#ifdef DOCUMENTATION
33026};
33027#endif // DOCUMENTATION
33028
33029
33031// SgAsmCilNestedClassTable -- MACHINE GENERATED; DO NOT MODIFY --
33033
33034DECLARE_LEAF_CLASS(AsmCilNestedClassTable);
33035IS_SERIALIZABLE(AsmCilNestedClassTable);
33036
33037#ifndef DOCUMENTATION
33038AsmCilNestedClassTable.useSmallHeader(true);
33039#endif // !DOCUMENTATION
33040
33041#ifdef DOCUMENTATION
33044#endif // DOCUMENTATION
33045
33046#ifndef DOCUMENTATION
33047 AsmCilNestedClassTable.setDataPrototype(
33048 "std::vector<SgAsmCilNestedClass*>", "elements", "",
33049 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33050#endif // !DOCUMENTATION
33051
33052 DECLARE_OTHERS(AsmCilNestedClassTable);
33053#if defined(SgAsmCilNestedClassTable_OTHERS) || defined(DOCUMENTATION)
33054
33055 //----------------------- Boost serialization for SgAsmCilNestedClassTable -----------------------
33056#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33057private:
33058 friend class boost::serialization::access;
33059
33060 template<class S>
33061 void serialize(S &s, const unsigned /*version*/) {
33062 debugSerializationBegin("SgAsmCilNestedClassTable");
33063 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33064 s & BOOST_SERIALIZATION_NVP(p_elements);
33065 debugSerializationEnd("SgAsmCilNestedClassTable");
33066 }
33067#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33068
33069public:
33070 std::vector<SgAsmCilNestedClass*> const& get_elements() const;
33071 std::vector<SgAsmCilNestedClass*>& get_elements();
33072public:
33074public:
33077
33078public:
33081
33082protected:
33090#endif // SgAsmCilNestedClassTable_OTHERS
33091#ifdef DOCUMENTATION
33092};
33093#endif // DOCUMENTATION
33094
33095
33097// SgAsmCilNestedClass -- MACHINE GENERATED; DO NOT MODIFY --
33099
33100DECLARE_LEAF_CLASS(AsmCilNestedClass);
33101IS_SERIALIZABLE(AsmCilNestedClass);
33102
33103#ifndef DOCUMENTATION
33104AsmCilNestedClass.useSmallHeader(true);
33105#endif // !DOCUMENTATION
33106
33107#ifdef DOCUMENTATION
33110#endif // DOCUMENTATION
33111
33112#ifndef DOCUMENTATION
33113 AsmCilNestedClass.setDataPrototype(
33114 "uint32_t", "NestedClass", "= 0",
33115 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33116#endif // !DOCUMENTATION
33117
33118#ifndef DOCUMENTATION
33119 AsmCilNestedClass.setDataPrototype(
33120 "uint32_t", "EnclosingClass", "= 0",
33121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33122#endif // !DOCUMENTATION
33123
33124 DECLARE_OTHERS(AsmCilNestedClass);
33125#if defined(SgAsmCilNestedClass_OTHERS) || defined(DOCUMENTATION)
33126
33127 //----------------------- Boost serialization for SgAsmCilNestedClass -----------------------
33128#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33129private:
33130 friend class boost::serialization::access;
33131
33132 template<class S>
33133 void serialize(S &s, const unsigned /*version*/) {
33134 debugSerializationBegin("SgAsmCilNestedClass");
33135 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33136 s & BOOST_SERIALIZATION_NVP(p_NestedClass);
33137 s & BOOST_SERIALIZATION_NVP(p_EnclosingClass);
33138 debugSerializationEnd("SgAsmCilNestedClass");
33139 }
33140#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33141
33142public:
33148 uint32_t const& get_NestedClass() const;
33149 void set_NestedClass(uint32_t const&);
33152public:
33158 uint32_t const& get_EnclosingClass() const;
33159 void set_EnclosingClass(uint32_t const&);
33161public:
33162 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33163 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33164 void dump(std::ostream&) const;
33165
33166 const SgAsmCilMetadata* get_NestedClass_object() const;
33167 const SgAsmCilMetadata* get_EnclosingClass_object() const;
33168public:
33171
33172public:
33175
33176protected:
33184#endif // SgAsmCilNestedClass_OTHERS
33185#ifdef DOCUMENTATION
33186};
33187#endif // DOCUMENTATION
33188
33189
33191// SgAsmCilModuleTable -- MACHINE GENERATED; DO NOT MODIFY --
33193
33194DECLARE_LEAF_CLASS(AsmCilModuleTable);
33195IS_SERIALIZABLE(AsmCilModuleTable);
33196
33197#ifndef DOCUMENTATION
33198AsmCilModuleTable.useSmallHeader(true);
33199#endif // !DOCUMENTATION
33200
33201#ifdef DOCUMENTATION
33204#endif // DOCUMENTATION
33205
33206#ifndef DOCUMENTATION
33207 AsmCilModuleTable.setDataPrototype(
33208 "std::vector<SgAsmCilModule*>", "elements", "",
33209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33210#endif // !DOCUMENTATION
33211
33212 DECLARE_OTHERS(AsmCilModuleTable);
33213#if defined(SgAsmCilModuleTable_OTHERS) || defined(DOCUMENTATION)
33214
33215 //----------------------- Boost serialization for SgAsmCilModuleTable -----------------------
33216#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33217private:
33218 friend class boost::serialization::access;
33219
33220 template<class S>
33221 void serialize(S &s, const unsigned /*version*/) {
33222 debugSerializationBegin("SgAsmCilModuleTable");
33223 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33224 s & BOOST_SERIALIZATION_NVP(p_elements);
33225 debugSerializationEnd("SgAsmCilModuleTable");
33226 }
33227#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33228
33229public:
33230 std::vector<SgAsmCilModule*> const& get_elements() const;
33231 std::vector<SgAsmCilModule*>& get_elements();
33232public:
33234public:
33237
33238public:
33241
33242protected:
33250#endif // SgAsmCilModuleTable_OTHERS
33251#ifdef DOCUMENTATION
33252};
33253#endif // DOCUMENTATION
33254
33255
33257// SgAsmCilModuleRefTable -- MACHINE GENERATED; DO NOT MODIFY --
33259
33260DECLARE_LEAF_CLASS(AsmCilModuleRefTable);
33261IS_SERIALIZABLE(AsmCilModuleRefTable);
33262
33263#ifndef DOCUMENTATION
33264AsmCilModuleRefTable.useSmallHeader(true);
33265#endif // !DOCUMENTATION
33266
33267#ifdef DOCUMENTATION
33270#endif // DOCUMENTATION
33271
33272#ifndef DOCUMENTATION
33273 AsmCilModuleRefTable.setDataPrototype(
33274 "std::vector<SgAsmCilModuleRef*>", "elements", "",
33275 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33276#endif // !DOCUMENTATION
33277
33278 DECLARE_OTHERS(AsmCilModuleRefTable);
33279#if defined(SgAsmCilModuleRefTable_OTHERS) || defined(DOCUMENTATION)
33280
33281 //----------------------- Boost serialization for SgAsmCilModuleRefTable -----------------------
33282#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33283private:
33284 friend class boost::serialization::access;
33285
33286 template<class S>
33287 void serialize(S &s, const unsigned /*version*/) {
33288 debugSerializationBegin("SgAsmCilModuleRefTable");
33289 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33290 s & BOOST_SERIALIZATION_NVP(p_elements);
33291 debugSerializationEnd("SgAsmCilModuleRefTable");
33292 }
33293#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33294
33295public:
33296 std::vector<SgAsmCilModuleRef*> const& get_elements() const;
33297 std::vector<SgAsmCilModuleRef*>& get_elements();
33298public:
33300public:
33303
33304public:
33307
33308protected:
33316#endif // SgAsmCilModuleRefTable_OTHERS
33317#ifdef DOCUMENTATION
33318};
33319#endif // DOCUMENTATION
33320
33321
33323// SgAsmCilModuleRef -- MACHINE GENERATED; DO NOT MODIFY --
33325
33326DECLARE_LEAF_CLASS(AsmCilModuleRef);
33327IS_SERIALIZABLE(AsmCilModuleRef);
33328
33329#ifndef DOCUMENTATION
33330AsmCilModuleRef.useSmallHeader(true);
33331#endif // !DOCUMENTATION
33332
33333#ifdef DOCUMENTATION
33336#endif // DOCUMENTATION
33337
33338#ifndef DOCUMENTATION
33339 AsmCilModuleRef.setDataPrototype(
33340 "uint32_t", "Name", "= 0",
33341 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33342#endif // !DOCUMENTATION
33343
33344 DECLARE_OTHERS(AsmCilModuleRef);
33345#if defined(SgAsmCilModuleRef_OTHERS) || defined(DOCUMENTATION)
33346
33347 //----------------------- Boost serialization for SgAsmCilModuleRef -----------------------
33348#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33349private:
33350 friend class boost::serialization::access;
33351
33352 template<class S>
33353 void serialize(S &s, const unsigned /*version*/) {
33354 debugSerializationBegin("SgAsmCilModuleRef");
33355 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33356 s & BOOST_SERIALIZATION_NVP(p_Name);
33357 debugSerializationEnd("SgAsmCilModuleRef");
33358 }
33359#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33360
33361public:
33367 uint32_t const& get_Name() const;
33368 void set_Name(uint32_t const&);
33370public:
33371 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33372 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33373 void dump(std::ostream&) const;
33374
33375 const std::uint8_t* get_Name_string() const;
33376public:
33379
33380public:
33383
33384protected:
33392#endif // SgAsmCilModuleRef_OTHERS
33393#ifdef DOCUMENTATION
33394};
33395#endif // DOCUMENTATION
33396
33397
33399// SgAsmCilModule -- MACHINE GENERATED; DO NOT MODIFY --
33401
33402DECLARE_LEAF_CLASS(AsmCilModule);
33403IS_SERIALIZABLE(AsmCilModule);
33404
33405#ifndef DOCUMENTATION
33406AsmCilModule.useSmallHeader(true);
33407#endif // !DOCUMENTATION
33408
33409#ifdef DOCUMENTATION
33412#endif // DOCUMENTATION
33413
33414#ifndef DOCUMENTATION
33415 AsmCilModule.setDataPrototype(
33416 "uint16_t", "Generation", "= 0",
33417 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33418#endif // !DOCUMENTATION
33419
33420#ifndef DOCUMENTATION
33421 AsmCilModule.setDataPrototype(
33422 "uint32_t", "Name", "= 0",
33423 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33424#endif // !DOCUMENTATION
33425
33426#ifndef DOCUMENTATION
33427 AsmCilModule.setDataPrototype(
33428 "uint32_t", "Mvid", "= 0",
33429 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33430#endif // !DOCUMENTATION
33431
33432#ifndef DOCUMENTATION
33433 AsmCilModule.setDataPrototype(
33434 "uint32_t", "Encld", "= 0",
33435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33436#endif // !DOCUMENTATION
33437
33438#ifndef DOCUMENTATION
33439 AsmCilModule.setDataPrototype(
33440 "uint32_t", "EncBaseId", "= 0",
33441 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33442#endif // !DOCUMENTATION
33443
33444 DECLARE_OTHERS(AsmCilModule);
33445#if defined(SgAsmCilModule_OTHERS) || defined(DOCUMENTATION)
33446
33447 //----------------------- Boost serialization for SgAsmCilModule -----------------------
33448#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33449private:
33450 friend class boost::serialization::access;
33451
33452 template<class S>
33453 void serialize(S &s, const unsigned /*version*/) {
33454 debugSerializationBegin("SgAsmCilModule");
33455 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33456 s & BOOST_SERIALIZATION_NVP(p_Generation);
33457 s & BOOST_SERIALIZATION_NVP(p_Name);
33458 s & BOOST_SERIALIZATION_NVP(p_Mvid);
33459 s & BOOST_SERIALIZATION_NVP(p_Encld);
33460 s & BOOST_SERIALIZATION_NVP(p_EncBaseId);
33461 debugSerializationEnd("SgAsmCilModule");
33462 }
33463#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33464
33465public:
33471 uint16_t const& get_Generation() const;
33472 void set_Generation(uint16_t const&);
33475public:
33481 uint32_t const& get_Name() const;
33482 void set_Name(uint32_t const&);
33485public:
33491 uint32_t const& get_Mvid() const;
33492 void set_Mvid(uint32_t const&);
33495public:
33501 uint32_t const& get_Encld() const;
33502 void set_Encld(uint32_t const&);
33505public:
33511 uint32_t const& get_EncBaseId() const;
33512 void set_EncBaseId(uint32_t const&);
33514public:
33515 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33516 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33517 void dump(std::ostream&) const;
33518
33519 const std::uint8_t* get_Name_string() const;
33520 const std::uint32_t* get_Mvid_guid() const;
33521 const std::uint32_t* get_Encld_guid() const;
33522 const std::uint32_t* get_EncBaseId_guid() const;
33523public:
33526
33527public:
33530
33531protected:
33539#endif // SgAsmCilModule_OTHERS
33540#ifdef DOCUMENTATION
33541};
33542#endif // DOCUMENTATION
33543
33544
33546// SgAsmCilMethodSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
33548
33549DECLARE_LEAF_CLASS(AsmCilMethodSpecTable);
33550IS_SERIALIZABLE(AsmCilMethodSpecTable);
33551
33552#ifndef DOCUMENTATION
33553AsmCilMethodSpecTable.useSmallHeader(true);
33554#endif // !DOCUMENTATION
33555
33556#ifdef DOCUMENTATION
33559#endif // DOCUMENTATION
33560
33561#ifndef DOCUMENTATION
33562 AsmCilMethodSpecTable.setDataPrototype(
33563 "std::vector<SgAsmCilMethodSpec*>", "elements", "",
33564 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33565#endif // !DOCUMENTATION
33566
33567 DECLARE_OTHERS(AsmCilMethodSpecTable);
33568#if defined(SgAsmCilMethodSpecTable_OTHERS) || defined(DOCUMENTATION)
33569
33570 //----------------------- Boost serialization for SgAsmCilMethodSpecTable -----------------------
33571#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33572private:
33573 friend class boost::serialization::access;
33574
33575 template<class S>
33576 void serialize(S &s, const unsigned /*version*/) {
33577 debugSerializationBegin("SgAsmCilMethodSpecTable");
33578 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33579 s & BOOST_SERIALIZATION_NVP(p_elements);
33580 debugSerializationEnd("SgAsmCilMethodSpecTable");
33581 }
33582#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33583
33584public:
33585 std::vector<SgAsmCilMethodSpec*> const& get_elements() const;
33586 std::vector<SgAsmCilMethodSpec*>& get_elements();
33587public:
33589public:
33592
33593public:
33596
33597protected:
33605#endif // SgAsmCilMethodSpecTable_OTHERS
33606#ifdef DOCUMENTATION
33607};
33608#endif // DOCUMENTATION
33609
33610
33612// SgAsmCilMethodSpec -- MACHINE GENERATED; DO NOT MODIFY --
33614
33615DECLARE_LEAF_CLASS(AsmCilMethodSpec);
33616IS_SERIALIZABLE(AsmCilMethodSpec);
33617
33618#ifndef DOCUMENTATION
33619AsmCilMethodSpec.useSmallHeader(true);
33620#endif // !DOCUMENTATION
33621
33622#ifdef DOCUMENTATION
33625#endif // DOCUMENTATION
33626
33627#ifndef DOCUMENTATION
33628 AsmCilMethodSpec.setDataPrototype(
33629 "uint32_t", "Method", "= 0",
33630 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33631#endif // !DOCUMENTATION
33632
33633#ifndef DOCUMENTATION
33634 AsmCilMethodSpec.setDataPrototype(
33635 "uint32_t", "Instantiation", "= 0",
33636 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33637#endif // !DOCUMENTATION
33638
33639 DECLARE_OTHERS(AsmCilMethodSpec);
33640#if defined(SgAsmCilMethodSpec_OTHERS) || defined(DOCUMENTATION)
33641
33642 //----------------------- Boost serialization for SgAsmCilMethodSpec -----------------------
33643#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33644private:
33645 friend class boost::serialization::access;
33646
33647 template<class S>
33648 void serialize(S &s, const unsigned /*version*/) {
33649 debugSerializationBegin("SgAsmCilMethodSpec");
33650 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33651 s & BOOST_SERIALIZATION_NVP(p_Method);
33652 s & BOOST_SERIALIZATION_NVP(p_Instantiation);
33653 debugSerializationEnd("SgAsmCilMethodSpec");
33654 }
33655#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33656
33657public:
33663 uint32_t const& get_Method() const;
33664 void set_Method(uint32_t const&);
33667public:
33673 uint32_t const& get_Instantiation() const;
33674 void set_Instantiation(uint32_t const&);
33676public:
33677 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33678 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33679 void dump(std::ostream&) const;
33680
33681 const SgAsmCilMetadata* get_Method_object() const;
33682 const std::uint8_t* get_Instantiation_blob() const;
33683public:
33686
33687public:
33690
33691protected:
33699#endif // SgAsmCilMethodSpec_OTHERS
33700#ifdef DOCUMENTATION
33701};
33702#endif // DOCUMENTATION
33703
33704
33706// SgAsmCilMethodSemanticsTable -- MACHINE GENERATED; DO NOT MODIFY --
33708
33709DECLARE_LEAF_CLASS(AsmCilMethodSemanticsTable);
33710IS_SERIALIZABLE(AsmCilMethodSemanticsTable);
33711
33712#ifndef DOCUMENTATION
33713AsmCilMethodSemanticsTable.useSmallHeader(true);
33714#endif // !DOCUMENTATION
33715
33716#ifdef DOCUMENTATION
33719#endif // DOCUMENTATION
33720
33721#ifndef DOCUMENTATION
33722 AsmCilMethodSemanticsTable.setDataPrototype(
33723 "std::vector<SgAsmCilMethodSemantics*>", "elements", "",
33724 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33725#endif // !DOCUMENTATION
33726
33727 DECLARE_OTHERS(AsmCilMethodSemanticsTable);
33728#if defined(SgAsmCilMethodSemanticsTable_OTHERS) || defined(DOCUMENTATION)
33729
33730 //----------------------- Boost serialization for SgAsmCilMethodSemanticsTable -----------------------
33731#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33732private:
33733 friend class boost::serialization::access;
33734
33735 template<class S>
33736 void serialize(S &s, const unsigned /*version*/) {
33737 debugSerializationBegin("SgAsmCilMethodSemanticsTable");
33738 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33739 s & BOOST_SERIALIZATION_NVP(p_elements);
33740 debugSerializationEnd("SgAsmCilMethodSemanticsTable");
33741 }
33742#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33743
33744public:
33745 std::vector<SgAsmCilMethodSemantics*> const& get_elements() const;
33746 std::vector<SgAsmCilMethodSemantics*>& get_elements();
33747public:
33749public:
33752
33753public:
33756
33757protected:
33765#endif // SgAsmCilMethodSemanticsTable_OTHERS
33766#ifdef DOCUMENTATION
33767};
33768#endif // DOCUMENTATION
33769
33770
33772// SgAsmCilMethodSemantics -- MACHINE GENERATED; DO NOT MODIFY --
33774
33775DECLARE_LEAF_CLASS(AsmCilMethodSemantics);
33776IS_SERIALIZABLE(AsmCilMethodSemantics);
33777
33778#ifndef DOCUMENTATION
33779AsmCilMethodSemantics.useSmallHeader(true);
33780#endif // !DOCUMENTATION
33781
33782#ifdef DOCUMENTATION
33785#endif // DOCUMENTATION
33786
33787#ifndef DOCUMENTATION
33788 AsmCilMethodSemantics.setDataPrototype(
33789 "uint16_t", "Semantics", "= 0",
33790 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33791#endif // !DOCUMENTATION
33792
33793#ifndef DOCUMENTATION
33794 AsmCilMethodSemantics.setDataPrototype(
33795 "uint32_t", "Method", "= 0",
33796 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33797#endif // !DOCUMENTATION
33798
33799#ifndef DOCUMENTATION
33800 AsmCilMethodSemantics.setDataPrototype(
33801 "uint32_t", "Association", "= 0",
33802 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33803#endif // !DOCUMENTATION
33804
33805 DECLARE_OTHERS(AsmCilMethodSemantics);
33806#if defined(SgAsmCilMethodSemantics_OTHERS) || defined(DOCUMENTATION)
33807
33808 //----------------------- Boost serialization for SgAsmCilMethodSemantics -----------------------
33809#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33810private:
33811 friend class boost::serialization::access;
33812
33813 template<class S>
33814 void serialize(S &s, const unsigned /*version*/) {
33815 debugSerializationBegin("SgAsmCilMethodSemantics");
33816 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33817 s & BOOST_SERIALIZATION_NVP(p_Semantics);
33818 s & BOOST_SERIALIZATION_NVP(p_Method);
33819 s & BOOST_SERIALIZATION_NVP(p_Association);
33820 debugSerializationEnd("SgAsmCilMethodSemantics");
33821 }
33822#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33823
33824public:
33830 uint16_t const& get_Semantics() const;
33831 void set_Semantics(uint16_t const&);
33834public:
33840 uint32_t const& get_Method() const;
33841 void set_Method(uint32_t const&);
33844public:
33850 uint32_t const& get_Association() const;
33851 void set_Association(uint32_t const&);
33853public:
33854 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33855 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33856 void dump(std::ostream&) const;
33857
33858 const SgAsmCilMetadata* get_Method_object() const;
33859 const SgAsmCilMetadata* get_Association_object() const;
33860public:
33863
33864public:
33867
33868protected:
33876#endif // SgAsmCilMethodSemantics_OTHERS
33877#ifdef DOCUMENTATION
33878};
33879#endif // DOCUMENTATION
33880
33881
33883// SgAsmCilMethodImplTable -- MACHINE GENERATED; DO NOT MODIFY --
33885
33886DECLARE_LEAF_CLASS(AsmCilMethodImplTable);
33887IS_SERIALIZABLE(AsmCilMethodImplTable);
33888
33889#ifndef DOCUMENTATION
33890AsmCilMethodImplTable.useSmallHeader(true);
33891#endif // !DOCUMENTATION
33892
33893#ifdef DOCUMENTATION
33896#endif // DOCUMENTATION
33897
33898#ifndef DOCUMENTATION
33899 AsmCilMethodImplTable.setDataPrototype(
33900 "std::vector<SgAsmCilMethodImpl*>", "elements", "",
33901 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33902#endif // !DOCUMENTATION
33903
33904 DECLARE_OTHERS(AsmCilMethodImplTable);
33905#if defined(SgAsmCilMethodImplTable_OTHERS) || defined(DOCUMENTATION)
33906
33907 //----------------------- Boost serialization for SgAsmCilMethodImplTable -----------------------
33908#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33909private:
33910 friend class boost::serialization::access;
33911
33912 template<class S>
33913 void serialize(S &s, const unsigned /*version*/) {
33914 debugSerializationBegin("SgAsmCilMethodImplTable");
33915 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33916 s & BOOST_SERIALIZATION_NVP(p_elements);
33917 debugSerializationEnd("SgAsmCilMethodImplTable");
33918 }
33919#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
33920
33921public:
33922 std::vector<SgAsmCilMethodImpl*> const& get_elements() const;
33923 std::vector<SgAsmCilMethodImpl*>& get_elements();
33924public:
33926public:
33929
33930public:
33933
33934protected:
33942#endif // SgAsmCilMethodImplTable_OTHERS
33943#ifdef DOCUMENTATION
33944};
33945#endif // DOCUMENTATION
33946
33947
33949// SgAsmCilMethodImpl -- MACHINE GENERATED; DO NOT MODIFY --
33951
33952DECLARE_LEAF_CLASS(AsmCilMethodImpl);
33953IS_SERIALIZABLE(AsmCilMethodImpl);
33954
33955#ifndef DOCUMENTATION
33956AsmCilMethodImpl.useSmallHeader(true);
33957#endif // !DOCUMENTATION
33958
33959#ifdef DOCUMENTATION
33962#endif // DOCUMENTATION
33963
33964#ifndef DOCUMENTATION
33965 AsmCilMethodImpl.setDataPrototype(
33966 "uint32_t", "Class", "= 0",
33967 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33968#endif // !DOCUMENTATION
33969
33970#ifndef DOCUMENTATION
33971 AsmCilMethodImpl.setDataPrototype(
33972 "uint32_t", "MethodBody", "= 0",
33973 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33974#endif // !DOCUMENTATION
33975
33976#ifndef DOCUMENTATION
33977 AsmCilMethodImpl.setDataPrototype(
33978 "uint32_t", "MethodDeclaration", "= 0",
33979 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33980#endif // !DOCUMENTATION
33981
33982 DECLARE_OTHERS(AsmCilMethodImpl);
33983#if defined(SgAsmCilMethodImpl_OTHERS) || defined(DOCUMENTATION)
33984
33985 //----------------------- Boost serialization for SgAsmCilMethodImpl -----------------------
33986#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33987private:
33988 friend class boost::serialization::access;
33989
33990 template<class S>
33991 void serialize(S &s, const unsigned /*version*/) {
33992 debugSerializationBegin("SgAsmCilMethodImpl");
33993 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33994 s & BOOST_SERIALIZATION_NVP(p_Class);
33995 s & BOOST_SERIALIZATION_NVP(p_MethodBody);
33996 s & BOOST_SERIALIZATION_NVP(p_MethodDeclaration);
33997 debugSerializationEnd("SgAsmCilMethodImpl");
33998 }
33999#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
34000
34001public:
34007 uint32_t const& get_Class() const;
34008 void set_Class(uint32_t const&);
34011public:
34017 uint32_t const& get_MethodBody() const;
34018 void set_MethodBody(uint32_t const&);
34021public:
34027 uint32_t const& get_MethodDeclaration() const;
34028 void set_MethodDeclaration(uint32_t const&);
34030public:
34031 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34032 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34033 void dump(std::ostream&) const;
34034
34035 const SgAsmCilMetadata* get_Class_object() const;
34036 const SgAsmCilMetadata* get_MethodBody_object() const;
34037 const SgAsmCilMetadata* get_MethodDeclaration_object() const;
34038public:
34041
34042public:
34045
34046protected:
34054#endif // SgAsmCilMethodImpl_OTHERS
34055#ifdef DOCUMENTATION
34056};
34057#endif // DOCUMENTATION
34058
34059
34061// SgAsmCilMethodDefTable -- MACHINE GENERATED; DO NOT MODIFY --
34063
34064DECLARE_LEAF_CLASS(AsmCilMethodDefTable);
34065IS_SERIALIZABLE(AsmCilMethodDefTable);
34066
34067#ifndef DOCUMENTATION
34068AsmCilMethodDefTable.useSmallHeader(true);
34069#endif // !DOCUMENTATION
34070
34071#ifdef DOCUMENTATION
34074#endif // DOCUMENTATION
34075
34076#ifndef DOCUMENTATION
34077 AsmCilMethodDefTable.setDataPrototype(
34078 "std::vector<SgAsmCilMethodDef*>", "elements", "",
34079 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34080#endif // !DOCUMENTATION
34081
34082 DECLARE_OTHERS(AsmCilMethodDefTable);
34083#if defined(SgAsmCilMethodDefTable_OTHERS) || defined(DOCUMENTATION)
34084
34085 //----------------------- Boost serialization for SgAsmCilMethodDefTable -----------------------
34086#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
34087private:
34088 friend class boost::serialization::access;
34089
34090 template<class S>
34091 void serialize(S &s, const unsigned /*version*/) {
34092 debugSerializationBegin("SgAsmCilMethodDefTable");
34093 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34094 s & BOOST_SERIALIZATION_NVP(p_elements);
34095 debugSerializationEnd("SgAsmCilMethodDefTable");
34096 }
34097#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
34098
34099public:
34100 std::vector<SgAsmCilMethodDef*> const& get_elements() const;
34101 std::vector<SgAsmCilMethodDef*>& get_elements();
34102public:
34104public:
34107
34108public:
34111
34112protected:
34120#endif // SgAsmCilMethodDefTable_OTHERS
34121#ifdef DOCUMENTATION
34122};
34123#endif // DOCUMENTATION
34124
34125
34127// SgAsmCilMethodDef -- MACHINE GENERATED; DO NOT MODIFY --
34129
34130DECLARE_LEAF_CLASS(AsmCilMethodDef);
34131IS_SERIALIZABLE(AsmCilMethodDef);
34132
34133#ifndef DOCUMENTATION
34134AsmCilMethodDef.useSmallHeader(true);
34135#endif // !DOCUMENTATION
34136
34137#ifdef DOCUMENTATION
34140#endif // DOCUMENTATION
34141
34142#ifndef DOCUMENTATION
34143 AsmCilMethodDef.setDataPrototype(
34144 "uint32_t", "RVA", "= 0",
34145 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34146#endif // !DOCUMENTATION
34147
34148#ifndef DOCUMENTATION
34149 AsmCilMethodDef.setDataPrototype(
34150 "uint32_t", "ImplFlags", "= 0",
34151 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34152#endif // !DOCUMENTATION
34153
34154#ifndef DOCUMENTATION
34155 AsmCilMethodDef.setDataPrototype(
34156 "uint16_t", "Flags", "= 0",
34157 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34158#endif // !DOCUMENTATION
34159
34160#ifndef DOCUMENTATION
34161 AsmCilMethodDef.setDataPrototype(
34162 "uint32_t", "Name", "= 0",
34163 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34164#endif // !DOCUMENTATION
34165
34166#ifndef DOCUMENTATION
34167 AsmCilMethodDef.setDataPrototype(
34168 "uint32_t", "Signature", "= 0",
34169 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34170#endif // !DOCUMENTATION
34171
34172#ifndef DOCUMENTATION
34173 AsmCilMethodDef.setDataPrototype(
34174 "uint32_t", "ParamList", "= 0",
34175 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34176#endif // !DOCUMENTATION
34177
34178#ifndef DOCUMENTATION
34179 AsmCilMethodDef.setDataPrototype(
34180 "SgAsmBlock*", "body", "= 0",
34181 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34182#endif // !DOCUMENTATION
34183
34184#ifndef DOCUMENTATION
34185 AsmCilMethodDef.setDataPrototype(
34186 "bool", "initLocals", "= 0",
34187 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34188#endif // !DOCUMENTATION
34189
34190#ifndef DOCUMENTATION
34191 AsmCilMethodDef.setDataPrototype(
34192 "uint32_t", "stackSize", "= 0",
34193 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34194#endif // !DOCUMENTATION
34195
34196#ifndef DOCUMENTATION
34197 AsmCilMethodDef.setDataPrototype(
34198 "bool", "hasMoreSections", "= 0",
34199 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34200#endif // !DOCUMENTATION
34201
34202 DECLARE_OTHERS(AsmCilMethodDef);
34203#if defined(SgAsmCilMethodDef_OTHERS) || defined(DOCUMENTATION)
34204
34205 //----------------------- Boost serialization for SgAsmCilMethodDef -----------------------
34206#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
34207private:
34208 friend class boost::serialization::access;
34209
34210 template<class S>
34211 void serialize(S &s, const unsigned /*version*/) {
34212 debugSerializationBegin("SgAsmCilMethodDef");
34213 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34214 s & BOOST_SERIALIZATION_NVP(p_RVA);
34215 s & BOOST_SERIALIZATION_NVP(p_ImplFlags);
34216 s & BOOST_SERIALIZATION_NVP(p_Flags);
34217 s & BOOST_SERIALIZATION_NVP(p_Name);
34218 s & BOOST_SERIALIZATION_NVP(p_Signature);
34219 s & BOOST_SERIALIZATION_NVP(p_ParamList);
34220 s & BOOST_SERIALIZATION_NVP(p_body);
34221 s & BOOST_SERIALIZATION_NVP(p_initLocals);
34222 s & BOOST_SERIALIZATION_NVP(p_stackSize);
34223 s & BOOST_SERIALIZATION_NVP(p_hasMoreSections);
34224 debugSerializationEnd("SgAsmCilMethodDef");
34225 }
34226#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
34227
34228public:
34234 uint32_t const& get_RVA() const;
34235 void set_RVA(uint32_t const&);
34238public:
34244 uint32_t const& get_ImplFlags() const;
34245 void set_ImplFlags(uint32_t const&);
34248public:
34254 uint16_t const& get_Flags() const;
34255 void set_Flags(uint16_t const&);
34258public:
34264 uint32_t const& get_Name() const;
34265 void set_Name(uint32_t const&);
34268public:
34274 uint32_t const& get_Signature() const;
34275 void set_Signature(uint32_t const&);
34278public:
34284 uint32_t const& get_ParamList() const;
34285 void set_ParamList(uint32_t const&);
34288public:
34294 SgAsmBlock* const& get_body() const;
34295 void set_body(SgAsmBlock* const&);
34298public:
34304 bool const& get_initLocals() const;
34305 void set_initLocals(bool const&);
34308public:
34314 uint32_t const& get_stackSize() const;
34315 void set_stackSize(uint32_t const&);
34318public:
34324 bool const& get_hasMoreSections() const;
34325 void set_hasMoreSections(bool const&);
34327public:
34328 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34329 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34330 void dump(std::ostream&) const;
34331
34332 const std::uint8_t* get_Name_string() const;
34333 const std::uint8_t* get_Signature_blob() const;
34334 const SgAsmCilMetadata* get_ParamList_object() const;
34335public:
34338
34339public:
34342
34343protected:
34351#endif // SgAsmCilMethodDef_OTHERS
34352#ifdef DOCUMENTATION
34353};
34354#endif // DOCUMENTATION
34355
34356
34358// SgAsmCilMetadataRoot -- MACHINE GENERATED; DO NOT MODIFY --
34360
34361DECLARE_LEAF_CLASS(AsmCilMetadataRoot);
34362IS_SERIALIZABLE(AsmCilMetadataRoot);
34363
34364#ifndef DOCUMENTATION
34365AsmCilMetadataRoot.useSmallHeader(true);
34366#endif // !DOCUMENTATION
34367
34368#ifdef DOCUMENTATION
34371#endif // DOCUMENTATION
34372
34373#ifndef DOCUMENTATION
34374 AsmCilMetadataRoot.setDataPrototype(
34375 "uint32_t", "Signature", "= 0",
34376 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34377#endif // !DOCUMENTATION
34378
34379#ifndef DOCUMENTATION
34380 AsmCilMetadataRoot.setDataPrototype(
34381 "uint16_t", "MajorVersion", "= 0",
34382 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34383#endif // !DOCUMENTATION
34384
34385#ifndef DOCUMENTATION
34386 AsmCilMetadataRoot.setDataPrototype(
34387 "uint16_t", "MinorVersion", "= 0",
34388 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34389#endif // !DOCUMENTATION
34390
34391#ifndef DOCUMENTATION
34392 AsmCilMetadataRoot.setDataPrototype(
34393 "uint32_t", "Reserved0", "= 0",
34394 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34395#endif // !DOCUMENTATION
34396
34397#ifndef DOCUMENTATION
34398 AsmCilMetadataRoot.setDataPrototype(
34399 "uint32_t", "Length", "= 0",
34400 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34401#endif // !DOCUMENTATION
34402
34403#ifndef DOCUMENTATION
34404 AsmCilMetadataRoot.setDataPrototype(
34405 "std::string", "Version", "",
34406 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34407#endif // !DOCUMENTATION
34408
34409#ifndef DOCUMENTATION
34410 AsmCilMetadataRoot.setDataPrototype(
34411 "uint32_t", "VersionPadding", "= 0",
34412 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34413#endif // !DOCUMENTATION
34414
34415#ifndef DOCUMENTATION
34416 AsmCilMetadataRoot.setDataPrototype(
34417 "uint16_t", "Flags", "= 0",
34418 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34419#endif // !DOCUMENTATION
34420
34421#ifndef DOCUMENTATION
34422 AsmCilMetadataRoot.setDataPrototype(
34423 "uint16_t", "NumberOfStreams", "= 0",
34424 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34425#endif // !DOCUMENTATION
34426
34427#ifndef DOCUMENTATION
34428 AsmCilMetadataRoot.setDataPrototype(
34429 "std::vector<SgAsmCilDataStream*>", "Streams", "",
34430 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34431#endif // !DOCUMENTATION
34432
34433 DECLARE_OTHERS(AsmCilMetadataRoot);
34434#if defined(SgAsmCilMetadataRoot_OTHERS) || defined(DOCUMENTATION)
34435
34436 //----------------------- Boost serialization for SgAsmCilMetadataRoot -----------------------
34437#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
34438private:
34439 friend class boost::serialization::access;
34440
34441 template<class S>
34442 void serialize(S &s, const unsigned /*version*/) {
34443 debugSerializationBegin("SgAsmCilMetadataRoot");
34444 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
34445 s & BOOST_SERIALIZATION_NVP(p_Signature);
34446 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
34447 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
34448 s & BOOST_SERIALIZATION_NVP(p_Reserved0);
34449 s & BOOST_SERIALIZATION_NVP(p_Length);
34450 s & BOOST_SERIALIZATION_NVP(p_Version);
34451 s & BOOST_SERIALIZATION_NVP(p_VersionPadding);
34452 s & BOOST_SERIALIZATION_NVP(p_Flags);
34453 s & BOOST_SERIALIZATION_NVP(p_NumberOfStreams);
34454 s & BOOST_SERIALIZATION_NVP(p_Streams);
34455 debugSerializationEnd("SgAsmCilMetadataRoot");
34456 }
34457#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
34458
34459public:
34463 uint32_t const& get_Signature() const;
34464 void set_Signature(uint32_t const&);
34467public:
34471 uint16_t const& get_MajorVersion() const;
34472 void set_MajorVersion(uint16_t const&);
34475public:
34479 uint16_t const& get_MinorVersion() const;
34480 void set_MinorVersion(uint16_t const&);
34483public:
34487 uint32_t const& get_Reserved0() const;
34488 void set_Reserved0(uint32_t const&);
34491public:
34495 uint32_t const& get_Length() const;
34496 void set_Length(uint32_t const&);
34499public:
34503 std::string const& get_Version() const;
34504 void set_Version(std::string const&);
34507public:
34511 uint32_t const& get_VersionPadding() const;
34512 void set_VersionPadding(uint32_t const&);
34515public:
34519 uint16_t const& get_Flags() const;
34520 void set_Flags(uint16_t const&);
34523public:
34527 uint16_t const& get_NumberOfStreams() const;
34528 void set_NumberOfStreams(uint16_t const&);
34530 // FIXME[Robb Matzke 2023-03-22]: these were implemented elsewhere, but could be auto generated
34531public:
34535 std::vector<SgAsmCilDataStream*> const& get_Streams() const;
34536 std::vector<SgAsmCilDataStream*>& get_Streams();
34538 //const std::vector<SgAsmCilDataStream*>& get_Streams() const;
34539 //std::vector<SgAsmCilDataStream*>& get_Streams();
34540private:
34543 mutable int8_t idxStringHeap = -1;
34544 mutable int8_t idxBlobHeap = -1;
34545 mutable int8_t idxUsHeap = -1;
34546 mutable int8_t idxGuidHeap = -1;
34547 mutable int8_t idxMetadataHeap = -1;
34550public:
34553 static constexpr uint32_t MAGIC_SIGNATURE = 0x424A5342;
34554
34558 void parse();
34559
34565 void parse(const std::vector<uint8_t>& buf, size_t index);
34566
34568 void unparse(std::ostream& f) const;
34569
34571 void unparse(std::vector<uint8_t>&, std::size_t) const;
34572
34574 void dump(std::ostream& os) const;
34575
34585public:
34588
34589public:
34592
34593protected:
34601#endif // SgAsmCilMetadataRoot_OTHERS
34602#ifdef DOCUMENTATION
34603};
34604#endif // DOCUMENTATION
34605
34606
34608// SgAsmCilMetadataHeap -- MACHINE GENERATED; DO NOT MODIFY --
34610
34611DECLARE_LEAF_CLASS(AsmCilMetadataHeap);
34612IS_SERIALIZABLE(AsmCilMetadataHeap);
34613
34614#ifndef DOCUMENTATION
34615AsmCilMetadataHeap.useSmallHeader(true);
34616#endif // !DOCUMENTATION
34617
34618DECLARE_HEADERS(AsmCilMetadataHeap);
34619#if defined(SgAsmCilMetadataHeap_HEADERS) || defined(DOCUMENTATION)
34620#ifdef ROSE_SgAsmCilMetadataHeap_IMPL
34621#include <SgAsmCilAssemblyTable.h>
34622#include <SgAsmCilAssemblyOSTable.h>
34623#include <SgAsmCilAssemblyProcessorTable.h>
34624#include <SgAsmCilAssemblyRefTable.h>
34625#include <SgAsmCilAssemblyRefOSTable.h>
34626#include <SgAsmCilAssemblyRefProcessorTable.h>
34627#include <SgAsmCilClassLayoutTable.h>
34628#include <SgAsmCilConstantTable.h>
34629#include <SgAsmCilCustomAttributeTable.h>
34630#include <SgAsmCilDeclSecurityTable.h>
34631#include <SgAsmCilEventTable.h>
34632#include <SgAsmCilEventMapTable.h>
34633#include <SgAsmCilExportedTypeTable.h>
34634#include <SgAsmCilFieldTable.h>
34635#include <SgAsmCilFieldLayoutTable.h>
34636#include <SgAsmCilFieldMarshalTable.h>
34637#include <SgAsmCilFieldRVATable.h>
34638#include <SgAsmCilFileTable.h>
34639#include <SgAsmCilGenericParamTable.h>
34640#include <SgAsmCilGenericParamConstraintTable.h>
34641#include <SgAsmCilImplMapTable.h>
34642#include <SgAsmCilInterfaceImplTable.h>
34643#include <SgAsmCilManifestResourceTable.h>
34644#include <SgAsmCilMemberRefTable.h>
34645#include <SgAsmCilMethodDefTable.h>
34646#include <SgAsmCilMethodImplTable.h>
34647#include <SgAsmCilMethodSemanticsTable.h>
34648#include <SgAsmCilMethodSpecTable.h>
34649#include <SgAsmCilModuleTable.h>
34650#include <SgAsmCilModuleRefTable.h>
34651#include <SgAsmCilNestedClassTable.h>
34652#include <SgAsmCilParamTable.h>
34653#include <SgAsmCilPropertyTable.h>
34654#include <SgAsmCilPropertyMapTable.h>
34655#include <SgAsmCilStandAloneSigTable.h>
34656#include <SgAsmCilTypeDefTable.h>
34657#include <SgAsmCilTypeRefTable.h>
34658#include <SgAsmCilTypeSpecTable.h>
34659#endif
34660#endif // SgAsmCilMetadataHeap_HEADERS
34661
34662#ifdef DOCUMENTATION
34665#endif // DOCUMENTATION
34666
34667#ifndef DOCUMENTATION
34668 AsmCilMetadataHeap.setDataPrototype(
34669 "uint32_t", "ReservedAlwaysZero", "= 0",
34670 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34671#endif // !DOCUMENTATION
34672
34673#ifndef DOCUMENTATION
34674 AsmCilMetadataHeap.setDataPrototype(
34675 "uint8_t", "MajorVersion", "= 0",
34676 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34677#endif // !DOCUMENTATION
34678
34679#ifndef DOCUMENTATION
34680 AsmCilMetadataHeap.setDataPrototype(
34681 "uint8_t", "MinorVersion", "= 0",
34682 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34683#endif // !DOCUMENTATION
34684
34685#ifndef DOCUMENTATION
34686 AsmCilMetadataHeap.setDataPrototype(
34687 "uint8_t", "HeapSizes", "= 0",
34688 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34689#endif // !DOCUMENTATION
34690
34691#ifndef DOCUMENTATION
34692 AsmCilMetadataHeap.setDataPrototype(
34693 "uint8_t", "ReservedAlwaysOne", "= 0",
34694 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34695#endif // !DOCUMENTATION
34696
34697#ifndef DOCUMENTATION
34698 AsmCilMetadataHeap.setDataPrototype(
34699 "uint64_t", "Valid", "= 0",
34700 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34701#endif // !DOCUMENTATION
34702
34703#ifndef DOCUMENTATION
34704 AsmCilMetadataHeap.setDataPrototype(
34705 "uint64_t", "Sorted", "= 0",
34706 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34707#endif // !DOCUMENTATION
34708
34709#ifndef DOCUMENTATION
34710 AsmCilMetadataHeap.setDataPrototype(
34711 "std::vector<uint32_t>", "NumberOfRows", "",
34712 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34713#endif // !DOCUMENTATION
34714
34715#ifndef DOCUMENTATION
34716 AsmCilMetadataHeap.setDataPrototype(
34717 "uint64_t", "DataSizeFlags", "= 0",
34718 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34719#endif // !DOCUMENTATION
34720
34721#ifndef DOCUMENTATION
34722 AsmCilMetadataHeap.setDataPrototype(
34723 "SgAsmCilAssemblyTable*", "AssemblyTable", "",
34724 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34725#endif // !DOCUMENTATION
34726
34727#ifndef DOCUMENTATION
34728 AsmCilMetadataHeap.setDataPrototype(
34729 "SgAsmCilAssemblyOSTable*", "AssemblyOSTable", "",
34730 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34731#endif // !DOCUMENTATION
34732
34733#ifndef DOCUMENTATION
34734 AsmCilMetadataHeap.setDataPrototype(
34735 "SgAsmCilAssemblyProcessorTable*", "AssemblyProcessorTable", "",
34736 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34737#endif // !DOCUMENTATION
34738
34739#ifndef DOCUMENTATION
34740 AsmCilMetadataHeap.setDataPrototype(
34741 "SgAsmCilAssemblyRefTable*", "AssemblyRefTable", "",
34742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34743#endif // !DOCUMENTATION
34744
34745#ifndef DOCUMENTATION
34746 AsmCilMetadataHeap.setDataPrototype(
34747 "SgAsmCilAssemblyRefOSTable*", "AssemblyRefOSTable", "",
34748 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34749#endif // !DOCUMENTATION
34750
34751#ifndef DOCUMENTATION
34752 AsmCilMetadataHeap.setDataPrototype(
34753 "SgAsmCilAssemblyRefProcessorTable*", "AssemblyRefProcessorTable", "",
34754 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34755#endif // !DOCUMENTATION
34756
34757#ifndef DOCUMENTATION
34758 AsmCilMetadataHeap.setDataPrototype(
34759 "SgAsmCilClassLayoutTable*", "ClassLayoutTable", "",
34760 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34761#endif // !DOCUMENTATION
34762
34763#ifndef DOCUMENTATION
34764 AsmCilMetadataHeap.setDataPrototype(
34765 "SgAsmCilConstantTable*", "ConstantTable", "",
34766 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34767#endif // !DOCUMENTATION
34768
34769#ifndef DOCUMENTATION
34770 AsmCilMetadataHeap.setDataPrototype(
34771 "SgAsmCilCustomAttributeTable*", "CustomAttributeTable", "",
34772 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34773#endif // !DOCUMENTATION
34774
34775#ifndef DOCUMENTATION
34776 AsmCilMetadataHeap.setDataPrototype(
34777 "SgAsmCilDeclSecurityTable*", "DeclSecurityTable", "",
34778 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34779#endif // !DOCUMENTATION
34780
34781#ifndef DOCUMENTATION
34782 AsmCilMetadataHeap.setDataPrototype(
34783 "SgAsmCilEventTable*", "EventTable", "",
34784 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34785#endif // !DOCUMENTATION
34786
34787#ifndef DOCUMENTATION
34788 AsmCilMetadataHeap.setDataPrototype(
34789 "SgAsmCilEventMapTable*", "EventMapTable", "",
34790 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34791#endif // !DOCUMENTATION
34792
34793#ifndef DOCUMENTATION
34794 AsmCilMetadataHeap.setDataPrototype(
34795 "SgAsmCilExportedTypeTable*", "ExportedTypeTable", "",
34796 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34797#endif // !DOCUMENTATION
34798
34799#ifndef DOCUMENTATION
34800 AsmCilMetadataHeap.setDataPrototype(
34801 "SgAsmCilFieldTable*", "FieldTable", "",
34802 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34803#endif // !DOCUMENTATION
34804
34805#ifndef DOCUMENTATION
34806 AsmCilMetadataHeap.setDataPrototype(
34807 "SgAsmCilFieldLayoutTable*", "FieldLayoutTable", "",
34808 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34809#endif // !DOCUMENTATION
34810
34811#ifndef DOCUMENTATION
34812 AsmCilMetadataHeap.setDataPrototype(
34813 "SgAsmCilFieldMarshalTable*", "FieldMarshalTable", "",
34814 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34815#endif // !DOCUMENTATION
34816
34817#ifndef DOCUMENTATION
34818 AsmCilMetadataHeap.setDataPrototype(
34819 "SgAsmCilFieldRVATable*", "FieldRVATable", "",
34820 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34821#endif // !DOCUMENTATION
34822
34823#ifndef DOCUMENTATION
34824 AsmCilMetadataHeap.setDataPrototype(
34825 "SgAsmCilFileTable*", "FileTable", "",
34826 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34827#endif // !DOCUMENTATION
34828
34829#ifndef DOCUMENTATION
34830 AsmCilMetadataHeap.setDataPrototype(
34831 "SgAsmCilGenericParamTable*", "GenericParamTable", "",
34832 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34833#endif // !DOCUMENTATION
34834
34835#ifndef DOCUMENTATION
34836 AsmCilMetadataHeap.setDataPrototype(
34837 "SgAsmCilGenericParamConstraintTable*", "GenericParamConstraintTable", "",
34838 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34839#endif // !DOCUMENTATION
34840
34841#ifndef DOCUMENTATION
34842 AsmCilMetadataHeap.setDataPrototype(
34843 "SgAsmCilImplMapTable*", "ImplMapTable", "",
34844 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34845#endif // !DOCUMENTATION
34846
34847#ifndef DOCUMENTATION
34848 AsmCilMetadataHeap.setDataPrototype(
34849 "SgAsmCilInterfaceImplTable*", "InterfaceImplTable", "",
34850 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34851#endif // !DOCUMENTATION
34852
34853#ifndef DOCUMENTATION
34854 AsmCilMetadataHeap.setDataPrototype(
34855 "SgAsmCilManifestResourceTable*", "ManifestResourceTable", "",
34856 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34857#endif // !DOCUMENTATION
34858
34859#ifndef DOCUMENTATION
34860 AsmCilMetadataHeap.setDataPrototype(
34861 "SgAsmCilMemberRefTable*", "MemberRefTable", "",
34862 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34863#endif // !DOCUMENTATION
34864
34865#ifndef DOCUMENTATION
34866 AsmCilMetadataHeap.setDataPrototype(
34867 "SgAsmCilMethodDefTable*", "MethodDefTable", "",
34868 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34869#endif // !DOCUMENTATION
34870
34871#ifndef DOCUMENTATION
34872 AsmCilMetadataHeap.setDataPrototype(
34873 "SgAsmCilMethodImplTable*", "MethodImplTable", "",
34874 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34875#endif // !DOCUMENTATION
34876
34877#ifndef DOCUMENTATION
34878 AsmCilMetadataHeap.setDataPrototype(
34879 "SgAsmCilMethodSemanticsTable*", "MethodSemanticsTable", "",
34880 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34881#endif // !DOCUMENTATION
34882
34883#ifndef DOCUMENTATION
34884 AsmCilMetadataHeap.setDataPrototype(
34885 "SgAsmCilMethodSpecTable*", "MethodSpecTable", "",
34886 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34887#endif // !DOCUMENTATION
34888
34889#ifndef DOCUMENTATION
34890 AsmCilMetadataHeap.setDataPrototype(
34891 "SgAsmCilModuleTable*", "ModuleTable", "",
34892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34893#endif // !DOCUMENTATION
34894
34895#ifndef DOCUMENTATION
34896 AsmCilMetadataHeap.setDataPrototype(
34897 "SgAsmCilModuleRefTable*", "ModuleRefTable", "",
34898 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34899#endif // !DOCUMENTATION
34900
34901#ifndef DOCUMENTATION
34902 AsmCilMetadataHeap.setDataPrototype(
34903 "SgAsmCilNestedClassTable*", "NestedClassTable", "",
34904 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34905#endif // !DOCUMENTATION
34906
34907#ifndef DOCUMENTATION
34908 AsmCilMetadataHeap.setDataPrototype(
34909 "SgAsmCilParamTable*", "ParamTable", "",
34910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34911#endif // !DOCUMENTATION
34912
34913#ifndef DOCUMENTATION
34914 AsmCilMetadataHeap.setDataPrototype(
34915 "SgAsmCilPropertyTable*", "PropertyTable", "",
34916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34917#endif // !DOCUMENTATION
34918
34919#ifndef DOCUMENTATION
34920 AsmCilMetadataHeap.setDataPrototype(
34921 "SgAsmCilPropertyMapTable*", "PropertyMapTable", "",
34922 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34923#endif // !DOCUMENTATION
34924
34925#ifndef DOCUMENTATION
34926 AsmCilMetadataHeap.setDataPrototype(
34927 "SgAsmCilStandAloneSigTable*", "StandAloneSigTable", "",
34928 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34929#endif // !DOCUMENTATION
34930
34931#ifndef DOCUMENTATION
34932 AsmCilMetadataHeap.setDataPrototype(
34933 "SgAsmCilTypeDefTable*", "TypeDefTable", "",
34934 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34935#endif // !DOCUMENTATION
34936
34937#ifndef DOCUMENTATION
34938 AsmCilMetadataHeap.setDataPrototype(
34939 "SgAsmCilTypeRefTable*", "TypeRefTable", "",
34940 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34941#endif // !DOCUMENTATION
34942
34943#ifndef DOCUMENTATION
34944 AsmCilMetadataHeap.setDataPrototype(
34945 "SgAsmCilTypeSpecTable*", "TypeSpecTable", "",
34946 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34947#endif // !DOCUMENTATION
34948
34949 DECLARE_OTHERS(AsmCilMetadataHeap);
34950#if defined(SgAsmCilMetadataHeap_OTHERS) || defined(DOCUMENTATION)
34951
34952 //----------------------- Boost serialization for SgAsmCilMetadataHeap -----------------------
34953#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
34954private:
34955 friend class boost::serialization::access;
34956
34957 template<class S>
34958 void serialize(S &s, const unsigned /*version*/) {
34959 debugSerializationBegin("SgAsmCilMetadataHeap");
34960 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
34961 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysZero);
34962 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
34963 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
34964 s & BOOST_SERIALIZATION_NVP(p_HeapSizes);
34965 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysOne);
34966 s & BOOST_SERIALIZATION_NVP(p_Valid);
34967 s & BOOST_SERIALIZATION_NVP(p_Sorted);
34968 s & BOOST_SERIALIZATION_NVP(p_NumberOfRows);
34969 s & BOOST_SERIALIZATION_NVP(p_DataSizeFlags);
34970 s & BOOST_SERIALIZATION_NVP(p_AssemblyTable);
34971 s & BOOST_SERIALIZATION_NVP(p_AssemblyOSTable);
34972 s & BOOST_SERIALIZATION_NVP(p_AssemblyProcessorTable);
34973 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefTable);
34974 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefOSTable);
34975 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefProcessorTable);
34976 s & BOOST_SERIALIZATION_NVP(p_ClassLayoutTable);
34977 s & BOOST_SERIALIZATION_NVP(p_ConstantTable);
34978 s & BOOST_SERIALIZATION_NVP(p_CustomAttributeTable);
34979 s & BOOST_SERIALIZATION_NVP(p_DeclSecurityTable);
34980 s & BOOST_SERIALIZATION_NVP(p_EventTable);
34981 s & BOOST_SERIALIZATION_NVP(p_EventMapTable);
34982 s & BOOST_SERIALIZATION_NVP(p_ExportedTypeTable);
34983 s & BOOST_SERIALIZATION_NVP(p_FieldTable);
34984 s & BOOST_SERIALIZATION_NVP(p_FieldLayoutTable);
34985 s & BOOST_SERIALIZATION_NVP(p_FieldMarshalTable);
34986 s & BOOST_SERIALIZATION_NVP(p_FieldRVATable);
34987 s & BOOST_SERIALIZATION_NVP(p_FileTable);
34988 s & BOOST_SERIALIZATION_NVP(p_GenericParamTable);
34989 s & BOOST_SERIALIZATION_NVP(p_GenericParamConstraintTable);
34990 s & BOOST_SERIALIZATION_NVP(p_ImplMapTable);
34991 s & BOOST_SERIALIZATION_NVP(p_InterfaceImplTable);
34992 s & BOOST_SERIALIZATION_NVP(p_ManifestResourceTable);
34993 s & BOOST_SERIALIZATION_NVP(p_MemberRefTable);
34994 s & BOOST_SERIALIZATION_NVP(p_MethodDefTable);
34995 s & BOOST_SERIALIZATION_NVP(p_MethodImplTable);
34996 s & BOOST_SERIALIZATION_NVP(p_MethodSemanticsTable);
34997 s & BOOST_SERIALIZATION_NVP(p_MethodSpecTable);
34998 s & BOOST_SERIALIZATION_NVP(p_ModuleTable);
34999 s & BOOST_SERIALIZATION_NVP(p_ModuleRefTable);
35000 s & BOOST_SERIALIZATION_NVP(p_NestedClassTable);
35001 s & BOOST_SERIALIZATION_NVP(p_ParamTable);
35002 s & BOOST_SERIALIZATION_NVP(p_PropertyTable);
35003 s & BOOST_SERIALIZATION_NVP(p_PropertyMapTable);
35004 s & BOOST_SERIALIZATION_NVP(p_StandAloneSigTable);
35005 s & BOOST_SERIALIZATION_NVP(p_TypeDefTable);
35006 s & BOOST_SERIALIZATION_NVP(p_TypeRefTable);
35007 s & BOOST_SERIALIZATION_NVP(p_TypeSpecTable);
35008 debugSerializationEnd("SgAsmCilMetadataHeap");
35009 }
35010#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
35011
35012public:
35016 uint32_t const& get_ReservedAlwaysZero() const;
35017 void set_ReservedAlwaysZero(uint32_t const&);
35020public:
35024 uint8_t const& get_MajorVersion() const;
35025 void set_MajorVersion(uint8_t const&);
35028public:
35032 uint8_t const& get_MinorVersion() const;
35033 void set_MinorVersion(uint8_t const&);
35036public:
35040 uint8_t const& get_HeapSizes() const;
35041 void set_HeapSizes(uint8_t const&);
35044public:
35048 uint8_t const& get_ReservedAlwaysOne() const;
35049 void set_ReservedAlwaysOne(uint8_t const&);
35052public:
35056 uint64_t const& get_Valid() const;
35057 void set_Valid(uint64_t const&);
35060public:
35064 uint64_t const& get_Sorted() const;
35065 void set_Sorted(uint64_t const&);
35068public:
35072 std::vector<uint32_t> const& get_NumberOfRows() const;
35073 void set_NumberOfRows(std::vector<uint32_t> const&);
35076public:
35080 uint64_t const& get_DataSizeFlags() const;
35081 void set_DataSizeFlags(uint64_t const&);
35084public:
35092public:
35100public:
35108public:
35116public:
35124public:
35132public:
35140public:
35148public:
35156public:
35164public:
35172public:
35180public:
35188public:
35196public:
35204public:
35212public:
35220public:
35228public:
35236public:
35244public:
35252public:
35260public:
35268public:
35276public:
35284public:
35292public:
35300public:
35308public:
35316public:
35324public:
35332public:
35340public:
35348public:
35356public:
35364public:
35372public:
35380public:
35387public:
35390 {
35391 // heaps
35392 e_ref_string_heap = 1 << 0,
35393 e_ref_guid_heap = 1 << 1,
35394 e_ref_blob_heap = 1 << 2,
35395 // single-table references
35396 e_ref_assembly_ref = 1 << 3,
35397 e_ref_type_def = 1 << 4,
35398 e_ref_event = 1 << 5,
35399 e_ref_field = 1 << 6,
35400 e_ref_generic_param = 1 << 7,
35401 e_ref_module_ref = 1 << 8,
35402 e_ref_method_def = 1 << 9,
35403 e_ref_param = 1 << 10,
35404 e_ref_property = 1 << 11,
35405 // multi-table references
35406 e_ref_has_constant = 1 << 12,
35407 e_ref_has_custom_attribute = 1 << 13,
35408 e_ref_has_decl_security = 1 << 14,
35409 e_ref_has_field_marshall = 1 << 15,
35410 e_ref_has_semantics = 1 << 16,
35411 e_ref_method_def_or_ref = 1 << 17,
35412 e_ref_type_def_or_ref = 1 << 18,
35413 e_ref_implementation = 1 << 19,
35414 e_ref_member_forwarded = 1 << 20,
35415 e_ref_member_ref_parent = 1 << 21,
35416 e_ref_type_or_method_def = 1 << 22,
35417 e_ref_custom_attribute_type = 1 << 23,
35418 e_ref_resolution_scope = 1 << 24,
35419 e_ref_last = 1 << 25,
35420 };
35421
35422 enum TableKind : std::uint8_t
35423 {
35424
35425 e_Assembly = 0x20,
35426 e_AssemblyOS = 0x22,
35427 e_AssemblyProcessor = 0x21,
35428 e_AssemblyRef = 0x23,
35429 e_AssemblyRefOS = 0x25,
35430 e_AssemblyRefProcessor = 0x24,
35431 e_ClassLayout = 0x0F,
35432 e_Constant = 0x0B,
35433 e_CustomAttribute = 0x0C,
35434 e_DeclSecurity = 0x0E,
35435 e_Event = 0x14,
35436 e_EventMap = 0x12,
35437 e_ExportedType = 0x27,
35438 e_Field = 0x04,
35439 e_FieldLayout = 0x10,
35440 e_FieldMarshal = 0x0D,
35441 e_FieldRVA = 0x1D,
35442 e_File = 0x26,
35443 e_GenericParam = 0x2A,
35444 e_GenericParamConstraint = 0x2C,
35445 e_ImplMap = 0x1C,
35446 e_InterfaceImpl = 0x09,
35447 e_ManifestResource = 0x28,
35448 e_MemberRef = 0x0A,
35449 e_MethodDef = 0x06,
35450 e_MethodImpl = 0x19,
35451 e_MethodSemantics = 0x18,
35452 e_MethodSpec = 0x2B,
35453 e_Module = 0x00,
35454 e_ModuleRef = 0x1A,
35455 e_NestedClass = 0x29,
35456 e_Param = 0x08,
35457 e_Property = 0x17,
35458 e_PropertyMap = 0x15,
35459 e_StandAloneSig = 0x11,
35460 e_TypeDef = 0x02,
35461 e_TypeRef = 0x01,
35462 e_TypeSpec = 0x1B,
35463 e_Unknown_table_kind = 0xFF
35464 };
35465
35467 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
35468
35470 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
35471
35473 void dump(std::ostream& os) const override;
35474
35478 SgAsmCilMetadata* get_MetadataNode(std::uint32_t idx, TableKind tblcode) const;
35479
35484 SgAsmCilMetadata* get_CodedMetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
35485
35490 SgAsmCilMetadata* get_MetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
35491public:
35494
35495public:
35498
35499public:
35501 SgAsmCilMetadataHeap(uint32_t const& Offset,
35502 uint32_t const& Size,
35503 std::string const& Name,
35504 uint32_t const& NamePadding);
35505
35506protected:
35514#endif // SgAsmCilMetadataHeap_OTHERS
35515#ifdef DOCUMENTATION
35516};
35517#endif // DOCUMENTATION
35518
35519
35521// SgAsmCilMemberRefTable -- MACHINE GENERATED; DO NOT MODIFY --
35523
35524DECLARE_LEAF_CLASS(AsmCilMemberRefTable);
35525IS_SERIALIZABLE(AsmCilMemberRefTable);
35526
35527#ifndef DOCUMENTATION
35528AsmCilMemberRefTable.useSmallHeader(true);
35529#endif // !DOCUMENTATION
35530
35531#ifdef DOCUMENTATION
35534#endif // DOCUMENTATION
35535
35536#ifndef DOCUMENTATION
35537 AsmCilMemberRefTable.setDataPrototype(
35538 "std::vector<SgAsmCilMemberRef*>", "elements", "",
35539 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35540#endif // !DOCUMENTATION
35541
35542 DECLARE_OTHERS(AsmCilMemberRefTable);
35543#if defined(SgAsmCilMemberRefTable_OTHERS) || defined(DOCUMENTATION)
35544
35545 //----------------------- Boost serialization for SgAsmCilMemberRefTable -----------------------
35546#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
35547private:
35548 friend class boost::serialization::access;
35549
35550 template<class S>
35551 void serialize(S &s, const unsigned /*version*/) {
35552 debugSerializationBegin("SgAsmCilMemberRefTable");
35553 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35554 s & BOOST_SERIALIZATION_NVP(p_elements);
35555 debugSerializationEnd("SgAsmCilMemberRefTable");
35556 }
35557#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
35558
35559public:
35560 std::vector<SgAsmCilMemberRef*> const& get_elements() const;
35561 std::vector<SgAsmCilMemberRef*>& get_elements();
35562public:
35564public:
35567
35568public:
35571
35572protected:
35580#endif // SgAsmCilMemberRefTable_OTHERS
35581#ifdef DOCUMENTATION
35582};
35583#endif // DOCUMENTATION
35584
35585
35587// SgAsmCilMemberRef -- MACHINE GENERATED; DO NOT MODIFY --
35589
35590DECLARE_LEAF_CLASS(AsmCilMemberRef);
35591IS_SERIALIZABLE(AsmCilMemberRef);
35592
35593#ifndef DOCUMENTATION
35594AsmCilMemberRef.useSmallHeader(true);
35595#endif // !DOCUMENTATION
35596
35597#ifdef DOCUMENTATION
35600#endif // DOCUMENTATION
35601
35602#ifndef DOCUMENTATION
35603 AsmCilMemberRef.setDataPrototype(
35604 "uint32_t", "Class", "= 0",
35605 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35606#endif // !DOCUMENTATION
35607
35608#ifndef DOCUMENTATION
35609 AsmCilMemberRef.setDataPrototype(
35610 "uint32_t", "Name", "= 0",
35611 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35612#endif // !DOCUMENTATION
35613
35614#ifndef DOCUMENTATION
35615 AsmCilMemberRef.setDataPrototype(
35616 "uint32_t", "Signature", "= 0",
35617 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35618#endif // !DOCUMENTATION
35619
35620 DECLARE_OTHERS(AsmCilMemberRef);
35621#if defined(SgAsmCilMemberRef_OTHERS) || defined(DOCUMENTATION)
35622
35623 //----------------------- Boost serialization for SgAsmCilMemberRef -----------------------
35624#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
35625private:
35626 friend class boost::serialization::access;
35627
35628 template<class S>
35629 void serialize(S &s, const unsigned /*version*/) {
35630 debugSerializationBegin("SgAsmCilMemberRef");
35631 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35632 s & BOOST_SERIALIZATION_NVP(p_Class);
35633 s & BOOST_SERIALIZATION_NVP(p_Name);
35634 s & BOOST_SERIALIZATION_NVP(p_Signature);
35635 debugSerializationEnd("SgAsmCilMemberRef");
35636 }
35637#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
35638
35639public:
35645 uint32_t const& get_Class() const;
35646 void set_Class(uint32_t const&);
35649public:
35655 uint32_t const& get_Name() const;
35656 void set_Name(uint32_t const&);
35659public:
35665 uint32_t const& get_Signature() const;
35666 void set_Signature(uint32_t const&);
35668public:
35669 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
35670 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
35671 void dump(std::ostream&) const;
35672
35673 const SgAsmCilMetadata* get_Class_object() const;
35674 const std::uint8_t* get_Name_string() const;
35675 const std::uint8_t* get_Signature_blob() const;
35676public:
35679
35680public:
35683
35684protected:
35692#endif // SgAsmCilMemberRef_OTHERS
35693#ifdef DOCUMENTATION
35694};
35695#endif // DOCUMENTATION
35696
35697
35699// SgAsmCilManifestResourceTable -- MACHINE GENERATED; DO NOT MODIFY --
35701
35702DECLARE_LEAF_CLASS(AsmCilManifestResourceTable);
35703IS_SERIALIZABLE(AsmCilManifestResourceTable);
35704
35705#ifndef DOCUMENTATION
35706AsmCilManifestResourceTable.useSmallHeader(true);
35707#endif // !DOCUMENTATION
35708
35709#ifdef DOCUMENTATION
35712#endif // DOCUMENTATION
35713
35714#ifndef DOCUMENTATION
35715 AsmCilManifestResourceTable.setDataPrototype(
35716 "std::vector<SgAsmCilManifestResource*>", "elements", "",
35717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35718#endif // !DOCUMENTATION
35719
35720 DECLARE_OTHERS(AsmCilManifestResourceTable);
35721#if defined(SgAsmCilManifestResourceTable_OTHERS) || defined(DOCUMENTATION)
35722
35723 //----------------------- Boost serialization for SgAsmCilManifestResourceTable -----------------------
35724#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
35725private:
35726 friend class boost::serialization::access;
35727
35728 template<class S>
35729 void serialize(S &s, const unsigned /*version*/) {
35730 debugSerializationBegin("SgAsmCilManifestResourceTable");
35731 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35732 s & BOOST_SERIALIZATION_NVP(p_elements);
35733 debugSerializationEnd("SgAsmCilManifestResourceTable");
35734 }
35735#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
35736
35737public:
35738 std::vector<SgAsmCilManifestResource*> const& get_elements() const;
35739 std::vector<SgAsmCilManifestResource*>& get_elements();
35740public:
35742public:
35745
35746public:
35749
35750protected:
35758#endif // SgAsmCilManifestResourceTable_OTHERS
35759#ifdef DOCUMENTATION
35760};
35761#endif // DOCUMENTATION
35762
35763
35765// SgAsmCilManifestResource -- MACHINE GENERATED; DO NOT MODIFY --
35767
35768DECLARE_LEAF_CLASS(AsmCilManifestResource);
35769IS_SERIALIZABLE(AsmCilManifestResource);
35770
35771#ifndef DOCUMENTATION
35772AsmCilManifestResource.useSmallHeader(true);
35773#endif // !DOCUMENTATION
35774
35775#ifdef DOCUMENTATION
35778#endif // DOCUMENTATION
35779
35780#ifndef DOCUMENTATION
35781 AsmCilManifestResource.setDataPrototype(
35782 "uint32_t", "Offset", "= 0",
35783 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35784#endif // !DOCUMENTATION
35785
35786#ifndef DOCUMENTATION
35787 AsmCilManifestResource.setDataPrototype(
35788 "uint32_t", "Flags", "= 0",
35789 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35790#endif // !DOCUMENTATION
35791
35792#ifndef DOCUMENTATION
35793 AsmCilManifestResource.setDataPrototype(
35794 "uint32_t", "Name", "= 0",
35795 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35796#endif // !DOCUMENTATION
35797
35798#ifndef DOCUMENTATION
35799 AsmCilManifestResource.setDataPrototype(
35800 "uint32_t", "Implementation", "= 0",
35801 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35802#endif // !DOCUMENTATION
35803
35804 DECLARE_OTHERS(AsmCilManifestResource);
35805#if defined(SgAsmCilManifestResource_OTHERS) || defined(DOCUMENTATION)
35806
35807 //----------------------- Boost serialization for SgAsmCilManifestResource -----------------------
35808#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
35809private:
35810 friend class boost::serialization::access;
35811
35812 template<class S>
35813 void serialize(S &s, const unsigned /*version*/) {
35814 debugSerializationBegin("SgAsmCilManifestResource");
35815 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35816 s & BOOST_SERIALIZATION_NVP(p_Offset);
35817 s & BOOST_SERIALIZATION_NVP(p_Flags);
35818 s & BOOST_SERIALIZATION_NVP(p_Name);
35819 s & BOOST_SERIALIZATION_NVP(p_Implementation);
35820 debugSerializationEnd("SgAsmCilManifestResource");
35821 }
35822#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
35823
35824public:
35830 uint32_t const& get_Offset() const;
35831 void set_Offset(uint32_t const&);
35834public:
35840 uint32_t const& get_Flags() const;
35841 void set_Flags(uint32_t const&);
35844public:
35850 uint32_t const& get_Name() const;
35851 void set_Name(uint32_t const&);
35854public:
35860 uint32_t const& get_Implementation() const;
35861 void set_Implementation(uint32_t const&);
35863public:
35864 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
35865 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
35866 void dump(std::ostream&) const;
35867
35868 const std::uint8_t* get_Name_string() const;
35869 const SgAsmCilMetadata* get_Implementation_object() const;
35870public:
35873
35874public:
35877
35878protected:
35886#endif // SgAsmCilManifestResource_OTHERS
35887#ifdef DOCUMENTATION
35888};
35889#endif // DOCUMENTATION
35890
35891
35893// SgAsmCilInterfaceImplTable -- MACHINE GENERATED; DO NOT MODIFY --
35895
35896DECLARE_LEAF_CLASS(AsmCilInterfaceImplTable);
35897IS_SERIALIZABLE(AsmCilInterfaceImplTable);
35898
35899#ifndef DOCUMENTATION
35900AsmCilInterfaceImplTable.useSmallHeader(true);
35901#endif // !DOCUMENTATION
35902
35903#ifdef DOCUMENTATION
35906#endif // DOCUMENTATION
35907
35908#ifndef DOCUMENTATION
35909 AsmCilInterfaceImplTable.setDataPrototype(
35910 "std::vector<SgAsmCilInterfaceImpl*>", "elements", "",
35911 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35912#endif // !DOCUMENTATION
35913
35914 DECLARE_OTHERS(AsmCilInterfaceImplTable);
35915#if defined(SgAsmCilInterfaceImplTable_OTHERS) || defined(DOCUMENTATION)
35916
35917 //----------------------- Boost serialization for SgAsmCilInterfaceImplTable -----------------------
35918#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
35919private:
35920 friend class boost::serialization::access;
35921
35922 template<class S>
35923 void serialize(S &s, const unsigned /*version*/) {
35924 debugSerializationBegin("SgAsmCilInterfaceImplTable");
35925 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35926 s & BOOST_SERIALIZATION_NVP(p_elements);
35927 debugSerializationEnd("SgAsmCilInterfaceImplTable");
35928 }
35929#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
35930
35931public:
35932 std::vector<SgAsmCilInterfaceImpl*> const& get_elements() const;
35933 std::vector<SgAsmCilInterfaceImpl*>& get_elements();
35934public:
35936public:
35939
35940public:
35943
35944protected:
35952#endif // SgAsmCilInterfaceImplTable_OTHERS
35953#ifdef DOCUMENTATION
35954};
35955#endif // DOCUMENTATION
35956
35957
35959// SgAsmCilInterfaceImpl -- MACHINE GENERATED; DO NOT MODIFY --
35961
35962DECLARE_LEAF_CLASS(AsmCilInterfaceImpl);
35963IS_SERIALIZABLE(AsmCilInterfaceImpl);
35964
35965#ifndef DOCUMENTATION
35966AsmCilInterfaceImpl.useSmallHeader(true);
35967#endif // !DOCUMENTATION
35968
35969#ifdef DOCUMENTATION
35972#endif // DOCUMENTATION
35973
35974#ifndef DOCUMENTATION
35975 AsmCilInterfaceImpl.setDataPrototype(
35976 "uint32_t", "Class", "= 0",
35977 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35978#endif // !DOCUMENTATION
35979
35980#ifndef DOCUMENTATION
35981 AsmCilInterfaceImpl.setDataPrototype(
35982 "uint32_t", "Interface", "= 0",
35983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35984#endif // !DOCUMENTATION
35985
35986 DECLARE_OTHERS(AsmCilInterfaceImpl);
35987#if defined(SgAsmCilInterfaceImpl_OTHERS) || defined(DOCUMENTATION)
35988
35989 //----------------------- Boost serialization for SgAsmCilInterfaceImpl -----------------------
35990#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
35991private:
35992 friend class boost::serialization::access;
35993
35994 template<class S>
35995 void serialize(S &s, const unsigned /*version*/) {
35996 debugSerializationBegin("SgAsmCilInterfaceImpl");
35997 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35998 s & BOOST_SERIALIZATION_NVP(p_Class);
35999 s & BOOST_SERIALIZATION_NVP(p_Interface);
36000 debugSerializationEnd("SgAsmCilInterfaceImpl");
36001 }
36002#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36003
36004public:
36010 uint32_t const& get_Class() const;
36011 void set_Class(uint32_t const&);
36014public:
36020 uint32_t const& get_Interface() const;
36021 void set_Interface(uint32_t const&);
36023public:
36024 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36025 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36026 void dump(std::ostream&) const;
36027
36028 const SgAsmCilMetadata* get_Class_object() const;
36029 const SgAsmCilMetadata* get_Interface_object() const;
36030public:
36033
36034public:
36037
36038protected:
36046#endif // SgAsmCilInterfaceImpl_OTHERS
36047#ifdef DOCUMENTATION
36048};
36049#endif // DOCUMENTATION
36050
36051
36053// SgAsmCilInstruction -- MACHINE GENERATED; DO NOT MODIFY --
36055
36056DECLARE_LEAF_CLASS(AsmCilInstruction);
36057IS_SERIALIZABLE(AsmCilInstruction);
36058
36059#ifndef DOCUMENTATION
36060AsmCilInstruction.useSmallHeader(true);
36061#endif // !DOCUMENTATION
36062
36063DECLARE_HEADERS(AsmCilInstruction);
36064#if defined(SgAsmCilInstruction_HEADERS) || defined(DOCUMENTATION)
36065#include <Rose/BinaryAnalysis/InstructionEnumsCil.h>
36066#endif // SgAsmCilInstruction_HEADERS
36067
36068#ifdef DOCUMENTATION
36070#endif // DOCUMENTATION
36071
36072#ifndef DOCUMENTATION
36073 AsmCilInstruction.setDataPrototype(
36074 "Rose::BinaryAnalysis::CilInstructionKind", "kind", "= Rose::BinaryAnalysis::Cil_unknown_instruction",
36075 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36076#endif // !DOCUMENTATION
36077
36078 DECLARE_OTHERS(AsmCilInstruction);
36079#if defined(SgAsmCilInstruction_OTHERS) || defined(DOCUMENTATION)
36080
36081 //----------------------- Boost serialization for SgAsmCilInstruction -----------------------
36082#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36083private:
36084 friend class boost::serialization::access;
36085
36086 template<class S>
36087 void serialize(S &s, const unsigned /*version*/) {
36088 debugSerializationBegin("SgAsmCilInstruction");
36089 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
36090 s & BOOST_SERIALIZATION_NVP(p_kind);
36091 debugSerializationEnd("SgAsmCilInstruction");
36092 }
36093#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36094public:
36095public:
36102 Rose::BinaryAnalysis::CilInstructionKind const& get_kind() const;
36103 void set_kind(Rose::BinaryAnalysis::CilInstructionKind const&);
36105public:
36106 // Overrides are documented in the base classa
36107 virtual unsigned get_anyKind() const override;
36108public:
36111
36112public:
36115
36116public:
36118 SgAsmCilInstruction(rose_addr_t const& address,
36119 uint8_t const& architectureId,
36120 Rose::BinaryAnalysis::CilInstructionKind const& kind);
36121
36122protected:
36130#endif // SgAsmCilInstruction_OTHERS
36131#ifdef DOCUMENTATION
36132};
36133#endif // DOCUMENTATION
36134
36135
36137// SgAsmCilImplMapTable -- MACHINE GENERATED; DO NOT MODIFY --
36139
36140DECLARE_LEAF_CLASS(AsmCilImplMapTable);
36141IS_SERIALIZABLE(AsmCilImplMapTable);
36142
36143#ifndef DOCUMENTATION
36144AsmCilImplMapTable.useSmallHeader(true);
36145#endif // !DOCUMENTATION
36146
36147#ifdef DOCUMENTATION
36150#endif // DOCUMENTATION
36151
36152#ifndef DOCUMENTATION
36153 AsmCilImplMapTable.setDataPrototype(
36154 "std::vector<SgAsmCilImplMap*>", "elements", "",
36155 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36156#endif // !DOCUMENTATION
36157
36158 DECLARE_OTHERS(AsmCilImplMapTable);
36159#if defined(SgAsmCilImplMapTable_OTHERS) || defined(DOCUMENTATION)
36160
36161 //----------------------- Boost serialization for SgAsmCilImplMapTable -----------------------
36162#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36163private:
36164 friend class boost::serialization::access;
36165
36166 template<class S>
36167 void serialize(S &s, const unsigned /*version*/) {
36168 debugSerializationBegin("SgAsmCilImplMapTable");
36169 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36170 s & BOOST_SERIALIZATION_NVP(p_elements);
36171 debugSerializationEnd("SgAsmCilImplMapTable");
36172 }
36173#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36174
36175public:
36176 std::vector<SgAsmCilImplMap*> const& get_elements() const;
36177 std::vector<SgAsmCilImplMap*>& get_elements();
36178public:
36180public:
36183
36184public:
36187
36188protected:
36196#endif // SgAsmCilImplMapTable_OTHERS
36197#ifdef DOCUMENTATION
36198};
36199#endif // DOCUMENTATION
36200
36201
36203// SgAsmCilImplMap -- MACHINE GENERATED; DO NOT MODIFY --
36205
36206DECLARE_LEAF_CLASS(AsmCilImplMap);
36207IS_SERIALIZABLE(AsmCilImplMap);
36208
36209#ifndef DOCUMENTATION
36210AsmCilImplMap.useSmallHeader(true);
36211#endif // !DOCUMENTATION
36212
36213#ifdef DOCUMENTATION
36216#endif // DOCUMENTATION
36217
36218#ifndef DOCUMENTATION
36219 AsmCilImplMap.setDataPrototype(
36220 "uint16_t", "MappingFlags", "= 0",
36221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36222#endif // !DOCUMENTATION
36223
36224#ifndef DOCUMENTATION
36225 AsmCilImplMap.setDataPrototype(
36226 "uint32_t", "MemberForwarded", "= 0",
36227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36228#endif // !DOCUMENTATION
36229
36230#ifndef DOCUMENTATION
36231 AsmCilImplMap.setDataPrototype(
36232 "uint32_t", "ImportName", "= 0",
36233 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36234#endif // !DOCUMENTATION
36235
36236#ifndef DOCUMENTATION
36237 AsmCilImplMap.setDataPrototype(
36238 "uint32_t", "ImportScope", "= 0",
36239 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36240#endif // !DOCUMENTATION
36241
36242 DECLARE_OTHERS(AsmCilImplMap);
36243#if defined(SgAsmCilImplMap_OTHERS) || defined(DOCUMENTATION)
36244
36245 //----------------------- Boost serialization for SgAsmCilImplMap -----------------------
36246#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36247private:
36248 friend class boost::serialization::access;
36249
36250 template<class S>
36251 void serialize(S &s, const unsigned /*version*/) {
36252 debugSerializationBegin("SgAsmCilImplMap");
36253 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36254 s & BOOST_SERIALIZATION_NVP(p_MappingFlags);
36255 s & BOOST_SERIALIZATION_NVP(p_MemberForwarded);
36256 s & BOOST_SERIALIZATION_NVP(p_ImportName);
36257 s & BOOST_SERIALIZATION_NVP(p_ImportScope);
36258 debugSerializationEnd("SgAsmCilImplMap");
36259 }
36260#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36261
36262public:
36268 uint16_t const& get_MappingFlags() const;
36269 void set_MappingFlags(uint16_t const&);
36272public:
36278 uint32_t const& get_MemberForwarded() const;
36279 void set_MemberForwarded(uint32_t const&);
36282public:
36288 uint32_t const& get_ImportName() const;
36289 void set_ImportName(uint32_t const&);
36292public:
36298 uint32_t const& get_ImportScope() const;
36299 void set_ImportScope(uint32_t const&);
36301public:
36302 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36303 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36304 void dump(std::ostream&) const;
36305
36306 const SgAsmCilMetadata* get_MemberForwarded_object() const;
36307 const std::uint8_t* get_ImportName_string() const;
36308 const SgAsmCilMetadata* get_ImportScope_object() const;
36309public:
36312
36313public:
36316
36317protected:
36325#endif // SgAsmCilImplMap_OTHERS
36326#ifdef DOCUMENTATION
36327};
36328#endif // DOCUMENTATION
36329
36330
36332// SgAsmCilGenericParamTable -- MACHINE GENERATED; DO NOT MODIFY --
36334
36335DECLARE_LEAF_CLASS(AsmCilGenericParamTable);
36336IS_SERIALIZABLE(AsmCilGenericParamTable);
36337
36338#ifndef DOCUMENTATION
36339AsmCilGenericParamTable.useSmallHeader(true);
36340#endif // !DOCUMENTATION
36341
36342#ifdef DOCUMENTATION
36345#endif // DOCUMENTATION
36346
36347#ifndef DOCUMENTATION
36348 AsmCilGenericParamTable.setDataPrototype(
36349 "std::vector<SgAsmCilGenericParam*>", "elements", "",
36350 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36351#endif // !DOCUMENTATION
36352
36353 DECLARE_OTHERS(AsmCilGenericParamTable);
36354#if defined(SgAsmCilGenericParamTable_OTHERS) || defined(DOCUMENTATION)
36355
36356 //----------------------- Boost serialization for SgAsmCilGenericParamTable -----------------------
36357#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36358private:
36359 friend class boost::serialization::access;
36360
36361 template<class S>
36362 void serialize(S &s, const unsigned /*version*/) {
36363 debugSerializationBegin("SgAsmCilGenericParamTable");
36364 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36365 s & BOOST_SERIALIZATION_NVP(p_elements);
36366 debugSerializationEnd("SgAsmCilGenericParamTable");
36367 }
36368#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36369
36370public:
36371 std::vector<SgAsmCilGenericParam*> const& get_elements() const;
36372 std::vector<SgAsmCilGenericParam*>& get_elements();
36373public:
36375public:
36378
36379public:
36382
36383protected:
36391#endif // SgAsmCilGenericParamTable_OTHERS
36392#ifdef DOCUMENTATION
36393};
36394#endif // DOCUMENTATION
36395
36396
36398// SgAsmCilGenericParam -- MACHINE GENERATED; DO NOT MODIFY --
36400
36401DECLARE_LEAF_CLASS(AsmCilGenericParam);
36402IS_SERIALIZABLE(AsmCilGenericParam);
36403
36404#ifndef DOCUMENTATION
36405AsmCilGenericParam.useSmallHeader(true);
36406#endif // !DOCUMENTATION
36407
36408#ifdef DOCUMENTATION
36411#endif // DOCUMENTATION
36412
36413#ifndef DOCUMENTATION
36414 AsmCilGenericParam.setDataPrototype(
36415 "uint16_t", "Number", "= 0",
36416 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36417#endif // !DOCUMENTATION
36418
36419#ifndef DOCUMENTATION
36420 AsmCilGenericParam.setDataPrototype(
36421 "uint16_t", "Flags", "= 0",
36422 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36423#endif // !DOCUMENTATION
36424
36425#ifndef DOCUMENTATION
36426 AsmCilGenericParam.setDataPrototype(
36427 "uint32_t", "Owner", "= 0",
36428 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36429#endif // !DOCUMENTATION
36430
36431#ifndef DOCUMENTATION
36432 AsmCilGenericParam.setDataPrototype(
36433 "uint32_t", "Name", "= 0",
36434 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36435#endif // !DOCUMENTATION
36436
36437 DECLARE_OTHERS(AsmCilGenericParam);
36438#if defined(SgAsmCilGenericParam_OTHERS) || defined(DOCUMENTATION)
36439
36440 //----------------------- Boost serialization for SgAsmCilGenericParam -----------------------
36441#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36442private:
36443 friend class boost::serialization::access;
36444
36445 template<class S>
36446 void serialize(S &s, const unsigned /*version*/) {
36447 debugSerializationBegin("SgAsmCilGenericParam");
36448 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36449 s & BOOST_SERIALIZATION_NVP(p_Number);
36450 s & BOOST_SERIALIZATION_NVP(p_Flags);
36451 s & BOOST_SERIALIZATION_NVP(p_Owner);
36452 s & BOOST_SERIALIZATION_NVP(p_Name);
36453 debugSerializationEnd("SgAsmCilGenericParam");
36454 }
36455#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36456
36457public:
36463 uint16_t const& get_Number() const;
36464 void set_Number(uint16_t const&);
36467public:
36473 uint16_t const& get_Flags() const;
36474 void set_Flags(uint16_t const&);
36477public:
36483 uint32_t const& get_Owner() const;
36484 void set_Owner(uint32_t const&);
36487public:
36493 uint32_t const& get_Name() const;
36494 void set_Name(uint32_t const&);
36496public:
36497 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36498 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36499 void dump(std::ostream&) const;
36500
36501 const SgAsmCilMetadata* get_Owner_object() const;
36502 const std::uint8_t* get_Name_string() const;
36503public:
36506
36507public:
36510
36511protected:
36519#endif // SgAsmCilGenericParam_OTHERS
36520#ifdef DOCUMENTATION
36521};
36522#endif // DOCUMENTATION
36523
36524
36526// SgAsmCilGenericParamConstraintTable -- MACHINE GENERATED; DO NOT MODIFY --
36528
36529DECLARE_LEAF_CLASS(AsmCilGenericParamConstraintTable);
36530IS_SERIALIZABLE(AsmCilGenericParamConstraintTable);
36531
36532#ifndef DOCUMENTATION
36533AsmCilGenericParamConstraintTable.useSmallHeader(true);
36534#endif // !DOCUMENTATION
36535
36536#ifdef DOCUMENTATION
36539#endif // DOCUMENTATION
36540
36541#ifndef DOCUMENTATION
36542 AsmCilGenericParamConstraintTable.setDataPrototype(
36543 "std::vector<SgAsmCilGenericParamConstraint*>", "elements", "",
36544 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36545#endif // !DOCUMENTATION
36546
36547 DECLARE_OTHERS(AsmCilGenericParamConstraintTable);
36548#if defined(SgAsmCilGenericParamConstraintTable_OTHERS) || defined(DOCUMENTATION)
36549
36550 //----------------------- Boost serialization for SgAsmCilGenericParamConstraintTable -----------------------
36551#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36552private:
36553 friend class boost::serialization::access;
36554
36555 template<class S>
36556 void serialize(S &s, const unsigned /*version*/) {
36557 debugSerializationBegin("SgAsmCilGenericParamConstraintTable");
36558 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36559 s & BOOST_SERIALIZATION_NVP(p_elements);
36560 debugSerializationEnd("SgAsmCilGenericParamConstraintTable");
36561 }
36562#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36563
36564public:
36565 std::vector<SgAsmCilGenericParamConstraint*> const& get_elements() const;
36566 std::vector<SgAsmCilGenericParamConstraint*>& get_elements();
36567public:
36569public:
36572
36573public:
36576
36577protected:
36585#endif // SgAsmCilGenericParamConstraintTable_OTHERS
36586#ifdef DOCUMENTATION
36587};
36588#endif // DOCUMENTATION
36589
36590
36592// SgAsmCilGenericParamConstraint -- MACHINE GENERATED; DO NOT MODIFY --
36594
36595DECLARE_LEAF_CLASS(AsmCilGenericParamConstraint);
36596IS_SERIALIZABLE(AsmCilGenericParamConstraint);
36597
36598#ifndef DOCUMENTATION
36599AsmCilGenericParamConstraint.useSmallHeader(true);
36600#endif // !DOCUMENTATION
36601
36602#ifdef DOCUMENTATION
36605#endif // DOCUMENTATION
36606
36607#ifndef DOCUMENTATION
36608 AsmCilGenericParamConstraint.setDataPrototype(
36609 "uint32_t", "Owner", "= 0",
36610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36611#endif // !DOCUMENTATION
36612
36613#ifndef DOCUMENTATION
36614 AsmCilGenericParamConstraint.setDataPrototype(
36615 "uint32_t", "Constraint", "= 0",
36616 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36617#endif // !DOCUMENTATION
36618
36619 DECLARE_OTHERS(AsmCilGenericParamConstraint);
36620#if defined(SgAsmCilGenericParamConstraint_OTHERS) || defined(DOCUMENTATION)
36621
36622 //----------------------- Boost serialization for SgAsmCilGenericParamConstraint -----------------------
36623#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36624private:
36625 friend class boost::serialization::access;
36626
36627 template<class S>
36628 void serialize(S &s, const unsigned /*version*/) {
36629 debugSerializationBegin("SgAsmCilGenericParamConstraint");
36630 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36631 s & BOOST_SERIALIZATION_NVP(p_Owner);
36632 s & BOOST_SERIALIZATION_NVP(p_Constraint);
36633 debugSerializationEnd("SgAsmCilGenericParamConstraint");
36634 }
36635#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36636
36637public:
36643 uint32_t const& get_Owner() const;
36644 void set_Owner(uint32_t const&);
36647public:
36653 uint32_t const& get_Constraint() const;
36654 void set_Constraint(uint32_t const&);
36656public:
36657 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36658 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36659 void dump(std::ostream&) const;
36660
36661 const SgAsmCilMetadata* get_Owner_object() const;
36662 const SgAsmCilMetadata* get_Constraint_object() const;
36663public:
36666
36667public:
36670
36671protected:
36679#endif // SgAsmCilGenericParamConstraint_OTHERS
36680#ifdef DOCUMENTATION
36681};
36682#endif // DOCUMENTATION
36683
36684
36686// SgAsmCilFileTable -- MACHINE GENERATED; DO NOT MODIFY --
36688
36689DECLARE_LEAF_CLASS(AsmCilFileTable);
36690IS_SERIALIZABLE(AsmCilFileTable);
36691
36692#ifndef DOCUMENTATION
36693AsmCilFileTable.useSmallHeader(true);
36694#endif // !DOCUMENTATION
36695
36696#ifdef DOCUMENTATION
36699#endif // DOCUMENTATION
36700
36701#ifndef DOCUMENTATION
36702 AsmCilFileTable.setDataPrototype(
36703 "std::vector<SgAsmCilFile*>", "elements", "",
36704 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36705#endif // !DOCUMENTATION
36706
36707 DECLARE_OTHERS(AsmCilFileTable);
36708#if defined(SgAsmCilFileTable_OTHERS) || defined(DOCUMENTATION)
36709
36710 //----------------------- Boost serialization for SgAsmCilFileTable -----------------------
36711#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36712private:
36713 friend class boost::serialization::access;
36714
36715 template<class S>
36716 void serialize(S &s, const unsigned /*version*/) {
36717 debugSerializationBegin("SgAsmCilFileTable");
36718 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36719 s & BOOST_SERIALIZATION_NVP(p_elements);
36720 debugSerializationEnd("SgAsmCilFileTable");
36721 }
36722#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36723
36724public:
36725 std::vector<SgAsmCilFile*> const& get_elements() const;
36726 std::vector<SgAsmCilFile*>& get_elements();
36727public:
36729public:
36732
36733public:
36736
36737protected:
36745#endif // SgAsmCilFileTable_OTHERS
36746#ifdef DOCUMENTATION
36747};
36748#endif // DOCUMENTATION
36749
36750
36752// SgAsmCilFile -- MACHINE GENERATED; DO NOT MODIFY --
36754
36755DECLARE_LEAF_CLASS(AsmCilFile);
36756IS_SERIALIZABLE(AsmCilFile);
36757
36758#ifndef DOCUMENTATION
36759AsmCilFile.useSmallHeader(true);
36760#endif // !DOCUMENTATION
36761
36762#ifdef DOCUMENTATION
36765#endif // DOCUMENTATION
36766
36767#ifndef DOCUMENTATION
36768 AsmCilFile.setDataPrototype(
36769 "uint32_t", "Flags", "= 0",
36770 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36771#endif // !DOCUMENTATION
36772
36773#ifndef DOCUMENTATION
36774 AsmCilFile.setDataPrototype(
36775 "uint32_t", "Name", "= 0",
36776 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36777#endif // !DOCUMENTATION
36778
36779#ifndef DOCUMENTATION
36780 AsmCilFile.setDataPrototype(
36781 "uint32_t", "HashValue", "= 0",
36782 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36783#endif // !DOCUMENTATION
36784
36785 DECLARE_OTHERS(AsmCilFile);
36786#if defined(SgAsmCilFile_OTHERS) || defined(DOCUMENTATION)
36787
36788 //----------------------- Boost serialization for SgAsmCilFile -----------------------
36789#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36790private:
36791 friend class boost::serialization::access;
36792
36793 template<class S>
36794 void serialize(S &s, const unsigned /*version*/) {
36795 debugSerializationBegin("SgAsmCilFile");
36796 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36797 s & BOOST_SERIALIZATION_NVP(p_Flags);
36798 s & BOOST_SERIALIZATION_NVP(p_Name);
36799 s & BOOST_SERIALIZATION_NVP(p_HashValue);
36800 debugSerializationEnd("SgAsmCilFile");
36801 }
36802#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36803
36804public:
36810 uint32_t const& get_Flags() const;
36811 void set_Flags(uint32_t const&);
36814public:
36820 uint32_t const& get_Name() const;
36821 void set_Name(uint32_t const&);
36824public:
36830 uint32_t const& get_HashValue() const;
36831 void set_HashValue(uint32_t const&);
36833public:
36834 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36835 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36836 void dump(std::ostream&) const;
36837
36838 const std::uint8_t* get_Name_string() const;
36839 const std::uint8_t* get_HashValue_blob() const;
36840public:
36842 virtual ~SgAsmCilFile();
36843
36844public:
36847
36848protected:
36856#endif // SgAsmCilFile_OTHERS
36857#ifdef DOCUMENTATION
36858};
36859#endif // DOCUMENTATION
36860
36861
36863// SgAsmCilFieldTable -- MACHINE GENERATED; DO NOT MODIFY --
36865
36866DECLARE_LEAF_CLASS(AsmCilFieldTable);
36867IS_SERIALIZABLE(AsmCilFieldTable);
36868
36869#ifndef DOCUMENTATION
36870AsmCilFieldTable.useSmallHeader(true);
36871#endif // !DOCUMENTATION
36872
36873#ifdef DOCUMENTATION
36876#endif // DOCUMENTATION
36877
36878#ifndef DOCUMENTATION
36879 AsmCilFieldTable.setDataPrototype(
36880 "std::vector<SgAsmCilField*>", "elements", "",
36881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36882#endif // !DOCUMENTATION
36883
36884 DECLARE_OTHERS(AsmCilFieldTable);
36885#if defined(SgAsmCilFieldTable_OTHERS) || defined(DOCUMENTATION)
36886
36887 //----------------------- Boost serialization for SgAsmCilFieldTable -----------------------
36888#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36889private:
36890 friend class boost::serialization::access;
36891
36892 template<class S>
36893 void serialize(S &s, const unsigned /*version*/) {
36894 debugSerializationBegin("SgAsmCilFieldTable");
36895 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36896 s & BOOST_SERIALIZATION_NVP(p_elements);
36897 debugSerializationEnd("SgAsmCilFieldTable");
36898 }
36899#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36900
36901public:
36902 std::vector<SgAsmCilField*> const& get_elements() const;
36903 std::vector<SgAsmCilField*>& get_elements();
36904public:
36906public:
36909
36910public:
36913
36914protected:
36922#endif // SgAsmCilFieldTable_OTHERS
36923#ifdef DOCUMENTATION
36924};
36925#endif // DOCUMENTATION
36926
36927
36929// SgAsmCilFieldRVATable -- MACHINE GENERATED; DO NOT MODIFY --
36931
36932DECLARE_LEAF_CLASS(AsmCilFieldRVATable);
36933IS_SERIALIZABLE(AsmCilFieldRVATable);
36934
36935#ifndef DOCUMENTATION
36936AsmCilFieldRVATable.useSmallHeader(true);
36937#endif // !DOCUMENTATION
36938
36939#ifdef DOCUMENTATION
36942#endif // DOCUMENTATION
36943
36944#ifndef DOCUMENTATION
36945 AsmCilFieldRVATable.setDataPrototype(
36946 "std::vector<SgAsmCilFieldRVA*>", "elements", "",
36947 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36948#endif // !DOCUMENTATION
36949
36950 DECLARE_OTHERS(AsmCilFieldRVATable);
36951#if defined(SgAsmCilFieldRVATable_OTHERS) || defined(DOCUMENTATION)
36952
36953 //----------------------- Boost serialization for SgAsmCilFieldRVATable -----------------------
36954#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
36955private:
36956 friend class boost::serialization::access;
36957
36958 template<class S>
36959 void serialize(S &s, const unsigned /*version*/) {
36960 debugSerializationBegin("SgAsmCilFieldRVATable");
36961 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36962 s & BOOST_SERIALIZATION_NVP(p_elements);
36963 debugSerializationEnd("SgAsmCilFieldRVATable");
36964 }
36965#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
36966
36967public:
36968 std::vector<SgAsmCilFieldRVA*> const& get_elements() const;
36969 std::vector<SgAsmCilFieldRVA*>& get_elements();
36970public:
36972public:
36975
36976public:
36979
36980protected:
36988#endif // SgAsmCilFieldRVATable_OTHERS
36989#ifdef DOCUMENTATION
36990};
36991#endif // DOCUMENTATION
36992
36993
36995// SgAsmCilFieldRVA -- MACHINE GENERATED; DO NOT MODIFY --
36997
36998DECLARE_LEAF_CLASS(AsmCilFieldRVA);
36999IS_SERIALIZABLE(AsmCilFieldRVA);
37000
37001#ifndef DOCUMENTATION
37002AsmCilFieldRVA.useSmallHeader(true);
37003#endif // !DOCUMENTATION
37004
37005#ifdef DOCUMENTATION
37008#endif // DOCUMENTATION
37009
37010#ifndef DOCUMENTATION
37011 AsmCilFieldRVA.setDataPrototype(
37012 "uint32_t", "RVA", "= 0",
37013 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37014#endif // !DOCUMENTATION
37015
37016#ifndef DOCUMENTATION
37017 AsmCilFieldRVA.setDataPrototype(
37018 "uint32_t", "Field", "= 0",
37019 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37020#endif // !DOCUMENTATION
37021
37022 DECLARE_OTHERS(AsmCilFieldRVA);
37023#if defined(SgAsmCilFieldRVA_OTHERS) || defined(DOCUMENTATION)
37024
37025 //----------------------- Boost serialization for SgAsmCilFieldRVA -----------------------
37026#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37027private:
37028 friend class boost::serialization::access;
37029
37030 template<class S>
37031 void serialize(S &s, const unsigned /*version*/) {
37032 debugSerializationBegin("SgAsmCilFieldRVA");
37033 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37034 s & BOOST_SERIALIZATION_NVP(p_RVA);
37035 s & BOOST_SERIALIZATION_NVP(p_Field);
37036 debugSerializationEnd("SgAsmCilFieldRVA");
37037 }
37038#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37039
37040public:
37046 uint32_t const& get_RVA() const;
37047 void set_RVA(uint32_t const&);
37050public:
37056 uint32_t const& get_Field() const;
37057 void set_Field(uint32_t const&);
37059public:
37060 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37061 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37062 void dump(std::ostream&) const;
37063
37064 const SgAsmCilMetadata* get_Field_object() const;
37065public:
37068
37069public:
37072
37073protected:
37081#endif // SgAsmCilFieldRVA_OTHERS
37082#ifdef DOCUMENTATION
37083};
37084#endif // DOCUMENTATION
37085
37086
37088// SgAsmCilFieldMarshalTable -- MACHINE GENERATED; DO NOT MODIFY --
37090
37091DECLARE_LEAF_CLASS(AsmCilFieldMarshalTable);
37092IS_SERIALIZABLE(AsmCilFieldMarshalTable);
37093
37094#ifndef DOCUMENTATION
37095AsmCilFieldMarshalTable.useSmallHeader(true);
37096#endif // !DOCUMENTATION
37097
37098#ifdef DOCUMENTATION
37101#endif // DOCUMENTATION
37102
37103#ifndef DOCUMENTATION
37104 AsmCilFieldMarshalTable.setDataPrototype(
37105 "std::vector<SgAsmCilFieldMarshal*>", "elements", "",
37106 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37107#endif // !DOCUMENTATION
37108
37109 DECLARE_OTHERS(AsmCilFieldMarshalTable);
37110#if defined(SgAsmCilFieldMarshalTable_OTHERS) || defined(DOCUMENTATION)
37111
37112 //----------------------- Boost serialization for SgAsmCilFieldMarshalTable -----------------------
37113#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37114private:
37115 friend class boost::serialization::access;
37116
37117 template<class S>
37118 void serialize(S &s, const unsigned /*version*/) {
37119 debugSerializationBegin("SgAsmCilFieldMarshalTable");
37120 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37121 s & BOOST_SERIALIZATION_NVP(p_elements);
37122 debugSerializationEnd("SgAsmCilFieldMarshalTable");
37123 }
37124#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37125
37126public:
37127 std::vector<SgAsmCilFieldMarshal*> const& get_elements() const;
37128 std::vector<SgAsmCilFieldMarshal*>& get_elements();
37129public:
37131public:
37134
37135public:
37138
37139protected:
37147#endif // SgAsmCilFieldMarshalTable_OTHERS
37148#ifdef DOCUMENTATION
37149};
37150#endif // DOCUMENTATION
37151
37152
37154// SgAsmCilFieldMarshal -- MACHINE GENERATED; DO NOT MODIFY --
37156
37157DECLARE_LEAF_CLASS(AsmCilFieldMarshal);
37158IS_SERIALIZABLE(AsmCilFieldMarshal);
37159
37160#ifndef DOCUMENTATION
37161AsmCilFieldMarshal.useSmallHeader(true);
37162#endif // !DOCUMENTATION
37163
37164#ifdef DOCUMENTATION
37167#endif // DOCUMENTATION
37168
37169#ifndef DOCUMENTATION
37170 AsmCilFieldMarshal.setDataPrototype(
37171 "uint32_t", "Parent", "= 0",
37172 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37173#endif // !DOCUMENTATION
37174
37175#ifndef DOCUMENTATION
37176 AsmCilFieldMarshal.setDataPrototype(
37177 "uint32_t", "NativeType", "= 0",
37178 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37179#endif // !DOCUMENTATION
37180
37181 DECLARE_OTHERS(AsmCilFieldMarshal);
37182#if defined(SgAsmCilFieldMarshal_OTHERS) || defined(DOCUMENTATION)
37183
37184 //----------------------- Boost serialization for SgAsmCilFieldMarshal -----------------------
37185#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37186private:
37187 friend class boost::serialization::access;
37188
37189 template<class S>
37190 void serialize(S &s, const unsigned /*version*/) {
37191 debugSerializationBegin("SgAsmCilFieldMarshal");
37192 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37193 s & BOOST_SERIALIZATION_NVP(p_Parent);
37194 s & BOOST_SERIALIZATION_NVP(p_NativeType);
37195 debugSerializationEnd("SgAsmCilFieldMarshal");
37196 }
37197#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37198
37199public:
37205 uint32_t const& get_Parent() const;
37206 void set_Parent(uint32_t const&);
37209public:
37215 uint32_t const& get_NativeType() const;
37216 void set_NativeType(uint32_t const&);
37218public:
37219 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37220 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37221 void dump(std::ostream&) const;
37222
37223 const SgAsmCilMetadata* get_Parent_object() const;
37224 const std::uint8_t* get_NativeType_blob() const;
37225public:
37228
37229public:
37232
37233protected:
37241#endif // SgAsmCilFieldMarshal_OTHERS
37242#ifdef DOCUMENTATION
37243};
37244#endif // DOCUMENTATION
37245
37246
37248// SgAsmCilFieldLayoutTable -- MACHINE GENERATED; DO NOT MODIFY --
37250
37251DECLARE_LEAF_CLASS(AsmCilFieldLayoutTable);
37252IS_SERIALIZABLE(AsmCilFieldLayoutTable);
37253
37254#ifndef DOCUMENTATION
37255AsmCilFieldLayoutTable.useSmallHeader(true);
37256#endif // !DOCUMENTATION
37257
37258#ifdef DOCUMENTATION
37261#endif // DOCUMENTATION
37262
37263#ifndef DOCUMENTATION
37264 AsmCilFieldLayoutTable.setDataPrototype(
37265 "std::vector<SgAsmCilFieldLayout*>", "elements", "",
37266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37267#endif // !DOCUMENTATION
37268
37269 DECLARE_OTHERS(AsmCilFieldLayoutTable);
37270#if defined(SgAsmCilFieldLayoutTable_OTHERS) || defined(DOCUMENTATION)
37271
37272 //----------------------- Boost serialization for SgAsmCilFieldLayoutTable -----------------------
37273#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37274private:
37275 friend class boost::serialization::access;
37276
37277 template<class S>
37278 void serialize(S &s, const unsigned /*version*/) {
37279 debugSerializationBegin("SgAsmCilFieldLayoutTable");
37280 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37281 s & BOOST_SERIALIZATION_NVP(p_elements);
37282 debugSerializationEnd("SgAsmCilFieldLayoutTable");
37283 }
37284#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37285
37286public:
37287 std::vector<SgAsmCilFieldLayout*> const& get_elements() const;
37288 std::vector<SgAsmCilFieldLayout*>& get_elements();
37289public:
37291public:
37294
37295public:
37298
37299protected:
37307#endif // SgAsmCilFieldLayoutTable_OTHERS
37308#ifdef DOCUMENTATION
37309};
37310#endif // DOCUMENTATION
37311
37312
37314// SgAsmCilFieldLayout -- MACHINE GENERATED; DO NOT MODIFY --
37316
37317DECLARE_LEAF_CLASS(AsmCilFieldLayout);
37318IS_SERIALIZABLE(AsmCilFieldLayout);
37319
37320#ifndef DOCUMENTATION
37321AsmCilFieldLayout.useSmallHeader(true);
37322#endif // !DOCUMENTATION
37323
37324#ifdef DOCUMENTATION
37327#endif // DOCUMENTATION
37328
37329#ifndef DOCUMENTATION
37330 AsmCilFieldLayout.setDataPrototype(
37331 "uint32_t", "Offset", "= 0",
37332 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37333#endif // !DOCUMENTATION
37334
37335#ifndef DOCUMENTATION
37336 AsmCilFieldLayout.setDataPrototype(
37337 "uint32_t", "Field", "= 0",
37338 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37339#endif // !DOCUMENTATION
37340
37341 DECLARE_OTHERS(AsmCilFieldLayout);
37342#if defined(SgAsmCilFieldLayout_OTHERS) || defined(DOCUMENTATION)
37343
37344 //----------------------- Boost serialization for SgAsmCilFieldLayout -----------------------
37345#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37346private:
37347 friend class boost::serialization::access;
37348
37349 template<class S>
37350 void serialize(S &s, const unsigned /*version*/) {
37351 debugSerializationBegin("SgAsmCilFieldLayout");
37352 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37353 s & BOOST_SERIALIZATION_NVP(p_Offset);
37354 s & BOOST_SERIALIZATION_NVP(p_Field);
37355 debugSerializationEnd("SgAsmCilFieldLayout");
37356 }
37357#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37358
37359public:
37365 uint32_t const& get_Offset() const;
37366 void set_Offset(uint32_t const&);
37369public:
37375 uint32_t const& get_Field() const;
37376 void set_Field(uint32_t const&);
37378public:
37379 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37380 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37381 void dump(std::ostream&) const;
37382
37383 const SgAsmCilMetadata* get_Field_object() const;
37384public:
37387
37388public:
37391
37392protected:
37400#endif // SgAsmCilFieldLayout_OTHERS
37401#ifdef DOCUMENTATION
37402};
37403#endif // DOCUMENTATION
37404
37405
37407// SgAsmCilField -- MACHINE GENERATED; DO NOT MODIFY --
37409
37410DECLARE_LEAF_CLASS(AsmCilField);
37411IS_SERIALIZABLE(AsmCilField);
37412
37413#ifndef DOCUMENTATION
37414AsmCilField.useSmallHeader(true);
37415#endif // !DOCUMENTATION
37416
37417#ifdef DOCUMENTATION
37420#endif // DOCUMENTATION
37421
37422#ifndef DOCUMENTATION
37423 AsmCilField.setDataPrototype(
37424 "uint16_t", "Flags", "= 0",
37425 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37426#endif // !DOCUMENTATION
37427
37428#ifndef DOCUMENTATION
37429 AsmCilField.setDataPrototype(
37430 "uint32_t", "Name", "= 0",
37431 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37432#endif // !DOCUMENTATION
37433
37434#ifndef DOCUMENTATION
37435 AsmCilField.setDataPrototype(
37436 "uint32_t", "Signature", "= 0",
37437 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37438#endif // !DOCUMENTATION
37439
37440 DECLARE_OTHERS(AsmCilField);
37441#if defined(SgAsmCilField_OTHERS) || defined(DOCUMENTATION)
37442
37443 //----------------------- Boost serialization for SgAsmCilField -----------------------
37444#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37445private:
37446 friend class boost::serialization::access;
37447
37448 template<class S>
37449 void serialize(S &s, const unsigned /*version*/) {
37450 debugSerializationBegin("SgAsmCilField");
37451 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37452 s & BOOST_SERIALIZATION_NVP(p_Flags);
37453 s & BOOST_SERIALIZATION_NVP(p_Name);
37454 s & BOOST_SERIALIZATION_NVP(p_Signature);
37455 debugSerializationEnd("SgAsmCilField");
37456 }
37457#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37458
37459public:
37465 uint16_t const& get_Flags() const;
37466 void set_Flags(uint16_t const&);
37469public:
37475 uint32_t const& get_Name() const;
37476 void set_Name(uint32_t const&);
37479public:
37485 uint32_t const& get_Signature() const;
37486 void set_Signature(uint32_t const&);
37488public:
37489 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37490 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37491 void dump(std::ostream&) const;
37492
37493 const std::uint8_t* get_Name_string() const;
37494 const std::uint8_t* get_Signature_blob() const;
37495public:
37498
37499public:
37502
37503protected:
37511#endif // SgAsmCilField_OTHERS
37512#ifdef DOCUMENTATION
37513};
37514#endif // DOCUMENTATION
37515
37516
37518// SgAsmCilExportedTypeTable -- MACHINE GENERATED; DO NOT MODIFY --
37520
37521DECLARE_LEAF_CLASS(AsmCilExportedTypeTable);
37522IS_SERIALIZABLE(AsmCilExportedTypeTable);
37523
37524#ifndef DOCUMENTATION
37525AsmCilExportedTypeTable.useSmallHeader(true);
37526#endif // !DOCUMENTATION
37527
37528#ifdef DOCUMENTATION
37531#endif // DOCUMENTATION
37532
37533#ifndef DOCUMENTATION
37534 AsmCilExportedTypeTable.setDataPrototype(
37535 "std::vector<SgAsmCilExportedType*>", "elements", "",
37536 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37537#endif // !DOCUMENTATION
37538
37539 DECLARE_OTHERS(AsmCilExportedTypeTable);
37540#if defined(SgAsmCilExportedTypeTable_OTHERS) || defined(DOCUMENTATION)
37541
37542 //----------------------- Boost serialization for SgAsmCilExportedTypeTable -----------------------
37543#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37544private:
37545 friend class boost::serialization::access;
37546
37547 template<class S>
37548 void serialize(S &s, const unsigned /*version*/) {
37549 debugSerializationBegin("SgAsmCilExportedTypeTable");
37550 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37551 s & BOOST_SERIALIZATION_NVP(p_elements);
37552 debugSerializationEnd("SgAsmCilExportedTypeTable");
37553 }
37554#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37555
37556public:
37557 std::vector<SgAsmCilExportedType*> const& get_elements() const;
37558 std::vector<SgAsmCilExportedType*>& get_elements();
37559public:
37561public:
37564
37565public:
37568
37569protected:
37577#endif // SgAsmCilExportedTypeTable_OTHERS
37578#ifdef DOCUMENTATION
37579};
37580#endif // DOCUMENTATION
37581
37582
37584// SgAsmCilExportedType -- MACHINE GENERATED; DO NOT MODIFY --
37586
37587DECLARE_LEAF_CLASS(AsmCilExportedType);
37588IS_SERIALIZABLE(AsmCilExportedType);
37589
37590#ifndef DOCUMENTATION
37591AsmCilExportedType.useSmallHeader(true);
37592#endif // !DOCUMENTATION
37593
37594#ifdef DOCUMENTATION
37597#endif // DOCUMENTATION
37598
37599#ifndef DOCUMENTATION
37600 AsmCilExportedType.setDataPrototype(
37601 "uint32_t", "EventFlags", "= 0",
37602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37603#endif // !DOCUMENTATION
37604
37605#ifndef DOCUMENTATION
37606 AsmCilExportedType.setDataPrototype(
37607 "uint32_t", "TypeDefIdName", "= 0",
37608 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37609#endif // !DOCUMENTATION
37610
37611#ifndef DOCUMENTATION
37612 AsmCilExportedType.setDataPrototype(
37613 "uint32_t", "TypeName", "= 0",
37614 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37615#endif // !DOCUMENTATION
37616
37617#ifndef DOCUMENTATION
37618 AsmCilExportedType.setDataPrototype(
37619 "uint32_t", "TypeNamespace", "= 0",
37620 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37621#endif // !DOCUMENTATION
37622
37623#ifndef DOCUMENTATION
37624 AsmCilExportedType.setDataPrototype(
37625 "uint32_t", "Implementation", "= 0",
37626 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37627#endif // !DOCUMENTATION
37628
37629 DECLARE_OTHERS(AsmCilExportedType);
37630#if defined(SgAsmCilExportedType_OTHERS) || defined(DOCUMENTATION)
37631
37632 //----------------------- Boost serialization for SgAsmCilExportedType -----------------------
37633#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37634private:
37635 friend class boost::serialization::access;
37636
37637 template<class S>
37638 void serialize(S &s, const unsigned /*version*/) {
37639 debugSerializationBegin("SgAsmCilExportedType");
37640 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37641 s & BOOST_SERIALIZATION_NVP(p_EventFlags);
37642 s & BOOST_SERIALIZATION_NVP(p_TypeDefIdName);
37643 s & BOOST_SERIALIZATION_NVP(p_TypeName);
37644 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
37645 s & BOOST_SERIALIZATION_NVP(p_Implementation);
37646 debugSerializationEnd("SgAsmCilExportedType");
37647 }
37648#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37649
37650public:
37656 uint32_t const& get_EventFlags() const;
37657 void set_EventFlags(uint32_t const&);
37660public:
37666 uint32_t const& get_TypeDefIdName() const;
37667 void set_TypeDefIdName(uint32_t const&);
37670public:
37676 uint32_t const& get_TypeName() const;
37677 void set_TypeName(uint32_t const&);
37680public:
37686 uint32_t const& get_TypeNamespace() const;
37687 void set_TypeNamespace(uint32_t const&);
37690public:
37696 uint32_t const& get_Implementation() const;
37697 void set_Implementation(uint32_t const&);
37699public:
37700 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37701 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37702 void dump(std::ostream&) const;
37703
37704 const std::uint8_t* get_TypeName_string() const;
37705 const std::uint8_t* get_TypeNamespace_string() const;
37706 const SgAsmCilMetadata* get_Implementation_object() const;
37707public:
37710
37711public:
37714
37715protected:
37723#endif // SgAsmCilExportedType_OTHERS
37724#ifdef DOCUMENTATION
37725};
37726#endif // DOCUMENTATION
37727
37728
37730// SgAsmCilEventTable -- MACHINE GENERATED; DO NOT MODIFY --
37732
37733DECLARE_LEAF_CLASS(AsmCilEventTable);
37734IS_SERIALIZABLE(AsmCilEventTable);
37735
37736#ifndef DOCUMENTATION
37737AsmCilEventTable.useSmallHeader(true);
37738#endif // !DOCUMENTATION
37739
37740#ifdef DOCUMENTATION
37743#endif // DOCUMENTATION
37744
37745#ifndef DOCUMENTATION
37746 AsmCilEventTable.setDataPrototype(
37747 "std::vector<SgAsmCilEvent*>", "elements", "",
37748 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37749#endif // !DOCUMENTATION
37750
37751 DECLARE_OTHERS(AsmCilEventTable);
37752#if defined(SgAsmCilEventTable_OTHERS) || defined(DOCUMENTATION)
37753
37754 //----------------------- Boost serialization for SgAsmCilEventTable -----------------------
37755#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37756private:
37757 friend class boost::serialization::access;
37758
37759 template<class S>
37760 void serialize(S &s, const unsigned /*version*/) {
37761 debugSerializationBegin("SgAsmCilEventTable");
37762 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37763 s & BOOST_SERIALIZATION_NVP(p_elements);
37764 debugSerializationEnd("SgAsmCilEventTable");
37765 }
37766#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37767
37768public:
37769 std::vector<SgAsmCilEvent*> const& get_elements() const;
37770 std::vector<SgAsmCilEvent*>& get_elements();
37771public:
37773public:
37776
37777public:
37780
37781protected:
37789#endif // SgAsmCilEventTable_OTHERS
37790#ifdef DOCUMENTATION
37791};
37792#endif // DOCUMENTATION
37793
37794
37796// SgAsmCilEventMapTable -- MACHINE GENERATED; DO NOT MODIFY --
37798
37799DECLARE_LEAF_CLASS(AsmCilEventMapTable);
37800IS_SERIALIZABLE(AsmCilEventMapTable);
37801
37802#ifndef DOCUMENTATION
37803AsmCilEventMapTable.useSmallHeader(true);
37804#endif // !DOCUMENTATION
37805
37806#ifdef DOCUMENTATION
37809#endif // DOCUMENTATION
37810
37811#ifndef DOCUMENTATION
37812 AsmCilEventMapTable.setDataPrototype(
37813 "std::vector<SgAsmCilEventMap*>", "elements", "",
37814 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37815#endif // !DOCUMENTATION
37816
37817 DECLARE_OTHERS(AsmCilEventMapTable);
37818#if defined(SgAsmCilEventMapTable_OTHERS) || defined(DOCUMENTATION)
37819
37820 //----------------------- Boost serialization for SgAsmCilEventMapTable -----------------------
37821#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37822private:
37823 friend class boost::serialization::access;
37824
37825 template<class S>
37826 void serialize(S &s, const unsigned /*version*/) {
37827 debugSerializationBegin("SgAsmCilEventMapTable");
37828 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37829 s & BOOST_SERIALIZATION_NVP(p_elements);
37830 debugSerializationEnd("SgAsmCilEventMapTable");
37831 }
37832#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37833
37834public:
37835 std::vector<SgAsmCilEventMap*> const& get_elements() const;
37836 std::vector<SgAsmCilEventMap*>& get_elements();
37837public:
37839public:
37842
37843public:
37846
37847protected:
37855#endif // SgAsmCilEventMapTable_OTHERS
37856#ifdef DOCUMENTATION
37857};
37858#endif // DOCUMENTATION
37859
37860
37862// SgAsmCilEventMap -- MACHINE GENERATED; DO NOT MODIFY --
37864
37865DECLARE_LEAF_CLASS(AsmCilEventMap);
37866IS_SERIALIZABLE(AsmCilEventMap);
37867
37868#ifndef DOCUMENTATION
37869AsmCilEventMap.useSmallHeader(true);
37870#endif // !DOCUMENTATION
37871
37872#ifdef DOCUMENTATION
37875#endif // DOCUMENTATION
37876
37877#ifndef DOCUMENTATION
37878 AsmCilEventMap.setDataPrototype(
37879 "uint32_t", "Parent", "= 0",
37880 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37881#endif // !DOCUMENTATION
37882
37883#ifndef DOCUMENTATION
37884 AsmCilEventMap.setDataPrototype(
37885 "uint32_t", "EventList", "= 0",
37886 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37887#endif // !DOCUMENTATION
37888
37889 DECLARE_OTHERS(AsmCilEventMap);
37890#if defined(SgAsmCilEventMap_OTHERS) || defined(DOCUMENTATION)
37891
37892 //----------------------- Boost serialization for SgAsmCilEventMap -----------------------
37893#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37894private:
37895 friend class boost::serialization::access;
37896
37897 template<class S>
37898 void serialize(S &s, const unsigned /*version*/) {
37899 debugSerializationBegin("SgAsmCilEventMap");
37900 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37901 s & BOOST_SERIALIZATION_NVP(p_Parent);
37902 s & BOOST_SERIALIZATION_NVP(p_EventList);
37903 debugSerializationEnd("SgAsmCilEventMap");
37904 }
37905#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
37906
37907public:
37913 uint32_t const& get_Parent() const;
37914 void set_Parent(uint32_t const&);
37917public:
37923 uint32_t const& get_EventList() const;
37924 void set_EventList(uint32_t const&);
37926public:
37927 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37928 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37929 void dump(std::ostream&) const;
37930
37931 const SgAsmCilMetadata* get_Parent_object() const;
37932 const SgAsmCilMetadata* get_EventList_object() const;
37933public:
37936
37937public:
37940
37941protected:
37949#endif // SgAsmCilEventMap_OTHERS
37950#ifdef DOCUMENTATION
37951};
37952#endif // DOCUMENTATION
37953
37954
37956// SgAsmCilEvent -- MACHINE GENERATED; DO NOT MODIFY --
37958
37959DECLARE_LEAF_CLASS(AsmCilEvent);
37960IS_SERIALIZABLE(AsmCilEvent);
37961
37962#ifndef DOCUMENTATION
37963AsmCilEvent.useSmallHeader(true);
37964#endif // !DOCUMENTATION
37965
37966#ifdef DOCUMENTATION
37969#endif // DOCUMENTATION
37970
37971#ifndef DOCUMENTATION
37972 AsmCilEvent.setDataPrototype(
37973 "uint16_t", "EventFlags", "= 0",
37974 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37975#endif // !DOCUMENTATION
37976
37977#ifndef DOCUMENTATION
37978 AsmCilEvent.setDataPrototype(
37979 "uint32_t", "Name", "= 0",
37980 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37981#endif // !DOCUMENTATION
37982
37983#ifndef DOCUMENTATION
37984 AsmCilEvent.setDataPrototype(
37985 "uint32_t", "EventType", "= 0",
37986 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
37987#endif // !DOCUMENTATION
37988
37989 DECLARE_OTHERS(AsmCilEvent);
37990#if defined(SgAsmCilEvent_OTHERS) || defined(DOCUMENTATION)
37991
37992 //----------------------- Boost serialization for SgAsmCilEvent -----------------------
37993#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
37994private:
37995 friend class boost::serialization::access;
37996
37997 template<class S>
37998 void serialize(S &s, const unsigned /*version*/) {
37999 debugSerializationBegin("SgAsmCilEvent");
38000 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38001 s & BOOST_SERIALIZATION_NVP(p_EventFlags);
38002 s & BOOST_SERIALIZATION_NVP(p_Name);
38003 s & BOOST_SERIALIZATION_NVP(p_EventType);
38004 debugSerializationEnd("SgAsmCilEvent");
38005 }
38006#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38007
38008public:
38014 uint16_t const& get_EventFlags() const;
38015 void set_EventFlags(uint16_t const&);
38018public:
38024 uint32_t const& get_Name() const;
38025 void set_Name(uint32_t const&);
38028public:
38034 uint32_t const& get_EventType() const;
38035 void set_EventType(uint32_t const&);
38037public:
38038 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38039 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38040 void dump(std::ostream&) const;
38041
38042 const std::uint8_t* get_Name_string() const;
38043 const SgAsmCilMetadata* get_EventType_object() const;
38044public:
38047
38048public:
38051
38052protected:
38060#endif // SgAsmCilEvent_OTHERS
38061#ifdef DOCUMENTATION
38062};
38063#endif // DOCUMENTATION
38064
38065
38067// SgAsmCilDeclSecurityTable -- MACHINE GENERATED; DO NOT MODIFY --
38069
38070DECLARE_LEAF_CLASS(AsmCilDeclSecurityTable);
38071IS_SERIALIZABLE(AsmCilDeclSecurityTable);
38072
38073#ifndef DOCUMENTATION
38074AsmCilDeclSecurityTable.useSmallHeader(true);
38075#endif // !DOCUMENTATION
38076
38077#ifdef DOCUMENTATION
38080#endif // DOCUMENTATION
38081
38082#ifndef DOCUMENTATION
38083 AsmCilDeclSecurityTable.setDataPrototype(
38084 "std::vector<SgAsmCilDeclSecurity*>", "elements", "",
38085 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38086#endif // !DOCUMENTATION
38087
38088 DECLARE_OTHERS(AsmCilDeclSecurityTable);
38089#if defined(SgAsmCilDeclSecurityTable_OTHERS) || defined(DOCUMENTATION)
38090
38091 //----------------------- Boost serialization for SgAsmCilDeclSecurityTable -----------------------
38092#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38093private:
38094 friend class boost::serialization::access;
38095
38096 template<class S>
38097 void serialize(S &s, const unsigned /*version*/) {
38098 debugSerializationBegin("SgAsmCilDeclSecurityTable");
38099 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38100 s & BOOST_SERIALIZATION_NVP(p_elements);
38101 debugSerializationEnd("SgAsmCilDeclSecurityTable");
38102 }
38103#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38104
38105public:
38106 std::vector<SgAsmCilDeclSecurity*> const& get_elements() const;
38107 std::vector<SgAsmCilDeclSecurity*>& get_elements();
38108public:
38110public:
38113
38114public:
38117
38118protected:
38126#endif // SgAsmCilDeclSecurityTable_OTHERS
38127#ifdef DOCUMENTATION
38128};
38129#endif // DOCUMENTATION
38130
38131
38133// SgAsmCilDeclSecurity -- MACHINE GENERATED; DO NOT MODIFY --
38135
38136DECLARE_LEAF_CLASS(AsmCilDeclSecurity);
38137IS_SERIALIZABLE(AsmCilDeclSecurity);
38138
38139#ifndef DOCUMENTATION
38140AsmCilDeclSecurity.useSmallHeader(true);
38141#endif // !DOCUMENTATION
38142
38143#ifdef DOCUMENTATION
38146#endif // DOCUMENTATION
38147
38148#ifndef DOCUMENTATION
38149 AsmCilDeclSecurity.setDataPrototype(
38150 "uint16_t", "Action", "= 0",
38151 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38152#endif // !DOCUMENTATION
38153
38154#ifndef DOCUMENTATION
38155 AsmCilDeclSecurity.setDataPrototype(
38156 "uint32_t", "Parent", "= 0",
38157 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38158#endif // !DOCUMENTATION
38159
38160#ifndef DOCUMENTATION
38161 AsmCilDeclSecurity.setDataPrototype(
38162 "uint32_t", "PermissionSet", "= 0",
38163 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38164#endif // !DOCUMENTATION
38165
38166 DECLARE_OTHERS(AsmCilDeclSecurity);
38167#if defined(SgAsmCilDeclSecurity_OTHERS) || defined(DOCUMENTATION)
38168
38169 //----------------------- Boost serialization for SgAsmCilDeclSecurity -----------------------
38170#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38171private:
38172 friend class boost::serialization::access;
38173
38174 template<class S>
38175 void serialize(S &s, const unsigned /*version*/) {
38176 debugSerializationBegin("SgAsmCilDeclSecurity");
38177 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38178 s & BOOST_SERIALIZATION_NVP(p_Action);
38179 s & BOOST_SERIALIZATION_NVP(p_Parent);
38180 s & BOOST_SERIALIZATION_NVP(p_PermissionSet);
38181 debugSerializationEnd("SgAsmCilDeclSecurity");
38182 }
38183#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38184
38185public:
38191 uint16_t const& get_Action() const;
38192 void set_Action(uint16_t const&);
38195public:
38201 uint32_t const& get_Parent() const;
38202 void set_Parent(uint32_t const&);
38205public:
38211 uint32_t const& get_PermissionSet() const;
38212 void set_PermissionSet(uint32_t const&);
38214public:
38215 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38216 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38217 void dump(std::ostream&) const;
38218
38219 const SgAsmCilMetadata* get_Parent_object() const;
38220 const std::uint8_t* get_PermissionSet_blob() const;
38221public:
38224
38225public:
38228
38229protected:
38237#endif // SgAsmCilDeclSecurity_OTHERS
38238#ifdef DOCUMENTATION
38239};
38240#endif // DOCUMENTATION
38241
38242
38244// SgAsmCilDataStream -- MACHINE GENERATED; DO NOT MODIFY --
38246
38247#ifndef DOCUMENTATION
38248AstNodeClass& AsmCilDataStream = nonTerminalConstructor(
38249 "AsmCilDataStream",
38250 *this,
38251 "AsmCilDataStream",
38252 "AsmCilDataStreamTag",
38253 SubclassListBuilder()
38254 | AsmCilMetadataHeap
38255 | AsmCilUint32Heap
38256 | AsmCilUint8Heap
38257 , false);
38258assert(AsmCilDataStream.associatedGrammar != nullptr);
38259AsmCilDataStream.setCppCondition("!defined(DOCUMENTATION)");
38260AsmCilDataStream.isBoostSerializable(true);
38261AsmCilDataStream.setAutomaticGenerationOfConstructor(false);
38262AsmCilDataStream.setAutomaticGenerationOfDestructor(false);
38263#endif // !DOCUMENTATION
38264
38265#ifndef DOCUMENTATION
38266AsmCilDataStream.useSmallHeader(true);
38267#endif // !DOCUMENTATION
38268
38269#ifdef DOCUMENTATION
38272#endif // DOCUMENTATION
38273
38274#ifndef DOCUMENTATION
38275 AsmCilDataStream.setDataPrototype(
38276 "uint32_t", "Offset", "",
38277 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38278#endif // !DOCUMENTATION
38279
38280#ifndef DOCUMENTATION
38281 AsmCilDataStream.setDataPrototype(
38282 "uint32_t", "Size", "",
38283 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38284#endif // !DOCUMENTATION
38285
38286#ifndef DOCUMENTATION
38287 AsmCilDataStream.setDataPrototype(
38288 "std::string", "Name", "",
38289 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38290#endif // !DOCUMENTATION
38291
38292#ifndef DOCUMENTATION
38293 AsmCilDataStream.setDataPrototype(
38294 "uint32_t", "NamePadding", "",
38295 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38296#endif // !DOCUMENTATION
38297
38298 DECLARE_OTHERS(AsmCilDataStream);
38299#if defined(SgAsmCilDataStream_OTHERS) || defined(DOCUMENTATION)
38300
38301 //----------------------- Boost serialization for SgAsmCilDataStream -----------------------
38302#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38303private:
38304 friend class boost::serialization::access;
38305
38306 template<class S>
38307 void serialize(S &s, const unsigned /*version*/) {
38308 debugSerializationBegin("SgAsmCilDataStream");
38309 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
38310 s & BOOST_SERIALIZATION_NVP(p_Offset);
38311 s & BOOST_SERIALIZATION_NVP(p_Size);
38312 s & BOOST_SERIALIZATION_NVP(p_Name);
38313 s & BOOST_SERIALIZATION_NVP(p_NamePadding);
38314 debugSerializationEnd("SgAsmCilDataStream");
38315 }
38316#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38317
38318public:
38322 uint32_t const& get_Offset() const;
38323 void set_Offset(uint32_t const&);
38326public:
38330 uint32_t const& get_Size() const;
38331 void set_Size(uint32_t const&);
38334public:
38338 std::string const& get_Name() const;
38339 void set_Name(std::string const&);
38342public:
38346 uint32_t const& get_NamePadding() const;
38347 void set_NamePadding(uint32_t const&);
38349public:
38353 static const std::string ID_STRING_HEAP;
38354 static const std::string ID_BLOB_HEAP;
38355 static const std::string ID_US_HEAP;
38356 static const std::string ID_GUID_HEAP;
38357 static const std::string ID_METADATA_HEAP;
38369 virtual void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData); /* FIXME: should be abstract */
38370
38372 virtual void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const; /* FIXME: should be abstract */
38373
38375 virtual void dump(std::ostream& os) const; /* FIXME: should be abstract */
38376public:
38379
38380protected:
38383
38384protected:
38386 SgAsmCilDataStream(uint32_t const& Offset,
38387 uint32_t const& Size,
38388 std::string const& Name,
38389 uint32_t const& NamePadding);
38390
38391protected:
38399#endif // SgAsmCilDataStream_OTHERS
38400#ifdef DOCUMENTATION
38401};
38402#endif // DOCUMENTATION
38403
38404
38406// SgAsmCilCustomAttributeTable -- MACHINE GENERATED; DO NOT MODIFY --
38408
38409DECLARE_LEAF_CLASS(AsmCilCustomAttributeTable);
38410IS_SERIALIZABLE(AsmCilCustomAttributeTable);
38411
38412#ifndef DOCUMENTATION
38413AsmCilCustomAttributeTable.useSmallHeader(true);
38414#endif // !DOCUMENTATION
38415
38416#ifdef DOCUMENTATION
38419#endif // DOCUMENTATION
38420
38421#ifndef DOCUMENTATION
38422 AsmCilCustomAttributeTable.setDataPrototype(
38423 "std::vector<SgAsmCilCustomAttribute*>", "elements", "",
38424 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38425#endif // !DOCUMENTATION
38426
38427 DECLARE_OTHERS(AsmCilCustomAttributeTable);
38428#if defined(SgAsmCilCustomAttributeTable_OTHERS) || defined(DOCUMENTATION)
38429
38430 //----------------------- Boost serialization for SgAsmCilCustomAttributeTable -----------------------
38431#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38432private:
38433 friend class boost::serialization::access;
38434
38435 template<class S>
38436 void serialize(S &s, const unsigned /*version*/) {
38437 debugSerializationBegin("SgAsmCilCustomAttributeTable");
38438 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38439 s & BOOST_SERIALIZATION_NVP(p_elements);
38440 debugSerializationEnd("SgAsmCilCustomAttributeTable");
38441 }
38442#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38443
38444public:
38445 std::vector<SgAsmCilCustomAttribute*> const& get_elements() const;
38446 std::vector<SgAsmCilCustomAttribute*>& get_elements();
38447public:
38449public:
38452
38453public:
38456
38457protected:
38465#endif // SgAsmCilCustomAttributeTable_OTHERS
38466#ifdef DOCUMENTATION
38467};
38468#endif // DOCUMENTATION
38469
38470
38472// SgAsmCilCustomAttribute -- MACHINE GENERATED; DO NOT MODIFY --
38474
38475DECLARE_LEAF_CLASS(AsmCilCustomAttribute);
38476IS_SERIALIZABLE(AsmCilCustomAttribute);
38477
38478#ifndef DOCUMENTATION
38479AsmCilCustomAttribute.useSmallHeader(true);
38480#endif // !DOCUMENTATION
38481
38482#ifdef DOCUMENTATION
38485#endif // DOCUMENTATION
38486
38487#ifndef DOCUMENTATION
38488 AsmCilCustomAttribute.setDataPrototype(
38489 "uint32_t", "Parent", "= 0",
38490 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38491#endif // !DOCUMENTATION
38492
38493#ifndef DOCUMENTATION
38494 AsmCilCustomAttribute.setDataPrototype(
38495 "uint32_t", "Type", "= 0",
38496 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38497#endif // !DOCUMENTATION
38498
38499#ifndef DOCUMENTATION
38500 AsmCilCustomAttribute.setDataPrototype(
38501 "uint32_t", "Value", "= 0",
38502 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38503#endif // !DOCUMENTATION
38504
38505 DECLARE_OTHERS(AsmCilCustomAttribute);
38506#if defined(SgAsmCilCustomAttribute_OTHERS) || defined(DOCUMENTATION)
38507
38508 //----------------------- Boost serialization for SgAsmCilCustomAttribute -----------------------
38509#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38510private:
38511 friend class boost::serialization::access;
38512
38513 template<class S>
38514 void serialize(S &s, const unsigned /*version*/) {
38515 debugSerializationBegin("SgAsmCilCustomAttribute");
38516 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38517 s & BOOST_SERIALIZATION_NVP(p_Parent);
38518 s & BOOST_SERIALIZATION_NVP(p_Type);
38519 s & BOOST_SERIALIZATION_NVP(p_Value);
38520 debugSerializationEnd("SgAsmCilCustomAttribute");
38521 }
38522#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38523
38524public:
38530 uint32_t const& get_Parent() const;
38531 void set_Parent(uint32_t const&);
38534public:
38540 uint32_t const& get_Type() const;
38541 void set_Type(uint32_t const&);
38544public:
38550 uint32_t const& get_Value() const;
38551 void set_Value(uint32_t const&);
38553public:
38554 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38555 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38556 void dump(std::ostream&) const;
38557
38558 const SgAsmCilMetadata* get_Parent_object() const;
38559 const SgAsmCilMetadata* get_Type_object() const;
38560 const std::uint8_t* get_Value_blob() const;
38561public:
38564
38565public:
38568
38569protected:
38577#endif // SgAsmCilCustomAttribute_OTHERS
38578#ifdef DOCUMENTATION
38579};
38580#endif // DOCUMENTATION
38581
38582
38584// SgAsmCilConstantTable -- MACHINE GENERATED; DO NOT MODIFY --
38586
38587DECLARE_LEAF_CLASS(AsmCilConstantTable);
38588IS_SERIALIZABLE(AsmCilConstantTable);
38589
38590#ifndef DOCUMENTATION
38591AsmCilConstantTable.useSmallHeader(true);
38592#endif // !DOCUMENTATION
38593
38594#ifdef DOCUMENTATION
38597#endif // DOCUMENTATION
38598
38599#ifndef DOCUMENTATION
38600 AsmCilConstantTable.setDataPrototype(
38601 "std::vector<SgAsmCilConstant*>", "elements", "",
38602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38603#endif // !DOCUMENTATION
38604
38605 DECLARE_OTHERS(AsmCilConstantTable);
38606#if defined(SgAsmCilConstantTable_OTHERS) || defined(DOCUMENTATION)
38607
38608 //----------------------- Boost serialization for SgAsmCilConstantTable -----------------------
38609#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38610private:
38611 friend class boost::serialization::access;
38612
38613 template<class S>
38614 void serialize(S &s, const unsigned /*version*/) {
38615 debugSerializationBegin("SgAsmCilConstantTable");
38616 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38617 s & BOOST_SERIALIZATION_NVP(p_elements);
38618 debugSerializationEnd("SgAsmCilConstantTable");
38619 }
38620#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38621
38622public:
38623 std::vector<SgAsmCilConstant*> const& get_elements() const;
38624 std::vector<SgAsmCilConstant*>& get_elements();
38625public:
38627public:
38630
38631public:
38634
38635protected:
38643#endif // SgAsmCilConstantTable_OTHERS
38644#ifdef DOCUMENTATION
38645};
38646#endif // DOCUMENTATION
38647
38648
38650// SgAsmCilConstant -- MACHINE GENERATED; DO NOT MODIFY --
38652
38653DECLARE_LEAF_CLASS(AsmCilConstant);
38654IS_SERIALIZABLE(AsmCilConstant);
38655
38656#ifndef DOCUMENTATION
38657AsmCilConstant.useSmallHeader(true);
38658#endif // !DOCUMENTATION
38659
38660#ifdef DOCUMENTATION
38663#endif // DOCUMENTATION
38664
38665#ifndef DOCUMENTATION
38666 AsmCilConstant.setDataPrototype(
38667 "uint8_t", "Type", "= 0",
38668 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38669#endif // !DOCUMENTATION
38670
38671#ifndef DOCUMENTATION
38672 AsmCilConstant.setDataPrototype(
38673 "uint8_t", "Padding", "= 0",
38674 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38675#endif // !DOCUMENTATION
38676
38677#ifndef DOCUMENTATION
38678 AsmCilConstant.setDataPrototype(
38679 "uint32_t", "Parent", "= 0",
38680 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38681#endif // !DOCUMENTATION
38682
38683#ifndef DOCUMENTATION
38684 AsmCilConstant.setDataPrototype(
38685 "uint32_t", "Value", "= 0",
38686 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38687#endif // !DOCUMENTATION
38688
38689 DECLARE_OTHERS(AsmCilConstant);
38690#if defined(SgAsmCilConstant_OTHERS) || defined(DOCUMENTATION)
38691
38692 //----------------------- Boost serialization for SgAsmCilConstant -----------------------
38693#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38694private:
38695 friend class boost::serialization::access;
38696
38697 template<class S>
38698 void serialize(S &s, const unsigned /*version*/) {
38699 debugSerializationBegin("SgAsmCilConstant");
38700 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38701 s & BOOST_SERIALIZATION_NVP(p_Type);
38702 s & BOOST_SERIALIZATION_NVP(p_Padding);
38703 s & BOOST_SERIALIZATION_NVP(p_Parent);
38704 s & BOOST_SERIALIZATION_NVP(p_Value);
38705 debugSerializationEnd("SgAsmCilConstant");
38706 }
38707#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38708
38709public:
38715 uint8_t const& get_Type() const;
38716 void set_Type(uint8_t const&);
38719public:
38725 uint8_t const& get_Padding() const;
38726 void set_Padding(uint8_t const&);
38729public:
38735 uint32_t const& get_Parent() const;
38736 void set_Parent(uint32_t const&);
38739public:
38745 uint32_t const& get_Value() const;
38746 void set_Value(uint32_t const&);
38748public:
38749 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38750 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38751 void dump(std::ostream&) const;
38752
38753 const SgAsmCilMetadata* get_Parent_object() const;
38754 const std::uint8_t* get_Value_blob() const;
38755public:
38758
38759public:
38762
38763protected:
38771#endif // SgAsmCilConstant_OTHERS
38772#ifdef DOCUMENTATION
38773};
38774#endif // DOCUMENTATION
38775
38776
38778// SgAsmCilClassLayoutTable -- MACHINE GENERATED; DO NOT MODIFY --
38780
38781DECLARE_LEAF_CLASS(AsmCilClassLayoutTable);
38782IS_SERIALIZABLE(AsmCilClassLayoutTable);
38783
38784#ifndef DOCUMENTATION
38785AsmCilClassLayoutTable.useSmallHeader(true);
38786#endif // !DOCUMENTATION
38787
38788#ifdef DOCUMENTATION
38791#endif // DOCUMENTATION
38792
38793#ifndef DOCUMENTATION
38794 AsmCilClassLayoutTable.setDataPrototype(
38795 "std::vector<SgAsmCilClassLayout*>", "elements", "",
38796 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38797#endif // !DOCUMENTATION
38798
38799 DECLARE_OTHERS(AsmCilClassLayoutTable);
38800#if defined(SgAsmCilClassLayoutTable_OTHERS) || defined(DOCUMENTATION)
38801
38802 //----------------------- Boost serialization for SgAsmCilClassLayoutTable -----------------------
38803#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38804private:
38805 friend class boost::serialization::access;
38806
38807 template<class S>
38808 void serialize(S &s, const unsigned /*version*/) {
38809 debugSerializationBegin("SgAsmCilClassLayoutTable");
38810 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38811 s & BOOST_SERIALIZATION_NVP(p_elements);
38812 debugSerializationEnd("SgAsmCilClassLayoutTable");
38813 }
38814#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38815
38816public:
38817 std::vector<SgAsmCilClassLayout*> const& get_elements() const;
38818 std::vector<SgAsmCilClassLayout*>& get_elements();
38819public:
38821public:
38824
38825public:
38828
38829protected:
38837#endif // SgAsmCilClassLayoutTable_OTHERS
38838#ifdef DOCUMENTATION
38839};
38840#endif // DOCUMENTATION
38841
38842
38844// SgAsmCilClassLayout -- MACHINE GENERATED; DO NOT MODIFY --
38846
38847DECLARE_LEAF_CLASS(AsmCilClassLayout);
38848IS_SERIALIZABLE(AsmCilClassLayout);
38849
38850#ifndef DOCUMENTATION
38851AsmCilClassLayout.useSmallHeader(true);
38852#endif // !DOCUMENTATION
38853
38854#ifdef DOCUMENTATION
38857#endif // DOCUMENTATION
38858
38859#ifndef DOCUMENTATION
38860 AsmCilClassLayout.setDataPrototype(
38861 "uint16_t", "PackingSize", "= 0",
38862 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38863#endif // !DOCUMENTATION
38864
38865#ifndef DOCUMENTATION
38866 AsmCilClassLayout.setDataPrototype(
38867 "uint32_t", "ClassSize", "= 0",
38868 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38869#endif // !DOCUMENTATION
38870
38871#ifndef DOCUMENTATION
38872 AsmCilClassLayout.setDataPrototype(
38873 "uint32_t", "Parent", "= 0",
38874 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
38875#endif // !DOCUMENTATION
38876
38877 DECLARE_OTHERS(AsmCilClassLayout);
38878#if defined(SgAsmCilClassLayout_OTHERS) || defined(DOCUMENTATION)
38879
38880 //----------------------- Boost serialization for SgAsmCilClassLayout -----------------------
38881#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38882private:
38883 friend class boost::serialization::access;
38884
38885 template<class S>
38886 void serialize(S &s, const unsigned /*version*/) {
38887 debugSerializationBegin("SgAsmCilClassLayout");
38888 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38889 s & BOOST_SERIALIZATION_NVP(p_PackingSize);
38890 s & BOOST_SERIALIZATION_NVP(p_ClassSize);
38891 s & BOOST_SERIALIZATION_NVP(p_Parent);
38892 debugSerializationEnd("SgAsmCilClassLayout");
38893 }
38894#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38895
38896public:
38902 uint16_t const& get_PackingSize() const;
38903 void set_PackingSize(uint16_t const&);
38906public:
38912 uint32_t const& get_ClassSize() const;
38913 void set_ClassSize(uint32_t const&);
38916public:
38922 uint32_t const& get_Parent() const;
38923 void set_Parent(uint32_t const&);
38925public:
38926 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
38927 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
38928 void dump(std::ostream&) const;
38929
38930 const SgAsmCilMetadata* get_Parent_object() const;
38931public:
38934
38935public:
38938
38939protected:
38947#endif // SgAsmCilClassLayout_OTHERS
38948#ifdef DOCUMENTATION
38949};
38950#endif // DOCUMENTATION
38951
38952
38954// SgAsmCilAssemblyTable -- MACHINE GENERATED; DO NOT MODIFY --
38956
38957DECLARE_LEAF_CLASS(AsmCilAssemblyTable);
38958IS_SERIALIZABLE(AsmCilAssemblyTable);
38959
38960#ifndef DOCUMENTATION
38961AsmCilAssemblyTable.useSmallHeader(true);
38962#endif // !DOCUMENTATION
38963
38964#ifdef DOCUMENTATION
38967#endif // DOCUMENTATION
38968
38969#ifndef DOCUMENTATION
38970 AsmCilAssemblyTable.setDataPrototype(
38971 "std::vector<SgAsmCilAssembly*>", "elements", "",
38972 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
38973#endif // !DOCUMENTATION
38974
38975 DECLARE_OTHERS(AsmCilAssemblyTable);
38976#if defined(SgAsmCilAssemblyTable_OTHERS) || defined(DOCUMENTATION)
38977
38978 //----------------------- Boost serialization for SgAsmCilAssemblyTable -----------------------
38979#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
38980private:
38981 friend class boost::serialization::access;
38982
38983 template<class S>
38984 void serialize(S &s, const unsigned /*version*/) {
38985 debugSerializationBegin("SgAsmCilAssemblyTable");
38986 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
38987 s & BOOST_SERIALIZATION_NVP(p_elements);
38988 debugSerializationEnd("SgAsmCilAssemblyTable");
38989 }
38990#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
38991
38992public:
38993 std::vector<SgAsmCilAssembly*> const& get_elements() const;
38994 std::vector<SgAsmCilAssembly*>& get_elements();
38995public:
38997public:
39000
39001public:
39004
39005protected:
39013#endif // SgAsmCilAssemblyTable_OTHERS
39014#ifdef DOCUMENTATION
39015};
39016#endif // DOCUMENTATION
39017
39018
39020// SgAsmCilAssemblyRefTable -- MACHINE GENERATED; DO NOT MODIFY --
39022
39023DECLARE_LEAF_CLASS(AsmCilAssemblyRefTable);
39024IS_SERIALIZABLE(AsmCilAssemblyRefTable);
39025
39026#ifndef DOCUMENTATION
39027AsmCilAssemblyRefTable.useSmallHeader(true);
39028#endif // !DOCUMENTATION
39029
39030#ifdef DOCUMENTATION
39033#endif // DOCUMENTATION
39034
39035#ifndef DOCUMENTATION
39036 AsmCilAssemblyRefTable.setDataPrototype(
39037 "std::vector<SgAsmCilAssemblyRef*>", "elements", "",
39038 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39039#endif // !DOCUMENTATION
39040
39041 DECLARE_OTHERS(AsmCilAssemblyRefTable);
39042#if defined(SgAsmCilAssemblyRefTable_OTHERS) || defined(DOCUMENTATION)
39043
39044 //----------------------- Boost serialization for SgAsmCilAssemblyRefTable -----------------------
39045#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39046private:
39047 friend class boost::serialization::access;
39048
39049 template<class S>
39050 void serialize(S &s, const unsigned /*version*/) {
39051 debugSerializationBegin("SgAsmCilAssemblyRefTable");
39052 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39053 s & BOOST_SERIALIZATION_NVP(p_elements);
39054 debugSerializationEnd("SgAsmCilAssemblyRefTable");
39055 }
39056#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39057
39058public:
39059 std::vector<SgAsmCilAssemblyRef*> const& get_elements() const;
39060 std::vector<SgAsmCilAssemblyRef*>& get_elements();
39061public:
39063public:
39066
39067public:
39070
39071protected:
39079#endif // SgAsmCilAssemblyRefTable_OTHERS
39080#ifdef DOCUMENTATION
39081};
39082#endif // DOCUMENTATION
39083
39084
39086// SgAsmCilAssemblyRefProcessorTable -- MACHINE GENERATED; DO NOT MODIFY --
39088
39089DECLARE_LEAF_CLASS(AsmCilAssemblyRefProcessorTable);
39090IS_SERIALIZABLE(AsmCilAssemblyRefProcessorTable);
39091
39092#ifndef DOCUMENTATION
39093AsmCilAssemblyRefProcessorTable.useSmallHeader(true);
39094#endif // !DOCUMENTATION
39095
39096#ifdef DOCUMENTATION
39099#endif // DOCUMENTATION
39100
39101#ifndef DOCUMENTATION
39102 AsmCilAssemblyRefProcessorTable.setDataPrototype(
39103 "std::vector<SgAsmCilAssemblyRefProcessor*>", "elements", "",
39104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39105#endif // !DOCUMENTATION
39106
39107 DECLARE_OTHERS(AsmCilAssemblyRefProcessorTable);
39108#if defined(SgAsmCilAssemblyRefProcessorTable_OTHERS) || defined(DOCUMENTATION)
39109
39110 //----------------------- Boost serialization for SgAsmCilAssemblyRefProcessorTable -----------------------
39111#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39112private:
39113 friend class boost::serialization::access;
39114
39115 template<class S>
39116 void serialize(S &s, const unsigned /*version*/) {
39117 debugSerializationBegin("SgAsmCilAssemblyRefProcessorTable");
39118 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39119 s & BOOST_SERIALIZATION_NVP(p_elements);
39120 debugSerializationEnd("SgAsmCilAssemblyRefProcessorTable");
39121 }
39122#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39123
39124public:
39125 std::vector<SgAsmCilAssemblyRefProcessor*> const& get_elements() const;
39126 std::vector<SgAsmCilAssemblyRefProcessor*>& get_elements();
39127public:
39129public:
39132
39133public:
39136
39137protected:
39145#endif // SgAsmCilAssemblyRefProcessorTable_OTHERS
39146#ifdef DOCUMENTATION
39147};
39148#endif // DOCUMENTATION
39149
39150
39152// SgAsmCilAssemblyRefProcessor -- MACHINE GENERATED; DO NOT MODIFY --
39154
39155DECLARE_LEAF_CLASS(AsmCilAssemblyRefProcessor);
39156IS_SERIALIZABLE(AsmCilAssemblyRefProcessor);
39157
39158#ifndef DOCUMENTATION
39159AsmCilAssemblyRefProcessor.useSmallHeader(true);
39160#endif // !DOCUMENTATION
39161
39162#ifdef DOCUMENTATION
39165#endif // DOCUMENTATION
39166
39167#ifndef DOCUMENTATION
39168 AsmCilAssemblyRefProcessor.setDataPrototype(
39169 "uint32_t", "Processor", "= 0",
39170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39171#endif // !DOCUMENTATION
39172
39173#ifndef DOCUMENTATION
39174 AsmCilAssemblyRefProcessor.setDataPrototype(
39175 "uint32_t", "AssemblyRef", "= 0",
39176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39177#endif // !DOCUMENTATION
39178
39179 DECLARE_OTHERS(AsmCilAssemblyRefProcessor);
39180#if defined(SgAsmCilAssemblyRefProcessor_OTHERS) || defined(DOCUMENTATION)
39181
39182 //----------------------- Boost serialization for SgAsmCilAssemblyRefProcessor -----------------------
39183#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39184private:
39185 friend class boost::serialization::access;
39186
39187 template<class S>
39188 void serialize(S &s, const unsigned /*version*/) {
39189 debugSerializationBegin("SgAsmCilAssemblyRefProcessor");
39190 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39191 s & BOOST_SERIALIZATION_NVP(p_Processor);
39192 s & BOOST_SERIALIZATION_NVP(p_AssemblyRef);
39193 debugSerializationEnd("SgAsmCilAssemblyRefProcessor");
39194 }
39195#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39196
39197public:
39203 uint32_t const& get_Processor() const;
39204 void set_Processor(uint32_t const&);
39207public:
39213 uint32_t const& get_AssemblyRef() const;
39214 void set_AssemblyRef(uint32_t const&);
39216public:
39217 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39218 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39219 void dump(std::ostream&) const;
39220
39221 const SgAsmCilMetadata* get_AssemblyRef_object() const;
39222public:
39225
39226public:
39229
39230protected:
39238#endif // SgAsmCilAssemblyRefProcessor_OTHERS
39239#ifdef DOCUMENTATION
39240};
39241#endif // DOCUMENTATION
39242
39243
39245// SgAsmCilAssemblyRefOSTable -- MACHINE GENERATED; DO NOT MODIFY --
39247
39248DECLARE_LEAF_CLASS(AsmCilAssemblyRefOSTable);
39249IS_SERIALIZABLE(AsmCilAssemblyRefOSTable);
39250
39251#ifndef DOCUMENTATION
39252AsmCilAssemblyRefOSTable.useSmallHeader(true);
39253#endif // !DOCUMENTATION
39254
39255#ifdef DOCUMENTATION
39258#endif // DOCUMENTATION
39259
39260#ifndef DOCUMENTATION
39261 AsmCilAssemblyRefOSTable.setDataPrototype(
39262 "std::vector<SgAsmCilAssemblyRefOS*>", "elements", "",
39263 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39264#endif // !DOCUMENTATION
39265
39266 DECLARE_OTHERS(AsmCilAssemblyRefOSTable);
39267#if defined(SgAsmCilAssemblyRefOSTable_OTHERS) || defined(DOCUMENTATION)
39268
39269 //----------------------- Boost serialization for SgAsmCilAssemblyRefOSTable -----------------------
39270#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39271private:
39272 friend class boost::serialization::access;
39273
39274 template<class S>
39275 void serialize(S &s, const unsigned /*version*/) {
39276 debugSerializationBegin("SgAsmCilAssemblyRefOSTable");
39277 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39278 s & BOOST_SERIALIZATION_NVP(p_elements);
39279 debugSerializationEnd("SgAsmCilAssemblyRefOSTable");
39280 }
39281#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39282
39283public:
39284 std::vector<SgAsmCilAssemblyRefOS*> const& get_elements() const;
39285 std::vector<SgAsmCilAssemblyRefOS*>& get_elements();
39286public:
39288public:
39291
39292public:
39295
39296protected:
39304#endif // SgAsmCilAssemblyRefOSTable_OTHERS
39305#ifdef DOCUMENTATION
39306};
39307#endif // DOCUMENTATION
39308
39309
39311// SgAsmCilAssemblyRefOS -- MACHINE GENERATED; DO NOT MODIFY --
39313
39314DECLARE_LEAF_CLASS(AsmCilAssemblyRefOS);
39315IS_SERIALIZABLE(AsmCilAssemblyRefOS);
39316
39317#ifndef DOCUMENTATION
39318AsmCilAssemblyRefOS.useSmallHeader(true);
39319#endif // !DOCUMENTATION
39320
39321#ifdef DOCUMENTATION
39324#endif // DOCUMENTATION
39325
39326#ifndef DOCUMENTATION
39327 AsmCilAssemblyRefOS.setDataPrototype(
39328 "uint32_t", "OSPlatformID", "= 0",
39329 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39330#endif // !DOCUMENTATION
39331
39332#ifndef DOCUMENTATION
39333 AsmCilAssemblyRefOS.setDataPrototype(
39334 "uint32_t", "OSMajorVersion", "= 0",
39335 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39336#endif // !DOCUMENTATION
39337
39338#ifndef DOCUMENTATION
39339 AsmCilAssemblyRefOS.setDataPrototype(
39340 "uint32_t", "OSMinorVersion", "= 0",
39341 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39342#endif // !DOCUMENTATION
39343
39344#ifndef DOCUMENTATION
39345 AsmCilAssemblyRefOS.setDataPrototype(
39346 "uint32_t", "AssemblyRefOS", "= 0",
39347 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39348#endif // !DOCUMENTATION
39349
39350 DECLARE_OTHERS(AsmCilAssemblyRefOS);
39351#if defined(SgAsmCilAssemblyRefOS_OTHERS) || defined(DOCUMENTATION)
39352
39353 //----------------------- Boost serialization for SgAsmCilAssemblyRefOS -----------------------
39354#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39355private:
39356 friend class boost::serialization::access;
39357
39358 template<class S>
39359 void serialize(S &s, const unsigned /*version*/) {
39360 debugSerializationBegin("SgAsmCilAssemblyRefOS");
39361 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39362 s & BOOST_SERIALIZATION_NVP(p_OSPlatformID);
39363 s & BOOST_SERIALIZATION_NVP(p_OSMajorVersion);
39364 s & BOOST_SERIALIZATION_NVP(p_OSMinorVersion);
39365 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefOS);
39366 debugSerializationEnd("SgAsmCilAssemblyRefOS");
39367 }
39368#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39369
39370public:
39376 uint32_t const& get_OSPlatformID() const;
39377 void set_OSPlatformID(uint32_t const&);
39380public:
39386 uint32_t const& get_OSMajorVersion() const;
39387 void set_OSMajorVersion(uint32_t const&);
39390public:
39396 uint32_t const& get_OSMinorVersion() const;
39397 void set_OSMinorVersion(uint32_t const&);
39400public:
39406 uint32_t const& get_AssemblyRefOS() const;
39407 void set_AssemblyRefOS(uint32_t const&);
39409public:
39410 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39411 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39412 void dump(std::ostream&) const;
39413
39414 const SgAsmCilMetadata* get_AssemblyRefOS_object() const;
39415public:
39418
39419public:
39422
39423protected:
39431#endif // SgAsmCilAssemblyRefOS_OTHERS
39432#ifdef DOCUMENTATION
39433};
39434#endif // DOCUMENTATION
39435
39436
39438// SgAsmCilAssemblyRef -- MACHINE GENERATED; DO NOT MODIFY --
39440
39441DECLARE_LEAF_CLASS(AsmCilAssemblyRef);
39442IS_SERIALIZABLE(AsmCilAssemblyRef);
39443
39444#ifndef DOCUMENTATION
39445AsmCilAssemblyRef.useSmallHeader(true);
39446#endif // !DOCUMENTATION
39447
39448#ifdef DOCUMENTATION
39451#endif // DOCUMENTATION
39452
39453#ifndef DOCUMENTATION
39454 AsmCilAssemblyRef.setDataPrototype(
39455 "uint16_t", "MajorVersion", "= 0",
39456 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39457#endif // !DOCUMENTATION
39458
39459#ifndef DOCUMENTATION
39460 AsmCilAssemblyRef.setDataPrototype(
39461 "uint16_t", "MinorVersion", "= 0",
39462 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39463#endif // !DOCUMENTATION
39464
39465#ifndef DOCUMENTATION
39466 AsmCilAssemblyRef.setDataPrototype(
39467 "uint16_t", "BuildNumber", "= 0",
39468 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39469#endif // !DOCUMENTATION
39470
39471#ifndef DOCUMENTATION
39472 AsmCilAssemblyRef.setDataPrototype(
39473 "uint16_t", "RevisionNumber", "= 0",
39474 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39475#endif // !DOCUMENTATION
39476
39477#ifndef DOCUMENTATION
39478 AsmCilAssemblyRef.setDataPrototype(
39479 "uint32_t", "Flags", "= 0",
39480 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39481#endif // !DOCUMENTATION
39482
39483#ifndef DOCUMENTATION
39484 AsmCilAssemblyRef.setDataPrototype(
39485 "uint32_t", "PublicKeyOrToken", "= 0",
39486 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39487#endif // !DOCUMENTATION
39488
39489#ifndef DOCUMENTATION
39490 AsmCilAssemblyRef.setDataPrototype(
39491 "uint32_t", "Name", "= 0",
39492 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39493#endif // !DOCUMENTATION
39494
39495#ifndef DOCUMENTATION
39496 AsmCilAssemblyRef.setDataPrototype(
39497 "uint32_t", "Culture", "= 0",
39498 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39499#endif // !DOCUMENTATION
39500
39501#ifndef DOCUMENTATION
39502 AsmCilAssemblyRef.setDataPrototype(
39503 "uint32_t", "HashValue", "= 0",
39504 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39505#endif // !DOCUMENTATION
39506
39507 DECLARE_OTHERS(AsmCilAssemblyRef);
39508#if defined(SgAsmCilAssemblyRef_OTHERS) || defined(DOCUMENTATION)
39509
39510 //----------------------- Boost serialization for SgAsmCilAssemblyRef -----------------------
39511#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39512private:
39513 friend class boost::serialization::access;
39514
39515 template<class S>
39516 void serialize(S &s, const unsigned /*version*/) {
39517 debugSerializationBegin("SgAsmCilAssemblyRef");
39518 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39519 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
39520 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
39521 s & BOOST_SERIALIZATION_NVP(p_BuildNumber);
39522 s & BOOST_SERIALIZATION_NVP(p_RevisionNumber);
39523 s & BOOST_SERIALIZATION_NVP(p_Flags);
39524 s & BOOST_SERIALIZATION_NVP(p_PublicKeyOrToken);
39525 s & BOOST_SERIALIZATION_NVP(p_Name);
39526 s & BOOST_SERIALIZATION_NVP(p_Culture);
39527 s & BOOST_SERIALIZATION_NVP(p_HashValue);
39528 debugSerializationEnd("SgAsmCilAssemblyRef");
39529 }
39530#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39531
39532public:
39538 uint16_t const& get_MajorVersion() const;
39539 void set_MajorVersion(uint16_t const&);
39542public:
39548 uint16_t const& get_MinorVersion() const;
39549 void set_MinorVersion(uint16_t const&);
39552public:
39558 uint16_t const& get_BuildNumber() const;
39559 void set_BuildNumber(uint16_t const&);
39562public:
39568 uint16_t const& get_RevisionNumber() const;
39569 void set_RevisionNumber(uint16_t const&);
39572public:
39578 uint32_t const& get_Flags() const;
39579 void set_Flags(uint32_t const&);
39582public:
39588 uint32_t const& get_PublicKeyOrToken() const;
39589 void set_PublicKeyOrToken(uint32_t const&);
39592public:
39598 uint32_t const& get_Name() const;
39599 void set_Name(uint32_t const&);
39602public:
39608 uint32_t const& get_Culture() const;
39609 void set_Culture(uint32_t const&);
39612public:
39618 uint32_t const& get_HashValue() const;
39619 void set_HashValue(uint32_t const&);
39621public:
39622 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39623 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39624 void dump(std::ostream&) const;
39625
39626 const std::uint8_t* get_PublicKeyOrToken_blob() const;
39627 const std::uint8_t* get_Name_string() const;
39628 const std::uint8_t* get_Culture_string() const;
39629 const std::uint8_t* get_HashValue_blob() const;
39630public:
39633
39634public:
39637
39638protected:
39646#endif // SgAsmCilAssemblyRef_OTHERS
39647#ifdef DOCUMENTATION
39648};
39649#endif // DOCUMENTATION
39650
39651
39653// SgAsmCilAssemblyProcessorTable -- MACHINE GENERATED; DO NOT MODIFY --
39655
39656DECLARE_LEAF_CLASS(AsmCilAssemblyProcessorTable);
39657IS_SERIALIZABLE(AsmCilAssemblyProcessorTable);
39658
39659#ifndef DOCUMENTATION
39660AsmCilAssemblyProcessorTable.useSmallHeader(true);
39661#endif // !DOCUMENTATION
39662
39663#ifdef DOCUMENTATION
39666#endif // DOCUMENTATION
39667
39668#ifndef DOCUMENTATION
39669 AsmCilAssemblyProcessorTable.setDataPrototype(
39670 "std::vector<SgAsmCilAssemblyProcessor*>", "elements", "",
39671 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39672#endif // !DOCUMENTATION
39673
39674 DECLARE_OTHERS(AsmCilAssemblyProcessorTable);
39675#if defined(SgAsmCilAssemblyProcessorTable_OTHERS) || defined(DOCUMENTATION)
39676
39677 //----------------------- Boost serialization for SgAsmCilAssemblyProcessorTable -----------------------
39678#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39679private:
39680 friend class boost::serialization::access;
39681
39682 template<class S>
39683 void serialize(S &s, const unsigned /*version*/) {
39684 debugSerializationBegin("SgAsmCilAssemblyProcessorTable");
39685 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39686 s & BOOST_SERIALIZATION_NVP(p_elements);
39687 debugSerializationEnd("SgAsmCilAssemblyProcessorTable");
39688 }
39689#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39690
39691public:
39692 std::vector<SgAsmCilAssemblyProcessor*> const& get_elements() const;
39693 std::vector<SgAsmCilAssemblyProcessor*>& get_elements();
39694public:
39696public:
39699
39700public:
39703
39704protected:
39712#endif // SgAsmCilAssemblyProcessorTable_OTHERS
39713#ifdef DOCUMENTATION
39714};
39715#endif // DOCUMENTATION
39716
39717
39719// SgAsmCilAssemblyProcessor -- MACHINE GENERATED; DO NOT MODIFY --
39721
39722DECLARE_LEAF_CLASS(AsmCilAssemblyProcessor);
39723IS_SERIALIZABLE(AsmCilAssemblyProcessor);
39724
39725#ifndef DOCUMENTATION
39726AsmCilAssemblyProcessor.useSmallHeader(true);
39727#endif // !DOCUMENTATION
39728
39729#ifdef DOCUMENTATION
39732#endif // DOCUMENTATION
39733
39734#ifndef DOCUMENTATION
39735 AsmCilAssemblyProcessor.setDataPrototype(
39736 "uint32_t", "Processor", "= 0",
39737 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39738#endif // !DOCUMENTATION
39739
39740 DECLARE_OTHERS(AsmCilAssemblyProcessor);
39741#if defined(SgAsmCilAssemblyProcessor_OTHERS) || defined(DOCUMENTATION)
39742
39743 //----------------------- Boost serialization for SgAsmCilAssemblyProcessor -----------------------
39744#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39745private:
39746 friend class boost::serialization::access;
39747
39748 template<class S>
39749 void serialize(S &s, const unsigned /*version*/) {
39750 debugSerializationBegin("SgAsmCilAssemblyProcessor");
39751 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39752 s & BOOST_SERIALIZATION_NVP(p_Processor);
39753 debugSerializationEnd("SgAsmCilAssemblyProcessor");
39754 }
39755#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39756
39757public:
39763 uint32_t const& get_Processor() const;
39764 void set_Processor(uint32_t const&);
39766public:
39767 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39768 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39769 void dump(std::ostream&) const;
39770public:
39773
39774public:
39777
39778protected:
39786#endif // SgAsmCilAssemblyProcessor_OTHERS
39787#ifdef DOCUMENTATION
39788};
39789#endif // DOCUMENTATION
39790
39791
39793// SgAsmCilAssemblyOSTable -- MACHINE GENERATED; DO NOT MODIFY --
39795
39796DECLARE_LEAF_CLASS(AsmCilAssemblyOSTable);
39797IS_SERIALIZABLE(AsmCilAssemblyOSTable);
39798
39799#ifndef DOCUMENTATION
39800AsmCilAssemblyOSTable.useSmallHeader(true);
39801#endif // !DOCUMENTATION
39802
39803#ifdef DOCUMENTATION
39806#endif // DOCUMENTATION
39807
39808#ifndef DOCUMENTATION
39809 AsmCilAssemblyOSTable.setDataPrototype(
39810 "std::vector<SgAsmCilAssemblyOS*>", "elements", "",
39811 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
39812#endif // !DOCUMENTATION
39813
39814 DECLARE_OTHERS(AsmCilAssemblyOSTable);
39815#if defined(SgAsmCilAssemblyOSTable_OTHERS) || defined(DOCUMENTATION)
39816
39817 //----------------------- Boost serialization for SgAsmCilAssemblyOSTable -----------------------
39818#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39819private:
39820 friend class boost::serialization::access;
39821
39822 template<class S>
39823 void serialize(S &s, const unsigned /*version*/) {
39824 debugSerializationBegin("SgAsmCilAssemblyOSTable");
39825 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39826 s & BOOST_SERIALIZATION_NVP(p_elements);
39827 debugSerializationEnd("SgAsmCilAssemblyOSTable");
39828 }
39829#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39830
39831public:
39832 std::vector<SgAsmCilAssemblyOS*> const& get_elements() const;
39833 std::vector<SgAsmCilAssemblyOS*>& get_elements();
39834public:
39836public:
39839
39840public:
39843
39844protected:
39852#endif // SgAsmCilAssemblyOSTable_OTHERS
39853#ifdef DOCUMENTATION
39854};
39855#endif // DOCUMENTATION
39856
39857
39859// SgAsmCilAssemblyOS -- MACHINE GENERATED; DO NOT MODIFY --
39861
39862DECLARE_LEAF_CLASS(AsmCilAssemblyOS);
39863IS_SERIALIZABLE(AsmCilAssemblyOS);
39864
39865#ifndef DOCUMENTATION
39866AsmCilAssemblyOS.useSmallHeader(true);
39867#endif // !DOCUMENTATION
39868
39869#ifdef DOCUMENTATION
39872#endif // DOCUMENTATION
39873
39874#ifndef DOCUMENTATION
39875 AsmCilAssemblyOS.setDataPrototype(
39876 "uint32_t", "OSPlatformID", "= 0",
39877 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39878#endif // !DOCUMENTATION
39879
39880#ifndef DOCUMENTATION
39881 AsmCilAssemblyOS.setDataPrototype(
39882 "uint32_t", "OSMajorVersion", "= 0",
39883 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39884#endif // !DOCUMENTATION
39885
39886#ifndef DOCUMENTATION
39887 AsmCilAssemblyOS.setDataPrototype(
39888 "uint32_t", "OSMinorVersion", "= 0",
39889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39890#endif // !DOCUMENTATION
39891
39892 DECLARE_OTHERS(AsmCilAssemblyOS);
39893#if defined(SgAsmCilAssemblyOS_OTHERS) || defined(DOCUMENTATION)
39894
39895 //----------------------- Boost serialization for SgAsmCilAssemblyOS -----------------------
39896#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
39897private:
39898 friend class boost::serialization::access;
39899
39900 template<class S>
39901 void serialize(S &s, const unsigned /*version*/) {
39902 debugSerializationBegin("SgAsmCilAssemblyOS");
39903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
39904 s & BOOST_SERIALIZATION_NVP(p_OSPlatformID);
39905 s & BOOST_SERIALIZATION_NVP(p_OSMajorVersion);
39906 s & BOOST_SERIALIZATION_NVP(p_OSMinorVersion);
39907 debugSerializationEnd("SgAsmCilAssemblyOS");
39908 }
39909#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
39910
39911public:
39917 uint32_t const& get_OSPlatformID() const;
39918 void set_OSPlatformID(uint32_t const&);
39921public:
39927 uint32_t const& get_OSMajorVersion() const;
39928 void set_OSMajorVersion(uint32_t const&);
39931public:
39937 uint32_t const& get_OSMinorVersion() const;
39938 void set_OSMinorVersion(uint32_t const&);
39940public:
39941 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
39942 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
39943 void dump(std::ostream&) const;
39944public:
39947
39948public:
39951
39952protected:
39960#endif // SgAsmCilAssemblyOS_OTHERS
39961#ifdef DOCUMENTATION
39962};
39963#endif // DOCUMENTATION
39964
39965
39967// SgAsmCilAssembly -- MACHINE GENERATED; DO NOT MODIFY --
39969
39970DECLARE_LEAF_CLASS(AsmCilAssembly);
39971IS_SERIALIZABLE(AsmCilAssembly);
39972
39973#ifndef DOCUMENTATION
39974AsmCilAssembly.useSmallHeader(true);
39975#endif // !DOCUMENTATION
39976
39977#ifdef DOCUMENTATION
39980#endif // DOCUMENTATION
39981
39982#ifndef DOCUMENTATION
39983 AsmCilAssembly.setDataPrototype(
39984 "uint32_t", "HashAlgId", "= 0",
39985 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39986#endif // !DOCUMENTATION
39987
39988#ifndef DOCUMENTATION
39989 AsmCilAssembly.setDataPrototype(
39990 "uint16_t", "MajorVersion", "= 0",
39991 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39992#endif // !DOCUMENTATION
39993
39994#ifndef DOCUMENTATION
39995 AsmCilAssembly.setDataPrototype(
39996 "uint16_t", "MinorVersion", "= 0",
39997 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
39998#endif // !DOCUMENTATION
39999
40000#ifndef DOCUMENTATION
40001 AsmCilAssembly.setDataPrototype(
40002 "uint16_t", "BuildNumber", "= 0",
40003 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40004#endif // !DOCUMENTATION
40005
40006#ifndef DOCUMENTATION
40007 AsmCilAssembly.setDataPrototype(
40008 "uint16_t", "RevisionNumber", "= 0",
40009 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40010#endif // !DOCUMENTATION
40011
40012#ifndef DOCUMENTATION
40013 AsmCilAssembly.setDataPrototype(
40014 "uint32_t", "Flags", "= 0",
40015 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40016#endif // !DOCUMENTATION
40017
40018#ifndef DOCUMENTATION
40019 AsmCilAssembly.setDataPrototype(
40020 "uint32_t", "PublicKey", "= 0",
40021 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40022#endif // !DOCUMENTATION
40023
40024#ifndef DOCUMENTATION
40025 AsmCilAssembly.setDataPrototype(
40026 "uint32_t", "Name", "= 0",
40027 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40028#endif // !DOCUMENTATION
40029
40030#ifndef DOCUMENTATION
40031 AsmCilAssembly.setDataPrototype(
40032 "uint32_t", "Culture", "= 0",
40033 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40034#endif // !DOCUMENTATION
40035
40036 DECLARE_OTHERS(AsmCilAssembly);
40037#if defined(SgAsmCilAssembly_OTHERS) || defined(DOCUMENTATION)
40038
40039 //----------------------- Boost serialization for SgAsmCilAssembly -----------------------
40040#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
40041private:
40042 friend class boost::serialization::access;
40043
40044 template<class S>
40045 void serialize(S &s, const unsigned /*version*/) {
40046 debugSerializationBegin("SgAsmCilAssembly");
40047 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
40048 s & BOOST_SERIALIZATION_NVP(p_HashAlgId);
40049 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
40050 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
40051 s & BOOST_SERIALIZATION_NVP(p_BuildNumber);
40052 s & BOOST_SERIALIZATION_NVP(p_RevisionNumber);
40053 s & BOOST_SERIALIZATION_NVP(p_Flags);
40054 s & BOOST_SERIALIZATION_NVP(p_PublicKey);
40055 s & BOOST_SERIALIZATION_NVP(p_Name);
40056 s & BOOST_SERIALIZATION_NVP(p_Culture);
40057 debugSerializationEnd("SgAsmCilAssembly");
40058 }
40059#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
40060
40061public:
40067 uint32_t const& get_HashAlgId() const;
40068 void set_HashAlgId(uint32_t const&);
40071public:
40077 uint16_t const& get_MajorVersion() const;
40078 void set_MajorVersion(uint16_t const&);
40081public:
40087 uint16_t const& get_MinorVersion() const;
40088 void set_MinorVersion(uint16_t const&);
40091public:
40097 uint16_t const& get_BuildNumber() const;
40098 void set_BuildNumber(uint16_t const&);
40101public:
40107 uint16_t const& get_RevisionNumber() const;
40108 void set_RevisionNumber(uint16_t const&);
40111public:
40117 uint32_t const& get_Flags() const;
40118 void set_Flags(uint32_t const&);
40121public:
40127 uint32_t const& get_PublicKey() const;
40128 void set_PublicKey(uint32_t const&);
40131public:
40137 uint32_t const& get_Name() const;
40138 void set_Name(uint32_t const&);
40141public:
40147 uint32_t const& get_Culture() const;
40148 void set_Culture(uint32_t const&);
40150public:
40151 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
40152 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
40153 void dump(std::ostream&) const;
40154
40155 const std::uint8_t* get_PublicKey_blob() const;
40156 const std::uint8_t* get_Name_string() const;
40157 const std::uint8_t* get_Culture_string() const;
40158public:
40161
40162public:
40165
40166protected:
40174#endif // SgAsmCilAssembly_OTHERS
40175#ifdef DOCUMENTATION
40176};
40177#endif // DOCUMENTATION
40178
40179
40181// SgAsmCilMetadata -- MACHINE GENERATED; DO NOT MODIFY --
40183
40184#ifndef DOCUMENTATION
40185AstNodeClass& AsmCilMetadata = nonTerminalConstructor(
40186 "AsmCilMetadata",
40187 *this,
40188 "AsmCilMetadata",
40189 "AsmCilMetadataTag",
40190 SubclassListBuilder()
40191 | AsmCilAssembly
40192 | AsmCilAssemblyOS
40193 | AsmCilAssemblyOSTable
40194 | AsmCilAssemblyProcessor
40195 | AsmCilAssemblyProcessorTable
40196 | AsmCilAssemblyRef
40197 | AsmCilAssemblyRefOS
40198 | AsmCilAssemblyRefOSTable
40199 | AsmCilAssemblyRefProcessor
40200 | AsmCilAssemblyRefProcessorTable
40201 | AsmCilAssemblyRefTable
40202 | AsmCilAssemblyTable
40203 | AsmCilClassLayout
40204 | AsmCilClassLayoutTable
40205 | AsmCilConstant
40206 | AsmCilConstantTable
40207 | AsmCilCustomAttribute
40208 | AsmCilCustomAttributeTable
40209 | AsmCilDeclSecurity
40210 | AsmCilDeclSecurityTable
40211 | AsmCilEvent
40212 | AsmCilEventMap
40213 | AsmCilEventMapTable
40214 | AsmCilEventTable
40215 | AsmCilExportedType
40216 | AsmCilExportedTypeTable
40217 | AsmCilField
40218 | AsmCilFieldLayout
40219 | AsmCilFieldLayoutTable
40220 | AsmCilFieldMarshal
40221 | AsmCilFieldMarshalTable
40222 | AsmCilFieldRVA
40223 | AsmCilFieldRVATable
40224 | AsmCilFieldTable
40225 | AsmCilFile
40226 | AsmCilFileTable
40227 | AsmCilGenericParamConstraint
40228 | AsmCilGenericParamConstraintTable
40229 | AsmCilGenericParam
40230 | AsmCilGenericParamTable
40231 | AsmCilImplMap
40232 | AsmCilImplMapTable
40233 | AsmCilInterfaceImpl
40234 | AsmCilInterfaceImplTable
40235 | AsmCilManifestResource
40236 | AsmCilManifestResourceTable
40237 | AsmCilMemberRef
40238 | AsmCilMemberRefTable
40239 | AsmCilMethodDef
40240 | AsmCilMethodDefTable
40241 | AsmCilMethodImpl
40242 | AsmCilMethodImplTable
40243 | AsmCilMethodSemantics
40244 | AsmCilMethodSemanticsTable
40245 | AsmCilMethodSpec
40246 | AsmCilMethodSpecTable
40247 | AsmCilModule
40248 | AsmCilModuleRef
40249 | AsmCilModuleRefTable
40250 | AsmCilModuleTable
40251 | AsmCilNestedClass
40252 | AsmCilNestedClassTable
40253 | AsmCilParam
40254 | AsmCilParamTable
40255 | AsmCilProperty
40256 | AsmCilPropertyMap
40257 | AsmCilPropertyMapTable
40258 | AsmCilPropertyTable
40259 | AsmCilStandAloneSig
40260 | AsmCilStandAloneSigTable
40261 | AsmCilTypeDef
40262 | AsmCilTypeDefTable
40263 | AsmCilTypeRef
40264 | AsmCilTypeRefTable
40265 | AsmCilTypeSpec
40266 | AsmCilTypeSpecTable
40267 , false);
40268assert(AsmCilMetadata.associatedGrammar != nullptr);
40269AsmCilMetadata.setCppCondition("!defined(DOCUMENTATION)");
40270AsmCilMetadata.isBoostSerializable(true);
40271AsmCilMetadata.setAutomaticGenerationOfConstructor(false);
40272AsmCilMetadata.setAutomaticGenerationOfDestructor(false);
40273#endif // !DOCUMENTATION
40274
40275#ifndef DOCUMENTATION
40276AsmCilMetadata.useSmallHeader(true);
40277#endif // !DOCUMENTATION
40278
40279#ifdef DOCUMENTATION
40282#endif // DOCUMENTATION
40283
40284 DECLARE_OTHERS(AsmCilMetadata);
40285#if defined(SgAsmCilMetadata_OTHERS) || defined(DOCUMENTATION)
40286
40287 //----------------------- Boost serialization for SgAsmCilMetadata -----------------------
40288#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
40289private:
40290 friend class boost::serialization::access;
40291
40292 template<class S>
40293 void serialize(S &s, const unsigned /*version*/) {
40294 debugSerializationBegin("SgAsmCilMetadata");
40295 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
40296 debugSerializationEnd("SgAsmCilMetadata");
40297 }
40298#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
40299
40300public:
40303
40304protected:
40307
40308protected:
40316#endif // SgAsmCilMetadata_OTHERS
40317#ifdef DOCUMENTATION
40318};
40319#endif // DOCUMENTATION
40320
40321
40323// SgAsmCilNode -- MACHINE GENERATED; DO NOT MODIFY --
40325
40326#ifndef DOCUMENTATION
40327AstNodeClass& AsmCilNode = nonTerminalConstructor(
40328 "AsmCilNode",
40329 *this,
40330 "AsmCilNode",
40331 "AsmCilNodeTag",
40332 SubclassListBuilder()
40333 | AsmCilDataStream
40334 | AsmCilMetadata
40335 | AsmCilMetadataRoot
40336 , false);
40337assert(AsmCilNode.associatedGrammar != nullptr);
40338AsmCilNode.setCppCondition("!defined(DOCUMENTATION)");
40339AsmCilNode.isBoostSerializable(true);
40340AsmCilNode.setAutomaticGenerationOfConstructor(false);
40341AsmCilNode.setAutomaticGenerationOfDestructor(false);
40342#endif // !DOCUMENTATION
40343
40344#ifndef DOCUMENTATION
40345AsmCilNode.useSmallHeader(true);
40346#endif // !DOCUMENTATION
40347
40348#ifdef DOCUMENTATION
40351#endif // DOCUMENTATION
40352
40353 DECLARE_OTHERS(AsmCilNode);
40354#if defined(SgAsmCilNode_OTHERS) || defined(DOCUMENTATION)
40355
40356 //----------------------- Boost serialization for SgAsmCilNode -----------------------
40357#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
40358private:
40359 friend class boost::serialization::access;
40360
40361 template<class S>
40362 void serialize(S &s, const unsigned /*version*/) {
40363 debugSerializationBegin("SgAsmCilNode");
40364 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
40365 debugSerializationEnd("SgAsmCilNode");
40366 }
40367#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
40368
40369public:
40371 virtual ~SgAsmCilNode();
40372
40373protected:
40376
40377protected:
40385#endif // SgAsmCilNode_OTHERS
40386#ifdef DOCUMENTATION
40387};
40388#endif // DOCUMENTATION
40389
40390
40392// SgAsmByteOrder -- MACHINE GENERATED; DO NOT MODIFY --
40394
40395DECLARE_LEAF_CLASS(AsmByteOrder);
40396IS_SERIALIZABLE(AsmByteOrder);
40397
40398#ifndef DOCUMENTATION
40399AsmByteOrder.useSmallHeader(true);
40400#endif // !DOCUMENTATION
40401
40402DECLARE_HEADERS(AsmByteOrder);
40403#if defined(SgAsmByteOrder_HEADERS) || defined(DOCUMENTATION)
40404#include <Rose/BinaryAnalysis/ByteOrder.h>
40405#endif // SgAsmByteOrder_HEADERS
40406
40407#ifdef DOCUMENTATION
40410#endif // DOCUMENTATION
40411
40412 DECLARE_OTHERS(AsmByteOrder);
40413#if defined(SgAsmByteOrder_OTHERS) || defined(DOCUMENTATION)
40414
40415 //----------------------- Boost serialization for SgAsmByteOrder -----------------------
40416#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
40417private:
40418 friend class boost::serialization::access;
40419
40420 template<class S>
40421 void serialize(S &s, const unsigned /*version*/) {
40422 debugSerializationBegin("SgAsmByteOrder");
40423 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
40424 s & BOOST_SERIALIZATION_NVP(byteOrder_);
40425 debugSerializationEnd("SgAsmByteOrder");
40426 }
40427#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
40428public:
40429private:
40431
40432public:
40440public:
40443
40444public:
40447
40448public:
40451
40452protected:
40460#endif // SgAsmByteOrder_OTHERS
40461#ifdef DOCUMENTATION
40462};
40463#endif // DOCUMENTATION
40464
40465
40467// SgAsmBlock -- MACHINE GENERATED; DO NOT MODIFY --
40469
40470DECLARE_LEAF_CLASS(AsmBlock);
40471IS_SERIALIZABLE(AsmBlock);
40472
40473#ifndef DOCUMENTATION
40474AsmBlock.useSmallHeader(true);
40475#endif // !DOCUMENTATION
40476
40477DECLARE_HEADERS(AsmBlock);
40478#if defined(SgAsmBlock_HEADERS) || defined(DOCUMENTATION)
40479#include <sageContainer.h>
40480
40481#ifdef ROSE_SgAsmBlock_IMPL
40482#include <SgAsmInstruction.h> // for SgAsmInstruction::INVALID_STACK_DELTA
40483#endif
40484#endif // SgAsmBlock_HEADERS
40485
40486#ifdef DOCUMENTATION
40508#endif // DOCUMENTATION
40509
40510#ifndef DOCUMENTATION
40511 AsmBlock.setDataPrototype(
40512 "rose_addr_t", "id", "= 0",
40513 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40514#endif // !DOCUMENTATION
40515
40516#ifndef DOCUMENTATION
40517 AsmBlock.setDataPrototype(
40518 "unsigned", "reason", "= SgAsmBlock::BLK_NONE",
40519 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40520#endif // !DOCUMENTATION
40521
40522#ifndef DOCUMENTATION
40523 AsmBlock.setDataPrototype(
40524 "SgAsmStatementPtrList", "statementList", "",
40525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
40526#endif // !DOCUMENTATION
40527
40528#ifndef DOCUMENTATION
40529 AsmBlock.setDataPrototype(
40530 "SgAsmIntegerValuePtrList", "successors", "",
40531 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40532#endif // !DOCUMENTATION
40533
40534#ifndef DOCUMENTATION
40535 AsmBlock.setDataPrototype(
40536 "bool", "successorsComplete", "= false",
40537 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40538#endif // !DOCUMENTATION
40539
40540#ifndef DOCUMENTATION
40541 AsmBlock.setDataPrototype(
40542 "SgAsmBlock*", "immediateDominator", "= nullptr",
40543 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40544#endif // !DOCUMENTATION
40545
40546#ifndef DOCUMENTATION
40547 AsmBlock.setDataPrototype(
40548 "size_t", "cachedVertex", "= (size_t)(-1)",
40549 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40550#endif // !DOCUMENTATION
40551
40552#ifndef DOCUMENTATION
40553 AsmBlock.setDataPrototype(
40554 "double", "codeLikelihood", "= 0.0",
40555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40556#endif // !DOCUMENTATION
40557
40558#ifndef DOCUMENTATION
40559 AsmBlock.setDataPrototype(
40560 "int64_t", "stackDeltaOut", "= SgAsmInstruction::INVALID_STACK_DELTA",
40561 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
40562#endif // !DOCUMENTATION
40563
40564 DECLARE_OTHERS(AsmBlock);
40565#if defined(SgAsmBlock_OTHERS) || defined(DOCUMENTATION)
40566
40567 //----------------------- Boost serialization for SgAsmBlock -----------------------
40568#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
40569private:
40570 friend class boost::serialization::access;
40571
40572 template<class S>
40573 void serialize(S &s, const unsigned /*version*/) {
40574 debugSerializationBegin("SgAsmBlock");
40575 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
40576 s & BOOST_SERIALIZATION_NVP(p_reason);
40577 s & BOOST_SERIALIZATION_NVP(p_statementList);
40578 s & BOOST_SERIALIZATION_NVP(p_successors);
40579 s & BOOST_SERIALIZATION_NVP(p_successorsComplete);
40580 s & BOOST_SERIALIZATION_NVP(p_immediateDominator);
40581 s & BOOST_SERIALIZATION_NVP(p_cachedVertex);
40582 s & BOOST_SERIALIZATION_NVP(p_codeLikelihood);
40583 s & BOOST_SERIALIZATION_NVP(p_stackDeltaOut);
40584 debugSerializationEnd("SgAsmBlock");
40585 }
40586#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
40588 // Local types
40590public:
40592 enum Reason {
40593 // Please update SgAsmBlock::reasonString() if you change this enum!
40594 BLK_NONE = 0x00000000,
40595 BLK_ENTRY_POINT = 0x00010000,
40596 BLK_PADDING = 0x00020000,
40597 BLK_FRAGMENT = 0x00080000,
40599 BLK_CFGHEAD = 0x00100000,
40600 BLK_USERDEF = 0x00200000,
40601 BLK_LEFTOVERS = 0x00400000,
40603 BLK_JUMPTABLE = 0x00800000,
40604 BLK_GRAPH1 = 0x01000000,
40605 BLK_GRAPH2 = 0x02000000,
40606 BLK_GRAPH3 = 0x04000000,
40608 BLK_DEFAULT = BLK_NONE, //NO_STRINGIFY
40609
40610 // ========= Miscellaneous Reasons ===========================================================================
40611 // The first half of the range (1-127, inclusive) is used for algorithms defined by ROSE. The second half is
40612 // availalble for users to use as they see fit.
40613 BLK_MISCMASK = 0x000000ff,
40615 BLK_FINDDATA = 0x00000001,
40617 BLK_POSTFUNC = 0x00000002
40620
40622 // Properties
40624public:
40625
40626 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
40627public:
40633 rose_addr_t const& get_id() const;
40634 void set_id(rose_addr_t const&);
40637public:
40643 unsigned const& get_reason() const;
40644 void set_reason(unsigned const&);
40646 // statementList and successors should have been pointers to nodes that contain the list rather than being the lists
40647 // themselves because ROSETTA doesn't allow traversals on multiple list data members--we can traverse either one list or
40648 // the other, but not both. It's too late to change how this part of the AST is structured because so much user code
40649 // already depends on it, therefore we can only traverse statementList and not successors. [Robb Matzke 2016-02-25]
40650public:
40657 SgAsmStatementPtrList const& get_statementList() const;
40658 SgAsmStatementPtrList& get_statementList();
40659 void set_statementList(SgAsmStatementPtrList const&);
40661 // statementList and successors should have been pointers to nodes that contain the list rather than being the lists
40662 // themselves because ROSETTA doesn't allow traversals on multiple list data members--we can traverse either one list or
40663 // the other, but not both. It's too late to change how this part of the AST is structured because so much user code
40664 // already depends on it, therefore we can only traverse statementList and not successors. [Robb Matzke 2016-02-25]
40665public:
40673 SgAsmIntegerValuePtrList const& get_successors() const;
40674 SgAsmIntegerValuePtrList& get_successors();
40675 void set_successors(SgAsmIntegerValuePtrList const&);
40678public:
40689 bool const& get_successorsComplete() const;
40690 void set_successorsComplete(bool const&);
40693public:
40707public:
40716 size_t const& get_cachedVertex() const;
40717 void set_cachedVertex(size_t const&);
40719 // see BinaryAnalysis::ControlFlow
40720public:
40727 double const& get_codeLikelihood() const;
40728 void set_codeLikelihood(double const&);
40731public:
40740 int64_t const& get_stackDeltaOut() const;
40741 void set_stackDeltaOut(int64_t const&);
40744 // Functions
40746public:
40751
40756
40757 // FIXME[Robb P Matzke 2017-02-13]: wrong name -- erases only statements, not all children
40763
40768 rose_addr_t get_fallthroughVa();
40769
40774
40780 bool hasInstructions() const;
40781
40787 bool isBasicBlock() const;
40788
40798 bool isFunctionCall(rose_addr_t &target_va/*out*/, rose_addr_t &return_va/*out*/);
40799
40803 static std::string reasonKey(const std::string &prefix = "");
40804
40808 std::string reasonString(bool pad) const;
40809
40815 static std::string reasonString(bool pad, unsigned reason);
40816
40818 // Deprecated
40820
40821 // [Robb Matzke 2023-11-06]: deprecated 2023-11
40822 bool get_successors_complete() const ROSE_DEPRECATED("use get_successorsComplete");
40823 void set_successors_complete(bool) ROSE_DEPRECATED("use get_successorsComplete");
40824 SgAsmBlock* get_immediate_dominator() const ROSE_DEPRECATED("use get_immediateDominator");
40825 void set_immediate_dominator(SgAsmBlock*) ROSE_DEPRECATED("use set_immediateDominator");
40826 size_t get_cached_vertex() const ROSE_DEPRECATED("use get_cachedVertex");
40827 void set_cached_vertex(size_t) ROSE_DEPRECATED("use set_cachedVertex");
40828 double get_code_likelihood() const ROSE_DEPRECATED("use get_codeLikelihood");
40829 void set_code_likelihood(double) ROSE_DEPRECATED("use set_codeLikelihood");
40830 void append_statement(SgAsmStatement*) ROSE_DEPRECATED("use appendStatement");
40831 void remove_statement(SgAsmStatement*) ROSE_DEPRECATED("use removeStatement");
40832 void remove_children() ROSE_DEPRECATED("use removeChildren");
40833 rose_addr_t get_fallthrough_va() ROSE_DEPRECATED("use getFallthroughVa");
40834 SgAsmFunction* get_enclosing_function() const ROSE_DEPRECATED("use get_enclosingFunction");
40835 bool has_instructions() const ROSE_DEPRECATED("use hasInstructions");
40836 bool is_basic_block() const ROSE_DEPRECATED("use isBasicBlock");
40837 bool is_function_call(rose_addr_t&, rose_addr_t&) ROSE_DEPRECATED("use isFunctionCall");
40838 static std::string reason_key(const std::string& = "") ROSE_DEPRECATED("use reasonKey");
40839 std::string reason_str(bool) const ROSE_DEPRECATED("use reasonString");
40840 static std::string reason_str(bool, unsigned) ROSE_DEPRECATED("use reasonString");
40841public:
40843 virtual ~SgAsmBlock();
40844
40845public:
40848
40849public:
40851 explicit SgAsmBlock(rose_addr_t const& address);
40852
40853protected:
40861#endif // SgAsmBlock_OTHERS
40862#ifdef DOCUMENTATION
40863};
40864#endif // DOCUMENTATION
40865
40866
40868// SgAsmBinarySubtract -- MACHINE GENERATED; DO NOT MODIFY --
40870
40871DECLARE_LEAF_CLASS(AsmBinarySubtract);
40872IS_SERIALIZABLE(AsmBinarySubtract);
40873
40874#ifndef DOCUMENTATION
40875AsmBinarySubtract.useSmallHeader(true);
40876#endif // !DOCUMENTATION
40877
40878#ifdef DOCUMENTATION
40881#endif // DOCUMENTATION
40882
40883 DECLARE_OTHERS(AsmBinarySubtract);
40884#if defined(SgAsmBinarySubtract_OTHERS) || defined(DOCUMENTATION)
40885
40886 //----------------------- Boost serialization for SgAsmBinarySubtract -----------------------
40887#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
40888private:
40889 friend class boost::serialization::access;
40890
40891 template<class S>
40892 void serialize(S &s, const unsigned /*version*/) {
40893 debugSerializationBegin("SgAsmBinarySubtract");
40894 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
40895 debugSerializationEnd("SgAsmBinarySubtract");
40896 }
40897#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
40898
40899public:
40902
40903public:
40906
40907public:
40910 SgAsmExpression* const& rhs);
40911
40912protected:
40920#endif // SgAsmBinarySubtract_OTHERS
40921#ifdef DOCUMENTATION
40922};
40923#endif // DOCUMENTATION
40924
40925
40927// SgAsmBinaryRor -- MACHINE GENERATED; DO NOT MODIFY --
40929
40930DECLARE_LEAF_CLASS(AsmBinaryRor);
40931IS_SERIALIZABLE(AsmBinaryRor);
40932
40933#ifndef DOCUMENTATION
40934AsmBinaryRor.useSmallHeader(true);
40935#endif // !DOCUMENTATION
40936
40937#ifdef DOCUMENTATION
40940#endif // DOCUMENTATION
40941
40942 DECLARE_OTHERS(AsmBinaryRor);
40943#if defined(SgAsmBinaryRor_OTHERS) || defined(DOCUMENTATION)
40944
40945 //----------------------- Boost serialization for SgAsmBinaryRor -----------------------
40946#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
40947private:
40948 friend class boost::serialization::access;
40949
40950 template<class S>
40951 void serialize(S &s, const unsigned /*version*/) {
40952 debugSerializationBegin("SgAsmBinaryRor");
40953 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
40954 debugSerializationEnd("SgAsmBinaryRor");
40955 }
40956#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
40957
40958public:
40961
40962public:
40965
40966public:
40969 SgAsmExpression* const& rhs);
40970
40971protected:
40979#endif // SgAsmBinaryRor_OTHERS
40980#ifdef DOCUMENTATION
40981};
40982#endif // DOCUMENTATION
40983
40984
40986// SgAsmBinaryPreupdate -- MACHINE GENERATED; DO NOT MODIFY --
40988
40989DECLARE_LEAF_CLASS(AsmBinaryPreupdate);
40990IS_SERIALIZABLE(AsmBinaryPreupdate);
40991
40992#ifndef DOCUMENTATION
40993AsmBinaryPreupdate.useSmallHeader(true);
40994#endif // !DOCUMENTATION
40995
40996#ifdef DOCUMENTATION
41002#endif // DOCUMENTATION
41003
41004 DECLARE_OTHERS(AsmBinaryPreupdate);
41005#if defined(SgAsmBinaryPreupdate_OTHERS) || defined(DOCUMENTATION)
41006
41007 //----------------------- Boost serialization for SgAsmBinaryPreupdate -----------------------
41008#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41009private:
41010 friend class boost::serialization::access;
41011
41012 template<class S>
41013 void serialize(S &s, const unsigned /*version*/) {
41014 debugSerializationBegin("SgAsmBinaryPreupdate");
41015 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41016 debugSerializationEnd("SgAsmBinaryPreupdate");
41017 }
41018#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41019
41020public:
41023
41024public:
41027
41028public:
41031 SgAsmExpression* const& rhs);
41032
41033protected:
41041#endif // SgAsmBinaryPreupdate_OTHERS
41042#ifdef DOCUMENTATION
41043};
41044#endif // DOCUMENTATION
41045
41046
41048// SgAsmBinaryPostupdate -- MACHINE GENERATED; DO NOT MODIFY --
41050
41051DECLARE_LEAF_CLASS(AsmBinaryPostupdate);
41052IS_SERIALIZABLE(AsmBinaryPostupdate);
41053
41054#ifndef DOCUMENTATION
41055AsmBinaryPostupdate.useSmallHeader(true);
41056#endif // !DOCUMENTATION
41057
41058#ifdef DOCUMENTATION
41064#endif // DOCUMENTATION
41065
41066 DECLARE_OTHERS(AsmBinaryPostupdate);
41067#if defined(SgAsmBinaryPostupdate_OTHERS) || defined(DOCUMENTATION)
41068
41069 //----------------------- Boost serialization for SgAsmBinaryPostupdate -----------------------
41070#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41071private:
41072 friend class boost::serialization::access;
41073
41074 template<class S>
41075 void serialize(S &s, const unsigned /*version*/) {
41076 debugSerializationBegin("SgAsmBinaryPostupdate");
41077 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41078 debugSerializationEnd("SgAsmBinaryPostupdate");
41079 }
41080#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41081
41082public:
41085
41086public:
41089
41090public:
41093 SgAsmExpression* const& rhs);
41094
41095protected:
41103#endif // SgAsmBinaryPostupdate_OTHERS
41104#ifdef DOCUMENTATION
41105};
41106#endif // DOCUMENTATION
41107
41108
41110// SgAsmBinaryMultiply -- MACHINE GENERATED; DO NOT MODIFY --
41112
41113DECLARE_LEAF_CLASS(AsmBinaryMultiply);
41114IS_SERIALIZABLE(AsmBinaryMultiply);
41115
41116#ifndef DOCUMENTATION
41117AsmBinaryMultiply.useSmallHeader(true);
41118#endif // !DOCUMENTATION
41119
41120#ifdef DOCUMENTATION
41123#endif // DOCUMENTATION
41124
41125 DECLARE_OTHERS(AsmBinaryMultiply);
41126#if defined(SgAsmBinaryMultiply_OTHERS) || defined(DOCUMENTATION)
41127
41128 //----------------------- Boost serialization for SgAsmBinaryMultiply -----------------------
41129#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41130private:
41131 friend class boost::serialization::access;
41132
41133 template<class S>
41134 void serialize(S &s, const unsigned /*version*/) {
41135 debugSerializationBegin("SgAsmBinaryMultiply");
41136 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41137 debugSerializationEnd("SgAsmBinaryMultiply");
41138 }
41139#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41140
41141public:
41144
41145public:
41148
41149public:
41152 SgAsmExpression* const& rhs);
41153
41154protected:
41162#endif // SgAsmBinaryMultiply_OTHERS
41163#ifdef DOCUMENTATION
41164};
41165#endif // DOCUMENTATION
41166
41167
41169// SgAsmBinaryMsl -- MACHINE GENERATED; DO NOT MODIFY --
41171
41172DECLARE_LEAF_CLASS(AsmBinaryMsl);
41173IS_SERIALIZABLE(AsmBinaryMsl);
41174
41175#ifndef DOCUMENTATION
41176AsmBinaryMsl.useSmallHeader(true);
41177#endif // !DOCUMENTATION
41178
41179#ifdef DOCUMENTATION
41184#endif // DOCUMENTATION
41185
41186 DECLARE_OTHERS(AsmBinaryMsl);
41187#if defined(SgAsmBinaryMsl_OTHERS) || defined(DOCUMENTATION)
41188
41189 //----------------------- Boost serialization for SgAsmBinaryMsl -----------------------
41190#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41191private:
41192 friend class boost::serialization::access;
41193
41194 template<class S>
41195 void serialize(S &s, const unsigned /*version*/) {
41196 debugSerializationBegin("SgAsmBinaryMsl");
41197 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41198 debugSerializationEnd("SgAsmBinaryMsl");
41199 }
41200#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41201
41202public:
41205
41206public:
41209
41210public:
41213 SgAsmExpression* const& rhs);
41214
41215protected:
41223#endif // SgAsmBinaryMsl_OTHERS
41224#ifdef DOCUMENTATION
41225};
41226#endif // DOCUMENTATION
41227
41228
41230// SgAsmBinaryMod -- MACHINE GENERATED; DO NOT MODIFY --
41232
41233DECLARE_LEAF_CLASS(AsmBinaryMod);
41234IS_SERIALIZABLE(AsmBinaryMod);
41235
41236#ifndef DOCUMENTATION
41237AsmBinaryMod.useSmallHeader(true);
41238#endif // !DOCUMENTATION
41239
41240#ifdef DOCUMENTATION
41243#endif // DOCUMENTATION
41244
41245 DECLARE_OTHERS(AsmBinaryMod);
41246#if defined(SgAsmBinaryMod_OTHERS) || defined(DOCUMENTATION)
41247
41248 //----------------------- Boost serialization for SgAsmBinaryMod -----------------------
41249#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41250private:
41251 friend class boost::serialization::access;
41252
41253 template<class S>
41254 void serialize(S &s, const unsigned /*version*/) {
41255 debugSerializationBegin("SgAsmBinaryMod");
41256 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41257 debugSerializationEnd("SgAsmBinaryMod");
41258 }
41259#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41260
41261public:
41264
41265public:
41268
41269public:
41272 SgAsmExpression* const& rhs);
41273
41274protected:
41282#endif // SgAsmBinaryMod_OTHERS
41283#ifdef DOCUMENTATION
41284};
41285#endif // DOCUMENTATION
41286
41287
41289// SgAsmBinaryLsr -- MACHINE GENERATED; DO NOT MODIFY --
41291
41292DECLARE_LEAF_CLASS(AsmBinaryLsr);
41293IS_SERIALIZABLE(AsmBinaryLsr);
41294
41295#ifndef DOCUMENTATION
41296AsmBinaryLsr.useSmallHeader(true);
41297#endif // !DOCUMENTATION
41298
41299#ifdef DOCUMENTATION
41302#endif // DOCUMENTATION
41303
41304 DECLARE_OTHERS(AsmBinaryLsr);
41305#if defined(SgAsmBinaryLsr_OTHERS) || defined(DOCUMENTATION)
41306
41307 //----------------------- Boost serialization for SgAsmBinaryLsr -----------------------
41308#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41309private:
41310 friend class boost::serialization::access;
41311
41312 template<class S>
41313 void serialize(S &s, const unsigned /*version*/) {
41314 debugSerializationBegin("SgAsmBinaryLsr");
41315 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41316 debugSerializationEnd("SgAsmBinaryLsr");
41317 }
41318#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41319
41320public:
41323
41324public:
41327
41328public:
41331 SgAsmExpression* const& rhs);
41332
41333protected:
41341#endif // SgAsmBinaryLsr_OTHERS
41342#ifdef DOCUMENTATION
41343};
41344#endif // DOCUMENTATION
41345
41346
41348// SgAsmBinaryLsl -- MACHINE GENERATED; DO NOT MODIFY --
41350
41351DECLARE_LEAF_CLASS(AsmBinaryLsl);
41352IS_SERIALIZABLE(AsmBinaryLsl);
41353
41354#ifndef DOCUMENTATION
41355AsmBinaryLsl.useSmallHeader(true);
41356#endif // !DOCUMENTATION
41357
41358#ifdef DOCUMENTATION
41361#endif // DOCUMENTATION
41362
41363 DECLARE_OTHERS(AsmBinaryLsl);
41364#if defined(SgAsmBinaryLsl_OTHERS) || defined(DOCUMENTATION)
41365
41366 //----------------------- Boost serialization for SgAsmBinaryLsl -----------------------
41367#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41368private:
41369 friend class boost::serialization::access;
41370
41371 template<class S>
41372 void serialize(S &s, const unsigned /*version*/) {
41373 debugSerializationBegin("SgAsmBinaryLsl");
41374 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41375 debugSerializationEnd("SgAsmBinaryLsl");
41376 }
41377#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41378
41379public:
41382
41383public:
41386
41387public:
41390 SgAsmExpression* const& rhs);
41391
41392protected:
41400#endif // SgAsmBinaryLsl_OTHERS
41401#ifdef DOCUMENTATION
41402};
41403#endif // DOCUMENTATION
41404
41405
41407// SgAsmBinaryDivide -- MACHINE GENERATED; DO NOT MODIFY --
41409
41410DECLARE_LEAF_CLASS(AsmBinaryDivide);
41411IS_SERIALIZABLE(AsmBinaryDivide);
41412
41413#ifndef DOCUMENTATION
41414AsmBinaryDivide.useSmallHeader(true);
41415#endif // !DOCUMENTATION
41416
41417#ifdef DOCUMENTATION
41420#endif // DOCUMENTATION
41421
41422 DECLARE_OTHERS(AsmBinaryDivide);
41423#if defined(SgAsmBinaryDivide_OTHERS) || defined(DOCUMENTATION)
41424
41425 //----------------------- Boost serialization for SgAsmBinaryDivide -----------------------
41426#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41427private:
41428 friend class boost::serialization::access;
41429
41430 template<class S>
41431 void serialize(S &s, const unsigned /*version*/) {
41432 debugSerializationBegin("SgAsmBinaryDivide");
41433 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41434 debugSerializationEnd("SgAsmBinaryDivide");
41435 }
41436#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41437
41438public:
41441
41442public:
41445
41446public:
41449 SgAsmExpression* const& rhs);
41450
41451protected:
41459#endif // SgAsmBinaryDivide_OTHERS
41460#ifdef DOCUMENTATION
41461};
41462#endif // DOCUMENTATION
41463
41464
41466// SgAsmBinaryConcat -- MACHINE GENERATED; DO NOT MODIFY --
41468
41469DECLARE_LEAF_CLASS(AsmBinaryConcat);
41470IS_SERIALIZABLE(AsmBinaryConcat);
41471
41472#ifndef DOCUMENTATION
41473AsmBinaryConcat.useSmallHeader(true);
41474#endif // !DOCUMENTATION
41475
41476#ifdef DOCUMENTATION
41479#endif // DOCUMENTATION
41480
41481 DECLARE_OTHERS(AsmBinaryConcat);
41482#if defined(SgAsmBinaryConcat_OTHERS) || defined(DOCUMENTATION)
41483
41484 //----------------------- Boost serialization for SgAsmBinaryConcat -----------------------
41485#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41486private:
41487 friend class boost::serialization::access;
41488
41489 template<class S>
41490 void serialize(S &s, const unsigned /*version*/) {
41491 debugSerializationBegin("SgAsmBinaryConcat");
41492 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41493 debugSerializationEnd("SgAsmBinaryConcat");
41494 }
41495#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41496
41497public:
41500
41501public:
41504
41505public:
41508 SgAsmExpression* const& rhs);
41509
41510protected:
41518#endif // SgAsmBinaryConcat_OTHERS
41519#ifdef DOCUMENTATION
41520};
41521#endif // DOCUMENTATION
41522
41523
41525// SgAsmBinaryAsr -- MACHINE GENERATED; DO NOT MODIFY --
41527
41528DECLARE_LEAF_CLASS(AsmBinaryAsr);
41529IS_SERIALIZABLE(AsmBinaryAsr);
41530
41531#ifndef DOCUMENTATION
41532AsmBinaryAsr.useSmallHeader(true);
41533#endif // !DOCUMENTATION
41534
41535#ifdef DOCUMENTATION
41538#endif // DOCUMENTATION
41539
41540 DECLARE_OTHERS(AsmBinaryAsr);
41541#if defined(SgAsmBinaryAsr_OTHERS) || defined(DOCUMENTATION)
41542
41543 //----------------------- Boost serialization for SgAsmBinaryAsr -----------------------
41544#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41545private:
41546 friend class boost::serialization::access;
41547
41548 template<class S>
41549 void serialize(S &s, const unsigned /*version*/) {
41550 debugSerializationBegin("SgAsmBinaryAsr");
41551 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41552 debugSerializationEnd("SgAsmBinaryAsr");
41553 }
41554#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41555
41556public:
41559
41560public:
41563
41564public:
41567 SgAsmExpression* const& rhs);
41568
41569protected:
41577#endif // SgAsmBinaryAsr_OTHERS
41578#ifdef DOCUMENTATION
41579};
41580#endif // DOCUMENTATION
41581
41582
41584// SgAsmBinaryAdd -- MACHINE GENERATED; DO NOT MODIFY --
41586
41587DECLARE_LEAF_CLASS(AsmBinaryAdd);
41588IS_SERIALIZABLE(AsmBinaryAdd);
41589
41590#ifndef DOCUMENTATION
41591AsmBinaryAdd.useSmallHeader(true);
41592#endif // !DOCUMENTATION
41593
41594#ifdef DOCUMENTATION
41597#endif // DOCUMENTATION
41598
41599 DECLARE_OTHERS(AsmBinaryAdd);
41600#if defined(SgAsmBinaryAdd_OTHERS) || defined(DOCUMENTATION)
41601
41602 //----------------------- Boost serialization for SgAsmBinaryAdd -----------------------
41603#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41604private:
41605 friend class boost::serialization::access;
41606
41607 template<class S>
41608 void serialize(S &s, const unsigned /*version*/) {
41609 debugSerializationBegin("SgAsmBinaryAdd");
41610 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmBinaryExpression);
41611 debugSerializationEnd("SgAsmBinaryAdd");
41612 }
41613#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41614
41615public:
41618
41619public:
41622
41623public:
41626 SgAsmExpression* const& rhs);
41627
41628protected:
41636#endif // SgAsmBinaryAdd_OTHERS
41637#ifdef DOCUMENTATION
41638};
41639#endif // DOCUMENTATION
41640
41641
41643// SgAsmBinaryExpression -- MACHINE GENERATED; DO NOT MODIFY --
41645
41646#ifndef DOCUMENTATION
41647AstNodeClass& AsmBinaryExpression = nonTerminalConstructor(
41648 "AsmBinaryExpression",
41649 *this,
41650 "AsmBinaryExpression",
41651 "AsmBinaryExpressionTag",
41652 SubclassListBuilder()
41653 | AsmBinaryAdd
41654 | AsmBinaryAsr
41655 | AsmBinaryConcat
41656 | AsmBinaryDivide
41657 | AsmBinaryLsl
41658 | AsmBinaryLsr
41659 | AsmBinaryMod
41660 | AsmBinaryMsl
41661 | AsmBinaryMultiply
41662 | AsmBinaryPostupdate
41663 | AsmBinaryPreupdate
41664 | AsmBinaryRor
41665 | AsmBinarySubtract
41666 , false);
41667assert(AsmBinaryExpression.associatedGrammar != nullptr);
41668AsmBinaryExpression.setCppCondition("!defined(DOCUMENTATION)");
41669AsmBinaryExpression.isBoostSerializable(true);
41670AsmBinaryExpression.setAutomaticGenerationOfConstructor(false);
41671AsmBinaryExpression.setAutomaticGenerationOfDestructor(false);
41672#endif // !DOCUMENTATION
41673
41674#ifndef DOCUMENTATION
41675AsmBinaryExpression.useSmallHeader(true);
41676#endif // !DOCUMENTATION
41677
41678#ifdef DOCUMENTATION
41681#endif // DOCUMENTATION
41682
41683#ifndef DOCUMENTATION
41684 AsmBinaryExpression.setDataPrototype(
41685 "SgAsmExpression*", "lhs", "= nullptr",
41686 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
41687#endif // !DOCUMENTATION
41688
41689#ifndef DOCUMENTATION
41690 AsmBinaryExpression.setDataPrototype(
41691 "SgAsmExpression*", "rhs", "= nullptr",
41692 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
41693#endif // !DOCUMENTATION
41694
41695 DECLARE_OTHERS(AsmBinaryExpression);
41696#if defined(SgAsmBinaryExpression_OTHERS) || defined(DOCUMENTATION)
41697
41698 //----------------------- Boost serialization for SgAsmBinaryExpression -----------------------
41699#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41700private:
41701 friend class boost::serialization::access;
41702
41703 template<class S>
41704 void serialize(S &s, const unsigned /*version*/) {
41705 debugSerializationBegin("SgAsmBinaryExpression");
41706 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
41707 s & BOOST_SERIALIZATION_NVP(p_lhs);
41708 s & BOOST_SERIALIZATION_NVP(p_rhs);
41709 debugSerializationEnd("SgAsmBinaryExpression");
41710 }
41711#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41712public:
41713public:
41717 SgAsmExpression* const& get_lhs() const;
41721public:
41725 SgAsmExpression* const& get_rhs() const;
41729public:
41732
41733protected:
41736
41737protected:
41740 SgAsmExpression* const& rhs);
41741
41742protected:
41750#endif // SgAsmBinaryExpression_OTHERS
41751#ifdef DOCUMENTATION
41752};
41753#endif // DOCUMENTATION
41754
41755
41757// SgAsmBasicString -- MACHINE GENERATED; DO NOT MODIFY --
41759
41760DECLARE_LEAF_CLASS(AsmBasicString);
41761IS_SERIALIZABLE(AsmBasicString);
41762
41763#ifndef DOCUMENTATION
41764AsmBasicString.useSmallHeader(true);
41765#endif // !DOCUMENTATION
41766
41767#ifdef DOCUMENTATION
41773#endif // DOCUMENTATION
41774
41775#ifndef DOCUMENTATION
41776 AsmBasicString.setDataPrototype(
41777 "std::string", "string", "",
41778 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
41779#endif // !DOCUMENTATION
41780
41781 DECLARE_OTHERS(AsmBasicString);
41782#if defined(SgAsmBasicString_OTHERS) || defined(DOCUMENTATION)
41783
41784 //----------------------- Boost serialization for SgAsmBasicString -----------------------
41785#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41786private:
41787 friend class boost::serialization::access;
41788
41789 template<class S>
41790 void serialize(S &s, const unsigned /*version*/) {
41791 debugSerializationBegin("SgAsmBasicString");
41792 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericString);
41793 s & BOOST_SERIALIZATION_NVP(p_string);
41794 debugSerializationEnd("SgAsmBasicString");
41795 }
41796#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41797public:
41798public:
41799 virtual std::string get_string(bool escape=false) const override;
41800 virtual void set_string(const std::string&) override;
41801 virtual void set_string(rose_addr_t) override;
41802
41803public:
41807 explicit SgAsmBasicString(const std::string&);
41808 explicit SgAsmBasicString(const char*);
41811 // Overrides documented in base class
41812 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
41813public:
41816
41817public:
41820
41821protected:
41829#endif // SgAsmBasicString_OTHERS
41830#ifdef DOCUMENTATION
41831};
41832#endif // DOCUMENTATION
41833
41834
41836// SgAsmGenericString -- MACHINE GENERATED; DO NOT MODIFY --
41838
41839#ifndef DOCUMENTATION
41840AstNodeClass& AsmGenericString = nonTerminalConstructor(
41841 "AsmGenericString",
41842 *this,
41843 "AsmGenericString",
41844 "AsmGenericStringTag",
41845 SubclassListBuilder()
41846 | AsmBasicString
41847 | AsmStoredString
41848 , false);
41849assert(AsmGenericString.associatedGrammar != nullptr);
41850AsmGenericString.setCppCondition("!defined(DOCUMENTATION)");
41851AsmGenericString.isBoostSerializable(true);
41852AsmGenericString.setAutomaticGenerationOfConstructor(false);
41853AsmGenericString.setAutomaticGenerationOfDestructor(false);
41854#endif // !DOCUMENTATION
41855
41856#ifndef DOCUMENTATION
41857AsmGenericString.useSmallHeader(true);
41858#endif // !DOCUMENTATION
41859
41860#ifdef DOCUMENTATION
41863#endif // DOCUMENTATION
41864
41865 DECLARE_OTHERS(AsmGenericString);
41866#if defined(SgAsmGenericString_OTHERS) || defined(DOCUMENTATION)
41867
41868 //----------------------- Boost serialization for SgAsmGenericString -----------------------
41869#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
41870private:
41871 friend class boost::serialization::access;
41872
41873 template<class S>
41874 void serialize(S &s, const unsigned /*version*/) {
41875 debugSerializationBegin("SgAsmGenericString");
41876 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
41877 debugSerializationEnd("SgAsmGenericString");
41878 }
41879#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
41880public:
41882 static const rose_addr_t unallocated;
41883
41892 virtual std::string get_string(bool escape=false) const;
41893 virtual void set_string(const std::string &s);
41894 virtual void set_string(rose_addr_t);
41897 virtual rose_addr_t get_offset() const {return unallocated;}
41898
41899 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
41900public:
41903
41904protected:
41907
41908protected:
41916#endif // SgAsmGenericString_OTHERS
41917#ifdef DOCUMENTATION
41918};
41919#endif // DOCUMENTATION
41920
41921
41923// SgAsmExecutableFileFormat -- MACHINE GENERATED; DO NOT MODIFY --
41925
41926#ifndef DOCUMENTATION
41927AstNodeClass& AsmExecutableFileFormat = nonTerminalConstructor(
41928 "AsmExecutableFileFormat",
41929 *this,
41930 "AsmExecutableFileFormat",
41931 "AsmExecutableFileFormatTag",
41932 SubclassListBuilder()
41933 | AsmCoffSymbolList
41934 | AsmDwarfInformation
41935 | AsmElfDynamicEntry
41936 | AsmElfDynamicEntryList
41937 | AsmElfEHFrameEntryCI
41938 | AsmElfEHFrameEntryCIList
41939 | AsmElfEHFrameEntryFD
41940 | AsmElfEHFrameEntryFDList
41941 | AsmElfNoteEntry
41942 | AsmElfNoteEntryList
41943 | AsmElfRelocEntry
41944 | AsmElfRelocEntryList
41945 | AsmElfSectionTableEntry
41946 | AsmElfSegmentTableEntry
41947 | AsmElfSegmentTableEntryList
41948 | AsmElfSymbolList
41949 | AsmElfSymverDefinedAux
41950 | AsmElfSymverDefinedAuxList
41951 | AsmElfSymverDefinedEntry
41952 | AsmElfSymverDefinedEntryList
41953 | AsmElfSymverEntry
41954 | AsmElfSymverEntryList
41955 | AsmElfSymverNeededAux
41956 | AsmElfSymverNeededAuxList
41957 | AsmElfSymverNeededEntry
41958 | AsmElfSymverNeededEntryList
41959 | AsmGenericDLL
41960 | AsmGenericDLLList
41961 | AsmGenericFile
41962 | AsmGenericFormat
41963 | AsmGenericHeaderList
41964 | AsmGenericSection
41965 | AsmGenericSectionList
41966 | AsmGenericString
41967 | AsmGenericStrtab
41968 | AsmGenericSymbol
41969 | AsmGenericSymbolList
41970 | AsmLEEntryPoint
41971 | AsmLEPageTableEntry
41972 | AsmLESectionTableEntry
41973 | AsmNEEntryPoint
41974 | AsmNERelocEntry
41975 | AsmNESectionTableEntry
41976 | AsmPEExportDirectory
41977 | AsmPEExportEntry
41978 | AsmPEExportEntryList
41979 | AsmPEImportDirectory
41980 | AsmPEImportDirectoryList
41981 | AsmPEImportItem
41982 | AsmPEImportItemList
41983 | AsmPERVASizePair
41984 | AsmPERVASizePairList
41985 | AsmPESectionTableEntry
41986 | AsmStringStorage
41987 , false);
41988assert(AsmExecutableFileFormat.associatedGrammar != nullptr);
41989AsmExecutableFileFormat.setCppCondition("!defined(DOCUMENTATION)");
41990AsmExecutableFileFormat.isBoostSerializable(true);
41991AsmExecutableFileFormat.setAutomaticGenerationOfConstructor(false);
41992AsmExecutableFileFormat.setAutomaticGenerationOfDestructor(false);
41993#endif // !DOCUMENTATION
41994
41995#ifndef DOCUMENTATION
41996AsmExecutableFileFormat.useSmallHeader(true);
41997#endif // !DOCUMENTATION
41998
41999DECLARE_HEADERS(AsmExecutableFileFormat);
42000#if defined(SgAsmExecutableFileFormat_HEADERS) || defined(DOCUMENTATION)
42001#include <Rose/Exception.h>
42002#endif // SgAsmExecutableFileFormat_HEADERS
42003
42004#ifdef DOCUMENTATION
42007#endif // DOCUMENTATION
42008
42009 DECLARE_OTHERS(AsmExecutableFileFormat);
42010#if defined(SgAsmExecutableFileFormat_OTHERS) || defined(DOCUMENTATION)
42011
42012 //----------------------- Boost serialization for SgAsmExecutableFileFormat -----------------------
42013#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42014private:
42015 friend class boost::serialization::access;
42016
42017 template<class S>
42018 void serialize(S &s, const unsigned /*version*/) {
42019 debugSerializationBegin("SgAsmExecutableFileFormat");
42020 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
42021 debugSerializationEnd("SgAsmExecutableFileFormat");
42022 }
42023#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42025 // Local types
42027public:
42032 public:
42034 rose_addr_t offset;
42035 rose_addr_t size;
42037 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size)
42038 : Rose::Exception("short read"), section(section), offset(offset), size(size) {}
42039 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size, const std::string &mesg)
42041 ShortRead(const class SgAsmGenericSection *section, size_t offset, size_t size, const char *mesg)
42043 ~ShortRead() throw () {}
42044 };
42045
42050 public:
42052 rose_addr_t offset;
42053 rose_addr_t size;
42055 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size)
42057 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size, const std::string &mesg)
42059 ShortWrite(const class SgAsmGenericSection *section, size_t offset, size_t size, const char *mesg)
42061 };
42062
42067 public:
42068 FormatError(const std::string &mesg)
42069 : Rose::Exception(mesg) {}
42070 FormatError(const char *mesg)
42071 : Rose::Exception(mesg) {}
42072 ~FormatError() throw () {}
42073 };
42074
42076 typedef struct stat fileDetails;
42077
42089
42114
42118 ISA_OTHER = 0xffff,
42122 ISA_IA32_286 = 0x0101,
42123 ISA_IA32_386 = 0x0102,
42124 ISA_IA32_486 = 0x0103,
42141 ISA_SPARC_V7 = 0x0301,
42142 ISA_SPARC_V8 = 0x0302,
42143 ISA_SPARC_V8E = 0x0303,
42144 ISA_SPARC_V9 = 0x0304,
42145 ISA_SPARC_V9JPS1 = 0x0305,
42146 ISA_SPARC_V9UA = 0x0306,
42147 ISA_SPARC_V9JPS2 = 0x0307,
42148
42151 ISA_M68K_68EC000 = 0x0402,
42152 ISA_M68K_68HC000 = 0x0403,
42153 ISA_M68K_68008 = 0x0404,
42154 ISA_M68K_68010 = 0x0405,
42155 ISA_M68K_68012 = 0x0406,
42157 ISA_M68K_68EC020 = 0x0408,
42158 ISA_M68K_68030 = 0x0409,
42159 ISA_M68K_68EC030 = 0x040a,
42161 ISA_M68K_68EC040 = 0x040c,
42162 ISA_M68K_68LC040 = 0x040d,
42192 ISA_MIPS_R16000A = 0x0613,
42193 ISA_MIPS_16 = 0x0614,
42194 ISA_MIPS_FPU = 0x0615,
42205 // See http://en.wikipedia.org/wiki/ARM_architecture
42207 ISA_ARM_ARM1 = 0x0901,
42208 ISA_ARM_ARM2 = 0x0902,
42209 ISA_ARM_ARM3 = 0x0903,
42210 ISA_ARM_ARM6 = 0x0904,
42211 ISA_ARM_ARM7 = 0x0905,
42214 ISA_ARM_ARM8 = 0x0908,
42216 ISA_ARM_ARM9E = 0x090a,
42218 ISA_ARM_XScale = 0x090c,
42222 ISA_ARM_ARM11 = 0x090d,
42224 ISA_ARM_A64 = 0x090f,
42226 ISA_JVM = 0x0a00,
42228 // Others, not yet incorporated into this enum
42229 ISA_OTHER_Family = 0xf000,
42230
42232 ISA_IBM_System_370 = 0xf002,
42233 ISA_HPPA = 0xf003,
42234 ISA_Fujitsu_VPP500 = 0xf004,
42235 ISA_Sun_v8plus = 0xf005,
42236 ISA_PowerPC = 0xf006,
42237 ISA_PowerPC_64bit = 0xf007,
42238 ISA_IBM_S390 = 0xf008,
42239 ISA_NEC_V800_series = 0xf009,
42240 ISA_Fujitsu_FR20 = 0xf00a,
42241 ISA_TRW_RH_32 = 0xf00b,
42242 ISA_Motorola_RCE = 0xf00c,
42243 ISA_Digital_Alpha_fake = 0xf00e,
42244 ISA_Hitachi_SH = 0xf00f,
42245 ISA_Siemens_Tricore = 0xf010,
42246 ISA_Argonaut_RISC_Core = 0xf011,
42247 ISA_Hitachi_H8_300 = 0xf012,
42248 ISA_Hitachi_H8_300H = 0xf013,
42249 ISA_Hitachi_H8S = 0xf014,
42250 ISA_Hitachi_H8_500 = 0xf015,
42251 ISA_Stanford_MIPS_X = 0xf016,
42252 ISA_Motorola_M68HC12 = 0xf017,
42253 ISA_Fujitsu_MMA_Multimedia_Accelerator=0xf018,
42254 ISA_Siemens_PCP = 0xf019,
42255 ISA_Sony_nCPU_embeeded_RISC = 0xf01a,
42256 ISA_Denso_NDR1_microprocessor=0xf01b,
42257 ISA_Motorola_Start_Core_processor=0xf01c,
42258 ISA_Toyota_ME16_processor = 0xf01d,
42259 ISA_STMicroelectronic_ST100_processor=0xf01e,
42260 ISA_Advanced_Logic_Corp_Tinyj_emb_family=0xf01f,
42261 ISA_AMD_x86_64_architecture = 0xf020,
42262 ISA_Sony_DSP_Processor = 0xf021,
42263 ISA_Siemens_FX66_microcontroller=0xf022,
42264 ISA_STMicroelectronics_ST9_plus_8_16_microcontroller=0xf023,
42265 ISA_STMicroelectronics_ST7_8bit_microcontroller=0xf024,
42266 ISA_Motorola_MC68HC16_microcontroller=0xf025,
42267 ISA_Motorola_MC68HC11_microcontroller=0xf026,
42268 ISA_Motorola_MC68HC08_microcontroller=0xf027,
42269 ISA_Motorola_MC68HC05_microcontroller=0xf028,
42270 ISA_Silicon_Graphics_SVx = 0xf029,
42271 ISA_STMicroelectronics_ST19_8bit_microcontroller=0xf02a,
42272 ISA_Digital_VAX = 0xf02b,
42273 ISA_Axis_Communications_32bit_embedded_processor=0xf02c,
42274 ISA_Infineon_Technologies_32bit_embedded_processor=0xf02d,
42275 ISA_Element_14_64bit_DSP_Processor=0xf02e,
42276 ISA_LSI_Logic_16bit_DSP_Processor=0xf02f,
42277 ISA_Donald_Knuths_educational_64bit_processor=0xf030,
42278 ISA_Harvard_University_machine_independent_object_files=0xf031,
42279 ISA_SiTera_Prism = 0xf032,
42280 ISA_Atmel_AVR_8bit_microcontroller=0xf033,
42281 ISA_Fujitsu_FR30 = 0xf034,
42282 ISA_Mitsubishi_D10V = 0xf035,
42283 ISA_Mitsubishi_D30V = 0xf036,
42284 ISA_NEC_v850 = 0xf037,
42285 ISA_Mitsubishi_M32R = 0xf038,
42286 ISA_Matsushita_MN10300 = 0xf039,
42287 ISA_Matsushita_MN10200 = 0xf03a,
42288 ISA_picoJava = 0xf03b,
42289 ISA_OpenRISC_32bit_embedded_processor=0xf03c,
42290 ISA_ARC_Cores_Tangent_A5 = 0xf03d,
42291 ISA_Tensilica_Xtensa_Architecture=0xf03e,
42292 ISA_Digital_Alpha = 0xf03f,
42293 ISA_Matsushita_AM33 = 0xf040,
42294 ISA_EFI_ByteCode = 0xf041
42295 };
42296
42307
42309 // Functions
42311public:
42313 static SgAsmGenericFile *parseBinaryFormat(const char *name);
42314
42319 static void unparseBinaryFormat(const std::string &name, SgAsmGenericFile*);
42320
42325 static void unparseBinaryFormat(std::ostream&, SgAsmGenericFile*);
42326
42329
42333 static void initDiagnostics();
42334
42335 // These convert enums to strings. It is better to use the automatic enum stringification instead. They have names like
42336 // Rose::stringifySgAsmExecutableFileFormatInsnSetArchitecture, etc. */
42337 static std::string isaFamilyToString(SgAsmExecutableFileFormat::InsSetArchitecture);
42338 static std::string isaToString(SgAsmExecutableFileFormat::InsSetArchitecture);
42339 static std::string toString(SgAsmExecutableFileFormat::InsSetArchitecture);
42340 static std::string toString(SgAsmExecutableFileFormat::ExecFamily);
42341 static std::string toString(SgAsmExecutableFileFormat::ExecABI);
42342 static std::string toString(SgAsmExecutableFileFormat::ExecPurpose);
42343
42345 // Deprecated 2023-11
42347public:
42348 static std::string isa_family_to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use isaFamilyToString");
42349 static std::string isa_to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use isaToString");
42350 static std::string to_string(SgAsmExecutableFileFormat::InsSetArchitecture) ROSE_DEPRECATED("use toString");
42351 static std::string to_string(SgAsmExecutableFileFormat::ExecFamily) ROSE_DEPRECATED("use toString");
42352 static std::string to_string(SgAsmExecutableFileFormat::ExecABI) ROSE_DEPRECATED("use toString");
42353 static std::string to_string(SgAsmExecutableFileFormat::ExecPurpose) ROSE_DEPRECATED("use toString");
42354public:
42357
42358protected:
42361
42362protected:
42370#endif // SgAsmExecutableFileFormat_OTHERS
42371#ifdef DOCUMENTATION
42372};
42373#endif // DOCUMENTATION
42374
42375
42377// SgAsmAarch64SysMoveOperand -- MACHINE GENERATED; DO NOT MODIFY --
42379
42380#ifdef ROSE_ENABLE_ASM_AARCH64
42381DECLARE_LEAF_CLASS(AsmAarch64SysMoveOperand);
42382IS_SERIALIZABLE(AsmAarch64SysMoveOperand);
42383
42384#ifndef DOCUMENTATION
42385AsmAarch64SysMoveOperand.useSmallHeader(true);
42386#endif // !DOCUMENTATION
42387
42388DECLARE_HEADERS(AsmAarch64SysMoveOperand);
42389#if defined(SgAsmAarch64SysMoveOperand_HEADERS) || defined(DOCUMENTATION)
42390#ifdef ROSE_ENABLE_ASM_AARCH64
42391#endif
42392#endif // SgAsmAarch64SysMoveOperand_HEADERS
42393
42394#ifdef DOCUMENTATION
42396class SgAsmAarch64SysMoveOperand: public SgAsmExpression {
42397#endif // DOCUMENTATION
42398
42399 DECLARE_OTHERS(AsmAarch64SysMoveOperand);
42400#if defined(SgAsmAarch64SysMoveOperand_OTHERS) || defined(DOCUMENTATION)
42401
42402 //----------------------- Boost serialization for SgAsmAarch64SysMoveOperand -----------------------
42403#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42404private:
42405 friend class boost::serialization::access;
42406
42407 template<class S>
42408 void serialize(S &s, const unsigned /*version*/) {
42409 debugSerializationBegin("SgAsmAarch64SysMoveOperand");
42410 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
42411 s & BOOST_SERIALIZATION_NVP(access_);
42412 debugSerializationEnd("SgAsmAarch64SysMoveOperand");
42413 }
42414#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42415public:
42416private:
42417 unsigned access_;
42418
42419public:
42425 unsigned const& access() const;
42426 void access(unsigned const&);
42429public:
42431 virtual ~SgAsmAarch64SysMoveOperand();
42432
42433public:
42435 SgAsmAarch64SysMoveOperand();
42436
42437public:
42439 explicit SgAsmAarch64SysMoveOperand(unsigned const& access);
42440
42441protected:
42448 void initializeProperties();
42449#endif // SgAsmAarch64SysMoveOperand_OTHERS
42450#ifdef DOCUMENTATION
42451};
42452#endif // DOCUMENTATION
42453#endif
42454
42455
42457// SgAsmAarch64PState -- MACHINE GENERATED; DO NOT MODIFY --
42459
42460#ifdef ROSE_ENABLE_ASM_AARCH64
42461DECLARE_LEAF_CLASS(AsmAarch64PState);
42462IS_SERIALIZABLE(AsmAarch64PState);
42463
42464#ifndef DOCUMENTATION
42465AsmAarch64PState.useSmallHeader(true);
42466#endif // !DOCUMENTATION
42467
42468DECLARE_HEADERS(AsmAarch64PState);
42469#if defined(SgAsmAarch64PState_HEADERS) || defined(DOCUMENTATION)
42470#ifdef ROSE_ENABLE_ASM_AARCH64
42471
42472#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
42473#endif
42474#endif // SgAsmAarch64PState_HEADERS
42475
42476#ifdef DOCUMENTATION
42478class SgAsmAarch64PState: public SgAsmExpression {
42479#endif // DOCUMENTATION
42480
42481 DECLARE_OTHERS(AsmAarch64PState);
42482#if defined(SgAsmAarch64PState_OTHERS) || defined(DOCUMENTATION)
42483
42484 //----------------------- Boost serialization for SgAsmAarch64PState -----------------------
42485#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42486private:
42487 friend class boost::serialization::access;
42488
42489 template<class S>
42490 void serialize(S &s, const unsigned /*version*/) {
42491 debugSerializationBegin("SgAsmAarch64PState");
42492 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
42493 s & BOOST_SERIALIZATION_NVP(pstate_);
42494 debugSerializationEnd("SgAsmAarch64PState");
42495 }
42496#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42497public:
42498private:
42499 Rose::BinaryAnalysis::Aarch64PState pstate_;
42500
42501public:
42507 Rose::BinaryAnalysis::Aarch64PState const& pstate() const;
42508 void pstate(Rose::BinaryAnalysis::Aarch64PState const&);
42511public:
42513 virtual ~SgAsmAarch64PState();
42514
42515public:
42517 SgAsmAarch64PState();
42518
42519public:
42521 explicit SgAsmAarch64PState(Rose::BinaryAnalysis::Aarch64PState const& pstate);
42522
42523protected:
42530 void initializeProperties();
42531#endif // SgAsmAarch64PState_OTHERS
42532#ifdef DOCUMENTATION
42533};
42534#endif // DOCUMENTATION
42535#endif
42536
42537
42539// SgAsmAarch64PrefetchOperand -- MACHINE GENERATED; DO NOT MODIFY --
42541
42542#ifdef ROSE_ENABLE_ASM_AARCH64
42543DECLARE_LEAF_CLASS(AsmAarch64PrefetchOperand);
42544IS_SERIALIZABLE(AsmAarch64PrefetchOperand);
42545
42546#ifndef DOCUMENTATION
42547AsmAarch64PrefetchOperand.useSmallHeader(true);
42548#endif // !DOCUMENTATION
42549
42550DECLARE_HEADERS(AsmAarch64PrefetchOperand);
42551#if defined(SgAsmAarch64PrefetchOperand_HEADERS) || defined(DOCUMENTATION)
42552#ifdef ROSE_ENABLE_ASM_AARCH64
42553
42554#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
42555#endif
42556#endif // SgAsmAarch64PrefetchOperand_HEADERS
42557
42558#ifdef DOCUMENTATION
42560class SgAsmAarch64PrefetchOperand: public SgAsmExpression {
42561#endif // DOCUMENTATION
42562
42563 DECLARE_OTHERS(AsmAarch64PrefetchOperand);
42564#if defined(SgAsmAarch64PrefetchOperand_OTHERS) || defined(DOCUMENTATION)
42565
42566 //----------------------- Boost serialization for SgAsmAarch64PrefetchOperand -----------------------
42567#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42568private:
42569 friend class boost::serialization::access;
42570
42571 template<class S>
42572 void serialize(S &s, const unsigned /*version*/) {
42573 debugSerializationBegin("SgAsmAarch64PrefetchOperand");
42574 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
42575 s & BOOST_SERIALIZATION_NVP(operation_);
42576 debugSerializationEnd("SgAsmAarch64PrefetchOperand");
42577 }
42578#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42579public:
42580private:
42581 Rose::BinaryAnalysis::Aarch64PrefetchOperation operation_;
42582
42583public:
42589 Rose::BinaryAnalysis::Aarch64PrefetchOperation const& operation() const;
42590 void operation(Rose::BinaryAnalysis::Aarch64PrefetchOperation const&);
42593public:
42595 virtual ~SgAsmAarch64PrefetchOperand();
42596
42597public:
42599 SgAsmAarch64PrefetchOperand();
42600
42601public:
42603 explicit SgAsmAarch64PrefetchOperand(Rose::BinaryAnalysis::Aarch64PrefetchOperation const& operation);
42604
42605protected:
42612 void initializeProperties();
42613#endif // SgAsmAarch64PrefetchOperand_OTHERS
42614#ifdef DOCUMENTATION
42615};
42616#endif // DOCUMENTATION
42617#endif
42618
42619
42621// SgAsmAarch64Instruction -- MACHINE GENERATED; DO NOT MODIFY --
42623
42624#ifdef ROSE_ENABLE_ASM_AARCH64
42625DECLARE_LEAF_CLASS(AsmAarch64Instruction);
42626IS_SERIALIZABLE(AsmAarch64Instruction);
42627
42628#ifndef DOCUMENTATION
42629AsmAarch64Instruction.useSmallHeader(true);
42630#endif // !DOCUMENTATION
42631
42632DECLARE_HEADERS(AsmAarch64Instruction);
42633#if defined(SgAsmAarch64Instruction_HEADERS) || defined(DOCUMENTATION)
42634#ifdef ROSE_ENABLE_ASM_AARCH64
42635#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
42636#endif
42637#endif // SgAsmAarch64Instruction_HEADERS
42638
42639#ifdef DOCUMENTATION
42641class SgAsmAarch64Instruction: public SgAsmInstruction {
42642#endif // DOCUMENTATION
42643
42644#ifndef DOCUMENTATION
42645 AsmAarch64Instruction.setDataPrototype(
42646 "Rose::BinaryAnalysis::Aarch64InstructionKind", "kind", "= Rose::BinaryAnalysis::Aarch64InstructionKind::ARM64_INS_INVALID",
42647 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
42648#endif // !DOCUMENTATION
42649
42650#ifndef DOCUMENTATION
42651 AsmAarch64Instruction.setDataPrototype(
42652 "Rose::BinaryAnalysis::Aarch64InstructionCondition", "condition", "= Rose::BinaryAnalysis::Aarch64InstructionCondition::ARM64_CC_INVALID",
42653 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
42654#endif // !DOCUMENTATION
42655
42656#ifndef DOCUMENTATION
42657 AsmAarch64Instruction.setDataPrototype(
42658 "bool", "updatesFlags", "= false",
42659 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
42660#endif // !DOCUMENTATION
42661
42662 DECLARE_OTHERS(AsmAarch64Instruction);
42663#if defined(SgAsmAarch64Instruction_OTHERS) || defined(DOCUMENTATION)
42664
42665 //----------------------- Boost serialization for SgAsmAarch64Instruction -----------------------
42666#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42667private:
42668 friend class boost::serialization::access;
42669
42670 template<class S>
42671 void serialize(S &s, const unsigned /*version*/) {
42672 debugSerializationBegin("SgAsmAarch64Instruction");
42673 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
42674 s & BOOST_SERIALIZATION_NVP(p_kind);
42675 s & BOOST_SERIALIZATION_NVP(p_condition);
42676 debugSerializationEnd("SgAsmAarch64Instruction");
42677 }
42678#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42679public:
42680public:
42687 Rose::BinaryAnalysis::Aarch64InstructionKind const& get_kind() const;
42688 void set_kind(Rose::BinaryAnalysis::Aarch64InstructionKind const&);
42691public:
42695 Rose::BinaryAnalysis::Aarch64InstructionCondition const& get_condition() const;
42696 void set_condition(Rose::BinaryAnalysis::Aarch64InstructionCondition const&);
42698 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
42699public:
42703 bool const& get_updatesFlags() const;
42704 void set_updatesFlags(bool const&);
42706public:
42707 // Overrides are documented in the base class
42708 virtual unsigned get_anyKind() const override;
42709public:
42711 virtual ~SgAsmAarch64Instruction();
42712
42713public:
42715 SgAsmAarch64Instruction();
42716
42717public:
42719 SgAsmAarch64Instruction(rose_addr_t const& address,
42720 uint8_t const& architectureId,
42721 Rose::BinaryAnalysis::Aarch64InstructionKind const& kind,
42722 Rose::BinaryAnalysis::Aarch64InstructionCondition const& condition);
42723
42724protected:
42731 void initializeProperties();
42732#endif // SgAsmAarch64Instruction_OTHERS
42733#ifdef DOCUMENTATION
42734};
42735#endif // DOCUMENTATION
42736#endif
42737
42738
42740// SgAsmAarch64CImmediateOperand -- MACHINE GENERATED; DO NOT MODIFY --
42742
42743#ifdef ROSE_ENABLE_ASM_AARCH64
42744DECLARE_LEAF_CLASS(AsmAarch64CImmediateOperand);
42745IS_SERIALIZABLE(AsmAarch64CImmediateOperand);
42746
42747#ifndef DOCUMENTATION
42748AsmAarch64CImmediateOperand.useSmallHeader(true);
42749#endif // !DOCUMENTATION
42750
42751DECLARE_HEADERS(AsmAarch64CImmediateOperand);
42752#if defined(SgAsmAarch64CImmediateOperand_HEADERS) || defined(DOCUMENTATION)
42753#ifdef ROSE_ENABLE_ASM_AARCH64
42754#endif
42755#endif // SgAsmAarch64CImmediateOperand_HEADERS
42756
42757#ifdef DOCUMENTATION
42759class SgAsmAarch64CImmediateOperand: public SgAsmExpression {
42760#endif // DOCUMENTATION
42761
42762 DECLARE_OTHERS(AsmAarch64CImmediateOperand);
42763#if defined(SgAsmAarch64CImmediateOperand_OTHERS) || defined(DOCUMENTATION)
42764
42765 //----------------------- Boost serialization for SgAsmAarch64CImmediateOperand -----------------------
42766#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42767private:
42768 friend class boost::serialization::access;
42769
42770 template<class S>
42771 void serialize(S &s, const unsigned /*version*/) {
42772 debugSerializationBegin("SgAsmAarch64CImmediateOperand");
42773 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
42774 s & BOOST_SERIALIZATION_NVP(immediate_);
42775 debugSerializationEnd("SgAsmAarch64CImmediateOperand");
42776 }
42777#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42778public:
42779private:
42780 unsigned immediate_;
42781
42782public:
42788 unsigned const& immediate() const;
42789 void immediate(unsigned const&);
42792public:
42794 virtual ~SgAsmAarch64CImmediateOperand();
42795
42796public:
42798 SgAsmAarch64CImmediateOperand();
42799
42800public:
42802 explicit SgAsmAarch64CImmediateOperand(unsigned const& immediate);
42803
42804protected:
42811 void initializeProperties();
42812#endif // SgAsmAarch64CImmediateOperand_OTHERS
42813#ifdef DOCUMENTATION
42814};
42815#endif // DOCUMENTATION
42816#endif
42817
42818
42820// SgAsmAarch64BarrierOperand -- MACHINE GENERATED; DO NOT MODIFY --
42822
42823#ifdef ROSE_ENABLE_ASM_AARCH64
42824DECLARE_LEAF_CLASS(AsmAarch64BarrierOperand);
42825IS_SERIALIZABLE(AsmAarch64BarrierOperand);
42826
42827#ifndef DOCUMENTATION
42828AsmAarch64BarrierOperand.useSmallHeader(true);
42829#endif // !DOCUMENTATION
42830
42831DECLARE_HEADERS(AsmAarch64BarrierOperand);
42832#if defined(SgAsmAarch64BarrierOperand_HEADERS) || defined(DOCUMENTATION)
42833#ifdef ROSE_ENABLE_ASM_AARCH64
42834
42835#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
42836#endif
42837#endif // SgAsmAarch64BarrierOperand_HEADERS
42838
42839#ifdef DOCUMENTATION
42841class SgAsmAarch64BarrierOperand: public SgAsmExpression {
42842#endif // DOCUMENTATION
42843
42844 DECLARE_OTHERS(AsmAarch64BarrierOperand);
42845#if defined(SgAsmAarch64BarrierOperand_OTHERS) || defined(DOCUMENTATION)
42846
42847 //----------------------- Boost serialization for SgAsmAarch64BarrierOperand -----------------------
42848#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42849private:
42850 friend class boost::serialization::access;
42851
42852 template<class S>
42853 void serialize(S &s, const unsigned /*version*/) {
42854 debugSerializationBegin("SgAsmAarch64BarrierOperand");
42855 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
42856 s & BOOST_SERIALIZATION_NVP(operation_);
42857 debugSerializationEnd("SgAsmAarch64BarrierOperand");
42858 }
42859#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42860public:
42861private:
42862 Rose::BinaryAnalysis::Aarch64BarrierOperation operation_;
42863
42864public:
42868 Rose::BinaryAnalysis::Aarch64BarrierOperation const& operation() const;
42869 void operation(Rose::BinaryAnalysis::Aarch64BarrierOperation const&);
42872public:
42874 virtual ~SgAsmAarch64BarrierOperand();
42875
42876public:
42878 SgAsmAarch64BarrierOperand();
42879
42880public:
42882 explicit SgAsmAarch64BarrierOperand(Rose::BinaryAnalysis::Aarch64BarrierOperation const& operation);
42883
42884protected:
42891 void initializeProperties();
42892#endif // SgAsmAarch64BarrierOperand_OTHERS
42893#ifdef DOCUMENTATION
42894};
42895#endif // DOCUMENTATION
42896#endif
42897
42898
42900// SgAsmAarch64AtOperand -- MACHINE GENERATED; DO NOT MODIFY --
42902
42903#ifdef ROSE_ENABLE_ASM_AARCH64
42904DECLARE_LEAF_CLASS(AsmAarch64AtOperand);
42905IS_SERIALIZABLE(AsmAarch64AtOperand);
42906
42907#ifndef DOCUMENTATION
42908AsmAarch64AtOperand.useSmallHeader(true);
42909#endif // !DOCUMENTATION
42910
42911DECLARE_HEADERS(AsmAarch64AtOperand);
42912#if defined(SgAsmAarch64AtOperand_HEADERS) || defined(DOCUMENTATION)
42913#ifdef ROSE_ENABLE_ASM_AARCH64
42914
42915#include <Rose/BinaryAnalysis/InstructionEnumsAarch64.h>
42916#endif
42917#endif // SgAsmAarch64AtOperand_HEADERS
42918
42919#ifdef DOCUMENTATION
42921class SgAsmAarch64AtOperand: public SgAsmExpression {
42922#endif // DOCUMENTATION
42923
42924 DECLARE_OTHERS(AsmAarch64AtOperand);
42925#if defined(SgAsmAarch64AtOperand_OTHERS) || defined(DOCUMENTATION)
42926
42927 //----------------------- Boost serialization for SgAsmAarch64AtOperand -----------------------
42928#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
42929private:
42930 friend class boost::serialization::access;
42931
42932 template<class S>
42933 void serialize(S &s, const unsigned /*version*/) {
42934 debugSerializationBegin("SgAsmAarch64AtOperand");
42935 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
42936 s & BOOST_SERIALIZATION_NVP(operation_);
42937 debugSerializationEnd("SgAsmAarch64AtOperand");
42938 }
42939#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
42940public:
42941private:
42942 Rose::BinaryAnalysis::Aarch64AtOperation operation_;
42943
42944public:
42950 Rose::BinaryAnalysis::Aarch64AtOperation const& operation() const;
42951 void operation(Rose::BinaryAnalysis::Aarch64AtOperation const&);
42954public:
42956 virtual ~SgAsmAarch64AtOperand();
42957
42958public:
42960 SgAsmAarch64AtOperand();
42961
42962public:
42964 explicit SgAsmAarch64AtOperand(Rose::BinaryAnalysis::Aarch64AtOperation const& operation);
42965
42966protected:
42973 void initializeProperties();
42974#endif // SgAsmAarch64AtOperand_OTHERS
42975#ifdef DOCUMENTATION
42976};
42977#endif // DOCUMENTATION
42978#endif
42979
42980
42982// SgAsmAarch32Instruction -- MACHINE GENERATED; DO NOT MODIFY --
42984
42985#ifdef ROSE_ENABLE_ASM_AARCH32
42986DECLARE_LEAF_CLASS(AsmAarch32Instruction);
42987IS_SERIALIZABLE(AsmAarch32Instruction);
42988
42989#ifndef DOCUMENTATION
42990AsmAarch32Instruction.useSmallHeader(true);
42991#endif // !DOCUMENTATION
42992
42993DECLARE_HEADERS(AsmAarch32Instruction);
42994#if defined(SgAsmAarch32Instruction_HEADERS) || defined(DOCUMENTATION)
42995#ifdef ROSE_ENABLE_ASM_AARCH32
42996#include <Rose/BinaryAnalysis/InstructionEnumsAarch32.h>
42997#endif
42998#endif // SgAsmAarch32Instruction_HEADERS
42999
43000#ifdef DOCUMENTATION
43002class SgAsmAarch32Instruction: public SgAsmInstruction {
43003#endif // DOCUMENTATION
43004
43005#ifndef DOCUMENTATION
43006 AsmAarch32Instruction.setDataPrototype(
43007 "Rose::BinaryAnalysis::Aarch32InstructionKind", "kind", "= Rose::BinaryAnalysis::Aarch32InstructionKind::ARM_INS_INVALID",
43008 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43009#endif // !DOCUMENTATION
43010
43011#ifndef DOCUMENTATION
43012 AsmAarch32Instruction.setDataPrototype(
43013 "Rose::BinaryAnalysis::Aarch32InstructionCondition", "condition", "= Rose::BinaryAnalysis::Aarch32InstructionCondition::ARM_CC_INVALID",
43014 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43015#endif // !DOCUMENTATION
43016
43017#ifndef DOCUMENTATION
43018 AsmAarch32Instruction.setDataPrototype(
43019 "bool", "updatesFlags", "= false",
43020 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43021#endif // !DOCUMENTATION
43022
43023#ifndef DOCUMENTATION
43024 AsmAarch32Instruction.setDataPrototype(
43025 "bool", "writesBack", "= false",
43026 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43027#endif // !DOCUMENTATION
43028
43029#ifndef DOCUMENTATION
43030 AsmAarch32Instruction.setDataPrototype(
43031 "bool", "writesToIp", "= false",
43032 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43033#endif // !DOCUMENTATION
43034
43035 DECLARE_OTHERS(AsmAarch32Instruction);
43036#if defined(SgAsmAarch32Instruction_OTHERS) || defined(DOCUMENTATION)
43037
43038 //----------------------- Boost serialization for SgAsmAarch32Instruction -----------------------
43039#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
43040private:
43041 friend class boost::serialization::access;
43042
43043 template<class S>
43044 void serialize(S &s, const unsigned /*version*/) {
43045 debugSerializationBegin("SgAsmAarch32Instruction");
43046 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
43047 s & BOOST_SERIALIZATION_NVP(p_kind);
43048 s & BOOST_SERIALIZATION_NVP(p_condition);
43049 s & BOOST_SERIALIZATION_NVP(p_updatesFlags);
43050 s & BOOST_SERIALIZATION_NVP(p_writesBack);
43051 s & BOOST_SERIALIZATION_NVP(p_writesToIp);
43052 debugSerializationEnd("SgAsmAarch32Instruction");
43053 }
43054#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
43055public:
43056public:
43063 Rose::BinaryAnalysis::Aarch32InstructionKind const& get_kind() const;
43064 void set_kind(Rose::BinaryAnalysis::Aarch32InstructionKind const&);
43067public:
43073 Rose::BinaryAnalysis::Aarch32InstructionCondition const& get_condition() const;
43074 void set_condition(Rose::BinaryAnalysis::Aarch32InstructionCondition const&);
43077public:
43081 bool const& get_updatesFlags() const;
43082 void set_updatesFlags(bool const&);
43085public:
43089 bool const& get_writesBack() const;
43090 void set_writesBack(bool const&);
43093public:
43100 bool const& get_writesToIp() const;
43101 void set_writesToIp(bool const&);
43103public:
43104 // Overrides are documented in the base class
43105 virtual unsigned get_anyKind() const override;
43106public:
43108 virtual ~SgAsmAarch32Instruction();
43109
43110public:
43112 SgAsmAarch32Instruction();
43113
43114public:
43116 SgAsmAarch32Instruction(rose_addr_t const& address,
43117 uint8_t const& architectureId,
43118 Rose::BinaryAnalysis::Aarch32InstructionKind const& kind,
43119 Rose::BinaryAnalysis::Aarch32InstructionCondition const& condition);
43120
43121protected:
43128 void initializeProperties();
43129#endif // SgAsmAarch32Instruction_OTHERS
43130#ifdef DOCUMENTATION
43131};
43132#endif // DOCUMENTATION
43133#endif
43134
43135
43137// SgAsmInstruction -- MACHINE GENERATED; DO NOT MODIFY --
43139
43140#ifndef DOCUMENTATION
43141AstNodeClass& AsmInstruction = nonTerminalConstructor(
43142 "AsmInstruction",
43143 *this,
43144 "AsmInstruction",
43145 "AsmInstructionTag",
43146 SubclassListBuilder()
43147#ifdef ROSE_ENABLE_ASM_AARCH32
43148 | AsmAarch32Instruction
43149#endif
43150#ifdef ROSE_ENABLE_ASM_AARCH64
43151 | AsmAarch64Instruction
43152#endif
43153 | AsmCilInstruction
43154 | AsmJvmInstruction
43155 | AsmM68kInstruction
43156 | AsmMipsInstruction
43157 | AsmNullInstruction
43158 | AsmPowerpcInstruction
43159 | AsmUserInstruction
43160 | AsmX86Instruction
43161 , true);
43162assert(AsmInstruction.associatedGrammar != nullptr);
43163AsmInstruction.setCppCondition("!defined(DOCUMENTATION)");
43164AsmInstruction.isBoostSerializable(true);
43165AsmInstruction.setAutomaticGenerationOfConstructor(false);
43166AsmInstruction.setAutomaticGenerationOfDestructor(false);
43167#endif // !DOCUMENTATION
43168
43169#ifndef DOCUMENTATION
43170AsmInstruction.useSmallHeader(true);
43171#endif // !DOCUMENTATION
43172
43173DECLARE_HEADERS(AsmInstruction);
43174#if defined(SgAsmInstruction_HEADERS) || defined(DOCUMENTATION)
43175#include <Rose/BinaryAnalysis/Architecture/BasicTypes.h>
43176#include <Rose/BinaryAnalysis/MemoryMap.h>
43177#include <sageContainer.h>
43178#include <Sawyer/Cached.h>
43179
43180#ifdef ROSE_SgAsmInstruction_IMPL
43181#include <SgAsmExprListExp.h>
43182#include <SgAsmOperandList.h>
43183#endif
43184#endif // SgAsmInstruction_HEADERS
43185
43186#ifdef DOCUMENTATION
43209#endif // DOCUMENTATION
43210
43211#ifndef DOCUMENTATION
43212 AsmInstruction.setDataPrototype(
43213 "uint8_t", "architectureId", "",
43214 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43215#endif // !DOCUMENTATION
43216
43217#ifndef DOCUMENTATION
43218 AsmInstruction.setDataPrototype(
43219 "SgUnsignedCharList", "rawBytes", "",
43220 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43221#endif // !DOCUMENTATION
43222
43223#ifndef DOCUMENTATION
43224 AsmInstruction.setDataPrototype(
43225 "SgAsmOperandList*", "operandList", "= nullptr",
43226 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
43227#endif // !DOCUMENTATION
43228
43229#ifndef DOCUMENTATION
43230 AsmInstruction.setDataPrototype(
43231 "SgAsmInstruction*", "delaySlot", "= nullptr",
43232 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43233#endif // !DOCUMENTATION
43234
43235#ifndef DOCUMENTATION
43236 AsmInstruction.setDataPrototype(
43237 "SgAsmStatementPtrList", "sources", "",
43238 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43239#endif // !DOCUMENTATION
43240
43241#ifndef DOCUMENTATION
43242 AsmInstruction.setDataPrototype(
43243 "int64_t", "stackDeltaIn", "= SgAsmInstruction::INVALID_STACK_DELTA",
43244 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43245#endif // !DOCUMENTATION
43246
43247#ifndef DOCUMENTATION
43248 AsmInstruction.setDataPrototype(
43249 "SgAsmExprListExp*", "semantics", "= nullptr",
43250 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
43251#endif // !DOCUMENTATION
43252
43253 DECLARE_OTHERS(AsmInstruction);
43254#if defined(SgAsmInstruction_OTHERS) || defined(DOCUMENTATION)
43255
43256 //----------------------- Boost serialization for SgAsmInstruction -----------------------
43257#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
43258private:
43259 friend class boost::serialization::access;
43260
43261 template<class S>
43262 void serialize(S &s, const unsigned /*version*/) {
43263 debugSerializationBegin("SgAsmInstruction");
43264 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
43265 {
43266 auto temp = architectureIdSerialize(p_architectureId);
43267 s & boost::serialization::make_nvp("p_architectureId", temp);
43268 p_architectureId = architectureIdDeserialize(temp);
43269 }
43270 s & BOOST_SERIALIZATION_NVP(p_rawBytes);
43271 s & BOOST_SERIALIZATION_NVP(p_operandList);
43272 s & BOOST_SERIALIZATION_NVP(p_delaySlot);
43273 s & BOOST_SERIALIZATION_NVP(p_sources);
43274 debugSerializationEnd("SgAsmInstruction");
43275 }
43276#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
43278 // Local types
43280private:
43281 struct SemanticFailure {
43282 size_t n;
43283 SemanticFailure(): n(0) {}
43284
43285#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
43286 private:
43287 friend class boost::serialization::access;
43288 template<class S>
43289 void serialize(S &s, const unsigned /*version*/) {
43290 s & BOOST_SERIALIZATION_NVP(n);
43291 }
43292#endif
43293 };
43294
43296 // Properties
43298public:
43299public:
43306 uint8_t const& get_architectureId() const;
43308 // Architecture registration IDs change from run to run, so serialie the architecture name instead.
43309 std::string architectureIdSerialize(uint8_t id) const;
43310 uint8_t architectureIdDeserialize(const std::string &name) const;
43311public:
43317 SgUnsignedCharList const& get_rawBytes() const;
43318 void set_rawBytes(SgUnsignedCharList const&);
43321public:
43332public:
43348 // FIXME[Robb P Matzke 2017-02-13]: unused?
43349public:
43350 void appendSources( SgAsmInstruction* instruction );
43351
43352 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
43353public:
43360 int64_t const& get_stackDeltaIn() const;
43361 void set_stackDeltaIn(int64_t const&);
43363 // FIXME[Robb Matzke 2023-03-18]: is the lack of serialization a bug?
43364public:
43376 // Non-property data members
43378private:
43379 SemanticFailure semanticFailure_;
43380
43381public:
43386 static const int64_t INVALID_STACK_DELTA;
43387
43389 // Functions
43391public:
43399
43406 std::string get_mnemonic() const;
43407
43408 // [Robb Matzke 2023-12-04]: deprecated
43409 virtual std::string description() const final ROSE_DEPRECATED("use Architecture::Base::instructionDescription");
43410
43412 size_t nOperands() const;
43413
43417 SgAsmExpression* operand(size_t) const;
43418
43419 // [Robb Matzke 2023-12-04]: deprecated
43420 virtual bool terminatesBasicBlock() final ROSE_DEPRECATED("use Architecture::Base::terminatesBasicBlock");
43421 virtual bool isFunctionCallFast(const std::vector<SgAsmInstruction*>&, rose_addr_t *target, rose_addr_t *ret) final
43422 ROSE_DEPRECATED("use Architecture::Base::isFunctionCallFast");
43423 virtual bool isFunctionCallSlow(const std::vector<SgAsmInstruction*>&, rose_addr_t *target, rose_addr_t *ret) final
43424 ROSE_DEPRECATED("use Architecture::Base::isFunctionCallSlow");
43425 virtual bool isFunctionReturnFast(const std::vector<SgAsmInstruction*>&) final
43426 ROSE_DEPRECATED("use Architecture::Base::isFunctionReturnFast");
43427 virtual bool isFunctionReturnSlow(const std::vector<SgAsmInstruction*>&) final
43428 ROSE_DEPRECATED("use Architecture::Base::isFunctionReturnSlow");
43429 virtual Sawyer::Optional<rose_addr_t> branchTarget() final
43430 ROSE_DEPRECATED("use Architecture::Base::branchTarget");
43431
43436
43441
43576 virtual bool hasEffect();
43577
43586 virtual bool hasEffect(const std::vector<SgAsmInstruction*>&, bool allow_branch=false,
43587 bool relax_stack_semantics=false);
43588
43598 virtual std::vector<std::pair<size_t,size_t> >
43599 findNoopSubsequences(const std::vector<SgAsmInstruction*>& insns, bool allow_branch=false,
43600 bool relax_stack_semantics=false);
43601
43602 // [Robb Matzke 2023-12-04]: deprecated
43603 virtual Rose::BinaryAnalysis::AddressSet getSuccessors(bool &complete)
43604 ROSE_DEPRECATED("use Architecture::Base::getSuccessors");
43605 virtual Rose::BinaryAnalysis::AddressSet getSuccessors(const std::vector<SgAsmInstruction*> &basicBlock,
43606 bool &complete,
43607 const Rose::BinaryAnalysis::MemoryMap::Ptr &initial_memory =
43608 Rose::BinaryAnalysis::MemoryMap::Ptr())
43609 ROSE_DEPRECATED("use Architecture::Base::getSuccessors");
43610
43616 virtual size_t get_size() const;
43617
43618 // [Robb Matzke 2023-12-05]: deprecated
43619 virtual bool isUnknown() const final ROSE_DEPRECATED("use Architecture::Base::isUnknown");
43620
43654 virtual unsigned get_anyKind() const;
43655
43659 virtual std::string toString() const;
43660
43664 virtual std::string toStringNoAddr() const;
43665
43670 virtual std::set<rose_addr_t> explicitConstants() const;
43671
43681 size_t semanticFailure() const;
43682 void semanticFailure(size_t);
43695
43697 // Deprecated 2023-11
43699public:
43700 const SgUnsignedCharList& get_raw_bytes() const ROSE_DEPRECATED("use get_rawBytes");
43701 void set_raw_bytes(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_rawBytes");
43702public:
43705
43706public:
43709
43710public:
43712 SgAsmInstruction(rose_addr_t const& address,
43713 uint8_t const& architectureId);
43714
43715protected:
43723#endif // SgAsmInstruction_OTHERS
43724#ifdef DOCUMENTATION
43725};
43726#endif // DOCUMENTATION
43727
43728
43730// SgAsmStatement -- MACHINE GENERATED; DO NOT MODIFY --
43732
43733#ifndef DOCUMENTATION
43734AstNodeClass& AsmStatement = nonTerminalConstructor(
43735 "AsmStatement",
43736 *this,
43737 "AsmStatement",
43738 "AsmStatementTag",
43739 SubclassListBuilder()
43740 | AsmBlock
43741 | AsmInstruction
43742 | AsmStaticData
43743 | AsmSynthesizedDeclaration
43744 , false);
43745assert(AsmStatement.associatedGrammar != nullptr);
43746AsmStatement.setCppCondition("!defined(DOCUMENTATION)");
43747AsmStatement.isBoostSerializable(true);
43748AsmStatement.setAutomaticGenerationOfConstructor(false);
43749AsmStatement.setAutomaticGenerationOfDestructor(false);
43750#endif // !DOCUMENTATION
43751
43752#ifndef DOCUMENTATION
43753AsmStatement.useSmallHeader(true);
43754#endif // !DOCUMENTATION
43755
43756#ifdef DOCUMENTATION
43762#endif // DOCUMENTATION
43763
43764#ifndef DOCUMENTATION
43765 AsmStatement.setDataPrototype(
43766 "rose_addr_t", "address", "= 0",
43767 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43768#endif // !DOCUMENTATION
43769
43770#ifndef DOCUMENTATION
43771 AsmStatement.setDataPrototype(
43772 "std::string", "comment", "",
43773 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43774#endif // !DOCUMENTATION
43775
43776 DECLARE_OTHERS(AsmStatement);
43777#if defined(SgAsmStatement_OTHERS) || defined(DOCUMENTATION)
43778
43779 //----------------------- Boost serialization for SgAsmStatement -----------------------
43780#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
43781private:
43782 friend class boost::serialization::access;
43783
43784 template<class S>
43785 void serialize(S &s, const unsigned /*version*/) {
43786 debugSerializationBegin("SgAsmStatement");
43787 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
43788 s & BOOST_SERIALIZATION_NVP(p_address);
43789 s & BOOST_SERIALIZATION_NVP(p_comment);
43790 debugSerializationEnd("SgAsmStatement");
43791 }
43792#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
43793public:
43794public:
43800 rose_addr_t const& get_address() const;
43801 void set_address(rose_addr_t const&);
43804public:
43808 std::string const& get_comment() const;
43809 void set_comment(std::string const&);
43812public:
43815
43816protected:
43819
43820protected:
43822 explicit SgAsmStatement(rose_addr_t const& address);
43823
43824protected:
43832#endif // SgAsmStatement_OTHERS
43833#ifdef DOCUMENTATION
43834};
43835#endif // DOCUMENTATION
43836
43837
43839// SgAsmAarch32Coprocessor -- MACHINE GENERATED; DO NOT MODIFY --
43841
43842DECLARE_LEAF_CLASS(AsmAarch32Coprocessor);
43843IS_SERIALIZABLE(AsmAarch32Coprocessor);
43844
43845#ifndef DOCUMENTATION
43846AsmAarch32Coprocessor.useSmallHeader(true);
43847#endif // !DOCUMENTATION
43848
43849#ifdef DOCUMENTATION
43852#endif // DOCUMENTATION
43853
43854 DECLARE_OTHERS(AsmAarch32Coprocessor);
43855#if defined(SgAsmAarch32Coprocessor_OTHERS) || defined(DOCUMENTATION)
43856
43857 //----------------------- Boost serialization for SgAsmAarch32Coprocessor -----------------------
43858#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
43859private:
43860 friend class boost::serialization::access;
43861
43862 template<class S>
43863 void serialize(S &s, const unsigned /*version*/) {
43864 debugSerializationBegin("SgAsmAarch32Coprocessor");
43865 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
43866 s & BOOST_SERIALIZATION_NVP(coprocessor_);
43867 debugSerializationEnd("SgAsmAarch32Coprocessor");
43868 }
43869#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
43870public:
43871private:
43872 int coprocessor_;
43873
43874public:
43878 int const& coprocessor() const;
43879 void coprocessor(int const&);
43882public:
43885
43886public:
43889
43890public:
43893
43894protected:
43902#endif // SgAsmAarch32Coprocessor_OTHERS
43903#ifdef DOCUMENTATION
43904};
43905#endif // DOCUMENTATION
43906
43907
43909// SgAsmExpression -- MACHINE GENERATED; DO NOT MODIFY --
43911
43912#ifndef DOCUMENTATION
43913AstNodeClass& AsmExpression = nonTerminalConstructor(
43914 "AsmExpression",
43915 *this,
43916 "AsmExpression",
43917 "AsmExpressionTag",
43918 SubclassListBuilder()
43919 | AsmAarch32Coprocessor
43920#ifdef ROSE_ENABLE_ASM_AARCH64
43921 | AsmAarch64AtOperand
43922#endif
43923#ifdef ROSE_ENABLE_ASM_AARCH64
43924 | AsmAarch64BarrierOperand
43925#endif
43926#ifdef ROSE_ENABLE_ASM_AARCH64
43927 | AsmAarch64CImmediateOperand
43928#endif
43929#ifdef ROSE_ENABLE_ASM_AARCH64
43930 | AsmAarch64PrefetchOperand
43931#endif
43932#ifdef ROSE_ENABLE_ASM_AARCH64
43933 | AsmAarch64PState
43934#endif
43935#ifdef ROSE_ENABLE_ASM_AARCH64
43936 | AsmAarch64SysMoveOperand
43937#endif
43938 | AsmBinaryExpression
43939 | AsmByteOrder
43940 | AsmCommonSubExpression
43941 | AsmControlFlagsExpression
43942 | AsmExprListExp
43943 | AsmMemoryReferenceExpression
43944 | AsmRegisterNames
43945 | AsmRegisterReferenceExpression
43946 | AsmRiscOperation
43947 | AsmStackExpression
43948 | AsmUnaryExpression
43949 | AsmValueExpression
43950 , false);
43951assert(AsmExpression.associatedGrammar != nullptr);
43952AsmExpression.setCppCondition("!defined(DOCUMENTATION)");
43953AsmExpression.isBoostSerializable(true);
43954AsmExpression.setAutomaticGenerationOfConstructor(false);
43955AsmExpression.setAutomaticGenerationOfDestructor(false);
43956#endif // !DOCUMENTATION
43957
43958#ifndef DOCUMENTATION
43959AsmExpression.useSmallHeader(true);
43960#endif // !DOCUMENTATION
43961
43962#ifdef DOCUMENTATION
43965#endif // DOCUMENTATION
43966
43967#ifndef DOCUMENTATION
43968 AsmExpression.setDataPrototype(
43969 "SgAsmType*", "type", "= nullptr",
43970 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43971#endif // !DOCUMENTATION
43972
43973#ifndef DOCUMENTATION
43974 AsmExpression.setDataPrototype(
43975 "std::string", "comment", "",
43976 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
43977#endif // !DOCUMENTATION
43978
43979 DECLARE_OTHERS(AsmExpression);
43980#if defined(SgAsmExpression_OTHERS) || defined(DOCUMENTATION)
43981
43982 //----------------------- Boost serialization for SgAsmExpression -----------------------
43983#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
43984private:
43985 friend class boost::serialization::access;
43986
43987 template<class S>
43988 void serialize(S &s, const unsigned /*version*/) {
43989 debugSerializationBegin("SgAsmExpression");
43990 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
43991 s & BOOST_SERIALIZATION_NVP(p_type);
43992 s & BOOST_SERIALIZATION_NVP(p_comment);
43993 debugSerializationEnd("SgAsmExpression");
43994 }
43995#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
43996public:
43997public:
44003 SgAsmType* const& get_type() const;
44004 void set_type(SgAsmType* const&);
44007public:
44013 std::string const& get_comment() const;
44014 void set_comment(std::string const&);
44016public:
44020 size_t get_nBits() const;
44021
44027
44033public:
44036
44037protected:
44040
44041protected:
44049#endif // SgAsmExpression_OTHERS
44050#ifdef DOCUMENTATION
44051};
44052#endif // DOCUMENTATION
44053
44054
44056// SgAsmNode -- MACHINE GENERATED; DO NOT MODIFY --
44058
44059#ifndef DOCUMENTATION
44060AstNodeClass& AsmNode = nonTerminalConstructor(
44061 "AsmNode",
44062 *this,
44063 "AsmNode",
44064 "AsmNodeTag",
44065 SubclassListBuilder()
44066 | AsmCilNode
44067 | AsmExecutableFileFormat
44068 | AsmExpression
44069 | AsmGenericFileList
44070 | AsmInstructionList
44071 | AsmInterpretation
44072 | AsmInterpretationList
44073 | AsmJvmNode
44074 | AsmOperandList
44075 | AsmStatement
44076 | AsmType
44077 , false);
44078assert(AsmNode.associatedGrammar != nullptr);
44079AsmNode.setCppCondition("!defined(DOCUMENTATION)");
44080AsmNode.isBoostSerializable(true);
44081AsmNode.setAutomaticGenerationOfConstructor(false);
44082AsmNode.setAutomaticGenerationOfDestructor(false);
44083#endif // !DOCUMENTATION
44084
44085#ifndef DOCUMENTATION
44086AsmNode.useSmallHeader(true);
44087#endif // !DOCUMENTATION
44088
44089DECLARE_HEADERS(AsmNode);
44090#if defined(SgAsmNode_HEADERS) || defined(DOCUMENTATION)
44091#include <Sawyer/Attribute.h>
44092#include <boost/format.hpp>
44093#endif // SgAsmNode_HEADERS
44094
44095#ifdef DOCUMENTATION
44097class SgAsmNode: public SgNode {
44098#endif // DOCUMENTATION
44099
44100 DECLARE_OTHERS(AsmNode);
44101#if defined(SgAsmNode_OTHERS) || defined(DOCUMENTATION)
44102
44103 //----------------------- Boost serialization for SgAsmNode -----------------------
44104#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
44105private:
44106 friend class boost::serialization::access;
44107
44108 template<class S>
44109 void serialize(S &s, const unsigned /*version*/) {
44110 debugSerializationBegin("SgAsmNode");
44111 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgNode);
44112 debugSerializationEnd("SgAsmNode");
44113 }
44114#endif // ROSE_HAVE_BOOST_SERIALIZATION_LIB
44115public:
44116private:
44117 Sawyer::Attribute::Storage<> attributes_;
44118
44119public:
44134public:
44136 virtual ~SgAsmNode();
44137
44138protected:
44141
44142protected:
44150#endif // SgAsmNode_OTHERS
44151#ifdef DOCUMENTATION
44152};
44153#endif // DOCUMENTATION
44154
44155#ifndef DOCUMENTATION
44156} // Grammar::setUpBinaryInstructions
44157#endif // !DOCUMENTATION
44158#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_addr_t) 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_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.
bool isFunctionCall(rose_addr_t &target_va, rose_addr_t &return_va)
Returns true if basic block appears to be a function call.
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.
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.
void set_id(rose_addr_t const &)
Property: Identification.
SgAsmBlock *const & get_immediateDominator() const
Property: Holds the immediate dominator block in the control flow graph.
rose_addr_t get_fallthroughVa()
Fall-through virtual address.
void set_successors(SgAsmIntegerValuePtrList const &)
Property: Control flow successors.
rose_addr_t const & get_id() const
Property: Identification.
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.
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_addr_t 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.
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.
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.
uint32_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.
SgAsmBlock *const & get_body() const
Property: body.
void set_RVA(uint32_t const &)
Property: RVA.
bool const & get_hasMoreSections() const
Property: hasMoreSections.
void set_ImplFlags(uint32_t const &)
Property: ImplFlags.
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.
void set_initLocals(bool const &)
Property: initLocals.
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.
rose_addr_t const & get_st_name_offset() 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.
SgUnsignedCharList const & get_auxiliaryData() const
Property: Auxilliary data.
void set_st_name_offset(rose_addr_t const &)
Property: Symbol name offset.
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.
rose_addr_t const & get_e_lfanew() const
Property: lfanew.
virtual ~SgAsmDOSExtendedHeader()
Destructor.
void set_e_lfanew(rose_addr_t const &)
Property: lfanew.
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.
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.
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.
void set_e_relocs_offset(rose_addr_t const &)
Property: Relocs offset.
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.
SgAsmGenericSection * parseRealModeSection(rose_addr_t 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.
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.
rose_addr_t const & get_e_relocs_offset() const
Property: Relocs offset.
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_addr_t 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_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.
rose_addr_t const & get_prh_addr() const
Property: PRH address.
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.
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.
void set_prh_addr(rose_addr_t const &)
Property: PRH address.
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.
SgUnsignedCharList const & get_instructions() const
Property: Instructions.
void set_size(rose_addr_t const &)
Property: Size in bytes.
virtual ~SgAsmElfEHFrameEntryFD()
Destructor.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_begin_rva() const
Property: Beginning relative virtual address.
void initializeProperties()
Initialize all properties that have explicit initial values.
rose_addr_t const & get_size() const
Property: Size in bytes.
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 rose_addr_t 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()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
virtual SgAsmElfEHFrameSection * parse() override
Initialize by parsing a file.
rose_addr_t unparse(std::ostream *) const
Unparses the section into the optional output stream and returns the number of bytes written.
SgAsmElfEHFrameSection()
Default constructor.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const override
Print some debugging info.
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.
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_addr_t parse(rose_addr_t 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_addr_t 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.
rose_addr_t unparse(std::ostream &f, rose_addr_t starting_offset)
Write a note at the specified offset to the section containing the note.
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 set_r_offset(rose_addr_t const &)
Property: Offset.
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.
rose_addr_t const & get_r_offset() const
Property: Offset.
SgAsmElfRelocEntry(SgAsmElfRelocSection *)
Constructor that adds the new entry to the relocation table.
rose_addr_t 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_type(SgAsmElfRelocEntry::RelocType const &)
Property: Type.
void set_r_addend(rose_addr_t const &)
Property: Addend.
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 rose_addr_t 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 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.
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_addr_t const & get_sh_addr() const
Property: sh_addr.
void set_sh_addr(rose_addr_t const &)
Property: sh_addr.
void set_sh_flags(uint64_t const &)
Property: sh_flags.
rose_addr_t const & get_sh_addralign() const
Property: sh_addralign.
unsigned long const & get_sh_link() const
Property: sh_link.
void set_sh_addralign(rose_addr_t const &)
Property: sh_addralign.
virtual void dump(FILE *, const char *prefix, ssize_t idx) const
Print some debugging info.
rose_addr_t const & get_sh_size() const
Property: sh_size.
uint64_t const & get_sh_flags() const
Property: sh_flags.
unsigned const & get_sh_name() const
Property: sh_name.
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_addr_t const & get_sh_entsize() const
Property: sh_entsize.
void initializeProperties()
Initialize all properties that have explicit initial values.
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.
SgAsmElfSectionTableEntry()
Default constructor.
void set_extra(SgUnsignedCharList const &)
Property: Extra bytes not officially part of the table entry.
void set_sh_size(rose_addr_t const &)
Property: sh_size.
void set_sh_type(SgAsmElfSectionTableEntry::SectionType const &)
Property: sh_type.
void set_sh_name(unsigned const &)
Property: sh_name.
void set_sh_offset(rose_addr_t const &)
Property: sh_offset.
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.
rose_addr_t const & get_sh_offset() const
Property: sh_offset.
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.
void set_sh_entsize(rose_addr_t const &)
Property: sh_entsize.
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.
virtual SgAsmElfSectionTable * parse() override
Parses an ELF Section Table.
void initializeProperties()
Initialize all properties that have explicit initial values.
rose_addr_t 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.
SgAsmElfSectionTable(SgAsmElfFileHeader *)
Constructor creates section table within the AST.
Base class for ELF file sections.
SgAsmElfSection *const & get_linkedSection() const
Property: Linked section.
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.
virtual rose_addr_t calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const
Base implementation for calculating sizes.
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.
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.
rose_addr_t 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.
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.
SgAsmElfSegmentTableEntry::SegmentType const & get_type() const
Property: Segment type.
rose_addr_t const & get_memsz() const
Property: Size of segment in memory.
void set_align(rose_addr_t const &)
Property: Alignment.
rose_addr_t const & get_paddr() const
Property: ELF paddr field.
void set_memsz(rose_addr_t const &)
Property: Size of segment in memory.
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_addr_t const & get_filesz() const
Property: Size of segment in file.
void * encode(Rose::BinaryAnalysis::ByteOrder::Endianness, SgAsmElfSegmentTableEntry::Elf64SegmentTableEntry_disk *) const
Converts segment table entry back into disk structure.
virtual ~SgAsmElfSegmentTableEntry()
Destructor.
rose_addr_t const & get_align() const
Property: Alignment.
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_offset(rose_addr_t const &)
Property: Offset of segment in the file.
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_vaddr(rose_addr_t const &)
Property: Virtual address.
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_type(SgAsmElfSegmentTableEntry::SegmentType const &)
Property: Segment type.
rose_addr_t const & get_vaddr() const
Property: Virtual address.
rose_addr_t const & get_offset() const
Property: Offset of segment in the file.
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.
void set_filesz(rose_addr_t const &)
Property: Size of segment in file.
void set_paddr(rose_addr_t const &)
Property: ELF paddr field.
Represents an ELF segment table.
virtual void unparse(std::ostream &) const override
Write the segment table to disk.
rose_addr_t 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.
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 void set_size(rose_addr_t newsize) override
Adjust size of table.
virtual ~SgAsmElfStringSection()
Destructor.
virtual bool reallocate() override
Reallocate space for the string section if necessary.
ELF string table.
virtual SgAsmStringStorage * createStorage(rose_addr_t offset, bool shared) override
Creates the storage item for the string at the specified offset.
virtual void rebind(SgAsmStringStorage *, rose_addr_t) override
Similar to create_storage() but uses a storage object that's already been allocated.
SgAsmElfStrtab()
Default constructor.
SgAsmElfStrtab(class SgAsmElfSection *containing_section)
Non-parsing constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
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 rose_addr_t get_storageSize(const SgAsmStringStorage *) override
Returns the number of bytes required to store the string in the string table.
virtual void allocateOverlap(SgAsmStringStorage *) override
Find offset for a string.
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 rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override
Return sizes for various parts of the table.
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.
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.
SgAsmElfSymbol::ElfSymBinding get_elfBinding() const
Returns binding as an enum constant.
SgUnsignedCharList const & get_extra() const
Property: Extra data.
rose_addr_t const & get_st_size() const
Property: size.
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.
void set_st_size(rose_addr_t const &)
Property: size.
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 * 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.
virtual rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override
Return sizes for various parts of the table.
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.
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_addr_t 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 rose_addr_t calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override
Return sizes for various parts of the table.
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 ~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_addr_t offset
Byte offset into section (or file).
const SgAsmGenericSection * section
Section from which read occurred; null implies file-level write.
rose_addr_t size
Number of bytes of attempted read.
Exception for writing past the end of something.
const SgAsmGenericSection * section
Section to which write occurred; null implies file-level write.
rose_addr_t offset
Byte offset into section (or file).
rose_addr_t 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.
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.
void set_entryVa(rose_addr_t const &)
Property: Primary entry address.
rose_addr_t const & get_entryVa() const
Property: Primary entry address.
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.
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_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.
size_t get_extent(Rose::BinaryAnalysis::AddressIntervalSet *emap=NULL, rose_addr_t *lo_addr=NULL, rose_addr_t *hi_addr=NULL, NodeSelector *selector=NULL)
Returns information about the function addresses.
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.
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.
void markReferencedExtent(rose_addr_t start_rva, rose_addr_t size)
Marks part of a file as having been referenced if tracking references.
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.
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.
size_t readContent(rose_addr_t offset, void *dst_buf, rose_addr_t size, bool strict=true)
Reads data from a file.
void dumpAll(const std::string &dumpname)
Print text file containing all known information about a binary file.
rose_addr_t get_originalSize() const
Returns original size of file, based on file system.
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.
size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr &, rose_addr_t va, void *dst_buf, rose_addr_t size, bool strict=true)
Reads data from a file.
void shiftExtend(SgAsmGenericSection *s, rose_addr_t sa, rose_addr_t sn)
Moves and enlarges a section.
void set_truncateZeros(bool const &)
Property: Whether to truncate zeros on writes.
SgAsmGenericSection * get_sectionByOffset(rose_addr_t offset, rose_addr_t size, size_t *nfound=0) const
Find section by file offset.
SgAsmGenericSection * get_bestSectionByVa(rose_addr_t va, size_t *nfound=0) const
Find section by address.
rose_addr_t get_currentSize() const
Returns current size of file based on section with highest ending address.
SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep='\0') const
Returns all sections having specified name across all headers, including headers and holes.
SgAsmGenericSectionPtrList get_sectionsByRva(rose_addr_t rva) const
Find sections by address.
const char * formatName() const
Return a string describing the file format.
SgAsmGenericSection * get_sectionByRva(rose_addr_t rva, size_t *nfound=0) const
Find section by address.
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.
void addHeader(SgAsmGenericHeader *)
Adds a new header to the file.
void dumpAll(bool in_cwd=true, const char *ext=NULL)
Print text file containing all known information about a binary file.
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.
SgFileContentList content(rose_addr_t offset, rose_addr_t size)
Returns a vector that points to part of the file.
rose_addr_t get_nextSectionOffset(rose_addr_t offset)
File offset of next section.
void shiftExtend(SgAsmGenericSection *, rose_addr_t sa, rose_addr_t sn, AddressSpace, Elasticity)
Moves and enlarges a section.
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.
SgAsmGenericSection * get_sectionByVa(rose_addr_t va, size_t *nfound=0) const
Find section by address.
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.
Rose::BinaryAnalysis::AddressIntervalSet const & get_referencedExtents() const
Property: Addresses referenced during parsing.
std::string readContentString(rose_addr_t abs_offset, bool strict=true)
Reads a string from a file.
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.
static SgAsmGenericSection * bestSectionByVa(const SgAsmGenericSectionPtrList &sections, rose_addr_t va)
Definition for "best".
SgAsmGenericSectionPtrList get_sectionsByOffset(rose_addr_t offset, rose_addr_t size) const
Find sections by their offset.
std::string readContentString(const Rose::BinaryAnalysis::MemoryMap::Ptr &, rose_addr_t va, bool strict=true)
Reads a string from a file.
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.
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.
SgAsmGenericSectionPtrList get_sectionsByVa(rose_addr_t va) const
Find sections by address.
const SgFileContentList & content()
Property: Entire file contents.
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.
SgAsmGenericSectionPtrList get_sectionsByVa(rose_addr_t va, bool use_preferred) const
Returns sections having a preferred or actual mapping that includes the specified virtual address.
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.
void set_baseVa(rose_addr_t const &)
Property: Base virtual address used by all relative virtual addresses.
virtual const char * formatName() const
Returns the name of the file format.
SgAsmGenericSectionPtrList get_sectionsByOffset(rose_addr_t offset, rose_addr_t size) const
Returns sectons in this header that contain all of the specified portion of the file.
SgAsmGenericSectionPtrList get_sectionsById(int id) const
Returns sections in this header that have the specified ID.
SgAsmGenericSectionPtrList get_mappedSections() const
Returns the list of sections that are memory mapped.
SgAsmGenericSection * get_sectionByOffset(rose_addr_t offset, rose_addr_t size, size_t *nfound=0) const
Returns single section in this header that contains all of the specified portion of the file.
SgAsmGenericSection * get_sectionById(int id, size_t *nfound=0) const
Returns single section in this header that has the specified ID.
rose_addr_t get_entryRva() const
Returns the RVA of the first entry point.
SgAsmGenericSection * get_sectionByRva(rose_addr_t rva, size_t *nfound=0) const
Returns the single section having a preferred mapping that includes the specified relative virtual ad...
void set_entryRvas(SgRVAList const &)
Property: Code entry point wrt base virtual address.
void addSection(SgAsmGenericSection *)
Adds a new section to the header.
SgAsmGenericHeader(SgAsmGenericFile *)
Constructor.
rose_addr_t const & get_baseVa() const
Property: Base virtual address used by all relative virtual addresses.
SgAsmGenericSectionPtrList get_sectionsByRva(rose_addr_t rva) const
Returns sections that have a preferred mapping that includes the specified relative virtual address.
void initializeProperties()
Initialize all properties that have explicit initial values.
void set_dlls(SgAsmGenericDLLList *const &)
Property: List of dynamically linked libraries.
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.
virtual bool reallocate() override
Called prior to unparse to make things consistent.
SgAsmGenericSectionList *const & get_sections() const
Property: List of file sections.
SgAsmGenericSection * get_bestSectionByVa(rose_addr_t 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_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.
SgAsmGenericSection * get_sectionByVa(rose_addr_t va, bool use_preferred, size_t *nfound=0) const
Returns the section having a preferred or actual mapping that includes the specified virtual address.
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 readContentLocal(rose_addr_t rel_offset, void *dst_buf, rose_addr_t size, bool strict=true)
Reads data from a file.
rose_addr_t writeUleb128(unsigned char *, rose_addr_t offset, uint64_t) const
Write an unsigned little-endian 128-bit value.
rose_addr_t write(std::ostream &f, rose_addr_t offset, char c) const
Write data to a file section.
rose_addr_t const & get_mappedActualVa() const
Property: Virtual address where ROSE maps this section.
rose_addr_t writeSleb128(unsigned char *, rose_addr_t offset, int64_t) const
Write a signed little-endian 128-bit value.
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_addr_t get_vaOffset(rose_addr_t va) const
File offset for specified virtual address.
Rose::BinaryAnalysis::AddressIntervalSet get_unreferencedExtents() const
Returns a list of parts of a single section that have not been referenced.
rose_addr_t write(std::ostream &f, rose_addr_t offset, const SgUnsignedCharList &buf) const
Write data to a file section.
Extent get_fileExtent() const
Returns the file extent for the section.
void extend(rose_addr_t nbytes)
Extend a section by some number of bytes during the construction and/or parsing phase.
rose_addr_t get_rvaOffset(rose_addr_t rva) const
File offset for specified relative virtual address.
size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr &, const Rose::BinaryAnalysis::RelativeVirtualAddress &start, void *dst_buf, rose_addr_t size, bool strict=true)
Reads data from a file.
virtual void destructorHelper() override
This gets called by all Rosebud-generated destructors.
void set_mappedActualVa(rose_addr_t const &)
Property: Virtual address where ROSE maps this section.
rose_addr_t get_mappedPreferredVa() const
Virtual address where section prefers to be mapped.
virtual void set_mappedPreferredRva(rose_addr_t)
Property: Relative virtual address where section prefers to be mapped.
rose_addr_t get_offset() const
Property: Offset to start of section in file.
void set_name(SgAsmGenericString *s)
Property: Non-unique name of section.
rose_addr_t const & get_mappedPreferredRva() const
Property: Relative virtual address where section prefers to be mapped.
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.
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 set_header(SgAsmGenericHeader *const &)
Property: File header that owns this section.
rose_addr_t const & get_fileAlignment() const
Property: Required file alignment.
void set_id(int const &)
Property: Non-unique section ID or negative.
rose_addr_t write(std::ostream &f, rose_addr_t offset, const std::string &str) const
Write data to a file section.
bool align()
Increase file offset and mapping address to satisfy alignment constraints.
size_t readContent(rose_addr_t abs_offset, void *dst_buf, rose_addr_t size, bool strict=true)
Reads data from a file.
rose_addr_t const & get_mappedAlignment() const
Property: Alignment in virtual memory.
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.
SgUnsignedCharList readContentLocalUcl(rose_addr_t rel_offset, rose_addr_t size)
Reads content of a section and returns it as a container.
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.
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 set_mappedAlignment(rose_addr_t const &)
Property: Alignment in virtual memory.
std::string readContentString(rose_addr_t abs_offset, bool strict=true)
Reads a string from the file.
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.
virtual void set_size(rose_addr_t)
Property: Size of section in file in bytes.
void set_synthesized(bool const &)
Property: Whether section really exists.
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.
size_t readContent(const Rose::BinaryAnalysis::MemoryMap::Ptr &, rose_addr_t start, void *dst_buf, rose_addr_t size, bool strict=true)
Reads data from a file.
Extent get_mappedPreferredExtent() const
Returns the memory extent for a mapped section.
rose_addr_t const & get_mappedSize() const
Property: Mapped size.
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.
std::string readContentLocalString(rose_addr_t rel_offset, bool strict=true)
Reads a string from the file.
rose_addr_t get_size() const
Property: Size of section in file in bytes.
virtual void set_offset(rose_addr_t)
Property: Offset to start of section in file.
int64_t readContentLocalSleb128(rose_addr_t *rel_offset, bool strict=true)
Read a signed little-endian 128-bit value.
rose_addr_t get_endOffset() const
File offset for end of section.
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_addr_t get_baseVa() const
Base virtual address for a section.
virtual void set_mappedSize(rose_addr_t)
Property: Mapped size.
uint64_t readContentLocalUleb128(rose_addr_t *rel_offset, bool strict=true)
Read an unsigned little-endian 128-bit value.
bool const & get_mappedWritePermission() const
Property: Whether mapped with write permission.
rose_addr_t write(std::ostream &f, rose_addr_t offset, const SgFileContentList &buf) const
Write data to a file section.
std::string readContentString(const Rose::BinaryAnalysis::MemoryMap::Ptr &, rose_addr_t va, bool strict=true)
Reads a string from the file.
Rose::BinaryAnalysis::AddressIntervalSet get_referencedExtents() const
Returns a list of parts of a single section that have been referenced.
SgAsmGenericSection(SgAsmGenericFile *, SgAsmGenericHeader *)
Constructor linking object into ASt.
virtual bool reallocate()
Called prior to unparse to make things consistent.
void set_fileAlignment(rose_addr_t const &)
Property: Required file alignment.
rose_addr_t write(std::ostream &f, rose_addr_t offset, size_t bufsize, const void *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.
virtual ~SgAsmGenericString()
Destructor.
static const rose_addr_t unallocated
Constant for addresses of unallocated strings.
virtual void set_string(rose_addr_t)
Property: String value.
virtual void set_string(const std::string &s)
Property: String value.
SgAsmGenericString()
Default constructor.
Base class for string tables.
void free(rose_addr_t offset, rose_addr_t size)
Add a range of bytes to the free list after subtracting areas that are referenced by other strings.
void free(SgAsmStringStorage *)
Free area of this string table that corresponds to the string currently stored.
SgAsmStoredString * createString(rose_addr_t offset, bool shared)
Constructs an SgAsmStoredString from an offset into this string table.
Rose::BinaryAnalysis::AddressIntervalSet const & get_freeList() const
Property: Free space list.
void set_dontFree(SgAsmStringStorage *const &)
Property: Space that should never be freed.
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 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.
rose_addr_t const & get_size() const
Property: Symbol size in bytes.
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_addr_t 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_value(rose_addr_t const &)
Property: Symbol value.
void set_definitionState(SgAsmGenericSymbol::SymbolDefState const &)
Property: Definition state.
SgAsmGenericString * get_name() const
Property: Name.
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_addr_t 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.
void set_stackDeltaIn(int64_t const &)
Property: Stack pointer at start of instruction relative to start of instruction's function.
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.
int64_t const & get_stackDeltaIn() const
Property: Stack pointer at start of instruction relative to start of instruction's function.
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_addr_t > 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.
rose_addr_t const & get_code_offset() const
Property: Code offset.
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(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 set_code_offset(rose_addr_t const &)
Property: Code offset.
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.
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 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(rose_addr_t const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::JvmInstructionKind const &kind)
Constructor.
SgAsmJvmInstruction()
Default constructor.
Rose::BinaryAnalysis::JvmInstructionKind const & get_kind() const
Property: Instruction kind.
void initializeProperties()
Initialize all properties that have explicit initial values.
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.
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_addr_t 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.
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.
SgAsmMipsInstruction(rose_addr_t const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::MipsInstructionKind const &kind)
Constructor.
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_addr_t 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.
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_nt_hdr_size(rose_addr_t const &)
Property: Size of NT header.
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.
void set_e_file_checksum(unsigned const &)
Property: File checksum.
rose_addr_t const & get_e_nt_hdr_size() const
Property: Size of NT header.
unsigned const & get_e_section_align() const
Property: Section alignment.
unsigned const & get_e_coff_nsyms() const
Property: Number of COFF symbols.
void set_e_coff_symtab(rose_addr_t const &)
Property: COFF symbol table.
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.
rose_addr_t const & get_e_coff_symtab() const
Property: COFF symbol table.
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.
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_addr_t 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.
rose_addr_t get_iatEntryVa() const
Virtual address of an IAT entry.
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.
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.
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_addr_t const & get_e_size() const
Property: Size.
Rose::BinaryAnalysis::RelativeVirtualAddress const & get_e_rva() const
Property: RVA.
void set_e_size(rose_addr_t const &)
Property: Size.
void set_e_rva(Rose::BinaryAnalysis::RelativeVirtualAddress const &)
Property: RVA.
unsigned const & get_coff_line_nums() const
Property: COFF line numbers.
unsigned const & get_n_relocs() const
Property: Number of relocations.
void set_rva(rose_addr_t const &)
Property: RVA.
rose_addr_t const & get_physical_size() const
Property: Physical size.
void set_flags(unsigned const &)
Property: Flags.
void set_physical_offset(rose_addr_t const &)
Property: Physical offset.
void set_virtual_size(rose_addr_t const &)
Property: Virtual size.
void set_coff_line_nums(unsigned const &)
Property: COFF line numbers.
void set_name(std::string const &)
Property: Name.
rose_addr_t const & get_physical_offset() const
Property: Physical offset.
void updateFromSection(SgAsmPESection *section)
Update this section table entry with newer information from the section.
void set_n_coff_line_nums(unsigned const &)
Property: Number of COFF line numbers.
rose_addr_t const & get_virtual_size() const
Property: Virtual size.
void set_physical_size(rose_addr_t 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_addr_t const & get_rva() const
Property: RVA.
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.
virtual void set_size(rose_addr_t newsize) override
Property: Size of section in file in bytes.
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.
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.
virtual unsigned get_anyKind() const override
Returns instruction kind for any architecture.
SgAsmPowerpcInstruction(rose_addr_t const &address, uint8_t const &architectureId, Rose::BinaryAnalysis::PowerpcInstructionKind const &kind)
Constructor.
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.
void set_address(rose_addr_t 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.
rose_addr_t const & get_address() const
Property: Starting virtual address.
std::string const & get_comment() const
Property: Commentary.
SgAsmStatement(rose_addr_t const &address)
Constructor.
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.
virtual rose_addr_t get_offset() const override
Returns the offset into the string table where the string is allocated.
void set_storage(SgAsmStringStorage *const &)
Property: Storage area for this string.
SgAsmStoredString(SgAsmGenericStrtab *, rose_addr_t offset)
Construct a string existing in a string table.
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.
SgAsmGenericStrtab * get_strtab()
Returns the string table that holds this string.
SgAsmStoredString()
Default constructor.
virtual void set_string(rose_addr_t) override
Give the string a new value.
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_strtab(SgAsmGenericStrtab *const &)
Property: String table holding the string.
rose_addr_t const & get_offset() const
Property: Location of string in storage table.
void set_offset(rose_addr_t const &)
Property: Location of string in storage table.
std::string const & get_string() const
Property: String value.
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_addr_t const &address)
Constructor.
virtual ~SgAsmSynthesizedDeclaration()
Destructor.
SgAsmSynthesizedDeclaration()
Default constructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmSynthesizedFieldDeclaration(rose_addr_t const &address)
Constructor.
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.
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.
virtual ~SgAsmUserInstruction()
Destructor.
void initializeProperties()
Initialize all properties that have explicit initial values.
SgAsmUserInstruction(rose_addr_t const &address, uint8_t const &architectureId, unsigned const &kind)
Constructor.
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.
SgAsmX86Instruction(rose_addr_t 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.
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.
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.
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...