ROSE 0.11.145.367
binaryInstruction.C
1
2// THIS FILE IS MACHINE GENERATED -- DO NOT MODIFY
4//
5// This file was generated with ROSE's "rosebud" tool by reading node definitions written in a
6// C++-like language and emitting this ROSETTA input.
7//
9// DO NOT MODIFY THIS FILE MANUALLY!
11
12
13#include <featureTests.h>
14#if defined(ROSE_ENABLE_BINARY_ANALYSIS)
15#include "ROSETTA_macros.h"
16#include "grammar.h"
17#include "AstNodeClass.h"
18
19//#undef DOCUMENTATION -- commented out so IDEs can't figure it out
20#ifdef DOCUMENTATION
21DOCUMENTATION_should_never_be_defined;
22#endif
23
24#ifdef DOCUMENTATION
25#define DECLARE_LEAF_CLASS(CLASS_WITHOUT_Sg) /*void*/
26#define DECLARE_LEAF_CLASS2(CLASS_WITHOUT_Sg, TAG) /*void*/
27#else
28#define DECLARE_LEAF_CLASS(CLASS_WITHOUT_Sg) \
29 NEW_TERMINAL_MACRO(CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg "Tag"); \
30 CLASS_WITHOUT_Sg.setCppCondition("!defined(DOCUMENTATION)");\
31 CLASS_WITHOUT_Sg.setAutomaticGenerationOfConstructor(false);\
32 CLASS_WITHOUT_Sg.setAutomaticGenerationOfDestructor(false)
33#define DECLARE_LEAF_CLASS2(CLASS_WITHOUT_Sg, TAG) \
34 NEW_TERMINAL_MACRO(CLASS_WITHOUT_Sg, #CLASS_WITHOUT_Sg, #TAG); \
35 CLASS_WITHOUT_Sg.setCppCondition("!defined(DOCUMENTATION)");\
36 CLASS_WITHOUT_Sg.setAutomaticGenerationOfConstructor(false);\
37 CLASS_WITHOUT_Sg.setAutomaticGenerationOfDestructor(false)
38#endif
39
40#ifdef DOCUMENTATION
41#define DECLARE_HEADERS(CLASS_WITHOUT_Sg) /*void*/
42#else
43#define DECLARE_HEADERS(CLASS_WITHOUT_Sg) \
44 CLASS_WITHOUT_Sg.setPredeclarationString("Sg" #CLASS_WITHOUT_Sg "_HEADERS", \
45 ROSE_AUTOMAKE_ABSOLUTE_PATH_TOP_SRCDIR + "/src/ROSETTA/src/binaryInstruction.C")
46#endif
47
48#ifdef DOCUMENTATION
49#define DECLARE_OTHERS(CLASS_WITHOUT_Sg) /*void*/
50#else
51#define DECLARE_OTHERS(CLASS_WITHOUT_Sg) \
52 CLASS_WITHOUT_Sg.setFunctionPrototype("Sg" #CLASS_WITHOUT_Sg "_OTHERS", \
53 ROSE_AUTOMAKE_ABSOLUTE_PATH_TOP_SRCDIR + "/src/ROSETTA/src/binaryInstruction.C")
54#endif
55
56#ifdef DOCUMENTATION
57#define IS_SERIALIZABLE() /*void*/
58#else
59#define IS_SERIALIZABLE(CLASS_WITHOUT_Sg) \
60 CLASS_WITHOUT_Sg.isBoostSerializable(true)
61#endif
62
63
64// Since ROSETTA builds classes from the leaves up to the base, and C++ builds classes from the
65// base down to the leaves, we need to make sure that doxygen sees the base classes before the derived classes. So
66// just list all the non-leaf classes here.
67#ifdef DOCUMENTATION
71class SgAsmCilNode;
75class SgAsmElfSection;
77class SgAsmExpression;
85class SgAsmJvmNode;
86class SgAsmNode;
87class SgAsmPESection;
89class SgAsmScalarType;
90class SgAsmStatement;
92class SgAsmType;
95class SgNode;
96#endif // DOCUMENTATION
97
98#ifndef DOCUMENTATION
99void Grammar::setUpBinaryInstructions() {
100#endif // !DOCUMENTATION
101
102
104// SgAsmX86Instruction -- MACHINE GENERATED; DO NOT MODIFY --
106
107DECLARE_LEAF_CLASS(AsmX86Instruction);
108IS_SERIALIZABLE(AsmX86Instruction);
109
110#ifndef DOCUMENTATION
111AsmX86Instruction.useSmallHeader(true);
112#endif // !DOCUMENTATION
113
114DECLARE_HEADERS(AsmX86Instruction);
115#if defined(SgAsmX86Instruction_HEADERS) || defined(DOCUMENTATION)
116#include <Rose/BinaryAnalysis/BasicTypes.h>
117#include <Rose/BinaryAnalysis/InstructionEnumsX86.h>
118#endif // SgAsmX86Instruction_HEADERS
119
120#ifdef DOCUMENTATION
123#endif // DOCUMENTATION
124
125#ifndef DOCUMENTATION
126 AsmX86Instruction.setDataPrototype(
127 "Rose::BinaryAnalysis::X86InstructionKind", "kind", "= Rose::BinaryAnalysis::x86_unknown_instruction",
128 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
129#endif // !DOCUMENTATION
130
131#ifndef DOCUMENTATION
132 AsmX86Instruction.setDataPrototype(
133 "Rose::BinaryAnalysis::X86InstructionSize", "baseSize", "= Rose::BinaryAnalysis::x86_insnsize_none",
134 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
135#endif // !DOCUMENTATION
136
137#ifndef DOCUMENTATION
138 AsmX86Instruction.setDataPrototype(
139 "Rose::BinaryAnalysis::X86InstructionSize", "operandSize", "= Rose::BinaryAnalysis::x86_insnsize_none",
140 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
141#endif // !DOCUMENTATION
142
143#ifndef DOCUMENTATION
144 AsmX86Instruction.setDataPrototype(
145 "Rose::BinaryAnalysis::X86InstructionSize", "addressSize", "= Rose::BinaryAnalysis::x86_insnsize_none",
146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
147#endif // !DOCUMENTATION
148
149#ifndef DOCUMENTATION
150 AsmX86Instruction.setDataPrototype(
151 "bool", "lockPrefix", "= false",
152 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
153#endif // !DOCUMENTATION
154
155#ifndef DOCUMENTATION
156 AsmX86Instruction.setDataPrototype(
157 "Rose::BinaryAnalysis::X86RepeatPrefix", "repeatPrefix", "= Rose::BinaryAnalysis::x86_repeat_none",
158 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
159#endif // !DOCUMENTATION
160
161#ifndef DOCUMENTATION
162 AsmX86Instruction.setDataPrototype(
163 "Rose::BinaryAnalysis::X86BranchPrediction", "branchPrediction", "= Rose::BinaryAnalysis::x86_branch_prediction_none",
164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
165#endif // !DOCUMENTATION
166
167#ifndef DOCUMENTATION
168 AsmX86Instruction.setDataPrototype(
169 "Rose::BinaryAnalysis::X86SegmentRegister", "segmentOverride", "= Rose::BinaryAnalysis::x86_segreg_none",
170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
171#endif // !DOCUMENTATION
172
173 DECLARE_OTHERS(AsmX86Instruction);
174#if defined(SgAsmX86Instruction_OTHERS) || defined(DOCUMENTATION)
175
176 //----------------------- Boost serialization for SgAsmX86Instruction -----------------------
177#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
178private:
179 friend class boost::serialization::access;
180
181 template<class S>
182 void serialize(S &s, const unsigned /*version*/) {
183 debugSerializationBegin("SgAsmX86Instruction");
184 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
185 s & BOOST_SERIALIZATION_NVP(p_kind);
186 s & BOOST_SERIALIZATION_NVP(p_baseSize);
187 s & BOOST_SERIALIZATION_NVP(p_operandSize);
188 s & BOOST_SERIALIZATION_NVP(p_addressSize);
189 s & BOOST_SERIALIZATION_NVP(p_lockPrefix);
190 s & BOOST_SERIALIZATION_NVP(p_repeatPrefix);
191 s & BOOST_SERIALIZATION_NVP(p_branchPrediction);
192 s & BOOST_SERIALIZATION_NVP(p_segmentOverride);
193 debugSerializationEnd("SgAsmX86Instruction");
194 }
195#endif // ROSE_ENABLE_BOOST_SERIALIZATION
196public:
197public:
208public:
212 Rose::BinaryAnalysis::X86InstructionSize const& get_baseSize() const;
213 void set_baseSize(Rose::BinaryAnalysis::X86InstructionSize const&);
216public:
220 Rose::BinaryAnalysis::X86InstructionSize const& get_operandSize() const;
221 void set_operandSize(Rose::BinaryAnalysis::X86InstructionSize const&);
224public:
228 Rose::BinaryAnalysis::X86InstructionSize const& get_addressSize() const;
229 void set_addressSize(Rose::BinaryAnalysis::X86InstructionSize const&);
232public:
238 bool const& get_lockPrefix() const;
239 void set_lockPrefix(bool const&);
242public:
246 Rose::BinaryAnalysis::X86RepeatPrefix const& get_repeatPrefix() const;
247 void set_repeatPrefix(Rose::BinaryAnalysis::X86RepeatPrefix const&);
250public:
254 Rose::BinaryAnalysis::X86BranchPrediction const& get_branchPrediction() const;
255 void set_branchPrediction(Rose::BinaryAnalysis::X86BranchPrediction const&);
258public:
265 Rose::BinaryAnalysis::X86SegmentRegister const& get_segmentOverride() const;
266 void set_segmentOverride(Rose::BinaryAnalysis::X86SegmentRegister const&);
268public:
272 static Rose::BinaryAnalysis::X86InstructionSize instructionSizeForWidth(size_t);
273
277 static size_t widthForInstructionSize(Rose::BinaryAnalysis::X86InstructionSize);
278
283 static Rose::BinaryAnalysis::RegisterDictionaryPtr registersForInstructionSize(Rose::BinaryAnalysis::X86InstructionSize);
284
290
291 // Overrides are documented in the base class
292 virtual unsigned get_anyKind() const override;
293public:
296
297public:
300
301public:
304 uint8_t const& architectureId,
306 Rose::BinaryAnalysis::X86InstructionSize const& baseSize,
307 Rose::BinaryAnalysis::X86InstructionSize const& operandSize,
308 Rose::BinaryAnalysis::X86InstructionSize const& addressSize);
309
310protected:
318#endif // SgAsmX86Instruction_OTHERS
319#ifdef DOCUMENTATION
320};
321#endif // DOCUMENTATION
322
323
325// SgAsmVoidType -- MACHINE GENERATED; DO NOT MODIFY --
327
328DECLARE_LEAF_CLASS(AsmVoidType);
329IS_SERIALIZABLE(AsmVoidType);
330
331#ifndef DOCUMENTATION
332AsmVoidType.useSmallHeader(true);
333#endif // !DOCUMENTATION
334
335#ifdef DOCUMENTATION
338#endif // DOCUMENTATION
339
340 DECLARE_OTHERS(AsmVoidType);
341#if defined(SgAsmVoidType_OTHERS) || defined(DOCUMENTATION)
342
343 //----------------------- Boost serialization for SgAsmVoidType -----------------------
344#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
345private:
346 friend class boost::serialization::access;
347
348 template<class S>
349 void serialize(S &s, const unsigned /*version*/) {
350 debugSerializationBegin("SgAsmVoidType");
351 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
352 debugSerializationEnd("SgAsmVoidType");
353 }
354#endif // ROSE_ENABLE_BOOST_SERIALIZATION
355public:
356 static SgAsmVoidType* instance();
357
358 virtual std::string toString() const override;
359 virtual size_t get_nBits() const override;
360public:
362 virtual ~SgAsmVoidType();
363
364public:
367
368protected:
376#endif // SgAsmVoidType_OTHERS
377#ifdef DOCUMENTATION
378};
379#endif // DOCUMENTATION
380
381
383// SgAsmVectorType -- MACHINE GENERATED; DO NOT MODIFY --
385
386DECLARE_LEAF_CLASS(AsmVectorType);
387IS_SERIALIZABLE(AsmVectorType);
388
389#ifndef DOCUMENTATION
390AsmVectorType.useSmallHeader(true);
391#endif // !DOCUMENTATION
392
393#ifdef DOCUMENTATION
396#endif // DOCUMENTATION
397
398#ifndef DOCUMENTATION
399 AsmVectorType.setDataPrototype(
400 "size_t", "nElmts", "= 0",
401 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
402#endif // !DOCUMENTATION
403
404#ifndef DOCUMENTATION
405 AsmVectorType.setDataPrototype(
406 "SgAsmType*", "elmtType", "= nullptr",
407 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
408#endif // !DOCUMENTATION
409
410 DECLARE_OTHERS(AsmVectorType);
411#if defined(SgAsmVectorType_OTHERS) || defined(DOCUMENTATION)
412
413 //----------------------- Boost serialization for SgAsmVectorType -----------------------
414#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
415private:
416 friend class boost::serialization::access;
417
418 template<class S>
419 void serialize(S &s, const unsigned /*version*/) {
420 debugSerializationBegin("SgAsmVectorType");
421 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
422 s & BOOST_SERIALIZATION_NVP(p_nElmts);
423 s & BOOST_SERIALIZATION_NVP(p_elmtType);
424 debugSerializationEnd("SgAsmVectorType");
425 }
426#endif // ROSE_ENABLE_BOOST_SERIALIZATION
427public:
428public:
434public:
439public:
441 SgAsmVectorType(size_t nElmts, SgAsmType *elmtType);
442
444 size_t get_nElmts() const;
445
448
449 // Overrides documented in base class
450 virtual void check() const override;
451 virtual std::string toString() const override;
452 virtual size_t get_nBits() const override;
453public:
456
457public:
460
461protected:
469#endif // SgAsmVectorType_OTHERS
470#ifdef DOCUMENTATION
471};
472#endif // DOCUMENTATION
473
474
476// SgAsmUserInstruction -- MACHINE GENERATED; DO NOT MODIFY --
478
479DECLARE_LEAF_CLASS(AsmUserInstruction);
480IS_SERIALIZABLE(AsmUserInstruction);
481
482#ifndef DOCUMENTATION
483AsmUserInstruction.useSmallHeader(true);
484#endif // !DOCUMENTATION
485
486#ifdef DOCUMENTATION
493#endif // DOCUMENTATION
494
495#ifndef DOCUMENTATION
496 AsmUserInstruction.setDataPrototype(
497 "unsigned", "kind", "= 0",
498 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
499#endif // !DOCUMENTATION
500
501 DECLARE_OTHERS(AsmUserInstruction);
502#if defined(SgAsmUserInstruction_OTHERS) || defined(DOCUMENTATION)
503
504 //----------------------- Boost serialization for SgAsmUserInstruction -----------------------
505#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
506private:
507 friend class boost::serialization::access;
508
509 template<class S>
510 void serialize(S &s, const unsigned /*version*/) {
511 debugSerializationBegin("SgAsmUserInstruction");
512 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
513 s & BOOST_SERIALIZATION_NVP(p_kind);
514 debugSerializationEnd("SgAsmUserInstruction");
515 }
516#endif // ROSE_ENABLE_BOOST_SERIALIZATION
517public:
518public:
524 unsigned const& get_kind() const;
525 void set_kind(unsigned const&);
527public:
528 // Overrides are documented in the base class
529 virtual unsigned get_anyKind() const override;
530public:
533
534public:
537
538public:
541 uint8_t const& architectureId,
542 unsigned const& kind);
543
544protected:
552#endif // SgAsmUserInstruction_OTHERS
553#ifdef DOCUMENTATION
554};
555#endif // DOCUMENTATION
556
557
559// SgAsmUnaryUnsignedExtend -- MACHINE GENERATED; DO NOT MODIFY --
561
562DECLARE_LEAF_CLASS(AsmUnaryUnsignedExtend);
563IS_SERIALIZABLE(AsmUnaryUnsignedExtend);
564
565#ifndef DOCUMENTATION
566AsmUnaryUnsignedExtend.useSmallHeader(true);
567#endif // !DOCUMENTATION
568
569#ifdef DOCUMENTATION
576#endif // DOCUMENTATION
577
578 DECLARE_OTHERS(AsmUnaryUnsignedExtend);
579#if defined(SgAsmUnaryUnsignedExtend_OTHERS) || defined(DOCUMENTATION)
580
581 //----------------------- Boost serialization for SgAsmUnaryUnsignedExtend -----------------------
582#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
583private:
584 friend class boost::serialization::access;
585
586 template<class S>
587 void serialize(S &s, const unsigned /*version*/) {
588 debugSerializationBegin("SgAsmUnaryUnsignedExtend");
589 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
590 debugSerializationEnd("SgAsmUnaryUnsignedExtend");
591 }
592#endif // ROSE_ENABLE_BOOST_SERIALIZATION
593
594public:
597
598public:
601
602public:
604 explicit SgAsmUnaryUnsignedExtend(SgAsmExpression* const& operand);
605
606protected:
614#endif // SgAsmUnaryUnsignedExtend_OTHERS
615#ifdef DOCUMENTATION
616};
617#endif // DOCUMENTATION
618
619
621// SgAsmUnaryTruncate -- MACHINE GENERATED; DO NOT MODIFY --
623
624DECLARE_LEAF_CLASS(AsmUnaryTruncate);
625IS_SERIALIZABLE(AsmUnaryTruncate);
626
627#ifndef DOCUMENTATION
628AsmUnaryTruncate.useSmallHeader(true);
629#endif // !DOCUMENTATION
630
631#ifdef DOCUMENTATION
638#endif // DOCUMENTATION
639
640 DECLARE_OTHERS(AsmUnaryTruncate);
641#if defined(SgAsmUnaryTruncate_OTHERS) || defined(DOCUMENTATION)
642
643 //----------------------- Boost serialization for SgAsmUnaryTruncate -----------------------
644#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
645private:
646 friend class boost::serialization::access;
647
648 template<class S>
649 void serialize(S &s, const unsigned /*version*/) {
650 debugSerializationBegin("SgAsmUnaryTruncate");
651 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
652 debugSerializationEnd("SgAsmUnaryTruncate");
653 }
654#endif // ROSE_ENABLE_BOOST_SERIALIZATION
655
656public:
659
660public:
663
664public:
666 explicit SgAsmUnaryTruncate(SgAsmExpression* const& operand);
667
668protected:
676#endif // SgAsmUnaryTruncate_OTHERS
677#ifdef DOCUMENTATION
678};
679#endif // DOCUMENTATION
680
681
683// SgAsmUnarySignedExtend -- MACHINE GENERATED; DO NOT MODIFY --
685
686DECLARE_LEAF_CLASS(AsmUnarySignedExtend);
687IS_SERIALIZABLE(AsmUnarySignedExtend);
688
689#ifndef DOCUMENTATION
690AsmUnarySignedExtend.useSmallHeader(true);
691#endif // !DOCUMENTATION
692
693#ifdef DOCUMENTATION
700#endif // DOCUMENTATION
701
702 DECLARE_OTHERS(AsmUnarySignedExtend);
703#if defined(SgAsmUnarySignedExtend_OTHERS) || defined(DOCUMENTATION)
704
705 //----------------------- Boost serialization for SgAsmUnarySignedExtend -----------------------
706#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
707private:
708 friend class boost::serialization::access;
709
710 template<class S>
711 void serialize(S &s, const unsigned /*version*/) {
712 debugSerializationBegin("SgAsmUnarySignedExtend");
713 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
714 debugSerializationEnd("SgAsmUnarySignedExtend");
715 }
716#endif // ROSE_ENABLE_BOOST_SERIALIZATION
717
718public:
721
722public:
725
726public:
728 explicit SgAsmUnarySignedExtend(SgAsmExpression* const& operand);
729
730protected:
738#endif // SgAsmUnarySignedExtend_OTHERS
739#ifdef DOCUMENTATION
740};
741#endif // DOCUMENTATION
742
743
745// SgAsmUnaryRrx -- MACHINE GENERATED; DO NOT MODIFY --
747
748DECLARE_LEAF_CLASS(AsmUnaryRrx);
749IS_SERIALIZABLE(AsmUnaryRrx);
750
751#ifndef DOCUMENTATION
752AsmUnaryRrx.useSmallHeader(true);
753#endif // !DOCUMENTATION
754
755DECLARE_HEADERS(AsmUnaryRrx);
756#if defined(SgAsmUnaryRrx_HEADERS) || defined(DOCUMENTATION)
757// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
758#endif // SgAsmUnaryRrx_HEADERS
759
760#ifdef DOCUMENTATION
762#endif // DOCUMENTATION
763
764 DECLARE_OTHERS(AsmUnaryRrx);
765#if defined(SgAsmUnaryRrx_OTHERS) || defined(DOCUMENTATION)
766
767 //----------------------- Boost serialization for SgAsmUnaryRrx -----------------------
768#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
769private:
770 friend class boost::serialization::access;
771
772 template<class S>
773 void serialize(S &s, const unsigned /*version*/) {
774 debugSerializationBegin("SgAsmUnaryRrx");
775 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
776 debugSerializationEnd("SgAsmUnaryRrx");
777 }
778#endif // ROSE_ENABLE_BOOST_SERIALIZATION
779
780public:
782 virtual ~SgAsmUnaryRrx();
783
784public:
787
788public:
790 explicit SgAsmUnaryRrx(SgAsmExpression* const& operand);
791
792protected:
800#endif // SgAsmUnaryRrx_OTHERS
801#ifdef DOCUMENTATION
802};
803#endif // DOCUMENTATION
804
805
807// SgAsmUnaryPlus -- MACHINE GENERATED; DO NOT MODIFY --
809
810DECLARE_LEAF_CLASS(AsmUnaryPlus);
811IS_SERIALIZABLE(AsmUnaryPlus);
812
813#ifndef DOCUMENTATION
814AsmUnaryPlus.useSmallHeader(true);
815#endif // !DOCUMENTATION
816
817#ifdef DOCUMENTATION
820#endif // DOCUMENTATION
821
822 DECLARE_OTHERS(AsmUnaryPlus);
823#if defined(SgAsmUnaryPlus_OTHERS) || defined(DOCUMENTATION)
824
825 //----------------------- Boost serialization for SgAsmUnaryPlus -----------------------
826#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
827private:
828 friend class boost::serialization::access;
829
830 template<class S>
831 void serialize(S &s, const unsigned /*version*/) {
832 debugSerializationBegin("SgAsmUnaryPlus");
833 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
834 debugSerializationEnd("SgAsmUnaryPlus");
835 }
836#endif // ROSE_ENABLE_BOOST_SERIALIZATION
837
838public:
841
842public:
845
846public:
848 explicit SgAsmUnaryPlus(SgAsmExpression* const& operand);
849
850protected:
858#endif // SgAsmUnaryPlus_OTHERS
859#ifdef DOCUMENTATION
860};
861#endif // DOCUMENTATION
862
863
865// SgAsmUnaryMinus -- MACHINE GENERATED; DO NOT MODIFY --
867
868DECLARE_LEAF_CLASS(AsmUnaryMinus);
869IS_SERIALIZABLE(AsmUnaryMinus);
870
871#ifndef DOCUMENTATION
872AsmUnaryMinus.useSmallHeader(true);
873#endif // !DOCUMENTATION
874
875#ifdef DOCUMENTATION
878#endif // DOCUMENTATION
879
880 DECLARE_OTHERS(AsmUnaryMinus);
881#if defined(SgAsmUnaryMinus_OTHERS) || defined(DOCUMENTATION)
882
883 //----------------------- Boost serialization for SgAsmUnaryMinus -----------------------
884#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
885private:
886 friend class boost::serialization::access;
887
888 template<class S>
889 void serialize(S &s, const unsigned /*version*/) {
890 debugSerializationBegin("SgAsmUnaryMinus");
891 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmUnaryExpression);
892 debugSerializationEnd("SgAsmUnaryMinus");
893 }
894#endif // ROSE_ENABLE_BOOST_SERIALIZATION
895
896public:
899
900public:
903
904public:
906 explicit SgAsmUnaryMinus(SgAsmExpression* const& operand);
907
908protected:
916#endif // SgAsmUnaryMinus_OTHERS
917#ifdef DOCUMENTATION
918};
919#endif // DOCUMENTATION
920
921
923// SgAsmUnaryExpression -- MACHINE GENERATED; DO NOT MODIFY --
925
926#ifndef DOCUMENTATION
927AstNodeClass& AsmUnaryExpression = nonTerminalConstructor(
928 "AsmUnaryExpression",
929 *this,
930 "AsmUnaryExpression",
931 "AsmUnaryExpressionTag",
932 SubclassListBuilder()
933 | AsmUnaryMinus
934 | AsmUnaryPlus
935 | AsmUnaryRrx
936 | AsmUnarySignedExtend
937 | AsmUnaryTruncate
938 | AsmUnaryUnsignedExtend
939 , false);
940assert(AsmUnaryExpression.associatedGrammar != nullptr);
941AsmUnaryExpression.setCppCondition("!defined(DOCUMENTATION)");
942AsmUnaryExpression.isBoostSerializable(true);
943AsmUnaryExpression.setAutomaticGenerationOfConstructor(false);
944AsmUnaryExpression.setAutomaticGenerationOfDestructor(false);
945#endif // !DOCUMENTATION
946
947#ifndef DOCUMENTATION
948AsmUnaryExpression.useSmallHeader(true);
949#endif // !DOCUMENTATION
950
951#ifdef DOCUMENTATION
954#endif // DOCUMENTATION
955
956#ifndef DOCUMENTATION
957 AsmUnaryExpression.setDataPrototype(
958 "SgAsmExpression*", "operand", "= nullptr",
959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
960#endif // !DOCUMENTATION
961
962 DECLARE_OTHERS(AsmUnaryExpression);
963#if defined(SgAsmUnaryExpression_OTHERS) || defined(DOCUMENTATION)
964
965 //----------------------- Boost serialization for SgAsmUnaryExpression -----------------------
966#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
967private:
968 friend class boost::serialization::access;
969
970 template<class S>
971 void serialize(S &s, const unsigned /*version*/) {
972 debugSerializationBegin("SgAsmUnaryExpression");
973 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
974 s & BOOST_SERIALIZATION_NVP(p_operand);
975 debugSerializationEnd("SgAsmUnaryExpression");
976 }
977#endif // ROSE_ENABLE_BOOST_SERIALIZATION
978public:
979public:
987public:
990
991protected:
994
995protected:
997 explicit SgAsmUnaryExpression(SgAsmExpression* const& operand);
998
999protected:
1007#endif // SgAsmUnaryExpression_OTHERS
1008#ifdef DOCUMENTATION
1009};
1010#endif // DOCUMENTATION
1011
1012
1014// SgAsmSynthesizedFieldDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
1016
1017DECLARE_LEAF_CLASS(AsmSynthesizedFieldDeclaration);
1018IS_SERIALIZABLE(AsmSynthesizedFieldDeclaration);
1019
1020#ifndef DOCUMENTATION
1021AsmSynthesizedFieldDeclaration.useSmallHeader(true);
1022#endif // !DOCUMENTATION
1023
1024DECLARE_HEADERS(AsmSynthesizedFieldDeclaration);
1025#if defined(SgAsmSynthesizedFieldDeclaration_HEADERS) || defined(DOCUMENTATION)
1026// FIXME[Robb P Matzke 2017-02-13]: what is this?
1027#endif // SgAsmSynthesizedFieldDeclaration_HEADERS
1028
1029#ifdef DOCUMENTATION
1031#endif // DOCUMENTATION
1032
1033#ifndef DOCUMENTATION
1034 AsmSynthesizedFieldDeclaration.setDataPrototype(
1035 "std::string", "name", "",
1036 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1037#endif // !DOCUMENTATION
1038
1039#ifndef DOCUMENTATION
1040 AsmSynthesizedFieldDeclaration.setDataPrototype(
1041 "uint64_t", "offset", "= 0",
1042 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1043#endif // !DOCUMENTATION
1044
1045 DECLARE_OTHERS(AsmSynthesizedFieldDeclaration);
1046#if defined(SgAsmSynthesizedFieldDeclaration_OTHERS) || defined(DOCUMENTATION)
1047
1048 //----------------------- Boost serialization for SgAsmSynthesizedFieldDeclaration -----------------------
1049#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1050private:
1051 friend class boost::serialization::access;
1052
1053 template<class S>
1054 void serialize(S &s, const unsigned /*version*/) {
1055 debugSerializationBegin("SgAsmSynthesizedFieldDeclaration");
1056 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
1057 s & BOOST_SERIALIZATION_NVP(p_name);
1058 s & BOOST_SERIALIZATION_NVP(p_offset);
1059 debugSerializationEnd("SgAsmSynthesizedFieldDeclaration");
1060 }
1061#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1062public:
1063public:
1067 std::string const& get_name() const;
1068 void set_name(std::string const&);
1070 // FIXME[Robb P Matzke 2017-02-13]: Is this bytes, bits, or what?
1071 // Not clear if we want to store the offset explicitly
1072public:
1076 uint64_t const& get_offset() const;
1077 void set_offset(uint64_t const&);
1080public:
1083
1084public:
1087
1088public:
1091
1092protected:
1100#endif // SgAsmSynthesizedFieldDeclaration_OTHERS
1101#ifdef DOCUMENTATION
1102};
1103#endif // DOCUMENTATION
1104
1105
1107// SgAsmSynthesizedDataStructureDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
1109
1110DECLARE_LEAF_CLASS(AsmSynthesizedDataStructureDeclaration);
1111IS_SERIALIZABLE(AsmSynthesizedDataStructureDeclaration);
1112
1113#ifndef DOCUMENTATION
1114AsmSynthesizedDataStructureDeclaration.useSmallHeader(true);
1115#endif // !DOCUMENTATION
1116
1117DECLARE_HEADERS(AsmSynthesizedDataStructureDeclaration);
1118#if defined(SgAsmSynthesizedDataStructureDeclaration_HEADERS) || defined(DOCUMENTATION)
1119#include <sageContainer.h>
1120#endif // SgAsmSynthesizedDataStructureDeclaration_HEADERS
1121
1122#ifdef DOCUMENTATION
1134#endif // DOCUMENTATION
1135
1136 DECLARE_OTHERS(AsmSynthesizedDataStructureDeclaration);
1137#if defined(SgAsmSynthesizedDataStructureDeclaration_OTHERS) || defined(DOCUMENTATION)
1138
1139 //----------------------- Boost serialization for SgAsmSynthesizedDataStructureDeclaration -----------------------
1140#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1141private:
1142 friend class boost::serialization::access;
1143
1144 template<class S>
1145 void serialize(S &s, const unsigned /*version*/) {
1146 debugSerializationBegin("SgAsmSynthesizedDataStructureDeclaration");
1147 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
1148 debugSerializationEnd("SgAsmSynthesizedDataStructureDeclaration");
1149 }
1150#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1151protected:
1152 SgAsmSynthesizedDeclarationPtrList p_declarationList;
1153
1154public:
1157 p_declarationList.push_back(declaration);
1158 }
1159
1161 // Deprecated 2023-11
1163public:
1164 void append_declaration(SgAsmSynthesizedDeclaration*) ROSE_DEPRECATED("use appendDeclaration");
1165public:
1168
1169public:
1172
1173public:
1176
1177protected:
1184 void initializeProperties();
1185#endif // SgAsmSynthesizedDataStructureDeclaration_OTHERS
1186#ifdef DOCUMENTATION
1187};
1188#endif // DOCUMENTATION
1189
1190
1192// SgAsmStringStorage -- MACHINE GENERATED; DO NOT MODIFY --
1194
1195DECLARE_LEAF_CLASS(AsmStringStorage);
1196IS_SERIALIZABLE(AsmStringStorage);
1197
1198#ifndef DOCUMENTATION
1199AsmStringStorage.useSmallHeader(true);
1200#endif // !DOCUMENTATION
1201
1202DECLARE_HEADERS(AsmStringStorage);
1203#if defined(SgAsmStringStorage_HEADERS) || defined(DOCUMENTATION)
1204#include <Rose/BinaryAnalysis/Address.h>
1205#endif // SgAsmStringStorage_HEADERS
1206
1207#ifdef DOCUMENTATION
1210#endif // DOCUMENTATION
1211
1212#ifndef DOCUMENTATION
1213 AsmStringStorage.setDataPrototype(
1214 "SgAsmGenericStrtab*", "strtab", "= nullptr",
1215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1216#endif // !DOCUMENTATION
1217
1218#ifndef DOCUMENTATION
1219 AsmStringStorage.setDataPrototype(
1220 "std::string", "string", "",
1221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1222#endif // !DOCUMENTATION
1223
1224#ifndef DOCUMENTATION
1225 AsmStringStorage.setDataPrototype(
1226 "Rose::BinaryAnalysis::Address", "offset", "= 0",
1227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1228#endif // !DOCUMENTATION
1229
1230 DECLARE_OTHERS(AsmStringStorage);
1231#if defined(SgAsmStringStorage_OTHERS) || defined(DOCUMENTATION)
1232
1233 //----------------------- Boost serialization for SgAsmStringStorage -----------------------
1234#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1235private:
1236 friend class boost::serialization::access;
1237
1238 template<class S>
1239 void serialize(S &s, const unsigned /*version*/) {
1240 debugSerializationBegin("SgAsmStringStorage");
1241 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
1242 s & BOOST_SERIALIZATION_NVP(p_strtab);
1243 s & BOOST_SERIALIZATION_NVP(p_string);
1244 s & BOOST_SERIALIZATION_NVP(p_offset);
1245 debugSerializationEnd("SgAsmStringStorage");
1246 }
1247#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1248public:
1249public:
1257public:
1261 std::string const& get_string() const;
1262 void set_string(std::string const&);
1265public:
1272public:
1273 SgAsmStringStorage(SgAsmGenericStrtab *strtab, const std::string &string, Rose::BinaryAnalysis::Address offset);
1274
1275 void dump(FILE *s, const char *prefix, ssize_t idx) const;
1276
1277 /* Accessors. The set_* accessors are private because we don't want anyone messing with them. These data members are
1278 * used to control string allocation in ELF string tables and must only be modified by allocators in closely related
1279 * classes. For instance, to change the value of the string one should call SgAsmGenericString::set_string()
1280 * instead. */
1281
1282 private:
1283 friend class SgAsmStoredString; /*allowed to set private data members*/
1284 friend class SgAsmStoredStrtab; /*allowed to set private data members*/
1285public:
1288
1289public:
1292
1293protected:
1301#endif // SgAsmStringStorage_OTHERS
1302#ifdef DOCUMENTATION
1303};
1304#endif // DOCUMENTATION
1305
1306
1308// SgAsmStoredString -- MACHINE GENERATED; DO NOT MODIFY --
1310
1311DECLARE_LEAF_CLASS(AsmStoredString);
1312IS_SERIALIZABLE(AsmStoredString);
1313
1314#ifndef DOCUMENTATION
1315AsmStoredString.useSmallHeader(true);
1316#endif // !DOCUMENTATION
1317
1318DECLARE_HEADERS(AsmStoredString);
1319#if defined(SgAsmStoredString_HEADERS) || defined(DOCUMENTATION)
1320#include <Rose/BinaryAnalysis/Address.h>
1321#endif // SgAsmStoredString_HEADERS
1322
1323#ifdef DOCUMENTATION
1326#endif // DOCUMENTATION
1327
1328#ifndef DOCUMENTATION
1329 AsmStoredString.setDataPrototype(
1330 "SgAsmStringStorage*", "storage", "= nullptr",
1331 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1332#endif // !DOCUMENTATION
1333
1334 DECLARE_OTHERS(AsmStoredString);
1335#if defined(SgAsmStoredString_OTHERS) || defined(DOCUMENTATION)
1336
1337 //----------------------- Boost serialization for SgAsmStoredString -----------------------
1338#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1339private:
1340 friend class boost::serialization::access;
1341
1342 template<class S>
1343 void serialize(S &s, const unsigned /*version*/) {
1344 debugSerializationBegin("SgAsmStoredString");
1345 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericString);
1346 s & BOOST_SERIALIZATION_NVP(p_storage);
1347 debugSerializationEnd("SgAsmStoredString");
1348 }
1349#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1350public:
1351public:
1358public:
1361
1364
1367
1369 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
1370
1375
1377 virtual std::string get_string(bool escape=false) const override;
1378
1382 virtual void set_string(const std::string&) override;
1383
1388
1393public:
1396
1397public:
1400
1401protected:
1409#endif // SgAsmStoredString_OTHERS
1410#ifdef DOCUMENTATION
1411};
1412#endif // DOCUMENTATION
1413
1414
1416// SgAsmStaticData -- MACHINE GENERATED; DO NOT MODIFY --
1418
1419DECLARE_LEAF_CLASS(AsmStaticData);
1420IS_SERIALIZABLE(AsmStaticData);
1421
1422#ifndef DOCUMENTATION
1423AsmStaticData.useSmallHeader(true);
1424#endif // !DOCUMENTATION
1425
1426DECLARE_HEADERS(AsmStaticData);
1427#if defined(SgAsmStaticData_HEADERS) || defined(DOCUMENTATION)
1428#include <sageContainer.h>
1429#endif // SgAsmStaticData_HEADERS
1430
1431#ifdef DOCUMENTATION
1440#endif // DOCUMENTATION
1441
1442#ifndef DOCUMENTATION
1443 AsmStaticData.setDataPrototype(
1444 "SgUnsignedCharList", "rawBytes", "",
1445 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1446#endif // !DOCUMENTATION
1447
1448 DECLARE_OTHERS(AsmStaticData);
1449#if defined(SgAsmStaticData_OTHERS) || defined(DOCUMENTATION)
1450
1451 //----------------------- Boost serialization for SgAsmStaticData -----------------------
1452#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1453private:
1454 friend class boost::serialization::access;
1455
1456 template<class S>
1457 void serialize(S &s, const unsigned /*version*/) {
1458 debugSerializationBegin("SgAsmStaticData");
1459 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
1460 s & BOOST_SERIALIZATION_NVP(p_rawBytes);
1461 debugSerializationEnd("SgAsmStaticData");
1462 }
1463#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1464public:
1465public:
1472 SgUnsignedCharList const& get_rawBytes() const;
1473 void set_rawBytes(SgUnsignedCharList const&);
1475public:
1479 size_t get_size() const;
1480
1482 // Deprecated 2023-11
1484public:
1485 const SgUnsignedCharList& get_raw_bytes() const ROSE_DEPRECATED("use get_rawBytes");
1486 void set_raw_bytes(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_rawBytes");
1487public:
1489 virtual ~SgAsmStaticData();
1490
1491public:
1494
1495public:
1497 explicit SgAsmStaticData(Rose::BinaryAnalysis::Address const& address);
1498
1499protected:
1506 void initializeProperties();
1507#endif // SgAsmStaticData_OTHERS
1508#ifdef DOCUMENTATION
1509};
1510#endif // DOCUMENTATION
1511
1512
1514// SgAsmStackExpression -- MACHINE GENERATED; DO NOT MODIFY --
1516
1517DECLARE_LEAF_CLASS(AsmStackExpression);
1518IS_SERIALIZABLE(AsmStackExpression);
1519
1520#ifndef DOCUMENTATION
1521AsmStackExpression.useSmallHeader(true);
1522#endif // !DOCUMENTATION
1523
1524#ifdef DOCUMENTATION
1527#endif // DOCUMENTATION
1528
1529#ifndef DOCUMENTATION
1530 AsmStackExpression.setDataPrototype(
1531 "int", "stackPosition", "= 0",
1532 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1533#endif // !DOCUMENTATION
1534
1535 DECLARE_OTHERS(AsmStackExpression);
1536#if defined(SgAsmStackExpression_OTHERS) || defined(DOCUMENTATION)
1537
1538 //----------------------- Boost serialization for SgAsmStackExpression -----------------------
1539#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1540private:
1541 friend class boost::serialization::access;
1542
1543 template<class S>
1544 void serialize(S &s, const unsigned /*version*/) {
1545 debugSerializationBegin("SgAsmStackExpression");
1546 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1547 s & BOOST_SERIALIZATION_NVP(p_stackPosition);
1548 debugSerializationEnd("SgAsmStackExpression");
1549 }
1550#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1551public:
1552public:
1559 int const& get_stackPosition() const;
1560 void set_stackPosition(int const&);
1563 // Deprecated 2023-11
1565public:
1566 int get_stack_position() const ROSE_DEPRECATED("use get_stackPosition");
1567 void set_stack_position(int) ROSE_DEPRECATED("use set_stackPosition");
1568public:
1570 virtual ~SgAsmStackExpression();
1571
1572public:
1575
1576public:
1578 explicit SgAsmStackExpression(int const& stackPosition);
1579
1580protected:
1587 void initializeProperties();
1588#endif // SgAsmStackExpression_OTHERS
1589#ifdef DOCUMENTATION
1590};
1591#endif // DOCUMENTATION
1592
1593
1595// SgAsmRiscOperation -- MACHINE GENERATED; DO NOT MODIFY --
1597
1598DECLARE_LEAF_CLASS(AsmRiscOperation);
1599IS_SERIALIZABLE(AsmRiscOperation);
1600
1601#ifndef DOCUMENTATION
1602AsmRiscOperation.useSmallHeader(true);
1603#endif // !DOCUMENTATION
1604
1605DECLARE_HEADERS(AsmRiscOperation);
1606#if defined(SgAsmRiscOperation_HEADERS) || defined(DOCUMENTATION)
1607#ifdef ROSE_SgAsmRiscOperation_IMPL
1608#include <SgAsmExprListExp.h>
1609#endif
1610#endif // SgAsmRiscOperation_HEADERS
1611
1612#ifdef DOCUMENTATION
1622#endif // DOCUMENTATION
1623
1624#ifndef DOCUMENTATION
1625 AsmRiscOperation.setDataPrototype(
1626 "SgAsmRiscOperation::RiscOperator", "riscOperator", "= OP_NONE",
1627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1628#endif // !DOCUMENTATION
1629
1630#ifndef DOCUMENTATION
1631 AsmRiscOperation.setDataPrototype(
1632 "SgAsmExprListExp*", "operands", "= nullptr",
1633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1634#endif // !DOCUMENTATION
1635
1636 DECLARE_OTHERS(AsmRiscOperation);
1637#if defined(SgAsmRiscOperation_OTHERS) || defined(DOCUMENTATION)
1638
1639 //----------------------- Boost serialization for SgAsmRiscOperation -----------------------
1640#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1641private:
1642 friend class boost::serialization::access;
1643
1644 template<class S>
1645 void serialize(S &s, const unsigned /*version*/) {
1646 debugSerializationBegin("SgAsmRiscOperation");
1647 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1648 s & BOOST_SERIALIZATION_NVP(p_riscOperator);
1649 s & BOOST_SERIALIZATION_NVP(p_operands);
1650 debugSerializationEnd("SgAsmRiscOperation");
1651 }
1652#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1654 // Local types
1656public:
1663 OP_NONE,
1664 OP_bottom,
1665 OP_undefined,
1666 OP_unspecified,
1667 OP_filterCallTarget,
1668 OP_filterReturnTarget,
1669 OP_filterIndirectJumpTarget,
1670 OP_hlt,
1671 OP_cpuid,
1672 OP_rdtsc,
1673 OP_and_,
1674 OP_or_,
1675 OP_xor_,
1676 OP_invert,
1677 OP_extract,
1678 OP_concat,
1679 OP_leastSignificantSetBit,
1680 OP_mostSignificantSetBit,
1681 OP_rotateLeft,
1682 OP_rotateRight,
1683 OP_shiftLeft,
1684 OP_shiftRight,
1685 OP_shiftRightArithmetic,
1686 OP_equalToZero,
1687 OP_ite,
1688 OP_isEqual,
1689 OP_isNotEqual,
1690 OP_isUnsignedLessThan,
1691 OP_isUnsignedLessThanOrEqual,
1692 OP_isUnsignedGreaterThan,
1693 OP_isUnsignedGreaterThanOrEqual,
1694 OP_isSignedLessThan,
1695 OP_isSignedLessThanOrEqual,
1696 OP_isSignedGreaterThan,
1697 OP_isSignedGreaterThanOrEqual,
1698 OP_unsignedExtend,
1699 OP_signExtend,
1702 OP_subtract,
1703 OP_negate,
1704 OP_signedDivide,
1705 OP_signedModulo,
1706 OP_signedMultiply,
1707 OP_unsignedDivide,
1708 OP_unsignedModulo,
1709 OP_unsignedMultiply,
1710 OP_interrupt,
1711 OP_readRegister,
1712 OP_peekRegister,
1713 OP_writeRegister,
1715 OP_peekMemory,
1717 OP_N_OPERATORS // MUST BE LAST!
1719
1721 // Properties
1723public:
1724 // Note that the qualification for the type is necessary only for ROSETTA. Remove it when ROSETTA finally goes away.
1725public:
1736public:
1747public:
1750
1751public:
1754
1755public:
1758
1759protected:
1767#endif // SgAsmRiscOperation_OTHERS
1768#ifdef DOCUMENTATION
1769};
1770#endif // DOCUMENTATION
1771
1772
1774// SgAsmRegisterNames -- MACHINE GENERATED; DO NOT MODIFY --
1776
1777DECLARE_LEAF_CLASS(AsmRegisterNames);
1778IS_SERIALIZABLE(AsmRegisterNames);
1779
1780#ifndef DOCUMENTATION
1781AsmRegisterNames.useSmallHeader(true);
1782#endif // !DOCUMENTATION
1783
1784DECLARE_HEADERS(AsmRegisterNames);
1785#if defined(SgAsmRegisterNames_HEADERS) || defined(DOCUMENTATION)
1786#include <sageContainer.h>
1787#endif // SgAsmRegisterNames_HEADERS
1788
1789#ifdef DOCUMENTATION
1792#endif // DOCUMENTATION
1793
1794#ifndef DOCUMENTATION
1795 AsmRegisterNames.setDataPrototype(
1796 "SgAsmRegisterReferenceExpressionPtrList", "registers", "",
1797 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1798#endif // !DOCUMENTATION
1799
1800#ifndef DOCUMENTATION
1801 AsmRegisterNames.setDataPrototype(
1802 "unsigned", "mask", "= 0",
1803 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1804#endif // !DOCUMENTATION
1805
1806 DECLARE_OTHERS(AsmRegisterNames);
1807#if defined(SgAsmRegisterNames_OTHERS) || defined(DOCUMENTATION)
1808
1809 //----------------------- Boost serialization for SgAsmRegisterNames -----------------------
1810#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1811private:
1812 friend class boost::serialization::access;
1813
1814 template<class S>
1815 void serialize(S &s, const unsigned /*version*/) {
1816 debugSerializationBegin("SgAsmRegisterNames");
1817 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
1818 s & BOOST_SERIALIZATION_NVP(p_registers);
1819 s & BOOST_SERIALIZATION_NVP(p_mask);
1820 debugSerializationEnd("SgAsmRegisterNames");
1821 }
1822#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1823public:
1824public:
1831 SgAsmRegisterReferenceExpressionPtrList const& get_registers() const;
1832 SgAsmRegisterReferenceExpressionPtrList& get_registers();
1833 void set_registers(SgAsmRegisterReferenceExpressionPtrList const&);
1836public:
1843 unsigned const& get_mask() const;
1844 void set_mask(unsigned const&);
1847public:
1850
1851public:
1854
1855protected:
1863#endif // SgAsmRegisterNames_OTHERS
1864#ifdef DOCUMENTATION
1865};
1866#endif // DOCUMENTATION
1867
1868
1870// SgAsmPowerpcInstruction -- MACHINE GENERATED; DO NOT MODIFY --
1872
1873DECLARE_LEAF_CLASS(AsmPowerpcInstruction);
1874IS_SERIALIZABLE(AsmPowerpcInstruction);
1875
1876#ifndef DOCUMENTATION
1877AsmPowerpcInstruction.useSmallHeader(true);
1878#endif // !DOCUMENTATION
1879
1880DECLARE_HEADERS(AsmPowerpcInstruction);
1881#if defined(SgAsmPowerpcInstruction_HEADERS) || defined(DOCUMENTATION)
1882#include <Rose/BinaryAnalysis/InstructionEnumsPowerpc.h>
1883#endif // SgAsmPowerpcInstruction_HEADERS
1884
1885#ifdef DOCUMENTATION
1888#endif // DOCUMENTATION
1889
1890#ifndef DOCUMENTATION
1891 AsmPowerpcInstruction.setDataPrototype(
1892 "Rose::BinaryAnalysis::PowerpcInstructionKind", "kind", "= Rose::BinaryAnalysis::powerpc_unknown_instruction",
1893 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
1894#endif // !DOCUMENTATION
1895
1896 DECLARE_OTHERS(AsmPowerpcInstruction);
1897#if defined(SgAsmPowerpcInstruction_OTHERS) || defined(DOCUMENTATION)
1898
1899 //----------------------- Boost serialization for SgAsmPowerpcInstruction -----------------------
1900#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1901private:
1902 friend class boost::serialization::access;
1903
1904 template<class S>
1905 void serialize(S &s, const unsigned /*version*/) {
1906 debugSerializationBegin("SgAsmPowerpcInstruction");
1907 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
1908 s & BOOST_SERIALIZATION_NVP(p_kind);
1909 debugSerializationEnd("SgAsmPowerpcInstruction");
1910 }
1911#endif // ROSE_ENABLE_BOOST_SERIALIZATION
1912public:
1913public:
1920 Rose::BinaryAnalysis::PowerpcInstructionKind const& get_kind() const;
1921 void set_kind(Rose::BinaryAnalysis::PowerpcInstructionKind const&);
1923public:
1929 std::string conditionalBranchDescription() const;
1930
1936
1937 // Overrides are documented in the base class
1938 virtual unsigned get_anyKind() const override;
1939public:
1942
1943public:
1946
1947public:
1950 uint8_t const& architectureId,
1951 Rose::BinaryAnalysis::PowerpcInstructionKind const& kind);
1952
1953protected:
1961#endif // SgAsmPowerpcInstruction_OTHERS
1962#ifdef DOCUMENTATION
1963};
1964#endif // DOCUMENTATION
1965
1966
1968// SgAsmPointerType -- MACHINE GENERATED; DO NOT MODIFY --
1970
1971DECLARE_LEAF_CLASS(AsmPointerType);
1972IS_SERIALIZABLE(AsmPointerType);
1973
1974#ifndef DOCUMENTATION
1975AsmPointerType.useSmallHeader(true);
1976#endif // !DOCUMENTATION
1977
1978#ifdef DOCUMENTATION
1981#endif // DOCUMENTATION
1982
1983#ifndef DOCUMENTATION
1984 AsmPointerType.setDataPrototype(
1985 "SgAsmType *", "subtype", "",
1986 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
1987#endif // !DOCUMENTATION
1988
1989 DECLARE_OTHERS(AsmPointerType);
1990#if defined(SgAsmPointerType_OTHERS) || defined(DOCUMENTATION)
1991
1992 //----------------------- Boost serialization for SgAsmPointerType -----------------------
1993#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
1994private:
1995 friend class boost::serialization::access;
1996
1997 template<class S>
1998 void serialize(S &s, const unsigned /*version*/) {
1999 debugSerializationBegin("SgAsmPointerType");
2000 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
2001 s & BOOST_SERIALIZATION_NVP(p_subtype);
2002 debugSerializationEnd("SgAsmPointerType");
2003 }
2004#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2005public:
2006public:
2007 SgAsmType * const& get_subtype() const;
2008 void set_subtype(SgAsmType * const&);
2009public:
2012
2015
2016 virtual void check() const override;
2017 virtual std::string toString() const override;
2018public:
2021
2022public:
2025
2026protected:
2034#endif // SgAsmPointerType_OTHERS
2035#ifdef DOCUMENTATION
2036};
2037#endif // DOCUMENTATION
2038
2039
2041// SgAsmPEStringSection -- MACHINE GENERATED; DO NOT MODIFY --
2043
2044DECLARE_LEAF_CLASS(AsmPEStringSection);
2045IS_SERIALIZABLE(AsmPEStringSection);
2046
2047#ifndef DOCUMENTATION
2048AsmPEStringSection.useSmallHeader(true);
2049#endif // !DOCUMENTATION
2050
2051DECLARE_HEADERS(AsmPEStringSection);
2052#if defined(SgAsmPEStringSection_HEADERS) || defined(DOCUMENTATION)
2053#include <Rose/BinaryAnalysis/Address.h>
2054#endif // SgAsmPEStringSection_HEADERS
2055
2056#ifdef DOCUMENTATION
2059#endif // DOCUMENTATION
2060
2061#ifndef DOCUMENTATION
2062 AsmPEStringSection.setDataPrototype(
2063 "SgAsmCoffStrtab*", "strtab", "= nullptr",
2064 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2065#endif // !DOCUMENTATION
2066
2067 DECLARE_OTHERS(AsmPEStringSection);
2068#if defined(SgAsmPEStringSection_OTHERS) || defined(DOCUMENTATION)
2069
2070 //----------------------- Boost serialization for SgAsmPEStringSection -----------------------
2071#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2072private:
2073 friend class boost::serialization::access;
2074
2075 template<class S>
2076 void serialize(S &s, const unsigned /*version*/) {
2077 debugSerializationBegin("SgAsmPEStringSection");
2078 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
2079 s & BOOST_SERIALIZATION_NVP(p_strtab);
2080 debugSerializationEnd("SgAsmPEStringSection");
2081 }
2082#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2083public:
2084public:
2093public:
2095 virtual SgAsmPEStringSection* parse() override;
2096 virtual bool reallocate() override;
2097 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2098 virtual void set_size(Rose::BinaryAnalysis::Address newsize) override;
2099 virtual void unparse(std::ostream&) const override;
2100public:
2103
2104public:
2107
2108protected:
2116#endif // SgAsmPEStringSection_OTHERS
2117#ifdef DOCUMENTATION
2118};
2119#endif // DOCUMENTATION
2120
2121
2123// SgAsmPESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
2125
2126DECLARE_LEAF_CLASS(AsmPESectionTableEntry);
2127IS_SERIALIZABLE(AsmPESectionTableEntry);
2128
2129#ifndef DOCUMENTATION
2130AsmPESectionTableEntry.useSmallHeader(true);
2131#endif // !DOCUMENTATION
2132
2133DECLARE_HEADERS(AsmPESectionTableEntry);
2134#if defined(SgAsmPESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
2135#include <Rose/BinaryAnalysis/Address.h>
2136#endif // SgAsmPESectionTableEntry_HEADERS
2137
2138#ifdef DOCUMENTATION
2141#endif // DOCUMENTATION
2142
2143#ifndef DOCUMENTATION
2144 AsmPESectionTableEntry.setDataPrototype(
2145 "std::string", "name", "",
2146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2147#endif // !DOCUMENTATION
2148
2149#ifndef DOCUMENTATION
2150 AsmPESectionTableEntry.setDataPrototype(
2151 "Rose::BinaryAnalysis::Address", "virtual_size", "= 0",
2152 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2153#endif // !DOCUMENTATION
2154
2155#ifndef DOCUMENTATION
2156 AsmPESectionTableEntry.setDataPrototype(
2157 "Rose::BinaryAnalysis::Address", "rva", "= 0",
2158 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2159#endif // !DOCUMENTATION
2160
2161#ifndef DOCUMENTATION
2162 AsmPESectionTableEntry.setDataPrototype(
2163 "Rose::BinaryAnalysis::Address", "physical_size", "= 0",
2164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2165#endif // !DOCUMENTATION
2166
2167#ifndef DOCUMENTATION
2168 AsmPESectionTableEntry.setDataPrototype(
2169 "Rose::BinaryAnalysis::Address", "physical_offset", "= 0",
2170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2171#endif // !DOCUMENTATION
2172
2173#ifndef DOCUMENTATION
2174 AsmPESectionTableEntry.setDataPrototype(
2175 "unsigned", "coff_line_nums", "= 0",
2176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2177#endif // !DOCUMENTATION
2178
2179#ifndef DOCUMENTATION
2180 AsmPESectionTableEntry.setDataPrototype(
2181 "unsigned", "n_relocs", "= 0",
2182 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2183#endif // !DOCUMENTATION
2184
2185#ifndef DOCUMENTATION
2186 AsmPESectionTableEntry.setDataPrototype(
2187 "unsigned", "n_coff_line_nums", "= 0",
2188 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2189#endif // !DOCUMENTATION
2190
2191#ifndef DOCUMENTATION
2192 AsmPESectionTableEntry.setDataPrototype(
2193 "unsigned", "flags", "= 0",
2194 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2195#endif // !DOCUMENTATION
2196
2197 DECLARE_OTHERS(AsmPESectionTableEntry);
2198#if defined(SgAsmPESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
2199
2200 //----------------------- Boost serialization for SgAsmPESectionTableEntry -----------------------
2201#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2202private:
2203 friend class boost::serialization::access;
2204
2205 template<class S>
2206 void serialize(S &s, const unsigned /*version*/) {
2207 debugSerializationBegin("SgAsmPESectionTableEntry");
2208 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2209 s & BOOST_SERIALIZATION_NVP(p_name);
2210 s & BOOST_SERIALIZATION_NVP(p_virtual_size);
2211 s & BOOST_SERIALIZATION_NVP(p_rva);
2212 s & BOOST_SERIALIZATION_NVP(p_physical_size);
2213 s & BOOST_SERIALIZATION_NVP(p_physical_offset);
2214 s & BOOST_SERIALIZATION_NVP(p_coff_line_nums);
2215 s & BOOST_SERIALIZATION_NVP(p_n_relocs);
2216 s & BOOST_SERIALIZATION_NVP(p_n_coff_line_nums);
2217 s & BOOST_SERIALIZATION_NVP(p_flags);
2218 debugSerializationEnd("SgAsmPESectionTableEntry");
2219 }
2220#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2222 // Local types
2224public:
2225#ifdef _MSC_VER
2226# pragma pack (1)
2227#endif
2228 /* File format of a section table entry. All fields are little endian. Sections are ordered by RVA. */
2230 char name[8]; /* NUL-padded */
2231 uint32_t virtual_size; /* virtual memory size, >= physical_size and difference is zero filled */
2232 uint32_t rva; /* relative virt addr wrt Image Base; multiple of section_align; dense space */
2233 uint32_t physical_size; /* bytes of initialized data on disk; multiple of file_align & <= virtual_size*/
2234 uint32_t physical_offset; /* location of initialized data on disk; multiple of file_align */
2235 uint32_t coff_line_nums; /* file offset of COFF line number info or zero */
2236 uint32_t n_relocs; /* number of relocation entries; should be zero for executables */
2237 uint32_t n_coff_line_nums; /* number of COFF line number entries */
2238 uint32_t flags; /* PESectionFlags bits: code, data, caching, paging, shared, permissions, etc.*/
2239 }
2240#if !defined(SWIG) && !defined(_MSC_VER)
2241 __attribute__((packed))
2242#endif
2243 ;
2244#ifdef _MSC_VER
2245# pragma pack ()
2246#endif
2247
2248 /* These come from the windows PE documentation and
2249 * http://en.wikibooks.org/wiki/X86_Disassembly/Windows_Executable_Files */
2250 enum PESectionFlags {
2251 OF_CODE = 0x00000020, /* section contains code */
2252 OF_IDATA = 0x00000040, /* initialized data */
2253 OF_UDATA = 0x00000080, /* uninitialized data */
2254 OF_INFO = 0x00000200, /* comments or some other type of info */
2255 OF_REMOVE = 0x00000800, /* section will not become part of image */
2256 OF_COMDAT = 0x00001000, /* section contains comdat */
2257 OF_NO_DEFER_SPEC_EXC= 0x00004000, /* reset speculative exception handling bits in the TLB entires for
2258 * this section */
2259 OF_GPREL = 0x00008000, /* section content can be access relative to GP */
2260 OF_ALIGN_1 = 0x00100000, /* no alignment */
2261 OF_ALIGN_2 = 0x00200000, /* 2-byte alignment */
2262 OF_ALIGN_4 = 0x00300000, /* 4-byte alignment */
2263 OF_ALIGN_8 = 0x00400000, /* 8-byte alignment */
2264 OF_ALIGN_16 = 0x00500000, /* 16-byte alignment (default if not other alignment specified) */
2265 OF_ALIGN_32 = 0x00600000, /* 32-byte alignment */
2266 OF_ALIGN_64 = 0x00700000, /* 64-byte alignment */
2267 OF_ALIGN_128 = 0x00800000, /* 128-byte alignment */
2268 OF_ALIGN_256 = 0x00900000, /* 256-byte alignment */
2269 OF_ALIGN_512 = 0x00a00000, /* 512-byte alignment */
2270 OF_ALIGN_1k = 0x00b00000, /* 1024-byte alignment */
2271 OF_ALIGN_2k = 0x00c00000, /* 2048-byte alignment */
2272 OF_ALIGN_4k = 0x00d00000, /* 4096-byte alignment */
2273 OF_ALIGN_8k = 0x00e00000, /* 8192-byte alignment */
2274 OF_ALIGN_MASK = 0x00f00000, /* mask for alignment value */
2275 OF_NRELOC_OVFL = 0x01000000, /* section contains extended relocations */
2276 OF_DISCARDABLE = 0x02000000, /* can be discarded */
2277 OF_NO_CACHE = 0x04000000, /* section must not be cached */
2278 OF_NO_PAGING = 0x08000000, /* section is not pageable */
2279 OF_SHARED = 0x10000000, /* section is shared */
2280 OF_EXECUTABLE = 0x20000000, /* execute permission */
2281 OF_READABLE = 0x40000000, /* read permission */
2282 OF_WRITABLE = 0x80000000 /* write permission */
2283 };
2284
2286 // Properties
2288public:
2289public:
2295 std::string const& get_name() const;
2296 void set_name(std::string const&);
2299public:
2309public:
2319public:
2329public:
2339public:
2345 unsigned const& get_coff_line_nums() const;
2346 void set_coff_line_nums(unsigned const&);
2349public:
2355 unsigned const& get_n_relocs() const;
2356 void set_n_relocs(unsigned const&);
2359public:
2365 unsigned const& get_n_coff_line_nums() const;
2366 void set_n_coff_line_nums(unsigned const&);
2369public:
2375 unsigned const& get_flags() const;
2376 void set_flags(unsigned const&);
2379 // Functions
2381public:
2383
2387 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
2388
2390 // Deprecated 2023-11
2392public:
2393 void update_from_section(SgAsmPESection*) ROSE_DEPRECATED("use updateFromSection");
2394public:
2396 virtual ~SgAsmPESectionTableEntry();
2397
2398public:
2401
2402protected:
2409 void initializeProperties();
2410#endif // SgAsmPESectionTableEntry_OTHERS
2411#ifdef DOCUMENTATION
2412};
2413#endif // DOCUMENTATION
2414
2415
2417// SgAsmPESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
2419
2420DECLARE_LEAF_CLASS(AsmPESectionTable);
2421IS_SERIALIZABLE(AsmPESectionTable);
2422
2423#ifndef DOCUMENTATION
2424AsmPESectionTable.useSmallHeader(true);
2425#endif // !DOCUMENTATION
2426
2427#ifdef DOCUMENTATION
2430#endif // DOCUMENTATION
2431
2432 DECLARE_OTHERS(AsmPESectionTable);
2433#if defined(SgAsmPESectionTable_OTHERS) || defined(DOCUMENTATION)
2434
2435 //----------------------- Boost serialization for SgAsmPESectionTable -----------------------
2436#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2437private:
2438 friend class boost::serialization::access;
2439
2440 template<class S>
2441 void serialize(S &s, const unsigned /*version*/) {
2442 debugSerializationBegin("SgAsmPESectionTable");
2443 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
2444 debugSerializationEnd("SgAsmPESectionTable");
2445 }
2446#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2447public:
2449 virtual SgAsmPESectionTable* parse() override;
2450
2456 virtual bool reallocate() override;
2457 virtual void unparse(std::ostream&) const override;
2458 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2459
2461 // Deprecated 2023-11
2463public:
2464 void add_section(SgAsmPESection*) ROSE_DEPRECATED("use addSection");
2465public:
2467 virtual ~SgAsmPESectionTable();
2468
2469public:
2472
2473protected:
2480 void initializeProperties();
2481#endif // SgAsmPESectionTable_OTHERS
2482#ifdef DOCUMENTATION
2483};
2484#endif // DOCUMENTATION
2485
2486
2488// SgAsmPERVASizePairList -- MACHINE GENERATED; DO NOT MODIFY --
2490
2491DECLARE_LEAF_CLASS(AsmPERVASizePairList);
2492IS_SERIALIZABLE(AsmPERVASizePairList);
2493
2494#ifndef DOCUMENTATION
2495AsmPERVASizePairList.useSmallHeader(true);
2496#endif // !DOCUMENTATION
2497
2498DECLARE_HEADERS(AsmPERVASizePairList);
2499#if defined(SgAsmPERVASizePairList_HEADERS) || defined(DOCUMENTATION)
2500#include <sageContainer.h>
2501#endif // SgAsmPERVASizePairList_HEADERS
2502
2503#ifdef DOCUMENTATION
2509#endif // DOCUMENTATION
2510
2511#ifndef DOCUMENTATION
2512 AsmPERVASizePairList.setDataPrototype(
2513 "SgAsmPERVASizePairPtrList", "pairs", "",
2514 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2515#endif // !DOCUMENTATION
2516
2517 DECLARE_OTHERS(AsmPERVASizePairList);
2518#if defined(SgAsmPERVASizePairList_OTHERS) || defined(DOCUMENTATION)
2519
2520 //----------------------- Boost serialization for SgAsmPERVASizePairList -----------------------
2521#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2522private:
2523 friend class boost::serialization::access;
2524
2525 template<class S>
2526 void serialize(S &s, const unsigned /*version*/) {
2527 debugSerializationBegin("SgAsmPERVASizePairList");
2528 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2529 s & BOOST_SERIALIZATION_NVP(p_pairs);
2530 debugSerializationEnd("SgAsmPERVASizePairList");
2531 }
2532#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2533public:
2534public:
2538 SgAsmPERVASizePairPtrList const& get_pairs() const;
2539 SgAsmPERVASizePairPtrList& get_pairs();
2540 void set_pairs(SgAsmPERVASizePairPtrList const&);
2542public:
2543 explicit SgAsmPERVASizePairList(SgAsmPEFileHeader *parent);
2544public:
2547
2548public:
2551
2552protected:
2560#endif // SgAsmPERVASizePairList_OTHERS
2561#ifdef DOCUMENTATION
2562};
2563#endif // DOCUMENTATION
2564
2565
2567// SgAsmPERVASizePair -- MACHINE GENERATED; DO NOT MODIFY --
2569
2570DECLARE_LEAF_CLASS(AsmPERVASizePair);
2571IS_SERIALIZABLE(AsmPERVASizePair);
2572
2573#ifndef DOCUMENTATION
2574AsmPERVASizePair.useSmallHeader(true);
2575#endif // !DOCUMENTATION
2576
2577DECLARE_HEADERS(AsmPERVASizePair);
2578#if defined(SgAsmPERVASizePair_HEADERS) || defined(DOCUMENTATION)
2579#include <Rose/BinaryAnalysis/Address.h>
2580#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
2581#endif // SgAsmPERVASizePair_HEADERS
2582
2583#ifdef DOCUMENTATION
2586#endif // DOCUMENTATION
2587
2588#ifndef DOCUMENTATION
2589 AsmPERVASizePair.setDataPrototype(
2590 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_rva", "",
2591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2592#endif // !DOCUMENTATION
2593
2594#ifndef DOCUMENTATION
2595 AsmPERVASizePair.setDataPrototype(
2596 "Rose::BinaryAnalysis::Address", "e_size", "= 0",
2597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2598#endif // !DOCUMENTATION
2599
2600#ifndef DOCUMENTATION
2601 AsmPERVASizePair.setDataPrototype(
2602 "SgAsmGenericSection*", "section", "= nullptr",
2603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
2604#endif // !DOCUMENTATION
2605
2606 DECLARE_OTHERS(AsmPERVASizePair);
2607#if defined(SgAsmPERVASizePair_OTHERS) || defined(DOCUMENTATION)
2608
2609 //----------------------- Boost serialization for SgAsmPERVASizePair -----------------------
2610#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2611private:
2612 friend class boost::serialization::access;
2613
2614 template<class S>
2615 void serialize(S &s, const unsigned /*version*/) {
2616 debugSerializationBegin("SgAsmPERVASizePair");
2617 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
2618 s & BOOST_SERIALIZATION_NVP(p_e_rva);
2619 s & BOOST_SERIALIZATION_NVP(p_e_size);
2620 s & BOOST_SERIALIZATION_NVP(p_section);
2621 debugSerializationEnd("SgAsmPERVASizePair");
2622 }
2623#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2625 // Local types
2627public:
2628#ifdef _MSC_VER
2629# pragma pack (1)
2630#endif
2635 uint32_t e_rva;
2636 uint32_t e_size;
2637 }
2638#if !defined(SWIG) && !defined(_MSC_VER)
2639 __attribute__((packed))
2640#endif
2641 ;
2642#ifdef _MSC_VER
2643# pragma pack ()
2644#endif
2645
2647 // Properties
2649public:
2650public:
2661public:
2671public:
2679 // Functions
2681public:
2684
2690
2695
2696 void *encode(SgAsmPERVASizePair::RVASizePair_disk *disk) const;
2697public:
2700
2701public:
2704
2705protected:
2713#endif // SgAsmPERVASizePair_OTHERS
2714#ifdef DOCUMENTATION
2715};
2716#endif // DOCUMENTATION
2717
2718
2720// SgAsmPEImportSection -- MACHINE GENERATED; DO NOT MODIFY --
2722
2723DECLARE_LEAF_CLASS(AsmPEImportSection);
2724IS_SERIALIZABLE(AsmPEImportSection);
2725
2726#ifndef DOCUMENTATION
2727AsmPEImportSection.useSmallHeader(true);
2728#endif // !DOCUMENTATION
2729
2730DECLARE_HEADERS(AsmPEImportSection);
2731#if defined(SgAsmPEImportSection_HEADERS) || defined(DOCUMENTATION)
2732#include <Rose/BinaryAnalysis/Address.h>
2733#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
2734
2735#ifdef ROSE_SgAsmPEImportSection_IMPL
2736#include <SgAsmPEImportDirectoryList.h>
2737#endif
2738#endif // SgAsmPEImportSection_HEADERS
2739
2740#ifdef DOCUMENTATION
2884#endif // DOCUMENTATION
2885
2886#ifndef DOCUMENTATION
2887 AsmPEImportSection.setDataPrototype(
2888 "SgAsmPEImportDirectoryList*", "importDirectories", "= createAndParent<SgAsmPEImportDirectoryList>(this)",
2889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
2890#endif // !DOCUMENTATION
2891
2892 DECLARE_OTHERS(AsmPEImportSection);
2893#if defined(SgAsmPEImportSection_OTHERS) || defined(DOCUMENTATION)
2894
2895 //----------------------- Boost serialization for SgAsmPEImportSection -----------------------
2896#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
2897private:
2898 friend class boost::serialization::access;
2899
2900 template<class S>
2901 void serialize(S &s, const unsigned /*version*/) {
2902 debugSerializationBegin("SgAsmPEImportSection");
2903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
2904 s & BOOST_SERIALIZATION_NVP(p_importDirectories);
2905 debugSerializationEnd("SgAsmPEImportSection");
2906 }
2907#endif // ROSE_ENABLE_BOOST_SERIALIZATION
2908public:
2909public:
2918public:
2920 virtual SgAsmPEImportSection *parse() override;
2921 virtual bool reallocate() override;
2922 virtual void unparse(std::ostream&) const override;
2923 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
2924
2927
2930 static bool showImportMessage();
2931 static void importMessageReset();
2932
2941
2942private:
2943 static size_t mesg_nprinted; //counter for import_mesg()
2944
2946 // Deprecated 2023-11
2948public:
2949 SgAsmPEImportDirectoryList* get_import_directories() const ROSE_DEPRECATED("use get_importDirectories");
2950 void set_import_directories(SgAsmPEImportDirectoryList*) ROSE_DEPRECATED("use set_importDirectories");
2951 void add_import_directory(SgAsmPEImportDirectory*) ROSE_DEPRECATED("use addImportDirectory");
2952 void remove_import_directory(SgAsmPEImportDirectory*) ROSE_DEPRECATED("use removeImportDirectory");
2953 static bool show_import_mesg() ROSE_DEPRECATED("use showImportMessage");
2954 static void import_mesg_reset() ROSE_DEPRECATED("use importMessageReset");
2955 size_t reallocate_iats(Rose::BinaryAnalysis::RelativeVirtualAddress) ROSE_DEPRECATED("use reallocateIats");
2956public:
2959
2960public:
2963
2964protected:
2972#endif // SgAsmPEImportSection_OTHERS
2973#ifdef DOCUMENTATION
2974};
2975#endif // DOCUMENTATION
2976
2977
2979// SgAsmPEImportItemList -- MACHINE GENERATED; DO NOT MODIFY --
2981
2982DECLARE_LEAF_CLASS(AsmPEImportItemList);
2983IS_SERIALIZABLE(AsmPEImportItemList);
2984
2985#ifndef DOCUMENTATION
2986AsmPEImportItemList.useSmallHeader(true);
2987#endif // !DOCUMENTATION
2988
2989DECLARE_HEADERS(AsmPEImportItemList);
2990#if defined(SgAsmPEImportItemList_HEADERS) || defined(DOCUMENTATION)
2991#include <sageContainer.h>
2992#endif // SgAsmPEImportItemList_HEADERS
2993
2994#ifdef DOCUMENTATION
3000#endif // DOCUMENTATION
3001
3002#ifndef DOCUMENTATION
3003 AsmPEImportItemList.setDataPrototype(
3004 "SgAsmPEImportItemPtrList", "vector", "",
3005 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3006#endif // !DOCUMENTATION
3007
3008 DECLARE_OTHERS(AsmPEImportItemList);
3009#if defined(SgAsmPEImportItemList_OTHERS) || defined(DOCUMENTATION)
3010
3011 //----------------------- Boost serialization for SgAsmPEImportItemList -----------------------
3012#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3013private:
3014 friend class boost::serialization::access;
3015
3016 template<class S>
3017 void serialize(S &s, const unsigned /*version*/) {
3018 debugSerializationBegin("SgAsmPEImportItemList");
3019 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3020 s & BOOST_SERIALIZATION_NVP(p_vector);
3021 debugSerializationEnd("SgAsmPEImportItemList");
3022 }
3023#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3024public:
3025public:
3029 SgAsmPEImportItemPtrList const& get_vector() const;
3030 SgAsmPEImportItemPtrList& get_vector();
3031 void set_vector(SgAsmPEImportItemPtrList const&);
3034public:
3037
3038public:
3041
3042protected:
3050#endif // SgAsmPEImportItemList_OTHERS
3051#ifdef DOCUMENTATION
3052};
3053#endif // DOCUMENTATION
3054
3055
3057// SgAsmPEImportItem -- MACHINE GENERATED; DO NOT MODIFY --
3059
3060DECLARE_LEAF_CLASS(AsmPEImportItem);
3061IS_SERIALIZABLE(AsmPEImportItem);
3062
3063#ifndef DOCUMENTATION
3064AsmPEImportItem.useSmallHeader(true);
3065#endif // !DOCUMENTATION
3066
3067DECLARE_HEADERS(AsmPEImportItem);
3068#if defined(SgAsmPEImportItem_HEADERS) || defined(DOCUMENTATION)
3069#include <Rose/BinaryAnalysis/Address.h>
3070#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3071
3072#ifdef ROSE_SgAsmPEImportItem_IMPL
3073#include <SgAsmBasicString.h>
3074#endif
3075#endif // SgAsmPEImportItem_HEADERS
3076
3077#ifdef DOCUMENTATION
3086#endif // DOCUMENTATION
3087
3088#ifndef DOCUMENTATION
3089 AsmPEImportItem.setDataPrototype(
3090 "bool", "by_ordinal", "= true",
3091 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3092#endif // !DOCUMENTATION
3093
3094#ifndef DOCUMENTATION
3095 AsmPEImportItem.setDataPrototype(
3096 "unsigned", "ordinal", "= 0",
3097 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3098#endif // !DOCUMENTATION
3099
3100#ifndef DOCUMENTATION
3101 AsmPEImportItem.setDataPrototype(
3102 "unsigned", "hint", "= 0",
3103 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3104#endif // !DOCUMENTATION
3105
3106#ifndef DOCUMENTATION
3107 AsmPEImportItem.setDataPrototype(
3108 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
3109 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3110#endif // !DOCUMENTATION
3111
3112#ifndef DOCUMENTATION
3113 AsmPEImportItem.setDataPrototype(
3114 "Rose::BinaryAnalysis::RelativeVirtualAddress", "hintname_rva", "",
3115 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3116#endif // !DOCUMENTATION
3117
3118#ifndef DOCUMENTATION
3119 AsmPEImportItem.setDataPrototype(
3120 "size_t", "hintname_nalloc", "= 0",
3121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3122#endif // !DOCUMENTATION
3123
3124#ifndef DOCUMENTATION
3125 AsmPEImportItem.setDataPrototype(
3126 "Rose::BinaryAnalysis::RelativeVirtualAddress", "bound_rva", "",
3127 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3128#endif // !DOCUMENTATION
3129
3130#ifndef DOCUMENTATION
3131 AsmPEImportItem.setDataPrototype(
3132 "bool", "iat_written", "= false",
3133 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3134#endif // !DOCUMENTATION
3135
3136 DECLARE_OTHERS(AsmPEImportItem);
3137#if defined(SgAsmPEImportItem_OTHERS) || defined(DOCUMENTATION)
3138
3139 //----------------------- Boost serialization for SgAsmPEImportItem -----------------------
3140#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3141private:
3142 friend class boost::serialization::access;
3143
3144 template<class S>
3145 void serialize(S &s, const unsigned /*version*/) {
3146 debugSerializationBegin("SgAsmPEImportItem");
3147 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3148 s & BOOST_SERIALIZATION_NVP(p_by_ordinal);
3149 s & BOOST_SERIALIZATION_NVP(p_ordinal);
3150 s & BOOST_SERIALIZATION_NVP(p_hint);
3151 s & BOOST_SERIALIZATION_NVP(p_name);
3152 s & BOOST_SERIALIZATION_NVP(p_hintname_rva);
3153 s & BOOST_SERIALIZATION_NVP(p_hintname_nalloc);
3154 s & BOOST_SERIALIZATION_NVP(p_bound_rva);
3155 s & BOOST_SERIALIZATION_NVP(p_iat_written);
3156 debugSerializationEnd("SgAsmPEImportItem");
3157 }
3158#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3159public:
3160public:
3166 bool const& get_by_ordinal() const;
3167 void set_by_ordinal(bool const&);
3170public:
3176 unsigned const& get_ordinal() const;
3177 void set_ordinal(unsigned const&);
3180public:
3186 unsigned const& get_hint() const;
3187 void set_hint(unsigned const&);
3190public:
3200public:
3211public:
3217 size_t const& get_hintname_nalloc() const;
3218 void set_hintname_nalloc(size_t const&);
3221public:
3232public:
3238 bool const& get_iat_written() const;
3239 void set_iat_written(bool const&);
3241public:
3242 explicit SgAsmPEImportItem(SgAsmPEImportItemList *parent);
3244 SgAsmPEImportItem(SgAsmPEImportDirectory*, const std::string &name, unsigned hint=0);
3245 SgAsmPEImportItem(SgAsmPEImportDirectory*, const unsigned ordinal);
3246
3247 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
3248
3254 size_t hintNameRequiredSize() const;
3255
3261
3262private:
3263 void initFromParent(SgAsmPEImportItemList *parent);
3264
3266 // Deprecated 2023-11
3268public:
3269 size_t hintname_required_size() const ROSE_DEPRECATED("use hintNameRequiredSize");
3270 Rose::BinaryAnalysis::Address get_iat_entry_va() const ROSE_DEPRECATED("use get_iatEntryVa");
3271public:
3274
3275public:
3278
3279protected:
3287#endif // SgAsmPEImportItem_OTHERS
3288#ifdef DOCUMENTATION
3289};
3290#endif // DOCUMENTATION
3291
3292
3294// SgAsmPEImportDirectoryList -- MACHINE GENERATED; DO NOT MODIFY --
3296
3297DECLARE_LEAF_CLASS(AsmPEImportDirectoryList);
3298IS_SERIALIZABLE(AsmPEImportDirectoryList);
3299
3300#ifndef DOCUMENTATION
3301AsmPEImportDirectoryList.useSmallHeader(true);
3302#endif // !DOCUMENTATION
3303
3304DECLARE_HEADERS(AsmPEImportDirectoryList);
3305#if defined(SgAsmPEImportDirectoryList_HEADERS) || defined(DOCUMENTATION)
3306#include <sageContainer.h>
3307#endif // SgAsmPEImportDirectoryList_HEADERS
3308
3309#ifdef DOCUMENTATION
3315#endif // DOCUMENTATION
3316
3317#ifndef DOCUMENTATION
3318 AsmPEImportDirectoryList.setDataPrototype(
3319 "SgAsmPEImportDirectoryPtrList", "vector", "",
3320 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3321#endif // !DOCUMENTATION
3322
3323 DECLARE_OTHERS(AsmPEImportDirectoryList);
3324#if defined(SgAsmPEImportDirectoryList_OTHERS) || defined(DOCUMENTATION)
3325
3326 //----------------------- Boost serialization for SgAsmPEImportDirectoryList -----------------------
3327#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3328private:
3329 friend class boost::serialization::access;
3330
3331 template<class S>
3332 void serialize(S &s, const unsigned /*version*/) {
3333 debugSerializationBegin("SgAsmPEImportDirectoryList");
3334 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3335 s & BOOST_SERIALIZATION_NVP(p_vector);
3336 debugSerializationEnd("SgAsmPEImportDirectoryList");
3337 }
3338#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3339public:
3340public:
3346 SgAsmPEImportDirectoryPtrList const& get_vector() const;
3347 SgAsmPEImportDirectoryPtrList& get_vector();
3348 void set_vector(SgAsmPEImportDirectoryPtrList const&);
3351public:
3354
3355public:
3358
3359protected:
3367#endif // SgAsmPEImportDirectoryList_OTHERS
3368#ifdef DOCUMENTATION
3369};
3370#endif // DOCUMENTATION
3371
3372
3374// SgAsmPEImportDirectory -- MACHINE GENERATED; DO NOT MODIFY --
3376
3377DECLARE_LEAF_CLASS(AsmPEImportDirectory);
3378IS_SERIALIZABLE(AsmPEImportDirectory);
3379
3380#ifndef DOCUMENTATION
3381AsmPEImportDirectory.useSmallHeader(true);
3382#endif // !DOCUMENTATION
3383
3384DECLARE_HEADERS(AsmPEImportDirectory);
3385#if defined(SgAsmPEImportDirectory_HEADERS) || defined(DOCUMENTATION)
3386#include <Rose/BinaryAnalysis/Address.h>
3387#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
3388#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3389#include <sageContainer.h>
3390
3391#ifdef ROSE_SgAsmPEImportDirectory_IMPL
3392#include <SgAsmGenericString.h>
3393#include <SgAsmPEImportItemList.h>
3394#endif
3395#endif // SgAsmPEImportDirectory_HEADERS
3396
3397#ifdef DOCUMENTATION
3403#endif // DOCUMENTATION
3404
3405#ifndef DOCUMENTATION
3406 AsmPEImportDirectory.setDataPrototype(
3407 "SgAsmGenericString*", "dllName", "= nullptr",
3408 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3409#endif // !DOCUMENTATION
3410
3411#ifndef DOCUMENTATION
3412 AsmPEImportDirectory.setDataPrototype(
3413 "Rose::BinaryAnalysis::RelativeVirtualAddress", "dllNameRva", "",
3414 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3415#endif // !DOCUMENTATION
3416
3417#ifndef DOCUMENTATION
3418 AsmPEImportDirectory.setDataPrototype(
3419 "size_t", "dll_name_nalloc", "= 0",
3420 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3421#endif // !DOCUMENTATION
3422
3423#ifndef DOCUMENTATION
3424 AsmPEImportDirectory.setDataPrototype(
3425 "time_t", "time", "= 0",
3426 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3427#endif // !DOCUMENTATION
3428
3429#ifndef DOCUMENTATION
3430 AsmPEImportDirectory.setDataPrototype(
3431 "unsigned", "forwarder_chain", "= 0",
3432 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3433#endif // !DOCUMENTATION
3434
3435#ifndef DOCUMENTATION
3436 AsmPEImportDirectory.setDataPrototype(
3437 "Rose::BinaryAnalysis::RelativeVirtualAddress", "ilt_rva", "",
3438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3439#endif // !DOCUMENTATION
3440
3441#ifndef DOCUMENTATION
3442 AsmPEImportDirectory.setDataPrototype(
3443 "size_t", "ilt_nalloc", "= 0",
3444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3445#endif // !DOCUMENTATION
3446
3447#ifndef DOCUMENTATION
3448 AsmPEImportDirectory.setDataPrototype(
3449 "Rose::BinaryAnalysis::RelativeVirtualAddress", "iat_rva", "",
3450 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3451#endif // !DOCUMENTATION
3452
3453#ifndef DOCUMENTATION
3454 AsmPEImportDirectory.setDataPrototype(
3455 "size_t", "iat_nalloc", "= 0",
3456 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3457#endif // !DOCUMENTATION
3458
3459#ifndef DOCUMENTATION
3460 AsmPEImportDirectory.setDataPrototype(
3461 "SgAsmPEImportItemList*", "imports", "= createAndParent<SgAsmPEImportItemList>(this)",
3462 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3463#endif // !DOCUMENTATION
3464
3465 DECLARE_OTHERS(AsmPEImportDirectory);
3466#if defined(SgAsmPEImportDirectory_OTHERS) || defined(DOCUMENTATION)
3467
3468 //----------------------- Boost serialization for SgAsmPEImportDirectory -----------------------
3469#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3470private:
3471 friend class boost::serialization::access;
3472
3473 template<class S>
3474 void serialize(S &s, const unsigned /*version*/) {
3475 debugSerializationBegin("SgAsmPEImportDirectory");
3476 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
3477 s & BOOST_SERIALIZATION_NVP(p_dllName);
3478 s & BOOST_SERIALIZATION_NVP(p_dllNameRva);
3479 s & BOOST_SERIALIZATION_NVP(p_dll_name_nalloc);
3480 s & BOOST_SERIALIZATION_NVP(p_time);
3481 s & BOOST_SERIALIZATION_NVP(p_forwarder_chain);
3482 s & BOOST_SERIALIZATION_NVP(p_ilt_rva);
3483 s & BOOST_SERIALIZATION_NVP(p_ilt_nalloc);
3484 s & BOOST_SERIALIZATION_NVP(p_iat_rva);
3485 s & BOOST_SERIALIZATION_NVP(p_iat_nalloc);
3486 s & BOOST_SERIALIZATION_NVP(p_imports);
3487 debugSerializationEnd("SgAsmPEImportDirectory");
3488 }
3489#endif // ROSE_ENABLE_BOOST_SERIALIZATION
3491 // Local types
3493public:
3494#ifdef _MSC_VER
3495# pragma pack (1)
3496#endif
3498 uint32_t ilt_rva; /* 0x00 Import Lookup Table RVA */
3499 uint32_t time; /* 0x04 Zero until the image is bound, then time stamp of the DLL */
3500 uint32_t forwarder_chain; /* 0x08 Index of the first forwarder chain */
3501 uint32_t dll_name_rva; /* 0x0c address of NUL-terminated DLL name */
3502 uint32_t iat_rva; /* 0x10 Import Address Table (Thunk Table) RVA */
3503 } /* 0x14 */
3504#if !defined(SWIG) && !defined(_MSC_VER)
3505 __attribute__((packed))
3506#endif
3507 ;
3508#ifdef _MSC_VER
3509# pragma pack ()
3510#endif
3511
3513 // Properties
3515public:
3516public:
3526public:
3537public:
3543 size_t const& get_dll_name_nalloc() const;
3544 void set_dll_name_nalloc(size_t const&);
3547public:
3553 time_t const& get_time() const;
3554 void set_time(time_t const&);
3557public:
3563 unsigned const& get_forwarder_chain() const;
3564 void set_forwarder_chain(unsigned const&);
3567public:
3578public:
3584 size_t const& get_ilt_nalloc() const;
3585 void set_ilt_nalloc(size_t const&);
3588public:
3599public:
3605 size_t const& get_iat_nalloc() const;
3606 void set_iat_nalloc(size_t const&);
3609public:
3619 // Functions
3621public:
3622 explicit SgAsmPEImportDirectory(SgAsmPEImportSection *isec, const std::string &dll_name="");
3623
3630
3639
3642 virtual void unparse(std::ostream&, const SgAsmPEImportSection*, size_t idx) const;
3643 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
3644
3650 size_t iatRequiredSize() const;
3651
3656 int findImportItem(const SgAsmPEImportItem *item, int hint=0) const;
3657
3670
3671private:
3672 void parse_ilt_iat(const Rose::BinaryAnalysis::RelativeVirtualAddress &table_start, bool assume_bound);
3673 void unparse_ilt_iat(std::ostream&,const Rose::BinaryAnalysis::RelativeVirtualAddress &table_start, bool assume_bound,
3674 size_t nalloc) const;
3675
3677 // Deprecated 2023-11
3679public:
3680 SgAsmGenericString* get_dll_name() const ROSE_DEPRECATED("use get_dllName");
3681 void set_dll_name(SgAsmGenericString*) ROSE_DEPRECATED("use set_dllName");
3682 const Rose::BinaryAnalysis::RelativeVirtualAddress& get_dll_name_rva() const ROSE_DEPRECATED("use get_dllNameRva");
3683 Rose::BinaryAnalysis::RelativeVirtualAddress& get_dll_name_rva() ROSE_DEPRECATED("use get_dllNameRva");
3684 void set_dll_name_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use set_dllNameRva");
3685 size_t iat_required_size() const ROSE_DEPRECATED("use iatRequiredSize");
3686 int find_import_item(const SgAsmPEImportItem*, int=0) const ROSE_DEPRECATED("use findImportItem");
3687 size_t hintname_table_extent(Rose::BinaryAnalysis::AddressIntervalSet&) const ROSE_DEPRECATED("use hintNameTableExtent");
3688public:
3691
3692public:
3695
3696protected:
3704#endif // SgAsmPEImportDirectory_OTHERS
3705#ifdef DOCUMENTATION
3706};
3707#endif // DOCUMENTATION
3708
3709
3711// SgAsmPEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
3713
3714DECLARE_LEAF_CLASS(AsmPEFileHeader);
3715IS_SERIALIZABLE(AsmPEFileHeader);
3716
3717#ifndef DOCUMENTATION
3718AsmPEFileHeader.useSmallHeader(true);
3719#endif // !DOCUMENTATION
3720
3721DECLARE_HEADERS(AsmPEFileHeader);
3722#if defined(SgAsmPEFileHeader_HEADERS) || defined(DOCUMENTATION)
3723#include <Rose/BinaryAnalysis/Address.h>
3724#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
3725
3726#ifdef ROSE_SgAsmPEFileHeader_IMPL
3727#include <SgAsmCoffSymbolTable.h>
3728#include <SgAsmPERVASizePairList.h>
3729#include <SgAsmPESectionTable.h>
3730#endif
3731#endif // SgAsmPEFileHeader_HEADERS
3732
3733#ifdef DOCUMENTATION
3738#endif // DOCUMENTATION
3739
3740#ifndef DOCUMENTATION
3741 AsmPEFileHeader.setDataPrototype(
3742 "unsigned", "e_cpu_type", "= 0",
3743 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3744#endif // !DOCUMENTATION
3745
3746#ifndef DOCUMENTATION
3747 AsmPEFileHeader.setDataPrototype(
3748 "unsigned", "e_nsections", "= 0",
3749 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3750#endif // !DOCUMENTATION
3751
3752#ifndef DOCUMENTATION
3753 AsmPEFileHeader.setDataPrototype(
3754 "unsigned", "e_time", "= 0",
3755 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3756#endif // !DOCUMENTATION
3757
3758#ifndef DOCUMENTATION
3759 AsmPEFileHeader.setDataPrototype(
3760 "Rose::BinaryAnalysis::Address", "e_coff_symtab", "= 0",
3761 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3762#endif // !DOCUMENTATION
3763
3764#ifndef DOCUMENTATION
3765 AsmPEFileHeader.setDataPrototype(
3766 "Rose::BinaryAnalysis::Address", "e_nt_hdr_size", "= 0",
3767 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3768#endif // !DOCUMENTATION
3769
3770#ifndef DOCUMENTATION
3771 AsmPEFileHeader.setDataPrototype(
3772 "unsigned", "e_coff_nsyms", "= 0",
3773 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3774#endif // !DOCUMENTATION
3775
3776#ifndef DOCUMENTATION
3777 AsmPEFileHeader.setDataPrototype(
3778 "unsigned", "e_flags", "= 0",
3779 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3780#endif // !DOCUMENTATION
3781
3782#ifndef DOCUMENTATION
3783 AsmPEFileHeader.setDataPrototype(
3784 "unsigned", "e_opt_magic", "= 0",
3785 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3786#endif // !DOCUMENTATION
3787
3788#ifndef DOCUMENTATION
3789 AsmPEFileHeader.setDataPrototype(
3790 "unsigned", "e_lmajor", "= 0",
3791 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3792#endif // !DOCUMENTATION
3793
3794#ifndef DOCUMENTATION
3795 AsmPEFileHeader.setDataPrototype(
3796 "unsigned", "e_lminor", "= 0",
3797 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3798#endif // !DOCUMENTATION
3799
3800#ifndef DOCUMENTATION
3801 AsmPEFileHeader.setDataPrototype(
3802 "unsigned", "e_code_size", "= 0",
3803 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3804#endif // !DOCUMENTATION
3805
3806#ifndef DOCUMENTATION
3807 AsmPEFileHeader.setDataPrototype(
3808 "unsigned", "e_data_size", "= 0",
3809 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3810#endif // !DOCUMENTATION
3811
3812#ifndef DOCUMENTATION
3813 AsmPEFileHeader.setDataPrototype(
3814 "unsigned", "e_bss_size", "= 0",
3815 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3816#endif // !DOCUMENTATION
3817
3818#ifndef DOCUMENTATION
3819 AsmPEFileHeader.setDataPrototype(
3820 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_code_rva", "",
3821 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3822#endif // !DOCUMENTATION
3823
3824#ifndef DOCUMENTATION
3825 AsmPEFileHeader.setDataPrototype(
3826 "Rose::BinaryAnalysis::RelativeVirtualAddress", "e_data_rva", "",
3827 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3828#endif // !DOCUMENTATION
3829
3830#ifndef DOCUMENTATION
3831 AsmPEFileHeader.setDataPrototype(
3832 "unsigned", "e_section_align", "= 0",
3833 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3834#endif // !DOCUMENTATION
3835
3836#ifndef DOCUMENTATION
3837 AsmPEFileHeader.setDataPrototype(
3838 "unsigned", "e_file_align", "= 0",
3839 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3840#endif // !DOCUMENTATION
3841
3842#ifndef DOCUMENTATION
3843 AsmPEFileHeader.setDataPrototype(
3844 "unsigned", "e_os_major", "= 0",
3845 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3846#endif // !DOCUMENTATION
3847
3848#ifndef DOCUMENTATION
3849 AsmPEFileHeader.setDataPrototype(
3850 "unsigned", "e_os_minor", "= 0",
3851 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3852#endif // !DOCUMENTATION
3853
3854#ifndef DOCUMENTATION
3855 AsmPEFileHeader.setDataPrototype(
3856 "unsigned", "e_user_major", "= 0",
3857 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3858#endif // !DOCUMENTATION
3859
3860#ifndef DOCUMENTATION
3861 AsmPEFileHeader.setDataPrototype(
3862 "unsigned", "e_user_minor", "= 0",
3863 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3864#endif // !DOCUMENTATION
3865
3866#ifndef DOCUMENTATION
3867 AsmPEFileHeader.setDataPrototype(
3868 "unsigned", "e_subsys_major", "= 0",
3869 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3870#endif // !DOCUMENTATION
3871
3872#ifndef DOCUMENTATION
3873 AsmPEFileHeader.setDataPrototype(
3874 "unsigned", "e_subsys_minor", "= 0",
3875 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3876#endif // !DOCUMENTATION
3877
3878#ifndef DOCUMENTATION
3879 AsmPEFileHeader.setDataPrototype(
3880 "unsigned", "e_reserved9", "= 0",
3881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3882#endif // !DOCUMENTATION
3883
3884#ifndef DOCUMENTATION
3885 AsmPEFileHeader.setDataPrototype(
3886 "unsigned", "e_image_size", "= 0",
3887 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3888#endif // !DOCUMENTATION
3889
3890#ifndef DOCUMENTATION
3891 AsmPEFileHeader.setDataPrototype(
3892 "unsigned", "e_header_size", "= 0",
3893 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3894#endif // !DOCUMENTATION
3895
3896#ifndef DOCUMENTATION
3897 AsmPEFileHeader.setDataPrototype(
3898 "unsigned", "e_file_checksum", "= 0",
3899 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3900#endif // !DOCUMENTATION
3901
3902#ifndef DOCUMENTATION
3903 AsmPEFileHeader.setDataPrototype(
3904 "unsigned", "e_subsystem", "= 0",
3905 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3906#endif // !DOCUMENTATION
3907
3908#ifndef DOCUMENTATION
3909 AsmPEFileHeader.setDataPrototype(
3910 "unsigned", "e_dll_flags", "= 0",
3911 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3912#endif // !DOCUMENTATION
3913
3914#ifndef DOCUMENTATION
3915 AsmPEFileHeader.setDataPrototype(
3916 "unsigned", "e_stack_reserve_size", "= 0",
3917 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3918#endif // !DOCUMENTATION
3919
3920#ifndef DOCUMENTATION
3921 AsmPEFileHeader.setDataPrototype(
3922 "unsigned", "e_stack_commit_size", "= 0",
3923 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3924#endif // !DOCUMENTATION
3925
3926#ifndef DOCUMENTATION
3927 AsmPEFileHeader.setDataPrototype(
3928 "unsigned", "e_heap_reserve_size", "= 0",
3929 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3930#endif // !DOCUMENTATION
3931
3932#ifndef DOCUMENTATION
3933 AsmPEFileHeader.setDataPrototype(
3934 "unsigned", "e_heap_commit_size", "= 0",
3935 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3936#endif // !DOCUMENTATION
3937
3938#ifndef DOCUMENTATION
3939 AsmPEFileHeader.setDataPrototype(
3940 "unsigned", "e_loader_flags", "= 0",
3941 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3942#endif // !DOCUMENTATION
3943
3944#ifndef DOCUMENTATION
3945 AsmPEFileHeader.setDataPrototype(
3946 "unsigned", "e_num_rvasize_pairs", "= 0",
3947 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3948#endif // !DOCUMENTATION
3949
3950#ifndef DOCUMENTATION
3951 AsmPEFileHeader.setDataPrototype(
3952 "SgAsmPERVASizePairList*", "rvaSizePairs", "= nullptr",
3953 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
3954#endif // !DOCUMENTATION
3955
3956#ifndef DOCUMENTATION
3957 AsmPEFileHeader.setDataPrototype(
3958 "SgAsmPESectionTable*", "sectionTable", "= nullptr",
3959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3960#endif // !DOCUMENTATION
3961
3962#ifndef DOCUMENTATION
3963 AsmPEFileHeader.setDataPrototype(
3964 "SgAsmCoffSymbolTable*", "coffSymbolTable", "= nullptr",
3965 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
3966#endif // !DOCUMENTATION
3967
3968 DECLARE_OTHERS(AsmPEFileHeader);
3969#if defined(SgAsmPEFileHeader_OTHERS) || defined(DOCUMENTATION)
3970
3971 //----------------------- Boost serialization for SgAsmPEFileHeader -----------------------
3972#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
3973private:
3974 friend class boost::serialization::access;
3975
3976 template<class S>
3977 void serialize(S &s, const unsigned /*version*/) {
3978 debugSerializationBegin("SgAsmPEFileHeader");
3979 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
3980 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
3981 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
3982 s & BOOST_SERIALIZATION_NVP(p_e_time);
3983 s & BOOST_SERIALIZATION_NVP(p_e_coff_symtab);
3984 s & BOOST_SERIALIZATION_NVP(p_e_nt_hdr_size);
3985 s & BOOST_SERIALIZATION_NVP(p_e_coff_nsyms);
3986 s & BOOST_SERIALIZATION_NVP(p_e_flags);
3987 s & BOOST_SERIALIZATION_NVP(p_e_opt_magic);
3988 s & BOOST_SERIALIZATION_NVP(p_e_lmajor);
3989 s & BOOST_SERIALIZATION_NVP(p_e_lminor);
3990 s & BOOST_SERIALIZATION_NVP(p_e_code_size);
3991 s & BOOST_SERIALIZATION_NVP(p_e_data_size);
3992 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
3993 s & BOOST_SERIALIZATION_NVP(p_e_code_rva);
3994 s & BOOST_SERIALIZATION_NVP(p_e_data_rva);
3995 s & BOOST_SERIALIZATION_NVP(p_e_section_align);
3996 s & BOOST_SERIALIZATION_NVP(p_e_file_align);
3997 s & BOOST_SERIALIZATION_NVP(p_e_os_major);
3998 s & BOOST_SERIALIZATION_NVP(p_e_os_minor);
3999 s & BOOST_SERIALIZATION_NVP(p_e_user_major);
4000 s & BOOST_SERIALIZATION_NVP(p_e_user_minor);
4001 s & BOOST_SERIALIZATION_NVP(p_e_subsys_major);
4002 s & BOOST_SERIALIZATION_NVP(p_e_subsys_minor);
4003 s & BOOST_SERIALIZATION_NVP(p_e_reserved9);
4004 s & BOOST_SERIALIZATION_NVP(p_e_image_size);
4005 s & BOOST_SERIALIZATION_NVP(p_e_header_size);
4006 s & BOOST_SERIALIZATION_NVP(p_e_file_checksum);
4007 s & BOOST_SERIALIZATION_NVP(p_e_subsystem);
4008 s & BOOST_SERIALIZATION_NVP(p_e_dll_flags);
4009 s & BOOST_SERIALIZATION_NVP(p_e_stack_reserve_size);
4010 s & BOOST_SERIALIZATION_NVP(p_e_stack_commit_size);
4011 s & BOOST_SERIALIZATION_NVP(p_e_heap_reserve_size);
4012 s & BOOST_SERIALIZATION_NVP(p_e_heap_commit_size);
4013 s & BOOST_SERIALIZATION_NVP(p_e_loader_flags);
4014 s & BOOST_SERIALIZATION_NVP(p_e_num_rvasize_pairs);
4015 s & BOOST_SERIALIZATION_NVP(p_rvaSizePairs);
4016 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
4017 s & BOOST_SERIALIZATION_NVP(p_coffSymbolTable);
4018 debugSerializationEnd("SgAsmPEFileHeader");
4019 }
4020#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4022 // Local types
4024public:
4025#ifdef _MSC_VER
4026# pragma pack (1)
4027#endif
4028 /* File format of a PE File Header. All fields are little endian. */
4030 unsigned char e_magic[4]; /* 0x00 magic number "PE\0\0" */
4031 uint16_t e_cpu_type; /* 0x04 e.g., 0x014c = Intel 386 */
4032 uint16_t e_nsections; /* 0x06 number of sections defined in the Section Table */
4033 uint32_t e_time; /* 0x08 time and date file was created or modified by the linker */
4034 uint32_t e_coff_symtab; /* 0x0c offset to COFF symbol table */
4035 uint32_t e_coff_nsyms; /* 0x10 number of symbols in COFF symbol table */
4036 uint16_t e_nt_hdr_size; /* 0x14 num remaining bytes in the header following the 'flags' field */
4037 uint16_t e_flags; /* 0x16 Bit flags: exe file, program/library image, fixed address, etc. */
4038 } /* 0x18 */
4039#if !defined(SWIG) && !defined(_MSC_VER)
4040 __attribute__((packed))
4041#endif
4042 ;
4043
4045 uint16_t e_opt_magic; /* 0x18 magic number */
4046 uint16_t e_lmajor; /* 0x1a linker version */
4047 uint16_t e_lminor; /* 0x1c */
4048 uint16_t e_code_size; /* 0x1e Size of .text or sum of all code sections */
4049 uint32_t e_data_size; /* 0x20 Sum size of initialized data */
4050 uint32_t e_bss_size; /* 0x24 Sum size of uninitialized data */
4051 uint32_t e_entrypoint_rva; /* 0x28 RVA="relative virtual address"; relative to 'image_base', below */
4052 uint32_t e_code_rva; /* 0x2c Addr relative to image base for code section when memory mapped */
4053 uint32_t e_data_rva; /* 0x30 Address relative to image base for data section */
4054 uint32_t e_image_base; /* 0x34 Virt base of image (first byte of file, DOS header). 64k aligned */
4055 uint32_t e_section_align; /* 0x38 Alignment of sections in memory. Power of two 512<=x<=256M */
4056 uint32_t e_file_align; /* 0x3c Alignment factor (in bytes) for image pages */
4057 uint16_t e_os_major; /* 0x40 OS version number required to run this image */
4058 uint16_t e_os_minor; /* 0x42 */
4059 uint16_t e_user_major; /* 0x44 User-specified for differentiating between image revs */
4060 uint16_t e_user_minor; /* 0x46 */
4061 uint16_t e_subsys_major; /* 0x48 Subsystem version number */
4062 uint16_t e_subsys_minor; /* 0x4a */
4063 uint32_t e_reserved9; /* 0x4c */
4064 uint32_t e_image_size; /* 0x50 Virtual size of the image inc. all headers; section_align */
4065 uint32_t e_header_size; /* 0x54 Total header size (DOS Header + PE Header + Section table */
4066 uint32_t e_file_checksum; /* 0x58 Checksum for entire file; Set to zero by the linker */
4067 uint16_t e_subsystem; /* 0x5c Native, WindowsGUI, WindowsCharacter, OS/2 Character, etc. */
4068 uint16_t e_dll_flags; /* 0x5e Bit flags for library init/terminate per process or thread */
4069 uint32_t e_stack_reserve_size;/*0x60 Virtual mem reserved for stack; non-committed pages are guards */
4070 uint32_t e_stack_commit_size;/* 0x64 Size of valid stack; other pages are guards; <=stack_reserve_size*/
4071 uint32_t e_heap_reserve_size;/* 0x68 Size (bytes) of local heap to reserve */
4072 uint32_t e_heap_commit_size; /* 0x6c Size (bytes) of valid local heap */
4073 uint32_t e_loader_flags; /* 0x70 Reserved, must be zero */
4074 uint32_t e_num_rvasize_pairs;/* 0x74 Num RVASizePair entries that follow this member; part of header */
4075 } /* 0x78 */
4076#if !defined(SWIG) && !defined(_MSC_VER)
4077 __attribute__((packed))
4078#endif
4079 ;
4080
4082 uint16_t e_opt_magic; /* 0x18 */
4083 uint16_t e_lmajor; /* 0x1a */
4084 uint16_t e_lminor; /* 0x1c */
4085 uint16_t e_code_size; /* 0x1e */
4086 uint32_t e_data_size; /* 0x20 */
4087 uint32_t e_bss_size; /* 0x24 */
4088 uint32_t e_entrypoint_rva; /* 0x28 */
4089 uint32_t e_code_rva; /* 0x2c */
4090 // uint32_t e_data_rva; /* Not present in PE32+ */
4091 uint64_t e_image_base; /* 0x30 */
4092 uint32_t e_section_align; /* 0x38 */
4093 uint32_t e_file_align; /* 0x3c */
4094 uint16_t e_os_major; /* 0x40 */
4095 uint16_t e_os_minor; /* 0x42 */
4096 uint16_t e_user_major; /* 0x44 */
4097 uint16_t e_user_minor; /* 0x46 */
4098 uint16_t e_subsys_major; /* 0x48 */
4099 uint16_t e_subsys_minor; /* 0x4a */
4100 uint32_t e_reserved9; /* 0x4c */
4101 uint32_t e_image_size; /* 0x50 */
4102 uint32_t e_header_size; /* 0x54 */
4103 uint32_t e_file_checksum; /* 0x58 */
4104 uint16_t e_subsystem; /* 0x5c */
4105 uint16_t e_dll_flags; /* 0x5e */
4106 uint64_t e_stack_reserve_size;/*0x60 */
4107 uint64_t e_stack_commit_size;/* 0x68 */
4108 uint64_t e_heap_reserve_size;/* 0x70 */
4109 uint64_t e_heap_commit_size; /* 0x78 */
4110 uint32_t e_loader_flags; /* 0x80 */
4111 uint32_t e_num_rvasize_pairs;/* 0x84 */
4112 } /* 0x88 */
4113#if !defined(SWIG) && !defined(_MSC_VER)
4114 __attribute__((packed))
4115#endif
4116 ;
4117#ifdef _MSC_VER
4118# pragma pack ()
4119#endif
4120
4121 /* Bit flags for the PE header 'flags' member */
4122 enum HeaderFlags {
4123 HF_PROGRAM = 0x0000, /* Program image (no non-reserved bits set) */
4124 HF_EXECUTABLE = 0x0002, /* Clear indicates can't load: link errors or incrementally linked */
4125 HF_FIXED = 0x0200, /* Image *must* be loaded at image_base address or error */
4126 HF_LIBRARY = 0x2000, /* Library image */
4127 HF_RESERVED_MASK = 0xddfd /* Reserved bits */
4128 };
4129
4130 /* Values for the PE header 'subsystem' member */
4131 enum Subsystem {
4132 HF_SPEC_UNKNOWN = 0x0000, /* Specified as 'unknown' in the file */
4133 HF_NATIVE = 0x0001, /* Native */
4134 HF_WINGUI = 0x0002, /* Windows GUI */
4135 HF_WINCHAR = 0x0003, /* Windows character */
4136 HF_OS2CHAR = 0x0005, /* OS/2 character */
4137 HF_POSIX = 0x0007 /* POSIX character */
4138 };
4139
4140 /* Bit flags for the PE header 'dll_flags' member */
4141 enum DLLFlags {
4142 DLL_PROC_INIT = 0x0001, /* Per-process library initialization */
4143 DLL_PROC_TERM = 0x0002, /* Per-process library termination */
4144 DLL_THRD_INIT = 0x0004, /* Per-thread library initialization */
4145 DLL_THRD_TERM = 0x0008, /* Per-thread library termination */
4146 DLL_RESERVED_MASK = 0xfff0 /* Reserved bits */
4147 };
4148
4150 enum PairPurpose { // Values are important
4151 PAIR_EXPORTS = 0,
4152 PAIR_IMPORTS = 1,
4153 PAIR_RESOURCES = 2,
4154 PAIR_EXCEPTIONS = 3,
4155 PAIR_CERTIFICATES = 4,
4156 PAIR_BASERELOCS = 5,
4157 PAIR_DEBUG = 6,
4158 PAIR_ARCHITECTURE = 7,
4159 PAIR_GLOBALPTR = 8,
4160 PAIR_TLS = 9, // Thread local storage
4161 PAIR_LOADCONFIG = 10,
4162 PAIR_BOUNDIMPORT = 11,
4163 PAIR_IAT = 12, // Import address table
4164 PAIR_DELAYIMPORT = 13, // Delay import descriptor
4165 PAIR_CLRRUNTIME = 14, // CLR(?) runtime header
4166 PAIR_RESERVED15 = 15 // Reserved (always zero according to specification)
4167 };
4168
4170 // Properties
4172public:
4173public:
4179 unsigned const& get_e_cpu_type() const;
4180 void set_e_cpu_type(unsigned const&);
4183public:
4189 unsigned const& get_e_nsections() const;
4190 void set_e_nsections(unsigned const&);
4193public:
4199 unsigned const& get_e_time() const;
4200 void set_e_time(unsigned const&);
4203public:
4213public:
4223public:
4229 unsigned const& get_e_coff_nsyms() const;
4230 void set_e_coff_nsyms(unsigned const&);
4233public:
4239 unsigned const& get_e_flags() const;
4240 void set_e_flags(unsigned const&);
4243public:
4249 unsigned const& get_e_opt_magic() const;
4250 void set_e_opt_magic(unsigned const&);
4253public:
4259 unsigned const& get_e_lmajor() const;
4260 void set_e_lmajor(unsigned const&);
4263public:
4269 unsigned const& get_e_lminor() const;
4270 void set_e_lminor(unsigned const&);
4273public:
4279 unsigned const& get_e_code_size() const;
4280 void set_e_code_size(unsigned const&);
4283public:
4289 unsigned const& get_e_data_size() const;
4290 void set_e_data_size(unsigned const&);
4293public:
4299 unsigned const& get_e_bss_size() const;
4300 void set_e_bss_size(unsigned const&);
4303public:
4314public:
4325public:
4331 unsigned const& get_e_section_align() const;
4332 void set_e_section_align(unsigned const&);
4335public:
4341 unsigned const& get_e_file_align() const;
4342 void set_e_file_align(unsigned const&);
4345public:
4351 unsigned const& get_e_os_major() const;
4352 void set_e_os_major(unsigned const&);
4355public:
4361 unsigned const& get_e_os_minor() const;
4362 void set_e_os_minor(unsigned const&);
4365public:
4371 unsigned const& get_e_user_major() const;
4372 void set_e_user_major(unsigned const&);
4375public:
4381 unsigned const& get_e_user_minor() const;
4382 void set_e_user_minor(unsigned const&);
4385public:
4391 unsigned const& get_e_subsys_major() const;
4392 void set_e_subsys_major(unsigned const&);
4395public:
4401 unsigned const& get_e_subsys_minor() const;
4402 void set_e_subsys_minor(unsigned const&);
4405public:
4411 unsigned const& get_e_reserved9() const;
4412 void set_e_reserved9(unsigned const&);
4415public:
4421 unsigned const& get_e_image_size() const;
4422 void set_e_image_size(unsigned const&);
4425public:
4431 unsigned const& get_e_header_size() const;
4432 void set_e_header_size(unsigned const&);
4435public:
4441 unsigned const& get_e_file_checksum() const;
4442 void set_e_file_checksum(unsigned const&);
4445public:
4451 unsigned const& get_e_subsystem() const;
4452 void set_e_subsystem(unsigned const&);
4455public:
4461 unsigned const& get_e_dll_flags() const;
4462 void set_e_dll_flags(unsigned const&);
4465public:
4471 unsigned const& get_e_stack_reserve_size() const;
4472 void set_e_stack_reserve_size(unsigned const&);
4475public:
4481 unsigned const& get_e_stack_commit_size() const;
4482 void set_e_stack_commit_size(unsigned const&);
4485public:
4491 unsigned const& get_e_heap_reserve_size() const;
4492 void set_e_heap_reserve_size(unsigned const&);
4495public:
4501 unsigned const& get_e_heap_commit_size() const;
4502 void set_e_heap_commit_size(unsigned const&);
4505public:
4511 unsigned const& get_e_loader_flags() const;
4512 void set_e_loader_flags(unsigned const&);
4515public:
4521 unsigned const& get_e_num_rvasize_pairs() const;
4522 void set_e_num_rvasize_pairs(unsigned const&);
4525public:
4535public:
4545public:
4555 // Functions
4557public:
4559
4560 virtual const char* formatName() const override;
4561
4567 static bool isPe(SgAsmGenericFile*);
4568
4575 std::string rvaSizePairName(PairPurpose, const char **short_name);
4576
4579
4582
4583 void addRvaSizePairs();
4584
4585 virtual SgAsmPEFileHeader *parse() override;
4586 virtual bool reallocate() override;
4587 virtual void unparse(std::ostream&) const override;
4588 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4589 void createTableSections();
4590
4591 /* Loader memory maps */
4592 Rose::BinaryAnalysis::MemoryMap::Ptr get_loaderMap() const;
4593 void set_loaderMap(const Rose::BinaryAnalysis::MemoryMap::Ptr&);
4594
4595private:
4596 void *encode(SgAsmPEFileHeader::PEFileHeader_disk*) const;
4597 void *encode(SgAsmPEFileHeader::PE32OptHeader_disk*) const;
4598 void *encode(SgAsmPEFileHeader::PE64OptHeader_disk*) const;
4600
4602 // Deprecated 2023-11
4604public:
4605 SgAsmPERVASizePairList* get_rvasize_pairs() const ROSE_DEPRECATED("use get_rvaSizePairs");
4606 void set_rvasize_pairs(SgAsmPERVASizePairList*) ROSE_DEPRECATED("use set_rvaSizePairs");
4607 SgAsmPESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
4608 void set_section_table(SgAsmPESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
4609 SgAsmCoffSymbolTable* get_coff_symtab() const ROSE_DEPRECATED("use get_coffSymbolTable");
4610 void set_coff_symtab(SgAsmCoffSymbolTable*) ROSE_DEPRECATED("use set_coffSymbolTable");
4611 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
4612 static bool is_PE (SgAsmGenericFile*) ROSE_DEPRECATED("use isPe");
4613 std::string rvasize_pair_name(PairPurpose, const char**) ROSE_DEPRECATED("use rvaSizePairName");
4614 void set_rvasize_pair(PairPurpose, SgAsmPESection*) ROSE_DEPRECATED("use set_rvaSizePair");
4615 void update_rvasize_pairs() ROSE_DEPRECATED("use updateRvaSizePairs");
4616 void add_rvasize_pairs() ROSE_DEPRECATED("use addRvaSizePairs");
4617 void create_table_sections() ROSE_DEPRECATED("use createTableSections");
4618 Rose::BinaryAnalysis::MemoryMap::Ptr get_loader_map() const ROSE_DEPRECATED("use get_loaderMap");
4619 void set_loader_map(const Rose::BinaryAnalysis::MemoryMap::Ptr&) ROSE_DEPRECATED("use set_loaderMap");
4620public:
4623
4624public:
4627
4628protected:
4636#endif // SgAsmPEFileHeader_OTHERS
4637#ifdef DOCUMENTATION
4638};
4639#endif // DOCUMENTATION
4640
4641
4643// SgAsmPEExportSection -- MACHINE GENERATED; DO NOT MODIFY --
4645
4646DECLARE_LEAF_CLASS(AsmPEExportSection);
4647IS_SERIALIZABLE(AsmPEExportSection);
4648
4649#ifndef DOCUMENTATION
4650AsmPEExportSection.useSmallHeader(true);
4651#endif // !DOCUMENTATION
4652
4653DECLARE_HEADERS(AsmPEExportSection);
4654#if defined(SgAsmPEExportSection_HEADERS) || defined(DOCUMENTATION)
4655#ifdef ROSE_SgAsmPEExportSection_IMPL
4656#include <SgAsmPEExportDirectory.h>
4657#include <SgAsmPEExportEntryList.h>
4658#endif
4659#endif // SgAsmPEExportSection_HEADERS
4660
4661#ifdef DOCUMENTATION
4664#endif // DOCUMENTATION
4665
4666#ifndef DOCUMENTATION
4667 AsmPEExportSection.setDataPrototype(
4668 "SgAsmPEExportDirectory*", "exportDirectory", "= nullptr",
4669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4670#endif // !DOCUMENTATION
4671
4672#ifndef DOCUMENTATION
4673 AsmPEExportSection.setDataPrototype(
4674 "SgAsmPEExportEntryList*", "exports", "= createAndParent<SgAsmPEExportEntryList>(this)",
4675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4676#endif // !DOCUMENTATION
4677
4678 DECLARE_OTHERS(AsmPEExportSection);
4679#if defined(SgAsmPEExportSection_OTHERS) || defined(DOCUMENTATION)
4680
4681 //----------------------- Boost serialization for SgAsmPEExportSection -----------------------
4682#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
4683private:
4684 friend class boost::serialization::access;
4685
4686 template<class S>
4687 void serialize(S &s, const unsigned /*version*/) {
4688 debugSerializationBegin("SgAsmPEExportSection");
4689 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmPESection);
4690 s & BOOST_SERIALIZATION_NVP(p_exportDirectory);
4691 s & BOOST_SERIALIZATION_NVP(p_exports);
4692 debugSerializationEnd("SgAsmPEExportSection");
4693 }
4694#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4695public:
4696public:
4706public:
4715public:
4721 typedef uint32_t ExportAddress_disk;
4722
4726 typedef uint32_t ExportNamePtr_disk;
4727
4731 typedef uint16_t ExportOrdinal_disk;
4732
4734 virtual SgAsmPEExportSection *parse() override;
4735 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4736 void addEntry(SgAsmPEExportEntry*);
4737
4739 // Deprecated 2023-11
4741public:
4742 SgAsmPEExportDirectory* get_export_dir() const ROSE_DEPRECATED("use get_exportDirectory");
4743 void set_export_dir(SgAsmPEExportDirectory*) ROSE_DEPRECATED("use set_exportDirectory");
4744 void add_entry(SgAsmPEExportEntry*) ROSE_DEPRECATED("use addEntry");
4745public:
4748
4749public:
4752
4753protected:
4761#endif // SgAsmPEExportSection_OTHERS
4762#ifdef DOCUMENTATION
4763};
4764#endif // DOCUMENTATION
4765
4766
4768// SgAsmPESection -- MACHINE GENERATED; DO NOT MODIFY --
4770
4771#ifndef DOCUMENTATION
4772AstNodeClass& AsmPESection = nonTerminalConstructor(
4773 "AsmPESection",
4774 *this,
4775 "AsmPESection",
4776 "AsmPESectionTag",
4777 SubclassListBuilder()
4778 | AsmPEExportSection
4779 | AsmPEImportSection
4780 | AsmPEStringSection
4781 , true);
4782assert(AsmPESection.associatedGrammar != nullptr);
4783AsmPESection.setCppCondition("!defined(DOCUMENTATION)");
4784AsmPESection.isBoostSerializable(true);
4785AsmPESection.setAutomaticGenerationOfConstructor(false);
4786AsmPESection.setAutomaticGenerationOfDestructor(false);
4787#endif // !DOCUMENTATION
4788
4789#ifndef DOCUMENTATION
4790AsmPESection.useSmallHeader(true);
4791#endif // !DOCUMENTATION
4792
4793DECLARE_HEADERS(AsmPESection);
4794#if defined(SgAsmPESection_HEADERS) || defined(DOCUMENTATION)
4795#ifdef ROSE_SgAsmPESection_IMPL
4796#include <SgAsmPESectionTableEntry.h>
4797#endif
4798#endif // SgAsmPESection_HEADERS
4799
4800#ifdef DOCUMENTATION
4803#endif // DOCUMENTATION
4804
4805#ifndef DOCUMENTATION
4806 AsmPESection.setDataPrototype(
4807 "SgAsmPESectionTableEntry*", "section_entry", "= nullptr",
4808 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4809#endif // !DOCUMENTATION
4810
4811 DECLARE_OTHERS(AsmPESection);
4812#if defined(SgAsmPESection_OTHERS) || defined(DOCUMENTATION)
4813
4814 //----------------------- Boost serialization for SgAsmPESection -----------------------
4815#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
4816private:
4817 friend class boost::serialization::access;
4818
4819 template<class S>
4820 void serialize(S &s, const unsigned /*version*/) {
4821 debugSerializationBegin("SgAsmPESection");
4822 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
4823 s & BOOST_SERIALIZATION_NVP(p_section_entry);
4824 debugSerializationEnd("SgAsmPESection");
4825 }
4826#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4827public:
4828public:
4837public:
4839
4846 virtual bool reallocate() override;
4847 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
4848
4850 // Deprecated 2023-11
4852public:
4853 SgAsmPESection *init_from_section_table(SgAsmPESectionTableEntry*, int) ROSE_DEPRECATED("use initFromSectionTable");
4854public:
4857
4858public:
4861
4862protected:
4870#endif // SgAsmPESection_OTHERS
4871#ifdef DOCUMENTATION
4872};
4873#endif // DOCUMENTATION
4874
4875
4877// SgAsmPEExportEntryList -- MACHINE GENERATED; DO NOT MODIFY --
4879
4880DECLARE_LEAF_CLASS(AsmPEExportEntryList);
4881IS_SERIALIZABLE(AsmPEExportEntryList);
4882
4883#ifndef DOCUMENTATION
4884AsmPEExportEntryList.useSmallHeader(true);
4885#endif // !DOCUMENTATION
4886
4887DECLARE_HEADERS(AsmPEExportEntryList);
4888#if defined(SgAsmPEExportEntryList_HEADERS) || defined(DOCUMENTATION)
4889#include <sageContainer.h>
4890#endif // SgAsmPEExportEntryList_HEADERS
4891
4892#ifdef DOCUMENTATION
4898#endif // DOCUMENTATION
4899
4900#ifndef DOCUMENTATION
4901 AsmPEExportEntryList.setDataPrototype(
4902 "SgAsmPEExportEntryPtrList", "exports", "",
4903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4904#endif // !DOCUMENTATION
4905
4906 DECLARE_OTHERS(AsmPEExportEntryList);
4907#if defined(SgAsmPEExportEntryList_OTHERS) || defined(DOCUMENTATION)
4908
4909 //----------------------- Boost serialization for SgAsmPEExportEntryList -----------------------
4910#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
4911private:
4912 friend class boost::serialization::access;
4913
4914 template<class S>
4915 void serialize(S &s, const unsigned /*version*/) {
4916 debugSerializationBegin("SgAsmPEExportEntryList");
4917 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
4918 s & BOOST_SERIALIZATION_NVP(p_exports);
4919 debugSerializationEnd("SgAsmPEExportEntryList");
4920 }
4921#endif // ROSE_ENABLE_BOOST_SERIALIZATION
4922public:
4923public:
4927 SgAsmPEExportEntryPtrList const& get_exports() const;
4928 SgAsmPEExportEntryPtrList& get_exports();
4929 void set_exports(SgAsmPEExportEntryPtrList const&);
4932public:
4935
4936public:
4939
4940protected:
4948#endif // SgAsmPEExportEntryList_OTHERS
4949#ifdef DOCUMENTATION
4950};
4951#endif // DOCUMENTATION
4952
4953
4955// SgAsmPEExportEntry -- MACHINE GENERATED; DO NOT MODIFY --
4957
4958DECLARE_LEAF_CLASS(AsmPEExportEntry);
4959IS_SERIALIZABLE(AsmPEExportEntry);
4960
4961#ifndef DOCUMENTATION
4962AsmPEExportEntry.useSmallHeader(true);
4963#endif // !DOCUMENTATION
4964
4965DECLARE_HEADERS(AsmPEExportEntry);
4966#if defined(SgAsmPEExportEntry_HEADERS) || defined(DOCUMENTATION)
4967#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
4968#include <Sawyer/Result.h>
4969#endif // SgAsmPEExportEntry_HEADERS
4970
4971#ifdef DOCUMENTATION
4974#endif // DOCUMENTATION
4975
4976#ifndef DOCUMENTATION
4977 AsmPEExportEntry.setDataPrototype(
4978 "SgAsmGenericString*", "name", "= nullptr",
4979 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4980#endif // !DOCUMENTATION
4981
4982#ifndef DOCUMENTATION
4983 AsmPEExportEntry.setDataPrototype(
4984 "unsigned", "ordinal", "= 0",
4985 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4986#endif // !DOCUMENTATION
4987
4988#ifndef DOCUMENTATION
4989 AsmPEExportEntry.setDataPrototype(
4990 "Rose::BinaryAnalysis::RelativeVirtualAddress", "exportRva", "",
4991 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
4992#endif // !DOCUMENTATION
4993
4994#ifndef DOCUMENTATION
4995 AsmPEExportEntry.setDataPrototype(
4996 "SgAsmGenericString*", "forwarder", "= nullptr",
4997 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
4998#endif // !DOCUMENTATION
4999
5000 DECLARE_OTHERS(AsmPEExportEntry);
5001#if defined(SgAsmPEExportEntry_OTHERS) || defined(DOCUMENTATION)
5002
5003 //----------------------- Boost serialization for SgAsmPEExportEntry -----------------------
5004#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5005private:
5006 friend class boost::serialization::access;
5007
5008 template<class S>
5009 void serialize(S &s, const unsigned /*version*/) {
5010 debugSerializationBegin("SgAsmPEExportEntry");
5011 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5012 s & BOOST_SERIALIZATION_NVP(p_name);
5013 s & BOOST_SERIALIZATION_NVP(p_ordinal);
5014 s & BOOST_SERIALIZATION_NVP(p_exportRva);
5015 s & BOOST_SERIALIZATION_NVP(p_forwarder);
5016 debugSerializationEnd("SgAsmPEExportEntry");
5017 }
5018#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5019public:
5020public:
5029public:
5035 unsigned const& get_ordinal() const;
5036 void set_ordinal(unsigned const&);
5039public:
5050public:
5060public:
5062 SgAsmGenericString *forwarder);
5063 void dump(FILE *f,const char *prefix,ssize_t idx) const;
5064 /* Accessors. Override ROSETTA because we adjust parents. */
5065
5071 Sawyer::Result<unsigned /*ordinal*/, std::string /*reason*/> biasedOrdinal() const;
5072
5074 // Deprecated 2023-11
5076public:
5077 const Rose::BinaryAnalysis::RelativeVirtualAddress& get_export_rva() const ROSE_DEPRECATED("use get_exportRva");
5078 void set_export_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use set_exportRva");
5079public:
5082
5083public:
5086
5087protected:
5095#endif // SgAsmPEExportEntry_OTHERS
5096#ifdef DOCUMENTATION
5097};
5098#endif // DOCUMENTATION
5099
5100
5102// SgAsmPEExportDirectory -- MACHINE GENERATED; DO NOT MODIFY --
5104
5105DECLARE_LEAF_CLASS(AsmPEExportDirectory);
5106IS_SERIALIZABLE(AsmPEExportDirectory);
5107
5108#ifndef DOCUMENTATION
5109AsmPEExportDirectory.useSmallHeader(true);
5110#endif // !DOCUMENTATION
5111
5112DECLARE_HEADERS(AsmPEExportDirectory);
5113#if defined(SgAsmPEExportDirectory_HEADERS) || defined(DOCUMENTATION)
5114#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
5115
5116#ifdef ROSE_SgAsmPEExportDirectory_IMPL
5117#include <SgAsmGenericString.h>
5118#endif
5119#endif // SgAsmPEExportDirectory_HEADERS
5120
5121#ifdef DOCUMENTATION
5124#endif // DOCUMENTATION
5125
5126#ifndef DOCUMENTATION
5127 AsmPEExportDirectory.setDataPrototype(
5128 "unsigned", "res1", "= 0",
5129 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5130#endif // !DOCUMENTATION
5131
5132#ifndef DOCUMENTATION
5133 AsmPEExportDirectory.setDataPrototype(
5134 "time_t", "timestamp", "= 0",
5135 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5136#endif // !DOCUMENTATION
5137
5138#ifndef DOCUMENTATION
5139 AsmPEExportDirectory.setDataPrototype(
5140 "unsigned", "vmajor", "= 0",
5141 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5142#endif // !DOCUMENTATION
5143
5144#ifndef DOCUMENTATION
5145 AsmPEExportDirectory.setDataPrototype(
5146 "unsigned", "vminor", "= 0",
5147 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5148#endif // !DOCUMENTATION
5149
5150#ifndef DOCUMENTATION
5151 AsmPEExportDirectory.setDataPrototype(
5152 "Rose::BinaryAnalysis::RelativeVirtualAddress", "name_rva", "",
5153 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5154#endif // !DOCUMENTATION
5155
5156#ifndef DOCUMENTATION
5157 AsmPEExportDirectory.setDataPrototype(
5158 "unsigned", "ord_base", "= 0",
5159 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5160#endif // !DOCUMENTATION
5161
5162#ifndef DOCUMENTATION
5163 AsmPEExportDirectory.setDataPrototype(
5164 "size_t", "expaddr_n", "= 0",
5165 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5166#endif // !DOCUMENTATION
5167
5168#ifndef DOCUMENTATION
5169 AsmPEExportDirectory.setDataPrototype(
5170 "size_t", "nameptr_n", "= 0",
5171 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5172#endif // !DOCUMENTATION
5173
5174#ifndef DOCUMENTATION
5175 AsmPEExportDirectory.setDataPrototype(
5176 "Rose::BinaryAnalysis::RelativeVirtualAddress", "expaddr_rva", "",
5177 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5178#endif // !DOCUMENTATION
5179
5180#ifndef DOCUMENTATION
5181 AsmPEExportDirectory.setDataPrototype(
5182 "Rose::BinaryAnalysis::RelativeVirtualAddress", "nameptr_rva", "",
5183 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5184#endif // !DOCUMENTATION
5185
5186#ifndef DOCUMENTATION
5187 AsmPEExportDirectory.setDataPrototype(
5188 "Rose::BinaryAnalysis::RelativeVirtualAddress", "ordinals_rva", "",
5189 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5190#endif // !DOCUMENTATION
5191
5192#ifndef DOCUMENTATION
5193 AsmPEExportDirectory.setDataPrototype(
5194 "SgAsmGenericString*", "name", "= NULL",
5195 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5196#endif // !DOCUMENTATION
5197
5198 DECLARE_OTHERS(AsmPEExportDirectory);
5199#if defined(SgAsmPEExportDirectory_OTHERS) || defined(DOCUMENTATION)
5200
5201 //----------------------- Boost serialization for SgAsmPEExportDirectory -----------------------
5202#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5203private:
5204 friend class boost::serialization::access;
5205
5206 template<class S>
5207 void serialize(S &s, const unsigned /*version*/) {
5208 debugSerializationBegin("SgAsmPEExportDirectory");
5209 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5210 s & BOOST_SERIALIZATION_NVP(p_res1);
5211 s & BOOST_SERIALIZATION_NVP(p_timestamp);
5212 s & BOOST_SERIALIZATION_NVP(p_vmajor);
5213 s & BOOST_SERIALIZATION_NVP(p_vminor);
5214 s & BOOST_SERIALIZATION_NVP(p_name_rva);
5215 s & BOOST_SERIALIZATION_NVP(p_ord_base);
5216 s & BOOST_SERIALIZATION_NVP(p_expaddr_n);
5217 s & BOOST_SERIALIZATION_NVP(p_nameptr_n);
5218 s & BOOST_SERIALIZATION_NVP(p_expaddr_rva);
5219 s & BOOST_SERIALIZATION_NVP(p_nameptr_rva);
5220 s & BOOST_SERIALIZATION_NVP(p_ordinals_rva);
5221 s & BOOST_SERIALIZATION_NVP(p_name);
5222 debugSerializationEnd("SgAsmPEExportDirectory");
5223 }
5224#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5226 // Local types
5228public:
5229#ifdef _MSC_VER
5230# pragma pack (1)
5231#endif
5232 /* An Export Section begins with the Export Directory */
5234 uint32_t res1; /* 0x00 Reserved, must be zero */
5235 uint32_t timestamp; /* 0x04 Time that export data was created */
5236 uint16_t vmajor; /* 0x08 Major version number (user defined) */
5237 uint16_t vminor; /* 0x0a Minor version number (user defined) */
5238 uint32_t name_rva; /* 0x0c Location of name of DLL */
5239 uint32_t ord_base; /* 0x10 Starting ordinal for exports in this image (usually 1) */
5240 uint32_t expaddr_n; /* 0x14 Number of entries in the export address table */
5241 uint32_t nameptr_n; /* 0x18 Number of entries in the name pointer table and ordinal table */
5242 uint32_t expaddr_rva; /* 0x1c Location of Export Address Table */
5243 uint32_t nameptr_rva; /* 0x20 Location of Export Name Pointer Table */
5244 uint32_t ordinals_rva; /* 0x24 Location of Ordinal Table */
5245 } /* 0x28 */
5246#if !defined(SWIG) && !defined(_MSC_VER)
5247 __attribute__((packed))
5248#endif
5249 ;
5250#ifdef _MSC_VER
5251# pragma pack ()
5252#endif
5253
5255 // Properties
5257public:
5258public:
5264 unsigned const& get_res1() const;
5265 void set_res1(unsigned const&);
5268public:
5274 time_t const& get_timestamp() const;
5275 void set_timestamp(time_t const&);
5278public:
5284 unsigned const& get_vmajor() const;
5285 void set_vmajor(unsigned const&);
5288public:
5294 unsigned const& get_vminor() const;
5295 void set_vminor(unsigned const&);
5298public:
5309public:
5315 unsigned const& get_ord_base() const;
5316 void set_ord_base(unsigned const&);
5319public:
5325 size_t const& get_expaddr_n() const;
5326 void set_expaddr_n(size_t const&);
5329public:
5335 size_t const& get_nameptr_n() const;
5336 void set_nameptr_n(size_t const&);
5339public:
5350public:
5361public:
5372public:
5382 // Functions
5384public:
5386 void dump(FILE *f, const char *prefix, ssize_t idx) const;
5387public:
5390
5391public:
5394
5395protected:
5403#endif // SgAsmPEExportDirectory_OTHERS
5404#ifdef DOCUMENTATION
5405};
5406#endif // DOCUMENTATION
5407
5408
5410// SgAsmOperandList -- MACHINE GENERATED; DO NOT MODIFY --
5412
5413DECLARE_LEAF_CLASS(AsmOperandList);
5414IS_SERIALIZABLE(AsmOperandList);
5415
5416#ifndef DOCUMENTATION
5417AsmOperandList.useSmallHeader(true);
5418#endif // !DOCUMENTATION
5419
5420DECLARE_HEADERS(AsmOperandList);
5421#if defined(SgAsmOperandList_HEADERS) || defined(DOCUMENTATION)
5422#include <sageContainer.h>
5423#endif // SgAsmOperandList_HEADERS
5424
5425#ifdef DOCUMENTATION
5428#endif // DOCUMENTATION
5429
5430#ifndef DOCUMENTATION
5431 AsmOperandList.setDataPrototype(
5432 "SgAsmExpressionPtrList", "operands", "",
5433 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5434#endif // !DOCUMENTATION
5435
5436 DECLARE_OTHERS(AsmOperandList);
5437#if defined(SgAsmOperandList_OTHERS) || defined(DOCUMENTATION)
5438
5439 //----------------------- Boost serialization for SgAsmOperandList -----------------------
5440#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5441private:
5442 friend class boost::serialization::access;
5443
5444 template<class S>
5445 void serialize(S &s, const unsigned /*version*/) {
5446 debugSerializationBegin("SgAsmOperandList");
5447 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
5448 s & BOOST_SERIALIZATION_NVP(p_operands);
5449 debugSerializationEnd("SgAsmOperandList");
5450 }
5451#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5452public:
5453public:
5460 SgAsmExpressionPtrList const& get_operands() const;
5461 SgAsmExpressionPtrList& get_operands();
5462 void set_operands(SgAsmExpressionPtrList const&);
5464public:
5467
5469 // Deprecated 2023-11
5471public:
5472 void append_operand(SgAsmExpression*) ROSE_DEPRECATED("use appendOperand");
5473public:
5476
5477public:
5480
5481protected:
5489#endif // SgAsmOperandList_OTHERS
5490#ifdef DOCUMENTATION
5491};
5492#endif // DOCUMENTATION
5493
5494
5496// SgAsmNullInstruction -- MACHINE GENERATED; DO NOT MODIFY --
5498
5499DECLARE_LEAF_CLASS(AsmNullInstruction);
5500IS_SERIALIZABLE(AsmNullInstruction);
5501
5502#ifndef DOCUMENTATION
5503AsmNullInstruction.useSmallHeader(true);
5504#endif // !DOCUMENTATION
5505
5506#ifdef DOCUMENTATION
5508#endif // DOCUMENTATION
5509
5510 DECLARE_OTHERS(AsmNullInstruction);
5511#if defined(SgAsmNullInstruction_OTHERS) || defined(DOCUMENTATION)
5512
5513 //----------------------- Boost serialization for SgAsmNullInstruction -----------------------
5514#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5515private:
5516 friend class boost::serialization::access;
5517
5518 template<class S>
5519 void serialize(S &s, const unsigned /*version*/) {
5520 debugSerializationBegin("SgAsmNullInstruction");
5521 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
5522 debugSerializationEnd("SgAsmNullInstruction");
5523 }
5524#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5525public:
5526 // there's only one kind of null instruction
5527 enum Kind { null_unknown };
5528
5529public: // overrides
5530 virtual unsigned get_anyKind() const override;
5531public:
5534
5535public:
5538
5539public:
5542 uint8_t const& architectureId);
5543
5544protected:
5552#endif // SgAsmNullInstruction_OTHERS
5553#ifdef DOCUMENTATION
5554};
5555#endif // DOCUMENTATION
5556
5557
5559// SgAsmNEStringTable -- MACHINE GENERATED; DO NOT MODIFY --
5561
5562DECLARE_LEAF_CLASS(AsmNEStringTable);
5563IS_SERIALIZABLE(AsmNEStringTable);
5564
5565#ifndef DOCUMENTATION
5566AsmNEStringTable.useSmallHeader(true);
5567#endif // !DOCUMENTATION
5568
5569DECLARE_HEADERS(AsmNEStringTable);
5570#if defined(SgAsmNEStringTable_HEADERS) || defined(DOCUMENTATION)
5571#include <Rose/BinaryAnalysis/Address.h>
5572#endif // SgAsmNEStringTable_HEADERS
5573
5574#ifdef DOCUMENTATION
5576#endif // DOCUMENTATION
5577
5578 DECLARE_OTHERS(AsmNEStringTable);
5579#if defined(SgAsmNEStringTable_OTHERS) || defined(DOCUMENTATION)
5580
5581 //----------------------- Boost serialization for SgAsmNEStringTable -----------------------
5582#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5583private:
5584 friend class boost::serialization::access;
5585
5586 template<class S>
5587 void serialize(S &s, const unsigned /*version*/) {
5588 debugSerializationBegin("SgAsmNEStringTable");
5589 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5590 debugSerializationEnd("SgAsmNEStringTable");
5591 }
5592#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5593public:
5595 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5596 std::string get_string(Rose::BinaryAnalysis::Address offset);
5597public:
5600
5601public:
5604
5605protected:
5613#endif // SgAsmNEStringTable_OTHERS
5614#ifdef DOCUMENTATION
5615};
5616#endif // DOCUMENTATION
5617
5618
5620// SgAsmNESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
5622
5623DECLARE_LEAF_CLASS(AsmNESectionTableEntry);
5624IS_SERIALIZABLE(AsmNESectionTableEntry);
5625
5626#ifndef DOCUMENTATION
5627AsmNESectionTableEntry.useSmallHeader(true);
5628#endif // !DOCUMENTATION
5629
5630DECLARE_HEADERS(AsmNESectionTableEntry);
5631#if defined(SgAsmNESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
5632#include <Rose/BinaryAnalysis/Address.h>
5633#endif // SgAsmNESectionTableEntry_HEADERS
5634
5635#ifdef DOCUMENTATION
5637#endif // DOCUMENTATION
5638
5639#ifndef DOCUMENTATION
5640 AsmNESectionTableEntry.setDataPrototype(
5641 "unsigned", "flags", "= 0",
5642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5643#endif // !DOCUMENTATION
5644
5645#ifndef DOCUMENTATION
5646 AsmNESectionTableEntry.setDataPrototype(
5647 "unsigned", "sector", "= 0",
5648 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5649#endif // !DOCUMENTATION
5650
5651#ifndef DOCUMENTATION
5652 AsmNESectionTableEntry.setDataPrototype(
5653 "Rose::BinaryAnalysis::Address", "physicalSize", "= 0",
5654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5655#endif // !DOCUMENTATION
5656
5657#ifndef DOCUMENTATION
5658 AsmNESectionTableEntry.setDataPrototype(
5659 "Rose::BinaryAnalysis::Address", "virtualSize", "= 0",
5660 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5661#endif // !DOCUMENTATION
5662
5663 DECLARE_OTHERS(AsmNESectionTableEntry);
5664#if defined(SgAsmNESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
5665
5666 //----------------------- Boost serialization for SgAsmNESectionTableEntry -----------------------
5667#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5668private:
5669 friend class boost::serialization::access;
5670
5671 template<class S>
5672 void serialize(S &s, const unsigned /*version*/) {
5673 debugSerializationBegin("SgAsmNESectionTableEntry");
5674 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
5675 s & BOOST_SERIALIZATION_NVP(p_flags);
5676 s & BOOST_SERIALIZATION_NVP(p_sector);
5677 s & BOOST_SERIALIZATION_NVP(p_physicalSize);
5678 s & BOOST_SERIALIZATION_NVP(p_virtualSize);
5679 debugSerializationEnd("SgAsmNESectionTableEntry");
5680 }
5681#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5683 // Local types
5685public:
5686#ifdef _MSC_VER
5687# pragma pack (1)
5688#endif
5689 /* File format of a section table entry. All fields are little endian. */
5691 uint16_t sector; /* 0x00 File offset (sector size defined in hdr); zero means no file data */
5692 uint16_t physical_size; /* 0x02 Length of segment in file; zero means 64k if sector is non-zero */
5693 uint16_t flags; /* 0x04 Segment bit flags */
5694 uint16_t virtual_size; /* 0x06 Total size of segment when mapped to memory; zero means 64k */
5695 } /* 0x08 */
5696// DQ (3/7/2013): Adding support to restrict visability to SWIG.
5697#ifndef SWIG
5698#ifndef _MSC_VER
5699 __attribute__((packed))
5700#endif
5701#endif
5702 ;
5703#ifdef _MSC_VER
5704# pragma pack ()
5705#endif
5706
5707 enum NESectionFlags {
5708 SF_RESERVED = 0x0e08, /* these bits are reserved */
5709
5710 SF_TYPE_MASK = 0x0007, /* segment-type field */
5711 SF_CODE = 0x0000, /* code-segment type */
5712 SF_DATA = 0x0001, /* data-segment (otherwise segment is code) */
5713 SF_ALLOC = 0x0002, /* loader allocates memory */
5714 SF_LOAD = 0x0004, /* load the segment */
5715
5716 SF_MOVABLE = 0x0010, /* segment is not fixed */
5717 SF_PURE = 0x0020, /* segment is pure, or sharable; otherwise impure or non-sharable */
5718 SF_PRELOAD = 0x0040, /* segment will be preloaded; read-only if this is a data segment */
5719 SF_NOT_WRITABLE = 0x0080, /* code segment is execute only; data segment is read-only */
5720 SF_RELOCINFO = 0x0100, /* segment has relocation records */
5721 SF_DISCARDABLE = 0x1000, /* discardable */
5722 SF_DISCARD = 0xf000 /* discard priority */
5723 };
5724
5726 // Properties
5728public:
5729public:
5730 unsigned const& get_flags() const;
5731 void set_flags(unsigned const&);
5732
5733public:
5734 unsigned const& get_sector() const;
5735 void set_sector(unsigned const&);
5736
5737public:
5738 Rose::BinaryAnalysis::Address const& get_physicalSize() const;
5739 void set_physicalSize(Rose::BinaryAnalysis::Address const&);
5740
5741public:
5742 Rose::BinaryAnalysis::Address const& get_virtualSize() const;
5743 void set_virtualSize(Rose::BinaryAnalysis::Address const&);
5745 // Functions
5747public:
5750 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const {dump(f, prefix, idx, NULL);}
5751 void dump(FILE*, const char *prefix, ssize_t idx, SgAsmNEFileHeader *fhdr) const;
5752
5754 // Deprecated 2023-11
5756public:
5757 Rose::BinaryAnalysis::Address get_physical_size() const ROSE_DEPRECATED("use get_physicalSize");
5758 void set_physical_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_physicalSize");
5759 Rose::BinaryAnalysis::Address get_virtual_size() const ROSE_DEPRECATED("use get_virtualSize");
5760 void set_virtual_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_virtualSize");
5761public:
5764
5765public:
5768
5769protected:
5777#endif // SgAsmNESectionTableEntry_OTHERS
5778#ifdef DOCUMENTATION
5779};
5780#endif // DOCUMENTATION
5781
5782
5784// SgAsmNESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
5786
5787DECLARE_LEAF_CLASS(AsmNESectionTable);
5788IS_SERIALIZABLE(AsmNESectionTable);
5789
5790#ifndef DOCUMENTATION
5791AsmNESectionTable.useSmallHeader(true);
5792#endif // !DOCUMENTATION
5793
5794DECLARE_HEADERS(AsmNESectionTable);
5795#if defined(SgAsmNESectionTable_HEADERS) || defined(DOCUMENTATION)
5796#include <Rose/BinaryAnalysis/Address.h>
5797#endif // SgAsmNESectionTable_HEADERS
5798
5799#ifdef DOCUMENTATION
5801#endif // DOCUMENTATION
5802
5803#ifndef DOCUMENTATION
5804 AsmNESectionTable.setDataPrototype(
5805 "unsigned", "flags", "= 0",
5806 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5807#endif // !DOCUMENTATION
5808
5809#ifndef DOCUMENTATION
5810 AsmNESectionTable.setDataPrototype(
5811 "unsigned", "sector", "= 0",
5812 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5813#endif // !DOCUMENTATION
5814
5815#ifndef DOCUMENTATION
5816 AsmNESectionTable.setDataPrototype(
5817 "Rose::BinaryAnalysis::Address", "physicalSize", "= 0",
5818 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5819#endif // !DOCUMENTATION
5820
5821#ifndef DOCUMENTATION
5822 AsmNESectionTable.setDataPrototype(
5823 "Rose::BinaryAnalysis::Address", "virtualSize", "= 0",
5824 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
5825#endif // !DOCUMENTATION
5826
5827 DECLARE_OTHERS(AsmNESectionTable);
5828#if defined(SgAsmNESectionTable_OTHERS) || defined(DOCUMENTATION)
5829
5830 //----------------------- Boost serialization for SgAsmNESectionTable -----------------------
5831#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5832private:
5833 friend class boost::serialization::access;
5834
5835 template<class S>
5836 void serialize(S &s, const unsigned /*version*/) {
5837 debugSerializationBegin("SgAsmNESectionTable");
5838 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5839 s & BOOST_SERIALIZATION_NVP(p_flags);
5840 s & BOOST_SERIALIZATION_NVP(p_sector);
5841 s & BOOST_SERIALIZATION_NVP(p_physicalSize);
5842 s & BOOST_SERIALIZATION_NVP(p_virtualSize);
5843 debugSerializationEnd("SgAsmNESectionTable");
5844 }
5845#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5846public:
5847public:
5848 unsigned const& get_flags() const;
5849 void set_flags(unsigned const&);
5850
5851public:
5852 unsigned const& get_sector() const;
5853 void set_sector(unsigned const&);
5854
5855public:
5856 Rose::BinaryAnalysis::Address const& get_physicalSize() const;
5857 void set_physicalSize(Rose::BinaryAnalysis::Address const&);
5858
5859public:
5860 Rose::BinaryAnalysis::Address const& get_virtualSize() const;
5861 void set_virtualSize(Rose::BinaryAnalysis::Address const&);
5862public:
5864 virtual void unparse(std::ostream&) const override;
5865 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5866
5868 // Deprecated 2023-11
5870public:
5871 Rose::BinaryAnalysis::Address get_physical_size() const ROSE_DEPRECATED("use get_physicalSize");
5872 void set_physical_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_physicalSize");
5873 Rose::BinaryAnalysis::Address get_virtual_size() const ROSE_DEPRECATED("use get_virtualSize");
5874 void set_virtual_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_virtualSize");
5875public:
5878
5879public:
5882
5883protected:
5891#endif // SgAsmNESectionTable_OTHERS
5892#ifdef DOCUMENTATION
5893};
5894#endif // DOCUMENTATION
5895
5896
5898// SgAsmNESection -- MACHINE GENERATED; DO NOT MODIFY --
5900
5901DECLARE_LEAF_CLASS(AsmNESection);
5902IS_SERIALIZABLE(AsmNESection);
5903
5904#ifndef DOCUMENTATION
5905AsmNESection.useSmallHeader(true);
5906#endif // !DOCUMENTATION
5907
5908DECLARE_HEADERS(AsmNESection);
5909#if defined(SgAsmNESection_HEADERS) || defined(DOCUMENTATION)
5910#ifdef ROSE_SgAsmNESection_IMPL
5911#include <SgAsmNESectionTableEntry.h>
5912#include <SgAsmNERelocTable.h>
5913#endif
5914#endif // SgAsmNESection_HEADERS
5915
5916#ifdef DOCUMENTATION
5918#endif // DOCUMENTATION
5919
5920#ifndef DOCUMENTATION
5921 AsmNESection.setDataPrototype(
5922 "SgAsmNESectionTableEntry*", "sectionTableEntry", "= nullptr",
5923 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5924#endif // !DOCUMENTATION
5925
5926#ifndef DOCUMENTATION
5927 AsmNESection.setDataPrototype(
5928 "SgAsmNERelocTable*", "relocationTable", "= nullptr",
5929 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
5930#endif // !DOCUMENTATION
5931
5932 DECLARE_OTHERS(AsmNESection);
5933#if defined(SgAsmNESection_OTHERS) || defined(DOCUMENTATION)
5934
5935 //----------------------- Boost serialization for SgAsmNESection -----------------------
5936#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
5937private:
5938 friend class boost::serialization::access;
5939
5940 template<class S>
5941 void serialize(S &s, const unsigned /*version*/) {
5942 debugSerializationBegin("SgAsmNESection");
5943 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
5944 s & BOOST_SERIALIZATION_NVP(p_sectionTableEntry);
5945 s & BOOST_SERIALIZATION_NVP(p_relocationTable);
5946 debugSerializationEnd("SgAsmNESection");
5947 }
5948#endif // ROSE_ENABLE_BOOST_SERIALIZATION
5949public:
5950public:
5951 SgAsmNESectionTableEntry* const& get_sectionTableEntry() const;
5952 void set_sectionTableEntry(SgAsmNESectionTableEntry* const&);
5953
5954public:
5955 SgAsmNERelocTable* const& get_relocationTable() const;
5956 void set_relocationTable(SgAsmNERelocTable* const&);
5957public:
5958 explicit SgAsmNESection(SgAsmNEFileHeader *fhdr);
5959 virtual void unparse(std::ostream&) const override;
5960 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
5961
5963 // Deprecated 2023-11
5965public:
5966 SgAsmNESectionTableEntry* get_st_entry() const ROSE_DEPRECATED("use get_sectionTableEntry");
5967 void set_st_entry(SgAsmNESectionTableEntry*) ROSE_DEPRECATED("use set_sectionTableEntry");
5968 SgAsmNERelocTable* get_reloc_table() const ROSE_DEPRECATED("use get_relocationTable");
5969 void set_reloc_table(SgAsmNERelocTable*) ROSE_DEPRECATED("use set_relocationTable");
5970public:
5972 virtual ~SgAsmNESection();
5973
5974public:
5977
5978protected:
5986#endif // SgAsmNESection_OTHERS
5987#ifdef DOCUMENTATION
5988};
5989#endif // DOCUMENTATION
5990
5991
5993// SgAsmNERelocTable -- MACHINE GENERATED; DO NOT MODIFY --
5995
5996DECLARE_LEAF_CLASS(AsmNERelocTable);
5997IS_SERIALIZABLE(AsmNERelocTable);
5998
5999#ifndef DOCUMENTATION
6000AsmNERelocTable.useSmallHeader(true);
6001#endif // !DOCUMENTATION
6002
6003#ifdef DOCUMENTATION
6005#endif // DOCUMENTATION
6006
6007#ifndef DOCUMENTATION
6008 AsmNERelocTable.setDataPrototype(
6009 "SgAsmNERelocEntryPtrList", "entries", "",
6010 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6011#endif // !DOCUMENTATION
6012
6013 DECLARE_OTHERS(AsmNERelocTable);
6014#if defined(SgAsmNERelocTable_OTHERS) || defined(DOCUMENTATION)
6015
6016 //----------------------- Boost serialization for SgAsmNERelocTable -----------------------
6017#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6018private:
6019 friend class boost::serialization::access;
6020
6021 template<class S>
6022 void serialize(S &s, const unsigned /*version*/) {
6023 debugSerializationBegin("SgAsmNERelocTable");
6024 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6025 s & BOOST_SERIALIZATION_NVP(p_entries);
6026 debugSerializationEnd("SgAsmNERelocTable");
6027 }
6028#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6029public:
6030public:
6031 SgAsmNERelocEntryPtrList const& get_entries() const;
6032 SgAsmNERelocEntryPtrList& get_entries();
6033 void set_entries(SgAsmNERelocEntryPtrList const&);
6034public:
6035 explicit SgAsmNERelocTable(SgAsmNEFileHeader *fhdr, SgAsmNESection *section);
6036 virtual void unparse(std::ostream&) const override;
6037 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6038public:
6041
6042public:
6045
6046protected:
6054#endif // SgAsmNERelocTable_OTHERS
6055#ifdef DOCUMENTATION
6056};
6057#endif // DOCUMENTATION
6058
6059
6061// SgAsmNERelocEntry -- MACHINE GENERATED; DO NOT MODIFY --
6063
6064DECLARE_LEAF_CLASS(AsmNERelocEntry);
6065IS_SERIALIZABLE(AsmNERelocEntry);
6066
6067#ifndef DOCUMENTATION
6068AsmNERelocEntry.useSmallHeader(true);
6069#endif // !DOCUMENTATION
6070
6071DECLARE_HEADERS(AsmNERelocEntry);
6072#if defined(SgAsmNERelocEntry_HEADERS) || defined(DOCUMENTATION)
6073#include <Rose/BinaryAnalysis/Address.h>
6074#endif // SgAsmNERelocEntry_HEADERS
6075
6076#ifdef DOCUMENTATION
6078#endif // DOCUMENTATION
6079
6080#ifndef DOCUMENTATION
6081 AsmNERelocEntry.setDataPrototype(
6082 "SgAsmNERelocEntry::NERelocSrcType", "src_type", "= SgAsmNERelocEntry::RF_SRCTYPE_8OFF",
6083 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6084#endif // !DOCUMENTATION
6085
6086#ifndef DOCUMENTATION
6087 AsmNERelocEntry.setDataPrototype(
6088 "SgAsmNERelocEntry::NERelocModifiers", "modifier", "= SgAsmNERelocEntry::RF_MODIFIER_SINGLE",
6089 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6090#endif // !DOCUMENTATION
6091
6092#ifndef DOCUMENTATION
6093 AsmNERelocEntry.setDataPrototype(
6094 "SgAsmNERelocEntry::NERelocTgtType", "tgt_type", "= SgAsmNERelocEntry::RF_TGTTYPE_IREF",
6095 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6096#endif // !DOCUMENTATION
6097
6098#ifndef DOCUMENTATION
6099 AsmNERelocEntry.setDataPrototype(
6100 "SgAsmNERelocEntry::NERelocFlags", "flags", "= SgAsmNERelocEntry::RF_ADDITIVE",
6101 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6102#endif // !DOCUMENTATION
6103
6104#ifndef DOCUMENTATION
6105 AsmNERelocEntry.setDataPrototype(
6106 "Rose::BinaryAnalysis::Address", "src_offset", "= 0",
6107 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6108#endif // !DOCUMENTATION
6109
6110#ifndef DOCUMENTATION
6111 AsmNERelocEntry.setDataPrototype(
6112 "SgAsmNERelocEntry::iref_type", "iref", "",
6113 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6114#endif // !DOCUMENTATION
6115
6116#ifndef DOCUMENTATION
6117 AsmNERelocEntry.setDataPrototype(
6118 "SgAsmNERelocEntry::iord_type", "iord", "",
6119 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6120#endif // !DOCUMENTATION
6121
6122#ifndef DOCUMENTATION
6123 AsmNERelocEntry.setDataPrototype(
6124 "SgAsmNERelocEntry::iname_type", "iname", "",
6125 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6126#endif // !DOCUMENTATION
6127
6128#ifndef DOCUMENTATION
6129 AsmNERelocEntry.setDataPrototype(
6130 "SgAsmNERelocEntry::osfixup_type", "osfixup", "",
6131 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6132#endif // !DOCUMENTATION
6133
6134 DECLARE_OTHERS(AsmNERelocEntry);
6135#if defined(SgAsmNERelocEntry_OTHERS) || defined(DOCUMENTATION)
6136
6137 //----------------------- Boost serialization for SgAsmNERelocEntry -----------------------
6138#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6139private:
6140 friend class boost::serialization::access;
6141
6142 template<class S>
6143 void serialize(S &s, const unsigned /*version*/) {
6144 debugSerializationBegin("SgAsmNERelocEntry");
6145 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
6146 s & BOOST_SERIALIZATION_NVP(p_src_type);
6147 s & BOOST_SERIALIZATION_NVP(p_modifier);
6148 s & BOOST_SERIALIZATION_NVP(p_tgt_type);
6149 s & BOOST_SERIALIZATION_NVP(p_flags);
6150 s & BOOST_SERIALIZATION_NVP(p_src_offset);
6151 s & BOOST_SERIALIZATION_NVP(p_iref);
6152 s & BOOST_SERIALIZATION_NVP(p_iord);
6153 s & BOOST_SERIALIZATION_NVP(p_iname);
6154 s & BOOST_SERIALIZATION_NVP(p_osfixup);
6155 debugSerializationEnd("SgAsmNERelocEntry");
6156 }
6157#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6159 // Local types
6161public:
6162 /* NERelocEntry_disk -- variable size with multiple levels of 'union'. It's easier to just parse it in NERelocEntry::ctor()
6163 * than defining it here as a struct. */
6164 enum NERelocSrcType {
6165 RF_SRCTYPE_8OFF = 0, /* Byte offset */
6166 RF_SRCTYPE_WORDSEG = 2, /* Word segment, 16-bit selector */
6167 RF_SRCTYPE_16PTR = 3, /* 16-bit far pointer */
6168 RF_SRCTYPE_16OFF = 5, /* 16-bit offset */
6169 RF_SRCTYPE_32PTR = 6, /* 32-bit far pointer */
6170 RF_SRCTYPE_32OFF = 7, /* 32-bit offset */
6171 RF_SRCTYPE_NEARCALL = 8, /* near call or jump, WORD/DWROD based on section attribute */
6172 RF_SRCTYPE_48PTR = 11, /* 48-bit pointer */
6173 RF_SRCTYPE_32OFF_b = 13 /* 32-bit offset (not sure how this differs from case 7) */
6174 };
6175
6176 enum NERelocTgtType {
6177 RF_TGTTYPE_IREF = 0, /* Internal reference */
6178 RF_TGTTYPE_IORD = 1, /* Imported (extern) ordinal */
6179 RF_TGTTYPE_INAME = 2, /* Imported (extern) name */
6180 RF_TGTTYPE_OSFIXUP = 3 /* Operating system fixup */
6181 };
6182
6183 enum NERelocModifiers {
6184 RF_MODIFIER_SINGLE = 1,
6185 RF_MODIFIER_MULTI = 3
6186 };
6187
6188 enum NERelocFlags {
6189 RF_ADDITIVE = 0x01, /* add target to source rather than replace source with target */
6190 RF_RESERVED = 0x02, /* reserved bits */
6191 RF_2EXTRA = 0x04, /* relocation info has size with new two bytes at end */
6192 RF_32ADD = 0x08, /* addition with 32-bits rather than 16 */
6193 RF_16SECTION = 0x10, /* 16-bit object number & module name rather than 8-bit */
6194 RF_8ORDINAL = 0x20 /* Ordinal is 8-bits rather than 16 */
6195 };
6196
6197 // DQ (8/7/2008): At only (I hope) the risk of using more memory that required, break the union so that we can better support
6198 // this in ROSETTA. One solution might be to implement a common base class of unsigned, unsigned, Rose::BinaryAnalysis::Address;
6199 // and then use member functions to access the data in the base class.
6200 struct iref_type { /*tgt_type==0x00: internal reference*/
6201 unsigned sect_idx; /* section index (1-origin) */
6202 unsigned res1; /* reserved */
6204
6205#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6206 template<class S>
6207 void serialize(S &s, const unsigned /*version*/) {
6208 s & BOOST_SERIALIZATION_NVP(sect_idx);
6209 s & BOOST_SERIALIZATION_NVP(res1);
6210 s & BOOST_SERIALIZATION_NVP(tgt_offset);
6211 }
6212#endif
6213
6214 // Added to support RTI support in ROSE
6215 friend std::ostream & operator<< ( std::ostream & os, const iref_type & x );
6216
6217 iref_type();
6218 };
6219
6220 struct iord_type { /*tgt_type==0x01: imported ordinal*/
6221 unsigned modref; /* 1-based index into import module table */
6222 unsigned ordinal;
6223 Rose::BinaryAnalysis::Address addend; /* value to add (only present for flags & RF_2EXTRA) */
6224
6225#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6226 template<class S>
6227 void serialize(S &s, const unsigned /*version*/) {
6228 s & BOOST_SERIALIZATION_NVP(modref);
6229 s & BOOST_SERIALIZATION_NVP(ordinal);
6230 s & BOOST_SERIALIZATION_NVP(addend);
6231 }
6232#endif
6233
6234 // Added to support RTI support in ROSE
6235 friend std::ostream & operator<< ( std::ostream & os, const iord_type & x );
6236
6237 iord_type();
6238 };
6239
6240 struct iname_type { /*tgt_type==0x02: imported name*/
6241 unsigned modref; /* 1-based index into import module table */
6242 unsigned nm_off; /* offset into import procedure names */
6243 Rose::BinaryAnalysis::Address addend; /* value to add (only present for flags & RF_2EXTRA) */
6244
6245#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6246 template<class S>
6247 void serialize(S &s, const unsigned /*version*/) {
6248 s & BOOST_SERIALIZATION_NVP(modref);
6249 s & BOOST_SERIALIZATION_NVP(nm_off);
6250 s & BOOST_SERIALIZATION_NVP(addend);
6251 }
6252#endif
6253
6254 // Added to support RTI support in ROSE
6255 friend std::ostream & operator<< ( std::ostream & os, const iname_type & x );
6256
6257 iname_type();
6258 };
6259
6260 struct osfixup_type { /*tgt_type==0x03: operating system fixup*/
6261 unsigned type;
6262 unsigned res3;
6263
6264#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6265 template<class S>
6266 void serialize(S &s, const unsigned /*version*/) {
6267 s & BOOST_SERIALIZATION_NVP(type);
6268 s & BOOST_SERIALIZATION_NVP(res3);
6269 }
6270#endif
6271
6272 // Added to support RTI support in ROSE
6273 friend std::ostream & operator<< ( std::ostream & os, const osfixup_type & x );
6274
6275 osfixup_type();
6276 };
6277
6279 // Properties
6281public:
6282public:
6283 SgAsmNERelocEntry::NERelocSrcType const& get_src_type() const;
6284 void set_src_type(SgAsmNERelocEntry::NERelocSrcType const&);
6285
6286public:
6287 SgAsmNERelocEntry::NERelocModifiers const& get_modifier() const;
6288 void set_modifier(SgAsmNERelocEntry::NERelocModifiers const&);
6289
6290public:
6291 SgAsmNERelocEntry::NERelocTgtType const& get_tgt_type() const;
6292 void set_tgt_type(SgAsmNERelocEntry::NERelocTgtType const&);
6293
6294public:
6295 SgAsmNERelocEntry::NERelocFlags const& get_flags() const;
6296 void set_flags(SgAsmNERelocEntry::NERelocFlags const&);
6297
6298public:
6299 Rose::BinaryAnalysis::Address const& get_src_offset() const;
6300 void set_src_offset(Rose::BinaryAnalysis::Address const&);
6301
6302public:
6303 SgAsmNERelocEntry::iref_type const& get_iref() const;
6304 void set_iref(SgAsmNERelocEntry::iref_type const&);
6305
6306public:
6307 SgAsmNERelocEntry::iord_type const& get_iord() const;
6308 void set_iord(SgAsmNERelocEntry::iord_type const&);
6309
6310public:
6311 SgAsmNERelocEntry::iname_type const& get_iname() const;
6312 void set_iname(SgAsmNERelocEntry::iname_type const&);
6313
6314public:
6315 SgAsmNERelocEntry::osfixup_type const& get_osfixup() const;
6316 void set_osfixup(SgAsmNERelocEntry::osfixup_type const&);
6318 // Functions
6320public:
6322 Rose::BinaryAnalysis::Address unparse(std::ostream&, const SgAsmGenericSection*, Rose::BinaryAnalysis::Address spos) const;
6323 void dump(FILE*, const char *prefix, ssize_t idx) const;
6324public:
6327
6328public:
6331
6332protected:
6340#endif // SgAsmNERelocEntry_OTHERS
6341#ifdef DOCUMENTATION
6342};
6343#endif // DOCUMENTATION
6344
6345
6347// SgAsmNENameTable -- MACHINE GENERATED; DO NOT MODIFY --
6349
6350DECLARE_LEAF_CLASS(AsmNENameTable);
6351IS_SERIALIZABLE(AsmNENameTable);
6352
6353#ifndef DOCUMENTATION
6354AsmNENameTable.useSmallHeader(true);
6355#endif // !DOCUMENTATION
6356
6357DECLARE_HEADERS(AsmNENameTable);
6358#if defined(SgAsmNENameTable_HEADERS) || defined(DOCUMENTATION)
6359#include <Rose/BinaryAnalysis/Address.h>
6360#endif // SgAsmNENameTable_HEADERS
6361
6362#ifdef DOCUMENTATION
6364#endif // DOCUMENTATION
6365
6366#ifndef DOCUMENTATION
6367 AsmNENameTable.setDataPrototype(
6368 "SgStringList", "names", "",
6369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6370#endif // !DOCUMENTATION
6371
6372#ifndef DOCUMENTATION
6373 AsmNENameTable.setDataPrototype(
6374 "SgUnsignedList", "ordinals", "",
6375 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6376#endif // !DOCUMENTATION
6377
6378 DECLARE_OTHERS(AsmNENameTable);
6379#if defined(SgAsmNENameTable_OTHERS) || defined(DOCUMENTATION)
6380
6381 //----------------------- Boost serialization for SgAsmNENameTable -----------------------
6382#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6383private:
6384 friend class boost::serialization::access;
6385
6386 template<class S>
6387 void serialize(S &s, const unsigned /*version*/) {
6388 debugSerializationBegin("SgAsmNENameTable");
6389 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6390 s & BOOST_SERIALIZATION_NVP(p_names);
6391 s & BOOST_SERIALIZATION_NVP(p_ordinals);
6392 debugSerializationEnd("SgAsmNENameTable");
6393 }
6394#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6395public:
6396public:
6397 SgStringList const& get_names() const;
6398 void set_names(SgStringList const&);
6399
6400public:
6401 SgUnsignedList const& get_ordinals() const;
6402 void set_ordinals(SgUnsignedList const&);
6403public:
6405 virtual void unparse(std::ostream&) const override;
6406 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6407 std::vector<std::string> get_namesByOrdinal(unsigned ordinal);
6408
6410 // Deprecated 2023-11
6412public:
6413 std::vector<std::string> get_names_by_ordinal(unsigned) ROSE_DEPRECATED("use get_namesByOrdinal");
6414public:
6417
6418public:
6421
6422protected:
6430#endif // SgAsmNENameTable_OTHERS
6431#ifdef DOCUMENTATION
6432};
6433#endif // DOCUMENTATION
6434
6435
6437// SgAsmNEModuleTable -- MACHINE GENERATED; DO NOT MODIFY --
6439
6440DECLARE_LEAF_CLASS(AsmNEModuleTable);
6441IS_SERIALIZABLE(AsmNEModuleTable);
6442
6443#ifndef DOCUMENTATION
6444AsmNEModuleTable.useSmallHeader(true);
6445#endif // !DOCUMENTATION
6446
6447DECLARE_HEADERS(AsmNEModuleTable);
6448#if defined(SgAsmNEModuleTable_HEADERS) || defined(DOCUMENTATION)
6449#include <Rose/BinaryAnalysis/Address.h>
6450
6451#ifdef ROSE_SgAsmNEModuleTable_IMPL
6452#include <SgAsmNEStringTable.h>
6453#endif
6454#endif // SgAsmNEModuleTable_HEADERS
6455
6456#ifdef DOCUMENTATION
6458#endif // DOCUMENTATION
6459
6460#ifndef DOCUMENTATION
6461 AsmNEModuleTable.setDataPrototype(
6462 "SgAsmNEStringTable*", "strtab", "= nullptr",
6463 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6464#endif // !DOCUMENTATION
6465
6466#ifndef DOCUMENTATION
6467 AsmNEModuleTable.setDataPrototype(
6468 "SgAddressList", "nameOffsets", "",
6469 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6470#endif // !DOCUMENTATION
6471
6472#ifndef DOCUMENTATION
6473 AsmNEModuleTable.setDataPrototype(
6474 "SgStringList", "names", "",
6475 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6476#endif // !DOCUMENTATION
6477
6478 DECLARE_OTHERS(AsmNEModuleTable);
6479#if defined(SgAsmNEModuleTable_OTHERS) || defined(DOCUMENTATION)
6480
6481 //----------------------- Boost serialization for SgAsmNEModuleTable -----------------------
6482#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6483private:
6484 friend class boost::serialization::access;
6485
6486 template<class S>
6487 void serialize(S &s, const unsigned /*version*/) {
6488 debugSerializationBegin("SgAsmNEModuleTable");
6489 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
6490 s & BOOST_SERIALIZATION_NVP(p_strtab);
6491 s & BOOST_SERIALIZATION_NVP(p_nameOffsets);
6492 s & BOOST_SERIALIZATION_NVP(p_names);
6493 debugSerializationEnd("SgAsmNEModuleTable");
6494 }
6495#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6496public:
6497public:
6498 SgAsmNEStringTable* const& get_strtab() const;
6499 void set_strtab(SgAsmNEStringTable* const&);
6500
6501public:
6502 SgAddressList const& get_nameOffsets() const;
6503 void set_nameOffsets(SgAddressList const&);
6504
6505public:
6506 SgStringList const& get_names() const;
6507 void set_names(SgStringList const&);
6508public:
6511 virtual void unparse(std::ostream&) const override;
6512 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
6513
6515 // Deprecated 2023-11
6517public:
6518 const SgAddressList& get_name_offsets() const ROSE_DEPRECATED("use get_nameOffsets");
6519 void set_name_offsets(const SgAddressList&) ROSE_DEPRECATED("use set_nameOffsets");
6520public:
6523
6524public:
6527
6528protected:
6536#endif // SgAsmNEModuleTable_OTHERS
6537#ifdef DOCUMENTATION
6538};
6539#endif // DOCUMENTATION
6540
6541
6543// SgAsmNEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
6545
6546DECLARE_LEAF_CLASS(AsmNEFileHeader);
6547IS_SERIALIZABLE(AsmNEFileHeader);
6548
6549#ifndef DOCUMENTATION
6550AsmNEFileHeader.useSmallHeader(true);
6551#endif // !DOCUMENTATION
6552
6553DECLARE_HEADERS(AsmNEFileHeader);
6554#if defined(SgAsmNEFileHeader_HEADERS) || defined(DOCUMENTATION)
6555#include <Rose/BinaryAnalysis/Address.h>
6556
6557#ifdef ROSE_SgAsmNEFileHeader_IMPL
6558#include <SgAsmDOSExtendedHeader.h>
6559#include <SgAsmNEEntryTable.h>
6560#include <SgAsmNEModuleTable.h>
6561#include <SgAsmNENameTable.h>
6562#include <SgAsmNESectionTable.h>
6563#endif
6564#endif // SgAsmNEFileHeader_HEADERS
6565
6566#ifdef DOCUMENTATION
6568#endif // DOCUMENTATION
6569
6570#ifndef DOCUMENTATION
6571 AsmNEFileHeader.setDataPrototype(
6572 "unsigned", "e_linker_major", "= 0",
6573 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6574#endif // !DOCUMENTATION
6575
6576#ifndef DOCUMENTATION
6577 AsmNEFileHeader.setDataPrototype(
6578 "unsigned", "e_linker_minor", "= 0",
6579 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6580#endif // !DOCUMENTATION
6581
6582#ifndef DOCUMENTATION
6583 AsmNEFileHeader.setDataPrototype(
6584 "unsigned", "e_checksum", "= 0",
6585 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6586#endif // !DOCUMENTATION
6587
6588#ifndef DOCUMENTATION
6589 AsmNEFileHeader.setDataPrototype(
6590 "unsigned", "e_flags1", "= 0",
6591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6592#endif // !DOCUMENTATION
6593
6594#ifndef DOCUMENTATION
6595 AsmNEFileHeader.setDataPrototype(
6596 "unsigned", "e_autodata_sn", "= 0",
6597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6598#endif // !DOCUMENTATION
6599
6600#ifndef DOCUMENTATION
6601 AsmNEFileHeader.setDataPrototype(
6602 "unsigned", "e_bss_size", "= 0",
6603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6604#endif // !DOCUMENTATION
6605
6606#ifndef DOCUMENTATION
6607 AsmNEFileHeader.setDataPrototype(
6608 "unsigned", "e_stack_size", "= 0",
6609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6610#endif // !DOCUMENTATION
6611
6612#ifndef DOCUMENTATION
6613 AsmNEFileHeader.setDataPrototype(
6614 "unsigned", "e_csip", "= 0",
6615 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6616#endif // !DOCUMENTATION
6617
6618#ifndef DOCUMENTATION
6619 AsmNEFileHeader.setDataPrototype(
6620 "unsigned", "e_sssp", "= 0",
6621 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6622#endif // !DOCUMENTATION
6623
6624#ifndef DOCUMENTATION
6625 AsmNEFileHeader.setDataPrototype(
6626 "unsigned", "e_nsections", "= 0",
6627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6628#endif // !DOCUMENTATION
6629
6630#ifndef DOCUMENTATION
6631 AsmNEFileHeader.setDataPrototype(
6632 "unsigned", "e_nmodrefs", "= 0",
6633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6634#endif // !DOCUMENTATION
6635
6636#ifndef DOCUMENTATION
6637 AsmNEFileHeader.setDataPrototype(
6638 "unsigned", "e_nnonresnames", "= 0",
6639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6640#endif // !DOCUMENTATION
6641
6642#ifndef DOCUMENTATION
6643 AsmNEFileHeader.setDataPrototype(
6644 "unsigned", "e_nmovable_entries", "= 0",
6645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6646#endif // !DOCUMENTATION
6647
6648#ifndef DOCUMENTATION
6649 AsmNEFileHeader.setDataPrototype(
6650 "unsigned", "e_sector_align", "= 0",
6651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6652#endif // !DOCUMENTATION
6653
6654#ifndef DOCUMENTATION
6655 AsmNEFileHeader.setDataPrototype(
6656 "unsigned", "e_nresources", "= 0",
6657 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6658#endif // !DOCUMENTATION
6659
6660#ifndef DOCUMENTATION
6661 AsmNEFileHeader.setDataPrototype(
6662 "unsigned", "e_exetype", "= 0",
6663 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6664#endif // !DOCUMENTATION
6665
6666#ifndef DOCUMENTATION
6667 AsmNEFileHeader.setDataPrototype(
6668 "unsigned", "e_flags2", "= 0",
6669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6670#endif // !DOCUMENTATION
6671
6672#ifndef DOCUMENTATION
6673 AsmNEFileHeader.setDataPrototype(
6674 "unsigned", "e_res1", "= 0",
6675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6676#endif // !DOCUMENTATION
6677
6678#ifndef DOCUMENTATION
6679 AsmNEFileHeader.setDataPrototype(
6680 "unsigned", "e_winvers", "= 0",
6681 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6682#endif // !DOCUMENTATION
6683
6684#ifndef DOCUMENTATION
6685 AsmNEFileHeader.setDataPrototype(
6686 "Rose::BinaryAnalysis::Address", "e_entrytab_rfo", "= 0",
6687 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6688#endif // !DOCUMENTATION
6689
6690#ifndef DOCUMENTATION
6691 AsmNEFileHeader.setDataPrototype(
6692 "Rose::BinaryAnalysis::Address", "e_entrytab_size", "= 0",
6693 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6694#endif // !DOCUMENTATION
6695
6696#ifndef DOCUMENTATION
6697 AsmNEFileHeader.setDataPrototype(
6698 "Rose::BinaryAnalysis::Address", "e_sectab_rfo", "= 0",
6699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6700#endif // !DOCUMENTATION
6701
6702#ifndef DOCUMENTATION
6703 AsmNEFileHeader.setDataPrototype(
6704 "Rose::BinaryAnalysis::Address", "e_rsrctab_rfo", "= 0",
6705 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6706#endif // !DOCUMENTATION
6707
6708#ifndef DOCUMENTATION
6709 AsmNEFileHeader.setDataPrototype(
6710 "Rose::BinaryAnalysis::Address", "e_resnametab_rfo", "= 0",
6711 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6712#endif // !DOCUMENTATION
6713
6714#ifndef DOCUMENTATION
6715 AsmNEFileHeader.setDataPrototype(
6716 "Rose::BinaryAnalysis::Address", "e_modreftab_rfo", "= 0",
6717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6718#endif // !DOCUMENTATION
6719
6720#ifndef DOCUMENTATION
6721 AsmNEFileHeader.setDataPrototype(
6722 "Rose::BinaryAnalysis::Address", "e_importnametab_rfo", "= 0",
6723 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6724#endif // !DOCUMENTATION
6725
6726#ifndef DOCUMENTATION
6727 AsmNEFileHeader.setDataPrototype(
6728 "Rose::BinaryAnalysis::Address", "e_nonresnametab_offset", "= 0",
6729 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6730#endif // !DOCUMENTATION
6731
6732#ifndef DOCUMENTATION
6733 AsmNEFileHeader.setDataPrototype(
6734 "Rose::BinaryAnalysis::Address", "e_fastload_sector", "= 0",
6735 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6736#endif // !DOCUMENTATION
6737
6738#ifndef DOCUMENTATION
6739 AsmNEFileHeader.setDataPrototype(
6740 "Rose::BinaryAnalysis::Address", "e_fastload_nsectors", "= 0",
6741 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6742#endif // !DOCUMENTATION
6743
6744#ifndef DOCUMENTATION
6745 AsmNEFileHeader.setDataPrototype(
6746 "SgAsmDOSExtendedHeader*", "dos2Header", "= nullptr",
6747 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6748#endif // !DOCUMENTATION
6749
6750#ifndef DOCUMENTATION
6751 AsmNEFileHeader.setDataPrototype(
6752 "SgAsmNESectionTable*", "sectionTable", "= nullptr",
6753 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
6754#endif // !DOCUMENTATION
6755
6756#ifndef DOCUMENTATION
6757 AsmNEFileHeader.setDataPrototype(
6758 "SgAsmNENameTable*", "residentNameTable", "= nullptr",
6759 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6760#endif // !DOCUMENTATION
6761
6762#ifndef DOCUMENTATION
6763 AsmNEFileHeader.setDataPrototype(
6764 "SgAsmNENameTable*", "nonresidentNameTable", "= nullptr",
6765 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6766#endif // !DOCUMENTATION
6767
6768#ifndef DOCUMENTATION
6769 AsmNEFileHeader.setDataPrototype(
6770 "SgAsmNEModuleTable*", "moduleTable", "= nullptr",
6771 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6772#endif // !DOCUMENTATION
6773
6774#ifndef DOCUMENTATION
6775 AsmNEFileHeader.setDataPrototype(
6776 "SgAsmNEEntryTable*", "entryTable", "= nullptr",
6777 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
6778#endif // !DOCUMENTATION
6779
6780 DECLARE_OTHERS(AsmNEFileHeader);
6781#if defined(SgAsmNEFileHeader_OTHERS) || defined(DOCUMENTATION)
6782
6783 //----------------------- Boost serialization for SgAsmNEFileHeader -----------------------
6784#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
6785private:
6786 friend class boost::serialization::access;
6787
6788 template<class S>
6789 void serialize(S &s, const unsigned /*version*/) {
6790 debugSerializationBegin("SgAsmNEFileHeader");
6791 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
6792 s & BOOST_SERIALIZATION_NVP(p_e_linker_major);
6793 s & BOOST_SERIALIZATION_NVP(p_e_linker_minor);
6794 s & BOOST_SERIALIZATION_NVP(p_e_checksum);
6795 s & BOOST_SERIALIZATION_NVP(p_e_flags1);
6796 s & BOOST_SERIALIZATION_NVP(p_e_autodata_sn);
6797 s & BOOST_SERIALIZATION_NVP(p_e_bss_size);
6798 s & BOOST_SERIALIZATION_NVP(p_e_stack_size);
6799 s & BOOST_SERIALIZATION_NVP(p_e_csip);
6800 s & BOOST_SERIALIZATION_NVP(p_e_sssp);
6801 s & BOOST_SERIALIZATION_NVP(p_e_nsections);
6802 s & BOOST_SERIALIZATION_NVP(p_e_nmodrefs);
6803 s & BOOST_SERIALIZATION_NVP(p_e_nnonresnames);
6804 s & BOOST_SERIALIZATION_NVP(p_e_nmovable_entries);
6805 s & BOOST_SERIALIZATION_NVP(p_e_sector_align);
6806 s & BOOST_SERIALIZATION_NVP(p_e_nresources);
6807 s & BOOST_SERIALIZATION_NVP(p_e_exetype);
6808 s & BOOST_SERIALIZATION_NVP(p_e_flags2);
6809 s & BOOST_SERIALIZATION_NVP(p_e_res1);
6810 s & BOOST_SERIALIZATION_NVP(p_e_winvers);
6811 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
6812 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_size);
6813 s & BOOST_SERIALIZATION_NVP(p_e_sectab_rfo);
6814 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
6815 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
6816 s & BOOST_SERIALIZATION_NVP(p_e_modreftab_rfo);
6817 s & BOOST_SERIALIZATION_NVP(p_e_importnametab_rfo);
6818 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
6819 s & BOOST_SERIALIZATION_NVP(p_e_fastload_sector);
6820 s & BOOST_SERIALIZATION_NVP(p_e_fastload_nsectors);
6821 s & BOOST_SERIALIZATION_NVP(p_dos2Header);
6822 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
6823 s & BOOST_SERIALIZATION_NVP(p_residentNameTable);
6824 s & BOOST_SERIALIZATION_NVP(p_nonresidentNameTable);
6825 s & BOOST_SERIALIZATION_NVP(p_moduleTable);
6826 s & BOOST_SERIALIZATION_NVP(p_entryTable);
6827 debugSerializationEnd("SgAsmNEFileHeader");
6828 }
6829#endif // ROSE_ENABLE_BOOST_SERIALIZATION
6831 // Local types
6833public:
6834#ifdef _MSC_VER
6835# pragma pack (1)
6836#endif
6837 /* File format of an NE File Header. All fields are little endian.
6838 *
6839 * NOTES
6840 *
6841 * e_sssp: The value specified in SS is an index (1-origin) into the segment table. If SS addresses the automatic data segment
6842 * and SP is zero then SP is set to the address obtained by adding the size of the automatic data segment to the size
6843 * of the stack. */
6845 unsigned char e_magic[2]; /* 0x00 magic number "NE" */
6846 unsigned char e_linker_major; /* 0x02 linker major version number */
6847 unsigned char e_linker_minor; /* 0x03 linker minor version number */
6848 uint16_t e_entrytab_rfo; /* 0x04 entry table offset relative to start of header */
6849 uint16_t e_entrytab_size; /* 0x06 size of entry table in bytes */
6850 uint32_t e_checksum; /* 0x08 32-bit CRC of entire file (this word is taken a zero during the calculation) */
6851 uint16_t e_flags1; /* 0x0c file-level bit flags (see HeaderFlags1) */
6852 uint16_t e_autodata_sn; /* 0x0e auto data section number if (flags & 0x3)==0; else zero */
6853 uint16_t e_bss_size; /* 0x10 num bytes added to data segment for BSS */
6854 uint16_t e_stack_size; /* 0x12 num bytes added to data segment for stack (zero of SS!=DS registers) */
6855 uint32_t e_csip; /* 0x14 section number:offset of CS:IP */
6856 uint32_t e_sssp; /* 0x18 section number:offset of SS:SP (see note 1 above) */
6857 uint16_t e_nsections; /* 0x1c number of entries in the section table */
6858 uint16_t e_nmodrefs; /* 0x1e number of entries in the module reference table */
6859 uint16_t e_nnonresnames; /* 0x20 number of entries in the non-resident name table */
6860 uint16_t e_sectab_rfo; /* 0x22 offset of section table relative to start of header */
6861 uint16_t e_rsrctab_rfo; /* 0x24 offset of resource table relative to start of header */
6862 uint16_t e_resnametab_rfo; /* 0x26 offset of resident name table relative to start of header */
6863 uint16_t e_modreftab_rfo; /* 0x28 offset of module reference table relative to start of header */
6864 uint16_t e_importnametab_rfo; /* 0x2a offset of imported names table relative to start of header */
6865 uint32_t e_nonresnametab_offset; /* 0x2c file offset of non-resident name table */
6866 uint16_t e_nmovable_entries; /* 0x30 number of movable entries in Entry Table */
6867 uint16_t e_sector_align; /* 0x32 sector alignment shift count (log2 of segment sector size) */
6868 uint16_t e_nresources; /* 0x34 number of resource entries */
6869 unsigned char e_exetype; /* 0x36 executable type (2==windows) */
6870 unsigned char e_flags2; /* 0x37 additional flags (see HeaderFlags2) */
6871 uint16_t e_fastload_sector; /* 0x38 sector offset to fast-load area (only for Windows) */
6872 uint16_t e_fastload_nsectors; /* 0x3a size of fast-load area in sectors (only for Windows) */
6873 uint16_t e_res1; /* 0x3c reserved */
6874 uint16_t e_winvers; /* 0x3e expected version number for Windows (only for Windows) */
6875 } /* 0x40 */
6876// DQ (3/7/2013): Adding support to restrict visability to SWIG.
6877#ifndef SWIG
6878#ifndef _MSC_VER
6879 __attribute__((packed))
6880#endif
6881#endif
6882 ;
6883#ifdef _MSC_VER
6884# pragma pack ()
6885#endif
6886
6887 /* Bit flags for the NE header 'e_flags' member.
6888 *
6889 * If HF_LIBRARY (bit 15) is set then the CS:IP registers point to an initialization procedure called with the value in the AX
6890 * register equal to the module handle. The initialization procedure must execute a far return to the caller. The resulting
6891 * value in AX is a status indicator (non-zero for success, zero for failure). */
6892 enum HeaderFlags1 {
6893 HF1_RESERVED = 0x57f4, /* Reserved bits */
6894 HF1_NO_DATA = 0x0000, /* (flags&0x03==0) => an exe not containing a data segment */
6895 HF1_SINGLE_DATA = 0x0001, /* Executable contains one data segment; set if file is a DLL */
6896 HF1_MULTIPLE_DATA = 0x0002, /* Exe with multiple data segments; set if a windows application */
6897 HF1_LOADER_SEGMENT = 0x0800, /* First segment contains code that loads the application */
6898 HF1_FATAL_ERRORS = 0x2000, /* Errors detected at link time; module will not load */
6899 HF1_LIBRARY = 0x8000 /* Module is a library */
6900 };
6901
6902 /* Bit flags for the NE header 'e_flags2' member. */
6903 enum HeaderFlags2 {
6904 HF2_RESERVED = 0xf1, /* Reserved bits */
6905 HF2_PROTECTED_MODE = 0x02, /* Windows 2.x application that runs in 3.x protected mode */
6906 HF2_PFONTS = 0x04, /* Windows 2.x application that supports proportional fonts */
6907 HF2_FASTLOAD = 0x08 /* Executable contains a fast-load area */
6908 };
6909
6911 // Properties
6913public:
6914public:
6915 unsigned const& get_e_linker_major() const;
6916 void set_e_linker_major(unsigned const&);
6917
6918public:
6919 unsigned const& get_e_linker_minor() const;
6920 void set_e_linker_minor(unsigned const&);
6921
6922public:
6923 unsigned const& get_e_checksum() const;
6924 void set_e_checksum(unsigned const&);
6925
6926public:
6927 unsigned const& get_e_flags1() const;
6928 void set_e_flags1(unsigned const&);
6929
6930public:
6931 unsigned const& get_e_autodata_sn() const;
6932 void set_e_autodata_sn(unsigned const&);
6933
6934public:
6935 unsigned const& get_e_bss_size() const;
6936 void set_e_bss_size(unsigned const&);
6937
6938public:
6939 unsigned const& get_e_stack_size() const;
6940 void set_e_stack_size(unsigned const&);
6941
6942public:
6943 unsigned const& get_e_csip() const;
6944 void set_e_csip(unsigned const&);
6945
6946public:
6947 unsigned const& get_e_sssp() const;
6948 void set_e_sssp(unsigned const&);
6949
6950public:
6951 unsigned const& get_e_nsections() const;
6952 void set_e_nsections(unsigned const&);
6953
6954public:
6955 unsigned const& get_e_nmodrefs() const;
6956 void set_e_nmodrefs(unsigned const&);
6957
6958public:
6959 unsigned const& get_e_nnonresnames() const;
6960 void set_e_nnonresnames(unsigned const&);
6961
6962public:
6963 unsigned const& get_e_nmovable_entries() const;
6964 void set_e_nmovable_entries(unsigned const&);
6965
6966public:
6967 unsigned const& get_e_sector_align() const;
6968 void set_e_sector_align(unsigned const&);
6969
6970public:
6971 unsigned const& get_e_nresources() const;
6972 void set_e_nresources(unsigned const&);
6973
6974public:
6975 unsigned const& get_e_exetype() const;
6976 void set_e_exetype(unsigned const&);
6977
6978public:
6979 unsigned const& get_e_flags2() const;
6980 void set_e_flags2(unsigned const&);
6981
6982public:
6983 unsigned const& get_e_res1() const;
6984 void set_e_res1(unsigned const&);
6985
6986public:
6987 unsigned const& get_e_winvers() const;
6988 void set_e_winvers(unsigned const&);
6989
6990public:
6991 Rose::BinaryAnalysis::Address const& get_e_entrytab_rfo() const;
6992 void set_e_entrytab_rfo(Rose::BinaryAnalysis::Address const&);
6993
6994public:
6995 Rose::BinaryAnalysis::Address const& get_e_entrytab_size() const;
6996 void set_e_entrytab_size(Rose::BinaryAnalysis::Address const&);
6997
6998public:
6999 Rose::BinaryAnalysis::Address const& get_e_sectab_rfo() const;
7000 void set_e_sectab_rfo(Rose::BinaryAnalysis::Address const&);
7001
7002public:
7003 Rose::BinaryAnalysis::Address const& get_e_rsrctab_rfo() const;
7004 void set_e_rsrctab_rfo(Rose::BinaryAnalysis::Address const&);
7005
7006public:
7007 Rose::BinaryAnalysis::Address const& get_e_resnametab_rfo() const;
7008 void set_e_resnametab_rfo(Rose::BinaryAnalysis::Address const&);
7009
7010public:
7011 Rose::BinaryAnalysis::Address const& get_e_modreftab_rfo() const;
7012 void set_e_modreftab_rfo(Rose::BinaryAnalysis::Address const&);
7013
7014public:
7015 Rose::BinaryAnalysis::Address const& get_e_importnametab_rfo() const;
7016 void set_e_importnametab_rfo(Rose::BinaryAnalysis::Address const&);
7017
7018public:
7019 Rose::BinaryAnalysis::Address const& get_e_nonresnametab_offset() const;
7020 void set_e_nonresnametab_offset(Rose::BinaryAnalysis::Address const&);
7021
7022public:
7023 Rose::BinaryAnalysis::Address const& get_e_fastload_sector() const;
7024 void set_e_fastload_sector(Rose::BinaryAnalysis::Address const&);
7025
7026public:
7027 Rose::BinaryAnalysis::Address const& get_e_fastload_nsectors() const;
7028 void set_e_fastload_nsectors(Rose::BinaryAnalysis::Address const&);
7029
7030public:
7031 SgAsmDOSExtendedHeader* const& get_dos2Header() const;
7032 void set_dos2Header(SgAsmDOSExtendedHeader* const&);
7033
7034public:
7035 SgAsmNESectionTable* const& get_sectionTable() const;
7036 void set_sectionTable(SgAsmNESectionTable* const&);
7037
7038public:
7039 SgAsmNENameTable* const& get_residentNameTable() const;
7040 void set_residentNameTable(SgAsmNENameTable* const&);
7041
7042public:
7043 SgAsmNENameTable* const& get_nonresidentNameTable() const;
7044 void set_nonresidentNameTable(SgAsmNENameTable* const&);
7045
7046public:
7047 SgAsmNEModuleTable* const& get_moduleTable() const;
7048 void set_moduleTable(SgAsmNEModuleTable* const&);
7049
7050public:
7051 SgAsmNEEntryTable* const& get_entryTable() const;
7052 void set_entryTable(SgAsmNEEntryTable* const&);
7054 // Functions
7056public:
7058
7059 static bool isNe (SgAsmGenericFile*);
7061 virtual void unparse(std::ostream&) const override;
7062 virtual const char *formatName() const override;
7063 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7064
7065private:
7066 void *encode(SgAsmNEFileHeader::NEFileHeader_disk*) const;
7067
7069 // Deprecated 2023-11
7071public:
7072 SgAsmDOSExtendedHeader* get_dos2_header() const ROSE_DEPRECATED("use get_dos2Header");
7073 void set_dos2_header(SgAsmDOSExtendedHeader*) ROSE_DEPRECATED("use set_dos2Header");
7074 SgAsmNESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
7075 void set_section_table(SgAsmNESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
7076 SgAsmNENameTable* get_resname_table() const ROSE_DEPRECATED("use get_residentNameTable");
7077 void set_resname_table(SgAsmNENameTable*) ROSE_DEPRECATED("use set_residentNameTable");
7078 SgAsmNENameTable* get_nonresname_table() const ROSE_DEPRECATED("use get_nonresidentNameTable");
7079 void set_nonresname_table(SgAsmNENameTable*) ROSE_DEPRECATED("use set_nonresidentNameTable");
7080 SgAsmNEModuleTable* get_module_table() const ROSE_DEPRECATED("use get_moduleTable");
7081 void set_module_table(SgAsmNEModuleTable*) ROSE_DEPRECATED("use set_moduleTable");
7082 SgAsmNEEntryTable* get_entry_table() const ROSE_DEPRECATED("use get_entryTable");
7083 void set_entry_table(SgAsmNEEntryTable*) ROSE_DEPRECATED("use set_entryTable");
7084 static bool is_NE (SgAsmGenericFile*) ROSE_DEPRECATED("use isNe");
7085 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
7086public:
7089
7090public:
7093
7094protected:
7102#endif // SgAsmNEFileHeader_OTHERS
7103#ifdef DOCUMENTATION
7104};
7105#endif // DOCUMENTATION
7106
7107
7109// SgAsmNEEntryTable -- MACHINE GENERATED; DO NOT MODIFY --
7111
7112DECLARE_LEAF_CLASS(AsmNEEntryTable);
7113IS_SERIALIZABLE(AsmNEEntryTable);
7114
7115#ifndef DOCUMENTATION
7116AsmNEEntryTable.useSmallHeader(true);
7117#endif // !DOCUMENTATION
7118
7119DECLARE_HEADERS(AsmNEEntryTable);
7120#if defined(SgAsmNEEntryTable_HEADERS) || defined(DOCUMENTATION)
7121#include <Rose/BinaryAnalysis/Address.h>
7122#endif // SgAsmNEEntryTable_HEADERS
7123
7124#ifdef DOCUMENTATION
7126#endif // DOCUMENTATION
7127
7128#ifndef DOCUMENTATION
7129 AsmNEEntryTable.setDataPrototype(
7130 "SgSizeTList", "bundle_sizes", "",
7131 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7132#endif // !DOCUMENTATION
7133
7134#ifndef DOCUMENTATION
7135 AsmNEEntryTable.setDataPrototype(
7136 "SgAsmNEEntryPointPtrList", "entries", "",
7137 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7138#endif // !DOCUMENTATION
7139
7140 DECLARE_OTHERS(AsmNEEntryTable);
7141#if defined(SgAsmNEEntryTable_OTHERS) || defined(DOCUMENTATION)
7142
7143 //----------------------- Boost serialization for SgAsmNEEntryTable -----------------------
7144#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7145private:
7146 friend class boost::serialization::access;
7147
7148 template<class S>
7149 void serialize(S &s, const unsigned /*version*/) {
7150 debugSerializationBegin("SgAsmNEEntryTable");
7151 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7152 s & BOOST_SERIALIZATION_NVP(p_bundle_sizes);
7153 s & BOOST_SERIALIZATION_NVP(p_entries);
7154 debugSerializationEnd("SgAsmNEEntryTable");
7155 }
7156#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7157public:
7158public:
7159 SgSizeTList const& get_bundle_sizes() const;
7160 void set_bundle_sizes(SgSizeTList const&);
7161
7162public:
7163 SgAsmNEEntryPointPtrList const& get_entries() const;
7164 SgAsmNEEntryPointPtrList& get_entries();
7165 void set_entries(SgAsmNEEntryPointPtrList const&);
7166public:
7168 void populate_entries();
7169 virtual void unparse(std::ostream&) const override;
7170 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7171public:
7174
7175public:
7178
7179protected:
7187#endif // SgAsmNEEntryTable_OTHERS
7188#ifdef DOCUMENTATION
7189};
7190#endif // DOCUMENTATION
7191
7192
7194// SgAsmNEEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
7196
7197DECLARE_LEAF_CLASS(AsmNEEntryPoint);
7198IS_SERIALIZABLE(AsmNEEntryPoint);
7199
7200#ifndef DOCUMENTATION
7201AsmNEEntryPoint.useSmallHeader(true);
7202#endif // !DOCUMENTATION
7203
7204#ifdef DOCUMENTATION
7206#endif // DOCUMENTATION
7207
7208#ifndef DOCUMENTATION
7209 AsmNEEntryPoint.setDataPrototype(
7210 "SgAsmNEEntryPoint::NEEntryFlags", "flags", "= SgAsmNEEntryPoint::EF_ZERO",
7211 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7212#endif // !DOCUMENTATION
7213
7214#ifndef DOCUMENTATION
7215 AsmNEEntryPoint.setDataPrototype(
7216 "unsigned", "int3f", "= 0",
7217 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7218#endif // !DOCUMENTATION
7219
7220#ifndef DOCUMENTATION
7221 AsmNEEntryPoint.setDataPrototype(
7222 "unsigned", "sectionIndex", "= 0",
7223 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7224#endif // !DOCUMENTATION
7225
7226#ifndef DOCUMENTATION
7227 AsmNEEntryPoint.setDataPrototype(
7228 "unsigned", "sectionOffset", "= 0",
7229 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7230#endif // !DOCUMENTATION
7231
7232 DECLARE_OTHERS(AsmNEEntryPoint);
7233#if defined(SgAsmNEEntryPoint_OTHERS) || defined(DOCUMENTATION)
7234
7235 //----------------------- Boost serialization for SgAsmNEEntryPoint -----------------------
7236#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7237private:
7238 friend class boost::serialization::access;
7239
7240 template<class S>
7241 void serialize(S &s, const unsigned /*version*/) {
7242 debugSerializationBegin("SgAsmNEEntryPoint");
7243 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
7244 s & BOOST_SERIALIZATION_NVP(p_flags);
7245 s & BOOST_SERIALIZATION_NVP(p_int3f);
7246 s & BOOST_SERIALIZATION_NVP(p_sectionIndex);
7247 s & BOOST_SERIALIZATION_NVP(p_sectionOffset);
7248 debugSerializationEnd("SgAsmNEEntryPoint");
7249 }
7250#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7252 // Local types
7254public:
7255 enum NEEntryFlags {
7256 EF_ZERO = 0x00, /* No flags set */
7257 EF_RESERVED = 0xfc, /* Reserved bits */
7258 EF_EXPORTED = 0x01, /* Exported */
7259 EF_GLOBAL = 0x02 /* Uses a global (shared) data section */
7260 };
7261
7263 // Properties
7265public:
7266public:
7267 SgAsmNEEntryPoint::NEEntryFlags const& get_flags() const;
7268 void set_flags(SgAsmNEEntryPoint::NEEntryFlags const&);
7269
7270public:
7271 unsigned const& get_int3f() const;
7272 void set_int3f(unsigned const&);
7273
7274public:
7275 unsigned const& get_sectionIndex() const;
7276 void set_sectionIndex(unsigned const&);
7277
7278public:
7279 unsigned const& get_sectionOffset() const;
7280 void set_sectionOffset(unsigned const&);
7282 // Functions
7284public:
7285 SgAsmNEEntryPoint(SgAsmNEEntryPoint::NEEntryFlags flags, unsigned int3f, unsigned s_idx, unsigned s_off);
7286 void dump(FILE*, const char *prefix, ssize_t idx) const;
7287
7289 // Deprecated 2023-11
7291public:
7292 unsigned get_section_idx() const ROSE_DEPRECATED("use get_sectionIndex");
7293 void set_section_idx(unsigned) ROSE_DEPRECATED("use set_sectionIndex");
7294 unsigned get_section_offset() const ROSE_DEPRECATED("use get_sectionOffset");
7295 void set_section_offset(unsigned) ROSE_DEPRECATED("use set_sectionOffset");
7296public:
7299
7300public:
7303
7304protected:
7312#endif // SgAsmNEEntryPoint_OTHERS
7313#ifdef DOCUMENTATION
7314};
7315#endif // DOCUMENTATION
7316
7317
7319// SgAsmMipsInstruction -- MACHINE GENERATED; DO NOT MODIFY --
7321
7322DECLARE_LEAF_CLASS(AsmMipsInstruction);
7323IS_SERIALIZABLE(AsmMipsInstruction);
7324
7325#ifndef DOCUMENTATION
7326AsmMipsInstruction.useSmallHeader(true);
7327#endif // !DOCUMENTATION
7328
7329DECLARE_HEADERS(AsmMipsInstruction);
7330#if defined(SgAsmMipsInstruction_HEADERS) || defined(DOCUMENTATION)
7331#include <Rose/BinaryAnalysis/InstructionEnumsMips.h>
7332#endif // SgAsmMipsInstruction_HEADERS
7333
7334#ifdef DOCUMENTATION
7337#endif // DOCUMENTATION
7338
7339#ifndef DOCUMENTATION
7340 AsmMipsInstruction.setDataPrototype(
7341 "Rose::BinaryAnalysis::MipsInstructionKind", "kind", "= Rose::BinaryAnalysis::mips_unknown_instruction",
7342 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7343#endif // !DOCUMENTATION
7344
7345 DECLARE_OTHERS(AsmMipsInstruction);
7346#if defined(SgAsmMipsInstruction_OTHERS) || defined(DOCUMENTATION)
7347
7348 //----------------------- Boost serialization for SgAsmMipsInstruction -----------------------
7349#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7350private:
7351 friend class boost::serialization::access;
7352
7353 template<class S>
7354 void serialize(S &s, const unsigned /*version*/) {
7355 debugSerializationBegin("SgAsmMipsInstruction");
7356 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
7357 s & BOOST_SERIALIZATION_NVP(p_kind);
7358 debugSerializationEnd("SgAsmMipsInstruction");
7359 }
7360#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7361public:
7362public:
7369 Rose::BinaryAnalysis::MipsInstructionKind const& get_kind() const;
7370 void set_kind(Rose::BinaryAnalysis::MipsInstructionKind const&);
7372public:
7373 // Overrides are documented in the base class
7374 virtual unsigned get_anyKind() const override;
7375public:
7378
7379public:
7382
7383public:
7386 uint8_t const& architectureId,
7387 Rose::BinaryAnalysis::MipsInstructionKind const& kind);
7388
7389protected:
7397#endif // SgAsmMipsInstruction_OTHERS
7398#ifdef DOCUMENTATION
7399};
7400#endif // DOCUMENTATION
7401
7402
7404// SgAsmMemoryReferenceExpression -- MACHINE GENERATED; DO NOT MODIFY --
7406
7407DECLARE_LEAF_CLASS(AsmMemoryReferenceExpression);
7408IS_SERIALIZABLE(AsmMemoryReferenceExpression);
7409
7410#ifndef DOCUMENTATION
7411AsmMemoryReferenceExpression.useSmallHeader(true);
7412#endif // !DOCUMENTATION
7413
7414#ifdef DOCUMENTATION
7417#endif // DOCUMENTATION
7418
7419#ifndef DOCUMENTATION
7420 AsmMemoryReferenceExpression.setDataPrototype(
7421 "SgAsmExpression*", "address", "= nullptr",
7422 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7423#endif // !DOCUMENTATION
7424
7425#ifndef DOCUMENTATION
7426 AsmMemoryReferenceExpression.setDataPrototype(
7427 "SgAsmExpression*", "segment", "= nullptr",
7428 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7429#endif // !DOCUMENTATION
7430
7431 DECLARE_OTHERS(AsmMemoryReferenceExpression);
7432#if defined(SgAsmMemoryReferenceExpression_OTHERS) || defined(DOCUMENTATION)
7433
7434 //----------------------- Boost serialization for SgAsmMemoryReferenceExpression -----------------------
7435#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7436private:
7437 friend class boost::serialization::access;
7438
7439 template<class S>
7440 void serialize(S &s, const unsigned /*version*/) {
7441 debugSerializationBegin("SgAsmMemoryReferenceExpression");
7442 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
7443 s & BOOST_SERIALIZATION_NVP(p_address);
7444 s & BOOST_SERIALIZATION_NVP(p_segment);
7445 debugSerializationEnd("SgAsmMemoryReferenceExpression");
7446 }
7447#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7448public:
7449public:
7461public:
7473public:
7476
7477public:
7480
7481public:
7484 SgAsmExpression* const& segment);
7485
7486protected:
7494#endif // SgAsmMemoryReferenceExpression_OTHERS
7495#ifdef DOCUMENTATION
7496};
7497#endif // DOCUMENTATION
7498
7499
7501// SgAsmM68kInstruction -- MACHINE GENERATED; DO NOT MODIFY --
7503
7504DECLARE_LEAF_CLASS(AsmM68kInstruction);
7505IS_SERIALIZABLE(AsmM68kInstruction);
7506
7507#ifndef DOCUMENTATION
7508AsmM68kInstruction.useSmallHeader(true);
7509#endif // !DOCUMENTATION
7510
7511DECLARE_HEADERS(AsmM68kInstruction);
7512#if defined(SgAsmM68kInstruction_HEADERS) || defined(DOCUMENTATION)
7513#include <Rose/BinaryAnalysis/InstructionEnumsM68k.h>
7514#endif // SgAsmM68kInstruction_HEADERS
7515
7516#ifdef DOCUMENTATION
7518#endif // DOCUMENTATION
7519
7520#ifndef DOCUMENTATION
7521 AsmM68kInstruction.setDataPrototype(
7522 "Rose::BinaryAnalysis::M68kInstructionKind", "kind", "= Rose::BinaryAnalysis::m68k_unknown_instruction",
7523 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7524#endif // !DOCUMENTATION
7525
7526#ifndef DOCUMENTATION
7527 AsmM68kInstruction.setDataPrototype(
7528 "Rose::BinaryAnalysis::M68kDataFormat", "dataFormat", "= Rose::BinaryAnalysis::m68k_fmt_unknown",
7529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7530#endif // !DOCUMENTATION
7531
7532 DECLARE_OTHERS(AsmM68kInstruction);
7533#if defined(SgAsmM68kInstruction_OTHERS) || defined(DOCUMENTATION)
7534
7535 //----------------------- Boost serialization for SgAsmM68kInstruction -----------------------
7536#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7537private:
7538 friend class boost::serialization::access;
7539
7540 template<class S>
7541 void serialize(S &s, const unsigned /*version*/) {
7542 debugSerializationBegin("SgAsmM68kInstruction");
7543 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
7544 s & BOOST_SERIALIZATION_NVP(p_kind);
7545 s & BOOST_SERIALIZATION_NVP(p_dataFormat);
7546 debugSerializationEnd("SgAsmM68kInstruction");
7547 }
7548#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7549public:
7550public:
7557 Rose::BinaryAnalysis::M68kInstructionKind const& get_kind() const;
7558 void set_kind(Rose::BinaryAnalysis::M68kInstructionKind const&);
7561public:
7565 Rose::BinaryAnalysis::M68kDataFormat const& get_dataFormat() const;
7566 void set_dataFormat(Rose::BinaryAnalysis::M68kDataFormat const&);
7568public:
7569 // Overrides are documented in the base class
7570 virtual unsigned get_anyKind() const override;
7571public:
7574
7575public:
7578
7579public:
7582 uint8_t const& architectureId,
7583 Rose::BinaryAnalysis::M68kInstructionKind const& kind,
7584 Rose::BinaryAnalysis::M68kDataFormat const& dataFormat);
7585
7586protected:
7594#endif // SgAsmM68kInstruction_OTHERS
7595#ifdef DOCUMENTATION
7596};
7597#endif // DOCUMENTATION
7598
7599
7601// SgAsmLESectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
7603
7604DECLARE_LEAF_CLASS(AsmLESectionTableEntry);
7605IS_SERIALIZABLE(AsmLESectionTableEntry);
7606
7607#ifndef DOCUMENTATION
7608AsmLESectionTableEntry.useSmallHeader(true);
7609#endif // !DOCUMENTATION
7610
7611DECLARE_HEADERS(AsmLESectionTableEntry);
7612#if defined(SgAsmLESectionTableEntry_HEADERS) || defined(DOCUMENTATION)
7613#include <Rose/BinaryAnalysis/Address.h>
7614#include <Rose/BinaryAnalysis/ByteOrder.h>
7615#endif // SgAsmLESectionTableEntry_HEADERS
7616
7617#ifdef DOCUMENTATION
7619#endif // DOCUMENTATION
7620
7621#ifndef DOCUMENTATION
7622 AsmLESectionTableEntry.setDataPrototype(
7623 "unsigned", "flags", "= 0",
7624 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7625#endif // !DOCUMENTATION
7626
7627#ifndef DOCUMENTATION
7628 AsmLESectionTableEntry.setDataPrototype(
7629 "unsigned", "pageMapIndex", "= 0",
7630 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7631#endif // !DOCUMENTATION
7632
7633#ifndef DOCUMENTATION
7634 AsmLESectionTableEntry.setDataPrototype(
7635 "unsigned", "pageMapNEntries", "= 0",
7636 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7637#endif // !DOCUMENTATION
7638
7639#ifndef DOCUMENTATION
7640 AsmLESectionTableEntry.setDataPrototype(
7641 "unsigned", "res1", "= 0",
7642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7643#endif // !DOCUMENTATION
7644
7645#ifndef DOCUMENTATION
7646 AsmLESectionTableEntry.setDataPrototype(
7647 "Rose::BinaryAnalysis::Address", "mappedSize", "= 0",
7648 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7649#endif // !DOCUMENTATION
7650
7651#ifndef DOCUMENTATION
7652 AsmLESectionTableEntry.setDataPrototype(
7653 "Rose::BinaryAnalysis::Address", "baseAddr", "= 0",
7654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
7655#endif // !DOCUMENTATION
7656
7657 DECLARE_OTHERS(AsmLESectionTableEntry);
7658#if defined(SgAsmLESectionTableEntry_OTHERS) || defined(DOCUMENTATION)
7659
7660 //----------------------- Boost serialization for SgAsmLESectionTableEntry -----------------------
7661#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7662private:
7663 friend class boost::serialization::access;
7664
7665 template<class S>
7666 void serialize(S &s, const unsigned /*version*/) {
7667 debugSerializationBegin("SgAsmLESectionTableEntry");
7668 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
7669 s & BOOST_SERIALIZATION_NVP(p_flags);
7670 s & BOOST_SERIALIZATION_NVP(p_pageMapIndex);
7671 s & BOOST_SERIALIZATION_NVP(p_pageMapNEntries);
7672 s & BOOST_SERIALIZATION_NVP(p_res1);
7673 s & BOOST_SERIALIZATION_NVP(p_mappedSize);
7674 s & BOOST_SERIALIZATION_NVP(p_baseAddr);
7675 debugSerializationEnd("SgAsmLESectionTableEntry");
7676 }
7677#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7679 // Local types
7681public:
7682#ifdef _MSC_VER
7683# pragma pack (1)
7684#endif
7685 /* File format of a section table entry. Fields are big- or little-endian depending on file header. */
7687 uint32_t mapped_size; /* 0x00 virtual segment size in bytes */
7688 uint32_t base_addr; /* 0x04 relocation base address */
7689 uint32_t flags; /* 0x08 bit flags, see LESectionFlags */
7690 uint32_t pagemap_index; /* 0x0c */
7691 uint32_t pagemap_nentries; /* 0x10 number of entries in the page map */
7692 uint32_t res1; /* 0x14 reserved */
7693 } /* 0x18 */
7694// DQ (3/7/2013): Adding support to restrict visability to SWIG.
7695#ifndef SWIG
7696#ifndef _MSC_VER
7697 __attribute__((packed))
7698#endif
7699#endif
7700 ;
7701#ifdef _MSC_VER
7702# pragma pack ()
7703#endif
7704
7705 /* SF_BIG_BIT: The "big/default" bit, for data segments, controls the setting of the Big bit in the segment descriptor. (The
7706 * Big bit, or B-bit, determines whether ESP or SP is used as the stack pointer.) For code segments, this bit
7707 * controls the setting of the Default bit in the segment descriptor. (The Default bit, or D-bit, determines
7708 * whether the default word size is 32-bits or 16-bits. It also affects the interpretation of the instruction
7709 * stream.) */
7711 SF_RESERVED = 0xffff0800, /* Reserved bits (FIXME) */
7712
7713 SF_READABLE = 0x00000001,
7714 SF_WRITABLE = 0x00000002,
7715 SF_EXECUTABLE = 0x00000004,
7717 SF_RESOURCE = 0x00000008,
7718 SF_DISCARDABLE = 0x00000010,
7719 SF_SHARED = 0x00000020,
7720 SF_PRELOAD_PAGES = 0x00000040,
7721 SF_INVALID_PAGES = 0x00000080,
7723 SF_TYPE_MASK = 0x00000300, /*NO_STRINGIFY*/
7724 SF_TYPE_NORMAL = 0x00000000,
7725 SF_TYPE_ZERO = 0x00000100,
7726 SF_TYPE_RESIDENT = 0x00000200,
7727 SF_TYPE_RESCONT = 0x00000300,
7729 SF_RES_LONG_LOCK = 0x00000400,
7730 SF_1616_ALIAS = 0x00001000,
7731 SF_BIG_BIT = 0x00002000,
7732 SF_CODE_CONFORM = 0x00004000,
7733 SF_IO_PRIV = 0x00008000
7735
7737 // Properties
7739public:
7740public:
7741 unsigned const& get_flags() const;
7742 void set_flags(unsigned const&);
7743
7744public:
7745 unsigned const& get_pageMapIndex() const;
7746 void set_pageMapIndex(unsigned const&);
7747
7748public:
7749 unsigned const& get_pageMapNEntries() const;
7750 void set_pageMapNEntries(unsigned const&);
7751
7752public:
7753 unsigned const& get_res1() const;
7754 void set_res1(unsigned const&);
7755
7756public:
7757 Rose::BinaryAnalysis::Address const& get_mappedSize() const;
7758 void set_mappedSize(Rose::BinaryAnalysis::Address const&);
7759
7760public:
7761 Rose::BinaryAnalysis::Address const& get_baseAddr() const;
7762 void set_baseAddr(Rose::BinaryAnalysis::Address const&);
7764 // Functions
7766public:
7770 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
7771
7773 // Deprecated 2023-11
7775public:
7776 unsigned get_pagemap_index() const ROSE_DEPRECATED("use get pageMapIndex");
7777 void set_pagemap_index(unsigned) ROSE_DEPRECATED("use set_pageMapIndex");
7778 unsigned get_pagemap_nentries() const ROSE_DEPRECATED("use get_pageMapNEntries");
7779 void set_pagemap_nentries(unsigned) ROSE_DEPRECATED("use set_pageMapNEntries");
7780 Rose::BinaryAnalysis::Address get_mapped_size() const ROSE_DEPRECATED("use get_mappedSize");
7781 void set_mapped_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedSize");
7782 Rose::BinaryAnalysis::Address get_base_addr() const ROSE_DEPRECATED("use get_baseAddr");
7783 void set_base_addr(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_baseAddr");
7784public:
7787
7788public:
7791
7792protected:
7800#endif // SgAsmLESectionTableEntry_OTHERS
7801#ifdef DOCUMENTATION
7802};
7803#endif // DOCUMENTATION
7804
7805
7807// SgAsmLESectionTable -- MACHINE GENERATED; DO NOT MODIFY --
7809
7810DECLARE_LEAF_CLASS(AsmLESectionTable);
7811IS_SERIALIZABLE(AsmLESectionTable);
7812
7813#ifndef DOCUMENTATION
7814AsmLESectionTable.useSmallHeader(true);
7815#endif // !DOCUMENTATION
7816
7817DECLARE_HEADERS(AsmLESectionTable);
7818#if defined(SgAsmLESectionTable_HEADERS) || defined(DOCUMENTATION)
7819#include <Rose/BinaryAnalysis/Address.h>
7820#endif // SgAsmLESectionTable_HEADERS
7821
7822#ifdef DOCUMENTATION
7824#endif // DOCUMENTATION
7825
7826 DECLARE_OTHERS(AsmLESectionTable);
7827#if defined(SgAsmLESectionTable_OTHERS) || defined(DOCUMENTATION)
7828
7829 //----------------------- Boost serialization for SgAsmLESectionTable -----------------------
7830#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7831private:
7832 friend class boost::serialization::access;
7833
7834 template<class S>
7835 void serialize(S &s, const unsigned /*version*/) {
7836 debugSerializationBegin("SgAsmLESectionTable");
7837 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7838 debugSerializationEnd("SgAsmLESectionTable");
7839 }
7840#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7841public:
7843 virtual void unparse(std::ostream&) const override;
7844 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7845public:
7848
7849public:
7852
7853protected:
7861#endif // SgAsmLESectionTable_OTHERS
7862#ifdef DOCUMENTATION
7863};
7864#endif // DOCUMENTATION
7865
7866
7868// SgAsmLESection -- MACHINE GENERATED; DO NOT MODIFY --
7870
7871DECLARE_LEAF_CLASS(AsmLESection);
7872IS_SERIALIZABLE(AsmLESection);
7873
7874#ifndef DOCUMENTATION
7875AsmLESection.useSmallHeader(true);
7876#endif // !DOCUMENTATION
7877
7878DECLARE_HEADERS(AsmLESection);
7879#if defined(SgAsmLESection_HEADERS) || defined(DOCUMENTATION)
7880#ifdef ROSE_SgAsmLESection_IMPL
7881#include <SgAsmLESectionTableEntry.h>
7882#endif
7883#endif // SgAsmLESection_HEADERS
7884
7885#ifdef DOCUMENTATION
7887#endif // DOCUMENTATION
7888
7889#ifndef DOCUMENTATION
7890 AsmLESection.setDataPrototype(
7891 "SgAsmLESectionTableEntry*", "sectionTableEntry", "= nullptr",
7892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7893#endif // !DOCUMENTATION
7894
7895 DECLARE_OTHERS(AsmLESection);
7896#if defined(SgAsmLESection_OTHERS) || defined(DOCUMENTATION)
7897
7898 //----------------------- Boost serialization for SgAsmLESection -----------------------
7899#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7900private:
7901 friend class boost::serialization::access;
7902
7903 template<class S>
7904 void serialize(S &s, const unsigned /*version*/) {
7905 debugSerializationBegin("SgAsmLESection");
7906 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7907 s & BOOST_SERIALIZATION_NVP(p_sectionTableEntry);
7908 debugSerializationEnd("SgAsmLESection");
7909 }
7910#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7911public:
7912public:
7913 SgAsmLESectionTableEntry* const& get_sectionTableEntry() const;
7914 void set_sectionTableEntry(SgAsmLESectionTableEntry* const&);
7915public:
7917 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7918
7920 // Deprecated 2023-11
7922public:
7923 SgAsmLESectionTableEntry* get_st_entry() const ROSE_DEPRECATED("use get_sectionTableEntry");
7924 void set_st_entry(SgAsmLESectionTableEntry*) ROSE_DEPRECATED("use set_sectionTableEntry");
7925public:
7927 virtual ~SgAsmLESection();
7928
7929public:
7932
7933protected:
7941#endif // SgAsmLESection_OTHERS
7942#ifdef DOCUMENTATION
7943};
7944#endif // DOCUMENTATION
7945
7946
7948// SgAsmLERelocTable -- MACHINE GENERATED; DO NOT MODIFY --
7950
7951DECLARE_LEAF_CLASS(AsmLERelocTable);
7952IS_SERIALIZABLE(AsmLERelocTable);
7953
7954#ifndef DOCUMENTATION
7955AsmLERelocTable.useSmallHeader(true);
7956#endif // !DOCUMENTATION
7957
7958DECLARE_HEADERS(AsmLERelocTable);
7959#if defined(SgAsmLERelocTable_HEADERS) || defined(DOCUMENTATION)
7960#include <Rose/BinaryAnalysis/Address.h>
7961#endif // SgAsmLERelocTable_HEADERS
7962
7963#ifdef DOCUMENTATION
7965#endif // DOCUMENTATION
7966
7967#ifndef DOCUMENTATION
7968 AsmLERelocTable.setDataPrototype(
7969 "SgAsmLERelocEntryPtrList", "entries", "",
7970 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
7971#endif // !DOCUMENTATION
7972
7973 DECLARE_OTHERS(AsmLERelocTable);
7974#if defined(SgAsmLERelocTable_OTHERS) || defined(DOCUMENTATION)
7975
7976 //----------------------- Boost serialization for SgAsmLERelocTable -----------------------
7977#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
7978private:
7979 friend class boost::serialization::access;
7980
7981 template<class S>
7982 void serialize(S &s, const unsigned /*version*/) {
7983 debugSerializationBegin("SgAsmLERelocTable");
7984 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
7985 s & BOOST_SERIALIZATION_NVP(p_entries);
7986 debugSerializationEnd("SgAsmLERelocTable");
7987 }
7988#endif // ROSE_ENABLE_BOOST_SERIALIZATION
7989public:
7990public:
7991 SgAsmLERelocEntryPtrList const& get_entries() const;
7992 SgAsmLERelocEntryPtrList& get_entries();
7993 void set_entries(SgAsmLERelocEntryPtrList const&);
7994public:
7996 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
7997public:
8000
8001public:
8004
8005protected:
8013#endif // SgAsmLERelocTable_OTHERS
8014#ifdef DOCUMENTATION
8015};
8016#endif // DOCUMENTATION
8017
8018
8020// SgAsmLEPageTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
8022
8023DECLARE_LEAF_CLASS(AsmLEPageTableEntry);
8024IS_SERIALIZABLE(AsmLEPageTableEntry);
8025
8026#ifndef DOCUMENTATION
8027AsmLEPageTableEntry.useSmallHeader(true);
8028#endif // !DOCUMENTATION
8029
8030DECLARE_HEADERS(AsmLEPageTableEntry);
8031#if defined(SgAsmLEPageTableEntry_HEADERS) || defined(DOCUMENTATION)
8032#include <Rose/BinaryAnalysis/ByteOrder.h>
8033#endif // SgAsmLEPageTableEntry_HEADERS
8034
8035#ifdef DOCUMENTATION
8037#endif // DOCUMENTATION
8038
8039#ifndef DOCUMENTATION
8040 AsmLEPageTableEntry.setDataPrototype(
8041 "unsigned", "pageno", "= 0",
8042 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8043#endif // !DOCUMENTATION
8044
8045#ifndef DOCUMENTATION
8046 AsmLEPageTableEntry.setDataPrototype(
8047 "unsigned", "flags", "= 0",
8048 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8049#endif // !DOCUMENTATION
8050
8051 DECLARE_OTHERS(AsmLEPageTableEntry);
8052#if defined(SgAsmLEPageTableEntry_OTHERS) || defined(DOCUMENTATION)
8053
8054 //----------------------- Boost serialization for SgAsmLEPageTableEntry -----------------------
8055#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8056private:
8057 friend class boost::serialization::access;
8058
8059 template<class S>
8060 void serialize(S &s, const unsigned /*version*/) {
8061 debugSerializationBegin("SgAsmLEPageTableEntry");
8062 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
8063 s & BOOST_SERIALIZATION_NVP(p_pageno);
8064 s & BOOST_SERIALIZATION_NVP(p_flags);
8065 debugSerializationEnd("SgAsmLEPageTableEntry");
8066 }
8067#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8069 // Local types
8071public:
8072 /* The object page table provides information about a logical page in a section. A logical page may be an enumerated page, a
8073 * pseudo page, or an iterated page. The page table allows for efficient access to a page when a page fault occurs, while still
8074 * allowing the physical page to be located in the preload page, demand load page, or iterated data page sections of the
8075 * executable file. Entries in the page table use 1-origin indices. This table is parallel with the Fixup Page Table (they are
8076 * both indexed by the logical page number). */
8077
8078#ifdef _MSC_VER
8079# pragma pack (1)
8080#endif
8081 /* File format for a page table entry */
8083 uint16_t pageno_hi;
8084 unsigned char pageno_lo;
8085 unsigned char flags;
8086 }
8087// DQ (3/7/2013): Adding support to restrict visability to SWIG.
8088#ifndef SWIG
8089#ifndef _MSC_VER
8090 __attribute__((packed))
8091#endif
8092#endif
8093 ;
8094#ifdef _MSC_VER
8095# pragma pack ()
8096#endif
8097
8099 // Properties
8101public:
8102public:
8103 unsigned const& get_pageno() const;
8104 void set_pageno(unsigned const&);
8105
8106public:
8107 unsigned const& get_flags() const;
8108 void set_flags(unsigned const&);
8110 // Functions
8112public:
8115 void dump(FILE*, const char *prefix, ssize_t idx) const;
8117public:
8120
8121public:
8124
8125protected:
8133#endif // SgAsmLEPageTableEntry_OTHERS
8134#ifdef DOCUMENTATION
8135};
8136#endif // DOCUMENTATION
8137
8138
8140// SgAsmLEPageTable -- MACHINE GENERATED; DO NOT MODIFY --
8142
8143DECLARE_LEAF_CLASS(AsmLEPageTable);
8144IS_SERIALIZABLE(AsmLEPageTable);
8145
8146#ifndef DOCUMENTATION
8147AsmLEPageTable.useSmallHeader(true);
8148#endif // !DOCUMENTATION
8149
8150DECLARE_HEADERS(AsmLEPageTable);
8151#if defined(SgAsmLEPageTable_HEADERS) || defined(DOCUMENTATION)
8152#include <Rose/BinaryAnalysis/Address.h>
8153#endif // SgAsmLEPageTable_HEADERS
8154
8155#ifdef DOCUMENTATION
8157#endif // DOCUMENTATION
8158
8159#ifndef DOCUMENTATION
8160 AsmLEPageTable.setDataPrototype(
8161 "SgAsmLEPageTableEntryPtrList", "entries", "",
8162 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8163#endif // !DOCUMENTATION
8164
8165 DECLARE_OTHERS(AsmLEPageTable);
8166#if defined(SgAsmLEPageTable_OTHERS) || defined(DOCUMENTATION)
8167
8168 //----------------------- Boost serialization for SgAsmLEPageTable -----------------------
8169#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8170private:
8171 friend class boost::serialization::access;
8172
8173 template<class S>
8174 void serialize(S &s, const unsigned /*version*/) {
8175 debugSerializationBegin("SgAsmLEPageTable");
8176 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
8177 s & BOOST_SERIALIZATION_NVP(p_entries);
8178 debugSerializationEnd("SgAsmLEPageTable");
8179 }
8180#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8181public:
8182public:
8183 SgAsmLEPageTableEntryPtrList const& get_entries() const;
8184 SgAsmLEPageTableEntryPtrList& get_entries();
8185 void set_entries(SgAsmLEPageTableEntryPtrList const&);
8186public:
8188 virtual void unparse(std::ostream&) const override;
8189 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
8190 SgAsmLEPageTableEntry *get_page(size_t idx);
8191public:
8194
8195public:
8198
8199protected:
8207#endif // SgAsmLEPageTable_OTHERS
8208#ifdef DOCUMENTATION
8209};
8210#endif // DOCUMENTATION
8211
8212
8214// SgAsmLENameTable -- MACHINE GENERATED; DO NOT MODIFY --
8216
8217DECLARE_LEAF_CLASS(AsmLENameTable);
8218IS_SERIALIZABLE(AsmLENameTable);
8219
8220#ifndef DOCUMENTATION
8221AsmLENameTable.useSmallHeader(true);
8222#endif // !DOCUMENTATION
8223
8224DECLARE_HEADERS(AsmLENameTable);
8225#if defined(SgAsmLENameTable_HEADERS) || defined(DOCUMENTATION)
8226#include <Rose/BinaryAnalysis/Address.h>
8227#endif // SgAsmLENameTable_HEADERS
8228
8229#ifdef DOCUMENTATION
8231#endif // DOCUMENTATION
8232
8233#ifndef DOCUMENTATION
8234 AsmLENameTable.setDataPrototype(
8235 "SgStringList", "names", "",
8236 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8237#endif // !DOCUMENTATION
8238
8239#ifndef DOCUMENTATION
8240 AsmLENameTable.setDataPrototype(
8241 "SgUnsignedList", "ordinals", "",
8242 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8243#endif // !DOCUMENTATION
8244
8245 DECLARE_OTHERS(AsmLENameTable);
8246#if defined(SgAsmLENameTable_OTHERS) || defined(DOCUMENTATION)
8247
8248 //----------------------- Boost serialization for SgAsmLENameTable -----------------------
8249#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8250private:
8251 friend class boost::serialization::access;
8252
8253 template<class S>
8254 void serialize(S &s, const unsigned /*version*/) {
8255 debugSerializationBegin("SgAsmLENameTable");
8256 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
8257 s & BOOST_SERIALIZATION_NVP(p_names);
8258 s & BOOST_SERIALIZATION_NVP(p_ordinals);
8259 debugSerializationEnd("SgAsmLENameTable");
8260 }
8261#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8262public:
8263public:
8264 SgStringList const& get_names() const;
8265 void set_names(SgStringList const&);
8266
8267public:
8268 SgUnsignedList const& get_ordinals() const;
8269 void set_ordinals(SgUnsignedList const&);
8270public:
8271 /* This table contains a module name followed by the list of exported function names. Each name is associated with an "ordinal"
8272 * which serves as an index into the Entry Table. The ordinal for the first string (module name) is meaningless and should be
8273 * zero. In the non-resident name table the first entry is a module description and the functions are not always resident in
8274 * system memory (they are discardable). */
8276 virtual void unparse(std::ostream&) const override;
8277 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
8278public:
8281
8282public:
8285
8286protected:
8294#endif // SgAsmLENameTable_OTHERS
8295#ifdef DOCUMENTATION
8296};
8297#endif // DOCUMENTATION
8298
8299
8301// SgAsmLEFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
8303
8304DECLARE_LEAF_CLASS(AsmLEFileHeader);
8305IS_SERIALIZABLE(AsmLEFileHeader);
8306
8307#ifndef DOCUMENTATION
8308AsmLEFileHeader.useSmallHeader(true);
8309#endif // !DOCUMENTATION
8310
8311DECLARE_HEADERS(AsmLEFileHeader);
8312#if defined(SgAsmLEFileHeader_HEADERS) || defined(DOCUMENTATION)
8313#include <Rose/BinaryAnalysis/Address.h>
8314#include <Rose/BinaryAnalysis/ByteOrder.h>
8315
8316#ifdef ROSE_SgAsmLEFileHeader_IMPL
8317#include <SgAsmDOSExtendedHeader.h>
8318#include <SgAsmLEEntryTable.h>
8319#include <SgAsmLENameTable.h>
8320#include <SgAsmLEPageTable.h>
8321#include <SgAsmLERelocTable.h>
8322#include <SgAsmLESectionTable.h>
8323#endif
8324#endif // SgAsmLEFileHeader_HEADERS
8325
8326#ifdef DOCUMENTATION
8328#endif // DOCUMENTATION
8329
8330#ifndef DOCUMENTATION
8331 AsmLEFileHeader.setDataPrototype(
8332 "unsigned", "e_byte_order", "= 0",
8333 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8334#endif // !DOCUMENTATION
8335
8336#ifndef DOCUMENTATION
8337 AsmLEFileHeader.setDataPrototype(
8338 "unsigned", "e_word_order", "= 0",
8339 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8340#endif // !DOCUMENTATION
8341
8342#ifndef DOCUMENTATION
8343 AsmLEFileHeader.setDataPrototype(
8344 "unsigned", "e_format_level", "= 0",
8345 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8346#endif // !DOCUMENTATION
8347
8348#ifndef DOCUMENTATION
8349 AsmLEFileHeader.setDataPrototype(
8350 "unsigned", "e_cpu_type", "= 0",
8351 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8352#endif // !DOCUMENTATION
8353
8354#ifndef DOCUMENTATION
8355 AsmLEFileHeader.setDataPrototype(
8356 "unsigned", "e_os_type", "= 0",
8357 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8358#endif // !DOCUMENTATION
8359
8360#ifndef DOCUMENTATION
8361 AsmLEFileHeader.setDataPrototype(
8362 "unsigned", "e_module_version", "= 0",
8363 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8364#endif // !DOCUMENTATION
8365
8366#ifndef DOCUMENTATION
8367 AsmLEFileHeader.setDataPrototype(
8368 "unsigned", "e_flags", "= 0",
8369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8370#endif // !DOCUMENTATION
8371
8372#ifndef DOCUMENTATION
8373 AsmLEFileHeader.setDataPrototype(
8374 "unsigned", "e_eip_section", "= 0",
8375 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8376#endif // !DOCUMENTATION
8377
8378#ifndef DOCUMENTATION
8379 AsmLEFileHeader.setDataPrototype(
8380 "unsigned", "e_esp_section", "= 0",
8381 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8382#endif // !DOCUMENTATION
8383
8384#ifndef DOCUMENTATION
8385 AsmLEFileHeader.setDataPrototype(
8386 "unsigned", "e_last_page_size", "= 0",
8387 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8388#endif // !DOCUMENTATION
8389
8390#ifndef DOCUMENTATION
8391 AsmLEFileHeader.setDataPrototype(
8392 "unsigned", "e_page_offset_shift", "= 0",
8393 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8394#endif // !DOCUMENTATION
8395
8396#ifndef DOCUMENTATION
8397 AsmLEFileHeader.setDataPrototype(
8398 "unsigned", "e_fixup_sect_cksum", "= 0",
8399 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8400#endif // !DOCUMENTATION
8401
8402#ifndef DOCUMENTATION
8403 AsmLEFileHeader.setDataPrototype(
8404 "unsigned", "e_loader_sect_cksum", "= 0",
8405 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8406#endif // !DOCUMENTATION
8407
8408#ifndef DOCUMENTATION
8409 AsmLEFileHeader.setDataPrototype(
8410 "unsigned", "e_secttab_nentries", "= 0",
8411 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8412#endif // !DOCUMENTATION
8413
8414#ifndef DOCUMENTATION
8415 AsmLEFileHeader.setDataPrototype(
8416 "unsigned", "e_rsrctab_nentries", "= 0",
8417 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8418#endif // !DOCUMENTATION
8419
8420#ifndef DOCUMENTATION
8421 AsmLEFileHeader.setDataPrototype(
8422 "unsigned", "e_fmtdirtab_nentries", "= 0",
8423 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8424#endif // !DOCUMENTATION
8425
8426#ifndef DOCUMENTATION
8427 AsmLEFileHeader.setDataPrototype(
8428 "unsigned", "e_import_modtab_nentries", "= 0",
8429 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8430#endif // !DOCUMENTATION
8431
8432#ifndef DOCUMENTATION
8433 AsmLEFileHeader.setDataPrototype(
8434 "unsigned", "e_preload_npages", "= 0",
8435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8436#endif // !DOCUMENTATION
8437
8438#ifndef DOCUMENTATION
8439 AsmLEFileHeader.setDataPrototype(
8440 "unsigned", "e_nonresnametab_size", "= 0",
8441 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8442#endif // !DOCUMENTATION
8443
8444#ifndef DOCUMENTATION
8445 AsmLEFileHeader.setDataPrototype(
8446 "unsigned", "e_nonresnametab_cksum", "= 0",
8447 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8448#endif // !DOCUMENTATION
8449
8450#ifndef DOCUMENTATION
8451 AsmLEFileHeader.setDataPrototype(
8452 "unsigned", "e_auto_ds_section", "= 0",
8453 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8454#endif // !DOCUMENTATION
8455
8456#ifndef DOCUMENTATION
8457 AsmLEFileHeader.setDataPrototype(
8458 "unsigned", "e_debug_info_size", "= 0",
8459 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8460#endif // !DOCUMENTATION
8461
8462#ifndef DOCUMENTATION
8463 AsmLEFileHeader.setDataPrototype(
8464 "unsigned", "e_num_instance_preload", "= 0",
8465 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8466#endif // !DOCUMENTATION
8467
8468#ifndef DOCUMENTATION
8469 AsmLEFileHeader.setDataPrototype(
8470 "unsigned", "e_num_instance_demand", "= 0",
8471 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8472#endif // !DOCUMENTATION
8473
8474#ifndef DOCUMENTATION
8475 AsmLEFileHeader.setDataPrototype(
8476 "unsigned", "e_heap_size", "= 0",
8477 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8478#endif // !DOCUMENTATION
8479
8480#ifndef DOCUMENTATION
8481 AsmLEFileHeader.setDataPrototype(
8482 "Rose::BinaryAnalysis::Address", "e_npages", "= 0",
8483 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8484#endif // !DOCUMENTATION
8485
8486#ifndef DOCUMENTATION
8487 AsmLEFileHeader.setDataPrototype(
8488 "Rose::BinaryAnalysis::Address", "e_eip", "= 0",
8489 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8490#endif // !DOCUMENTATION
8491
8492#ifndef DOCUMENTATION
8493 AsmLEFileHeader.setDataPrototype(
8494 "Rose::BinaryAnalysis::Address", "e_esp", "= 0",
8495 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8496#endif // !DOCUMENTATION
8497
8498#ifndef DOCUMENTATION
8499 AsmLEFileHeader.setDataPrototype(
8500 "Rose::BinaryAnalysis::Address", "e_page_size", "= 0",
8501 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8502#endif // !DOCUMENTATION
8503
8504#ifndef DOCUMENTATION
8505 AsmLEFileHeader.setDataPrototype(
8506 "Rose::BinaryAnalysis::Address", "e_fixup_sect_size", "= 0",
8507 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8508#endif // !DOCUMENTATION
8509
8510#ifndef DOCUMENTATION
8511 AsmLEFileHeader.setDataPrototype(
8512 "Rose::BinaryAnalysis::Address", "e_loader_sect_size", "= 0",
8513 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8514#endif // !DOCUMENTATION
8515
8516#ifndef DOCUMENTATION
8517 AsmLEFileHeader.setDataPrototype(
8518 "Rose::BinaryAnalysis::Address", "e_secttab_rfo", "= 0",
8519 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8520#endif // !DOCUMENTATION
8521
8522#ifndef DOCUMENTATION
8523 AsmLEFileHeader.setDataPrototype(
8524 "Rose::BinaryAnalysis::Address", "e_pagetab_rfo", "= 0",
8525 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8526#endif // !DOCUMENTATION
8527
8528#ifndef DOCUMENTATION
8529 AsmLEFileHeader.setDataPrototype(
8530 "Rose::BinaryAnalysis::Address", "e_iterpages_offset", "= 0",
8531 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8532#endif // !DOCUMENTATION
8533
8534#ifndef DOCUMENTATION
8535 AsmLEFileHeader.setDataPrototype(
8536 "Rose::BinaryAnalysis::Address", "e_rsrctab_rfo", "= 0",
8537 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8538#endif // !DOCUMENTATION
8539
8540#ifndef DOCUMENTATION
8541 AsmLEFileHeader.setDataPrototype(
8542 "Rose::BinaryAnalysis::Address", "e_resnametab_rfo", "= 0",
8543 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8544#endif // !DOCUMENTATION
8545
8546#ifndef DOCUMENTATION
8547 AsmLEFileHeader.setDataPrototype(
8548 "Rose::BinaryAnalysis::Address", "e_entrytab_rfo", "= 0",
8549 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8550#endif // !DOCUMENTATION
8551
8552#ifndef DOCUMENTATION
8553 AsmLEFileHeader.setDataPrototype(
8554 "Rose::BinaryAnalysis::Address", "e_fmtdirtab_rfo", "= 0",
8555 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8556#endif // !DOCUMENTATION
8557
8558#ifndef DOCUMENTATION
8559 AsmLEFileHeader.setDataPrototype(
8560 "Rose::BinaryAnalysis::Address", "e_fixup_pagetab_rfo", "= 0",
8561 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8562#endif // !DOCUMENTATION
8563
8564#ifndef DOCUMENTATION
8565 AsmLEFileHeader.setDataPrototype(
8566 "Rose::BinaryAnalysis::Address", "e_fixup_rectab_rfo", "= 0",
8567 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8568#endif // !DOCUMENTATION
8569
8570#ifndef DOCUMENTATION
8571 AsmLEFileHeader.setDataPrototype(
8572 "Rose::BinaryAnalysis::Address", "e_import_modtab_rfo", "= 0",
8573 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8574#endif // !DOCUMENTATION
8575
8576#ifndef DOCUMENTATION
8577 AsmLEFileHeader.setDataPrototype(
8578 "Rose::BinaryAnalysis::Address", "e_import_proctab_rfo", "= 0",
8579 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8580#endif // !DOCUMENTATION
8581
8582#ifndef DOCUMENTATION
8583 AsmLEFileHeader.setDataPrototype(
8584 "Rose::BinaryAnalysis::Address", "e_ppcksumtab_rfo", "= 0",
8585 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8586#endif // !DOCUMENTATION
8587
8588#ifndef DOCUMENTATION
8589 AsmLEFileHeader.setDataPrototype(
8590 "Rose::BinaryAnalysis::Address", "e_data_pages_offset", "= 0",
8591 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8592#endif // !DOCUMENTATION
8593
8594#ifndef DOCUMENTATION
8595 AsmLEFileHeader.setDataPrototype(
8596 "Rose::BinaryAnalysis::Address", "e_nonresnametab_offset", "= 0",
8597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8598#endif // !DOCUMENTATION
8599
8600#ifndef DOCUMENTATION
8601 AsmLEFileHeader.setDataPrototype(
8602 "Rose::BinaryAnalysis::Address", "e_debug_info_rfo", "= 0",
8603 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8604#endif // !DOCUMENTATION
8605
8606#ifndef DOCUMENTATION
8607 AsmLEFileHeader.setDataPrototype(
8608 "SgAsmDOSExtendedHeader*", "dos2Header", "= nullptr",
8609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8610#endif // !DOCUMENTATION
8611
8612#ifndef DOCUMENTATION
8613 AsmLEFileHeader.setDataPrototype(
8614 "SgAsmLESectionTable*", "sectionTable", "= nullptr",
8615 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
8616#endif // !DOCUMENTATION
8617
8618#ifndef DOCUMENTATION
8619 AsmLEFileHeader.setDataPrototype(
8620 "SgAsmLEPageTable*", "pageTable", "= nullptr",
8621 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8622#endif // !DOCUMENTATION
8623
8624#ifndef DOCUMENTATION
8625 AsmLEFileHeader.setDataPrototype(
8626 "SgAsmLENameTable*", "residentNameTable", "= nullptr",
8627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8628#endif // !DOCUMENTATION
8629
8630#ifndef DOCUMENTATION
8631 AsmLEFileHeader.setDataPrototype(
8632 "SgAsmLENameTable*", "nonresidentNameTable", "= nullptr",
8633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8634#endif // !DOCUMENTATION
8635
8636#ifndef DOCUMENTATION
8637 AsmLEFileHeader.setDataPrototype(
8638 "SgAsmLEEntryTable*", "entryTable", "= nullptr",
8639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8640#endif // !DOCUMENTATION
8641
8642#ifndef DOCUMENTATION
8643 AsmLEFileHeader.setDataPrototype(
8644 "SgAsmLERelocTable*", "relocationTable", "= nullptr",
8645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
8646#endif // !DOCUMENTATION
8647
8648 DECLARE_OTHERS(AsmLEFileHeader);
8649#if defined(SgAsmLEFileHeader_OTHERS) || defined(DOCUMENTATION)
8650
8651 //----------------------- Boost serialization for SgAsmLEFileHeader -----------------------
8652#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
8653private:
8654 friend class boost::serialization::access;
8655
8656 template<class S>
8657 void serialize(S &s, const unsigned /*version*/) {
8658 debugSerializationBegin("SgAsmLEFileHeader");
8659 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
8660 s & BOOST_SERIALIZATION_NVP(p_e_byte_order);
8661 s & BOOST_SERIALIZATION_NVP(p_e_word_order);
8662 s & BOOST_SERIALIZATION_NVP(p_e_format_level);
8663 s & BOOST_SERIALIZATION_NVP(p_e_cpu_type);
8664 s & BOOST_SERIALIZATION_NVP(p_e_os_type);
8665 s & BOOST_SERIALIZATION_NVP(p_e_module_version);
8666 s & BOOST_SERIALIZATION_NVP(p_e_flags);
8667 s & BOOST_SERIALIZATION_NVP(p_e_eip_section);
8668 s & BOOST_SERIALIZATION_NVP(p_e_esp_section);
8669 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
8670 s & BOOST_SERIALIZATION_NVP(p_e_page_offset_shift);
8671 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_cksum);
8672 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_cksum);
8673 s & BOOST_SERIALIZATION_NVP(p_e_secttab_nentries);
8674 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_nentries);
8675 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_nentries);
8676 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_nentries);
8677 s & BOOST_SERIALIZATION_NVP(p_e_preload_npages);
8678 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_size);
8679 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_cksum);
8680 s & BOOST_SERIALIZATION_NVP(p_e_auto_ds_section);
8681 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_size);
8682 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_preload);
8683 s & BOOST_SERIALIZATION_NVP(p_e_num_instance_demand);
8684 s & BOOST_SERIALIZATION_NVP(p_e_heap_size);
8685 s & BOOST_SERIALIZATION_NVP(p_e_npages);
8686 s & BOOST_SERIALIZATION_NVP(p_e_eip);
8687 s & BOOST_SERIALIZATION_NVP(p_e_esp);
8688 s & BOOST_SERIALIZATION_NVP(p_e_page_size);
8689 s & BOOST_SERIALIZATION_NVP(p_e_fixup_sect_size);
8690 s & BOOST_SERIALIZATION_NVP(p_e_loader_sect_size);
8691 s & BOOST_SERIALIZATION_NVP(p_e_secttab_rfo);
8692 s & BOOST_SERIALIZATION_NVP(p_e_pagetab_rfo);
8693 s & BOOST_SERIALIZATION_NVP(p_e_iterpages_offset);
8694 s & BOOST_SERIALIZATION_NVP(p_e_rsrctab_rfo);
8695 s & BOOST_SERIALIZATION_NVP(p_e_resnametab_rfo);
8696 s & BOOST_SERIALIZATION_NVP(p_e_entrytab_rfo);
8697 s & BOOST_SERIALIZATION_NVP(p_e_fmtdirtab_rfo);
8698 s & BOOST_SERIALIZATION_NVP(p_e_fixup_pagetab_rfo);
8699 s & BOOST_SERIALIZATION_NVP(p_e_fixup_rectab_rfo);
8700 s & BOOST_SERIALIZATION_NVP(p_e_import_modtab_rfo);
8701 s & BOOST_SERIALIZATION_NVP(p_e_import_proctab_rfo);
8702 s & BOOST_SERIALIZATION_NVP(p_e_ppcksumtab_rfo);
8703 s & BOOST_SERIALIZATION_NVP(p_e_data_pages_offset);
8704 s & BOOST_SERIALIZATION_NVP(p_e_nonresnametab_offset);
8705 s & BOOST_SERIALIZATION_NVP(p_e_debug_info_rfo);
8706 s & BOOST_SERIALIZATION_NVP(p_dos2Header);
8707 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
8708 s & BOOST_SERIALIZATION_NVP(p_pageTable);
8709 s & BOOST_SERIALIZATION_NVP(p_residentNameTable);
8710 s & BOOST_SERIALIZATION_NVP(p_nonresidentNameTable);
8711 s & BOOST_SERIALIZATION_NVP(p_entryTable);
8712 s & BOOST_SERIALIZATION_NVP(p_relocationTable);
8713 debugSerializationEnd("SgAsmLEFileHeader");
8714 }
8715#endif // ROSE_ENABLE_BOOST_SERIALIZATION
8717 // Local types
8719public:
8720#ifdef _MSC_VER
8721# pragma pack (1)
8722#endif
8723 /* File format of an LE/LX File Header (they are identical except bytes 0x2c-0x2f) */
8725 unsigned char e_magic[2]; /* 0x00 magic number "LX" */
8726 unsigned char e_byte_order; /* 0x02 byte order (0=>little endian; otherwise big endian) */
8727 unsigned char e_word_order; /* 0x03 word order (0=>little endian; otherwise big endian) */
8728 uint32_t e_format_level; /* 0x04 LX file format version number */
8729 uint16_t e_cpu_type; /* 0x08 1=>80286, 2=>80386, 3=>80486,4=80586, etc. (see ctor) */
8730 uint16_t e_os_type; /* 0x0a 0=>unknown, 1=>0S/2, 2=>Windows, 3=>DOS 4.x, 4=>Windows 386 */
8731 uint32_t e_module_version; /* 0x0c user-specified module version number */
8732 uint32_t e_flags; /* 0x10 bit flags (see LXFileHeaderFlags) */
8733 uint32_t e_npages; /* 0x14 number of physically contained pages (see e_page_size) */
8734 uint32_t e_eip_section; /* 0x18 the section number to which e_eip is relative */
8735 uint32_t e_eip; /* 0x1c entry address relative to e_eip_section */
8736 uint32_t e_esp_section; /* 0x20 the section number to which e_esp is relative */
8737 uint32_t e_esp; /* 0x24 starting stack address relative to e_esp_section */
8738 uint32_t e_page_size; /* 0x28 page size in bytes */
8739 uint32_t e_lps_or_shift; /* 0x2c size of last page (LE) or shift for page table's page offset field (LX) */
8740 uint32_t e_fixup_sect_size; /* 0x30 total size of fixup info in bytes (fixup page/record tables + import names) */
8741 uint32_t e_fixup_sect_cksum; /* 0x34 cryptographic checksum of all fixup info, or zero */
8742 uint32_t e_loader_sect_size; /* 0x38 size of memory resident tables (section table through per-page checksum table) */
8743 uint32_t e_loader_sect_cksum; /* 0x3c cryptographic checksum for all loader info, or zero */
8744 uint32_t e_secttab_rfo; /* 0x40 offset of section table relative to this header */
8745 uint32_t e_secttab_nentries; /* 0x44 number of entries in section table */
8746 uint32_t e_pagetab_rfo; /* 0x48 section page table offset relative to this header */
8747 uint32_t e_iterpages_offset; /* 0x4c section iterated pages offset (absolute file offset) */
8748 uint32_t e_rsrctab_rfo; /* 0x50 offset of resource table relative to this header */
8749 uint32_t e_rsrctab_nentries; /* 0x54 number of entries in the resource table */
8750 uint32_t e_resnametab_rfo; /* 0x58 offset of resident name table relative to this header */
8751 uint32_t e_entrytab_rfo; /* 0x5c offset of entry table relative to this header */
8752 uint32_t e_fmtdirtab_rfo; /* 0x60 offset of module format directives relative to this header */
8753 uint32_t e_fmtdirtab_nentries; /* 0x64 number of entries in module format directives table */
8754 uint32_t e_fixup_pagetab_rfo; /* 0x68 offset of fixup page table relative to this header */
8755 uint32_t e_fixup_rectab_rfo; /* 0x6c offset of fixup record table relative to this header */
8756 uint32_t e_import_modtab_rfo; /* 0x70 offset of import module name table relative to this header */
8757 uint32_t e_import_modtab_nentries;/*0x74 number of entries in import module name table */
8758 uint32_t e_import_proctab_rfo; /* 0x78 offset of import procedure name table relative to this header */
8759 uint32_t e_ppcksumtab_rfo; /* 0x7c offset of per-page checksum table relative to this header */
8760 uint32_t e_data_pages_offset; /* 0x80 offset of data pages (absolute file offset) */
8761 uint32_t e_preload_npages; /* 0x84 number of preload pages (not respected by OS/2) */
8762 uint32_t e_nonresnametab_offset; /* 0x88 offset of non-resident name table (absolute file offset) */
8763 uint32_t e_nonresnametab_size; /* 0x8c size of non-resident name table in bytes */
8764 uint32_t e_nonresnametab_cksum; /* 0x90 cryptographic checksum of the non-resident name table */
8765 uint32_t e_auto_ds_section; /* 0x94 auto data segment section number (not used by 32-bit modules) */
8766 uint32_t e_debug_info_rfo; /* 0x98 offset of debug information relative to this header */
8767 uint32_t e_debug_info_size; /* 0x9c size of debug information in bytes */
8768 uint32_t e_num_instance_preload; /* 0xa0 number of instance data pages found in the preload section */
8769 uint32_t e_num_instance_demand; /* 0xa4 number of instance data pages found in the demand section */
8770 uint32_t e_heap_size; /* 0xa8 number of bytes added to auto data segment by loader (not used by 32-bit) */
8771 } /* 0xac */
8772// DQ (3/7/2013): Adding support to restrict visability to SWIG.
8773#ifndef SWIG
8774#ifndef _MSC_VER
8775 __attribute__((packed))
8776#endif
8777#endif
8778 ;
8779#ifdef _MSC_VER
8780# pragma pack ()
8781#endif
8782
8783 enum LEFileHeaderFlags {
8784 HF_RESERVED = 0xbffc5ccb, /* Reserved bits */
8785 HF_PROC_LIB_INIT = 0x00000004, /* Per-process library initialization; not used for executables */
8786 HF_IFIXUPS_APPLIED = 0x00000010, /* Sections have preferred load addresses and internal relocs have been applied */
8787 HF_EFIXUPS_APPLIED = 0x00000020, /* External fixups for the module have been applied */
8788 HF_PM_WINDOW_NO = 0x00000100, /* Incompatible with PM windowing */
8789 HF_PM_WINDOW_OK = 0x00000200, /* Compatible with PM windowing */
8790 HF_PM_WINDOW_USE = 0x00000300, /* Uses PM windowing API */
8791 HF_NOT_LOADABLE = 0x00002000, /* Module is not loadable (has errors or incrementally linked) */
8792 HF_PROC_LIB_TERM = 0x40000000, /* Per-process library termination; not used for executables */
8793
8794 HF_MODTYPE_MASK = 0x00038000, /* Module type mask */
8795 HF_MODTYPE_PROG = 0x00000000, /* Program module (other modules cannot link to this one) */
8796 HF_MODTYPE_LIB = 0x00008000, /* Library module */
8797 HF_MODTYPE_PLIB = 0x00018000, /* Protected memory library module */
8798 HF_MODTYPE_PDEV = 0x00020000, /* Physical device driver module */
8799 HF_MODTYPE_VDEV = 0x00028000 /* Virtual device driver module */
8800 };
8801
8803 // Properties
8805public:
8806public:
8807 unsigned const& get_e_byte_order() const;
8808 void set_e_byte_order(unsigned const&);
8809
8810public:
8811 unsigned const& get_e_word_order() const;
8812 void set_e_word_order(unsigned const&);
8813
8814public:
8815 unsigned const& get_e_format_level() const;
8816 void set_e_format_level(unsigned const&);
8817
8818public:
8819 unsigned const& get_e_cpu_type() const;
8820 void set_e_cpu_type(unsigned const&);
8821
8822public:
8823 unsigned const& get_e_os_type() const;
8824 void set_e_os_type(unsigned const&);
8825
8826public:
8827 unsigned const& get_e_module_version() const;
8828 void set_e_module_version(unsigned const&);
8829
8830public:
8831 unsigned const& get_e_flags() const;
8832 void set_e_flags(unsigned const&);
8833
8834public:
8835 unsigned const& get_e_eip_section() const;
8836 void set_e_eip_section(unsigned const&);
8837
8838public:
8839 unsigned const& get_e_esp_section() const;
8840 void set_e_esp_section(unsigned const&);
8841
8842public:
8843 unsigned const& get_e_last_page_size() const;
8844 void set_e_last_page_size(unsigned const&);
8845
8846public:
8847 unsigned const& get_e_page_offset_shift() const;
8848 void set_e_page_offset_shift(unsigned const&);
8849
8850public:
8851 unsigned const& get_e_fixup_sect_cksum() const;
8852 void set_e_fixup_sect_cksum(unsigned const&);
8853
8854public:
8855 unsigned const& get_e_loader_sect_cksum() const;
8856 void set_e_loader_sect_cksum(unsigned const&);
8857
8858public:
8859 unsigned const& get_e_secttab_nentries() const;
8860 void set_e_secttab_nentries(unsigned const&);
8861
8862public:
8863 unsigned const& get_e_rsrctab_nentries() const;
8864 void set_e_rsrctab_nentries(unsigned const&);
8865
8866public:
8867 unsigned const& get_e_fmtdirtab_nentries() const;
8868 void set_e_fmtdirtab_nentries(unsigned const&);
8869
8870public:
8871 unsigned const& get_e_import_modtab_nentries() const;
8872 void set_e_import_modtab_nentries(unsigned const&);
8873
8874public:
8875 unsigned const& get_e_preload_npages() const;
8876 void set_e_preload_npages(unsigned const&);
8877
8878public:
8879 unsigned const& get_e_nonresnametab_size() const;
8880 void set_e_nonresnametab_size(unsigned const&);
8881
8882public:
8883 unsigned const& get_e_nonresnametab_cksum() const;
8884 void set_e_nonresnametab_cksum(unsigned const&);
8885
8886public:
8887 unsigned const& get_e_auto_ds_section() const;
8888 void set_e_auto_ds_section(unsigned const&);
8889
8890public:
8891 unsigned const& get_e_debug_info_size() const;
8892 void set_e_debug_info_size(unsigned const&);
8893
8894public:
8895 unsigned const& get_e_num_instance_preload() const;
8896 void set_e_num_instance_preload(unsigned const&);
8897
8898public:
8899 unsigned const& get_e_num_instance_demand() const;
8900 void set_e_num_instance_demand(unsigned const&);
8901
8902public:
8903 unsigned const& get_e_heap_size() const;
8904 void set_e_heap_size(unsigned const&);
8905
8906public:
8907 Rose::BinaryAnalysis::Address const& get_e_npages() const;
8908 void set_e_npages(Rose::BinaryAnalysis::Address const&);
8909
8910public:
8911 Rose::BinaryAnalysis::Address const& get_e_eip() const;
8912 void set_e_eip(Rose::BinaryAnalysis::Address const&);
8913
8914public:
8915 Rose::BinaryAnalysis::Address const& get_e_esp() const;
8916 void set_e_esp(Rose::BinaryAnalysis::Address const&);
8917
8918public:
8919 Rose::BinaryAnalysis::Address const& get_e_page_size() const;
8920 void set_e_page_size(Rose::BinaryAnalysis::Address const&);
8921
8922public:
8923 Rose::BinaryAnalysis::Address const& get_e_fixup_sect_size() const;
8924 void set_e_fixup_sect_size(Rose::BinaryAnalysis::Address const&);
8925
8926public:
8927 Rose::BinaryAnalysis::Address const& get_e_loader_sect_size() const;
8928 void set_e_loader_sect_size(Rose::BinaryAnalysis::Address const&);
8929
8930public:
8931 Rose::BinaryAnalysis::Address const& get_e_secttab_rfo() const;
8932 void set_e_secttab_rfo(Rose::BinaryAnalysis::Address const&);
8933
8934public:
8935 Rose::BinaryAnalysis::Address const& get_e_pagetab_rfo() const;
8936 void set_e_pagetab_rfo(Rose::BinaryAnalysis::Address const&);
8937
8938public:
8939 Rose::BinaryAnalysis::Address const& get_e_iterpages_offset() const;
8940 void set_e_iterpages_offset(Rose::BinaryAnalysis::Address const&);
8941
8942public:
8943 Rose::BinaryAnalysis::Address const& get_e_rsrctab_rfo() const;
8944 void set_e_rsrctab_rfo(Rose::BinaryAnalysis::Address const&);
8945
8946public:
8947 Rose::BinaryAnalysis::Address const& get_e_resnametab_rfo() const;
8948 void set_e_resnametab_rfo(Rose::BinaryAnalysis::Address const&);
8949
8950public:
8951 Rose::BinaryAnalysis::Address const& get_e_entrytab_rfo() const;
8952 void set_e_entrytab_rfo(Rose::BinaryAnalysis::Address const&);
8953
8954public:
8955 Rose::BinaryAnalysis::Address const& get_e_fmtdirtab_rfo() const;
8956 void set_e_fmtdirtab_rfo(Rose::BinaryAnalysis::Address const&);
8957
8958public:
8959 Rose::BinaryAnalysis::Address const& get_e_fixup_pagetab_rfo() const;
8960 void set_e_fixup_pagetab_rfo(Rose::BinaryAnalysis::Address const&);
8961
8962public:
8963 Rose::BinaryAnalysis::Address const& get_e_fixup_rectab_rfo() const;
8964 void set_e_fixup_rectab_rfo(Rose::BinaryAnalysis::Address const&);
8965
8966public:
8967 Rose::BinaryAnalysis::Address const& get_e_import_modtab_rfo() const;
8968 void set_e_import_modtab_rfo(Rose::BinaryAnalysis::Address const&);
8969
8970public:
8971 Rose::BinaryAnalysis::Address const& get_e_import_proctab_rfo() const;
8972 void set_e_import_proctab_rfo(Rose::BinaryAnalysis::Address const&);
8973
8974public:
8975 Rose::BinaryAnalysis::Address const& get_e_ppcksumtab_rfo() const;
8976 void set_e_ppcksumtab_rfo(Rose::BinaryAnalysis::Address const&);
8977
8978public:
8979 Rose::BinaryAnalysis::Address const& get_e_data_pages_offset() const;
8980 void set_e_data_pages_offset(Rose::BinaryAnalysis::Address const&);
8981
8982public:
8983 Rose::BinaryAnalysis::Address const& get_e_nonresnametab_offset() const;
8984 void set_e_nonresnametab_offset(Rose::BinaryAnalysis::Address const&);
8985
8986public:
8987 Rose::BinaryAnalysis::Address const& get_e_debug_info_rfo() const;
8988 void set_e_debug_info_rfo(Rose::BinaryAnalysis::Address const&);
8989
8990public:
8991 SgAsmDOSExtendedHeader* const& get_dos2Header() const;
8992 void set_dos2Header(SgAsmDOSExtendedHeader* const&);
8993
8994public:
8995 SgAsmLESectionTable* const& get_sectionTable() const;
8996 void set_sectionTable(SgAsmLESectionTable* const&);
8997
8998public:
8999 SgAsmLEPageTable* const& get_pageTable() const;
9000 void set_pageTable(SgAsmLEPageTable* const&);
9001
9002public:
9003 SgAsmLENameTable* const& get_residentNameTable() const;
9004 void set_residentNameTable(SgAsmLENameTable* const&);
9005
9006public:
9007 SgAsmLENameTable* const& get_nonresidentNameTable() const;
9008 void set_nonresidentNameTable(SgAsmLENameTable* const&);
9009
9010public:
9011 SgAsmLEEntryTable* const& get_entryTable() const;
9012 void set_entryTable(SgAsmLEEntryTable* const&);
9013
9014public:
9015 SgAsmLERelocTable* const& get_relocationTable() const;
9016 void set_relocationTable(SgAsmLERelocTable* const&);
9018 // Functions
9020public:
9022 virtual void unparse(std::ostream&) const override;
9023 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9024
9025 // Overloaded base class virtual function
9026 const char *formatName() const override;
9027
9028 static bool isLe (SgAsmGenericFile*);
9030
9031private:
9033
9035 // Deprecated 2023-11
9037public:
9038 SgAsmDOSExtendedHeader* get_dos2_header() const ROSE_DEPRECATED("use get_dos2Header");
9039 void set_dos2_header(SgAsmDOSExtendedHeader*) ROSE_DEPRECATED("use set_dos2Header");
9040 SgAsmLESectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
9041 void set_section_table(SgAsmLESectionTable*) ROSE_DEPRECATED("use set_sectionTable");
9042 SgAsmLEPageTable* get_page_table() const ROSE_DEPRECATED("use get_pageTable");
9043 void set_page_table(SgAsmLEPageTable*) ROSE_DEPRECATED("use set_pageTable");
9044 SgAsmLENameTable* get_resname_table() const ROSE_DEPRECATED("use get_residentNameTable");
9045 void set_resname_table(SgAsmLENameTable*) ROSE_DEPRECATED("use set_residentNameTable");
9046 SgAsmLENameTable* get_nonresname_table() const ROSE_DEPRECATED("use get_nonresidentNameTable");
9047 void set_nonresname_table(SgAsmLENameTable*) ROSE_DEPRECATED("use set_nonresidentNameTable");
9048 SgAsmLEEntryTable* get_entry_table() const ROSE_DEPRECATED("use get_entryTable");
9049 void set_entry_table(SgAsmLEEntryTable*) ROSE_DEPRECATED("use set_entryTable");
9050 SgAsmLERelocTable* get_reloc_table() const ROSE_DEPRECATED("use get_relocationTable");
9051 void set_reloc_table(SgAsmLERelocTable*) ROSE_DEPRECATED("use set_relocationTable");
9052 const char *format_name() const override ROSE_DEPRECATED("use formatName");
9053 static bool is_LE (SgAsmGenericFile*) ROSE_DEPRECATED("use isLe");
9054public:
9057
9058public:
9061
9062protected:
9070#endif // SgAsmLEFileHeader_OTHERS
9071#ifdef DOCUMENTATION
9072};
9073#endif // DOCUMENTATION
9074
9075
9077// SgAsmLEEntryTable -- MACHINE GENERATED; DO NOT MODIFY --
9079
9080DECLARE_LEAF_CLASS(AsmLEEntryTable);
9081IS_SERIALIZABLE(AsmLEEntryTable);
9082
9083#ifndef DOCUMENTATION
9084AsmLEEntryTable.useSmallHeader(true);
9085#endif // !DOCUMENTATION
9086
9087DECLARE_HEADERS(AsmLEEntryTable);
9088#if defined(SgAsmLEEntryTable_HEADERS) || defined(DOCUMENTATION)
9089#include <Rose/BinaryAnalysis/Address.h>
9090#endif // SgAsmLEEntryTable_HEADERS
9091
9092#ifdef DOCUMENTATION
9094#endif // DOCUMENTATION
9095
9096#ifndef DOCUMENTATION
9097 AsmLEEntryTable.setDataPrototype(
9098 "SgSizeTList", "bundle_sizes", "",
9099 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9100#endif // !DOCUMENTATION
9101
9102#ifndef DOCUMENTATION
9103 AsmLEEntryTable.setDataPrototype(
9104 "SgAsmLEEntryPointPtrList", "entries", "",
9105 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9106#endif // !DOCUMENTATION
9107
9108 DECLARE_OTHERS(AsmLEEntryTable);
9109#if defined(SgAsmLEEntryTable_OTHERS) || defined(DOCUMENTATION)
9110
9111 //----------------------- Boost serialization for SgAsmLEEntryTable -----------------------
9112#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9113private:
9114 friend class boost::serialization::access;
9115
9116 template<class S>
9117 void serialize(S &s, const unsigned /*version*/) {
9118 debugSerializationBegin("SgAsmLEEntryTable");
9119 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
9120 s & BOOST_SERIALIZATION_NVP(p_bundle_sizes);
9121 s & BOOST_SERIALIZATION_NVP(p_entries);
9122 debugSerializationEnd("SgAsmLEEntryTable");
9123 }
9124#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9125public:
9126public:
9127 SgSizeTList const& get_bundle_sizes() const;
9128 void set_bundle_sizes(SgSizeTList const&);
9129
9130public:
9131 SgAsmLEEntryPointPtrList const& get_entries() const;
9132 SgAsmLEEntryPointPtrList& get_entries();
9133 void set_entries(SgAsmLEEntryPointPtrList const&);
9134public:
9136 virtual void unparse(std::ostream&) const override;
9137 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9138public:
9141
9142public:
9145
9146protected:
9154#endif // SgAsmLEEntryTable_OTHERS
9155#ifdef DOCUMENTATION
9156};
9157#endif // DOCUMENTATION
9158
9159
9161// SgAsmLEEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
9163
9164DECLARE_LEAF_CLASS(AsmLEEntryPoint);
9165IS_SERIALIZABLE(AsmLEEntryPoint);
9166
9167#ifndef DOCUMENTATION
9168AsmLEEntryPoint.useSmallHeader(true);
9169#endif // !DOCUMENTATION
9170
9171DECLARE_HEADERS(AsmLEEntryPoint);
9172#if defined(SgAsmLEEntryPoint_HEADERS) || defined(DOCUMENTATION)
9173#include <Rose/BinaryAnalysis/Address.h>
9174#include <Rose/BinaryAnalysis/ByteOrder.h>
9175#include <sageContainer.h>
9176#endif // SgAsmLEEntryPoint_HEADERS
9177
9178#ifdef DOCUMENTATION
9180#endif // DOCUMENTATION
9181
9182#ifndef DOCUMENTATION
9183 AsmLEEntryPoint.setDataPrototype(
9184 "SgAsmLEEntryPointPtrList", "entries", "",
9185 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9186#endif // !DOCUMENTATION
9187
9188#ifndef DOCUMENTATION
9189 AsmLEEntryPoint.setDataPrototype(
9190 "unsigned", "flags", "= 0",
9191 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9192#endif // !DOCUMENTATION
9193
9194#ifndef DOCUMENTATION
9195 AsmLEEntryPoint.setDataPrototype(
9196 "unsigned", "objnum", "= 0",
9197 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9198#endif // !DOCUMENTATION
9199
9200#ifndef DOCUMENTATION
9201 AsmLEEntryPoint.setDataPrototype(
9202 "unsigned", "entry_type", "= 0",
9203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9204#endif // !DOCUMENTATION
9205
9206#ifndef DOCUMENTATION
9207 AsmLEEntryPoint.setDataPrototype(
9208 "unsigned", "res1", "= 0",
9209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9210#endif // !DOCUMENTATION
9211
9212#ifndef DOCUMENTATION
9213 AsmLEEntryPoint.setDataPrototype(
9214 "Rose::BinaryAnalysis::Address", "entry_offset", "= 0",
9215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9216#endif // !DOCUMENTATION
9217
9218 DECLARE_OTHERS(AsmLEEntryPoint);
9219#if defined(SgAsmLEEntryPoint_OTHERS) || defined(DOCUMENTATION)
9220
9221 //----------------------- Boost serialization for SgAsmLEEntryPoint -----------------------
9222#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9223private:
9224 friend class boost::serialization::access;
9225
9226 template<class S>
9227 void serialize(S &s, const unsigned /*version*/) {
9228 debugSerializationBegin("SgAsmLEEntryPoint");
9229 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
9230 s & BOOST_SERIALIZATION_NVP(p_entries);
9231 s & BOOST_SERIALIZATION_NVP(p_flags);
9232 s & BOOST_SERIALIZATION_NVP(p_objnum);
9233 s & BOOST_SERIALIZATION_NVP(p_entry_type);
9234 s & BOOST_SERIALIZATION_NVP(p_res1);
9235 s & BOOST_SERIALIZATION_NVP(p_entry_offset);
9236 debugSerializationEnd("SgAsmLEEntryPoint");
9237 }
9238#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9240 // Local types
9242public:
9243#ifdef _MSC_VER
9244# pragma pack (1)
9245#endif
9246 /* If 0x01 bit of "flags" is clear then the remainder (next 9 bytes) of the entry point is not stored in the file and the
9247 * next entry point description follows immediately after the flag. */
9249 uint8_t flags; /* 0x00 Bit flags (0x01=>non-empty bundle; 0x02=>32-bit entry*/
9250 uint16_t objnum; /* 0x01 Object number */
9251 uint8_t entry_type; /* 0x03 Flags for entry type */
9252 uint32_t entry_offset; /* 0x04 Offset of entry point */
9253 uint16_t res1; /* 0x08 Reserved */
9254 } /* 0x0a */
9255// DQ (3/7/2013): Adding support to restrict visability to SWIG.
9256#ifndef SWIG
9257#ifndef _MSC_VER
9258 __attribute__((packed))
9259#endif
9260#endif
9261 ;
9262#ifdef _MSC_VER
9263# pragma pack ()
9264#endif
9265
9267 // Properties
9269public:
9270public:
9271 SgAsmLEEntryPointPtrList const& get_entries() const;
9272 SgAsmLEEntryPointPtrList& get_entries();
9273 void set_entries(SgAsmLEEntryPointPtrList const&);
9274
9275public:
9276 unsigned const& get_flags() const;
9277 void set_flags(unsigned const&);
9278
9279public:
9280 unsigned const& get_objnum() const;
9281 void set_objnum(unsigned const&);
9282
9283public:
9284 unsigned const& get_entry_type() const;
9285 void set_entry_type(unsigned const&);
9286
9287public:
9288 unsigned const& get_res1() const;
9289 void set_res1(unsigned const&);
9290
9291public:
9292 Rose::BinaryAnalysis::Address const& get_entry_offset() const;
9293 void set_entry_offset(Rose::BinaryAnalysis::Address const&);
9295 // Functions
9297public:
9302 void dump(FILE*, const char *prefix, ssize_t idx) const;
9303public:
9306
9307public:
9310
9311protected:
9319#endif // SgAsmLEEntryPoint_OTHERS
9320#ifdef DOCUMENTATION
9321};
9322#endif // DOCUMENTATION
9323
9324
9326// SgAsmJvmStackMapVerificationType -- MACHINE GENERATED; DO NOT MODIFY --
9328
9329DECLARE_LEAF_CLASS(AsmJvmStackMapVerificationType);
9330IS_SERIALIZABLE(AsmJvmStackMapVerificationType);
9331
9332#ifndef DOCUMENTATION
9333AsmJvmStackMapVerificationType.useSmallHeader(true);
9334#endif // !DOCUMENTATION
9335
9336#ifdef DOCUMENTATION
9341#endif // DOCUMENTATION
9342
9343#ifndef DOCUMENTATION
9344 AsmJvmStackMapVerificationType.setDataPrototype(
9345 "uint8_t", "tag", "= 9",
9346 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9347#endif // !DOCUMENTATION
9348
9349#ifndef DOCUMENTATION
9350 AsmJvmStackMapVerificationType.setDataPrototype(
9351 "uint16_t", "cpool_index", "= 0",
9352 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9353#endif // !DOCUMENTATION
9354
9355#ifndef DOCUMENTATION
9356 AsmJvmStackMapVerificationType.setDataPrototype(
9357 "uint16_t", "offset", "= 0",
9358 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9359#endif // !DOCUMENTATION
9360
9361 DECLARE_OTHERS(AsmJvmStackMapVerificationType);
9362#if defined(SgAsmJvmStackMapVerificationType_OTHERS) || defined(DOCUMENTATION)
9363
9364 //----------------------- Boost serialization for SgAsmJvmStackMapVerificationType -----------------------
9365#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9366private:
9367 friend class boost::serialization::access;
9368
9369 template<class S>
9370 void serialize(S &s, const unsigned /*version*/) {
9371 debugSerializationBegin("SgAsmJvmStackMapVerificationType");
9372 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9373 s & BOOST_SERIALIZATION_NVP(p_tag);
9374 s & BOOST_SERIALIZATION_NVP(p_cpool_index);
9375 s & BOOST_SERIALIZATION_NVP(p_offset);
9376 debugSerializationEnd("SgAsmJvmStackMapVerificationType");
9377 }
9378#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9379private:
9384 enum verification_type_tag {
9385 ITEM_Top = 0,
9386 ITEM_Integer = 1,
9387 ITEM_Float = 2,
9388 ITEM_Double = 3,
9389 ITEM_Long = 4,
9390 ITEM_Null = 5,
9391 ITEM_UninitializedThis = 6,
9392 ITEM_Object = 7,
9393 ITEM_Uninitialized = 8
9394 };
9395
9397 // Local types (for documentation purposes only)
9399#ifdef DOCUMENTATION
9403 union verification_type_info {
9404 Top_variable_info;
9405 Integer_variable_info;
9406 Float_variable_info;
9407 Long_variable_info;
9408 Double_variable_info;
9409 Null_variable_info;
9410 UninitializedThis_variable_info;
9411 Object_variable_info;
9412 Uninitialized_variable_info;
9413 };
9414
9416 struct Top_variable_info {
9417 uint8_t tag;
9418 };
9419 struct Integer_variable_info {
9420 uint8_t tag;
9421 };
9422 struct Float_variable_info {
9423 uint8_t tag;
9424 };
9425 struct Long_variable_info {
9426 uint8_t tag;
9427 };
9428 struct Double_variable_info {
9429 uint8_t tag;
9430 };
9431 struct Null_variable_info {
9432 uint8_t tag;
9433 };
9434 struct UnitializedThis_variable_info {
9435 uint8_t tag;
9436 };
9437 struct Object_variable_info {
9438 uint8_t tag;
9439 uint16_t cpool_index;
9440 };
9441 struct Unitialized_variable_info {
9442 uint8_t tag;
9443 uint16_t offset;
9444 };
9445#endif
9446
9448 // Properties
9450public:
9451public:
9457 uint8_t const& get_tag() const;
9458 void set_tag(uint8_t const&);
9460 /* Not a legal entry */
9461public:
9467 uint16_t const& get_cpool_index() const;
9468 void set_cpool_index(uint16_t const&);
9471public:
9477 uint16_t const& get_offset() const;
9478 void set_offset(uint16_t const&);
9481 // Functions
9483public:
9488
9491
9493 virtual void unparse(std::ostream&) const override;
9494
9496 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9497public:
9500
9501public:
9504
9505protected:
9513#endif // SgAsmJvmStackMapVerificationType_OTHERS
9514#ifdef DOCUMENTATION
9515};
9516#endif // DOCUMENTATION
9517
9518
9520// SgAsmJvmStackMapTable -- MACHINE GENERATED; DO NOT MODIFY --
9522
9523DECLARE_LEAF_CLASS(AsmJvmStackMapTable);
9524IS_SERIALIZABLE(AsmJvmStackMapTable);
9525
9526#ifndef DOCUMENTATION
9527AsmJvmStackMapTable.useSmallHeader(true);
9528#endif // !DOCUMENTATION
9529
9530DECLARE_HEADERS(AsmJvmStackMapTable);
9531#if defined(SgAsmJvmStackMapTable_HEADERS) || defined(DOCUMENTATION)
9532#include <sageContainer.h>
9533#endif // SgAsmJvmStackMapTable_HEADERS
9534
9535#ifdef DOCUMENTATION
9541#endif // DOCUMENTATION
9542
9543#ifndef DOCUMENTATION
9544 AsmJvmStackMapTable.setDataPrototype(
9545 "SgAsmJvmStackMapFramePtrList", "entries", "",
9546 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9547#endif // !DOCUMENTATION
9548
9549 DECLARE_OTHERS(AsmJvmStackMapTable);
9550#if defined(SgAsmJvmStackMapTable_OTHERS) || defined(DOCUMENTATION)
9551
9552 //----------------------- Boost serialization for SgAsmJvmStackMapTable -----------------------
9553#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9554private:
9555 friend class boost::serialization::access;
9556
9557 template<class S>
9558 void serialize(S &s, const unsigned /*version*/) {
9559 debugSerializationBegin("SgAsmJvmStackMapTable");
9560 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9561 s & BOOST_SERIALIZATION_NVP(p_entries);
9562 debugSerializationEnd("SgAsmJvmStackMapTable");
9563 }
9564#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9566 // Properties
9568public:
9569public:
9573 SgAsmJvmStackMapFramePtrList const& get_entries() const;
9574 SgAsmJvmStackMapFramePtrList& get_entries();
9575 void set_entries(SgAsmJvmStackMapFramePtrList const&);
9578 // Functions
9580public:
9585
9588
9590 virtual void unparse(std::ostream&) const override;
9591
9593 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9594public:
9597
9598public:
9601
9602protected:
9610#endif // SgAsmJvmStackMapTable_OTHERS
9611#ifdef DOCUMENTATION
9612};
9613#endif // DOCUMENTATION
9614
9615
9617// SgAsmJvmStackMapFrame -- MACHINE GENERATED; DO NOT MODIFY --
9619
9620DECLARE_LEAF_CLASS(AsmJvmStackMapFrame);
9621IS_SERIALIZABLE(AsmJvmStackMapFrame);
9622
9623#ifndef DOCUMENTATION
9624AsmJvmStackMapFrame.useSmallHeader(true);
9625#endif // !DOCUMENTATION
9626
9627DECLARE_HEADERS(AsmJvmStackMapFrame);
9628#if defined(SgAsmJvmStackMapFrame_HEADERS) || defined(DOCUMENTATION)
9629#include <sageContainer.h>
9630#endif // SgAsmJvmStackMapFrame_HEADERS
9631
9632#ifdef DOCUMENTATION
9637#endif // DOCUMENTATION
9638
9639#ifndef DOCUMENTATION
9640 AsmJvmStackMapFrame.setDataPrototype(
9641 "SgAsmJvmStackMapVerificationTypePtrList", "stack", "",
9642 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9643#endif // !DOCUMENTATION
9644
9645#ifndef DOCUMENTATION
9646 AsmJvmStackMapFrame.setDataPrototype(
9647 "SgAsmJvmStackMapVerificationTypePtrList", "locals", "",
9648 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9649#endif // !DOCUMENTATION
9650
9651#ifndef DOCUMENTATION
9652 AsmJvmStackMapFrame.setDataPrototype(
9653 "uint8_t", "frame_type", "= 0",
9654 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9655#endif // !DOCUMENTATION
9656
9657#ifndef DOCUMENTATION
9658 AsmJvmStackMapFrame.setDataPrototype(
9659 "uint16_t", "offset_delta", "= 0",
9660 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9661#endif // !DOCUMENTATION
9662
9663 DECLARE_OTHERS(AsmJvmStackMapFrame);
9664#if defined(SgAsmJvmStackMapFrame_OTHERS) || defined(DOCUMENTATION)
9665
9666 //----------------------- Boost serialization for SgAsmJvmStackMapFrame -----------------------
9667#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9668private:
9669 friend class boost::serialization::access;
9670
9671 template<class S>
9672 void serialize(S &s, const unsigned /*version*/) {
9673 debugSerializationBegin("SgAsmJvmStackMapFrame");
9674 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
9675 s & BOOST_SERIALIZATION_NVP(p_stack);
9676 s & BOOST_SERIALIZATION_NVP(p_locals);
9677 s & BOOST_SERIALIZATION_NVP(p_frame_type);
9678 s & BOOST_SERIALIZATION_NVP(p_offset_delta);
9679 debugSerializationEnd("SgAsmJvmStackMapFrame");
9680 }
9681#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9682private:
9683public:
9684public:
9688 SgAsmJvmStackMapVerificationTypePtrList const& get_stack() const;
9689 SgAsmJvmStackMapVerificationTypePtrList& get_stack();
9690 void set_stack(SgAsmJvmStackMapVerificationTypePtrList const&);
9693public:
9697 SgAsmJvmStackMapVerificationTypePtrList const& get_locals() const;
9698 SgAsmJvmStackMapVerificationTypePtrList& get_locals();
9699 void set_locals(SgAsmJvmStackMapVerificationTypePtrList const&);
9702 // Local types (for documentation purposes only)
9704#ifdef DOCUMENTATION
9709 same_frame;
9711 same_locals_1_stack_item_frame_extended;
9712 chop_frame;
9715 full_frame;
9716 };
9717
9718 struct same_frame {
9719 uint8_t frame_type; /* 0-63 */
9720 };
9722 uint8_t frame_type; /* 64-127 */
9723 verification_type_info stack;
9724 };
9726 uint8_t frame_type; /* 247 */
9727 uint16_t offset_delta;
9728 verification_type_info stack;
9729 };
9730 struct chop_frame {
9731 uint8_t frame_type; /* 248-250 */
9732 uint16_t offset_delta;
9733 };
9735 uint8_t frame_type; /* 251 */
9736 uint16_t offset_delta;
9737 };
9739 uint8_t frame_type; /* 252-254 */
9740 uint16_t offset_delta;
9741 verification_type_info stack;
9742 };
9743 struct full_frame {
9744 uint8_t frame_type; /* 252-254 */
9745 uint16_t offset_delta;
9746 uint16_t number_of_locals;
9747 verification_type_info stack[number_of_locals];
9748 uint16_t number_of_stack_items;
9749 verification_type_info stack[number_of_stack_items];
9750 };
9751#endif
9752
9754 // Properties
9756private:
9757public:
9763 uint8_t const& get_frame_type() const;
9764 void set_frame_type(uint8_t const&);
9767public:
9773 uint16_t const& get_offset_delta() const;
9774 void set_offset_delta(uint16_t const&);
9777 // Functions
9779public:
9784
9787
9789 virtual void unparse(std::ostream&) const override;
9790
9792 void dump(FILE*, const char *prefix, ssize_t idx) const override;
9793public:
9796
9797public:
9800
9801protected:
9809#endif // SgAsmJvmStackMapFrame_OTHERS
9810#ifdef DOCUMENTATION
9811};
9812#endif // DOCUMENTATION
9813
9814
9816// SgAsmJvmRuntimeVisibleAnnotations -- MACHINE GENERATED; DO NOT MODIFY --
9818
9819DECLARE_LEAF_CLASS(AsmJvmRuntimeVisibleAnnotations);
9820IS_SERIALIZABLE(AsmJvmRuntimeVisibleAnnotations);
9821
9822#ifndef DOCUMENTATION
9823AsmJvmRuntimeVisibleAnnotations.useSmallHeader(true);
9824#endif // !DOCUMENTATION
9825
9826DECLARE_HEADERS(AsmJvmRuntimeVisibleAnnotations);
9827#if defined(SgAsmJvmRuntimeVisibleAnnotations_HEADERS) || defined(DOCUMENTATION)
9828#include <sageContainer.h>
9829#endif // SgAsmJvmRuntimeVisibleAnnotations_HEADERS
9830
9831#ifdef DOCUMENTATION
9839#endif // DOCUMENTATION
9840
9841#ifndef DOCUMENTATION
9842 AsmJvmRuntimeVisibleAnnotations.setDataPrototype(
9843 "std::vector<SgAsmJvmRuntimeAnnotation*>", "annotations", "",
9844 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9845#endif // !DOCUMENTATION
9846
9847 DECLARE_OTHERS(AsmJvmRuntimeVisibleAnnotations);
9848#if defined(SgAsmJvmRuntimeVisibleAnnotations_OTHERS) || defined(DOCUMENTATION)
9849
9850 //----------------------- Boost serialization for SgAsmJvmRuntimeVisibleAnnotations -----------------------
9851#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9852private:
9853 friend class boost::serialization::access;
9854
9855 template<class S>
9856 void serialize(S &s, const unsigned /*version*/) {
9857 debugSerializationBegin("SgAsmJvmRuntimeVisibleAnnotations");
9858 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9859 s & BOOST_SERIALIZATION_NVP(p_annotations);
9860 debugSerializationEnd("SgAsmJvmRuntimeVisibleAnnotations");
9861 }
9862#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9863public:
9864public:
9870 std::vector<SgAsmJvmRuntimeAnnotation*> const& get_annotations() const;
9871 std::vector<SgAsmJvmRuntimeAnnotation*>& get_annotations();
9873public:
9878
9881
9883 virtual void unparse(std::ostream&) const override;
9884
9886 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
9887public:
9890
9891public:
9894
9895protected:
9903#endif // SgAsmJvmRuntimeVisibleAnnotations_OTHERS
9904#ifdef DOCUMENTATION
9905};
9906#endif // DOCUMENTATION
9907
9908
9910// SgAsmJvmRuntimeVisibilityParamAnnotations -- MACHINE GENERATED; DO NOT MODIFY --
9912
9913DECLARE_LEAF_CLASS(AsmJvmRuntimeVisibilityParamAnnotations);
9914IS_SERIALIZABLE(AsmJvmRuntimeVisibilityParamAnnotations);
9915
9916#ifndef DOCUMENTATION
9917AsmJvmRuntimeVisibilityParamAnnotations.useSmallHeader(true);
9918#endif // !DOCUMENTATION
9919
9920DECLARE_HEADERS(AsmJvmRuntimeVisibilityParamAnnotations);
9921#if defined(SgAsmJvmRuntimeVisibilityParamAnnotations_HEADERS) || defined(DOCUMENTATION)
9922#include <sageContainer.h>
9923#endif // SgAsmJvmRuntimeVisibilityParamAnnotations_HEADERS
9924
9925#ifdef DOCUMENTATION
9939#endif // DOCUMENTATION
9940
9941#ifndef DOCUMENTATION
9942 AsmJvmRuntimeVisibilityParamAnnotations.setDataPrototype(
9943 "std::vector<SgAsmJvmRuntimeParameterAnnotation*>", "parameter_annotations", "",
9944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
9945#endif // !DOCUMENTATION
9946
9947#ifndef DOCUMENTATION
9948 AsmJvmRuntimeVisibilityParamAnnotations.setDataPrototype(
9949 "bool", "isVisible", "= true",
9950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
9951#endif // !DOCUMENTATION
9952
9953 DECLARE_OTHERS(AsmJvmRuntimeVisibilityParamAnnotations);
9954#if defined(SgAsmJvmRuntimeVisibilityParamAnnotations_OTHERS) || defined(DOCUMENTATION)
9955
9956 //----------------------- Boost serialization for SgAsmJvmRuntimeVisibilityParamAnnotations -----------------------
9957#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
9958private:
9959 friend class boost::serialization::access;
9960
9961 template<class S>
9962 void serialize(S &s, const unsigned /*version*/) {
9963 debugSerializationBegin("SgAsmJvmRuntimeVisibilityParamAnnotations");
9964 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
9965 s & BOOST_SERIALIZATION_NVP(p_parameter_annotations);
9966 s & BOOST_SERIALIZATION_NVP(p_isVisible);
9967 debugSerializationEnd("SgAsmJvmRuntimeVisibilityParamAnnotations");
9968 }
9969#endif // ROSE_ENABLE_BOOST_SERIALIZATION
9970public:
9971public:
9979 std::vector<SgAsmJvmRuntimeParameterAnnotation*> const& get_parameter_annotations() const;
9980 std::vector<SgAsmJvmRuntimeParameterAnnotation*>& get_parameter_annotations();
9983public:
9990 bool const& get_isVisible() const;
9991 void set_isVisible(bool const&);
9993public:
9998
10001
10003 virtual void unparse(std::ostream&) const override;
10004
10006 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10007public:
10010
10011public:
10014
10015protected:
10023#endif // SgAsmJvmRuntimeVisibilityParamAnnotations_OTHERS
10024#ifdef DOCUMENTATION
10025};
10026#endif // DOCUMENTATION
10027
10028
10030// SgAsmJvmRuntimeParameterAnnotation -- MACHINE GENERATED; DO NOT MODIFY --
10032
10033DECLARE_LEAF_CLASS(AsmJvmRuntimeParameterAnnotation);
10034IS_SERIALIZABLE(AsmJvmRuntimeParameterAnnotation);
10035
10036#ifndef DOCUMENTATION
10037AsmJvmRuntimeParameterAnnotation.useSmallHeader(true);
10038#endif // !DOCUMENTATION
10039
10040#ifdef DOCUMENTATION
10046#endif // DOCUMENTATION
10047
10048#ifndef DOCUMENTATION
10049 AsmJvmRuntimeParameterAnnotation.setDataPrototype(
10050 "std::vector<SgAsmJvmRuntimeAnnotation*>", "annotations", "",
10051 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10052#endif // !DOCUMENTATION
10053
10054 DECLARE_OTHERS(AsmJvmRuntimeParameterAnnotation);
10055#if defined(SgAsmJvmRuntimeParameterAnnotation_OTHERS) || defined(DOCUMENTATION)
10056
10057 //----------------------- Boost serialization for SgAsmJvmRuntimeParameterAnnotation -----------------------
10058#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10059private:
10060 friend class boost::serialization::access;
10061
10062 template<class S>
10063 void serialize(S &s, const unsigned /*version*/) {
10064 debugSerializationBegin("SgAsmJvmRuntimeParameterAnnotation");
10065 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10066 s & BOOST_SERIALIZATION_NVP(p_annotations);
10067 debugSerializationEnd("SgAsmJvmRuntimeParameterAnnotation");
10068 }
10069#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10070public:
10071public:
10079 std::vector<SgAsmJvmRuntimeAnnotation*> const& get_annotations() const;
10080 std::vector<SgAsmJvmRuntimeAnnotation*>& get_annotations();
10082 public:
10087
10090
10092 virtual void unparse(std::ostream&) const override;
10093
10095 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10096public:
10099
10100public:
10103
10104protected:
10112#endif // SgAsmJvmRuntimeParameterAnnotation_OTHERS
10113#ifdef DOCUMENTATION
10114};
10115#endif // DOCUMENTATION
10116
10117
10119// SgAsmJvmRuntimeInvisibleAnnotations -- MACHINE GENERATED; DO NOT MODIFY --
10121
10122DECLARE_LEAF_CLASS(AsmJvmRuntimeInvisibleAnnotations);
10123IS_SERIALIZABLE(AsmJvmRuntimeInvisibleAnnotations);
10124
10125#ifndef DOCUMENTATION
10126AsmJvmRuntimeInvisibleAnnotations.useSmallHeader(true);
10127#endif // !DOCUMENTATION
10128
10129DECLARE_HEADERS(AsmJvmRuntimeInvisibleAnnotations);
10130#if defined(SgAsmJvmRuntimeInvisibleAnnotations_HEADERS) || defined(DOCUMENTATION)
10131#include <sageContainer.h>
10132#endif // SgAsmJvmRuntimeInvisibleAnnotations_HEADERS
10133
10134#ifdef DOCUMENTATION
10142#endif // DOCUMENTATION
10143
10144#ifndef DOCUMENTATION
10145 AsmJvmRuntimeInvisibleAnnotations.setDataPrototype(
10146 "std::vector<SgAsmJvmRuntimeAnnotation*>", "annotations", "",
10147 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10148#endif // !DOCUMENTATION
10149
10150 DECLARE_OTHERS(AsmJvmRuntimeInvisibleAnnotations);
10151#if defined(SgAsmJvmRuntimeInvisibleAnnotations_OTHERS) || defined(DOCUMENTATION)
10152
10153 //----------------------- Boost serialization for SgAsmJvmRuntimeInvisibleAnnotations -----------------------
10154#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10155private:
10156 friend class boost::serialization::access;
10157
10158 template<class S>
10159 void serialize(S &s, const unsigned /*version*/) {
10160 debugSerializationBegin("SgAsmJvmRuntimeInvisibleAnnotations");
10161 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10162 s & BOOST_SERIALIZATION_NVP(p_annotations);
10163 debugSerializationEnd("SgAsmJvmRuntimeInvisibleAnnotations");
10164 }
10165#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10166public:
10167public:
10173 std::vector<SgAsmJvmRuntimeAnnotation*> const& get_annotations() const;
10174 std::vector<SgAsmJvmRuntimeAnnotation*>& get_annotations();
10176public:
10181
10184
10186 virtual void unparse(std::ostream&) const override;
10187
10189 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10190public:
10193
10194public:
10197
10198protected:
10206#endif // SgAsmJvmRuntimeInvisibleAnnotations_OTHERS
10207#ifdef DOCUMENTATION
10208};
10209#endif // DOCUMENTATION
10210
10211
10213// SgAsmJvmRuntimeAnnotationValue -- MACHINE GENERATED; DO NOT MODIFY --
10215
10216DECLARE_LEAF_CLASS(AsmJvmRuntimeAnnotationValue);
10217IS_SERIALIZABLE(AsmJvmRuntimeAnnotationValue);
10218
10219#ifndef DOCUMENTATION
10220AsmJvmRuntimeAnnotationValue.useSmallHeader(true);
10221#endif // !DOCUMENTATION
10222
10223DECLARE_HEADERS(AsmJvmRuntimeAnnotationValue);
10224#if defined(SgAsmJvmRuntimeAnnotationValue_HEADERS) || defined(DOCUMENTATION)
10229#endif // SgAsmJvmRuntimeAnnotationValue_HEADERS
10230
10231#ifdef DOCUMENTATION
10255#endif // DOCUMENTATION
10256
10257#ifndef DOCUMENTATION
10258 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10259 "uint8_t", "tag", "= 0",
10260 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10261#endif // !DOCUMENTATION
10262
10263#ifndef DOCUMENTATION
10264 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10265 "uint16_t", "const_value_index", "= 0",
10266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10267#endif // !DOCUMENTATION
10268
10269#ifndef DOCUMENTATION
10270 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10271 "uint16_t", "type_name_index", "= 0",
10272 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10273#endif // !DOCUMENTATION
10274
10275#ifndef DOCUMENTATION
10276 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10277 "uint16_t", "const_name_index", "= 0",
10278 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10279#endif // !DOCUMENTATION
10280
10281#ifndef DOCUMENTATION
10282 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10283 "uint16_t", "class_info_index", "= 0",
10284 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10285#endif // !DOCUMENTATION
10286
10287#ifndef DOCUMENTATION
10288 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10289 "bool", "is_annotation_value", "= false",
10290 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10291#endif // !DOCUMENTATION
10292
10293#ifndef DOCUMENTATION
10294 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10295 "SgAsmJvmRuntimeAnnotation*", "annotation_value", "= nullptr",
10296 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10297#endif // !DOCUMENTATION
10298
10299#ifndef DOCUMENTATION
10300 AsmJvmRuntimeAnnotationValue.setDataPrototype(
10301 "std::vector<SgAsmJvmRuntimeAnnotationValue*>", "values", "",
10302 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10303#endif // !DOCUMENTATION
10304
10305 DECLARE_OTHERS(AsmJvmRuntimeAnnotationValue);
10306#if defined(SgAsmJvmRuntimeAnnotationValue_OTHERS) || defined(DOCUMENTATION)
10307
10308 //----------------------- Boost serialization for SgAsmJvmRuntimeAnnotationValue -----------------------
10309#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10310private:
10311 friend class boost::serialization::access;
10312
10313 template<class S>
10314 void serialize(S &s, const unsigned /*version*/) {
10315 debugSerializationBegin("SgAsmJvmRuntimeAnnotationValue");
10316 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10317 s & BOOST_SERIALIZATION_NVP(p_tag);
10318 s & BOOST_SERIALIZATION_NVP(p_const_value_index);
10319 s & BOOST_SERIALIZATION_NVP(p_type_name_index);
10320 s & BOOST_SERIALIZATION_NVP(p_const_name_index);
10321 s & BOOST_SERIALIZATION_NVP(p_class_info_index);
10322 s & BOOST_SERIALIZATION_NVP(p_is_annotation_value);
10323 s & BOOST_SERIALIZATION_NVP(p_annotation_value);
10324 s & BOOST_SERIALIZATION_NVP(p_values);
10325 debugSerializationEnd("SgAsmJvmRuntimeAnnotationValue");
10326 }
10327#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10328public:
10329public:
10336 uint8_t const& get_tag() const;
10337 void set_tag(uint8_t const&);
10340public:
10349 uint16_t const& get_const_value_index() const;
10350 void set_const_value_index(uint16_t const&);
10353public:
10362 uint16_t const& get_type_name_index() const;
10363 void set_type_name_index(uint16_t const&);
10366public:
10374 uint16_t const& get_const_name_index() const;
10375 void set_const_name_index(uint16_t const&);
10378public:
10387 uint16_t const& get_class_info_index() const;
10388 void set_class_info_index(uint16_t const&);
10391public:
10399 bool const& get_is_annotation_value() const;
10400 void set_is_annotation_value(bool const&);
10403public:
10417public:
10424 std::vector<SgAsmJvmRuntimeAnnotationValue*> const& get_values() const;
10425 std::vector<SgAsmJvmRuntimeAnnotationValue*>& get_values();
10427 public:
10432
10437
10442
10445
10447 virtual void unparse(std::ostream&) const override;
10448
10450 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10451public:
10454
10455public:
10458
10459protected:
10467#endif // SgAsmJvmRuntimeAnnotationValue_OTHERS
10468#ifdef DOCUMENTATION
10469};
10470#endif // DOCUMENTATION
10471
10472
10474// SgAsmJvmRuntimeAnnotationPair -- MACHINE GENERATED; DO NOT MODIFY --
10476
10477DECLARE_LEAF_CLASS(AsmJvmRuntimeAnnotationPair);
10478IS_SERIALIZABLE(AsmJvmRuntimeAnnotationPair);
10479
10480#ifndef DOCUMENTATION
10481AsmJvmRuntimeAnnotationPair.useSmallHeader(true);
10482#endif // !DOCUMENTATION
10483
10484#ifdef DOCUMENTATION
10490#endif // DOCUMENTATION
10491
10492#ifndef DOCUMENTATION
10493 AsmJvmRuntimeAnnotationPair.setDataPrototype(
10494 "uint16_t", "element_name_index", "= 0",
10495 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10496#endif // !DOCUMENTATION
10497
10498#ifndef DOCUMENTATION
10499 AsmJvmRuntimeAnnotationPair.setDataPrototype(
10500 "SgAsmJvmRuntimeAnnotationValue*", "value", "= nullptr",
10501 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10502#endif // !DOCUMENTATION
10503
10504 DECLARE_OTHERS(AsmJvmRuntimeAnnotationPair);
10505#if defined(SgAsmJvmRuntimeAnnotationPair_OTHERS) || defined(DOCUMENTATION)
10506
10507 //----------------------- Boost serialization for SgAsmJvmRuntimeAnnotationPair -----------------------
10508#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10509private:
10510 friend class boost::serialization::access;
10511
10512 template<class S>
10513 void serialize(S &s, const unsigned /*version*/) {
10514 debugSerializationBegin("SgAsmJvmRuntimeAnnotationPair");
10515 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10516 s & BOOST_SERIALIZATION_NVP(p_element_name_index);
10517 s & BOOST_SERIALIZATION_NVP(p_value);
10518 debugSerializationEnd("SgAsmJvmRuntimeAnnotationPair");
10519 }
10520#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10521public:
10522public:
10530 uint16_t const& get_element_name_index() const;
10531 void set_element_name_index(uint16_t const&);
10534public:
10544 public:
10549
10552
10554 virtual void unparse(std::ostream&) const override;
10555
10557 void dump(FILE*, const char *prefix, ssize_t idx) const override;
10558public:
10561
10562public:
10565
10566protected:
10574#endif // SgAsmJvmRuntimeAnnotationPair_OTHERS
10575#ifdef DOCUMENTATION
10576};
10577#endif // DOCUMENTATION
10578
10579
10581// SgAsmJvmRuntimeAnnotation -- MACHINE GENERATED; DO NOT MODIFY --
10583
10584DECLARE_LEAF_CLASS(AsmJvmRuntimeAnnotation);
10585IS_SERIALIZABLE(AsmJvmRuntimeAnnotation);
10586
10587#ifndef DOCUMENTATION
10588AsmJvmRuntimeAnnotation.useSmallHeader(true);
10589#endif // !DOCUMENTATION
10590
10591#ifdef DOCUMENTATION
10597#endif // DOCUMENTATION
10598
10599#ifndef DOCUMENTATION
10600 AsmJvmRuntimeAnnotation.setDataPrototype(
10601 "uint16_t", "type_index", "= 0",
10602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10603#endif // !DOCUMENTATION
10604
10605#ifndef DOCUMENTATION
10606 AsmJvmRuntimeAnnotation.setDataPrototype(
10607 "std::vector<SgAsmJvmRuntimeAnnotationPair*>", "element_value_pairs", "",
10608 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
10609#endif // !DOCUMENTATION
10610
10611 DECLARE_OTHERS(AsmJvmRuntimeAnnotation);
10612#if defined(SgAsmJvmRuntimeAnnotation_OTHERS) || defined(DOCUMENTATION)
10613
10614 //----------------------- Boost serialization for SgAsmJvmRuntimeAnnotation -----------------------
10615#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10616private:
10617 friend class boost::serialization::access;
10618
10619 template<class S>
10620 void serialize(S &s, const unsigned /*version*/) {
10621 debugSerializationBegin("SgAsmJvmRuntimeAnnotation");
10622 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
10623 s & BOOST_SERIALIZATION_NVP(p_type_index);
10624 s & BOOST_SERIALIZATION_NVP(p_element_value_pairs);
10625 debugSerializationEnd("SgAsmJvmRuntimeAnnotation");
10626 }
10627#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10628public:
10629public:
10636 uint16_t const& get_type_index() const;
10637 void set_type_index(uint16_t const&);
10640public:
10647 std::vector<SgAsmJvmRuntimeAnnotationPair*> const& get_element_value_pairs() const;
10648 std::vector<SgAsmJvmRuntimeAnnotationPair*>& get_element_value_pairs();
10650 public:
10655
10660
10665
10670
10673
10675 virtual void unparse(std::ostream&) const override;
10676
10678 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10679public:
10682
10683public:
10686
10687protected:
10695#endif // SgAsmJvmRuntimeAnnotation_OTHERS
10696#ifdef DOCUMENTATION
10697};
10698#endif // DOCUMENTATION
10699
10700
10702// SgAsmJvmModule -- MACHINE GENERATED; DO NOT MODIFY --
10704
10705DECLARE_LEAF_CLASS(AsmJvmModule);
10706IS_SERIALIZABLE(AsmJvmModule);
10707
10708#ifndef DOCUMENTATION
10709AsmJvmModule.useSmallHeader(true);
10710#endif // !DOCUMENTATION
10711
10712DECLARE_HEADERS(AsmJvmModule);
10713#if defined(SgAsmJvmModule_HEADERS) || defined(DOCUMENTATION)
10714#include <sageContainer.h>
10715#endif // SgAsmJvmModule_HEADERS
10716
10717#ifdef DOCUMENTATION
10725#endif // DOCUMENTATION
10726
10727#ifndef DOCUMENTATION
10728 AsmJvmModule.setDataPrototype(
10729 "uint16_t", "module_name_index", "= 0",
10730 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10731#endif // !DOCUMENTATION
10732
10733#ifndef DOCUMENTATION
10734 AsmJvmModule.setDataPrototype(
10735 "uint16_t", "module_flags", "= 0",
10736 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10737#endif // !DOCUMENTATION
10738
10739#ifndef DOCUMENTATION
10740 AsmJvmModule.setDataPrototype(
10741 "uint16_t", "module_version_index", "",
10742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10743#endif // !DOCUMENTATION
10744
10745#ifndef DOCUMENTATION
10746 AsmJvmModule.setDataPrototype(
10747 "std::vector<SgAsmJvmModule::Requires*>", "requires", "",
10748 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10749#endif // !DOCUMENTATION
10750
10751#ifndef DOCUMENTATION
10752 AsmJvmModule.setDataPrototype(
10753 "std::vector<SgAsmJvmModule::Exports*>", "exports", "",
10754 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10755#endif // !DOCUMENTATION
10756
10757#ifndef DOCUMENTATION
10758 AsmJvmModule.setDataPrototype(
10759 "std::vector<SgAsmJvmModule::Opens*>", "opens", "",
10760 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10761#endif // !DOCUMENTATION
10762
10763#ifndef DOCUMENTATION
10764 AsmJvmModule.setDataPrototype(
10765 "std::vector<uint16_t>", "uses_index", "",
10766 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10767#endif // !DOCUMENTATION
10768
10769#ifndef DOCUMENTATION
10770 AsmJvmModule.setDataPrototype(
10771 "std::vector<SgAsmJvmModule::Provides*>", "provides", "",
10772 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
10773#endif // !DOCUMENTATION
10774
10775 DECLARE_OTHERS(AsmJvmModule);
10776#if defined(SgAsmJvmModule_OTHERS) || defined(DOCUMENTATION)
10777
10778 //----------------------- Boost serialization for SgAsmJvmModule -----------------------
10779#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10780private:
10781 friend class boost::serialization::access;
10782
10783 template<class S>
10784 void serialize(S &s, const unsigned /*version*/) {
10785 debugSerializationBegin("SgAsmJvmModule");
10786 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
10787 s & BOOST_SERIALIZATION_NVP(p_module_name_index);
10788 s & BOOST_SERIALIZATION_NVP(p_module_flags);
10789 s & BOOST_SERIALIZATION_NVP(p_module_version_index);
10790 s & BOOST_SERIALIZATION_NVP(p_requires);
10791 s & BOOST_SERIALIZATION_NVP(p_exports);
10792 s & BOOST_SERIALIZATION_NVP(p_opens);
10793 s & BOOST_SERIALIZATION_NVP(p_uses_index);
10794 s & BOOST_SERIALIZATION_NVP(p_provides);
10795 debugSerializationEnd("SgAsmJvmModule");
10796 }
10797#endif // ROSE_ENABLE_BOOST_SERIALIZATION
10799 // Local types
10801public:
10805 struct Requires {
10806 uint16_t requires_index;
10807 uint16_t requires_flags;
10808 uint16_t requires_version_index;
10809
10810#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10811 template<class S>
10812 void serialize(S &s, const unsigned /*version*/) {
10813 s & BOOST_SERIALIZATION_NVP(requires_index);
10814 s & BOOST_SERIALIZATION_NVP(requires_flags);
10815 s & BOOST_SERIALIZATION_NVP(requires_version_index);
10816 }
10817#endif
10818 };
10819
10823 struct Exports {
10824 uint16_t exports_index;
10825 uint16_t exports_flags;
10826 std::vector<uint16_t> exports_to_index;
10827
10828#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10829 template<class S>
10830 void serialize(S &s, const unsigned /*version*/) {
10831 s & BOOST_SERIALIZATION_NVP(exports_index);
10832 s & BOOST_SERIALIZATION_NVP(exports_flags);
10833 s & BOOST_SERIALIZATION_NVP(exports_to_index);
10834 }
10835#endif
10836 };
10837
10841 struct Opens {
10842 uint16_t opens_index;
10843 uint16_t opens_flags;
10844 std::vector<uint16_t> opens_to_index;
10845
10846#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10847 template<class S>
10848 void serialize(S &s, const unsigned /*version*/) {
10849 s & BOOST_SERIALIZATION_NVP(opens_index);
10850 s & BOOST_SERIALIZATION_NVP(opens_flags);
10851 s & BOOST_SERIALIZATION_NVP(opens_to_index);
10852 }
10853#endif
10854 };
10855
10859 struct Provides {
10860 uint16_t provides_index;
10861 std::vector<uint16_t> provides_with_index;
10862
10863#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
10864 template<class S>
10865 void serialize(S &s, const unsigned /*version*/) {
10866 s & BOOST_SERIALIZATION_NVP(provides_index);
10867 s & BOOST_SERIALIZATION_NVP(provides_with_index);
10868 }
10869#endif
10870 };
10871
10873 // Properties
10875public:
10876public:
10884 uint16_t const& get_module_name_index() const;
10885 void set_module_name_index(uint16_t const&);
10888public:
10897 uint16_t const& get_module_flags() const;
10898 void set_module_flags(uint16_t const&);
10901public:
10909 uint16_t const& get_module_version_index() const;
10910 void set_module_version_index(uint16_t const&);
10913public:
10919 std::vector<SgAsmJvmModule::Requires*> const& get_requires() const;
10920 std::vector<SgAsmJvmModule::Requires*>& get_requires();
10921 void set_requires(std::vector<SgAsmJvmModule::Requires*> const&);
10924public:
10932 std::vector<SgAsmJvmModule::Exports*> const& get_exports() const;
10933 std::vector<SgAsmJvmModule::Exports*>& get_exports();
10934 void set_exports(std::vector<SgAsmJvmModule::Exports*> const&);
10937public:
10945 std::vector<SgAsmJvmModule::Opens*> const& get_opens() const;
10946 std::vector<SgAsmJvmModule::Opens*>& get_opens();
10947 void set_opens(std::vector<SgAsmJvmModule::Opens*> const&);
10950public:
10958 std::vector<uint16_t> const& get_uses_index() const;
10959 std::vector<uint16_t>& get_uses_index();
10960 void set_uses_index(std::vector<uint16_t> const&);
10963public:
10969 std::vector<SgAsmJvmModule::Provides*> const& get_provides() const;
10970 std::vector<SgAsmJvmModule::Provides*>& get_provides();
10971 void set_provides(std::vector<SgAsmJvmModule::Provides*> const&);
10973public:
10978
10981
10983 virtual void unparse(std::ostream&) const override;
10984
10986 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
10987public:
10990
10991public:
10994
10995protected:
11003#endif // SgAsmJvmModule_OTHERS
11004#ifdef DOCUMENTATION
11005};
11006#endif // DOCUMENTATION
11007
11008
11010// SgAsmJvmMethodTable -- MACHINE GENERATED; DO NOT MODIFY --
11012
11013DECLARE_LEAF_CLASS(AsmJvmMethodTable);
11014IS_SERIALIZABLE(AsmJvmMethodTable);
11015
11016#ifndef DOCUMENTATION
11017AsmJvmMethodTable.useSmallHeader(true);
11018#endif // !DOCUMENTATION
11019
11020#ifdef DOCUMENTATION
11027#endif // DOCUMENTATION
11028
11029#ifndef DOCUMENTATION
11030 AsmJvmMethodTable.setDataPrototype(
11031 "SgAsmJvmMethodPtrList", "methods", "",
11032 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
11033#endif // !DOCUMENTATION
11034
11035 DECLARE_OTHERS(AsmJvmMethodTable);
11036#if defined(SgAsmJvmMethodTable_OTHERS) || defined(DOCUMENTATION)
11037
11038 //----------------------- Boost serialization for SgAsmJvmMethodTable -----------------------
11039#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11040private:
11041 friend class boost::serialization::access;
11042
11043 template<class S>
11044 void serialize(S &s, const unsigned /*version*/) {
11045 debugSerializationBegin("SgAsmJvmMethodTable");
11046 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
11047 s & BOOST_SERIALIZATION_NVP(p_methods);
11048 debugSerializationEnd("SgAsmJvmMethodTable");
11049 }
11050#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11051public:
11052public:
11056 SgAsmJvmMethodPtrList const& get_methods() const;
11057 SgAsmJvmMethodPtrList& get_methods();
11058 void set_methods(SgAsmJvmMethodPtrList const&);
11060public:
11065
11070 virtual SgAsmJvmMethodTable* parse() override;
11071
11073 virtual void unparse(std::ostream&) const override;
11074
11076 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11077public:
11080
11081public:
11084
11085protected:
11093#endif // SgAsmJvmMethodTable_OTHERS
11094#ifdef DOCUMENTATION
11095};
11096#endif // DOCUMENTATION
11097
11098
11100// SgAsmJvmMethodParametersEntry -- MACHINE GENERATED; DO NOT MODIFY --
11102
11103DECLARE_LEAF_CLASS(AsmJvmMethodParametersEntry);
11104IS_SERIALIZABLE(AsmJvmMethodParametersEntry);
11105
11106#ifndef DOCUMENTATION
11107AsmJvmMethodParametersEntry.useSmallHeader(true);
11108#endif // !DOCUMENTATION
11109
11110#ifdef DOCUMENTATION
11116#endif // DOCUMENTATION
11117
11118#ifndef DOCUMENTATION
11119 AsmJvmMethodParametersEntry.setDataPrototype(
11120 "uint16_t", "name_index", "= 0",
11121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11122#endif // !DOCUMENTATION
11123
11124#ifndef DOCUMENTATION
11125 AsmJvmMethodParametersEntry.setDataPrototype(
11126 "uint16_t", "access_flags", "= 0",
11127 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11128#endif // !DOCUMENTATION
11129
11130 DECLARE_OTHERS(AsmJvmMethodParametersEntry);
11131#if defined(SgAsmJvmMethodParametersEntry_OTHERS) || defined(DOCUMENTATION)
11132
11133 //----------------------- Boost serialization for SgAsmJvmMethodParametersEntry -----------------------
11134#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11135private:
11136 friend class boost::serialization::access;
11137
11138 template<class S>
11139 void serialize(S &s, const unsigned /*version*/) {
11140 debugSerializationBegin("SgAsmJvmMethodParametersEntry");
11141 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11142 s & BOOST_SERIALIZATION_NVP(p_name_index);
11143 s & BOOST_SERIALIZATION_NVP(p_access_flags);
11144 debugSerializationEnd("SgAsmJvmMethodParametersEntry");
11145 }
11146#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11147public:
11148public:
11155 uint16_t const& get_name_index() const;
11156 void set_name_index(uint16_t const&);
11159public:
11165 uint16_t const& get_access_flags() const;
11166 void set_access_flags(uint16_t const&);
11168 public:
11173
11176
11178 virtual void unparse(std::ostream&) const override;
11179
11181 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11182public:
11185
11186public:
11189
11190protected:
11198#endif // SgAsmJvmMethodParametersEntry_OTHERS
11199#ifdef DOCUMENTATION
11200};
11201#endif // DOCUMENTATION
11202
11203
11205// SgAsmJvmMethodParameters -- MACHINE GENERATED; DO NOT MODIFY --
11207
11208DECLARE_LEAF_CLASS(AsmJvmMethodParameters);
11209IS_SERIALIZABLE(AsmJvmMethodParameters);
11210
11211#ifndef DOCUMENTATION
11212AsmJvmMethodParameters.useSmallHeader(true);
11213#endif // !DOCUMENTATION
11214
11215DECLARE_HEADERS(AsmJvmMethodParameters);
11216#if defined(SgAsmJvmMethodParameters_HEADERS) || defined(DOCUMENTATION)
11217#include <sageContainer.h>
11218#endif // SgAsmJvmMethodParameters_HEADERS
11219
11220#ifdef DOCUMENTATION
11227#endif // DOCUMENTATION
11228
11229#ifndef DOCUMENTATION
11230 AsmJvmMethodParameters.setDataPrototype(
11231 "SgAsmJvmMethodParametersEntryPtrList", "parameters", "",
11232 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11233#endif // !DOCUMENTATION
11234
11235 DECLARE_OTHERS(AsmJvmMethodParameters);
11236#if defined(SgAsmJvmMethodParameters_OTHERS) || defined(DOCUMENTATION)
11237
11238 //----------------------- Boost serialization for SgAsmJvmMethodParameters -----------------------
11239#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11240private:
11241 friend class boost::serialization::access;
11242
11243 template<class S>
11244 void serialize(S &s, const unsigned /*version*/) {
11245 debugSerializationBegin("SgAsmJvmMethodParameters");
11246 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11247 s & BOOST_SERIALIZATION_NVP(p_parameters);
11248 debugSerializationEnd("SgAsmJvmMethodParameters");
11249 }
11250#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11251public:
11252public:
11258 SgAsmJvmMethodParametersEntryPtrList const& get_parameters() const;
11259 SgAsmJvmMethodParametersEntryPtrList& get_parameters();
11260 void set_parameters(SgAsmJvmMethodParametersEntryPtrList const&);
11262public:
11267
11270
11272 virtual void unparse(std::ostream&) const override;
11273
11275 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11276public:
11279
11280public:
11283
11284protected:
11292#endif // SgAsmJvmMethodParameters_OTHERS
11293#ifdef DOCUMENTATION
11294};
11295#endif // DOCUMENTATION
11296
11297
11299// SgAsmJvmMethod -- MACHINE GENERATED; DO NOT MODIFY --
11301
11302DECLARE_LEAF_CLASS(AsmJvmMethod);
11303IS_SERIALIZABLE(AsmJvmMethod);
11304
11305#ifndef DOCUMENTATION
11306AsmJvmMethod.useSmallHeader(true);
11307#endif // !DOCUMENTATION
11308
11309DECLARE_HEADERS(AsmJvmMethod);
11310#if defined(SgAsmJvmMethod_HEADERS) || defined(DOCUMENTATION)
11311#ifdef ROSE_SgAsmJvmMethod_IMPL
11312#include <SgAsmInstructionList.h>
11313#include <SgAsmJvmAttributeTable.h>
11314#endif
11315#endif // SgAsmJvmMethod_HEADERS
11316
11317#ifdef DOCUMENTATION
11323#endif // DOCUMENTATION
11324
11325#ifndef DOCUMENTATION
11326 AsmJvmMethod.setDataPrototype(
11327 "uint16_t", "access_flags", "= 0",
11328 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11329#endif // !DOCUMENTATION
11330
11331#ifndef DOCUMENTATION
11332 AsmJvmMethod.setDataPrototype(
11333 "uint16_t", "name_index", "= 0",
11334 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11335#endif // !DOCUMENTATION
11336
11337#ifndef DOCUMENTATION
11338 AsmJvmMethod.setDataPrototype(
11339 "uint16_t", "descriptor_index", "= 0",
11340 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11341#endif // !DOCUMENTATION
11342
11343#ifndef DOCUMENTATION
11344 AsmJvmMethod.setDataPrototype(
11345 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
11346 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
11347#endif // !DOCUMENTATION
11348
11349#ifndef DOCUMENTATION
11350 AsmJvmMethod.setDataPrototype(
11351 "SgAsmInstructionList*", "instruction_list", "= createAndParent<SgAsmInstructionList>(this)",
11352 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11353#endif // !DOCUMENTATION
11354
11355 DECLARE_OTHERS(AsmJvmMethod);
11356#if defined(SgAsmJvmMethod_OTHERS) || defined(DOCUMENTATION)
11357
11358 //----------------------- Boost serialization for SgAsmJvmMethod -----------------------
11359#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11360private:
11361 friend class boost::serialization::access;
11362
11363 template<class S>
11364 void serialize(S &s, const unsigned /*version*/) {
11365 debugSerializationBegin("SgAsmJvmMethod");
11366 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11367 s & BOOST_SERIALIZATION_NVP(p_access_flags);
11368 s & BOOST_SERIALIZATION_NVP(p_name_index);
11369 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
11370 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
11371 s & BOOST_SERIALIZATION_NVP(p_instruction_list);
11372 debugSerializationEnd("SgAsmJvmMethod");
11373 }
11374#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11375public:
11376public:
11383 uint16_t const& get_access_flags() const;
11384 void set_access_flags(uint16_t const&);
11387public:
11393 uint16_t const& get_name_index() const;
11394 void set_name_index(uint16_t const&);
11397public:
11403 uint16_t const& get_descriptor_index() const;
11404 void set_descriptor_index(uint16_t const&);
11407public:
11415public:
11424public:
11429
11432
11434 virtual void unparse(std::ostream&) const override;
11435
11437 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11438public:
11441
11442public:
11445
11446protected:
11454#endif // SgAsmJvmMethod_OTHERS
11455#ifdef DOCUMENTATION
11456};
11457#endif // DOCUMENTATION
11458
11459
11461// SgAsmJvmLocalVariableTypeTable -- MACHINE GENERATED; DO NOT MODIFY --
11463
11464DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeTable);
11465IS_SERIALIZABLE(AsmJvmLocalVariableTypeTable);
11466
11467#ifndef DOCUMENTATION
11468AsmJvmLocalVariableTypeTable.useSmallHeader(true);
11469#endif // !DOCUMENTATION
11470
11471DECLARE_HEADERS(AsmJvmLocalVariableTypeTable);
11472#if defined(SgAsmJvmLocalVariableTypeTable_HEADERS) || defined(DOCUMENTATION)
11473#include <sageContainer.h>
11474#endif // SgAsmJvmLocalVariableTypeTable_HEADERS
11475
11476#ifdef DOCUMENTATION
11483#endif // DOCUMENTATION
11484
11485#ifndef DOCUMENTATION
11486 AsmJvmLocalVariableTypeTable.setDataPrototype(
11487 "SgAsmJvmLocalVariableTypeEntryPtrList", "local_variable_type_table", "",
11488 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11489#endif // !DOCUMENTATION
11490
11491 DECLARE_OTHERS(AsmJvmLocalVariableTypeTable);
11492#if defined(SgAsmJvmLocalVariableTypeTable_OTHERS) || defined(DOCUMENTATION)
11493
11494 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeTable -----------------------
11495#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11496private:
11497 friend class boost::serialization::access;
11498
11499 template<class S>
11500 void serialize(S &s, const unsigned /*version*/) {
11501 debugSerializationBegin("SgAsmJvmLocalVariableTypeTable");
11502 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11503 s & BOOST_SERIALIZATION_NVP(p_local_variable_type_table);
11504 debugSerializationEnd("SgAsmJvmLocalVariableTypeTable");
11505 }
11506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11507public:
11508public:
11514 SgAsmJvmLocalVariableTypeEntryPtrList const& get_local_variable_type_table() const;
11515 SgAsmJvmLocalVariableTypeEntryPtrList& get_local_variable_type_table();
11516 void set_local_variable_type_table(SgAsmJvmLocalVariableTypeEntryPtrList const&);
11518public:
11523
11526
11528 virtual void unparse(std::ostream&) const override;
11529
11531 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11532public:
11535
11536public:
11539
11540protected:
11548#endif // SgAsmJvmLocalVariableTypeTable_OTHERS
11549#ifdef DOCUMENTATION
11550};
11551#endif // DOCUMENTATION
11552
11553
11555// SgAsmJvmLocalVariableTypeEntry -- MACHINE GENERATED; DO NOT MODIFY --
11557
11558DECLARE_LEAF_CLASS(AsmJvmLocalVariableTypeEntry);
11559IS_SERIALIZABLE(AsmJvmLocalVariableTypeEntry);
11560
11561#ifndef DOCUMENTATION
11562AsmJvmLocalVariableTypeEntry.useSmallHeader(true);
11563#endif // !DOCUMENTATION
11564
11565#ifdef DOCUMENTATION
11570#endif // DOCUMENTATION
11571
11572#ifndef DOCUMENTATION
11573 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11574 "uint16_t", "start_pc", "= 0",
11575 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11576#endif // !DOCUMENTATION
11577
11578#ifndef DOCUMENTATION
11579 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11580 "uint16_t", "length", "= 0",
11581 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11582#endif // !DOCUMENTATION
11583
11584#ifndef DOCUMENTATION
11585 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11586 "uint16_t", "name_index", "= 0",
11587 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11588#endif // !DOCUMENTATION
11589
11590#ifndef DOCUMENTATION
11591 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11592 "uint16_t", "signature_index", "= 0",
11593 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11594#endif // !DOCUMENTATION
11595
11596#ifndef DOCUMENTATION
11597 AsmJvmLocalVariableTypeEntry.setDataPrototype(
11598 "uint16_t", "index", "= 0",
11599 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11600#endif // !DOCUMENTATION
11601
11602 DECLARE_OTHERS(AsmJvmLocalVariableTypeEntry);
11603#if defined(SgAsmJvmLocalVariableTypeEntry_OTHERS) || defined(DOCUMENTATION)
11604
11605 //----------------------- Boost serialization for SgAsmJvmLocalVariableTypeEntry -----------------------
11606#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11607private:
11608 friend class boost::serialization::access;
11609
11610 template<class S>
11611 void serialize(S &s, const unsigned /*version*/) {
11612 debugSerializationBegin("SgAsmJvmLocalVariableTypeEntry");
11613 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11614 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11615 s & BOOST_SERIALIZATION_NVP(p_length);
11616 s & BOOST_SERIALIZATION_NVP(p_name_index);
11617 s & BOOST_SERIALIZATION_NVP(p_signature_index);
11618 s & BOOST_SERIALIZATION_NVP(p_index);
11619 debugSerializationEnd("SgAsmJvmLocalVariableTypeEntry");
11620 }
11621#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11622public:
11623public:
11630 uint16_t const& get_start_pc() const;
11631 void set_start_pc(uint16_t const&);
11634public:
11642 uint16_t const& get_length() const;
11643 void set_length(uint16_t const&);
11646public:
11654 uint16_t const& get_name_index() const;
11655 void set_name_index(uint16_t const&);
11658public:
11666 uint16_t const& get_signature_index() const;
11667 void set_signature_index(uint16_t const&);
11670public:
11677 uint16_t const& get_index() const;
11678 void set_index(uint16_t const&);
11680 public:
11685
11688
11690 virtual void unparse(std::ostream&) const override;
11691
11693 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11694public:
11697
11698public:
11701
11702protected:
11710#endif // SgAsmJvmLocalVariableTypeEntry_OTHERS
11711#ifdef DOCUMENTATION
11712};
11713#endif // DOCUMENTATION
11714
11715
11717// SgAsmJvmLocalVariableTable -- MACHINE GENERATED; DO NOT MODIFY --
11719
11720DECLARE_LEAF_CLASS(AsmJvmLocalVariableTable);
11721IS_SERIALIZABLE(AsmJvmLocalVariableTable);
11722
11723#ifndef DOCUMENTATION
11724AsmJvmLocalVariableTable.useSmallHeader(true);
11725#endif // !DOCUMENTATION
11726
11727DECLARE_HEADERS(AsmJvmLocalVariableTable);
11728#if defined(SgAsmJvmLocalVariableTable_HEADERS) || defined(DOCUMENTATION)
11729#include <sageContainer.h>
11730#endif // SgAsmJvmLocalVariableTable_HEADERS
11731
11732#ifdef DOCUMENTATION
11739#endif // DOCUMENTATION
11740
11741#ifndef DOCUMENTATION
11742 AsmJvmLocalVariableTable.setDataPrototype(
11743 "SgAsmJvmLocalVariableEntryPtrList", "local_variable_table", "",
11744 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11745#endif // !DOCUMENTATION
11746
11747 DECLARE_OTHERS(AsmJvmLocalVariableTable);
11748#if defined(SgAsmJvmLocalVariableTable_OTHERS) || defined(DOCUMENTATION)
11749
11750 //----------------------- Boost serialization for SgAsmJvmLocalVariableTable -----------------------
11751#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11752private:
11753 friend class boost::serialization::access;
11754
11755 template<class S>
11756 void serialize(S &s, const unsigned /*version*/) {
11757 debugSerializationBegin("SgAsmJvmLocalVariableTable");
11758 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
11759 s & BOOST_SERIALIZATION_NVP(p_local_variable_table);
11760 debugSerializationEnd("SgAsmJvmLocalVariableTable");
11761 }
11762#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11763public:
11764public:
11770 SgAsmJvmLocalVariableEntryPtrList const& get_local_variable_table() const;
11771 SgAsmJvmLocalVariableEntryPtrList& get_local_variable_table();
11772 void set_local_variable_table(SgAsmJvmLocalVariableEntryPtrList const&);
11774public:
11779
11782
11784 virtual void unparse(std::ostream&) const override;
11785
11787 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
11788public:
11791
11792public:
11795
11796protected:
11804#endif // SgAsmJvmLocalVariableTable_OTHERS
11805#ifdef DOCUMENTATION
11806};
11807#endif // DOCUMENTATION
11808
11809
11811// SgAsmJvmLocalVariableEntry -- MACHINE GENERATED; DO NOT MODIFY --
11813
11814DECLARE_LEAF_CLASS(AsmJvmLocalVariableEntry);
11815IS_SERIALIZABLE(AsmJvmLocalVariableEntry);
11816
11817#ifndef DOCUMENTATION
11818AsmJvmLocalVariableEntry.useSmallHeader(true);
11819#endif // !DOCUMENTATION
11820
11821#ifdef DOCUMENTATION
11826#endif // DOCUMENTATION
11827
11828#ifndef DOCUMENTATION
11829 AsmJvmLocalVariableEntry.setDataPrototype(
11830 "uint16_t", "start_pc", "= 0",
11831 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11832#endif // !DOCUMENTATION
11833
11834#ifndef DOCUMENTATION
11835 AsmJvmLocalVariableEntry.setDataPrototype(
11836 "uint16_t", "length", "= 0",
11837 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11838#endif // !DOCUMENTATION
11839
11840#ifndef DOCUMENTATION
11841 AsmJvmLocalVariableEntry.setDataPrototype(
11842 "uint16_t", "name_index", "= 0",
11843 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11844#endif // !DOCUMENTATION
11845
11846#ifndef DOCUMENTATION
11847 AsmJvmLocalVariableEntry.setDataPrototype(
11848 "uint16_t", "descriptor_index", "= 0",
11849 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11850#endif // !DOCUMENTATION
11851
11852#ifndef DOCUMENTATION
11853 AsmJvmLocalVariableEntry.setDataPrototype(
11854 "uint16_t", "index", "= 0",
11855 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
11856#endif // !DOCUMENTATION
11857
11858 DECLARE_OTHERS(AsmJvmLocalVariableEntry);
11859#if defined(SgAsmJvmLocalVariableEntry_OTHERS) || defined(DOCUMENTATION)
11860
11861 //----------------------- Boost serialization for SgAsmJvmLocalVariableEntry -----------------------
11862#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11863private:
11864 friend class boost::serialization::access;
11865
11866 template<class S>
11867 void serialize(S &s, const unsigned /*version*/) {
11868 debugSerializationBegin("SgAsmJvmLocalVariableEntry");
11869 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
11870 s & BOOST_SERIALIZATION_NVP(p_start_pc);
11871 s & BOOST_SERIALIZATION_NVP(p_length);
11872 s & BOOST_SERIALIZATION_NVP(p_name_index);
11873 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
11874 s & BOOST_SERIALIZATION_NVP(p_index);
11875 debugSerializationEnd("SgAsmJvmLocalVariableEntry");
11876 }
11877#endif // ROSE_ENABLE_BOOST_SERIALIZATION
11878public:
11879public:
11886 uint16_t const& get_start_pc() const;
11887 void set_start_pc(uint16_t const&);
11890public:
11898 uint16_t const& get_length() const;
11899 void set_length(uint16_t const&);
11902public:
11910 uint16_t const& get_name_index() const;
11911 void set_name_index(uint16_t const&);
11914public:
11922 uint16_t const& get_descriptor_index() const;
11923 void set_descriptor_index(uint16_t const&);
11926public:
11933 uint16_t const& get_index() const;
11934 void set_index(uint16_t const&);
11936 public:
11941
11944
11946 virtual void unparse(std::ostream&) const override;
11947
11949 void dump(FILE*, const char *prefix, ssize_t idx) const override;
11950public:
11953
11954public:
11957
11958protected:
11966#endif // SgAsmJvmLocalVariableEntry_OTHERS
11967#ifdef DOCUMENTATION
11968};
11969#endif // DOCUMENTATION
11970
11971
11973// SgAsmJvmLineNumberTable -- MACHINE GENERATED; DO NOT MODIFY --
11975
11976DECLARE_LEAF_CLASS(AsmJvmLineNumberTable);
11977IS_SERIALIZABLE(AsmJvmLineNumberTable);
11978
11979#ifndef DOCUMENTATION
11980AsmJvmLineNumberTable.useSmallHeader(true);
11981#endif // !DOCUMENTATION
11982
11983DECLARE_HEADERS(AsmJvmLineNumberTable);
11984#if defined(SgAsmJvmLineNumberTable_HEADERS) || defined(DOCUMENTATION)
11985#include <sageContainer.h>
11986#endif // SgAsmJvmLineNumberTable_HEADERS
11987
11988#ifdef DOCUMENTATION
11995#endif // DOCUMENTATION
11996
11997#ifndef DOCUMENTATION
11998 AsmJvmLineNumberTable.setDataPrototype(
11999 "std::vector<SgAsmJvmLineNumberTable::Entry*>", "line_number_table", "",
12000 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12001#endif // !DOCUMENTATION
12002
12003 DECLARE_OTHERS(AsmJvmLineNumberTable);
12004#if defined(SgAsmJvmLineNumberTable_OTHERS) || defined(DOCUMENTATION)
12005
12006 //----------------------- Boost serialization for SgAsmJvmLineNumberTable -----------------------
12007#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12008private:
12009 friend class boost::serialization::access;
12010
12011 template<class S>
12012 void serialize(S &s, const unsigned /*version*/) {
12013 debugSerializationBegin("SgAsmJvmLineNumberTable");
12014 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12015 s & BOOST_SERIALIZATION_NVP(p_line_number_table);
12016 debugSerializationEnd("SgAsmJvmLineNumberTable");
12017 }
12018#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12020 // Local types
12022public:
12027 struct Entry {
12028 uint16_t start_pc = 0;
12029 uint16_t line_number = 0;
12030
12031#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12032 template<class S>
12033 void serialize(S &s, const unsigned /*version*/) {
12034 s & BOOST_SERIALIZATION_NVP(start_pc);
12035 s & BOOST_SERIALIZATION_NVP(line_number);
12036 }
12037#endif
12038 };
12039
12041 // Properties
12043public:
12044public:
12050 std::vector<SgAsmJvmLineNumberTable::Entry*> const& get_line_number_table() const;
12051 std::vector<SgAsmJvmLineNumberTable::Entry*>& get_line_number_table();
12057
12060
12062 virtual void unparse(std::ostream&) const override;
12063
12065 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12066public:
12069
12070public:
12073
12074protected:
12082#endif // SgAsmJvmLineNumberTable_OTHERS
12083#ifdef DOCUMENTATION
12084};
12085#endif // DOCUMENTATION
12086
12087
12089// SgAsmJvmInstruction -- MACHINE GENERATED; DO NOT MODIFY --
12091
12092DECLARE_LEAF_CLASS(AsmJvmInstruction);
12093IS_SERIALIZABLE(AsmJvmInstruction);
12094
12095#ifndef DOCUMENTATION
12096AsmJvmInstruction.useSmallHeader(true);
12097#endif // !DOCUMENTATION
12098
12099DECLARE_HEADERS(AsmJvmInstruction);
12100#if defined(SgAsmJvmInstruction_HEADERS) || defined(DOCUMENTATION)
12101#include <Rose/BinaryAnalysis/InstructionEnumsJvm.h>
12102#endif // SgAsmJvmInstruction_HEADERS
12103
12104#ifdef DOCUMENTATION
12107#endif // DOCUMENTATION
12108
12109#ifndef DOCUMENTATION
12110 AsmJvmInstruction.setDataPrototype(
12111 "Rose::BinaryAnalysis::JvmInstructionKind", "kind", "= Rose::BinaryAnalysis::JvmInstructionKind::unknown",
12112 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12113#endif // !DOCUMENTATION
12114
12115 DECLARE_OTHERS(AsmJvmInstruction);
12116#if defined(SgAsmJvmInstruction_OTHERS) || defined(DOCUMENTATION)
12117
12118 //----------------------- Boost serialization for SgAsmJvmInstruction -----------------------
12119#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12120private:
12121 friend class boost::serialization::access;
12122
12123 template<class S>
12124 void serialize(S &s, const unsigned /*version*/) {
12125 debugSerializationBegin("SgAsmJvmInstruction");
12126 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmInstruction);
12127 s & BOOST_SERIALIZATION_NVP(p_kind);
12128 debugSerializationEnd("SgAsmJvmInstruction");
12129 }
12130#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12131public:
12132public:
12139 Rose::BinaryAnalysis::JvmInstructionKind const& get_kind() const;
12140 void set_kind(Rose::BinaryAnalysis::JvmInstructionKind const&);
12142public:
12143 // Overrides are documented in the base class
12144 virtual unsigned get_anyKind() const override;
12145public:
12148
12149public:
12152
12153public:
12156 uint8_t const& architectureId,
12157 Rose::BinaryAnalysis::JvmInstructionKind const& kind);
12158
12159protected:
12167#endif // SgAsmJvmInstruction_OTHERS
12168#ifdef DOCUMENTATION
12169};
12170#endif // DOCUMENTATION
12171
12172
12174// SgAsmJvmInnerClasses -- MACHINE GENERATED; DO NOT MODIFY --
12176
12177DECLARE_LEAF_CLASS(AsmJvmInnerClasses);
12178IS_SERIALIZABLE(AsmJvmInnerClasses);
12179
12180#ifndef DOCUMENTATION
12181AsmJvmInnerClasses.useSmallHeader(true);
12182#endif // !DOCUMENTATION
12183
12184DECLARE_HEADERS(AsmJvmInnerClasses);
12185#if defined(SgAsmJvmInnerClasses_HEADERS) || defined(DOCUMENTATION)
12186#include <sageContainer.h>
12187#endif // SgAsmJvmInnerClasses_HEADERS
12188
12189#ifdef DOCUMENTATION
12196#endif // DOCUMENTATION
12197
12198#ifndef DOCUMENTATION
12199 AsmJvmInnerClasses.setDataPrototype(
12200 "std::vector<SgAsmJvmInnerClasses::Entry*>", "classes", "",
12201 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12202#endif // !DOCUMENTATION
12203
12204 DECLARE_OTHERS(AsmJvmInnerClasses);
12205#if defined(SgAsmJvmInnerClasses_OTHERS) || defined(DOCUMENTATION)
12206
12207 //----------------------- Boost serialization for SgAsmJvmInnerClasses -----------------------
12208#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12209private:
12210 friend class boost::serialization::access;
12211
12212 template<class S>
12213 void serialize(S &s, const unsigned /*version*/) {
12214 debugSerializationBegin("SgAsmJvmInnerClasses");
12215 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12216 s & BOOST_SERIALIZATION_NVP(p_classes);
12217 debugSerializationEnd("SgAsmJvmInnerClasses");
12218 }
12219#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12221 // Local types
12223public:
12229 struct Entry {
12230 uint16_t inner_class_info_index = 0;
12231 uint16_t outer_class_info_index = 0;
12232 uint16_t inner_name_index = 0;
12233 uint16_t inner_class_access_flags = 0;
12234
12235#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12236 template<class S>
12237 void serialize(S &s, const unsigned /*version*/) {
12238 s & BOOST_SERIALIZATION_NVP(inner_class_info_index);
12239 s & BOOST_SERIALIZATION_NVP(outer_class_info_index);
12240 s & BOOST_SERIALIZATION_NVP(inner_name_index);
12241 s & BOOST_SERIALIZATION_NVP(inner_class_access_flags);
12242 }
12243#endif
12244 };
12245
12247 // Properties
12249public:
12250public:
12254 std::vector<SgAsmJvmInnerClasses::Entry*> const& get_classes() const;
12255 std::vector<SgAsmJvmInnerClasses::Entry*>& get_classes();
12261
12267
12269 virtual void unparse(std::ostream&) const override;
12270
12272 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12273public:
12276
12277public:
12280
12281protected:
12289#endif // SgAsmJvmInnerClasses_OTHERS
12290#ifdef DOCUMENTATION
12291};
12292#endif // DOCUMENTATION
12293
12294
12296// SgAsmJvmIndexTableAttr -- MACHINE GENERATED; DO NOT MODIFY --
12298
12299DECLARE_LEAF_CLASS(AsmJvmIndexTableAttr);
12300IS_SERIALIZABLE(AsmJvmIndexTableAttr);
12301
12302#ifndef DOCUMENTATION
12303AsmJvmIndexTableAttr.useSmallHeader(true);
12304#endif // !DOCUMENTATION
12305
12306DECLARE_HEADERS(AsmJvmIndexTableAttr);
12307#if defined(SgAsmJvmIndexTableAttr_HEADERS) || defined(DOCUMENTATION)
12308#include <sageContainer.h>
12309#endif // SgAsmJvmIndexTableAttr_HEADERS
12310
12311#ifdef DOCUMENTATION
12345#endif // DOCUMENTATION
12346
12347#ifndef DOCUMENTATION
12348 AsmJvmIndexTableAttr.setDataPrototype(
12349 "unsigned", "attribute_type", "= SgAsmJvmIndexTableAttr::ATTR_NONE",
12350 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12351#endif // !DOCUMENTATION
12352
12353#ifndef DOCUMENTATION
12354 AsmJvmIndexTableAttr.setDataPrototype(
12355 "std::vector<uint16_t>", "table", "",
12356 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12357#endif // !DOCUMENTATION
12358
12359 DECLARE_OTHERS(AsmJvmIndexTableAttr);
12360#if defined(SgAsmJvmIndexTableAttr_OTHERS) || defined(DOCUMENTATION)
12361
12362 //----------------------- Boost serialization for SgAsmJvmIndexTableAttr -----------------------
12363#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12364private:
12365 friend class boost::serialization::access;
12366
12367 template<class S>
12368 void serialize(S &s, const unsigned /*version*/) {
12369 debugSerializationBegin("SgAsmJvmIndexTableAttr");
12370 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12371 s & BOOST_SERIALIZATION_NVP(p_attribute_type);
12372 s & BOOST_SERIALIZATION_NVP(p_table);
12373 debugSerializationEnd("SgAsmJvmIndexTableAttr");
12374 }
12375#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12377 // Local types
12379public:
12384 ATTR_NONE,
12385 ATTR_Exceptions, // 4.7.5
12386 ATTR_ModulePackages, // 4.7.26
12387 ATTR_NestMembers , // 4.7.29
12388 ATTR_PermittedSubclasses // 4.7.31
12389 };
12390
12392 // Properties
12394public:
12395public:
12401 unsigned const& get_attribute_type() const;
12402 void set_attribute_type(unsigned const&);
12405public:
12411 std::vector<uint16_t> const& get_table() const;
12412 std::vector<uint16_t>& get_table();
12414 public:
12419
12422
12424 virtual void unparse(std::ostream&) const override;
12425
12427 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12428public:
12431
12432public:
12435
12436protected:
12444#endif // SgAsmJvmIndexTableAttr_OTHERS
12445#ifdef DOCUMENTATION
12446};
12447#endif // DOCUMENTATION
12448
12449
12451// SgAsmJvmIndexedAttr -- MACHINE GENERATED; DO NOT MODIFY --
12453
12454DECLARE_LEAF_CLASS(AsmJvmIndexedAttr);
12455IS_SERIALIZABLE(AsmJvmIndexedAttr);
12456
12457#ifndef DOCUMENTATION
12458AsmJvmIndexedAttr.useSmallHeader(true);
12459#endif // !DOCUMENTATION
12460
12461DECLARE_HEADERS(AsmJvmIndexedAttr);
12462#if defined(SgAsmJvmIndexedAttr_HEADERS) || defined(DOCUMENTATION)
12463#include <sageContainer.h>
12464#endif // SgAsmJvmIndexedAttr_HEADERS
12465
12466#ifdef DOCUMENTATION
12495#endif // DOCUMENTATION
12496
12497#ifndef DOCUMENTATION
12498 AsmJvmIndexedAttr.setDataPrototype(
12499 "unsigned", "attribute_type", "= SgAsmJvmIndexedAttr::ATTR_NONE",
12500 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12501#endif // !DOCUMENTATION
12502
12503#ifndef DOCUMENTATION
12504 AsmJvmIndexedAttr.setDataPrototype(
12505 "uint16_t", "index", "",
12506 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12507#endif // !DOCUMENTATION
12508
12509 DECLARE_OTHERS(AsmJvmIndexedAttr);
12510#if defined(SgAsmJvmIndexedAttr_OTHERS) || defined(DOCUMENTATION)
12511
12512 //----------------------- Boost serialization for SgAsmJvmIndexedAttr -----------------------
12513#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12514private:
12515 friend class boost::serialization::access;
12516
12517 template<class S>
12518 void serialize(S &s, const unsigned /*version*/) {
12519 debugSerializationBegin("SgAsmJvmIndexedAttr");
12520 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
12521 s & BOOST_SERIALIZATION_NVP(p_attribute_type);
12522 s & BOOST_SERIALIZATION_NVP(p_index);
12523 debugSerializationEnd("SgAsmJvmIndexedAttr");
12524 }
12525#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12527 // Local types
12529public:
12534 ATTR_NONE,
12535 ATTR_ConstantValue, // 4.7.2
12536 ATTR_Synthetic, // 4.7.8
12537 ATTR_Signature, // 4.7.9
12538 ATTR_SourceFile, // 4.7.10
12539 ATTR_Deprecated, // 4.7.15
12540 ATTR_ModuleMainClass, // 4.7.27
12541 ATTR_NestHost // 4.7.28
12542 };
12543
12545 // Properties
12547public:
12548public:
12554 unsigned const& get_attribute_type() const;
12555 void set_attribute_type(unsigned const&);
12558public:
12564 uint16_t const& get_index() const;
12565 void set_index(uint16_t const&);
12567 public:
12572
12575
12577 virtual void unparse(std::ostream&) const override;
12578
12580 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12581public:
12584
12585public:
12588
12589protected:
12597#endif // SgAsmJvmIndexedAttr_OTHERS
12598#ifdef DOCUMENTATION
12599};
12600#endif // DOCUMENTATION
12601
12602
12604// SgAsmJvmFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
12606
12607DECLARE_LEAF_CLASS(AsmJvmFileHeader);
12608IS_SERIALIZABLE(AsmJvmFileHeader);
12609
12610#ifndef DOCUMENTATION
12611AsmJvmFileHeader.useSmallHeader(true);
12612#endif // !DOCUMENTATION
12613
12614#ifdef DOCUMENTATION
12622#endif // DOCUMENTATION
12623
12624#ifndef DOCUMENTATION
12625 AsmJvmFileHeader.setDataPrototype(
12626 "uint16_t", "minor_version", "= 0",
12627 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12628#endif // !DOCUMENTATION
12629
12630#ifndef DOCUMENTATION
12631 AsmJvmFileHeader.setDataPrototype(
12632 "uint16_t", "major_version", "= 0",
12633 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12634#endif // !DOCUMENTATION
12635
12636#ifndef DOCUMENTATION
12637 AsmJvmFileHeader.setDataPrototype(
12638 "uint16_t", "access_flags", "= 0",
12639 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12640#endif // !DOCUMENTATION
12641
12642#ifndef DOCUMENTATION
12643 AsmJvmFileHeader.setDataPrototype(
12644 "uint16_t", "this_class", "= 0",
12645 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12646#endif // !DOCUMENTATION
12647
12648#ifndef DOCUMENTATION
12649 AsmJvmFileHeader.setDataPrototype(
12650 "uint16_t", "super_class", "= 0",
12651 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12652#endif // !DOCUMENTATION
12653
12654#ifndef DOCUMENTATION
12655 AsmJvmFileHeader.setDataPrototype(
12656 "SgAsmJvmConstantPool*", "constant_pool", "= nullptr",
12657 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12658#endif // !DOCUMENTATION
12659
12660#ifndef DOCUMENTATION
12661 AsmJvmFileHeader.setDataPrototype(
12662 "std::list<uint16_t>", "interfaces", "",
12663 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12664#endif // !DOCUMENTATION
12665
12666#ifndef DOCUMENTATION
12667 AsmJvmFileHeader.setDataPrototype(
12668 "SgAsmJvmFieldTable*", "field_table", "= nullptr",
12669 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12670#endif // !DOCUMENTATION
12671
12672#ifndef DOCUMENTATION
12673 AsmJvmFileHeader.setDataPrototype(
12674 "SgAsmJvmMethodTable*", "method_table", "= nullptr",
12675 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12676#endif // !DOCUMENTATION
12677
12678#ifndef DOCUMENTATION
12679 AsmJvmFileHeader.setDataPrototype(
12680 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
12681 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12682#endif // !DOCUMENTATION
12683
12684 DECLARE_OTHERS(AsmJvmFileHeader);
12685#if defined(SgAsmJvmFileHeader_OTHERS) || defined(DOCUMENTATION)
12686
12687 //----------------------- Boost serialization for SgAsmJvmFileHeader -----------------------
12688#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12689private:
12690 friend class boost::serialization::access;
12691
12692 template<class S>
12693 void serialize(S &s, const unsigned /*version*/) {
12694 debugSerializationBegin("SgAsmJvmFileHeader");
12695 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
12696 s & BOOST_SERIALIZATION_NVP(p_minor_version);
12697 s & BOOST_SERIALIZATION_NVP(p_major_version);
12698 s & BOOST_SERIALIZATION_NVP(p_access_flags);
12699 s & BOOST_SERIALIZATION_NVP(p_this_class);
12700 s & BOOST_SERIALIZATION_NVP(p_super_class);
12701 s & BOOST_SERIALIZATION_NVP(p_constant_pool);
12702 s & BOOST_SERIALIZATION_NVP(p_interfaces);
12703 s & BOOST_SERIALIZATION_NVP(p_field_table);
12704 s & BOOST_SERIALIZATION_NVP(p_method_table);
12705 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
12706 debugSerializationEnd("SgAsmJvmFileHeader");
12707 }
12708#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12709public:
12710public:
12716 uint16_t const& get_minor_version() const;
12717 void set_minor_version(uint16_t const&);
12720public:
12726 uint16_t const& get_major_version() const;
12727 void set_major_version(uint16_t const&);
12730public:
12736 uint16_t const& get_access_flags() const;
12737 void set_access_flags(uint16_t const&);
12740public:
12746 uint16_t const& get_this_class() const;
12747 void set_this_class(uint16_t const&);
12750public:
12756 uint16_t const& get_super_class() const;
12757 void set_super_class(uint16_t const&);
12760public:
12773public:
12781 std::list<uint16_t> const& get_interfaces() const;
12782 std::list<uint16_t>& get_interfaces();
12783 void set_interfaces(std::list<uint16_t> const&);
12786public:
12799public:
12812public:
12824public:
12827
12833 virtual SgAsmJvmFileHeader* parse() override;
12834
12836 virtual void unparse(std::ostream&) const override;
12837
12840
12841protected:
12842 // Some extra clean-up actions on destruction
12843 virtual void destructorHelper() override;
12844public:
12847
12848public:
12851
12852protected:
12860#endif // SgAsmJvmFileHeader_OTHERS
12861#ifdef DOCUMENTATION
12862};
12863#endif // DOCUMENTATION
12864
12865
12867// SgAsmJvmFieldTable -- MACHINE GENERATED; DO NOT MODIFY --
12869
12870DECLARE_LEAF_CLASS(AsmJvmFieldTable);
12871IS_SERIALIZABLE(AsmJvmFieldTable);
12872
12873#ifndef DOCUMENTATION
12874AsmJvmFieldTable.useSmallHeader(true);
12875#endif // !DOCUMENTATION
12876
12877#ifdef DOCUMENTATION
12884#endif // DOCUMENTATION
12885
12886#ifndef DOCUMENTATION
12887 AsmJvmFieldTable.setDataPrototype(
12888 "SgAsmJvmFieldPtrList", "fields", "",
12889 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
12890#endif // !DOCUMENTATION
12891
12892 DECLARE_OTHERS(AsmJvmFieldTable);
12893#if defined(SgAsmJvmFieldTable_OTHERS) || defined(DOCUMENTATION)
12894
12895 //----------------------- Boost serialization for SgAsmJvmFieldTable -----------------------
12896#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
12897private:
12898 friend class boost::serialization::access;
12899
12900 template<class S>
12901 void serialize(S &s, const unsigned /*version*/) {
12902 debugSerializationBegin("SgAsmJvmFieldTable");
12903 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
12904 s & BOOST_SERIALIZATION_NVP(p_fields);
12905 debugSerializationEnd("SgAsmJvmFieldTable");
12906 }
12907#endif // ROSE_ENABLE_BOOST_SERIALIZATION
12908public:
12909public:
12913 SgAsmJvmFieldPtrList const& get_fields() const;
12914 SgAsmJvmFieldPtrList& get_fields();
12915 void set_fields(SgAsmJvmFieldPtrList const&);
12917public:
12922
12926 virtual SgAsmJvmFieldTable* parse() override;
12927
12929 virtual void unparse(std::ostream&) const override;
12930
12932 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
12933public:
12936
12937public:
12940
12941protected:
12949#endif // SgAsmJvmFieldTable_OTHERS
12950#ifdef DOCUMENTATION
12951};
12952#endif // DOCUMENTATION
12953
12954
12956// SgAsmJvmField -- MACHINE GENERATED; DO NOT MODIFY --
12958
12959DECLARE_LEAF_CLASS(AsmJvmField);
12960IS_SERIALIZABLE(AsmJvmField);
12961
12962#ifndef DOCUMENTATION
12963AsmJvmField.useSmallHeader(true);
12964#endif // !DOCUMENTATION
12965
12966DECLARE_HEADERS(AsmJvmField);
12967#if defined(SgAsmJvmField_HEADERS) || defined(DOCUMENTATION)
12968#ifdef ROSE_SgAsmJvmField_IMPL
12969#include <SgAsmJvmAttributeTable.h>
12970#endif
12971#endif // SgAsmJvmField_HEADERS
12972
12973#ifdef DOCUMENTATION
12978#endif // DOCUMENTATION
12979
12980#ifndef DOCUMENTATION
12981 AsmJvmField.setDataPrototype(
12982 "uint16_t", "access_flags", "= 0",
12983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12984#endif // !DOCUMENTATION
12985
12986#ifndef DOCUMENTATION
12987 AsmJvmField.setDataPrototype(
12988 "uint16_t", "name_index", "= 0",
12989 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12990#endif // !DOCUMENTATION
12991
12992#ifndef DOCUMENTATION
12993 AsmJvmField.setDataPrototype(
12994 "uint16_t", "descriptor_index", "= 0",
12995 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
12996#endif // !DOCUMENTATION
12997
12998#ifndef DOCUMENTATION
12999 AsmJvmField.setDataPrototype(
13000 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
13001 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
13002#endif // !DOCUMENTATION
13003
13004 DECLARE_OTHERS(AsmJvmField);
13005#if defined(SgAsmJvmField_OTHERS) || defined(DOCUMENTATION)
13006
13007 //----------------------- Boost serialization for SgAsmJvmField -----------------------
13008#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13009private:
13010 friend class boost::serialization::access;
13011
13012 template<class S>
13013 void serialize(S &s, const unsigned /*version*/) {
13014 debugSerializationBegin("SgAsmJvmField");
13015 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13016 s & BOOST_SERIALIZATION_NVP(p_access_flags);
13017 s & BOOST_SERIALIZATION_NVP(p_name_index);
13018 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
13019 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
13020 debugSerializationEnd("SgAsmJvmField");
13021 }
13022#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13023public:
13024public:
13031 uint16_t const& get_access_flags() const;
13032 void set_access_flags(uint16_t const&);
13035public:
13041 uint16_t const& get_name_index() const;
13042 void set_name_index(uint16_t const&);
13045public:
13051 uint16_t const& get_descriptor_index() const;
13052 void set_descriptor_index(uint16_t const&);
13055public:
13062 public:
13067
13070
13072 virtual void unparse(std::ostream&) const override;
13073
13075 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13076public:
13079
13080public:
13083
13084protected:
13092#endif // SgAsmJvmField_OTHERS
13093#ifdef DOCUMENTATION
13094};
13095#endif // DOCUMENTATION
13096
13097
13099// SgAsmJvmExceptionTable -- MACHINE GENERATED; DO NOT MODIFY --
13101
13102DECLARE_LEAF_CLASS(AsmJvmExceptionTable);
13103IS_SERIALIZABLE(AsmJvmExceptionTable);
13104
13105#ifndef DOCUMENTATION
13106AsmJvmExceptionTable.useSmallHeader(true);
13107#endif // !DOCUMENTATION
13108
13109DECLARE_HEADERS(AsmJvmExceptionTable);
13110#if defined(SgAsmJvmExceptionTable_HEADERS) || defined(DOCUMENTATION)
13111#include <sageContainer.h>
13112#endif // SgAsmJvmExceptionTable_HEADERS
13113
13114#ifdef DOCUMENTATION
13120#endif // DOCUMENTATION
13121
13122#ifndef DOCUMENTATION
13123 AsmJvmExceptionTable.setDataPrototype(
13124 "SgAsmJvmExceptionHandlerPtrList", "handlers", "",
13125 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13126#endif // !DOCUMENTATION
13127
13128 DECLARE_OTHERS(AsmJvmExceptionTable);
13129#if defined(SgAsmJvmExceptionTable_OTHERS) || defined(DOCUMENTATION)
13130
13131 //----------------------- Boost serialization for SgAsmJvmExceptionTable -----------------------
13132#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13133private:
13134 friend class boost::serialization::access;
13135
13136 template<class S>
13137 void serialize(S &s, const unsigned /*version*/) {
13138 debugSerializationBegin("SgAsmJvmExceptionTable");
13139 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13140 s & BOOST_SERIALIZATION_NVP(p_handlers);
13141 debugSerializationEnd("SgAsmJvmExceptionTable");
13142 }
13143#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13144public:
13145public:
13149 SgAsmJvmExceptionHandlerPtrList const& get_handlers() const;
13150 SgAsmJvmExceptionHandlerPtrList& get_handlers();
13151 void set_handlers(SgAsmJvmExceptionHandlerPtrList const&);
13153public:
13158
13164
13166 virtual void unparse(std::ostream&) const override;
13167
13169 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13170public:
13173
13174public:
13177
13178protected:
13186#endif // SgAsmJvmExceptionTable_OTHERS
13187#ifdef DOCUMENTATION
13188};
13189#endif // DOCUMENTATION
13190
13191
13193// SgAsmJvmExceptionHandler -- MACHINE GENERATED; DO NOT MODIFY --
13195
13196DECLARE_LEAF_CLASS(AsmJvmExceptionHandler);
13197IS_SERIALIZABLE(AsmJvmExceptionHandler);
13198
13199#ifndef DOCUMENTATION
13200AsmJvmExceptionHandler.useSmallHeader(true);
13201#endif // !DOCUMENTATION
13202
13203#ifdef DOCUMENTATION
13208#endif // DOCUMENTATION
13209
13210#ifndef DOCUMENTATION
13211 AsmJvmExceptionHandler.setDataPrototype(
13212 "uint16_t", "start_pc", "= 0",
13213 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13214#endif // !DOCUMENTATION
13215
13216#ifndef DOCUMENTATION
13217 AsmJvmExceptionHandler.setDataPrototype(
13218 "uint16_t", "end_pc", "= 0",
13219 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13220#endif // !DOCUMENTATION
13221
13222#ifndef DOCUMENTATION
13223 AsmJvmExceptionHandler.setDataPrototype(
13224 "uint16_t", "handler_pc", "= 0",
13225 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13226#endif // !DOCUMENTATION
13227
13228#ifndef DOCUMENTATION
13229 AsmJvmExceptionHandler.setDataPrototype(
13230 "uint16_t", "catch_type", "= 0",
13231 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13232#endif // !DOCUMENTATION
13233
13234 DECLARE_OTHERS(AsmJvmExceptionHandler);
13235#if defined(SgAsmJvmExceptionHandler_OTHERS) || defined(DOCUMENTATION)
13236
13237 //----------------------- Boost serialization for SgAsmJvmExceptionHandler -----------------------
13238#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13239private:
13240 friend class boost::serialization::access;
13241
13242 template<class S>
13243 void serialize(S &s, const unsigned /*version*/) {
13244 debugSerializationBegin("SgAsmJvmExceptionHandler");
13245 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13246 s & BOOST_SERIALIZATION_NVP(p_start_pc);
13247 s & BOOST_SERIALIZATION_NVP(p_end_pc);
13248 s & BOOST_SERIALIZATION_NVP(p_handler_pc);
13249 s & BOOST_SERIALIZATION_NVP(p_catch_type);
13250 debugSerializationEnd("SgAsmJvmExceptionHandler");
13251 }
13252#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13253public:
13254public:
13261 uint16_t const& get_start_pc() const;
13262 void set_start_pc(uint16_t const&);
13265public:
13272 uint16_t const& get_end_pc() const;
13273 void set_end_pc(uint16_t const&);
13276public:
13283 uint16_t const& get_handler_pc() const;
13284 void set_handler_pc(uint16_t const&);
13287public:
13294 uint16_t const& get_catch_type() const;
13295 void set_catch_type(uint16_t const&);
13297 public:
13302
13305
13307 virtual void unparse(std::ostream&) const override;
13308
13310 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13311public:
13314
13315public:
13318
13319protected:
13327#endif // SgAsmJvmExceptionHandler_OTHERS
13328#ifdef DOCUMENTATION
13329};
13330#endif // DOCUMENTATION
13331
13332
13334// SgAsmJvmEnclosingMethod -- MACHINE GENERATED; DO NOT MODIFY --
13336
13337DECLARE_LEAF_CLASS(AsmJvmEnclosingMethod);
13338IS_SERIALIZABLE(AsmJvmEnclosingMethod);
13339
13340#ifndef DOCUMENTATION
13341AsmJvmEnclosingMethod.useSmallHeader(true);
13342#endif // !DOCUMENTATION
13343
13344#ifdef DOCUMENTATION
13351#endif // DOCUMENTATION
13352
13353#ifndef DOCUMENTATION
13354 AsmJvmEnclosingMethod.setDataPrototype(
13355 "uint16_t", "class_index", "= 0",
13356 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13357#endif // !DOCUMENTATION
13358
13359#ifndef DOCUMENTATION
13360 AsmJvmEnclosingMethod.setDataPrototype(
13361 "uint16_t", "method_index", "= 0",
13362 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13363#endif // !DOCUMENTATION
13364
13365 DECLARE_OTHERS(AsmJvmEnclosingMethod);
13366#if defined(SgAsmJvmEnclosingMethod_OTHERS) || defined(DOCUMENTATION)
13367
13368 //----------------------- Boost serialization for SgAsmJvmEnclosingMethod -----------------------
13369#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13370private:
13371 friend class boost::serialization::access;
13372
13373 template<class S>
13374 void serialize(S &s, const unsigned /*version*/) {
13375 debugSerializationBegin("SgAsmJvmEnclosingMethod");
13376 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
13377 s & BOOST_SERIALIZATION_NVP(p_class_index);
13378 s & BOOST_SERIALIZATION_NVP(p_method_index);
13379 debugSerializationEnd("SgAsmJvmEnclosingMethod");
13380 }
13381#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13382public:
13383public:
13389 uint16_t const& get_class_index() const;
13390 void set_class_index(uint16_t const&);
13393public:
13400 uint16_t const& get_method_index() const;
13401 void set_method_index(uint16_t const&);
13403public:
13408
13411
13413 virtual void unparse(std::ostream&) const override;
13414
13416 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13417public:
13420
13421public:
13424
13425protected:
13433#endif // SgAsmJvmEnclosingMethod_OTHERS
13434#ifdef DOCUMENTATION
13435};
13436#endif // DOCUMENTATION
13437
13438
13440// SgAsmJvmConstantPoolEntry -- MACHINE GENERATED; DO NOT MODIFY --
13442
13443DECLARE_LEAF_CLASS(AsmJvmConstantPoolEntry);
13444IS_SERIALIZABLE(AsmJvmConstantPoolEntry);
13445
13446#ifndef DOCUMENTATION
13447AsmJvmConstantPoolEntry.useSmallHeader(true);
13448#endif // !DOCUMENTATION
13449
13450#ifdef DOCUMENTATION
13456#endif // DOCUMENTATION
13457
13458#ifndef DOCUMENTATION
13459 AsmJvmConstantPoolEntry.setDataPrototype(
13460 "SgAsmJvmConstantPoolEntry::Kind", "tag", "= SgAsmJvmConstantPoolEntry::EMPTY",
13461 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13462#endif // !DOCUMENTATION
13463
13464#ifndef DOCUMENTATION
13465 AsmJvmConstantPoolEntry.setDataPrototype(
13466 "uint32_t", "bytes", "= 0",
13467 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13468#endif // !DOCUMENTATION
13469
13470#ifndef DOCUMENTATION
13471 AsmJvmConstantPoolEntry.setDataPrototype(
13472 "uint32_t", "hi_bytes", "= 0",
13473 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13474#endif // !DOCUMENTATION
13475
13476#ifndef DOCUMENTATION
13477 AsmJvmConstantPoolEntry.setDataPrototype(
13478 "uint32_t", "low_bytes", "= 0",
13479 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13480#endif // !DOCUMENTATION
13481
13482#ifndef DOCUMENTATION
13483 AsmJvmConstantPoolEntry.setDataPrototype(
13484 "uint16_t", "bootstrap_method_attr_index", "= 0",
13485 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13486#endif // !DOCUMENTATION
13487
13488#ifndef DOCUMENTATION
13489 AsmJvmConstantPoolEntry.setDataPrototype(
13490 "uint16_t", "class_index", "= 0",
13491 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13492#endif // !DOCUMENTATION
13493
13494#ifndef DOCUMENTATION
13495 AsmJvmConstantPoolEntry.setDataPrototype(
13496 "uint16_t", "descriptor_index", "= 0",
13497 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13498#endif // !DOCUMENTATION
13499
13500#ifndef DOCUMENTATION
13501 AsmJvmConstantPoolEntry.setDataPrototype(
13502 "uint16_t", "name_index", "= 0",
13503 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13504#endif // !DOCUMENTATION
13505
13506#ifndef DOCUMENTATION
13507 AsmJvmConstantPoolEntry.setDataPrototype(
13508 "uint16_t", "name_and_type_index", "= 0",
13509 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13510#endif // !DOCUMENTATION
13511
13512#ifndef DOCUMENTATION
13513 AsmJvmConstantPoolEntry.setDataPrototype(
13514 "uint16_t", "reference_index", "= 0",
13515 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13516#endif // !DOCUMENTATION
13517
13518#ifndef DOCUMENTATION
13519 AsmJvmConstantPoolEntry.setDataPrototype(
13520 "uint8_t", "reference_kind", "= 0",
13521 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13522#endif // !DOCUMENTATION
13523
13524#ifndef DOCUMENTATION
13525 AsmJvmConstantPoolEntry.setDataPrototype(
13526 "uint16_t", "string_index", "= 0",
13527 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13528#endif // !DOCUMENTATION
13529
13530#ifndef DOCUMENTATION
13531 AsmJvmConstantPoolEntry.setDataPrototype(
13532 "uint16_t", "length", "= 0",
13533 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13534#endif // !DOCUMENTATION
13535
13536#ifndef DOCUMENTATION
13537 AsmJvmConstantPoolEntry.setDataPrototype(
13538 "char*", "utf8_bytes", "= nullptr",
13539 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13540#endif // !DOCUMENTATION
13541
13542 DECLARE_OTHERS(AsmJvmConstantPoolEntry);
13543#if defined(SgAsmJvmConstantPoolEntry_OTHERS) || defined(DOCUMENTATION)
13544
13545 //----------------------- Boost serialization for SgAsmJvmConstantPoolEntry -----------------------
13546#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13547private:
13548 friend class boost::serialization::access;
13549
13550 template<class S>
13551 void serialize(S &s, const unsigned /*version*/) {
13552 debugSerializationBegin("SgAsmJvmConstantPoolEntry");
13553 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
13554 s & BOOST_SERIALIZATION_NVP(p_tag);
13555 s & BOOST_SERIALIZATION_NVP(p_bytes);
13556 s & BOOST_SERIALIZATION_NVP(p_hi_bytes);
13557 s & BOOST_SERIALIZATION_NVP(p_low_bytes);
13558 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_attr_index);
13559 s & BOOST_SERIALIZATION_NVP(p_class_index);
13560 s & BOOST_SERIALIZATION_NVP(p_descriptor_index);
13561 s & BOOST_SERIALIZATION_NVP(p_name_index);
13562 s & BOOST_SERIALIZATION_NVP(p_name_and_type_index);
13563 s & BOOST_SERIALIZATION_NVP(p_reference_index);
13564 s & BOOST_SERIALIZATION_NVP(p_reference_kind);
13565 s & BOOST_SERIALIZATION_NVP(p_string_index);
13566 s & BOOST_SERIALIZATION_NVP(p_length);
13567 debugSerializationEnd("SgAsmJvmConstantPoolEntry");
13568 }
13569#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13571 // Local types
13573public:
13578 enum Kind {
13579 EMPTY = 0,
13580 CONSTANT_Utf8 = 1,
13581 CONSTANT_Integer = 3,
13582 CONSTANT_Float = 4,
13583 CONSTANT_Long = 5,
13584 CONSTANT_Double = 6,
13585 CONSTANT_Class = 7,
13586 CONSTANT_String = 8,
13587 CONSTANT_Fieldref = 9,
13588 CONSTANT_Methodref = 10,
13589 CONSTANT_InterfaceMethodref = 11,
13590 CONSTANT_NameAndType = 12,
13591 CONSTANT_MethodHandle = 15,
13592 CONSTANT_MethodType = 16,
13593 CONSTANT_Dynamic = 17,
13594 CONSTANT_InvokeDynamic = 18,
13595 CONSTANT_Module = 19,
13596 CONSTANT_Package = 20
13597 };
13598
13599#ifdef DOCUMENTATION
13603#endif
13606 uint8_t tag;
13607 uint16_t name_index;
13608 };
13609
13613 uint8_t tag;
13614 uint16_t class_index;
13615 uint16_t name_and_type_index;
13616 };
13618 uint8_t tag;
13619 uint16_t class_index;
13620 uint16_t name_and_type_index;
13621 };
13623 uint8_t tag;
13624 uint16_t class_index;
13625 uint16_t name_and_type_index;
13626 };
13627
13630 uint8_t tag;
13631 uint16_t string_index;
13632 };
13633
13636 uint8_t tag;
13637 uint32_t bytes;
13638 };
13640 uint8_t tag;
13641 uint32_t bytes;
13642 };
13644 uint8_t tag;
13645 uint32_t hi_bytes;
13646 uint32_t low_bytes;
13647 };
13649 uint8_t tag;
13650 uint32_t hi_bytes;
13651 uint32_t low_bytes;
13652 };
13653
13656 uint8_t tag;
13657 uint16_t name_index;
13658 uint16_t descriptor_index;
13659 };
13660
13663 uint8_t tag;
13664 uint16_t length;
13665 uint8_t* bytes;
13666 };
13667
13670 uint8_t tag;
13671 uint8_t reference_kind;
13672 uint16_t reference_index;
13673 };
13674
13677 uint8_t tag;
13678 uint16_t descriptor_index;
13679 };
13680
13683 uint8_t tag;
13684 uint16_t bootstrap_method_attr_index;
13685 uint16_t name_and_type_index;
13686 };
13688 uint8_t tag;
13689 uint16_t bootstrap_method_attr_index;
13690 uint16_t name_and_type_index;
13691 };
13692
13695 uint8_t tag;
13696 uint16_t name_index;
13697 };
13698
13701 uint8_t tag;
13702 uint16_t name_index;
13703 };
13704
13706 // Properties
13708public:
13709public:
13719public:
13726 uint32_t const& get_bytes() const;
13727 void set_bytes(uint32_t const&);
13730public:
13738 uint32_t const& get_hi_bytes() const;
13739 void set_hi_bytes(uint32_t const&);
13742public:
13750 uint32_t const& get_low_bytes() const;
13751 void set_low_bytes(uint32_t const&);
13754public:
13761 uint16_t const& get_bootstrap_method_attr_index() const;
13762 void set_bootstrap_method_attr_index(uint16_t const&);
13765public:
13772 uint16_t const& get_class_index() const;
13773 void set_class_index(uint16_t const&);
13776public:
13783 uint16_t const& get_descriptor_index() const;
13784 void set_descriptor_index(uint16_t const&);
13787public:
13794 uint16_t const& get_name_index() const;
13795 void set_name_index(uint16_t const&);
13798public:
13806 uint16_t const& get_name_and_type_index() const;
13807 void set_name_and_type_index(uint16_t const&);
13810public:
13817 uint16_t const& get_reference_index() const;
13818 void set_reference_index(uint16_t const&);
13821public:
13828 uint8_t const& get_reference_kind() const;
13829 void set_reference_kind(uint8_t const&);
13832public:
13839 uint16_t const& get_string_index() const;
13840 void set_string_index(uint16_t const&);
13843public:
13850 uint16_t const& get_length() const;
13851 void set_length(uint16_t const&);
13853 // [Robb Matzke 2023-03-22]: I (and the serialization) have no idea what this points to, and therefore it cannot be
13854 // serialized. E.g., how many 'chars' should be serialized? Is the length stored in the `length` property? If so, `utf8_bytes`
13855 // should probably be an std::vector instead, which is a serializable thing. Furthermore, the data member cannot be 'const'
13856 // because that prevents it from being initialized by some de-serialization mechanisms (e.g., boost::serialize creates a default
13857 // constructed object and then fills it in).
13858public:
13864 char* const& get_utf8_bytes() const;
13865 void set_utf8_bytes(char* const&);
13868 // Functions
13870public:
13873
13881 virtual void unparse(std::ostream&) const override;
13882
13884 void dump(FILE*, const char *prefix, ssize_t idx) const override;
13885
13888public:
13891
13892public:
13895
13896protected:
13904#endif // SgAsmJvmConstantPoolEntry_OTHERS
13905#ifdef DOCUMENTATION
13906};
13907#endif // DOCUMENTATION
13908
13909
13911// SgAsmJvmConstantPool -- MACHINE GENERATED; DO NOT MODIFY --
13913
13914DECLARE_LEAF_CLASS(AsmJvmConstantPool);
13915IS_SERIALIZABLE(AsmJvmConstantPool);
13916
13917#ifndef DOCUMENTATION
13918AsmJvmConstantPool.useSmallHeader(true);
13919#endif // !DOCUMENTATION
13920
13921#ifdef DOCUMENTATION
13928#endif // DOCUMENTATION
13929
13930#ifndef DOCUMENTATION
13931 AsmJvmConstantPool.setDataPrototype(
13932 "SgAsmJvmConstantPoolEntryPtrList", "entries", "",
13933 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
13934#endif // !DOCUMENTATION
13935
13936 DECLARE_OTHERS(AsmJvmConstantPool);
13937#if defined(SgAsmJvmConstantPool_OTHERS) || defined(DOCUMENTATION)
13938
13939 //----------------------- Boost serialization for SgAsmJvmConstantPool -----------------------
13940#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
13941private:
13942 friend class boost::serialization::access;
13943
13944 template<class S>
13945 void serialize(S &s, const unsigned /*version*/) {
13946 debugSerializationBegin("SgAsmJvmConstantPool");
13947 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
13948 s & BOOST_SERIALIZATION_NVP(p_entries);
13949 debugSerializationEnd("SgAsmJvmConstantPool");
13950 }
13951#endif // ROSE_ENABLE_BOOST_SERIALIZATION
13952public:
13953public:
13957 SgAsmJvmConstantPoolEntryPtrList const& get_entries() const;
13958 SgAsmJvmConstantPoolEntryPtrList& get_entries();
13959 void set_entries(SgAsmJvmConstantPoolEntryPtrList const&);
13961public:
13964
13970 virtual SgAsmJvmConstantPool* parse() override;
13971
13984 std::string get_utf8_string(size_t index) const;
13985
13987 virtual void unparse(std::ostream&) const override;
13988
13990 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
13991
13992protected:
13993 // Some extra clean-up actions on destruction
13994 virtual void destructorHelper() override;
13995public:
13998
13999public:
14002
14003protected:
14011#endif // SgAsmJvmConstantPool_OTHERS
14012#ifdef DOCUMENTATION
14013};
14014#endif // DOCUMENTATION
14015
14016
14018// SgAsmJvmCodeAttribute -- MACHINE GENERATED; DO NOT MODIFY --
14020
14021DECLARE_LEAF_CLASS(AsmJvmCodeAttribute);
14022IS_SERIALIZABLE(AsmJvmCodeAttribute);
14023
14024#ifndef DOCUMENTATION
14025AsmJvmCodeAttribute.useSmallHeader(true);
14026#endif // !DOCUMENTATION
14027
14028DECLARE_HEADERS(AsmJvmCodeAttribute);
14029#if defined(SgAsmJvmCodeAttribute_HEADERS) || defined(DOCUMENTATION)
14030#include <Rose/BinaryAnalysis/Address.h>
14031#endif // SgAsmJvmCodeAttribute_HEADERS
14032
14033#ifdef DOCUMENTATION
14040#endif // DOCUMENTATION
14041
14042#ifndef DOCUMENTATION
14043 AsmJvmCodeAttribute.setDataPrototype(
14044 "uint16_t", "max_stack", "= 0",
14045 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14046#endif // !DOCUMENTATION
14047
14048#ifndef DOCUMENTATION
14049 AsmJvmCodeAttribute.setDataPrototype(
14050 "uint16_t", "max_locals", "= 0",
14051 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14052#endif // !DOCUMENTATION
14053
14054#ifndef DOCUMENTATION
14055 AsmJvmCodeAttribute.setDataPrototype(
14056 "uint32_t", "code_length", "= 0",
14057 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14058#endif // !DOCUMENTATION
14059
14060#ifndef DOCUMENTATION
14061 AsmJvmCodeAttribute.setDataPrototype(
14062 "const char*", "code", "= nullptr",
14063 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14064#endif // !DOCUMENTATION
14065
14066#ifndef DOCUMENTATION
14067 AsmJvmCodeAttribute.setDataPrototype(
14068 "SgAsmJvmExceptionTable*", "exception_table", "= nullptr",
14069 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14070#endif // !DOCUMENTATION
14071
14072#ifndef DOCUMENTATION
14073 AsmJvmCodeAttribute.setDataPrototype(
14074 "SgAsmJvmAttributeTable*", "attribute_table", "= nullptr",
14075 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14076#endif // !DOCUMENTATION
14077
14078#ifndef DOCUMENTATION
14079 AsmJvmCodeAttribute.setDataPrototype(
14080 "Rose::BinaryAnalysis::Address", "code_offset", "= 0",
14081 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14082#endif // !DOCUMENTATION
14083
14084 DECLARE_OTHERS(AsmJvmCodeAttribute);
14085#if defined(SgAsmJvmCodeAttribute_OTHERS) || defined(DOCUMENTATION)
14086
14087 //----------------------- Boost serialization for SgAsmJvmCodeAttribute -----------------------
14088#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14089private:
14090 friend class boost::serialization::access;
14091
14092 template<class S>
14093 void serialize(S &s, const unsigned /*version*/) {
14094 debugSerializationBegin("SgAsmJvmCodeAttribute");
14095 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
14096 s & BOOST_SERIALIZATION_NVP(p_max_stack);
14097 s & BOOST_SERIALIZATION_NVP(p_max_locals);
14098 s & BOOST_SERIALIZATION_NVP(p_code_length);
14099 s & BOOST_SERIALIZATION_NVP(p_exception_table);
14100 s & BOOST_SERIALIZATION_NVP(p_attribute_table);
14101 s & BOOST_SERIALIZATION_NVP(p_code_offset);
14102 debugSerializationEnd("SgAsmJvmCodeAttribute");
14103 }
14104#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14105public:
14106public:
14113 uint16_t const& get_max_stack() const;
14114 void set_max_stack(uint16_t const&);
14117public:
14124 uint16_t const& get_max_locals() const;
14125 void set_max_locals(uint16_t const&);
14128public:
14135 uint32_t const& get_code_length() const;
14136 void set_code_length(uint32_t const&);
14138 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
14139public:
14145 const char* const& get_code() const;
14146 void set_code(const char* const&);
14149public:
14159public:
14169public:
14179public:
14184
14187
14189 virtual void unparse(std::ostream&) const override;
14190
14192 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14193public:
14196
14197public:
14200
14201protected:
14209#endif // SgAsmJvmCodeAttribute_OTHERS
14210#ifdef DOCUMENTATION
14211};
14212#endif // DOCUMENTATION
14213
14214
14216// SgAsmJvmClass -- MACHINE GENERATED; DO NOT MODIFY --
14218
14219DECLARE_LEAF_CLASS(AsmJvmClass);
14220IS_SERIALIZABLE(AsmJvmClass);
14221
14222#ifndef DOCUMENTATION
14223AsmJvmClass.useSmallHeader(true);
14224#endif // !DOCUMENTATION
14225
14226#ifdef DOCUMENTATION
14231#endif // DOCUMENTATION
14232
14233 DECLARE_OTHERS(AsmJvmClass);
14234#if defined(SgAsmJvmClass_OTHERS) || defined(DOCUMENTATION)
14235
14236 //----------------------- Boost serialization for SgAsmJvmClass -----------------------
14237#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14238private:
14239 friend class boost::serialization::access;
14240
14241 template<class S>
14242 void serialize(S &s, const unsigned /*version*/) {
14243 debugSerializationBegin("SgAsmJvmClass");
14244 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
14245 debugSerializationEnd("SgAsmJvmClass");
14246 }
14247#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14248
14249public:
14252
14253public:
14256
14257protected:
14265#endif // SgAsmJvmClass_OTHERS
14266#ifdef DOCUMENTATION
14267};
14268#endif // DOCUMENTATION
14269
14270
14272// SgAsmJvmBootstrapMethods -- MACHINE GENERATED; DO NOT MODIFY --
14274
14275DECLARE_LEAF_CLASS(AsmJvmBootstrapMethods);
14276IS_SERIALIZABLE(AsmJvmBootstrapMethods);
14277
14278#ifndef DOCUMENTATION
14279AsmJvmBootstrapMethods.useSmallHeader(true);
14280#endif // !DOCUMENTATION
14281
14282DECLARE_HEADERS(AsmJvmBootstrapMethods);
14283#if defined(SgAsmJvmBootstrapMethods_HEADERS) || defined(DOCUMENTATION)
14284#include <sageContainer.h>
14285#endif // SgAsmJvmBootstrapMethods_HEADERS
14286
14287#ifdef DOCUMENTATION
14293#endif // DOCUMENTATION
14294
14295#ifndef DOCUMENTATION
14296 AsmJvmBootstrapMethods.setDataPrototype(
14297 "SgAsmJvmBootstrapMethodPtrList", "bootstrap_methods", "",
14298 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14299#endif // !DOCUMENTATION
14300
14301 DECLARE_OTHERS(AsmJvmBootstrapMethods);
14302#if defined(SgAsmJvmBootstrapMethods_OTHERS) || defined(DOCUMENTATION)
14303
14304 //----------------------- Boost serialization for SgAsmJvmBootstrapMethods -----------------------
14305#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14306private:
14307 friend class boost::serialization::access;
14308
14309 template<class S>
14310 void serialize(S &s, const unsigned /*version*/) {
14311 debugSerializationBegin("SgAsmJvmBootstrapMethods");
14312 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
14313 s & BOOST_SERIALIZATION_NVP(p_bootstrap_methods);
14314 debugSerializationEnd("SgAsmJvmBootstrapMethods");
14315 }
14316#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14318 // Properties
14320public:
14321public:
14325 SgAsmJvmBootstrapMethodPtrList const& get_bootstrap_methods() const;
14326 SgAsmJvmBootstrapMethodPtrList& get_bootstrap_methods();
14327 void set_bootstrap_methods(SgAsmJvmBootstrapMethodPtrList const&);
14330 // Functions
14332public:
14337
14340
14342 virtual void unparse(std::ostream&) const override;
14343
14345 void dump(FILE*, const char *prefix, ssize_t idx) const override;
14346public:
14349
14350public:
14353
14354protected:
14362#endif // SgAsmJvmBootstrapMethods_OTHERS
14363#ifdef DOCUMENTATION
14364};
14365#endif // DOCUMENTATION
14366
14367
14369// SgAsmJvmBootstrapMethod -- MACHINE GENERATED; DO NOT MODIFY --
14371
14372DECLARE_LEAF_CLASS(AsmJvmBootstrapMethod);
14373IS_SERIALIZABLE(AsmJvmBootstrapMethod);
14374
14375#ifndef DOCUMENTATION
14376AsmJvmBootstrapMethod.useSmallHeader(true);
14377#endif // !DOCUMENTATION
14378
14379DECLARE_HEADERS(AsmJvmBootstrapMethod);
14380#if defined(SgAsmJvmBootstrapMethod_HEADERS) || defined(DOCUMENTATION)
14381#include <sageContainer.h>
14382#endif // SgAsmJvmBootstrapMethod_HEADERS
14383
14384#ifdef DOCUMENTATION
14391#endif // DOCUMENTATION
14392
14393#ifndef DOCUMENTATION
14394 AsmJvmBootstrapMethod.setDataPrototype(
14395 "uint16_t", "bootstrap_method_ref", "= 0",
14396 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14397#endif // !DOCUMENTATION
14398
14399#ifndef DOCUMENTATION
14400 AsmJvmBootstrapMethod.setDataPrototype(
14401 "SgUnsigned16List", "bootstrap_arguments", "",
14402 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14403#endif // !DOCUMENTATION
14404
14405 DECLARE_OTHERS(AsmJvmBootstrapMethod);
14406#if defined(SgAsmJvmBootstrapMethod_OTHERS) || defined(DOCUMENTATION)
14407
14408 //----------------------- Boost serialization for SgAsmJvmBootstrapMethod -----------------------
14409#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14410private:
14411 friend class boost::serialization::access;
14412
14413 template<class S>
14414 void serialize(S &s, const unsigned /*version*/) {
14415 debugSerializationBegin("SgAsmJvmBootstrapMethod");
14416 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
14417 s & BOOST_SERIALIZATION_NVP(p_bootstrap_method_ref);
14418 s & BOOST_SERIALIZATION_NVP(p_bootstrap_arguments);
14419 debugSerializationEnd("SgAsmJvmBootstrapMethod");
14420 }
14421#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14422public:
14423public:
14430 uint16_t const& get_bootstrap_method_ref() const;
14431 void set_bootstrap_method_ref(uint16_t const&);
14434public:
14441 SgUnsigned16List const& get_bootstrap_arguments() const;
14442 void set_bootstrap_arguments(SgUnsigned16List const&);
14444 public:
14449
14452
14454 virtual void unparse(std::ostream&) const override;
14455
14457 void dump(FILE*, const char *prefix, ssize_t idx) const override;
14458public:
14461
14462public:
14465
14466protected:
14474#endif // SgAsmJvmBootstrapMethod_OTHERS
14475#ifdef DOCUMENTATION
14476};
14477#endif // DOCUMENTATION
14478
14479
14481// SgAsmJvmAttributeTable -- MACHINE GENERATED; DO NOT MODIFY --
14483
14484DECLARE_LEAF_CLASS(AsmJvmAttributeTable);
14485IS_SERIALIZABLE(AsmJvmAttributeTable);
14486
14487#ifndef DOCUMENTATION
14488AsmJvmAttributeTable.useSmallHeader(true);
14489#endif // !DOCUMENTATION
14490
14491#ifdef DOCUMENTATION
14498#endif // DOCUMENTATION
14499
14500#ifndef DOCUMENTATION
14501 AsmJvmAttributeTable.setDataPrototype(
14502 "SgAsmJvmAttributePtrList", "attributes", "",
14503 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14504#endif // !DOCUMENTATION
14505
14506 DECLARE_OTHERS(AsmJvmAttributeTable);
14507#if defined(SgAsmJvmAttributeTable_OTHERS) || defined(DOCUMENTATION)
14508
14509 //----------------------- Boost serialization for SgAsmJvmAttributeTable -----------------------
14510#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14511private:
14512 friend class boost::serialization::access;
14513
14514 template<class S>
14515 void serialize(S &s, const unsigned /*version*/) {
14516 debugSerializationBegin("SgAsmJvmAttributeTable");
14517 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
14518 s & BOOST_SERIALIZATION_NVP(p_attributes);
14519 debugSerializationEnd("SgAsmJvmAttributeTable");
14520 }
14521#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14522public:
14523public:
14527 SgAsmJvmAttributePtrList const& get_attributes() const;
14528 SgAsmJvmAttributePtrList& get_attributes();
14529 void set_attributes(SgAsmJvmAttributePtrList const&);
14531public:
14536
14541 using SgAsmGenericSection::parse; // Removes warning messages on some compilers
14542 // ("hidden virtual overloaded function")
14544
14546 virtual void unparse(std::ostream&) const override;
14547
14549 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14550public:
14553
14554public:
14557
14558protected:
14566#endif // SgAsmJvmAttributeTable_OTHERS
14567#ifdef DOCUMENTATION
14568};
14569#endif // DOCUMENTATION
14570
14571
14573// SgAsmJvmAnnotationDefault -- MACHINE GENERATED; DO NOT MODIFY --
14575
14576DECLARE_LEAF_CLASS(AsmJvmAnnotationDefault);
14577IS_SERIALIZABLE(AsmJvmAnnotationDefault);
14578
14579#ifndef DOCUMENTATION
14580AsmJvmAnnotationDefault.useSmallHeader(true);
14581#endif // !DOCUMENTATION
14582
14583#ifdef DOCUMENTATION
14592#endif // DOCUMENTATION
14593
14594#ifndef DOCUMENTATION
14595 AsmJvmAnnotationDefault.setDataPrototype(
14596 "SgAsmJvmRuntimeAnnotationValue*", "default_value", "= nullptr",
14597 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14598#endif // !DOCUMENTATION
14599
14600 DECLARE_OTHERS(AsmJvmAnnotationDefault);
14601#if defined(SgAsmJvmAnnotationDefault_OTHERS) || defined(DOCUMENTATION)
14602
14603 //----------------------- Boost serialization for SgAsmJvmAnnotationDefault -----------------------
14604#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14605private:
14606 friend class boost::serialization::access;
14607
14608 template<class S>
14609 void serialize(S &s, const unsigned /*version*/) {
14610 debugSerializationBegin("SgAsmJvmAnnotationDefault");
14611 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmAttribute);
14612 s & BOOST_SERIALIZATION_NVP(p_default_value);
14613 debugSerializationEnd("SgAsmJvmAnnotationDefault");
14614 }
14615#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14616public:
14617public:
14628 public:
14633
14636
14638 virtual void unparse(std::ostream&) const override;
14639
14641 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14642public:
14645
14646public:
14649
14650protected:
14658#endif // SgAsmJvmAnnotationDefault_OTHERS
14659#ifdef DOCUMENTATION
14660};
14661#endif // DOCUMENTATION
14662
14663
14665// SgAsmJvmAttribute -- MACHINE GENERATED; DO NOT MODIFY --
14667
14668#ifndef DOCUMENTATION
14669AstNodeClass& AsmJvmAttribute = nonTerminalConstructor(
14670 "AsmJvmAttribute",
14671 *this,
14672 "AsmJvmAttribute",
14673 "AsmJvmAttributeTag",
14674 SubclassListBuilder()
14675 | AsmJvmAnnotationDefault
14676 | AsmJvmBootstrapMethods
14677 | AsmJvmCodeAttribute
14678 | AsmJvmEnclosingMethod
14679 | AsmJvmIndexedAttr
14680 | AsmJvmIndexTableAttr
14681 | AsmJvmInnerClasses
14682 | AsmJvmLineNumberTable
14683 | AsmJvmLocalVariableTable
14684 | AsmJvmLocalVariableTypeTable
14685 | AsmJvmMethodParameters
14686 | AsmJvmModule
14687 | AsmJvmRuntimeInvisibleAnnotations
14688 | AsmJvmRuntimeVisibilityParamAnnotations
14689 | AsmJvmRuntimeVisibleAnnotations
14690 | AsmJvmStackMapTable
14691 , false);
14692assert(AsmJvmAttribute.associatedGrammar != nullptr);
14693AsmJvmAttribute.setCppCondition("!defined(DOCUMENTATION)");
14694AsmJvmAttribute.isBoostSerializable(true);
14695AsmJvmAttribute.setAutomaticGenerationOfConstructor(false);
14696AsmJvmAttribute.setAutomaticGenerationOfDestructor(false);
14697#endif // !DOCUMENTATION
14698
14699#ifndef DOCUMENTATION
14700AsmJvmAttribute.useSmallHeader(true);
14701#endif // !DOCUMENTATION
14702
14703#ifdef DOCUMENTATION
14706#endif // DOCUMENTATION
14707
14708#ifndef DOCUMENTATION
14709 AsmJvmAttribute.setDataPrototype(
14710 "uint16_t", "attribute_name_index", "= 0",
14711 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14712#endif // !DOCUMENTATION
14713
14714#ifndef DOCUMENTATION
14715 AsmJvmAttribute.setDataPrototype(
14716 "uint32_t", "attribute_length", "= 0",
14717 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14718#endif // !DOCUMENTATION
14719
14720 DECLARE_OTHERS(AsmJvmAttribute);
14721#if defined(SgAsmJvmAttribute_OTHERS) || defined(DOCUMENTATION)
14722
14723 //----------------------- Boost serialization for SgAsmJvmAttribute -----------------------
14724#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14725private:
14726 friend class boost::serialization::access;
14727
14728 template<class S>
14729 void serialize(S &s, const unsigned /*version*/) {
14730 debugSerializationBegin("SgAsmJvmAttribute");
14731 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmJvmNode);
14732 s & BOOST_SERIALIZATION_NVP(p_attribute_name_index);
14733 s & BOOST_SERIALIZATION_NVP(p_attribute_length);
14734 debugSerializationEnd("SgAsmJvmAttribute");
14735 }
14736#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14737public:
14738public:
14744 uint16_t const& get_attribute_name_index() const;
14745 void set_attribute_name_index(uint16_t const&);
14748public:
14755 uint32_t const& get_attribute_length() const;
14756 void set_attribute_length(uint32_t const&);
14758public:
14761
14764
14766 virtual void unparse(std::ostream&) const override;
14767
14769 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
14770public:
14773
14774protected:
14777
14778protected:
14786#endif // SgAsmJvmAttribute_OTHERS
14787#ifdef DOCUMENTATION
14788};
14789#endif // DOCUMENTATION
14790
14791
14793// SgAsmJvmNode -- MACHINE GENERATED; DO NOT MODIFY --
14795
14796#ifndef DOCUMENTATION
14797AstNodeClass& AsmJvmNode = nonTerminalConstructor(
14798 "AsmJvmNode",
14799 *this,
14800 "AsmJvmNode",
14801 "AsmJvmNodeTag",
14802 SubclassListBuilder()
14803 | AsmJvmAttribute
14804 | AsmJvmBootstrapMethod
14805 | AsmJvmClass
14806 | AsmJvmConstantPoolEntry
14807 | AsmJvmExceptionHandler
14808 | AsmJvmExceptionTable
14809 | AsmJvmField
14810 | AsmJvmLocalVariableEntry
14811 | AsmJvmLocalVariableTypeEntry
14812 | AsmJvmMethod
14813 | AsmJvmMethodParametersEntry
14814 | AsmJvmRuntimeAnnotation
14815 | AsmJvmRuntimeAnnotationPair
14816 | AsmJvmRuntimeAnnotationValue
14817 | AsmJvmRuntimeParameterAnnotation
14818 | AsmJvmStackMapFrame
14819 | AsmJvmStackMapVerificationType
14820 , false);
14821assert(AsmJvmNode.associatedGrammar != nullptr);
14822AsmJvmNode.setCppCondition("!defined(DOCUMENTATION)");
14823AsmJvmNode.isBoostSerializable(true);
14824AsmJvmNode.setAutomaticGenerationOfConstructor(false);
14825AsmJvmNode.setAutomaticGenerationOfDestructor(false);
14826#endif // !DOCUMENTATION
14827
14828#ifndef DOCUMENTATION
14829AsmJvmNode.useSmallHeader(true);
14830#endif // !DOCUMENTATION
14831
14832#ifdef DOCUMENTATION
14835#endif // DOCUMENTATION
14836
14837 DECLARE_OTHERS(AsmJvmNode);
14838#if defined(SgAsmJvmNode_OTHERS) || defined(DOCUMENTATION)
14839
14840 //----------------------- Boost serialization for SgAsmJvmNode -----------------------
14841#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14842private:
14843 friend class boost::serialization::access;
14844
14845 template<class S>
14846 void serialize(S &s, const unsigned /*version*/) {
14847 debugSerializationBegin("SgAsmJvmNode");
14848 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14849 debugSerializationEnd("SgAsmJvmNode");
14850 }
14851#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14852public:
14854 virtual void unparse(std::ostream&) const;
14855
14857 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
14858public:
14860 virtual ~SgAsmJvmNode();
14861
14862protected:
14865
14866protected:
14874#endif // SgAsmJvmNode_OTHERS
14875#ifdef DOCUMENTATION
14876};
14877#endif // DOCUMENTATION
14878
14879
14881// SgAsmInterpretationList -- MACHINE GENERATED; DO NOT MODIFY --
14883
14884DECLARE_LEAF_CLASS(AsmInterpretationList);
14885IS_SERIALIZABLE(AsmInterpretationList);
14886
14887#ifndef DOCUMENTATION
14888AsmInterpretationList.useSmallHeader(true);
14889#endif // !DOCUMENTATION
14890
14891DECLARE_HEADERS(AsmInterpretationList);
14892#if defined(SgAsmInterpretationList_HEADERS) || defined(DOCUMENTATION)
14893#include <sageContainer.h>
14894#endif // SgAsmInterpretationList_HEADERS
14895
14896#ifdef DOCUMENTATION
14898#endif // DOCUMENTATION
14899
14900#ifndef DOCUMENTATION
14901 AsmInterpretationList.setDataPrototype(
14902 "SgAsmInterpretationPtrList", "interpretations", "",
14903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
14904#endif // !DOCUMENTATION
14905
14906 DECLARE_OTHERS(AsmInterpretationList);
14907#if defined(SgAsmInterpretationList_OTHERS) || defined(DOCUMENTATION)
14908
14909 //----------------------- Boost serialization for SgAsmInterpretationList -----------------------
14910#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
14911private:
14912 friend class boost::serialization::access;
14913
14914 template<class S>
14915 void serialize(S &s, const unsigned /*version*/) {
14916 debugSerializationBegin("SgAsmInterpretationList");
14917 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
14918 s & BOOST_SERIALIZATION_NVP(p_interpretations);
14919 debugSerializationEnd("SgAsmInterpretationList");
14920 }
14921#endif // ROSE_ENABLE_BOOST_SERIALIZATION
14922public:
14923public:
14930 SgAsmInterpretationPtrList const& get_interpretations() const;
14931 SgAsmInterpretationPtrList& get_interpretations();
14932 void set_interpretations(SgAsmInterpretationPtrList const&);
14935public:
14938
14939public:
14942
14943protected:
14951#endif // SgAsmInterpretationList_OTHERS
14952#ifdef DOCUMENTATION
14953};
14954#endif // DOCUMENTATION
14955
14956
14958// SgAsmInterpretation -- MACHINE GENERATED; DO NOT MODIFY --
14960
14961DECLARE_LEAF_CLASS(AsmInterpretation);
14962IS_SERIALIZABLE(AsmInterpretation);
14963
14964#ifndef DOCUMENTATION
14965AsmInterpretation.useSmallHeader(true);
14966#endif // !DOCUMENTATION
14967
14968DECLARE_HEADERS(AsmInterpretation);
14969#if defined(SgAsmInterpretation_HEADERS) || defined(DOCUMENTATION)
14970#include <Rose/BinaryAnalysis/BasicTypes.h>
14971#include <Rose/BinaryAnalysis/InstructionMap.h>
14972#include <Rose/BinaryAnalysis/MemoryMap.h>
14973
14974#ifdef ROSE_SgAsmInterpretation_IMPL
14975#include <SgAsmBlock.h>
14976#include <SgAsmGenericHeaderList.h>
14977#endif
14978#endif // SgAsmInterpretation_HEADERS
14979
14980#ifdef DOCUMENTATION
14988#endif // DOCUMENTATION
14989
14990#ifndef DOCUMENTATION
14991 AsmInterpretation.setDataPrototype(
14992 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
14993 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
14994#endif // !DOCUMENTATION
14995
14996#ifndef DOCUMENTATION
14997 AsmInterpretation.setDataPrototype(
14998 "SgAsmBlock*", "globalBlock", "= nullptr",
14999 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15000#endif // !DOCUMENTATION
15001
15002#ifndef DOCUMENTATION
15003 AsmInterpretation.setDataPrototype(
15004 "bool", "coverageComputed", "= false",
15005 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15006#endif // !DOCUMENTATION
15007
15008#ifndef DOCUMENTATION
15009 AsmInterpretation.setDataPrototype(
15010 "double", "percentageCoverage", "= NAN",
15011 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15012#endif // !DOCUMENTATION
15013
15014 DECLARE_OTHERS(AsmInterpretation);
15015#if defined(SgAsmInterpretation_OTHERS) || defined(DOCUMENTATION)
15016
15017 //----------------------- Boost serialization for SgAsmInterpretation -----------------------
15018#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15019private:
15020 friend class boost::serialization::access;
15021
15022 template<class S>
15023 void serialize(S &s, const unsigned /*version*/) {
15024 debugSerializationBegin("SgAsmInterpretation");
15025 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
15026 s & BOOST_SERIALIZATION_NVP(p_headers);
15027 s & BOOST_SERIALIZATION_NVP(p_globalBlock);
15028 s & BOOST_SERIALIZATION_NVP(p_map);
15029 s & BOOST_SERIALIZATION_NVP(instruction_map);
15030 s & BOOST_SERIALIZATION_NVP(p_coverageComputed);
15031 s & BOOST_SERIALIZATION_NVP(p_percentageCoverage);
15032 debugSerializationEnd("SgAsmInterpretation");
15033 }
15034#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15035public:
15036public:
15049public:
15058 // ROSETTA doesn't understand this type, but we want this treated like a property whose data member name is "p_map"
15059 // and which has automatically generator accessors and mutators named "get_map" and "set_map" and is serialized.
15060private:
15062
15063public:
15072 // ROSETTA doesn't understand this type, but we want it serialized. Therfore, we'll define it as a property, but we'll
15073 // supply our own accessor and no mutator.
15074private:
15075 mutable Rose::BinaryAnalysis::InstructionMap instruction_map;
15076
15077public:
15085 // cached instruction map
15086
15090public:
15098 bool const& get_coverageComputed() const;
15099 void set_coverageComputed(bool const&);
15102public:
15109 double const& get_percentageCoverage() const;
15110 void set_percentageCoverage(double const&);
15112public:
15117 SgAsmGenericFilePtrList get_files() const;
15118
15124
15130
15132 // Deprecated 2023-11
15134public:
15135 SgAsmBlock* get_global_block() const ROSE_DEPRECATED("use get_globalBlock");
15136 void set_global_block(SgAsmBlock*) ROSE_DEPRECATED("use set_globalBlock");
15137 Rose::BinaryAnalysis::InstructionMap& get_instruction_map(bool=false) ROSE_DEPRECATED("use get_instructionMap");
15138 void set_instruction_map(const Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use set_instructionMap");
15139 void insert_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use insertInstructions");
15140 void erase_instructions(Rose::BinaryAnalysis::InstructionMap&) ROSE_DEPRECATED("use eraseInstructions");
15141public:
15144
15145public:
15148
15149protected:
15157#endif // SgAsmInterpretation_OTHERS
15158#ifdef DOCUMENTATION
15159};
15160#endif // DOCUMENTATION
15161
15162
15164// SgAsmIntegerValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
15166
15167DECLARE_LEAF_CLASS(AsmIntegerValueExpression);
15168IS_SERIALIZABLE(AsmIntegerValueExpression);
15169
15170#ifndef DOCUMENTATION
15171AsmIntegerValueExpression.useSmallHeader(true);
15172#endif // !DOCUMENTATION
15173
15174#ifdef DOCUMENTATION
15191#endif // DOCUMENTATION
15192
15193#ifndef DOCUMENTATION
15194 AsmIntegerValueExpression.setDataPrototype(
15195 "SgNode*", "baseNode", "= nullptr",
15196 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15197#endif // !DOCUMENTATION
15198
15199 DECLARE_OTHERS(AsmIntegerValueExpression);
15200#if defined(SgAsmIntegerValueExpression_OTHERS) || defined(DOCUMENTATION)
15201
15202 //----------------------- Boost serialization for SgAsmIntegerValueExpression -----------------------
15203#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15204private:
15205 friend class boost::serialization::access;
15206
15207 template<class S>
15208 void serialize(S &s, const unsigned /*version*/) {
15209 debugSerializationBegin("SgAsmIntegerValueExpression");
15210 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
15211 s & BOOST_SERIALIZATION_NVP(p_baseNode);
15212 debugSerializationEnd("SgAsmIntegerValueExpression");
15213 }
15214#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15215public:
15216public:
15227 SgNode* const& get_baseNode() const;
15228 void set_baseNode(SgNode* const&);
15230public:
15236
15243
15245 static uint64_t virtualAddress(SgNode*);
15246
15266 std::string get_label(bool quiet=false) const;
15267
15269 size_t get_significantBits() const;
15270
15276 void makeRelativeTo(SgNode *baseNode);
15277
15282 uint64_t get_baseAddress() const;
15283
15289 uint64_t get_absoluteValue(size_t nbits=0) const;
15290
15294 void set_absoluteValue(uint64_t);
15295
15297 int64_t get_signedValue() const;
15298
15302 int64_t get_relativeValue() const;
15303
15308 void set_relativeValue(int64_t v, size_t nbits=64);
15309
15310 uint64_t get_value() const { return get_absoluteValue(); }
15311public:
15314
15315public:
15318
15319protected:
15327#endif // SgAsmIntegerValueExpression_OTHERS
15328#ifdef DOCUMENTATION
15329};
15330#endif // DOCUMENTATION
15331
15332
15334// SgAsmIntegerType -- MACHINE GENERATED; DO NOT MODIFY --
15336
15337DECLARE_LEAF_CLASS(AsmIntegerType);
15338IS_SERIALIZABLE(AsmIntegerType);
15339
15340#ifndef DOCUMENTATION
15341AsmIntegerType.useSmallHeader(true);
15342#endif // !DOCUMENTATION
15343
15344DECLARE_HEADERS(AsmIntegerType);
15345#if defined(SgAsmIntegerType_HEADERS) || defined(DOCUMENTATION)
15346#include <Rose/BinaryAnalysis/ByteOrder.h>
15347#endif // SgAsmIntegerType_HEADERS
15348
15349#ifdef DOCUMENTATION
15352#endif // DOCUMENTATION
15353
15354#ifndef DOCUMENTATION
15355 AsmIntegerType.setDataPrototype(
15356 "bool", "isSigned", "= false",
15357 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15358#endif // !DOCUMENTATION
15359
15360 DECLARE_OTHERS(AsmIntegerType);
15361#if defined(SgAsmIntegerType_OTHERS) || defined(DOCUMENTATION)
15362
15363 //----------------------- Boost serialization for SgAsmIntegerType -----------------------
15364#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15365private:
15366 friend class boost::serialization::access;
15367
15368 template<class S>
15369 void serialize(S &s, const unsigned /*version*/) {
15370 debugSerializationBegin("SgAsmIntegerType");
15371 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
15372 s & BOOST_SERIALIZATION_NVP(p_isSigned);
15373 debugSerializationEnd("SgAsmIntegerType");
15374 }
15375#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15376public:
15377public:
15383 bool get_isSigned() const;
15386public:
15391
15394
15397
15398 // Overrides documented in base class
15399 virtual void check() const override;
15400 virtual std::string toString() const override;
15401public:
15404
15405public:
15408
15409protected:
15417#endif // SgAsmIntegerType_OTHERS
15418#ifdef DOCUMENTATION
15419};
15420#endif // DOCUMENTATION
15421
15422
15424// SgAsmInstructionList -- MACHINE GENERATED; DO NOT MODIFY --
15426
15427DECLARE_LEAF_CLASS(AsmInstructionList);
15428IS_SERIALIZABLE(AsmInstructionList);
15429
15430#ifndef DOCUMENTATION
15431AsmInstructionList.useSmallHeader(true);
15432#endif // !DOCUMENTATION
15433
15434DECLARE_HEADERS(AsmInstructionList);
15435#if defined(SgAsmInstructionList_HEADERS) || defined(DOCUMENTATION)
15436#include <sageContainer.h>
15437#endif // SgAsmInstructionList_HEADERS
15438
15439#ifdef DOCUMENTATION
15442#endif // DOCUMENTATION
15443
15444#ifndef DOCUMENTATION
15445 AsmInstructionList.setDataPrototype(
15446 "SgAsmInstructionPtrList", "instructions", "",
15447 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15448#endif // !DOCUMENTATION
15449
15450 DECLARE_OTHERS(AsmInstructionList);
15451#if defined(SgAsmInstructionList_OTHERS) || defined(DOCUMENTATION)
15452
15453 //----------------------- Boost serialization for SgAsmInstructionList -----------------------
15454#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15455private:
15456 friend class boost::serialization::access;
15457
15458 template<class S>
15459 void serialize(S &s, const unsigned /*version*/) {
15460 debugSerializationBegin("SgAsmInstructionList");
15461 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
15462 s & BOOST_SERIALIZATION_NVP(p_instructions);
15463 debugSerializationEnd("SgAsmInstructionList");
15464 }
15465#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15466public:
15467public:
15475 SgAsmInstructionPtrList const& get_instructions() const;
15476 SgAsmInstructionPtrList& get_instructions();
15477 void set_instructions(SgAsmInstructionPtrList const&);
15480public:
15483
15484public:
15487
15488protected:
15496#endif // SgAsmInstructionList_OTHERS
15497#ifdef DOCUMENTATION
15498};
15499#endif // DOCUMENTATION
15500
15501
15503// SgAsmIndirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
15505
15506DECLARE_LEAF_CLASS(AsmIndirectRegisterExpression);
15507IS_SERIALIZABLE(AsmIndirectRegisterExpression);
15508
15509#ifndef DOCUMENTATION
15510AsmIndirectRegisterExpression.useSmallHeader(true);
15511#endif // !DOCUMENTATION
15512
15513#ifdef DOCUMENTATION
15530#endif // DOCUMENTATION
15531
15532#ifndef DOCUMENTATION
15533 AsmIndirectRegisterExpression.setDataPrototype(
15534 "Rose::BinaryAnalysis::RegisterDescriptor", "stride", "",
15535 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15536#endif // !DOCUMENTATION
15537
15538#ifndef DOCUMENTATION
15539 AsmIndirectRegisterExpression.setDataPrototype(
15540 "Rose::BinaryAnalysis::RegisterDescriptor", "offset", "",
15541 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15542#endif // !DOCUMENTATION
15543
15544#ifndef DOCUMENTATION
15545 AsmIndirectRegisterExpression.setDataPrototype(
15546 "size_t", "index", "= 0",
15547 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15548#endif // !DOCUMENTATION
15549
15550#ifndef DOCUMENTATION
15551 AsmIndirectRegisterExpression.setDataPrototype(
15552 "size_t", "modulus", "= 0",
15553 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15554#endif // !DOCUMENTATION
15555
15556 DECLARE_OTHERS(AsmIndirectRegisterExpression);
15557#if defined(SgAsmIndirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
15558
15559 //----------------------- Boost serialization for SgAsmIndirectRegisterExpression -----------------------
15560#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15561private:
15562 friend class boost::serialization::access;
15563
15564 template<class S>
15565 void serialize(S &s, const unsigned /*version*/) {
15566 debugSerializationBegin("SgAsmIndirectRegisterExpression");
15567 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
15568 s & BOOST_SERIALIZATION_NVP(p_stride);
15569 s & BOOST_SERIALIZATION_NVP(p_offset);
15570 s & BOOST_SERIALIZATION_NVP(p_index);
15571 s & BOOST_SERIALIZATION_NVP(p_modulus);
15572 debugSerializationEnd("SgAsmIndirectRegisterExpression");
15573 }
15574#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15575public:
15576public:
15586public:
15596public:
15602 size_t const& get_index() const;
15603 void set_index(size_t const&);
15606public:
15612 size_t const& get_modulus() const;
15613 void set_modulus(size_t const&);
15616public:
15619
15620public:
15623
15624public:
15629 size_t const& index,
15630 size_t const& modulus);
15631
15632protected:
15640#endif // SgAsmIndirectRegisterExpression_OTHERS
15641#ifdef DOCUMENTATION
15642};
15643#endif // DOCUMENTATION
15644
15645
15647// SgAsmGenericSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
15649
15650DECLARE_LEAF_CLASS(AsmGenericSymbolList);
15651IS_SERIALIZABLE(AsmGenericSymbolList);
15652
15653#ifndef DOCUMENTATION
15654AsmGenericSymbolList.useSmallHeader(true);
15655#endif // !DOCUMENTATION
15656
15657DECLARE_HEADERS(AsmGenericSymbolList);
15658#if defined(SgAsmGenericSymbolList_HEADERS) || defined(DOCUMENTATION)
15659#include <sageContainer.h>
15660#endif // SgAsmGenericSymbolList_HEADERS
15661
15662#ifdef DOCUMENTATION
15668#endif // DOCUMENTATION
15669
15670#ifndef DOCUMENTATION
15671 AsmGenericSymbolList.setDataPrototype(
15672 "SgAsmGenericSymbolPtrList", "symbols", "",
15673 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15674#endif // !DOCUMENTATION
15675
15676 DECLARE_OTHERS(AsmGenericSymbolList);
15677#if defined(SgAsmGenericSymbolList_OTHERS) || defined(DOCUMENTATION)
15678
15679 //----------------------- Boost serialization for SgAsmGenericSymbolList -----------------------
15680#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15681private:
15682 friend class boost::serialization::access;
15683
15684 template<class S>
15685 void serialize(S &s, const unsigned /*version*/) {
15686 debugSerializationBegin("SgAsmGenericSymbolList");
15687 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15688 s & BOOST_SERIALIZATION_NVP(p_symbols);
15689 debugSerializationEnd("SgAsmGenericSymbolList");
15690 }
15691#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15692public:
15693public:
15697 SgAsmGenericSymbolPtrList const& get_symbols() const;
15698 SgAsmGenericSymbolPtrList& get_symbols();
15699 void set_symbols(SgAsmGenericSymbolPtrList const&);
15702public:
15705
15706public:
15709
15710protected:
15718#endif // SgAsmGenericSymbolList_OTHERS
15719#ifdef DOCUMENTATION
15720};
15721#endif // DOCUMENTATION
15722
15723
15725// SgAsmGenericSectionList -- MACHINE GENERATED; DO NOT MODIFY --
15727
15728DECLARE_LEAF_CLASS(AsmGenericSectionList);
15729IS_SERIALIZABLE(AsmGenericSectionList);
15730
15731#ifndef DOCUMENTATION
15732AsmGenericSectionList.useSmallHeader(true);
15733#endif // !DOCUMENTATION
15734
15735DECLARE_HEADERS(AsmGenericSectionList);
15736#if defined(SgAsmGenericSectionList_HEADERS) || defined(DOCUMENTATION)
15737#include <sageContainer.h>
15738#endif // SgAsmGenericSectionList_HEADERS
15739
15740#ifdef DOCUMENTATION
15746#endif // DOCUMENTATION
15747
15748#ifndef DOCUMENTATION
15749 AsmGenericSectionList.setDataPrototype(
15750 "SgAsmGenericSectionPtrList", "sections", "",
15751 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15752#endif // !DOCUMENTATION
15753
15754 DECLARE_OTHERS(AsmGenericSectionList);
15755#if defined(SgAsmGenericSectionList_OTHERS) || defined(DOCUMENTATION)
15756
15757 //----------------------- Boost serialization for SgAsmGenericSectionList -----------------------
15758#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15759private:
15760 friend class boost::serialization::access;
15761
15762 template<class S>
15763 void serialize(S &s, const unsigned /*version*/) {
15764 debugSerializationBegin("SgAsmGenericSectionList");
15765 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15766 s & BOOST_SERIALIZATION_NVP(p_sections);
15767 debugSerializationEnd("SgAsmGenericSectionList");
15768 }
15769#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15770public:
15771public:
15775 SgAsmGenericSectionPtrList const& get_sections() const;
15776 SgAsmGenericSectionPtrList& get_sections();
15777 void set_sections(SgAsmGenericSectionPtrList const&);
15780public:
15783
15784public:
15787
15788protected:
15796#endif // SgAsmGenericSectionList_OTHERS
15797#ifdef DOCUMENTATION
15798};
15799#endif // DOCUMENTATION
15800
15801
15803// SgAsmGenericHeaderList -- MACHINE GENERATED; DO NOT MODIFY --
15805
15806DECLARE_LEAF_CLASS(AsmGenericHeaderList);
15807IS_SERIALIZABLE(AsmGenericHeaderList);
15808
15809#ifndef DOCUMENTATION
15810AsmGenericHeaderList.useSmallHeader(true);
15811#endif // !DOCUMENTATION
15812
15813DECLARE_HEADERS(AsmGenericHeaderList);
15814#if defined(SgAsmGenericHeaderList_HEADERS) || defined(DOCUMENTATION)
15815#include <sageContainer.h>
15816#endif // SgAsmGenericHeaderList_HEADERS
15817
15818#ifdef DOCUMENTATION
15824#endif // DOCUMENTATION
15825
15826#ifndef DOCUMENTATION
15827 AsmGenericHeaderList.setDataPrototype(
15828 "SgAsmGenericHeaderPtrList", "headers", "",
15829 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
15830#endif // !DOCUMENTATION
15831
15832 DECLARE_OTHERS(AsmGenericHeaderList);
15833#if defined(SgAsmGenericHeaderList_OTHERS) || defined(DOCUMENTATION)
15834
15835 //----------------------- Boost serialization for SgAsmGenericHeaderList -----------------------
15836#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15837private:
15838 friend class boost::serialization::access;
15839
15840 template<class S>
15841 void serialize(S &s, const unsigned /*version*/) {
15842 debugSerializationBegin("SgAsmGenericHeaderList");
15843 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15844 s & BOOST_SERIALIZATION_NVP(p_headers);
15845 debugSerializationEnd("SgAsmGenericHeaderList");
15846 }
15847#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15848public:
15849public:
15853 SgAsmGenericHeaderPtrList const& get_headers() const;
15854 SgAsmGenericHeaderPtrList& get_headers();
15855 void set_headers(SgAsmGenericHeaderPtrList const&);
15858public:
15861
15862public:
15865
15866protected:
15874#endif // SgAsmGenericHeaderList_OTHERS
15875#ifdef DOCUMENTATION
15876};
15877#endif // DOCUMENTATION
15878
15879
15881// SgAsmGenericFormat -- MACHINE GENERATED; DO NOT MODIFY --
15883
15884DECLARE_LEAF_CLASS(AsmGenericFormat);
15885IS_SERIALIZABLE(AsmGenericFormat);
15886
15887#ifndef DOCUMENTATION
15888AsmGenericFormat.useSmallHeader(true);
15889#endif // !DOCUMENTATION
15890
15891DECLARE_HEADERS(AsmGenericFormat);
15892#if defined(SgAsmGenericFormat_HEADERS) || defined(DOCUMENTATION)
15893#include <Rose/BinaryAnalysis/ByteOrder.h>
15894#endif // SgAsmGenericFormat_HEADERS
15895
15896#ifdef DOCUMENTATION
15899#endif // DOCUMENTATION
15900
15901#ifndef DOCUMENTATION
15902 AsmGenericFormat.setDataPrototype(
15903 "SgAsmGenericFormat::ExecFamily", "family", "= SgAsmGenericFormat::FAMILY_UNSPECIFIED",
15904 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15905#endif // !DOCUMENTATION
15906
15907#ifndef DOCUMENTATION
15908 AsmGenericFormat.setDataPrototype(
15909 "SgAsmGenericFormat::ExecPurpose", "purpose", "= SgAsmGenericFormat::PURPOSE_EXECUTABLE",
15910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15911#endif // !DOCUMENTATION
15912
15913#ifndef DOCUMENTATION
15914 AsmGenericFormat.setDataPrototype(
15915 "Rose::BinaryAnalysis::ByteOrder::Endianness", "sex", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
15916 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15917#endif // !DOCUMENTATION
15918
15919#ifndef DOCUMENTATION
15920 AsmGenericFormat.setDataPrototype(
15921 "unsigned", "version", "= 0",
15922 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15923#endif // !DOCUMENTATION
15924
15925#ifndef DOCUMENTATION
15926 AsmGenericFormat.setDataPrototype(
15927 "bool", "isCurrentVersion", "= false",
15928 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15929#endif // !DOCUMENTATION
15930
15931#ifndef DOCUMENTATION
15932 AsmGenericFormat.setDataPrototype(
15933 "SgAsmGenericFormat::ExecABI", "abi", "= SgAsmGenericFormat::ABI_UNSPECIFIED",
15934 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15935#endif // !DOCUMENTATION
15936
15937#ifndef DOCUMENTATION
15938 AsmGenericFormat.setDataPrototype(
15939 "unsigned", "abiVersion", "= 0",
15940 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15941#endif // !DOCUMENTATION
15942
15943#ifndef DOCUMENTATION
15944 AsmGenericFormat.setDataPrototype(
15945 "size_t", "wordSize", "= 0",
15946 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
15947#endif // !DOCUMENTATION
15948
15949 DECLARE_OTHERS(AsmGenericFormat);
15950#if defined(SgAsmGenericFormat_OTHERS) || defined(DOCUMENTATION)
15951
15952 //----------------------- Boost serialization for SgAsmGenericFormat -----------------------
15953#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
15954private:
15955 friend class boost::serialization::access;
15956
15957 template<class S>
15958 void serialize(S &s, const unsigned /*version*/) {
15959 debugSerializationBegin("SgAsmGenericFormat");
15960 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
15961 s & BOOST_SERIALIZATION_NVP(p_family);
15962 s & BOOST_SERIALIZATION_NVP(p_purpose);
15963 s & BOOST_SERIALIZATION_NVP(p_sex);
15964 s & BOOST_SERIALIZATION_NVP(p_version);
15965 s & BOOST_SERIALIZATION_NVP(p_isCurrentVersion);
15966 s & BOOST_SERIALIZATION_NVP(p_abi);
15967 s & BOOST_SERIALIZATION_NVP(p_abiVersion);
15968 s & BOOST_SERIALIZATION_NVP(p_wordSize);
15969 debugSerializationEnd("SgAsmGenericFormat");
15970 }
15971#endif // ROSE_ENABLE_BOOST_SERIALIZATION
15972public:
15973public:
15981public:
15989public:
15997public:
16001 unsigned const& get_version() const;
16002 void set_version(unsigned const&);
16005public:
16012 bool const& get_isCurrentVersion() const;
16013 void set_isCurrentVersion(bool const&);
16016public:
16024public:
16028 unsigned const& get_abiVersion() const;
16029 void set_abiVersion(unsigned const&);
16032public:
16036 size_t const& get_wordSize() const;
16037 void set_wordSize(size_t const&);
16039public:
16041 void dump(FILE*, const char *prefix, ssize_t idx) const;
16042
16044 // Deprecated 2023-11
16046public:
16047 bool get_is_current_version() const ROSE_DEPRECATED("use get_isCurrentVersion");
16048 void set_is_current_version(bool) ROSE_DEPRECATED("use set_isCurrentVersion");
16049 unsigned get_abi_version() const ROSE_DEPRECATED("use get_abiVersion");
16050 void set_abi_version(unsigned) ROSE_DEPRECATED("use set_abiVersion");
16051 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
16052 void set_word_size(size_t) ROSE_DEPRECATED("use set_wordSize");
16053public:
16056
16057public:
16060
16061protected:
16069#endif // SgAsmGenericFormat_OTHERS
16070#ifdef DOCUMENTATION
16071};
16072#endif // DOCUMENTATION
16073
16074
16076// SgAsmGenericFileList -- MACHINE GENERATED; DO NOT MODIFY --
16078
16079DECLARE_LEAF_CLASS(AsmGenericFileList);
16080IS_SERIALIZABLE(AsmGenericFileList);
16081
16082#ifndef DOCUMENTATION
16083AsmGenericFileList.useSmallHeader(true);
16084#endif // !DOCUMENTATION
16085
16086DECLARE_HEADERS(AsmGenericFileList);
16087#if defined(SgAsmGenericFileList_HEADERS) || defined(DOCUMENTATION)
16088#include <sageContainer.h>
16089#endif // SgAsmGenericFileList_HEADERS
16090
16091#ifdef DOCUMENTATION
16097#endif // DOCUMENTATION
16098
16099#ifndef DOCUMENTATION
16100 AsmGenericFileList.setDataPrototype(
16101 "SgAsmGenericFilePtrList", "files", "",
16102 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16103#endif // !DOCUMENTATION
16104
16105 DECLARE_OTHERS(AsmGenericFileList);
16106#if defined(SgAsmGenericFileList_OTHERS) || defined(DOCUMENTATION)
16107
16108 //----------------------- Boost serialization for SgAsmGenericFileList -----------------------
16109#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16110private:
16111 friend class boost::serialization::access;
16112
16113 template<class S>
16114 void serialize(S &s, const unsigned /*version*/) {
16115 debugSerializationBegin("SgAsmGenericFileList");
16116 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
16117 s & BOOST_SERIALIZATION_NVP(p_files);
16118 debugSerializationEnd("SgAsmGenericFileList");
16119 }
16120#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16121public:
16122public:
16126 SgAsmGenericFilePtrList const& get_files() const;
16127 SgAsmGenericFilePtrList& get_files();
16128 void set_files(SgAsmGenericFilePtrList const&);
16131public:
16134
16135public:
16138
16139protected:
16147#endif // SgAsmGenericFileList_OTHERS
16148#ifdef DOCUMENTATION
16149};
16150#endif // DOCUMENTATION
16151
16152
16154// SgAsmGenericFile -- MACHINE GENERATED; DO NOT MODIFY --
16156
16157DECLARE_LEAF_CLASS(AsmGenericFile);
16158IS_SERIALIZABLE(AsmGenericFile);
16159
16160#ifndef DOCUMENTATION
16161AsmGenericFile.useSmallHeader(true);
16162#endif // !DOCUMENTATION
16163
16164DECLARE_HEADERS(AsmGenericFile);
16165#if defined(SgAsmGenericFile_HEADERS) || defined(DOCUMENTATION)
16166#include <Rose/BinaryAnalysis/Address.h>
16167#include <Rose/BinaryAnalysis/MemoryMap.h>
16168#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
16169
16170#include "DataConversion.h"
16171#include "StatSerializer.h" // non-intrusive serialization of struct stat
16172
16173#ifdef ROSE_SgAsmGenericFile_IMPL
16174#include <SgAsmDwarfCompilationUnitList.h>
16175#include <SgAsmGenericSectionList.h>
16176#include <SgAsmGenericHeaderList.h>
16177#endif
16178
16179#include <sys/stat.h>
16180#endif // SgAsmGenericFile_HEADERS
16181
16182#ifdef DOCUMENTATION
16185#endif // DOCUMENTATION
16186
16187#ifndef DOCUMENTATION
16188 AsmGenericFile.setDataPrototype(
16189 "SgAsmDwarfCompilationUnitList*", "dwarfInfo", "= nullptr",
16190 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16191#endif // !DOCUMENTATION
16192
16193#ifndef DOCUMENTATION
16194 AsmGenericFile.setDataPrototype(
16195 "std::string", "name", "",
16196 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16197#endif // !DOCUMENTATION
16198
16199#ifndef DOCUMENTATION
16200 AsmGenericFile.setDataPrototype(
16201 "int", "fd", "= -1",
16202 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16203#endif // !DOCUMENTATION
16204
16205#ifndef DOCUMENTATION
16206 AsmGenericFile.setDataPrototype(
16207 "struct stat", "sb", "",
16208 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16209#endif // !DOCUMENTATION
16210
16211#ifndef DOCUMENTATION
16212 AsmGenericFile.setDataPrototype(
16213 "SgFileContentList", "data", "",
16214 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16215#endif // !DOCUMENTATION
16216
16217#ifndef DOCUMENTATION
16218 AsmGenericFile.setDataPrototype(
16219 "SgAsmGenericHeaderList*", "headers", "= createAndParent<SgAsmGenericHeaderList>(this)",
16220 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16221#endif // !DOCUMENTATION
16222
16223#ifndef DOCUMENTATION
16224 AsmGenericFile.setDataPrototype(
16225 "SgAsmGenericSectionList*", "holes", "= createAndParent<SgAsmGenericSectionList>(this)",
16226 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16227#endif // !DOCUMENTATION
16228
16229#ifndef DOCUMENTATION
16230 AsmGenericFile.setDataPrototype(
16231 "bool", "truncateZeros", "= false",
16232 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16233#endif // !DOCUMENTATION
16234
16235#ifndef DOCUMENTATION
16236 AsmGenericFile.setDataPrototype(
16237 "bool", "trackingReferences", "= true",
16238 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16239#endif // !DOCUMENTATION
16240
16241#ifndef DOCUMENTATION
16242 AsmGenericFile.setDataPrototype(
16243 "Rose::BinaryAnalysis::AddressIntervalSet", "referencedExtents", "",
16244 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16245#endif // !DOCUMENTATION
16246
16247#ifndef DOCUMENTATION
16248 AsmGenericFile.setDataPrototype(
16249 "bool", "neuter", "= false",
16250 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16251#endif // !DOCUMENTATION
16252
16253 DECLARE_OTHERS(AsmGenericFile);
16254#if defined(SgAsmGenericFile_OTHERS) || defined(DOCUMENTATION)
16255
16256 //----------------------- Boost serialization for SgAsmGenericFile -----------------------
16257#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16258private:
16259 friend class boost::serialization::access;
16260
16261 template<class S>
16262 void serialize(S &s, const unsigned /*version*/) {
16263 debugSerializationBegin("SgAsmGenericFile");
16264 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16265 s & BOOST_SERIALIZATION_NVP(p_dwarfInfo);
16266 s & BOOST_SERIALIZATION_NVP(p_name);
16267 s & BOOST_SERIALIZATION_NVP(p_sb);
16268 s & BOOST_SERIALIZATION_NVP(p_data);
16269 s & BOOST_SERIALIZATION_NVP(p_headers);
16270 s & BOOST_SERIALIZATION_NVP(p_holes);
16271 s & BOOST_SERIALIZATION_NVP(p_truncateZeros);
16272 s & BOOST_SERIALIZATION_NVP(p_trackingReferences);
16273 s & BOOST_SERIALIZATION_NVP(p_referencedExtents);
16274 s & BOOST_SERIALIZATION_NVP(p_neuter);
16275 debugSerializationEnd("SgAsmGenericFile");
16276 }
16277#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16279 // Local types
16281public:
16284 ADDRSP_MEMORY = 0x0001,
16285 ADDRSP_FILE = 0x0002,
16286 ADDRSP_ALL = 0x0003
16287 };
16288
16295
16297 // Properties
16299public:
16300public:
16308public:
16312 std::string const& get_name() const;
16313 void set_name(std::string const&);
16316public:
16322 int const& get_fd() const;
16323 void set_fd(int const&);
16326public:
16327 struct stat const& get_sb() const;
16328
16329public:
16337public:
16347public:
16358public:
16362 bool const& get_truncateZeros() const;
16363 void set_truncateZeros(bool const&);
16366public:
16370 bool const& get_trackingReferences() const;
16371 void set_trackingReferences(bool const&);
16374public:
16382public:
16386 bool const& get_neuter() const;
16387 void set_neuter(bool const&);
16390 // Non-property data members
16392private:
16393 mutable Rose::BinaryAnalysis::AddressIntervalSet *p_unreferenced_cache = nullptr;
16394 DataConverter *p_data_converter = nullptr;
16395
16397 // Functions
16399public:
16401 SgAsmGenericFile* parse(std::string file_name);
16402
16403 void reallocate();
16404
16411 void unparse(std::ostream&) const;
16412
16414 void extendToEof(std::ostream&) const;
16415
16417 void dump(FILE*) const;
16418
16425 void dumpAll(bool in_cwd=true, const char *ext=NULL);
16426
16428 void dumpAll(const std::string& dumpname);
16429
16432
16435
16447
16450
16458 size_t readContent(Rose::BinaryAnalysis::Address offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
16459
16467 Rose::BinaryAnalysis::Address size, bool strict=true);
16468
16477
16485 std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true);
16486
16488 const SgFileContentList& content() { return p_data; }
16489
16497
16499 SgAsmGenericSectionPtrList get_mappedSections() const;
16500
16502 SgAsmGenericSectionPtrList get_sections(bool include_holes=true) const;
16503
16505 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
16506
16508 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep='\0') const;
16509
16515
16520 SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const;
16521
16526 SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va) const;
16527
16532 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
16533
16539 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
16540
16547
16553
16559
16566
16577 static SgAsmGenericSection *bestSectionByVa(const SgAsmGenericSectionPtrList &sections, Rose::BinaryAnalysis::Address va);
16578
16619 Elasticity);
16628
16633
16636
16643
16648
16653
16656
16659
16664 const char *formatName() const;
16665
16666protected:
16667 // Some extra clean-up actions on destruction
16668 virtual void destructorHelper() override;
16669
16671 // Deprecated 2023-11
16673public:
16674 SgAsmDwarfCompilationUnitList* get_dwarf_info() const ROSE_DEPRECATED("use get_dwarfInfo");
16675 void set_dwarf_info(SgAsmDwarfCompilationUnitList*) ROSE_DEPRECATED("use set_dwarfInfo");
16676 bool get_truncate_zeros() const ROSE_DEPRECATED("use get_truncateZeros");
16677 void set_truncate_zeros(bool) ROSE_DEPRECATED("use set_truncateZeros");
16678 bool get_tracking_references() const ROSE_DEPRECATED("use get_trackingReferences");
16679 void set_tracking_references(bool) ROSE_DEPRECATED("use set_trackingReferences");
16680 const Rose::BinaryAnalysis::AddressIntervalSet& get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
16681 void set_referenced_extents(const Rose::BinaryAnalysis::AddressIntervalSet&) ROSE_DEPRECATED("use set_referencedExtents");
16682 void extend_to_eof(std::ostream&) const ROSE_DEPRECATED("use extendToEof");
16683 void dump_all(bool in_cwd=true, const char *ext=NULL) ROSE_DEPRECATED("use dumpAll");
16684 void dump_all(const std::string& dumpname) ROSE_DEPRECATED("use dumpAll");
16685 const Rose::BinaryAnalysis::AddressIntervalSet& get_unreferenced_extents() const
16686 ROSE_DEPRECATED("use get_unreferencedExtents");
16687 void mark_referenced_extent(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
16688 ROSE_DEPRECATED("use markReferencedExtent");
16689 DataConverter* get_data_converter() const ROSE_DEPRECATED("use get_dataConverter");
16690 void set_data_converter(DataConverter*) ROSE_DEPRECATED("use set_dataConverter");
16691 Rose::BinaryAnalysis::Address get_current_size() const ROSE_DEPRECATED("use get_currentSize");
16692 Rose::BinaryAnalysis::Address get_orig_size() const ROSE_DEPRECATED("use get_originalSize");
16693 size_t read_content(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
16694 ROSE_DEPRECATED("use readContent");
16695 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, void*,
16696 Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContent");
16697 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, bool=true)
16698 ROSE_DEPRECATED("use readContentString");
16699 std::string read_content_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentString");
16700 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
16701 SgAsmGenericSectionPtrList get_sections_by_id(int id) const ROSE_DEPRECATED("use get_sectionById");
16702 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char='\0') const ROSE_DEPRECATED("use get_sectionsByName");
16703 SgAsmGenericSectionPtrList get_sections_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address) const
16704 ROSE_DEPRECATED("use get_sectionsByOffset");
16705 SgAsmGenericSectionPtrList get_sections_by_rva(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByRva");
16706 SgAsmGenericSectionPtrList get_sections_by_va(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByVa");
16707 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
16708 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
16709 ROSE_DEPRECATED("use get_sectionByName");
16710 SgAsmGenericSection*get_section_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16711 ROSE_DEPRECATED("use get_sectionByOffset");
16712 SgAsmGenericSection *get_section_by_rva(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16713 ROSE_DEPRECATED("use get_sectionByRva");
16714 SgAsmGenericSection *get_section_by_va(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16715 ROSE_DEPRECATED("use get_sectionByVa");
16716 SgAsmGenericSection *get_best_section_by_va(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
16717 ROSE_DEPRECATED("use get_bestSectionByVa");
16718 static SgAsmGenericSection *best_section_by_va(const SgAsmGenericSectionPtrList&, Rose::BinaryAnalysis::Address)
16719 ROSE_DEPRECATED("use bestSectionByVa");
16720 void shift_extend(SgAsmGenericSection*, Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address, AddressSpace, Elasticity)
16721 ROSE_DEPRECATED("use shiftExtend");
16722 void shift_extend(SgAsmGenericSection*, Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
16723 ROSE_DEPRECATED("use shiftExtend");
16724 Rose::BinaryAnalysis::Address get_next_section_offset(Rose::BinaryAnalysis::Address)
16725 ROSE_DEPRECATED("use get_nextSectionOffset");
16726 void add_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use addHole");
16727 void remove_hole(SgAsmGenericSection*) ROSE_DEPRECATED("use remoeHole");
16728 void fill_holes() ROSE_DEPRECATED("use fillHoles");
16729 void unfill_holes() ROSE_DEPRECATED("use unfillHoles");
16730 void add_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use addHeader");
16731 void remove_header(SgAsmGenericHeader*) ROSE_DEPRECATED("use removeHeader");
16732 const char *format_name() const ROSE_DEPRECATED("use formatName");
16733public:
16736
16737public:
16740
16741protected:
16749#endif // SgAsmGenericFile_OTHERS
16750#ifdef DOCUMENTATION
16751};
16752#endif // DOCUMENTATION
16753
16754
16756// SgAsmGenericDLLList -- MACHINE GENERATED; DO NOT MODIFY --
16758
16759DECLARE_LEAF_CLASS(AsmGenericDLLList);
16760IS_SERIALIZABLE(AsmGenericDLLList);
16761
16762#ifndef DOCUMENTATION
16763AsmGenericDLLList.useSmallHeader(true);
16764#endif // !DOCUMENTATION
16765
16766DECLARE_HEADERS(AsmGenericDLLList);
16767#if defined(SgAsmGenericDLLList_HEADERS) || defined(DOCUMENTATION)
16768#include <sageContainer.h>
16769#endif // SgAsmGenericDLLList_HEADERS
16770
16771#ifdef DOCUMENTATION
16777#endif // DOCUMENTATION
16778
16779#ifndef DOCUMENTATION
16780 AsmGenericDLLList.setDataPrototype(
16781 "SgAsmGenericDLLPtrList", "dlls", "",
16782 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16783#endif // !DOCUMENTATION
16784
16785 DECLARE_OTHERS(AsmGenericDLLList);
16786#if defined(SgAsmGenericDLLList_OTHERS) || defined(DOCUMENTATION)
16787
16788 //----------------------- Boost serialization for SgAsmGenericDLLList -----------------------
16789#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16790private:
16791 friend class boost::serialization::access;
16792
16793 template<class S>
16794 void serialize(S &s, const unsigned /*version*/) {
16795 debugSerializationBegin("SgAsmGenericDLLList");
16796 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16797 s & BOOST_SERIALIZATION_NVP(p_dlls);
16798 debugSerializationEnd("SgAsmGenericDLLList");
16799 }
16800#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16801public:
16802public:
16806 SgAsmGenericDLLPtrList const& get_dlls() const;
16807 SgAsmGenericDLLPtrList& get_dlls();
16808 void set_dlls(SgAsmGenericDLLPtrList const&);
16811public:
16814
16815public:
16818
16819protected:
16827#endif // SgAsmGenericDLLList_OTHERS
16828#ifdef DOCUMENTATION
16829};
16830#endif // DOCUMENTATION
16831
16832
16834// SgAsmGenericDLL -- MACHINE GENERATED; DO NOT MODIFY --
16836
16837DECLARE_LEAF_CLASS(AsmGenericDLL);
16838IS_SERIALIZABLE(AsmGenericDLL);
16839
16840#ifndef DOCUMENTATION
16841AsmGenericDLL.useSmallHeader(true);
16842#endif // !DOCUMENTATION
16843
16844DECLARE_HEADERS(AsmGenericDLL);
16845#if defined(SgAsmGenericDLL_HEADERS) || defined(DOCUMENTATION)
16846#include <sageContainer.h>
16847
16848#ifdef ROSE_SgAsmGenericDLL_IMPL
16849#include <SgAsmBasicString.h>
16850#endif
16851#endif // SgAsmGenericDLL_HEADERS
16852
16853#ifdef DOCUMENTATION
16856#endif // DOCUMENTATION
16857
16858#ifndef DOCUMENTATION
16859 AsmGenericDLL.setDataPrototype(
16860 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
16861 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
16862#endif // !DOCUMENTATION
16863
16864#ifndef DOCUMENTATION
16865 AsmGenericDLL.setDataPrototype(
16866 "SgStringList", "symbols", "",
16867 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16868#endif // !DOCUMENTATION
16869
16870 DECLARE_OTHERS(AsmGenericDLL);
16871#if defined(SgAsmGenericDLL_OTHERS) || defined(DOCUMENTATION)
16872
16873 //----------------------- Boost serialization for SgAsmGenericDLL -----------------------
16874#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
16875private:
16876 friend class boost::serialization::access;
16877
16878 template<class S>
16879 void serialize(S &s, const unsigned /*version*/) {
16880 debugSerializationBegin("SgAsmGenericDLL");
16881 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
16882 s & BOOST_SERIALIZATION_NVP(p_name);
16883 s & BOOST_SERIALIZATION_NVP(p_symbols);
16884 debugSerializationEnd("SgAsmGenericDLL");
16885 }
16886#endif // ROSE_ENABLE_BOOST_SERIALIZATION
16887public:
16888public:
16895public:
16899 SgStringList const& get_symbols() const;
16900 void set_symbols(SgStringList const&);
16902public:
16905
16907 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
16908
16910 void addSymbol(const std::string&);
16911
16913 // Deprecated 2023-11
16915public:
16916 void add_symbol(const std::string&) ROSE_DEPRECATED("use addSymbol");
16917public:
16920
16921public:
16924
16925protected:
16933#endif // SgAsmGenericDLL_OTHERS
16934#ifdef DOCUMENTATION
16935};
16936#endif // DOCUMENTATION
16937
16938
16940// SgAsmFunction -- MACHINE GENERATED; DO NOT MODIFY --
16942
16943DECLARE_LEAF_CLASS(AsmFunction);
16944IS_SERIALIZABLE(AsmFunction);
16945
16946#ifndef DOCUMENTATION
16947AsmFunction.useSmallHeader(true);
16948#endif // !DOCUMENTATION
16949
16950DECLARE_HEADERS(AsmFunction);
16951#if defined(SgAsmFunction_HEADERS) || defined(DOCUMENTATION)
16952#include <Rose/BinaryAnalysis/Address.h>
16953#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
16954#include <sageContainer.h>
16955
16956#ifdef ROSE_SgAsmFunction_IMPL
16957#include <SgAsmInstruction.h>
16958#endif
16959#endif // SgAsmFunction_HEADERS
16960
16961#ifdef DOCUMENTATION
16978#endif // DOCUMENTATION
16979
16980#ifndef DOCUMENTATION
16981 AsmFunction.setDataPrototype(
16982 "std::string", "name", "",
16983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16984#endif // !DOCUMENTATION
16985
16986#ifndef DOCUMENTATION
16987 AsmFunction.setDataPrototype(
16988 "unsigned", "reason", "= SgAsmFunction::FUNC_NONE",
16989 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16990#endif // !DOCUMENTATION
16991
16992#ifndef DOCUMENTATION
16993 AsmFunction.setDataPrototype(
16994 "std::string", "reasonComment", "",
16995 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
16996#endif // !DOCUMENTATION
16997
16998#ifndef DOCUMENTATION
16999 AsmFunction.setDataPrototype(
17000 "SgAsmFunction::function_kind_enum", "functionKind", "= SgAsmFunction::e_unknown",
17001 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17002#endif // !DOCUMENTATION
17003
17004#ifndef DOCUMENTATION
17005 AsmFunction.setDataPrototype(
17006 "SgAsmFunction::MayReturn", "mayReturn", "= SgAsmFunction::RET_UNKNOWN",
17007 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17008#endif // !DOCUMENTATION
17009
17010#ifndef DOCUMENTATION
17011 AsmFunction.setDataPrototype(
17012 "std::string", "nameMd5", "",
17013 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17014#endif // !DOCUMENTATION
17015
17016#ifndef DOCUMENTATION
17017 AsmFunction.setDataPrototype(
17018 "SgAsmStatementPtrList", "statementList", "",
17019 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
17020#endif // !DOCUMENTATION
17021
17022#ifndef DOCUMENTATION
17023 AsmFunction.setDataPrototype(
17024 "SgAsmStatementPtrList", "dest", "",
17025 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17026#endif // !DOCUMENTATION
17027
17028#ifndef DOCUMENTATION
17029 AsmFunction.setDataPrototype(
17030 "Rose::BinaryAnalysis::Address", "entryVa", "= 0",
17031 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17032#endif // !DOCUMENTATION
17033
17034#ifndef DOCUMENTATION
17035 AsmFunction.setDataPrototype(
17036 "SgSymbolTable*", "symbolTable", "= nullptr",
17037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17038#endif // !DOCUMENTATION
17039
17040#ifndef DOCUMENTATION
17041 AsmFunction.setDataPrototype(
17042 "size_t", "cachedVertex", "= (size_t)(-1)",
17043 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17044#endif // !DOCUMENTATION
17045
17046#ifndef DOCUMENTATION
17047 AsmFunction.setDataPrototype(
17048 "int64_t", "stackDelta", "= SgAsmInstruction::INVALID_STACK_DELTA",
17049 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17050#endif // !DOCUMENTATION
17051
17052#ifndef DOCUMENTATION
17053 AsmFunction.setDataPrototype(
17054 "std::string", "callingConvention", "",
17055 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17056#endif // !DOCUMENTATION
17057
17058 DECLARE_OTHERS(AsmFunction);
17059#if defined(SgAsmFunction_OTHERS) || defined(DOCUMENTATION)
17060
17061 //----------------------- Boost serialization for SgAsmFunction -----------------------
17062#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17063private:
17064 friend class boost::serialization::access;
17065
17066 template<class S>
17067 void serialize(S &s, const unsigned /*version*/) {
17068 debugSerializationBegin("SgAsmFunction");
17069 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmSynthesizedDeclaration);
17070 s & BOOST_SERIALIZATION_NVP(p_name);
17071 s & BOOST_SERIALIZATION_NVP(p_reason);
17072 s & BOOST_SERIALIZATION_NVP(p_reasonComment);
17073 s & BOOST_SERIALIZATION_NVP(p_functionKind);
17074 s & BOOST_SERIALIZATION_NVP(p_mayReturn);
17075 s & BOOST_SERIALIZATION_NVP(p_nameMd5);
17076 s & BOOST_SERIALIZATION_NVP(p_statementList);
17077 s & BOOST_SERIALIZATION_NVP(p_dest);
17078 s & BOOST_SERIALIZATION_NVP(p_entryVa);
17079 s & BOOST_SERIALIZATION_NVP(p_cachedVertex);
17080 s & BOOST_SERIALIZATION_NVP(p_stackDelta);
17081 s & BOOST_SERIALIZATION_NVP(p_callingConvention);
17082 debugSerializationEnd("SgAsmFunction");
17083 }
17084#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17086 // Local types
17088public:
17096
17101 // NOTE: If you add more here, then fix Partitioner::parse_switches()
17102 // Also fix SgAsmFunction::reason_key()
17103 FUNC_NONE = 0x00000000,
17104 FUNC_THUNK_TARGET= 0x00004000,
17106 = 0x00008000,
17107 FUNC_ENTRY_POINT = 0x00010000,
17108 FUNC_CALL_TARGET = 0x00020000,
17111 FUNC_CALL_INSN = 0x00040000,
17117 FUNC_EH_FRAME = 0x00080000,
17118 FUNC_SYMBOL = 0x00100000,
17119 FUNC_PATTERN = 0x00200000,
17124 FUNC_GRAPH = 0x00400000,
17128 FUNC_USERDEF = 0x00800000,
17129 FUNC_PADDING = 0x01000000,
17134 FUNC_DISCONT = 0x02000000,
17137 FUNC_INSNHEAD = 0x04000000,
17138 FUNC_IMPORT = 0x08000000,
17141 FUNC_LEFTOVERS = 0x10000000,
17145 FUNC_INTRABLOCK = 0x20000000,
17153 FUNC_THUNK = 0x40000000,
17162 FUNC_EXPORT = 0x80000000,
17164 FUNC_DEFAULT = 0xefff80ff,
17166 /*========= Miscellaneous Reasons ===========================================================================
17167 * The first half of the range (1-127, inclusive) is used for algorithms defined by ROSE. The second half is
17168 * availalble for users to use as they see fit. */
17169 FUNC_MISCMASK = 0x000000ff,
17175 FUNC_INTERPADFUNC = 1,
17182 FUNC_INSN_RO_DATA = 6,
17184 };
17185
17188 e_unknown = 0,
17189 e_standard = 1,
17190 e_library = 2,
17191 e_imported = 3,
17192 e_thunk = 4,
17193 e_last
17194 };
17195
17197 // Properties
17199public:
17200public:
17206 std::string const& get_name() const;
17207 void set_name(std::string const&);
17210public:
17217 unsigned const& get_reason() const;
17218 void set_reason(unsigned const&);
17221public:
17229 std::string const& get_reasonComment() const;
17230 void set_reasonComment(std::string const&);
17233public:
17243public:
17251public:
17257 std::string const& get_nameMd5() const;
17258 void set_nameMd5(std::string const&);
17261public:
17267 SgAsmStatementPtrList const& get_statementList() const;
17268 SgAsmStatementPtrList& get_statementList();
17269 void set_statementList(SgAsmStatementPtrList const&);
17271 // FIXME[Robb P Matzke 2017-02-13]: unused?
17272public:
17273 SgAsmStatementPtrList const& get_dest() const;
17274 void set_dest(SgAsmStatementPtrList const&);
17275
17276public:
17287public:
17297 // FIXME[Robb P Matzke 2017-02-13]: what is this?
17298public:
17299 size_t const& get_cachedVertex() const;
17300 void set_cachedVertex(size_t const&);
17301
17302public:
17312 int64_t const& get_stackDelta() const;
17313 void set_stackDelta(int64_t const&);
17316public:
17325 std::string const& get_callingConvention() const;
17326 void set_callingConvention(std::string const&);
17329 // Functions
17331public:
17334
17339
17345
17349 static std::string reasonKey(const std::string &prefix = "");
17350
17352 std::string reasonString(bool pad) const;
17353
17357 static std::string reasonString(bool pad, unsigned reason);
17358
17361 public:
17362 virtual ~NodeSelector() {}
17363 virtual bool operator()(SgNode*) = 0;
17364 };
17365
17406 Rose::BinaryAnalysis::Address *hi_addr=NULL, NodeSelector *selector=NULL);
17407
17413 bool get_sha1(uint8_t digest[20]/*out*/, NodeSelector *selector=NULL);
17414
17416 // Deprecated 2023-11
17418public:
17419 function_kind_enum get_function_kind() const ROSE_DEPRECATED("use get_functionKind");
17420 void set_function_kind(function_kind_enum) ROSE_DEPRECATED("use set_functionKind");
17421 MayReturn get_may_return() const ROSE_DEPRECATED("use get_mayReturn");
17422 void set_may_return(MayReturn) ROSE_DEPRECATED("use set_mayReturn");
17423 const std::string& get_name_md5() const ROSE_DEPRECATED("use get_nameMd5");
17424 void set_name_md5(const std::string&) ROSE_DEPRECATED("use set_nameMd5");
17425 Rose::BinaryAnalysis::Address get_entry_va() const ROSE_DEPRECATED("use get_entryVa");
17426 void set_entry_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_entryVa");
17427 SgSymbolTable* get_symbol_table() const ROSE_DEPRECATED("use get_symbolTable");
17428 void set_symbol_table(SgSymbolTable*) ROSE_DEPRECATED("use set_symbolTable");
17429 size_t get_cached_vertex() const ROSE_DEPRECATED("use get_cachedVertex");
17430 void set_cached_vertex(size_t) ROSE_DEPRECATED("use set_cachedVertex");
17431 void append_statement(SgAsmStatement*) ROSE_DEPRECATED("use appendStatement");
17432 void remove_statement(SgAsmStatement* statement) ROSE_DEPRECATED("use removeStatement");
17433 SgAsmBlock* get_entry_block() const ROSE_DEPRECATED("use get_entryBlock");
17434 static std::string reason_key(const std::string &prefix="") ROSE_DEPRECATED("use reasonKey");
17435 std::string reason_str(bool) const ROSE_DEPRECATED("use reasonString");
17436 static std::string reason_str(bool, unsigned) ROSE_DEPRECATED("use reasonString");
17437public:
17439 virtual ~SgAsmFunction();
17440
17441public:
17444
17445public:
17447 SgAsmFunction(Rose::BinaryAnalysis::Address const& address,
17448 std::string const& name,
17449 unsigned const& reason,
17450 SgAsmFunction::function_kind_enum const& functionKind);
17451
17452protected:
17460#endif // SgAsmFunction_OTHERS
17461#ifdef DOCUMENTATION
17462};
17463#endif // DOCUMENTATION
17464
17465
17467// SgAsmSynthesizedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
17469
17470#ifndef DOCUMENTATION
17471AstNodeClass& AsmSynthesizedDeclaration = nonTerminalConstructor(
17472 "AsmSynthesizedDeclaration",
17473 *this,
17474 "AsmSynthesizedDeclaration",
17475 "AsmSynthesizedDeclarationTag",
17476 SubclassListBuilder()
17477 | AsmFunction
17478 | AsmSynthesizedDataStructureDeclaration
17479 | AsmSynthesizedFieldDeclaration
17480 , false);
17481assert(AsmSynthesizedDeclaration.associatedGrammar != nullptr);
17482AsmSynthesizedDeclaration.setCppCondition("!defined(DOCUMENTATION)");
17483AsmSynthesizedDeclaration.isBoostSerializable(true);
17484AsmSynthesizedDeclaration.setAutomaticGenerationOfConstructor(false);
17485AsmSynthesizedDeclaration.setAutomaticGenerationOfDestructor(false);
17486#endif // !DOCUMENTATION
17487
17488#ifndef DOCUMENTATION
17489AsmSynthesizedDeclaration.useSmallHeader(true);
17490#endif // !DOCUMENTATION
17491
17492#ifdef DOCUMENTATION
17500#endif // DOCUMENTATION
17501
17502 DECLARE_OTHERS(AsmSynthesizedDeclaration);
17503#if defined(SgAsmSynthesizedDeclaration_OTHERS) || defined(DOCUMENTATION)
17504
17505 //----------------------- Boost serialization for SgAsmSynthesizedDeclaration -----------------------
17506#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17507private:
17508 friend class boost::serialization::access;
17509
17510 template<class S>
17511 void serialize(S &s, const unsigned /*version*/) {
17512 debugSerializationBegin("SgAsmSynthesizedDeclaration");
17513 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmStatement);
17514 debugSerializationEnd("SgAsmSynthesizedDeclaration");
17515 }
17516#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17517
17518public:
17521
17522protected:
17525
17526protected:
17529
17530protected:
17538#endif // SgAsmSynthesizedDeclaration_OTHERS
17539#ifdef DOCUMENTATION
17540};
17541#endif // DOCUMENTATION
17542
17543
17545// SgAsmFloatValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
17547
17548DECLARE_LEAF_CLASS(AsmFloatValueExpression);
17549IS_SERIALIZABLE(AsmFloatValueExpression);
17550
17551#ifndef DOCUMENTATION
17552AsmFloatValueExpression.useSmallHeader(true);
17553#endif // !DOCUMENTATION
17554
17555#ifdef DOCUMENTATION
17561#endif // DOCUMENTATION
17562
17563 DECLARE_OTHERS(AsmFloatValueExpression);
17564#if defined(SgAsmFloatValueExpression_OTHERS) || defined(DOCUMENTATION)
17565
17566 //----------------------- Boost serialization for SgAsmFloatValueExpression -----------------------
17567#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17568private:
17569 friend class boost::serialization::access;
17570
17571 template<class S>
17572 void serialize(S &s, const unsigned /*version*/) {
17573 debugSerializationBegin("SgAsmFloatValueExpression");
17574 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmConstantExpression);
17575 s & BOOST_SERIALIZATION_NVP(p_nativeValue);
17576 s & BOOST_SERIALIZATION_NVP(p_nativeValueIsValid);
17577 debugSerializationEnd("SgAsmFloatValueExpression");
17578 }
17579#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17580private:
17581 // This node stores its primary representation of the value in the p_bitVector of a parent class. However, since we
17582 // often access the value as a native "double", and since converting to/from a bit vector is costly, we want to cache
17583 // the native double value whenever we compute it. ROSETTA does not need to be aware of the cached value since it can
17584 // be recomputed from the bit vector, and in fact, ROSETTA can't handle cache data members because it doesn't
17585 // understand "mutable".
17586 //
17587 // However, Rosebud handles this just fine.
17588private:
17589 mutable double p_nativeValue;
17590
17591public:
17592
17593private:
17594 mutable bool p_nativeValueIsValid;
17595
17596public:
17597public:
17607
17614
17616 void set_nativeValue(double);
17617
17619 double get_nativeValue() const;
17620
17626
17631 void updateNativeValue() const;
17632public:
17635
17636public:
17639
17640protected:
17648#endif // SgAsmFloatValueExpression_OTHERS
17649#ifdef DOCUMENTATION
17650};
17651#endif // DOCUMENTATION
17652
17653
17655// SgAsmFloatType -- MACHINE GENERATED; DO NOT MODIFY --
17657
17658DECLARE_LEAF_CLASS(AsmFloatType);
17659IS_SERIALIZABLE(AsmFloatType);
17660
17661#ifndef DOCUMENTATION
17662AsmFloatType.useSmallHeader(true);
17663#endif // !DOCUMENTATION
17664
17665DECLARE_HEADERS(AsmFloatType);
17666#if defined(SgAsmFloatType_HEADERS) || defined(DOCUMENTATION)
17667#include <Sawyer/BitVector.h>
17668#include <Rose/BitFlags.h>
17669#include <Rose/BinaryAnalysis/ByteOrder.h>
17670#endif // SgAsmFloatType_HEADERS
17671
17672#ifdef DOCUMENTATION
17675#endif // DOCUMENTATION
17676
17677#ifndef DOCUMENTATION
17678 AsmFloatType.setDataPrototype(
17679 "size_t", "significandOffset", "= (size_t)(-1)",
17680 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17681#endif // !DOCUMENTATION
17682
17683#ifndef DOCUMENTATION
17684 AsmFloatType.setDataPrototype(
17685 "size_t", "significandNBits", "= (size_t)(-1)",
17686 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17687#endif // !DOCUMENTATION
17688
17689#ifndef DOCUMENTATION
17690 AsmFloatType.setDataPrototype(
17691 "size_t", "signBitOffset", "= (size_t)(-1)",
17692 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17693#endif // !DOCUMENTATION
17694
17695#ifndef DOCUMENTATION
17696 AsmFloatType.setDataPrototype(
17697 "size_t", "exponentOffset", "= (size_t)(-1)",
17698 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17699#endif // !DOCUMENTATION
17700
17701#ifndef DOCUMENTATION
17702 AsmFloatType.setDataPrototype(
17703 "size_t", "exponentNBits", "= (size_t)(-1)",
17704 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17705#endif // !DOCUMENTATION
17706
17707#ifndef DOCUMENTATION
17708 AsmFloatType.setDataPrototype(
17709 "uint64_t", "exponentBias", "= 0",
17710 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17711#endif // !DOCUMENTATION
17712
17713#ifndef DOCUMENTATION
17714 AsmFloatType.setDataPrototype(
17715 "unsigned", "flags", "= 0",
17716 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17717#endif // !DOCUMENTATION
17718
17719 DECLARE_OTHERS(AsmFloatType);
17720#if defined(SgAsmFloatType_OTHERS) || defined(DOCUMENTATION)
17721
17722 //----------------------- Boost serialization for SgAsmFloatType -----------------------
17723#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17724private:
17725 friend class boost::serialization::access;
17726
17727 template<class S>
17728 void serialize(S &s, const unsigned /*version*/) {
17729 debugSerializationBegin("SgAsmFloatType");
17730 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmScalarType);
17731 s & BOOST_SERIALIZATION_NVP(p_significandOffset);
17732 s & BOOST_SERIALIZATION_NVP(p_significandNBits);
17733 s & BOOST_SERIALIZATION_NVP(p_signBitOffset);
17734 s & BOOST_SERIALIZATION_NVP(p_exponentOffset);
17735 s & BOOST_SERIALIZATION_NVP(p_exponentNBits);
17736 s & BOOST_SERIALIZATION_NVP(p_exponentBias);
17737 s & BOOST_SERIALIZATION_NVP(p_flags);
17738 debugSerializationEnd("SgAsmFloatType");
17739 }
17740#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17741public:
17743 enum Flag {
17744 GRADUAL_UNDERFLOW = 0x00000001,
17745 IMPLICIT_BIT_CONVENTION = 0x00000002
17747
17750
17753
17754public:
17755public:
17756
17757public:
17758
17759public:
17760
17761public:
17762
17763public:
17764
17765public:
17766
17767public:
17768public:
17772 uint64_t exponentBias, Flags flags);
17773
17783
17786
17788 size_t signBit() const;
17789
17791 uint64_t exponentBias() const;
17792
17794 Flags flags() const;
17795
17801
17807 bool gradualUnderflow() const;
17808
17815
17816 // Overrides documented in base class
17817 virtual void check() const override;
17818 virtual std::string toString() const override;
17819public:
17822
17823public:
17826
17827protected:
17835#endif // SgAsmFloatType_OTHERS
17836#ifdef DOCUMENTATION
17837};
17838#endif // DOCUMENTATION
17839
17840
17842// SgAsmScalarType -- MACHINE GENERATED; DO NOT MODIFY --
17844
17845#ifndef DOCUMENTATION
17846AstNodeClass& AsmScalarType = nonTerminalConstructor(
17847 "AsmScalarType",
17848 *this,
17849 "AsmScalarType",
17850 "AsmScalarTypeTag",
17851 SubclassListBuilder()
17852 | AsmFloatType
17853 | AsmIntegerType
17854 | AsmPointerType
17855 , false);
17856assert(AsmScalarType.associatedGrammar != nullptr);
17857AsmScalarType.setCppCondition("!defined(DOCUMENTATION)");
17858AsmScalarType.isBoostSerializable(true);
17859AsmScalarType.setAutomaticGenerationOfConstructor(false);
17860AsmScalarType.setAutomaticGenerationOfDestructor(false);
17861#endif // !DOCUMENTATION
17862
17863#ifndef DOCUMENTATION
17864AsmScalarType.useSmallHeader(true);
17865#endif // !DOCUMENTATION
17866
17867DECLARE_HEADERS(AsmScalarType);
17868#if defined(SgAsmScalarType_HEADERS) || defined(DOCUMENTATION)
17869#include <Rose/BinaryAnalysis/ByteOrder.h>
17870#endif // SgAsmScalarType_HEADERS
17871
17872#ifdef DOCUMENTATION
17875#endif // DOCUMENTATION
17876
17877#ifndef DOCUMENTATION
17878 AsmScalarType.setDataPrototype(
17879 "Rose::BinaryAnalysis::ByteOrder::Endianness", "minorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17880 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17881#endif // !DOCUMENTATION
17882
17883#ifndef DOCUMENTATION
17884 AsmScalarType.setDataPrototype(
17885 "Rose::BinaryAnalysis::ByteOrder::Endianness", "majorOrder", "= Rose::BinaryAnalysis::ByteOrder::ORDER_UNSPECIFIED",
17886 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17887#endif // !DOCUMENTATION
17888
17889#ifndef DOCUMENTATION
17890 AsmScalarType.setDataPrototype(
17891 "size_t", "majorNBytes", "= 0",
17892 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17893#endif // !DOCUMENTATION
17894
17895#ifndef DOCUMENTATION
17896 AsmScalarType.setDataPrototype(
17897 "size_t", "nBits", "= 0",
17898 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
17899#endif // !DOCUMENTATION
17900
17901 DECLARE_OTHERS(AsmScalarType);
17902#if defined(SgAsmScalarType_OTHERS) || defined(DOCUMENTATION)
17903
17904 //----------------------- Boost serialization for SgAsmScalarType -----------------------
17905#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
17906private:
17907 friend class boost::serialization::access;
17908
17909 template<class S>
17910 void serialize(S &s, const unsigned /*version*/) {
17911 debugSerializationBegin("SgAsmScalarType");
17912 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmType);
17913 s & BOOST_SERIALIZATION_NVP(p_minorOrder);
17914 s & BOOST_SERIALIZATION_NVP(p_majorOrder);
17915 s & BOOST_SERIALIZATION_NVP(p_majorNBytes);
17916 s & BOOST_SERIALIZATION_NVP(p_nBits);
17917 debugSerializationEnd("SgAsmScalarType");
17918 }
17919#endif // ROSE_ENABLE_BOOST_SERIALIZATION
17920public:
17921public:
17922
17923public:
17929public:
17935public:
17940protected:
17946
17947public:
17949 virtual size_t get_nBits() const override;
17950
17953
17956
17958 size_t get_majorNBytes() const;
17959
17960 // Overrides documented in base class
17961 virtual void check() const override;
17962 virtual std::string toString() const override;
17963public:
17966
17967protected:
17970
17971protected:
17979#endif // SgAsmScalarType_OTHERS
17980#ifdef DOCUMENTATION
17981};
17982#endif // DOCUMENTATION
17983
17984
17986// SgAsmType -- MACHINE GENERATED; DO NOT MODIFY --
17988
17989#ifndef DOCUMENTATION
17990AstNodeClass& AsmType = nonTerminalConstructor(
17991 "AsmType",
17992 *this,
17993 "AsmType",
17994 "AsmTypeTag",
17995 SubclassListBuilder()
17996 | AsmScalarType
17997 | AsmVectorType
17998 | AsmVoidType
17999 , false);
18000assert(AsmType.associatedGrammar != nullptr);
18001AsmType.setCppCondition("!defined(DOCUMENTATION)");
18002AsmType.isBoostSerializable(true);
18003AsmType.setAutomaticGenerationOfConstructor(false);
18004AsmType.setAutomaticGenerationOfDestructor(false);
18005#endif // !DOCUMENTATION
18006
18007#ifndef DOCUMENTATION
18008AsmType.useSmallHeader(true);
18009#endif // !DOCUMENTATION
18010
18011#ifdef DOCUMENTATION
18013class SgAsmType: public SgAsmNode {
18014#endif // DOCUMENTATION
18015
18016 DECLARE_OTHERS(AsmType);
18017#if defined(SgAsmType_OTHERS) || defined(DOCUMENTATION)
18018
18019 //----------------------- Boost serialization for SgAsmType -----------------------
18020#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18021private:
18022 friend class boost::serialization::access;
18023
18024 template<class S>
18025 void serialize(S &s, const unsigned /*version*/) {
18026 debugSerializationBegin("SgAsmType");
18027 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmNode);
18028 debugSerializationEnd("SgAsmType");
18029 }
18030#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18031private:
18033
18034public:
18042 virtual void check() const;
18043
18049 virtual std::string toString() const {
18050 abort(); // ROSETTA limitation: intended pure virtual
18051 return NULL; // Windows limitation: return value required [Too, 2014-08-11]
18052 }
18053
18055 virtual size_t get_nBits() const {
18056 abort(); // ROSETTA limitation: intended pure virtual
18057 return (size_t)-1; // Windows limitation: return value required [Too, 2014-08-11]
18058 }
18059
18061 virtual size_t get_nBytes() const;
18062
18068 template<class Type> // Type is a subclass of SgAsmType
18069 static Type* registerOrDelete(Type *toInsert) {
18070 ASSERT_not_null(toInsert);
18071 std::string key = toInsert->toString();
18072 Type *retval = dynamic_cast<Type*>(p_typeRegistry.insertMaybe(key, toInsert));
18073 ASSERT_not_null(retval);
18074 if (retval!=toInsert)
18075 delete toInsert;
18076 return retval;
18077 }
18078public:
18080 virtual ~SgAsmType();
18081
18082protected:
18085
18086protected:
18094#endif // SgAsmType_OTHERS
18095#ifdef DOCUMENTATION
18096};
18097#endif // DOCUMENTATION
18098
18099
18101// SgAsmExprListExp -- MACHINE GENERATED; DO NOT MODIFY --
18103
18104DECLARE_LEAF_CLASS(AsmExprListExp);
18105IS_SERIALIZABLE(AsmExprListExp);
18106
18107#ifndef DOCUMENTATION
18108AsmExprListExp.useSmallHeader(true);
18109#endif // !DOCUMENTATION
18110
18111DECLARE_HEADERS(AsmExprListExp);
18112#if defined(SgAsmExprListExp_HEADERS) || defined(DOCUMENTATION)
18113#include <sageContainer.h>
18114#endif // SgAsmExprListExp_HEADERS
18115
18116#ifdef DOCUMENTATION
18119#endif // DOCUMENTATION
18120
18121#ifndef DOCUMENTATION
18122 AsmExprListExp.setDataPrototype(
18123 "SgAsmExpressionPtrList", "expressions", "",
18124 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18125#endif // !DOCUMENTATION
18126
18127 DECLARE_OTHERS(AsmExprListExp);
18128#if defined(SgAsmExprListExp_OTHERS) || defined(DOCUMENTATION)
18129
18130 //----------------------- Boost serialization for SgAsmExprListExp -----------------------
18131#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18132private:
18133 friend class boost::serialization::access;
18134
18135 template<class S>
18136 void serialize(S &s, const unsigned /*version*/) {
18137 debugSerializationBegin("SgAsmExprListExp");
18138 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
18139 s & BOOST_SERIALIZATION_NVP(p_expressions);
18140 debugSerializationEnd("SgAsmExprListExp");
18141 }
18142#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18143public:
18144public:
18151 SgAsmExpressionPtrList const& get_expressions() const;
18152 SgAsmExpressionPtrList& get_expressions();
18153 void set_expressions(SgAsmExpressionPtrList const&);
18156public:
18159
18160public:
18163
18164protected:
18172#endif // SgAsmExprListExp_OTHERS
18173#ifdef DOCUMENTATION
18174};
18175#endif // DOCUMENTATION
18176
18177
18179// SgAsmElfSymverSection -- MACHINE GENERATED; DO NOT MODIFY --
18181
18182DECLARE_LEAF_CLASS(AsmElfSymverSection);
18183IS_SERIALIZABLE(AsmElfSymverSection);
18184
18185#ifndef DOCUMENTATION
18186AsmElfSymverSection.useSmallHeader(true);
18187#endif // !DOCUMENTATION
18188
18189DECLARE_HEADERS(AsmElfSymverSection);
18190#if defined(SgAsmElfSymverSection_HEADERS) || defined(DOCUMENTATION)
18191#include <Rose/BinaryAnalysis/Address.h>
18192
18193#ifdef ROSE_SgAsmElfSymverSection_IMPL
18194#include <SgAsmElfSymverEntryList.h>
18195#endif
18196#endif // SgAsmElfSymverSection_HEADERS
18197
18198#ifdef DOCUMENTATION
18204#endif // DOCUMENTATION
18205
18206#ifndef DOCUMENTATION
18207 AsmElfSymverSection.setDataPrototype(
18208 "SgAsmElfSymverEntryList*", "entries", "= createAndParent<SgAsmElfSymverEntryList>(this)",
18209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18210#endif // !DOCUMENTATION
18211
18212 DECLARE_OTHERS(AsmElfSymverSection);
18213#if defined(SgAsmElfSymverSection_OTHERS) || defined(DOCUMENTATION)
18214
18215 //----------------------- Boost serialization for SgAsmElfSymverSection -----------------------
18216#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18217private:
18218 friend class boost::serialization::access;
18219
18220 template<class S>
18221 void serialize(S &s, const unsigned /*version*/) {
18222 debugSerializationBegin("SgAsmElfSymverSection");
18223 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
18224 s & BOOST_SERIALIZATION_NVP(p_entries);
18225 debugSerializationEnd("SgAsmElfSymverSection");
18226 }
18227#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18228public:
18229public:
18239public:
18242
18244 virtual SgAsmElfSymverSection* parse() override;
18245
18251 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
18252
18254 virtual void unparse(std::ostream&) const override;
18255
18257 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
18258
18260 // Deprecated 2023-11
18262public:
18263 using SgAsmElfSection::calculate_sizes;
18264 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
18265 ROSE_DEPRECATED("use calculateSizes");
18266public:
18269
18270public:
18273
18274protected:
18282#endif // SgAsmElfSymverSection_OTHERS
18283#ifdef DOCUMENTATION
18284};
18285#endif // DOCUMENTATION
18286
18287
18289// SgAsmElfSymverNeededSection -- MACHINE GENERATED; DO NOT MODIFY --
18291
18292DECLARE_LEAF_CLASS(AsmElfSymverNeededSection);
18293IS_SERIALIZABLE(AsmElfSymverNeededSection);
18294
18295#ifndef DOCUMENTATION
18296AsmElfSymverNeededSection.useSmallHeader(true);
18297#endif // !DOCUMENTATION
18298
18299DECLARE_HEADERS(AsmElfSymverNeededSection);
18300#if defined(SgAsmElfSymverNeededSection_HEADERS) || defined(DOCUMENTATION)
18301#include <Rose/BinaryAnalysis/Address.h>
18302
18303#ifdef ROSE_SgAsmElfSymverNeededSection_IMPL
18304#include <SgAsmElfSymverNeededEntryList.h>
18305#endif
18306#endif // SgAsmElfSymverNeededSection_HEADERS
18307
18308#ifdef DOCUMENTATION
18315#endif // DOCUMENTATION
18316
18317#ifndef DOCUMENTATION
18318 AsmElfSymverNeededSection.setDataPrototype(
18319 "SgAsmElfSymverNeededEntryList*", "entries", "= createAndParent<SgAsmElfSymverNeededEntryList>(this)",
18320 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18321#endif // !DOCUMENTATION
18322
18323 DECLARE_OTHERS(AsmElfSymverNeededSection);
18324#if defined(SgAsmElfSymverNeededSection_OTHERS) || defined(DOCUMENTATION)
18325
18326 //----------------------- Boost serialization for SgAsmElfSymverNeededSection -----------------------
18327#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18328private:
18329 friend class boost::serialization::access;
18330
18331 template<class S>
18332 void serialize(S &s, const unsigned /*version*/) {
18333 debugSerializationBegin("SgAsmElfSymverNeededSection");
18334 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
18335 s & BOOST_SERIALIZATION_NVP(p_entries);
18336 debugSerializationEnd("SgAsmElfSymverNeededSection");
18337 }
18338#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18339public:
18340public:
18350public:
18355
18366
18367 using SgAsmElfSection::calculate_sizes;
18372 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
18373
18377 virtual void unparse(std::ostream&) const override;
18378
18380 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
18381
18383 // Deprecated 2023-11
18385public:
18386 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
18387 ROSE_DEPRECATED("use calculateSizes");
18388public:
18391
18392public:
18395
18396protected:
18404#endif // SgAsmElfSymverNeededSection_OTHERS
18405#ifdef DOCUMENTATION
18406};
18407#endif // DOCUMENTATION
18408
18409
18411// SgAsmElfSymverNeededEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18413
18414DECLARE_LEAF_CLASS(AsmElfSymverNeededEntryList);
18415IS_SERIALIZABLE(AsmElfSymverNeededEntryList);
18416
18417#ifndef DOCUMENTATION
18418AsmElfSymverNeededEntryList.useSmallHeader(true);
18419#endif // !DOCUMENTATION
18420
18421DECLARE_HEADERS(AsmElfSymverNeededEntryList);
18422#if defined(SgAsmElfSymverNeededEntryList_HEADERS) || defined(DOCUMENTATION)
18423#include <sageContainer.h>
18424#endif // SgAsmElfSymverNeededEntryList_HEADERS
18425
18426#ifdef DOCUMENTATION
18432#endif // DOCUMENTATION
18433
18434#ifndef DOCUMENTATION
18435 AsmElfSymverNeededEntryList.setDataPrototype(
18436 "SgAsmElfSymverNeededEntryPtrList", "entries", "",
18437 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18438#endif // !DOCUMENTATION
18439
18440 DECLARE_OTHERS(AsmElfSymverNeededEntryList);
18441#if defined(SgAsmElfSymverNeededEntryList_OTHERS) || defined(DOCUMENTATION)
18442
18443 //----------------------- Boost serialization for SgAsmElfSymverNeededEntryList -----------------------
18444#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18445private:
18446 friend class boost::serialization::access;
18447
18448 template<class S>
18449 void serialize(S &s, const unsigned /*version*/) {
18450 debugSerializationBegin("SgAsmElfSymverNeededEntryList");
18451 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18452 s & BOOST_SERIALIZATION_NVP(p_entries);
18453 debugSerializationEnd("SgAsmElfSymverNeededEntryList");
18454 }
18455#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18456public:
18457public:
18461 SgAsmElfSymverNeededEntryPtrList const& get_entries() const;
18462 SgAsmElfSymverNeededEntryPtrList& get_entries();
18463 void set_entries(SgAsmElfSymverNeededEntryPtrList const&);
18466public:
18469
18470public:
18473
18474protected:
18482#endif // SgAsmElfSymverNeededEntryList_OTHERS
18483#ifdef DOCUMENTATION
18484};
18485#endif // DOCUMENTATION
18486
18487
18489// SgAsmElfSymverNeededEntry -- MACHINE GENERATED; DO NOT MODIFY --
18491
18492DECLARE_LEAF_CLASS(AsmElfSymverNeededEntry);
18493IS_SERIALIZABLE(AsmElfSymverNeededEntry);
18494
18495#ifndef DOCUMENTATION
18496AsmElfSymverNeededEntry.useSmallHeader(true);
18497#endif // !DOCUMENTATION
18498
18499DECLARE_HEADERS(AsmElfSymverNeededEntry);
18500#if defined(SgAsmElfSymverNeededEntry_HEADERS) || defined(DOCUMENTATION)
18501#include <Rose/BinaryAnalysis/ByteOrder.h>
18502
18503#ifdef ROSE_SgAsmElfSymverNeededEntry_IMPL
18504#include <SgAsmElfSymverNeededAuxList.h>
18505#include <SgAsmGenericString.h>
18506#endif
18507#endif // SgAsmElfSymverNeededEntry_HEADERS
18508
18509#ifdef DOCUMENTATION
18512#endif // DOCUMENTATION
18513
18514#ifndef DOCUMENTATION
18515 AsmElfSymverNeededEntry.setDataPrototype(
18516 "size_t", "version", "= 0",
18517 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18518#endif // !DOCUMENTATION
18519
18520#ifndef DOCUMENTATION
18521 AsmElfSymverNeededEntry.setDataPrototype(
18522 "SgAsmGenericString*", "fileName", "= nullptr",
18523 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18524#endif // !DOCUMENTATION
18525
18526#ifndef DOCUMENTATION
18527 AsmElfSymverNeededEntry.setDataPrototype(
18528 "SgAsmElfSymverNeededAuxList*", "entries", "= createAndParent<SgAsmElfSymverNeededAuxList>(this)",
18529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18530#endif // !DOCUMENTATION
18531
18532 DECLARE_OTHERS(AsmElfSymverNeededEntry);
18533#if defined(SgAsmElfSymverNeededEntry_OTHERS) || defined(DOCUMENTATION)
18534
18535 //----------------------- Boost serialization for SgAsmElfSymverNeededEntry -----------------------
18536#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18537private:
18538 friend class boost::serialization::access;
18539
18540 template<class S>
18541 void serialize(S &s, const unsigned /*version*/) {
18542 debugSerializationBegin("SgAsmElfSymverNeededEntry");
18543 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18544 s & BOOST_SERIALIZATION_NVP(p_version);
18545 s & BOOST_SERIALIZATION_NVP(p_fileName);
18546 s & BOOST_SERIALIZATION_NVP(p_entries);
18547 debugSerializationEnd("SgAsmElfSymverNeededEntry");
18548 }
18549#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18551 // Local types
18553public:
18554#ifdef _MSC_VER
18555# pragma pack (1)
18556#endif
18557
18560 uint16_t vn_version;
18561 uint16_t vn_cnt;
18562 uint32_t vn_file;
18563 uint32_t vn_aux;
18564 uint32_t vn_next;
18565 }
18566#if !defined(SWIG) && !defined(_MSC_VER)
18567 __attribute__((packed))
18568#endif
18569 ;
18570
18571#ifdef _MSC_VER
18572# pragma pack ()
18573#endif
18574
18576 // Properties
18578public:
18579public:
18585 size_t const& get_version() const;
18586 void set_version(size_t const&);
18589public:
18597public:
18608 // Functions
18610public:
18613
18616
18619
18621 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18622
18624 // Deprecated 2023-11
18626public:
18627 SgAsmGenericString* get_file_name() const ROSE_DEPRECATED("use get_fileName");
18628 void set_file_name(SgAsmGenericString*) ROSE_DEPRECATED("use set_fileName");
18629public:
18632
18633public:
18636
18637protected:
18645#endif // SgAsmElfSymverNeededEntry_OTHERS
18646#ifdef DOCUMENTATION
18647};
18648#endif // DOCUMENTATION
18649
18650
18652// SgAsmElfSymverNeededAuxList -- MACHINE GENERATED; DO NOT MODIFY --
18654
18655DECLARE_LEAF_CLASS(AsmElfSymverNeededAuxList);
18656IS_SERIALIZABLE(AsmElfSymverNeededAuxList);
18657
18658#ifndef DOCUMENTATION
18659AsmElfSymverNeededAuxList.useSmallHeader(true);
18660#endif // !DOCUMENTATION
18661
18662DECLARE_HEADERS(AsmElfSymverNeededAuxList);
18663#if defined(SgAsmElfSymverNeededAuxList_HEADERS) || defined(DOCUMENTATION)
18664#include <sageContainer.h>
18665#endif // SgAsmElfSymverNeededAuxList_HEADERS
18666
18667#ifdef DOCUMENTATION
18673#endif // DOCUMENTATION
18674
18675#ifndef DOCUMENTATION
18676 AsmElfSymverNeededAuxList.setDataPrototype(
18677 "SgAsmElfSymverNeededAuxPtrList", "entries", "",
18678 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18679#endif // !DOCUMENTATION
18680
18681 DECLARE_OTHERS(AsmElfSymverNeededAuxList);
18682#if defined(SgAsmElfSymverNeededAuxList_OTHERS) || defined(DOCUMENTATION)
18683
18684 //----------------------- Boost serialization for SgAsmElfSymverNeededAuxList -----------------------
18685#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18686private:
18687 friend class boost::serialization::access;
18688
18689 template<class S>
18690 void serialize(S &s, const unsigned /*version*/) {
18691 debugSerializationBegin("SgAsmElfSymverNeededAuxList");
18692 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18693 s & BOOST_SERIALIZATION_NVP(p_entries);
18694 debugSerializationEnd("SgAsmElfSymverNeededAuxList");
18695 }
18696#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18697public:
18698public:
18702 SgAsmElfSymverNeededAuxPtrList const& get_entries() const;
18703 SgAsmElfSymverNeededAuxPtrList& get_entries();
18704 void set_entries(SgAsmElfSymverNeededAuxPtrList const&);
18707public:
18710
18711public:
18714
18715protected:
18723#endif // SgAsmElfSymverNeededAuxList_OTHERS
18724#ifdef DOCUMENTATION
18725};
18726#endif // DOCUMENTATION
18727
18728
18730// SgAsmElfSymverNeededAux -- MACHINE GENERATED; DO NOT MODIFY --
18732
18733DECLARE_LEAF_CLASS(AsmElfSymverNeededAux);
18734IS_SERIALIZABLE(AsmElfSymverNeededAux);
18735
18736#ifndef DOCUMENTATION
18737AsmElfSymverNeededAux.useSmallHeader(true);
18738#endif // !DOCUMENTATION
18739
18740DECLARE_HEADERS(AsmElfSymverNeededAux);
18741#if defined(SgAsmElfSymverNeededAux_HEADERS) || defined(DOCUMENTATION)
18742#include <Rose/BinaryAnalysis/ByteOrder.h>
18743
18744#ifdef ROSE_SgAsmElfSymverNeededAux_IMPL
18745#include <SgAsmGenericString.h>
18746#endif
18747#endif // SgAsmElfSymverNeededAux_HEADERS
18748
18749#ifdef DOCUMENTATION
18752#endif // DOCUMENTATION
18753
18754#ifndef DOCUMENTATION
18755 AsmElfSymverNeededAux.setDataPrototype(
18756 "uint32_t", "hash", "= 0",
18757 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18758#endif // !DOCUMENTATION
18759
18760#ifndef DOCUMENTATION
18761 AsmElfSymverNeededAux.setDataPrototype(
18762 "int", "flags", "= 0",
18763 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18764#endif // !DOCUMENTATION
18765
18766#ifndef DOCUMENTATION
18767 AsmElfSymverNeededAux.setDataPrototype(
18768 "size_t", "other", "= 0",
18769 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
18770#endif // !DOCUMENTATION
18771
18772#ifndef DOCUMENTATION
18773 AsmElfSymverNeededAux.setDataPrototype(
18774 "SgAsmGenericString*", "name", "= 0",
18775 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18776#endif // !DOCUMENTATION
18777
18778 DECLARE_OTHERS(AsmElfSymverNeededAux);
18779#if defined(SgAsmElfSymverNeededAux_OTHERS) || defined(DOCUMENTATION)
18780
18781 //----------------------- Boost serialization for SgAsmElfSymverNeededAux -----------------------
18782#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18783private:
18784 friend class boost::serialization::access;
18785
18786 template<class S>
18787 void serialize(S &s, const unsigned /*version*/) {
18788 debugSerializationBegin("SgAsmElfSymverNeededAux");
18789 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18790 s & BOOST_SERIALIZATION_NVP(p_hash);
18791 s & BOOST_SERIALIZATION_NVP(p_flags);
18792 s & BOOST_SERIALIZATION_NVP(p_other);
18793 s & BOOST_SERIALIZATION_NVP(p_name);
18794 debugSerializationEnd("SgAsmElfSymverNeededAux");
18795 }
18796#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18798 // Local types
18800public:
18801#ifdef _MSC_VER
18802# pragma pack (1)
18803#endif
18804
18807 uint32_t vna_hash;
18808 uint16_t vna_flags;
18809 uint16_t vna_other;
18810 uint32_t vna_name;
18811 uint32_t vna_next;
18812 }
18813#if !defined(SWIG) && !defined(_MSC_VER)
18814 __attribute__((packed))
18815#endif
18816 ;
18817
18818#ifdef _MSC_VER
18819# pragma pack ()
18820#endif
18821
18823 // Properties
18825public:
18826public:
18832 uint32_t const& get_hash() const;
18833 void set_hash(uint32_t const&);
18836public:
18842 int const& get_flags() const;
18843 void set_flags(int const&);
18846public:
18852 size_t const& get_other() const;
18853 void set_other(size_t const&);
18856public:
18864 // Functions
18866public:
18872
18875
18878
18884 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
18885public:
18888
18889public:
18892
18893protected:
18901#endif // SgAsmElfSymverNeededAux_OTHERS
18902#ifdef DOCUMENTATION
18903};
18904#endif // DOCUMENTATION
18905
18906
18908// SgAsmElfSymverEntryList -- MACHINE GENERATED; DO NOT MODIFY --
18910
18911DECLARE_LEAF_CLASS(AsmElfSymverEntryList);
18912IS_SERIALIZABLE(AsmElfSymverEntryList);
18913
18914#ifndef DOCUMENTATION
18915AsmElfSymverEntryList.useSmallHeader(true);
18916#endif // !DOCUMENTATION
18917
18918DECLARE_HEADERS(AsmElfSymverEntryList);
18919#if defined(SgAsmElfSymverEntryList_HEADERS) || defined(DOCUMENTATION)
18920#include <sageContainer.h>
18921#endif // SgAsmElfSymverEntryList_HEADERS
18922
18923#ifdef DOCUMENTATION
18929#endif // DOCUMENTATION
18930
18931#ifndef DOCUMENTATION
18932 AsmElfSymverEntryList.setDataPrototype(
18933 "SgAsmElfSymverEntryPtrList", "entries", "",
18934 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
18935#endif // !DOCUMENTATION
18936
18937 DECLARE_OTHERS(AsmElfSymverEntryList);
18938#if defined(SgAsmElfSymverEntryList_OTHERS) || defined(DOCUMENTATION)
18939
18940 //----------------------- Boost serialization for SgAsmElfSymverEntryList -----------------------
18941#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
18942private:
18943 friend class boost::serialization::access;
18944
18945 template<class S>
18946 void serialize(S &s, const unsigned /*version*/) {
18947 debugSerializationBegin("SgAsmElfSymverEntryList");
18948 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
18949 s & BOOST_SERIALIZATION_NVP(p_entries);
18950 debugSerializationEnd("SgAsmElfSymverEntryList");
18951 }
18952#endif // ROSE_ENABLE_BOOST_SERIALIZATION
18953public:
18954public:
18958 SgAsmElfSymverEntryPtrList const& get_entries() const;
18959 SgAsmElfSymverEntryPtrList& get_entries();
18960 void set_entries(SgAsmElfSymverEntryPtrList const&);
18963public:
18966
18967public:
18970
18971protected:
18979#endif // SgAsmElfSymverEntryList_OTHERS
18980#ifdef DOCUMENTATION
18981};
18982#endif // DOCUMENTATION
18983
18984
18986// SgAsmElfSymverEntry -- MACHINE GENERATED; DO NOT MODIFY --
18988
18989DECLARE_LEAF_CLASS(AsmElfSymverEntry);
18990IS_SERIALIZABLE(AsmElfSymverEntry);
18991
18992#ifndef DOCUMENTATION
18993AsmElfSymverEntry.useSmallHeader(true);
18994#endif // !DOCUMENTATION
18995
18996#ifdef DOCUMENTATION
18999#endif // DOCUMENTATION
19000
19001#ifndef DOCUMENTATION
19002 AsmElfSymverEntry.setDataPrototype(
19003 "size_t", "value", "= 0",
19004 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19005#endif // !DOCUMENTATION
19006
19007 DECLARE_OTHERS(AsmElfSymverEntry);
19008#if defined(SgAsmElfSymverEntry_OTHERS) || defined(DOCUMENTATION)
19009
19010 //----------------------- Boost serialization for SgAsmElfSymverEntry -----------------------
19011#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19012private:
19013 friend class boost::serialization::access;
19014
19015 template<class S>
19016 void serialize(S &s, const unsigned /*version*/) {
19017 debugSerializationBegin("SgAsmElfSymverEntry");
19018 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19019 s & BOOST_SERIALIZATION_NVP(p_value);
19020 debugSerializationEnd("SgAsmElfSymverEntry");
19021 }
19022#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19023public:
19024public:
19030 size_t const& get_value() const;
19031 void set_value(size_t const&);
19033public:
19036
19038 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
19039public:
19042
19043public:
19046
19047protected:
19055#endif // SgAsmElfSymverEntry_OTHERS
19056#ifdef DOCUMENTATION
19057};
19058#endif // DOCUMENTATION
19059
19060
19062// SgAsmElfSymverDefinedSection -- MACHINE GENERATED; DO NOT MODIFY --
19064
19065DECLARE_LEAF_CLASS(AsmElfSymverDefinedSection);
19066IS_SERIALIZABLE(AsmElfSymverDefinedSection);
19067
19068#ifndef DOCUMENTATION
19069AsmElfSymverDefinedSection.useSmallHeader(true);
19070#endif // !DOCUMENTATION
19071
19072DECLARE_HEADERS(AsmElfSymverDefinedSection);
19073#if defined(SgAsmElfSymverDefinedSection_HEADERS) || defined(DOCUMENTATION)
19074#include <Rose/BinaryAnalysis/Address.h>
19075
19076#ifdef ROSE_SgAsmElfSymverDefinedSection_IMPL
19077#include <SgAsmElfSymverDefinedEntryList.h>
19078#endif
19079#endif // SgAsmElfSymverDefinedSection_HEADERS
19080
19081#ifdef DOCUMENTATION
19088#endif // DOCUMENTATION
19089
19090#ifndef DOCUMENTATION
19091 AsmElfSymverDefinedSection.setDataPrototype(
19092 "SgAsmElfSymverDefinedEntryList*", "entries", "= createAndParent<SgAsmElfSymverDefinedEntryList>(this)",
19093 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19094#endif // !DOCUMENTATION
19095
19096 DECLARE_OTHERS(AsmElfSymverDefinedSection);
19097#if defined(SgAsmElfSymverDefinedSection_OTHERS) || defined(DOCUMENTATION)
19098
19099 //----------------------- Boost serialization for SgAsmElfSymverDefinedSection -----------------------
19100#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19101private:
19102 friend class boost::serialization::access;
19103
19104 template<class S>
19105 void serialize(S &s, const unsigned /*version*/) {
19106 debugSerializationBegin("SgAsmElfSymverDefinedSection");
19107 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
19108 s & BOOST_SERIALIZATION_NVP(p_entries);
19109 debugSerializationEnd("SgAsmElfSymverDefinedSection");
19110 }
19111#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19112public:
19113public:
19123public:
19126
19196
19200 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
19201
19205 virtual void unparse(std::ostream&) const override;
19206
19208 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19209
19211 // Deprecated 2023-11
19213public:
19214 using SgAsmElfSection::calculate_sizes;
19215 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
19216 ROSE_DEPRECATED("use calculateSizes");
19217public:
19220
19221public:
19224
19225protected:
19233#endif // SgAsmElfSymverDefinedSection_OTHERS
19234#ifdef DOCUMENTATION
19235};
19236#endif // DOCUMENTATION
19237
19238
19240// SgAsmElfSymverDefinedEntryList -- MACHINE GENERATED; DO NOT MODIFY --
19242
19243DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntryList);
19244IS_SERIALIZABLE(AsmElfSymverDefinedEntryList);
19245
19246#ifndef DOCUMENTATION
19247AsmElfSymverDefinedEntryList.useSmallHeader(true);
19248#endif // !DOCUMENTATION
19249
19250DECLARE_HEADERS(AsmElfSymverDefinedEntryList);
19251#if defined(SgAsmElfSymverDefinedEntryList_HEADERS) || defined(DOCUMENTATION)
19252#include <sageContainer.h>
19253#endif // SgAsmElfSymverDefinedEntryList_HEADERS
19254
19255#ifdef DOCUMENTATION
19261#endif // DOCUMENTATION
19262
19263#ifndef DOCUMENTATION
19264 AsmElfSymverDefinedEntryList.setDataPrototype(
19265 "SgAsmElfSymverDefinedEntryPtrList", "entries", "",
19266 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19267#endif // !DOCUMENTATION
19268
19269 DECLARE_OTHERS(AsmElfSymverDefinedEntryList);
19270#if defined(SgAsmElfSymverDefinedEntryList_OTHERS) || defined(DOCUMENTATION)
19271
19272 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntryList -----------------------
19273#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19274private:
19275 friend class boost::serialization::access;
19276
19277 template<class S>
19278 void serialize(S &s, const unsigned /*version*/) {
19279 debugSerializationBegin("SgAsmElfSymverDefinedEntryList");
19280 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19281 s & BOOST_SERIALIZATION_NVP(p_entries);
19282 debugSerializationEnd("SgAsmElfSymverDefinedEntryList");
19283 }
19284#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19285public:
19286public:
19290 SgAsmElfSymverDefinedEntryPtrList const& get_entries() const;
19291 SgAsmElfSymverDefinedEntryPtrList& get_entries();
19292 void set_entries(SgAsmElfSymverDefinedEntryPtrList const&);
19295public:
19298
19299public:
19302
19303protected:
19311#endif // SgAsmElfSymverDefinedEntryList_OTHERS
19312#ifdef DOCUMENTATION
19313};
19314#endif // DOCUMENTATION
19315
19316
19318// SgAsmElfSymverDefinedEntry -- MACHINE GENERATED; DO NOT MODIFY --
19320
19321DECLARE_LEAF_CLASS(AsmElfSymverDefinedEntry);
19322IS_SERIALIZABLE(AsmElfSymverDefinedEntry);
19323
19324#ifndef DOCUMENTATION
19325AsmElfSymverDefinedEntry.useSmallHeader(true);
19326#endif // !DOCUMENTATION
19327
19328DECLARE_HEADERS(AsmElfSymverDefinedEntry);
19329#if defined(SgAsmElfSymverDefinedEntry_HEADERS) || defined(DOCUMENTATION)
19330#include <Rose/BinaryAnalysis/ByteOrder.h>
19331
19332#ifdef ROSE_SgAsmElfSymverDefinedEntry_IMPL
19333#include <SgAsmElfSymverDefinedAuxList.h>
19334#endif
19335#endif // SgAsmElfSymverDefinedEntry_HEADERS
19336
19337#ifdef DOCUMENTATION
19340#endif // DOCUMENTATION
19341
19342#ifndef DOCUMENTATION
19343 AsmElfSymverDefinedEntry.setDataPrototype(
19344 "size_t", "version", "= 0",
19345 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19346#endif // !DOCUMENTATION
19347
19348#ifndef DOCUMENTATION
19349 AsmElfSymverDefinedEntry.setDataPrototype(
19350 "int", "flags", "= 0",
19351 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19352#endif // !DOCUMENTATION
19353
19354#ifndef DOCUMENTATION
19355 AsmElfSymverDefinedEntry.setDataPrototype(
19356 "size_t", "index", "= 0",
19357 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19358#endif // !DOCUMENTATION
19359
19360#ifndef DOCUMENTATION
19361 AsmElfSymverDefinedEntry.setDataPrototype(
19362 "uint32_t", "hash", "= 0",
19363 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19364#endif // !DOCUMENTATION
19365
19366#ifndef DOCUMENTATION
19367 AsmElfSymverDefinedEntry.setDataPrototype(
19368 "SgAsmElfSymverDefinedAuxList*", "entries", "= createAndParent<SgAsmElfSymverDefinedAuxList>(this)",
19369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19370#endif // !DOCUMENTATION
19371
19372 DECLARE_OTHERS(AsmElfSymverDefinedEntry);
19373#if defined(SgAsmElfSymverDefinedEntry_OTHERS) || defined(DOCUMENTATION)
19374
19375 //----------------------- Boost serialization for SgAsmElfSymverDefinedEntry -----------------------
19376#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19377private:
19378 friend class boost::serialization::access;
19379
19380 template<class S>
19381 void serialize(S &s, const unsigned /*version*/) {
19382 debugSerializationBegin("SgAsmElfSymverDefinedEntry");
19383 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19384 s & BOOST_SERIALIZATION_NVP(p_version);
19385 s & BOOST_SERIALIZATION_NVP(p_flags);
19386 s & BOOST_SERIALIZATION_NVP(p_index);
19387 s & BOOST_SERIALIZATION_NVP(p_hash);
19388 s & BOOST_SERIALIZATION_NVP(p_entries);
19389 debugSerializationEnd("SgAsmElfSymverDefinedEntry");
19390 }
19391#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19393 // Local types
19395public:
19396#ifdef _MSC_VER
19397# pragma pack (1)
19398#endif
19401 uint16_t vd_version;
19402 uint16_t vd_flags;
19403 uint16_t vd_ndx;
19404 uint16_t vd_cnt;
19405 uint32_t vd_hash;
19406 uint32_t vd_aux;
19407 uint32_t vd_next;
19408 }
19409#if !defined(SWIG) && !defined(_MSC_VER)
19410 __attribute__((packed))
19411#endif
19412 ;
19413
19414#ifdef _MSC_VER
19415# pragma pack ()
19416#endif
19417
19419 // Properties
19421public:
19422public:
19428 size_t const& get_version() const;
19429 void set_version(size_t const&);
19432public:
19438 int const& get_flags() const;
19439 void set_flags(int const&);
19442public:
19448 size_t const& get_index() const;
19449 void set_index(size_t const&);
19452public:
19458 uint32_t const& get_hash() const;
19459 void set_hash(uint32_t const&);
19462public:
19473 // Functions
19475public:
19478
19481
19484
19486 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
19487public:
19490
19491public:
19494
19495protected:
19503#endif // SgAsmElfSymverDefinedEntry_OTHERS
19504#ifdef DOCUMENTATION
19505};
19506#endif // DOCUMENTATION
19507
19508
19510// SgAsmElfSymverDefinedAuxList -- MACHINE GENERATED; DO NOT MODIFY --
19512
19513DECLARE_LEAF_CLASS(AsmElfSymverDefinedAuxList);
19514IS_SERIALIZABLE(AsmElfSymverDefinedAuxList);
19515
19516#ifndef DOCUMENTATION
19517AsmElfSymverDefinedAuxList.useSmallHeader(true);
19518#endif // !DOCUMENTATION
19519
19520DECLARE_HEADERS(AsmElfSymverDefinedAuxList);
19521#if defined(SgAsmElfSymverDefinedAuxList_HEADERS) || defined(DOCUMENTATION)
19522#include <sageContainer.h>
19523#endif // SgAsmElfSymverDefinedAuxList_HEADERS
19524
19525#ifdef DOCUMENTATION
19531#endif // DOCUMENTATION
19532
19533#ifndef DOCUMENTATION
19534 AsmElfSymverDefinedAuxList.setDataPrototype(
19535 "SgAsmElfSymverDefinedAuxPtrList", "entries", "",
19536 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19537#endif // !DOCUMENTATION
19538
19539 DECLARE_OTHERS(AsmElfSymverDefinedAuxList);
19540#if defined(SgAsmElfSymverDefinedAuxList_OTHERS) || defined(DOCUMENTATION)
19541
19542 //----------------------- Boost serialization for SgAsmElfSymverDefinedAuxList -----------------------
19543#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19544private:
19545 friend class boost::serialization::access;
19546
19547 template<class S>
19548 void serialize(S &s, const unsigned /*version*/) {
19549 debugSerializationBegin("SgAsmElfSymverDefinedAuxList");
19550 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19551 s & BOOST_SERIALIZATION_NVP(p_entries);
19552 debugSerializationEnd("SgAsmElfSymverDefinedAuxList");
19553 }
19554#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19555public:
19556public:
19560 SgAsmElfSymverDefinedAuxPtrList const& get_entries() const;
19561 SgAsmElfSymverDefinedAuxPtrList& get_entries();
19562 void set_entries(SgAsmElfSymverDefinedAuxPtrList const&);
19565public:
19568
19569public:
19572
19573protected:
19581#endif // SgAsmElfSymverDefinedAuxList_OTHERS
19582#ifdef DOCUMENTATION
19583};
19584#endif // DOCUMENTATION
19585
19586
19588// SgAsmElfSymverDefinedAux -- MACHINE GENERATED; DO NOT MODIFY --
19590
19591DECLARE_LEAF_CLASS(AsmElfSymverDefinedAux);
19592IS_SERIALIZABLE(AsmElfSymverDefinedAux);
19593
19594#ifndef DOCUMENTATION
19595AsmElfSymverDefinedAux.useSmallHeader(true);
19596#endif // !DOCUMENTATION
19597
19598DECLARE_HEADERS(AsmElfSymverDefinedAux);
19599#if defined(SgAsmElfSymverDefinedAux_HEADERS) || defined(DOCUMENTATION)
19600#include <Rose/BinaryAnalysis/ByteOrder.h>
19601
19602#ifdef ROSE_SgAsmElfSymverDefinedAux_IMPL
19603#include <SgAsmGenericString.h>
19604#endif
19605#endif // SgAsmElfSymverDefinedAux_HEADERS
19606
19607#ifdef DOCUMENTATION
19610#endif // DOCUMENTATION
19611
19612#ifndef DOCUMENTATION
19613 AsmElfSymverDefinedAux.setDataPrototype(
19614 "SgAsmGenericString*", "name", "= 0",
19615 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19616#endif // !DOCUMENTATION
19617
19618 DECLARE_OTHERS(AsmElfSymverDefinedAux);
19619#if defined(SgAsmElfSymverDefinedAux_OTHERS) || defined(DOCUMENTATION)
19620
19621 //----------------------- Boost serialization for SgAsmElfSymverDefinedAux -----------------------
19622#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19623private:
19624 friend class boost::serialization::access;
19625
19626 template<class S>
19627 void serialize(S &s, const unsigned /*version*/) {
19628 debugSerializationBegin("SgAsmElfSymverDefinedAux");
19629 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19630 s & BOOST_SERIALIZATION_NVP(p_name);
19631 debugSerializationEnd("SgAsmElfSymverDefinedAux");
19632 }
19633#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19635 // Local types
19637public:
19638#ifdef _MSC_VER
19639# pragma pack (1)
19640#endif
19641
19644 uint32_t vda_name;
19645 uint32_t vda_next;
19646 }
19647#if !defined(SWIG) && !defined(_MSC_VER)
19648 __attribute__((packed))
19649#endif
19650 ;
19651
19652#ifdef _MSC_VER
19653# pragma pack ()
19654#endif
19655
19657 // Properties
19659public:
19660public:
19668 // Functions
19670public:
19675
19678
19681
19687 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const;
19688public:
19691
19692public:
19695
19696protected:
19704#endif // SgAsmElfSymverDefinedAux_OTHERS
19705#ifdef DOCUMENTATION
19706};
19707#endif // DOCUMENTATION
19708
19709
19711// SgAsmElfSymbolSection -- MACHINE GENERATED; DO NOT MODIFY --
19713
19714DECLARE_LEAF_CLASS(AsmElfSymbolSection);
19715IS_SERIALIZABLE(AsmElfSymbolSection);
19716
19717#ifndef DOCUMENTATION
19718AsmElfSymbolSection.useSmallHeader(true);
19719#endif // !DOCUMENTATION
19720
19721DECLARE_HEADERS(AsmElfSymbolSection);
19722#if defined(SgAsmElfSymbolSection_HEADERS) || defined(DOCUMENTATION)
19723#include <Rose/BinaryAnalysis/Address.h>
19724
19725#ifdef ROSE_SgAsmElfSymbolSection_IMPL
19726#include <SgAsmElfSymbolList.h>
19727#endif
19728#endif // SgAsmElfSymbolSection_HEADERS
19729
19730#ifdef DOCUMENTATION
19733#endif // DOCUMENTATION
19734
19735#ifndef DOCUMENTATION
19736 AsmElfSymbolSection.setDataPrototype(
19737 "bool", "isDynamic", "= false",
19738 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19739#endif // !DOCUMENTATION
19740
19741#ifndef DOCUMENTATION
19742 AsmElfSymbolSection.setDataPrototype(
19743 "SgAsmElfSymbolList*", "symbols", "= createAndParent<SgAsmElfSymbolList>(this)",
19744 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19745#endif // !DOCUMENTATION
19746
19747 DECLARE_OTHERS(AsmElfSymbolSection);
19748#if defined(SgAsmElfSymbolSection_OTHERS) || defined(DOCUMENTATION)
19749
19750 //----------------------- Boost serialization for SgAsmElfSymbolSection -----------------------
19751#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19752private:
19753 friend class boost::serialization::access;
19754
19755 template<class S>
19756 void serialize(S &s, const unsigned /*version*/) {
19757 debugSerializationBegin("SgAsmElfSymbolSection");
19758 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
19759 s & BOOST_SERIALIZATION_NVP(p_isDynamic);
19760 s & BOOST_SERIALIZATION_NVP(p_symbols);
19761 debugSerializationEnd("SgAsmElfSymbolSection");
19762 }
19763#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19764public:
19765public:
19769 bool const& get_isDynamic() const;
19770 void set_isDynamic(bool const&);
19773public:
19783public:
19786
19788 virtual SgAsmElfSymbolSection* parse() override;
19789
19802 virtual void finishParsing() override;
19803
19806
19812 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *nentries) const override;
19813
19817 virtual bool reallocate() override;
19818
19820 virtual void unparse(std::ostream&) const override;
19821
19823 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
19824
19826 // Deprecated 2023-11
19828public:
19829 bool get_is_dynamic() const ROSE_DEPRECATED("use get_isDynamic");
19830 void set_is_dynamic(bool) ROSE_DEPRECATED("use set_isDynamic");
19831 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing");
19832 size_t index_of(SgAsmElfSymbol*) ROSE_DEPRECATED("use indexOf");
19833 using SgAsmElfSection::calculate_sizes;
19834 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
19835 ROSE_DEPRECATED("use calculateSizes");
19836public:
19839
19840public:
19843
19844protected:
19852#endif // SgAsmElfSymbolSection_OTHERS
19853#ifdef DOCUMENTATION
19854};
19855#endif // DOCUMENTATION
19856
19857
19859// SgAsmElfSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
19861
19862DECLARE_LEAF_CLASS(AsmElfSymbolList);
19863IS_SERIALIZABLE(AsmElfSymbolList);
19864
19865#ifndef DOCUMENTATION
19866AsmElfSymbolList.useSmallHeader(true);
19867#endif // !DOCUMENTATION
19868
19869DECLARE_HEADERS(AsmElfSymbolList);
19870#if defined(SgAsmElfSymbolList_HEADERS) || defined(DOCUMENTATION)
19871#include <sageContainer.h>
19872#endif // SgAsmElfSymbolList_HEADERS
19873
19874#ifdef DOCUMENTATION
19876#endif // DOCUMENTATION
19877
19878#ifndef DOCUMENTATION
19879 AsmElfSymbolList.setDataPrototype(
19880 "SgAsmElfSymbolPtrList", "symbols", "",
19881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
19882#endif // !DOCUMENTATION
19883
19884 DECLARE_OTHERS(AsmElfSymbolList);
19885#if defined(SgAsmElfSymbolList_OTHERS) || defined(DOCUMENTATION)
19886
19887 //----------------------- Boost serialization for SgAsmElfSymbolList -----------------------
19888#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19889private:
19890 friend class boost::serialization::access;
19891
19892 template<class S>
19893 void serialize(S &s, const unsigned /*version*/) {
19894 debugSerializationBegin("SgAsmElfSymbolList");
19895 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
19896 s & BOOST_SERIALIZATION_NVP(p_symbols);
19897 debugSerializationEnd("SgAsmElfSymbolList");
19898 }
19899#endif // ROSE_ENABLE_BOOST_SERIALIZATION
19900public:
19901public:
19908 SgAsmElfSymbolPtrList const& get_symbols() const;
19909 SgAsmElfSymbolPtrList& get_symbols();
19910 void set_symbols(SgAsmElfSymbolPtrList const&);
19913public:
19916
19917public:
19920
19921protected:
19929#endif // SgAsmElfSymbolList_OTHERS
19930#ifdef DOCUMENTATION
19931};
19932#endif // DOCUMENTATION
19933
19934
19936// SgAsmElfSymbol -- MACHINE GENERATED; DO NOT MODIFY --
19938
19939DECLARE_LEAF_CLASS(AsmElfSymbol);
19940IS_SERIALIZABLE(AsmElfSymbol);
19941
19942#ifndef DOCUMENTATION
19943AsmElfSymbol.useSmallHeader(true);
19944#endif // !DOCUMENTATION
19945
19946DECLARE_HEADERS(AsmElfSymbol);
19947#if defined(SgAsmElfSymbol_HEADERS) || defined(DOCUMENTATION)
19948#include <Rose/BinaryAnalysis/Address.h>
19949#include <Rose/BinaryAnalysis/ByteOrder.h>
19950#include <sageContainer.h>
19951#endif // SgAsmElfSymbol_HEADERS
19952
19953#ifdef DOCUMENTATION
19959#endif // DOCUMENTATION
19960
19961#ifndef DOCUMENTATION
19962 AsmElfSymbol.setDataPrototype(
19963 "unsigned char", "st_info", "= 0",
19964 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19965#endif // !DOCUMENTATION
19966
19967#ifndef DOCUMENTATION
19968 AsmElfSymbol.setDataPrototype(
19969 "unsigned char", "st_res1", "= 0",
19970 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19971#endif // !DOCUMENTATION
19972
19973#ifndef DOCUMENTATION
19974 AsmElfSymbol.setDataPrototype(
19975 "unsigned", "st_shndx", "= 0",
19976 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19977#endif // !DOCUMENTATION
19978
19979#ifndef DOCUMENTATION
19980 AsmElfSymbol.setDataPrototype(
19981 "Rose::BinaryAnalysis::Address", "st_size", "= 0",
19982 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19983#endif // !DOCUMENTATION
19984
19985#ifndef DOCUMENTATION
19986 AsmElfSymbol.setDataPrototype(
19987 "SgUnsignedCharList", "extra", "",
19988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
19989#endif // !DOCUMENTATION
19990
19991 DECLARE_OTHERS(AsmElfSymbol);
19992#if defined(SgAsmElfSymbol_OTHERS) || defined(DOCUMENTATION)
19993
19994 //----------------------- Boost serialization for SgAsmElfSymbol -----------------------
19995#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
19996private:
19997 friend class boost::serialization::access;
19998
19999 template<class S>
20000 void serialize(S &s, const unsigned /*version*/) {
20001 debugSerializationBegin("SgAsmElfSymbol");
20002 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
20003 s & BOOST_SERIALIZATION_NVP(p_st_info);
20004 s & BOOST_SERIALIZATION_NVP(p_st_res1);
20005 s & BOOST_SERIALIZATION_NVP(p_st_shndx);
20006 s & BOOST_SERIALIZATION_NVP(p_st_size);
20007 s & BOOST_SERIALIZATION_NVP(p_extra);
20008 debugSerializationEnd("SgAsmElfSymbol");
20009 }
20010#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20012 // Local types
20014public:
20015 enum ElfSymBinding {
20016 STB_LOCAL=0,
20017 STB_GLOBAL=1,
20018 STB_WEAK=2
20019 };
20020
20031
20032#ifdef _MSC_VER
20033# pragma pack (1)
20034#endif
20035
20038 uint32_t st_name;
20039 uint32_t st_value;
20040 uint32_t st_size;
20041 unsigned char st_info;
20042 unsigned char st_res1;
20043 uint16_t st_shndx;
20044 }
20045#if !defined(SWIG) && !defined(_MSC_VER)
20046 __attribute__((packed))
20047#endif
20048 ;
20049
20051 uint32_t st_name;
20052 unsigned char st_info;
20053 unsigned char st_res1;
20054 uint16_t st_shndx;
20055 uint64_t st_value;
20056 uint64_t st_size;
20057 }
20058#if !defined(SWIG) && !defined(_MSC_VER)
20059 __attribute__((packed))
20060#endif
20061 ;
20062
20063#ifdef _MSC_VER
20064# pragma pack ()
20065#endif
20066
20068 // Properties
20070public:
20071public:
20077 unsigned char const& get_st_info() const;
20078 void set_st_info(unsigned char const&);
20081public:
20087 unsigned char const& get_st_res1() const;
20088 void set_st_res1(unsigned char const&);
20091public:
20097 unsigned const& get_st_shndx() const;
20098 void set_st_shndx(unsigned const&);
20101public:
20111public:
20117 SgUnsignedCharList const& get_extra() const;
20118 SgUnsignedCharList& get_extra();
20119 void set_extra(SgUnsignedCharList const&);
20122 // Functions
20124public:
20127
20132
20137
20150 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
20151 void dump(FILE*, const char *prefix, ssize_t idx, SgAsmGenericSection*) const;
20155 SgAsmElfSymbol::ElfSymBinding get_elfBinding() const;
20156
20159
20161 static std::string toString(SgAsmElfSymbol::ElfSymBinding);
20162
20165
20166private:
20167 void parse_common(); // initialization common to all parse() methods
20168
20170 // Deprecated 2023-11
20172public:
20173 SgAsmElfSymbol::ElfSymBinding get_elf_binding() const ROSE_DEPRECATED("use get_elfBinding");
20174 SgAsmElfSymbol::ElfSymType get_elf_type() const ROSE_DEPRECATED("use get_elfType");
20175 static std::string to_string(SgAsmElfSymbol::ElfSymBinding) ROSE_DEPRECATED("use toString");
20176 static std::string to_string(SgAsmElfSymbol::ElfSymType) ROSE_DEPRECATED("use toString");
20177public:
20179 virtual ~SgAsmElfSymbol();
20180
20181public:
20184
20185protected:
20193#endif // SgAsmElfSymbol_OTHERS
20194#ifdef DOCUMENTATION
20195};
20196#endif // DOCUMENTATION
20197
20198
20200// SgAsmElfStrtab -- MACHINE GENERATED; DO NOT MODIFY --
20202
20203DECLARE_LEAF_CLASS(AsmElfStrtab);
20204IS_SERIALIZABLE(AsmElfStrtab);
20205
20206#ifndef DOCUMENTATION
20207AsmElfStrtab.useSmallHeader(true);
20208#endif // !DOCUMENTATION
20209
20210DECLARE_HEADERS(AsmElfStrtab);
20211#if defined(SgAsmElfStrtab_HEADERS) || defined(DOCUMENTATION)
20212#include <Rose/BinaryAnalysis/Address.h>
20213#endif // SgAsmElfStrtab_HEADERS
20214
20215#ifdef DOCUMENTATION
20218#endif // DOCUMENTATION
20219
20220 DECLARE_OTHERS(AsmElfStrtab);
20221#if defined(SgAsmElfStrtab_OTHERS) || defined(DOCUMENTATION)
20222
20223 //----------------------- Boost serialization for SgAsmElfStrtab -----------------------
20224#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20225private:
20226 friend class boost::serialization::access;
20227
20228 template<class S>
20229 void serialize(S &s, const unsigned /*version*/) {
20230 debugSerializationBegin("SgAsmElfStrtab");
20231 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
20232 debugSerializationEnd("SgAsmElfStrtab");
20233 }
20234#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20235public:
20239 explicit SgAsmElfStrtab(class SgAsmElfSection *containing_section);
20240
20247 void destructorHelper() override;
20248
20252 virtual SgAsmElfStrtab *parse() override;
20253
20257 virtual void unparse(std::ostream&) const;
20258
20265
20270
20279 virtual void allocateOverlap(SgAsmStringStorage*) override;
20280
20283
20285 // Deprecated 2023-11
20287public:
20288 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) override ROSE_DEPRECATED("use createStorage");
20289 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) override
20290 ROSE_DEPRECATED("use get_storageSize");
20291 virtual void allocate_overlap(SgAsmStringStorage*) override ROSE_DEPRECATED("use allocateOverlap");
20292public:
20295
20296public:
20299
20300protected:
20308#endif // SgAsmElfStrtab_OTHERS
20309#ifdef DOCUMENTATION
20310};
20311#endif // DOCUMENTATION
20312
20313
20315// SgAsmElfStringSection -- MACHINE GENERATED; DO NOT MODIFY --
20317
20318DECLARE_LEAF_CLASS(AsmElfStringSection);
20319IS_SERIALIZABLE(AsmElfStringSection);
20320
20321#ifndef DOCUMENTATION
20322AsmElfStringSection.useSmallHeader(true);
20323#endif // !DOCUMENTATION
20324
20325DECLARE_HEADERS(AsmElfStringSection);
20326#if defined(SgAsmElfStringSection_HEADERS) || defined(DOCUMENTATION)
20327#include <Rose/BinaryAnalysis/Address.h>
20328#endif // SgAsmElfStringSection_HEADERS
20329
20330#ifdef DOCUMENTATION
20335#endif // DOCUMENTATION
20336
20337#ifndef DOCUMENTATION
20338 AsmElfStringSection.setDataPrototype(
20339 "SgAsmElfStrtab*", "strtab", "= nullptr",
20340 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20341#endif // !DOCUMENTATION
20342
20343 DECLARE_OTHERS(AsmElfStringSection);
20344#if defined(SgAsmElfStringSection_OTHERS) || defined(DOCUMENTATION)
20345
20346 //----------------------- Boost serialization for SgAsmElfStringSection -----------------------
20347#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20348private:
20349 friend class boost::serialization::access;
20350
20351 template<class S>
20352 void serialize(S &s, const unsigned /*version*/) {
20353 debugSerializationBegin("SgAsmElfStringSection");
20354 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
20355 s & BOOST_SERIALIZATION_NVP(p_strtab);
20356 debugSerializationEnd("SgAsmElfStringSection");
20357 }
20358#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20359public:
20360public:
20369public:
20372
20374 virtual SgAsmElfStringSection *parse() override;
20375
20377 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20378
20383 virtual void set_size(Rose::BinaryAnalysis::Address newsize) override;
20384
20391 virtual bool reallocate() override;
20392
20394 virtual void unparse(std::ostream&) const override;
20395public:
20398
20399public:
20402
20403protected:
20411#endif // SgAsmElfStringSection_OTHERS
20412#ifdef DOCUMENTATION
20413};
20414#endif // DOCUMENTATION
20415
20416
20418// SgAsmElfSegmentTableEntryList -- MACHINE GENERATED; DO NOT MODIFY --
20420
20421DECLARE_LEAF_CLASS(AsmElfSegmentTableEntryList);
20422IS_SERIALIZABLE(AsmElfSegmentTableEntryList);
20423
20424#ifndef DOCUMENTATION
20425AsmElfSegmentTableEntryList.useSmallHeader(true);
20426#endif // !DOCUMENTATION
20427
20428DECLARE_HEADERS(AsmElfSegmentTableEntryList);
20429#if defined(SgAsmElfSegmentTableEntryList_HEADERS) || defined(DOCUMENTATION)
20430#include <sageContainer.h>
20431#endif // SgAsmElfSegmentTableEntryList_HEADERS
20432
20433#ifdef DOCUMENTATION
20435#endif // DOCUMENTATION
20436
20437#ifndef DOCUMENTATION
20438 AsmElfSegmentTableEntryList.setDataPrototype(
20439 "SgAsmElfSegmentTableEntryPtrList", "entries", "",
20440 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
20441#endif // !DOCUMENTATION
20442
20443 DECLARE_OTHERS(AsmElfSegmentTableEntryList);
20444#if defined(SgAsmElfSegmentTableEntryList_OTHERS) || defined(DOCUMENTATION)
20445
20446 //----------------------- Boost serialization for SgAsmElfSegmentTableEntryList -----------------------
20447#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20448private:
20449 friend class boost::serialization::access;
20450
20451 template<class S>
20452 void serialize(S &s, const unsigned /*version*/) {
20453 debugSerializationBegin("SgAsmElfSegmentTableEntryList");
20454 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20455 s & BOOST_SERIALIZATION_NVP(p_entries);
20456 debugSerializationEnd("SgAsmElfSegmentTableEntryList");
20457 }
20458#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20459public:
20460public:
20467 SgAsmElfSegmentTableEntryPtrList const& get_entries() const;
20468 SgAsmElfSegmentTableEntryPtrList& get_entries();
20469 void set_entries(SgAsmElfSegmentTableEntryPtrList const&);
20472public:
20475
20476public:
20479
20480protected:
20488#endif // SgAsmElfSegmentTableEntryList_OTHERS
20489#ifdef DOCUMENTATION
20490};
20491#endif // DOCUMENTATION
20492
20493
20495// SgAsmElfSegmentTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
20497
20498DECLARE_LEAF_CLASS(AsmElfSegmentTableEntry);
20499IS_SERIALIZABLE(AsmElfSegmentTableEntry);
20500
20501#ifndef DOCUMENTATION
20502AsmElfSegmentTableEntry.useSmallHeader(true);
20503#endif // !DOCUMENTATION
20504
20505DECLARE_HEADERS(AsmElfSegmentTableEntry);
20506#if defined(SgAsmElfSegmentTableEntry_HEADERS) || defined(DOCUMENTATION)
20507#include <Rose/BinaryAnalysis/Address.h>
20508#include <Rose/BinaryAnalysis/ByteOrder.h>
20509#include <sageContainer.h>
20510#endif // SgAsmElfSegmentTableEntry_HEADERS
20511
20512#ifdef DOCUMENTATION
20515#endif // DOCUMENTATION
20516
20517#ifndef DOCUMENTATION
20518 AsmElfSegmentTableEntry.setDataPrototype(
20519 "size_t", "index", "= 0",
20520 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20521#endif // !DOCUMENTATION
20522
20523#ifndef DOCUMENTATION
20524 AsmElfSegmentTableEntry.setDataPrototype(
20525 "SgAsmElfSegmentTableEntry::SegmentType", "type", "= SgAsmElfSegmentTableEntry::PT_LOAD",
20526 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20527#endif // !DOCUMENTATION
20528
20529#ifndef DOCUMENTATION
20530 AsmElfSegmentTableEntry.setDataPrototype(
20531 "SgAsmElfSegmentTableEntry::SegmentFlags", "flags", "= SgAsmElfSegmentTableEntry::PF_NONE",
20532 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20533#endif // !DOCUMENTATION
20534
20535#ifndef DOCUMENTATION
20536 AsmElfSegmentTableEntry.setDataPrototype(
20537 "Rose::BinaryAnalysis::Address", "offset", "= 0",
20538 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20539#endif // !DOCUMENTATION
20540
20541#ifndef DOCUMENTATION
20542 AsmElfSegmentTableEntry.setDataPrototype(
20543 "Rose::BinaryAnalysis::Address", "vaddr", "= 0",
20544 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20545#endif // !DOCUMENTATION
20546
20547#ifndef DOCUMENTATION
20548 AsmElfSegmentTableEntry.setDataPrototype(
20549 "Rose::BinaryAnalysis::Address", "paddr", "= 0",
20550 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20551#endif // !DOCUMENTATION
20552
20553#ifndef DOCUMENTATION
20554 AsmElfSegmentTableEntry.setDataPrototype(
20555 "Rose::BinaryAnalysis::Address", "filesz", "= 0",
20556 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20557#endif // !DOCUMENTATION
20558
20559#ifndef DOCUMENTATION
20560 AsmElfSegmentTableEntry.setDataPrototype(
20561 "Rose::BinaryAnalysis::Address", "memsz", "= 0",
20562 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20563#endif // !DOCUMENTATION
20564
20565#ifndef DOCUMENTATION
20566 AsmElfSegmentTableEntry.setDataPrototype(
20567 "Rose::BinaryAnalysis::Address", "align", "= 0",
20568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20569#endif // !DOCUMENTATION
20570
20571#ifndef DOCUMENTATION
20572 AsmElfSegmentTableEntry.setDataPrototype(
20573 "SgUnsignedCharList", "extra", "",
20574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20575#endif // !DOCUMENTATION
20576
20577 DECLARE_OTHERS(AsmElfSegmentTableEntry);
20578#if defined(SgAsmElfSegmentTableEntry_OTHERS) || defined(DOCUMENTATION)
20579
20580 //----------------------- Boost serialization for SgAsmElfSegmentTableEntry -----------------------
20581#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20582private:
20583 friend class boost::serialization::access;
20584
20585 template<class S>
20586 void serialize(S &s, const unsigned /*version*/) {
20587 debugSerializationBegin("SgAsmElfSegmentTableEntry");
20588 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
20589 s & BOOST_SERIALIZATION_NVP(p_index);
20590 s & BOOST_SERIALIZATION_NVP(p_type);
20591 s & BOOST_SERIALIZATION_NVP(p_flags);
20592 s & BOOST_SERIALIZATION_NVP(p_offset);
20593 s & BOOST_SERIALIZATION_NVP(p_vaddr);
20594 s & BOOST_SERIALIZATION_NVP(p_paddr);
20595 s & BOOST_SERIALIZATION_NVP(p_filesz);
20596 s & BOOST_SERIALIZATION_NVP(p_memsz);
20597 s & BOOST_SERIALIZATION_NVP(p_align);
20598 s & BOOST_SERIALIZATION_NVP(p_extra);
20599 debugSerializationEnd("SgAsmElfSegmentTableEntry");
20600 }
20601#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20603 // Local types
20605public:
20617 // OS- and Processor-specific ranges
20618 PT_LOOS = 0x60000000,
20619 PT_HIOS = 0x6fffffff,
20620 PT_LOPROC = 0x70000000,
20621 PT_HIPROC = 0x7fffffff,
20622
20623 // OS-specific values for GNU/Linux
20624 PT_GNU_EH_FRAME = 0x6474e550,
20625 PT_GNU_STACK = 0x6474e551,
20626 PT_GNU_RELRO = 0x6474e552,
20627 PT_PAX_FLAGS = 0x65041580,
20629 // OS-specific values for Sun
20630 PT_SUNWBSS = 0x6ffffffa,
20631 PT_SUNWSTACK = 0x6ffffffb
20633
20637 PF_RESERVED = 0x000ffff8,
20638 PF_XPERM = 0x00000001,
20639 PF_WPERM = 0x00000002,
20640 PF_RPERM = 0x00000004,
20641 PF_OS_MASK = 0x0ff00000,
20642 PF_PROC_MASK = 0xf0000000
20644
20645#ifdef _MSC_VER
20646# pragma pack (1)
20647#endif
20656 uint32_t p_type;
20657 uint32_t p_offset;
20658 uint32_t p_vaddr;
20659 uint32_t p_paddr;
20660 uint32_t p_filesz;
20661 uint32_t p_memsz;
20662 uint32_t p_flags;
20663 uint32_t p_align;
20664 } /* 0x30 */
20665#if !defined(SWIG) && !defined(_MSC_VER)
20666 __attribute__((packed))
20667#endif
20668 ;
20669
20671 uint32_t p_type; /* 0x00 */
20672 uint32_t p_flags; /* 0x04 */
20673 uint64_t p_offset; /* 0x08 */
20674 uint64_t p_vaddr; /* 0x10 */
20675 uint64_t p_paddr; /* 0x18 */
20676 uint64_t p_filesz; /* 0x20 */
20677 uint64_t p_memsz; /* 0x28 */
20678 uint64_t p_align; /* 0x30 */
20679 } /* 0x38 */
20680#if !defined(SWIG) && !defined(_MSC_VER)
20681 __attribute__((packed))
20682#endif
20683 ;
20684#ifdef _MSC_VER
20685# pragma pack ()
20686#endif
20687
20689 // Properties
20691public:
20692public:
20698 size_t const& get_index() const;
20699 void set_index(size_t const&);
20702public:
20710public:
20718public:
20728public:
20739public:
20749public:
20759public:
20769public:
20779public:
20785 SgUnsignedCharList const& get_extra() const;
20786 SgUnsignedCharList& get_extra();
20787 void set_extra(SgUnsignedCharList const&);
20790 // Functions
20792public:
20796
20800
20810
20812 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
20813
20816
20819
20821 // Deprecated 2023-11
20823public:
20824 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
20825 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentType) ROSE_DEPRECATED("use toString");
20826 static std::string to_string(SgAsmElfSegmentTableEntry::SegmentFlags) ROSE_DEPRECATED("use toString");
20827public:
20830
20831public:
20834
20835protected:
20843#endif // SgAsmElfSegmentTableEntry_OTHERS
20844#ifdef DOCUMENTATION
20845};
20846#endif // DOCUMENTATION
20847
20848
20850// SgAsmElfSegmentTable -- MACHINE GENERATED; DO NOT MODIFY --
20852
20853DECLARE_LEAF_CLASS(AsmElfSegmentTable);
20854IS_SERIALIZABLE(AsmElfSegmentTable);
20855
20856#ifndef DOCUMENTATION
20857AsmElfSegmentTable.useSmallHeader(true);
20858#endif // !DOCUMENTATION
20859
20860DECLARE_HEADERS(AsmElfSegmentTable);
20861#if defined(SgAsmElfSegmentTable_HEADERS) || defined(DOCUMENTATION)
20862#include <Rose/BinaryAnalysis/Address.h>
20863#endif // SgAsmElfSegmentTable_HEADERS
20864
20865#ifdef DOCUMENTATION
20873#endif // DOCUMENTATION
20874
20875 DECLARE_OTHERS(AsmElfSegmentTable);
20876#if defined(SgAsmElfSegmentTable_OTHERS) || defined(DOCUMENTATION)
20877
20878 //----------------------- Boost serialization for SgAsmElfSegmentTable -----------------------
20879#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
20880private:
20881 friend class boost::serialization::access;
20882
20883 template<class S>
20884 void serialize(S &s, const unsigned /*version*/) {
20885 debugSerializationBegin("SgAsmElfSegmentTable");
20886 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
20887 debugSerializationEnd("SgAsmElfSegmentTable");
20888 }
20889#endif // ROSE_ENABLE_BOOST_SERIALIZATION
20890public:
20893
20898 virtual SgAsmElfSegmentTable *parse() override;
20899
20914
20918 Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
20919
20920 virtual bool reallocate() override;
20921
20923 virtual void unparse(std::ostream&) const override;
20924
20926 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
20927
20929 // Deprecated 2023-11
20931public:
20932 SgAsmElfSegmentTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
20933 Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
20934public:
20937
20938public:
20941
20942protected:
20950#endif // SgAsmElfSegmentTable_OTHERS
20951#ifdef DOCUMENTATION
20952};
20953#endif // DOCUMENTATION
20954
20955
20957// SgAsmElfSectionTableEntry -- MACHINE GENERATED; DO NOT MODIFY --
20959
20960DECLARE_LEAF_CLASS(AsmElfSectionTableEntry);
20961IS_SERIALIZABLE(AsmElfSectionTableEntry);
20962
20963#ifndef DOCUMENTATION
20964AsmElfSectionTableEntry.useSmallHeader(true);
20965#endif // !DOCUMENTATION
20966
20967DECLARE_HEADERS(AsmElfSectionTableEntry);
20968#if defined(SgAsmElfSectionTableEntry_HEADERS) || defined(DOCUMENTATION)
20969#include <Rose/BinaryAnalysis/Address.h>
20970#include <Rose/BinaryAnalysis/ByteOrder.h>
20971#include <sageContainer.h>
20972#endif // SgAsmElfSectionTableEntry_HEADERS
20973
20974#ifdef DOCUMENTATION
20977#endif // DOCUMENTATION
20978
20979#ifndef DOCUMENTATION
20980 AsmElfSectionTableEntry.setDataPrototype(
20981 "unsigned", "sh_name", "= 0",
20982 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20983#endif // !DOCUMENTATION
20984
20985#ifndef DOCUMENTATION
20986 AsmElfSectionTableEntry.setDataPrototype(
20987 "SgAsmElfSectionTableEntry::SectionType", "sh_type", "= SHT_PROGBITS",
20988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20989#endif // !DOCUMENTATION
20990
20991#ifndef DOCUMENTATION
20992 AsmElfSectionTableEntry.setDataPrototype(
20993 "unsigned long", "sh_link", "= 0",
20994 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
20995#endif // !DOCUMENTATION
20996
20997#ifndef DOCUMENTATION
20998 AsmElfSectionTableEntry.setDataPrototype(
20999 "unsigned long", "sh_info", "= 0",
21000 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21001#endif // !DOCUMENTATION
21002
21003#ifndef DOCUMENTATION
21004 AsmElfSectionTableEntry.setDataPrototype(
21005 "uint64_t", "sh_flags", "= 0",
21006 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21007#endif // !DOCUMENTATION
21008
21009#ifndef DOCUMENTATION
21010 AsmElfSectionTableEntry.setDataPrototype(
21011 "Rose::BinaryAnalysis::Address", "sh_addr", "= 0",
21012 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21013#endif // !DOCUMENTATION
21014
21015#ifndef DOCUMENTATION
21016 AsmElfSectionTableEntry.setDataPrototype(
21017 "Rose::BinaryAnalysis::Address", "sh_offset", "= 0",
21018 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21019#endif // !DOCUMENTATION
21020
21021#ifndef DOCUMENTATION
21022 AsmElfSectionTableEntry.setDataPrototype(
21023 "Rose::BinaryAnalysis::Address", "sh_size", "= 0",
21024 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21025#endif // !DOCUMENTATION
21026
21027#ifndef DOCUMENTATION
21028 AsmElfSectionTableEntry.setDataPrototype(
21029 "Rose::BinaryAnalysis::Address", "sh_addralign", "= 0",
21030 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21031#endif // !DOCUMENTATION
21032
21033#ifndef DOCUMENTATION
21034 AsmElfSectionTableEntry.setDataPrototype(
21035 "Rose::BinaryAnalysis::Address", "sh_entsize", "= 0",
21036 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21037#endif // !DOCUMENTATION
21038
21039#ifndef DOCUMENTATION
21040 AsmElfSectionTableEntry.setDataPrototype(
21041 "SgUnsignedCharList", "extra", "",
21042 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21043#endif // !DOCUMENTATION
21044
21045 DECLARE_OTHERS(AsmElfSectionTableEntry);
21046#if defined(SgAsmElfSectionTableEntry_OTHERS) || defined(DOCUMENTATION)
21047
21048 //----------------------- Boost serialization for SgAsmElfSectionTableEntry -----------------------
21049#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21050private:
21051 friend class boost::serialization::access;
21052
21053 template<class S>
21054 void serialize(S &s, const unsigned /*version*/) {
21055 debugSerializationBegin("SgAsmElfSectionTableEntry");
21056 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21057 s & BOOST_SERIALIZATION_NVP(p_sh_name);
21058 s & BOOST_SERIALIZATION_NVP(p_sh_type);
21059 s & BOOST_SERIALIZATION_NVP(p_sh_link);
21060 s & BOOST_SERIALIZATION_NVP(p_sh_info);
21061 s & BOOST_SERIALIZATION_NVP(p_sh_flags);
21062 s & BOOST_SERIALIZATION_NVP(p_sh_addr);
21063 s & BOOST_SERIALIZATION_NVP(p_sh_offset);
21064 s & BOOST_SERIALIZATION_NVP(p_sh_size);
21065 s & BOOST_SERIALIZATION_NVP(p_sh_addralign);
21066 s & BOOST_SERIALIZATION_NVP(p_sh_entsize);
21067 s & BOOST_SERIALIZATION_NVP(p_extra);
21068 debugSerializationEnd("SgAsmElfSectionTableEntry");
21069 }
21070#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21072 // Local types
21074public:
21090 SHT_LOOS = 0x60000000,
21091 SHT_GNU_verdef = 0x6ffffffd,
21092 SHT_GNU_verneed = 0x6ffffffe,
21093 SHT_GNU_versym = 0x6fffffff,
21094 SHT_HIOS = 0x6fffffff, /*NO_STRINGIFY*/
21095
21096 SHT_LOPROC = 0x70000000, /* Processor specific semantics */
21097 SHT_HIPROC = 0x7fffffff,
21098 SHT_LOUSER = 0x80000000, /* Application specific semantics */
21099 SHT_HIUSER = 0xffffffff
21100 };
21101
21105 SHF_WRITE= (1 << 0),
21106 SHF_ALLOC= (1 << 1),
21107 SHF_EXECINSTR= (1 << 2),
21108 SHF_MERGE= (1 << 4),
21109 SHF_STRINGS= (1 << 5),
21110 SHF_INFO_LINK= (1 << 6),
21111 SHF_LINK_ORDER= (1 << 7),
21113 SHF_GROUP= (1 << 9),
21114 SHF_TLS= (1 << 10),
21115 SHF_MASKOS= 0x0ff00000,
21116 SHF_MASKPROC= 0xf0000000
21118
21125#ifdef _MSC_VER
21126# pragma pack (1)
21127#endif
21129 uint32_t sh_name; /* 0x00 Section name; index into section header string table */
21130 uint32_t sh_type; /* 0x04 Section contents and semantics (see SectionType enum) */
21131 uint32_t sh_flags; /* 0x08 Bit flags */
21132 uint32_t sh_addr; /* 0x0c Desired mapped address */
21133 uint32_t sh_offset; /* 0x10 Section location in file unless sh_type==SHT_NOBITS */
21134 uint32_t sh_size; /* 0x14 Section size in bytes */
21135 uint32_t sh_link; /* 0x18 Section ID of another section; meaning depends on section type */
21136 uint32_t sh_info; /* 0x1c Extra info depending on section type */
21137 uint32_t sh_addralign; /* 0x20 Mapped alignment (0 and 1=>byte aligned); sh_addr must be aligned*/
21138 uint32_t sh_entsize; /* 0x24 If non-zero, size in bytes of each array member in the section */
21139 } /* 0x28 */
21140#if !defined(SWIG) && !defined(_MSC_VER)
21141 __attribute__((packed))
21142#endif
21143 ;
21144
21146 uint32_t sh_name; /* 0x00 see Elf32SectionTableEntry_disk */
21147 uint32_t sh_type; /* 0x04 */
21148 uint64_t sh_flags; /* 0x08 */
21149 uint64_t sh_addr; /* 0x10 */
21150 uint64_t sh_offset; /* 0x18 */
21151 uint64_t sh_size; /* 0x20 */
21152 uint32_t sh_link; /* 0x28 */
21153 uint32_t sh_info; /* 0x2c */
21154 uint64_t sh_addralign; /* 0x30 */
21155 uint64_t sh_entsize; /* 0x38 */
21156 } /* 0x40 */
21157#if !defined(SWIG) && !defined(_MSC_VER)
21158 __attribute__((packed))
21159#endif
21160 ;
21161#ifdef _MSC_VER
21162# pragma pack ()
21163#endif
21164
21166 // Properties
21168public:
21169public:
21175 unsigned const& get_sh_name() const;
21176 void set_sh_name(unsigned const&);
21179public:
21189public:
21195 unsigned long const& get_sh_link() const;
21196 void set_sh_link(unsigned long const&);
21199public:
21205 unsigned long const& get_sh_info() const;
21206 void set_sh_info(unsigned long const&);
21209public:
21215 uint64_t const& get_sh_flags() const;
21216 void set_sh_flags(uint64_t const&);
21219public:
21229public:
21239public:
21249public:
21259public:
21269public:
21275 SgUnsignedCharList const& get_extra() const;
21276 SgUnsignedCharList& get_extra();
21277 void set_extra(SgUnsignedCharList const&);
21280 // Functions
21282public:
21286
21290
21302
21304 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
21305
21306 // Use Rose::stringify... function instead.
21307 static std::string toString(SgAsmElfSectionTableEntry::SectionType);
21308 static std::string toString(SgAsmElfSectionTableEntry::SectionFlags);
21309
21311 // Deprecated 2023-11
21313public:
21314 void update_from_section(SgAsmElfSection*) ROSE_DEPRECATED("use updateFromSection");
21315 static std::string to_string(SgAsmElfSectionTableEntry::SectionType) ROSE_DEPRECATED("use toString");
21316 static std::string to_string(SgAsmElfSectionTableEntry::SectionFlags) ROSE_DEPRECATED("use toString");
21317public:
21320
21321public:
21324
21325protected:
21333#endif // SgAsmElfSectionTableEntry_OTHERS
21334#ifdef DOCUMENTATION
21335};
21336#endif // DOCUMENTATION
21337
21338
21340// SgAsmElfSectionTable -- MACHINE GENERATED; DO NOT MODIFY --
21342
21343DECLARE_LEAF_CLASS(AsmElfSectionTable);
21344IS_SERIALIZABLE(AsmElfSectionTable);
21345
21346#ifndef DOCUMENTATION
21347AsmElfSectionTable.useSmallHeader(true);
21348#endif // !DOCUMENTATION
21349
21350DECLARE_HEADERS(AsmElfSectionTable);
21351#if defined(SgAsmElfSectionTable_HEADERS) || defined(DOCUMENTATION)
21352#include <Rose/BinaryAnalysis/Address.h>
21353#endif // SgAsmElfSectionTable_HEADERS
21354
21355#ifdef DOCUMENTATION
21362#endif // DOCUMENTATION
21363
21364 DECLARE_OTHERS(AsmElfSectionTable);
21365#if defined(SgAsmElfSectionTable_OTHERS) || defined(DOCUMENTATION)
21366
21367 //----------------------- Boost serialization for SgAsmElfSectionTable -----------------------
21368#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21369private:
21370 friend class boost::serialization::access;
21371
21372 template<class S>
21373 void serialize(S &s, const unsigned /*version*/) {
21374 debugSerializationBegin("SgAsmElfSectionTable");
21375 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
21376 debugSerializationEnd("SgAsmElfSectionTable");
21377 }
21378#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21379public:
21382
21388 virtual SgAsmElfSectionTable *parse() override;
21389
21401
21405 Rose::BinaryAnalysis::Address calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
21406
21407 virtual bool reallocate() override;
21408
21410 virtual void unparse(std::ostream&) const override;
21411
21413 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21414
21416 // Deprecated 2023-11
21418public:
21419 SgAsmElfSectionTableEntry *add_section(SgAsmElfSection*) ROSE_DEPRECATED("use addSection");
21420 Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
21421public:
21424
21425public:
21428
21429protected:
21437#endif // SgAsmElfSectionTable_OTHERS
21438#ifdef DOCUMENTATION
21439};
21440#endif // DOCUMENTATION
21441
21442
21444// SgAsmElfRelocSection -- MACHINE GENERATED; DO NOT MODIFY --
21446
21447DECLARE_LEAF_CLASS(AsmElfRelocSection);
21448IS_SERIALIZABLE(AsmElfRelocSection);
21449
21450#ifndef DOCUMENTATION
21451AsmElfRelocSection.useSmallHeader(true);
21452#endif // !DOCUMENTATION
21453
21454DECLARE_HEADERS(AsmElfRelocSection);
21455#if defined(SgAsmElfRelocSection_HEADERS) || defined(DOCUMENTATION)
21456#include <Rose/BinaryAnalysis/Address.h>
21457
21458#ifdef ROSE_SgAsmElfRelocSection_IMPL
21459#include <SgAsmElfRelocEntryList.h>
21460#endif
21461#endif // SgAsmElfRelocSection_HEADERS
21462
21463#ifdef DOCUMENTATION
21466#endif // DOCUMENTATION
21467
21468#ifndef DOCUMENTATION
21469 AsmElfRelocSection.setDataPrototype(
21470 "bool", "usesAddend", "= true",
21471 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21472#endif // !DOCUMENTATION
21473
21474#ifndef DOCUMENTATION
21475 AsmElfRelocSection.setDataPrototype(
21476 "SgAsmElfSection*", "targetSection", "= nullptr",
21477 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21478#endif // !DOCUMENTATION
21479
21480#ifndef DOCUMENTATION
21481 AsmElfRelocSection.setDataPrototype(
21482 "SgAsmElfRelocEntryList*", "entries", "= createAndParent<SgAsmElfRelocEntryList>(this)",
21483 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21484#endif // !DOCUMENTATION
21485
21486 DECLARE_OTHERS(AsmElfRelocSection);
21487#if defined(SgAsmElfRelocSection_OTHERS) || defined(DOCUMENTATION)
21488
21489 //----------------------- Boost serialization for SgAsmElfRelocSection -----------------------
21490#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21491private:
21492 friend class boost::serialization::access;
21493
21494 template<class S>
21495 void serialize(S &s, const unsigned /*version*/) {
21496 debugSerializationBegin("SgAsmElfRelocSection");
21497 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
21498 s & BOOST_SERIALIZATION_NVP(p_usesAddend);
21499 s & BOOST_SERIALIZATION_NVP(p_targetSection);
21500 s & BOOST_SERIALIZATION_NVP(p_entries);
21501 debugSerializationEnd("SgAsmElfRelocSection");
21502 }
21503#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21504public:
21505public:
21509 bool const& get_usesAddend() const;
21510 void set_usesAddend(bool const&);
21513public:
21521public:
21530public:
21532
21535 virtual SgAsmElfRelocSection *parse() override;
21536
21539 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
21540
21541 virtual bool reallocate() override;
21542
21544 virtual void unparse(std::ostream&) const override;
21545
21547 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
21548
21550 // Deprecated 2023-11
21552public:
21553 bool get_uses_addend() const ROSE_DEPRECATED("use get_usesAddend");
21554 void set_uses_addend(bool) ROSE_DEPRECATED("use set_usesAddend");
21555 SgAsmElfSection* get_target_section() const ROSE_DEPRECATED("use get_targetSection");
21556 void set_target_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_targetSection");
21557 using SgAsmElfSection::calculate_sizes;
21558 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
21559 ROSE_DEPRECATED("use calculateSizes");
21560public:
21563
21564public:
21567
21568protected:
21576#endif // SgAsmElfRelocSection_OTHERS
21577#ifdef DOCUMENTATION
21578};
21579#endif // DOCUMENTATION
21580
21581
21583// SgAsmElfRelocEntryList -- MACHINE GENERATED; DO NOT MODIFY --
21585
21586DECLARE_LEAF_CLASS(AsmElfRelocEntryList);
21587IS_SERIALIZABLE(AsmElfRelocEntryList);
21588
21589#ifndef DOCUMENTATION
21590AsmElfRelocEntryList.useSmallHeader(true);
21591#endif // !DOCUMENTATION
21592
21593DECLARE_HEADERS(AsmElfRelocEntryList);
21594#if defined(SgAsmElfRelocEntryList_HEADERS) || defined(DOCUMENTATION)
21595#include <sageContainer.h>
21596#endif // SgAsmElfRelocEntryList_HEADERS
21597
21598#ifdef DOCUMENTATION
21604#endif // DOCUMENTATION
21605
21606#ifndef DOCUMENTATION
21607 AsmElfRelocEntryList.setDataPrototype(
21608 "SgAsmElfRelocEntryPtrList", "entries", "",
21609 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21610#endif // !DOCUMENTATION
21611
21612 DECLARE_OTHERS(AsmElfRelocEntryList);
21613#if defined(SgAsmElfRelocEntryList_OTHERS) || defined(DOCUMENTATION)
21614
21615 //----------------------- Boost serialization for SgAsmElfRelocEntryList -----------------------
21616#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21617private:
21618 friend class boost::serialization::access;
21619
21620 template<class S>
21621 void serialize(S &s, const unsigned /*version*/) {
21622 debugSerializationBegin("SgAsmElfRelocEntryList");
21623 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21624 s & BOOST_SERIALIZATION_NVP(p_entries);
21625 debugSerializationEnd("SgAsmElfRelocEntryList");
21626 }
21627#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21628public:
21629public:
21633 SgAsmElfRelocEntryPtrList const& get_entries() const;
21634 SgAsmElfRelocEntryPtrList& get_entries();
21635 void set_entries(SgAsmElfRelocEntryPtrList const&);
21638public:
21641
21642public:
21645
21646protected:
21654#endif // SgAsmElfRelocEntryList_OTHERS
21655#ifdef DOCUMENTATION
21656};
21657#endif // DOCUMENTATION
21658
21659
21661// SgAsmElfRelocEntry -- MACHINE GENERATED; DO NOT MODIFY --
21663
21664DECLARE_LEAF_CLASS(AsmElfRelocEntry);
21665IS_SERIALIZABLE(AsmElfRelocEntry);
21666
21667#ifndef DOCUMENTATION
21668AsmElfRelocEntry.useSmallHeader(true);
21669#endif // !DOCUMENTATION
21670
21671DECLARE_HEADERS(AsmElfRelocEntry);
21672#if defined(SgAsmElfRelocEntry_HEADERS) || defined(DOCUMENTATION)
21673#include <Rose/BinaryAnalysis/Address.h>
21674#include <Rose/BinaryAnalysis/ByteOrder.h>
21675#include <sageContainer.h>
21676#endif // SgAsmElfRelocEntry_HEADERS
21677
21678#ifdef DOCUMENTATION
21681#endif // DOCUMENTATION
21682
21683#ifndef DOCUMENTATION
21684 AsmElfRelocEntry.setDataPrototype(
21685 "Rose::BinaryAnalysis::Address", "r_offset", "= 0",
21686 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21687#endif // !DOCUMENTATION
21688
21689#ifndef DOCUMENTATION
21690 AsmElfRelocEntry.setDataPrototype(
21691 "Rose::BinaryAnalysis::Address", "r_addend", "= 0",
21692 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21693#endif // !DOCUMENTATION
21694
21695#ifndef DOCUMENTATION
21696 AsmElfRelocEntry.setDataPrototype(
21697 "unsigned long", "sym", "= 0",
21698 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21699#endif // !DOCUMENTATION
21700
21701#ifndef DOCUMENTATION
21702 AsmElfRelocEntry.setDataPrototype(
21703 "SgAsmElfRelocEntry::RelocType", "type", "= R_386_NONE",
21704 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21705#endif // !DOCUMENTATION
21706
21707#ifndef DOCUMENTATION
21708 AsmElfRelocEntry.setDataPrototype(
21709 "SgUnsignedCharList", "extra", "",
21710 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
21711#endif // !DOCUMENTATION
21712
21713 DECLARE_OTHERS(AsmElfRelocEntry);
21714#if defined(SgAsmElfRelocEntry_OTHERS) || defined(DOCUMENTATION)
21715
21716 //----------------------- Boost serialization for SgAsmElfRelocEntry -----------------------
21717#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21718private:
21719 friend class boost::serialization::access;
21720
21721 template<class S>
21722 void serialize(S &s, const unsigned /*version*/) {
21723 debugSerializationBegin("SgAsmElfRelocEntry");
21724 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
21725 s & BOOST_SERIALIZATION_NVP(p_r_offset);
21726 s & BOOST_SERIALIZATION_NVP(p_r_addend);
21727 s & BOOST_SERIALIZATION_NVP(p_sym);
21728 s & BOOST_SERIALIZATION_NVP(p_type);
21729 s & BOOST_SERIALIZATION_NVP(p_extra);
21730 debugSerializationEnd("SgAsmElfRelocEntry");
21731 }
21732#endif // ROSE_ENABLE_BOOST_SERIALIZATION
21734 // Local types
21736public:
21739 // Intel 80386 specific definitions.
21751 R_386_32PLT =11,
21758 R_386_16 =20,
21759 R_386_PC16 =21,
21760 R_386_8 =22,
21761 R_386_PC8 =23,
21777 // First Entry for X86-64
21801 R_X86_64_TPOFF32 =123
21803
21804#ifdef _MSC_VER
21805# pragma pack (1)
21806#endif
21807
21809 uint32_t r_offset;
21810 uint32_t r_info;
21811 uint32_t r_addend;
21812 }
21813#if !defined(SWIG) && !defined(_MSC_VER)
21814 __attribute__((packed))
21815#endif
21816 ;
21817
21819 uint64_t r_offset;
21820 uint64_t r_info;
21821 uint64_t r_addend;
21822 }
21823#if !defined(SWIG) && !defined(_MSC_VER)
21824 __attribute__((packed))
21825#endif
21826 ;
21827
21829 uint32_t r_offset;
21830 uint32_t r_info;
21831 }
21832#if !defined(SWIG) && !defined(_MSC_VER)
21833 __attribute__((packed))
21834#endif
21835 ;
21836
21838 uint64_t r_offset;
21839 uint64_t r_info;
21840 }
21841#if !defined(SWIG) && !defined(_MSC_VER)
21842 __attribute__((packed))
21843#endif
21844 ;
21845
21846#ifdef _MSC_VER
21847# pragma pack ()
21848#endif
21849
21851 // Properties
21853public:
21854public:
21864public:
21874public:
21880 unsigned long const& get_sym() const;
21881 void set_sym(unsigned long const&);
21884public:
21894public:
21898 SgUnsignedCharList const& get_extra() const;
21899 SgUnsignedCharList& get_extra();
21900 void set_extra(SgUnsignedCharList const&);
21903 // Functions
21905public:
21908
21930 void dump(FILE *f, const char *prefix, ssize_t idx, SgAsmElfSymbolSection *symtab) const;
21931 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const {
21932 dump(f, prefix, idx, NULL);
21933 }
21937 std::string toString() const;
21938
21940 // Deprecated 2023-11
21942public:
21943 std::string reloc_name() const ROSE_DEPRECATED("use toString");
21944public:
21947
21948public:
21951
21952protected:
21960#endif // SgAsmElfRelocEntry_OTHERS
21961#ifdef DOCUMENTATION
21962};
21963#endif // DOCUMENTATION
21964
21965
21967// SgAsmElfNoteSection -- MACHINE GENERATED; DO NOT MODIFY --
21969
21970DECLARE_LEAF_CLASS(AsmElfNoteSection);
21971IS_SERIALIZABLE(AsmElfNoteSection);
21972
21973#ifndef DOCUMENTATION
21974AsmElfNoteSection.useSmallHeader(true);
21975#endif // !DOCUMENTATION
21976
21977DECLARE_HEADERS(AsmElfNoteSection);
21978#if defined(SgAsmElfNoteSection_HEADERS) || defined(DOCUMENTATION)
21979#ifdef ROSE_SgAsmElfNoteSection_IMPL
21980#include <SgAsmElfNoteEntryList.h>
21981#endif
21982#endif // SgAsmElfNoteSection_HEADERS
21983
21984#ifdef DOCUMENTATION
21986#endif // DOCUMENTATION
21987
21988#ifndef DOCUMENTATION
21989 AsmElfNoteSection.setDataPrototype(
21990 "SgAsmElfNoteEntryList*", "entries", "= createAndParent<SgAsmElfNoteEntryList>(this)",
21991 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
21992#endif // !DOCUMENTATION
21993
21994 DECLARE_OTHERS(AsmElfNoteSection);
21995#if defined(SgAsmElfNoteSection_OTHERS) || defined(DOCUMENTATION)
21996
21997 //----------------------- Boost serialization for SgAsmElfNoteSection -----------------------
21998#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
21999private:
22000 friend class boost::serialization::access;
22001
22002 template<class S>
22003 void serialize(S &s, const unsigned /*version*/) {
22004 debugSerializationBegin("SgAsmElfNoteSection");
22005 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
22006 s & BOOST_SERIALIZATION_NVP(p_entries);
22007 debugSerializationEnd("SgAsmElfNoteSection");
22008 }
22009#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22010public:
22011public:
22021public:
22024
22025 virtual SgAsmElfNoteSection *parse() override;
22026
22027 virtual bool reallocate() override;
22028
22030 virtual void unparse(std::ostream&) const override;
22031
22033 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22034public:
22037
22038public:
22041
22042protected:
22050#endif // SgAsmElfNoteSection_OTHERS
22051#ifdef DOCUMENTATION
22052};
22053#endif // DOCUMENTATION
22054
22055
22057// SgAsmElfNoteEntryList -- MACHINE GENERATED; DO NOT MODIFY --
22059
22060DECLARE_LEAF_CLASS(AsmElfNoteEntryList);
22061IS_SERIALIZABLE(AsmElfNoteEntryList);
22062
22063#ifndef DOCUMENTATION
22064AsmElfNoteEntryList.useSmallHeader(true);
22065#endif // !DOCUMENTATION
22066
22067DECLARE_HEADERS(AsmElfNoteEntryList);
22068#if defined(SgAsmElfNoteEntryList_HEADERS) || defined(DOCUMENTATION)
22069#include <sageContainer.h>
22070#endif // SgAsmElfNoteEntryList_HEADERS
22071
22072#ifdef DOCUMENTATION
22078#endif // DOCUMENTATION
22079
22080#ifndef DOCUMENTATION
22081 AsmElfNoteEntryList.setDataPrototype(
22082 "SgAsmElfNoteEntryPtrList", "entries", "",
22083 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22084#endif // !DOCUMENTATION
22085
22086 DECLARE_OTHERS(AsmElfNoteEntryList);
22087#if defined(SgAsmElfNoteEntryList_OTHERS) || defined(DOCUMENTATION)
22088
22089 //----------------------- Boost serialization for SgAsmElfNoteEntryList -----------------------
22090#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22091private:
22092 friend class boost::serialization::access;
22093
22094 template<class S>
22095 void serialize(S &s, const unsigned /*version*/) {
22096 debugSerializationBegin("SgAsmElfNoteEntryList");
22097 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22098 s & BOOST_SERIALIZATION_NVP(p_entries);
22099 debugSerializationEnd("SgAsmElfNoteEntryList");
22100 }
22101#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22102public:
22103public:
22107 SgAsmElfNoteEntryPtrList const& get_entries() const;
22108 SgAsmElfNoteEntryPtrList& get_entries();
22109 void set_entries(SgAsmElfNoteEntryPtrList const&);
22112public:
22115
22116public:
22119
22120protected:
22128#endif // SgAsmElfNoteEntryList_OTHERS
22129#ifdef DOCUMENTATION
22130};
22131#endif // DOCUMENTATION
22132
22133
22135// SgAsmElfNoteEntry -- MACHINE GENERATED; DO NOT MODIFY --
22137
22138DECLARE_LEAF_CLASS(AsmElfNoteEntry);
22139IS_SERIALIZABLE(AsmElfNoteEntry);
22140
22141#ifndef DOCUMENTATION
22142AsmElfNoteEntry.useSmallHeader(true);
22143#endif // !DOCUMENTATION
22144
22145DECLARE_HEADERS(AsmElfNoteEntry);
22146#if defined(SgAsmElfNoteEntry_HEADERS) || defined(DOCUMENTATION)
22147#include <Rose/BinaryAnalysis/Address.h>
22148
22149#include <sageContainer.h>
22150
22151#ifdef ROSE_SgAsmElfNoteEntry_IMPL
22152#include <SgAsmBasicString.h>
22153#endif
22154#endif // SgAsmElfNoteEntry_HEADERS
22155
22156#ifdef DOCUMENTATION
22159#endif // DOCUMENTATION
22160
22161#ifndef DOCUMENTATION
22162 AsmElfNoteEntry.setDataPrototype(
22163 "unsigned", "type", "= 0",
22164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22165#endif // !DOCUMENTATION
22166
22167#ifndef DOCUMENTATION
22168 AsmElfNoteEntry.setDataPrototype(
22169 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
22170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22171#endif // !DOCUMENTATION
22172
22173#ifndef DOCUMENTATION
22174 AsmElfNoteEntry.setDataPrototype(
22175 "SgUnsignedCharList", "payload", "",
22176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22177#endif // !DOCUMENTATION
22178
22179 DECLARE_OTHERS(AsmElfNoteEntry);
22180#if defined(SgAsmElfNoteEntry_OTHERS) || defined(DOCUMENTATION)
22181
22182 //----------------------- Boost serialization for SgAsmElfNoteEntry -----------------------
22183#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22184private:
22185 friend class boost::serialization::access;
22186
22187 template<class S>
22188 void serialize(S &s, const unsigned /*version*/) {
22189 debugSerializationBegin("SgAsmElfNoteEntry");
22190 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22191 s & BOOST_SERIALIZATION_NVP(p_type);
22192 s & BOOST_SERIALIZATION_NVP(p_name);
22193 s & BOOST_SERIALIZATION_NVP(p_payload);
22194 debugSerializationEnd("SgAsmElfNoteEntry");
22195 }
22196#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22197public:
22198public:
22204 unsigned const& get_type() const;
22205 void set_type(unsigned const&);
22208public:
22217public:
22223 SgUnsignedCharList const& get_payload() const;
22224 SgUnsignedCharList& get_payload();
22225 void set_payload(SgUnsignedCharList const&);
22227public:
22230
22245
22250
22252 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
22253
22257 void set_payload(const void*, size_t nbytes);
22258
22261
22263 // Deprecated 2023-11
22265public:
22266 Rose::BinaryAnalysis::Address calculate_size() const ROSE_DEPRECATED("use calculateSize");
22267public:
22270
22271public:
22274
22275protected:
22283#endif // SgAsmElfNoteEntry_OTHERS
22284#ifdef DOCUMENTATION
22285};
22286#endif // DOCUMENTATION
22287
22288
22290// SgAsmElfFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
22292
22293DECLARE_LEAF_CLASS(AsmElfFileHeader);
22294IS_SERIALIZABLE(AsmElfFileHeader);
22295
22296#ifndef DOCUMENTATION
22297AsmElfFileHeader.useSmallHeader(true);
22298#endif // !DOCUMENTATION
22299
22300DECLARE_HEADERS(AsmElfFileHeader);
22301#if defined(SgAsmElfFileHeader_HEADERS) || defined(DOCUMENTATION)
22302#include <Rose/BinaryAnalysis/ByteOrder.h>
22303#endif // SgAsmElfFileHeader_HEADERS
22304
22305#ifdef DOCUMENTATION
22315#endif // DOCUMENTATION
22316
22317#ifndef DOCUMENTATION
22318 AsmElfFileHeader.setDataPrototype(
22319 "unsigned char", "e_ident_file_class", "= 0",
22320 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22321#endif // !DOCUMENTATION
22322
22323#ifndef DOCUMENTATION
22324 AsmElfFileHeader.setDataPrototype(
22325 "unsigned char", "e_ident_data_encoding", "= 0",
22326 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22327#endif // !DOCUMENTATION
22328
22329#ifndef DOCUMENTATION
22330 AsmElfFileHeader.setDataPrototype(
22331 "unsigned char", "e_ident_file_version", "= 0",
22332 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22333#endif // !DOCUMENTATION
22334
22335#ifndef DOCUMENTATION
22336 AsmElfFileHeader.setDataPrototype(
22337 "SgUnsignedCharList", "e_ident_padding", "",
22338 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22339#endif // !DOCUMENTATION
22340
22341#ifndef DOCUMENTATION
22342 AsmElfFileHeader.setDataPrototype(
22343 "unsigned long", "e_type", "= 0",
22344 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22345#endif // !DOCUMENTATION
22346
22347#ifndef DOCUMENTATION
22348 AsmElfFileHeader.setDataPrototype(
22349 "unsigned long", "e_machine", "= 0",
22350 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22351#endif // !DOCUMENTATION
22352
22353#ifndef DOCUMENTATION
22354 AsmElfFileHeader.setDataPrototype(
22355 "unsigned long", "e_flags", "= 0",
22356 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22357#endif // !DOCUMENTATION
22358
22359#ifndef DOCUMENTATION
22360 AsmElfFileHeader.setDataPrototype(
22361 "unsigned long", "e_ehsize", "= 0",
22362 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22363#endif // !DOCUMENTATION
22364
22365#ifndef DOCUMENTATION
22366 AsmElfFileHeader.setDataPrototype(
22367 "unsigned long", "phextrasz", "= 0",
22368 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22369#endif // !DOCUMENTATION
22370
22371#ifndef DOCUMENTATION
22372 AsmElfFileHeader.setDataPrototype(
22373 "unsigned long", "e_phnum", "= 0",
22374 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22375#endif // !DOCUMENTATION
22376
22377#ifndef DOCUMENTATION
22378 AsmElfFileHeader.setDataPrototype(
22379 "unsigned long", "shextrasz", "= 0",
22380 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22381#endif // !DOCUMENTATION
22382
22383#ifndef DOCUMENTATION
22384 AsmElfFileHeader.setDataPrototype(
22385 "unsigned long", "e_shnum", "= 0",
22386 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22387#endif // !DOCUMENTATION
22388
22389#ifndef DOCUMENTATION
22390 AsmElfFileHeader.setDataPrototype(
22391 "unsigned long", "e_shstrndx", "= 0",
22392 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22393#endif // !DOCUMENTATION
22394
22395#ifndef DOCUMENTATION
22396 AsmElfFileHeader.setDataPrototype(
22397 "SgAsmElfSectionTable*", "sectionTable", "= nullptr",
22398 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22399#endif // !DOCUMENTATION
22400
22401#ifndef DOCUMENTATION
22402 AsmElfFileHeader.setDataPrototype(
22403 "SgAsmElfSegmentTable*", "segmentTable", "= nullptr",
22404 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22405#endif // !DOCUMENTATION
22406
22407 DECLARE_OTHERS(AsmElfFileHeader);
22408#if defined(SgAsmElfFileHeader_OTHERS) || defined(DOCUMENTATION)
22409
22410 //----------------------- Boost serialization for SgAsmElfFileHeader -----------------------
22411#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22412private:
22413 friend class boost::serialization::access;
22414
22415 template<class S>
22416 void serialize(S &s, const unsigned /*version*/) {
22417 debugSerializationBegin("SgAsmElfFileHeader");
22418 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
22419 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_class);
22420 s & BOOST_SERIALIZATION_NVP(p_e_ident_data_encoding);
22421 s & BOOST_SERIALIZATION_NVP(p_e_ident_file_version);
22422 s & BOOST_SERIALIZATION_NVP(p_e_ident_padding);
22423 s & BOOST_SERIALIZATION_NVP(p_e_type);
22424 s & BOOST_SERIALIZATION_NVP(p_e_machine);
22425 s & BOOST_SERIALIZATION_NVP(p_e_flags);
22426 s & BOOST_SERIALIZATION_NVP(p_e_ehsize);
22427 s & BOOST_SERIALIZATION_NVP(p_phextrasz);
22428 s & BOOST_SERIALIZATION_NVP(p_e_phnum);
22429 s & BOOST_SERIALIZATION_NVP(p_shextrasz);
22430 s & BOOST_SERIALIZATION_NVP(p_e_shnum);
22431 s & BOOST_SERIALIZATION_NVP(p_e_shstrndx);
22432 s & BOOST_SERIALIZATION_NVP(p_sectionTable);
22433 s & BOOST_SERIALIZATION_NVP(p_segmentTable);
22434 debugSerializationEnd("SgAsmElfFileHeader");
22435 }
22436#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22438 // Local types
22440public:
22443 ET_NONE = 0
22449 ,ET_LOOS = 0xfe00
22450 ,ET_HIOS = 0xfeff
22451 ,ET_LOPROC = 0xff00
22452 ,ET_HIPROC = 0xffff
22454
22455 // Some structures are used to represent certain things whose layout is very precise in binary files, thus we need to
22456 // make sure the compiler doesn't insert alignment padding between the struct members. ROSE can be compiled on an
22457 // architecture that has different alignment constraints than the architecture that these structs describe. GNU
22458 // compilers have long used the attribute mechanism. Microsoft compilers on the other hand use pragmas. GCC versions
22459 // 4.0 and earlier do not recognize the Microsoft pragmas and issue compiler errors when one is encountered.
22460#ifdef _MSC_VER
22461# pragma pack (1)
22462#endif
22463
22470 unsigned char e_ident_magic[4];
22471 unsigned char e_ident_file_class;
22473 unsigned char e_ident_file_version;
22474 unsigned char e_ident_padding[9];
22475 uint16_t e_type;
22476 uint16_t e_machine;
22477 uint32_t e_version;
22478 uint32_t e_entry;
22479 uint32_t e_phoff;
22480 uint32_t e_shoff;
22481 uint32_t e_flags;
22482 uint16_t e_ehsize;
22483 uint16_t e_phentsize;
22484 uint16_t e_phnum;
22485 uint16_t e_shentsize;
22486 uint16_t e_shnum;
22487 uint16_t e_shstrndx;
22488 }
22489#if !defined(SWIG) && !defined(_MSC_VER)
22490 __attribute__((packed))
22491#endif
22492 ;
22493
22495 unsigned char e_ident_magic[4];
22496 unsigned char e_ident_file_class;
22497 unsigned char e_ident_data_encoding;
22498 unsigned char e_ident_file_version;
22499 unsigned char e_ident_padding[9];
22500 uint16_t e_type;
22501 uint16_t e_machine;
22502 uint32_t e_version;
22503 uint64_t e_entry;
22504 uint64_t e_phoff;
22505 uint64_t e_shoff;
22506 uint32_t e_flags;
22507 uint16_t e_ehsize;
22508 uint16_t e_phentsize;
22509 uint16_t e_phnum;
22510 uint16_t e_shentsize;
22511 uint16_t e_shnum;
22512 uint16_t e_shstrndx;
22513 }
22514#if !defined(SWIG) && !defined(_MSC_VER)
22515 __attribute__((packed))
22516#endif
22517 ;
22518
22519#ifdef _MSC_VER
22520# pragma pack ()
22521#endif
22522
22524 // Properties
22526public:
22527public:
22533 unsigned char const& get_e_ident_file_class() const;
22534 void set_e_ident_file_class(unsigned char const&);
22537public:
22543 unsigned char const& get_e_ident_data_encoding() const;
22544 void set_e_ident_data_encoding(unsigned char const&);
22547public:
22553 unsigned char const& get_e_ident_file_version() const;
22554 void set_e_ident_file_version(unsigned char const&);
22557public:
22563 SgUnsignedCharList const& get_e_ident_padding() const;
22564 void set_e_ident_padding(SgUnsignedCharList const&);
22567public:
22573 unsigned long const& get_e_type() const;
22574 void set_e_type(unsigned long const&);
22577public:
22583 unsigned long const& get_e_machine() const;
22584 void set_e_machine(unsigned long const&);
22587public:
22593 unsigned long const& get_e_flags() const;
22594 void set_e_flags(unsigned long const&);
22597public:
22603 unsigned long const& get_e_ehsize() const;
22604 void set_e_ehsize(unsigned long const&);
22607public:
22613 unsigned long const& get_phextrasz() const;
22614 void set_phextrasz(unsigned long const&);
22617public:
22623 unsigned long const& get_e_phnum() const;
22624 void set_e_phnum(unsigned long const&);
22627public:
22633 unsigned long const& get_shextrasz() const;
22634 void set_shextrasz(unsigned long const&);
22637public:
22643 unsigned long const& get_e_shnum() const;
22644 void set_e_shnum(unsigned long const&);
22647public:
22653 unsigned long const& get_e_shstrndx() const;
22654 void set_e_shstrndx(unsigned long const&);
22657public:
22669public:
22680 // Functions
22682public:
22690
22697
22700
22703
22709 virtual SgAsmElfFileHeader *parse() override;
22710
22711 virtual bool reallocate() override;
22712
22714 virtual void unparse(std::ostream&) const override;
22715
22717 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22718
22721
22723 SgAsmGenericSectionPtrList get_sectionTableSections();
22724
22726 SgAsmGenericSectionPtrList get_segmentTableSections();
22727
22728 // Overrides documented in base class
22729 virtual const char *formatName() const override;
22730
22731private:
22734
22736 // Deprecated 2023-11
22738public:
22739 SgAsmElfSectionTable* get_section_table() const ROSE_DEPRECATED("use get_sectionTable");
22740 void set_section_table(SgAsmElfSectionTable*) ROSE_DEPRECATED("use set_sectionTable");
22741 SgAsmElfSegmentTable* get_segment_table() const ROSE_DEPRECATED("use get_segmentTable");
22742 void set_segment_table(SgAsmElfSegmentTable*) ROSE_DEPRECATED("use set_segmentTable");
22743 uint64_t max_page_size() ROSE_DEPRECATED("use maximumPageSize");
22744 static SgAsmExecutableFileFormat::InsSetArchitecture machine_to_isa(unsigned) ROSE_DEPRECATED("use machineToIsa");
22745 unsigned isa_to_machine(SgAsmExecutableFileFormat::InsSetArchitecture) const ROSE_DEPRECATED("use isaToMachine");
22746 static bool is_ELF(SgAsmGenericFile*) ROSE_DEPRECATED("use isElf");
22747 SgAsmGenericSectionPtrList get_sectab_sections() ROSE_DEPRECATED("use get_sectionTableSections");
22748 SgAsmGenericSectionPtrList get_segtab_sections() ROSE_DEPRECATED("use get_segmentTableSections");
22749 virtual const char *format_name() const override ROSE_DEPRECATED("use formatName");
22750public:
22753
22754public:
22757
22758protected:
22766#endif // SgAsmElfFileHeader_OTHERS
22767#ifdef DOCUMENTATION
22768};
22769#endif // DOCUMENTATION
22770
22771
22773// SgAsmElfEHFrameSection -- MACHINE GENERATED; DO NOT MODIFY --
22775
22776DECLARE_LEAF_CLASS(AsmElfEHFrameSection);
22777IS_SERIALIZABLE(AsmElfEHFrameSection);
22778
22779#ifndef DOCUMENTATION
22780AsmElfEHFrameSection.useSmallHeader(true);
22781#endif // !DOCUMENTATION
22782
22783DECLARE_HEADERS(AsmElfEHFrameSection);
22784#if defined(SgAsmElfEHFrameSection_HEADERS) || defined(DOCUMENTATION)
22785#include <Rose/BinaryAnalysis/Address.h>
22786
22787#ifdef ROSE_SgAsmElfEHFrameSection_IMPL
22788#include <SgAsmElfEHFrameEntryCIList.h>
22789#endif
22790#endif // SgAsmElfEHFrameSection_HEADERS
22791
22792#ifdef DOCUMENTATION
22795#endif // DOCUMENTATION
22796
22797#ifndef DOCUMENTATION
22798 AsmElfEHFrameSection.setDataPrototype(
22799 "SgAsmElfEHFrameEntryCIList*", "ci_entries", "= createAndParent<SgAsmElfEHFrameEntryCIList>(this)",
22800 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
22801#endif // !DOCUMENTATION
22802
22803 DECLARE_OTHERS(AsmElfEHFrameSection);
22804#if defined(SgAsmElfEHFrameSection_OTHERS) || defined(DOCUMENTATION)
22805
22806 //----------------------- Boost serialization for SgAsmElfEHFrameSection -----------------------
22807#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22808private:
22809 friend class boost::serialization::access;
22810
22811 template<class S>
22812 void serialize(S &s, const unsigned /*version*/) {
22813 debugSerializationBegin("SgAsmElfEHFrameSection");
22814 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
22815 s & BOOST_SERIALIZATION_NVP(p_ci_entries);
22816 debugSerializationEnd("SgAsmElfEHFrameSection");
22817 }
22818#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22819public:
22820public:
22830public:
22833
22835 virtual SgAsmElfEHFrameSection *parse() override;
22836
22842 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
22843
22845 virtual void unparse(std::ostream&) const override;
22846
22852
22854 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
22855
22857 // Deprecated 2023-11
22859public:
22860 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
22861 ROSE_DEPRECATED("use calculateSizes");
22862public:
22865
22866public:
22869
22870protected:
22878#endif // SgAsmElfEHFrameSection_OTHERS
22879#ifdef DOCUMENTATION
22880};
22881#endif // DOCUMENTATION
22882
22883
22885// SgAsmElfEHFrameEntryFDList -- MACHINE GENERATED; DO NOT MODIFY --
22887
22888DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFDList);
22889IS_SERIALIZABLE(AsmElfEHFrameEntryFDList);
22890
22891#ifndef DOCUMENTATION
22892AsmElfEHFrameEntryFDList.useSmallHeader(true);
22893#endif // !DOCUMENTATION
22894
22895DECLARE_HEADERS(AsmElfEHFrameEntryFDList);
22896#if defined(SgAsmElfEHFrameEntryFDList_HEADERS) || defined(DOCUMENTATION)
22897#include <sageContainer.h>
22898#endif // SgAsmElfEHFrameEntryFDList_HEADERS
22899
22900#ifdef DOCUMENTATION
22906#endif // DOCUMENTATION
22907
22908#ifndef DOCUMENTATION
22909 AsmElfEHFrameEntryFDList.setDataPrototype(
22910 "SgAsmElfEHFrameEntryFDPtrList", "entries", "",
22911 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22912#endif // !DOCUMENTATION
22913
22914 DECLARE_OTHERS(AsmElfEHFrameEntryFDList);
22915#if defined(SgAsmElfEHFrameEntryFDList_OTHERS) || defined(DOCUMENTATION)
22916
22917 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFDList -----------------------
22918#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
22919private:
22920 friend class boost::serialization::access;
22921
22922 template<class S>
22923 void serialize(S &s, const unsigned /*version*/) {
22924 debugSerializationBegin("SgAsmElfEHFrameEntryFDList");
22925 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
22926 s & BOOST_SERIALIZATION_NVP(p_entries);
22927 debugSerializationEnd("SgAsmElfEHFrameEntryFDList");
22928 }
22929#endif // ROSE_ENABLE_BOOST_SERIALIZATION
22930public:
22931public:
22935 SgAsmElfEHFrameEntryFDPtrList const& get_entries() const;
22936 SgAsmElfEHFrameEntryFDPtrList& get_entries();
22937 void set_entries(SgAsmElfEHFrameEntryFDPtrList const&);
22940public:
22943
22944public:
22947
22948protected:
22956#endif // SgAsmElfEHFrameEntryFDList_OTHERS
22957#ifdef DOCUMENTATION
22958};
22959#endif // DOCUMENTATION
22960
22961
22963// SgAsmElfEHFrameEntryFD -- MACHINE GENERATED; DO NOT MODIFY --
22965
22966DECLARE_LEAF_CLASS(AsmElfEHFrameEntryFD);
22967IS_SERIALIZABLE(AsmElfEHFrameEntryFD);
22968
22969#ifndef DOCUMENTATION
22970AsmElfEHFrameEntryFD.useSmallHeader(true);
22971#endif // !DOCUMENTATION
22972
22973DECLARE_HEADERS(AsmElfEHFrameEntryFD);
22974#if defined(SgAsmElfEHFrameEntryFD_HEADERS) || defined(DOCUMENTATION)
22975#include <Rose/BinaryAnalysis/Address.h>
22976#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
22977#include <sageContainer.h>
22978#endif // SgAsmElfEHFrameEntryFD_HEADERS
22979
22980#ifdef DOCUMENTATION
22983#endif // DOCUMENTATION
22984
22985#ifndef DOCUMENTATION
22986 AsmElfEHFrameEntryFD.setDataPrototype(
22987 "Rose::BinaryAnalysis::RelativeVirtualAddress", "begin_rva", "",
22988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22989#endif // !DOCUMENTATION
22990
22991#ifndef DOCUMENTATION
22992 AsmElfEHFrameEntryFD.setDataPrototype(
22993 "Rose::BinaryAnalysis::Address", "size", "= 0",
22994 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
22995#endif // !DOCUMENTATION
22996
22997#ifndef DOCUMENTATION
22998 AsmElfEHFrameEntryFD.setDataPrototype(
22999 "SgUnsignedCharList", "augmentation_data", "",
23000 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23001#endif // !DOCUMENTATION
23002
23003#ifndef DOCUMENTATION
23004 AsmElfEHFrameEntryFD.setDataPrototype(
23005 "SgUnsignedCharList", "instructions", "",
23006 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23007#endif // !DOCUMENTATION
23008
23009 DECLARE_OTHERS(AsmElfEHFrameEntryFD);
23010#if defined(SgAsmElfEHFrameEntryFD_OTHERS) || defined(DOCUMENTATION)
23011
23012 //----------------------- Boost serialization for SgAsmElfEHFrameEntryFD -----------------------
23013#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23014private:
23015 friend class boost::serialization::access;
23016
23017 template<class S>
23018 void serialize(S &s, const unsigned /*version*/) {
23019 debugSerializationBegin("SgAsmElfEHFrameEntryFD");
23020 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23021 s & BOOST_SERIALIZATION_NVP(p_begin_rva);
23022 s & BOOST_SERIALIZATION_NVP(p_size);
23023 s & BOOST_SERIALIZATION_NVP(p_augmentation_data);
23024 s & BOOST_SERIALIZATION_NVP(p_instructions);
23025 debugSerializationEnd("SgAsmElfEHFrameEntryFD");
23026 }
23027#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23028public:
23029public:
23040public:
23050public:
23056 SgUnsignedCharList const& get_augmentation_data() const;
23057 SgUnsignedCharList& get_augmentation_data();
23058 void set_augmentation_data(SgUnsignedCharList const&);
23061public:
23067 SgUnsignedCharList const& get_instructions() const;
23068 SgUnsignedCharList& get_instructions();
23069 void set_instructions(SgUnsignedCharList const&);
23071public:
23074
23076 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
23077
23083public:
23086
23087public:
23090
23091protected:
23099#endif // SgAsmElfEHFrameEntryFD_OTHERS
23100#ifdef DOCUMENTATION
23101};
23102#endif // DOCUMENTATION
23103
23104
23106// SgAsmElfEHFrameEntryCIList -- MACHINE GENERATED; DO NOT MODIFY --
23108
23109DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCIList);
23110IS_SERIALIZABLE(AsmElfEHFrameEntryCIList);
23111
23112#ifndef DOCUMENTATION
23113AsmElfEHFrameEntryCIList.useSmallHeader(true);
23114#endif // !DOCUMENTATION
23115
23116DECLARE_HEADERS(AsmElfEHFrameEntryCIList);
23117#if defined(SgAsmElfEHFrameEntryCIList_HEADERS) || defined(DOCUMENTATION)
23118#include <sageContainer.h>
23119#endif // SgAsmElfEHFrameEntryCIList_HEADERS
23120
23121#ifdef DOCUMENTATION
23127#endif // DOCUMENTATION
23128
23129#ifndef DOCUMENTATION
23130 AsmElfEHFrameEntryCIList.setDataPrototype(
23131 "SgAsmElfEHFrameEntryCIPtrList", "entries", "",
23132 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23133#endif // !DOCUMENTATION
23134
23135 DECLARE_OTHERS(AsmElfEHFrameEntryCIList);
23136#if defined(SgAsmElfEHFrameEntryCIList_OTHERS) || defined(DOCUMENTATION)
23137
23138 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCIList -----------------------
23139#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23140private:
23141 friend class boost::serialization::access;
23142
23143 template<class S>
23144 void serialize(S &s, const unsigned /*version*/) {
23145 debugSerializationBegin("SgAsmElfEHFrameEntryCIList");
23146 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23147 s & BOOST_SERIALIZATION_NVP(p_entries);
23148 debugSerializationEnd("SgAsmElfEHFrameEntryCIList");
23149 }
23150#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23151public:
23152public:
23156 SgAsmElfEHFrameEntryCIPtrList const& get_entries() const;
23157 SgAsmElfEHFrameEntryCIPtrList& get_entries();
23158 void set_entries(SgAsmElfEHFrameEntryCIPtrList const&);
23161public:
23164
23165public:
23168
23169protected:
23177#endif // SgAsmElfEHFrameEntryCIList_OTHERS
23178#ifdef DOCUMENTATION
23179};
23180#endif // DOCUMENTATION
23181
23182
23184// SgAsmElfEHFrameEntryCI -- MACHINE GENERATED; DO NOT MODIFY --
23186
23187DECLARE_LEAF_CLASS(AsmElfEHFrameEntryCI);
23188IS_SERIALIZABLE(AsmElfEHFrameEntryCI);
23189
23190#ifndef DOCUMENTATION
23191AsmElfEHFrameEntryCI.useSmallHeader(true);
23192#endif // !DOCUMENTATION
23193
23194DECLARE_HEADERS(AsmElfEHFrameEntryCI);
23195#if defined(SgAsmElfEHFrameEntryCI_HEADERS) || defined(DOCUMENTATION)
23196#include <Rose/BinaryAnalysis/Address.h>
23197
23198#include <sageContainer.h>
23199
23200#ifdef ROSE_SgAsmElfEHFrameEntryCI_IMPL
23201#include <SgAsmElfEHFrameEntryFDList.h>
23202#endif
23203#endif // SgAsmElfEHFrameEntryCI_HEADERS
23204
23205#ifdef DOCUMENTATION
23210#endif // DOCUMENTATION
23211
23212#ifndef DOCUMENTATION
23213 AsmElfEHFrameEntryCI.setDataPrototype(
23214 "int", "version", "= 0",
23215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23216#endif // !DOCUMENTATION
23217
23218#ifndef DOCUMENTATION
23219 AsmElfEHFrameEntryCI.setDataPrototype(
23220 "std::string", "augmentation_string", "",
23221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23222#endif // !DOCUMENTATION
23223
23224#ifndef DOCUMENTATION
23225 AsmElfEHFrameEntryCI.setDataPrototype(
23226 "uint64_t", "eh_data", "= 0",
23227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23228#endif // !DOCUMENTATION
23229
23230#ifndef DOCUMENTATION
23231 AsmElfEHFrameEntryCI.setDataPrototype(
23232 "uint64_t", "code_alignment_factor", "= 0",
23233 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23234#endif // !DOCUMENTATION
23235
23236#ifndef DOCUMENTATION
23237 AsmElfEHFrameEntryCI.setDataPrototype(
23238 "int64_t", "data_alignment_factor", "= 0",
23239 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23240#endif // !DOCUMENTATION
23241
23242#ifndef DOCUMENTATION
23243 AsmElfEHFrameEntryCI.setDataPrototype(
23244 "uint64_t", "augmentation_data_length", "= 0",
23245 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23246#endif // !DOCUMENTATION
23247
23248#ifndef DOCUMENTATION
23249 AsmElfEHFrameEntryCI.setDataPrototype(
23250 "int", "lsda_encoding", "= -1",
23251 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23252#endif // !DOCUMENTATION
23253
23254#ifndef DOCUMENTATION
23255 AsmElfEHFrameEntryCI.setDataPrototype(
23256 "int", "prh_encoding", "= -1",
23257 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23258#endif // !DOCUMENTATION
23259
23260#ifndef DOCUMENTATION
23261 AsmElfEHFrameEntryCI.setDataPrototype(
23262 "unsigned", "prh_arg", "= 0",
23263 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23264#endif // !DOCUMENTATION
23265
23266#ifndef DOCUMENTATION
23267 AsmElfEHFrameEntryCI.setDataPrototype(
23268 "Rose::BinaryAnalysis::Address", "prh_addr", "= 0",
23269 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23270#endif // !DOCUMENTATION
23271
23272#ifndef DOCUMENTATION
23273 AsmElfEHFrameEntryCI.setDataPrototype(
23274 "int", "addr_encoding", "= -1",
23275 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23276#endif // !DOCUMENTATION
23277
23278#ifndef DOCUMENTATION
23279 AsmElfEHFrameEntryCI.setDataPrototype(
23280 "bool", "sig_frame", "= false",
23281 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23282#endif // !DOCUMENTATION
23283
23284#ifndef DOCUMENTATION
23285 AsmElfEHFrameEntryCI.setDataPrototype(
23286 "SgUnsignedCharList", "instructions", "",
23287 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23288#endif // !DOCUMENTATION
23289
23290#ifndef DOCUMENTATION
23291 AsmElfEHFrameEntryCI.setDataPrototype(
23292 "SgAsmElfEHFrameEntryFDList*", "fd_entries", "= createAndParent<SgAsmElfEHFrameEntryFDList>(this)",
23293 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23294#endif // !DOCUMENTATION
23295
23296 DECLARE_OTHERS(AsmElfEHFrameEntryCI);
23297#if defined(SgAsmElfEHFrameEntryCI_OTHERS) || defined(DOCUMENTATION)
23298
23299 //----------------------- Boost serialization for SgAsmElfEHFrameEntryCI -----------------------
23300#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23301private:
23302 friend class boost::serialization::access;
23303
23304 template<class S>
23305 void serialize(S &s, const unsigned /*version*/) {
23306 debugSerializationBegin("SgAsmElfEHFrameEntryCI");
23307 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23308 s & BOOST_SERIALIZATION_NVP(p_version);
23309 s & BOOST_SERIALIZATION_NVP(p_augmentation_string);
23310 s & BOOST_SERIALIZATION_NVP(p_eh_data);
23311 s & BOOST_SERIALIZATION_NVP(p_code_alignment_factor);
23312 s & BOOST_SERIALIZATION_NVP(p_data_alignment_factor);
23313 s & BOOST_SERIALIZATION_NVP(p_augmentation_data_length);
23314 s & BOOST_SERIALIZATION_NVP(p_lsda_encoding);
23315 s & BOOST_SERIALIZATION_NVP(p_prh_encoding);
23316 s & BOOST_SERIALIZATION_NVP(p_prh_arg);
23317 s & BOOST_SERIALIZATION_NVP(p_prh_addr);
23318 s & BOOST_SERIALIZATION_NVP(p_addr_encoding);
23319 s & BOOST_SERIALIZATION_NVP(p_sig_frame);
23320 s & BOOST_SERIALIZATION_NVP(p_instructions);
23321 s & BOOST_SERIALIZATION_NVP(p_fd_entries);
23322 debugSerializationEnd("SgAsmElfEHFrameEntryCI");
23323 }
23324#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23325public:
23326public:
23332 int const& get_version() const;
23333 void set_version(int const&);
23336public:
23342 std::string const& get_augmentation_string() const;
23343 void set_augmentation_string(std::string const&);
23346public:
23352 uint64_t const& get_eh_data() const;
23353 void set_eh_data(uint64_t const&);
23356public:
23362 uint64_t const& get_code_alignment_factor() const;
23363 void set_code_alignment_factor(uint64_t const&);
23366public:
23372 int64_t const& get_data_alignment_factor() const;
23373 void set_data_alignment_factor(int64_t const&);
23376public:
23382 uint64_t const& get_augmentation_data_length() const;
23383 void set_augmentation_data_length(uint64_t const&);
23386public:
23392 int const& get_lsda_encoding() const;
23393 void set_lsda_encoding(int const&);
23396public:
23402 int const& get_prh_encoding() const;
23403 void set_prh_encoding(int const&);
23406public:
23412 unsigned const& get_prh_arg() const;
23413 void set_prh_arg(unsigned const&);
23416public:
23426public:
23432 int const& get_addr_encoding() const;
23433 void set_addr_encoding(int const&);
23436public:
23442 bool const& get_sig_frame() const;
23443 void set_sig_frame(bool const&);
23446public:
23452 SgUnsignedCharList const& get_instructions() const;
23453 SgUnsignedCharList& get_instructions();
23454 void set_instructions(SgUnsignedCharList const&);
23457public:
23467public:
23470
23472 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
23473
23478 std::string unparse(const SgAsmElfEHFrameSection*) const;
23479public:
23482
23483public:
23486
23487protected:
23495#endif // SgAsmElfEHFrameEntryCI_OTHERS
23496#ifdef DOCUMENTATION
23497};
23498#endif // DOCUMENTATION
23499
23500
23502// SgAsmElfDynamicSection -- MACHINE GENERATED; DO NOT MODIFY --
23504
23505DECLARE_LEAF_CLASS(AsmElfDynamicSection);
23506IS_SERIALIZABLE(AsmElfDynamicSection);
23507
23508#ifndef DOCUMENTATION
23509AsmElfDynamicSection.useSmallHeader(true);
23510#endif // !DOCUMENTATION
23511
23512DECLARE_HEADERS(AsmElfDynamicSection);
23513#if defined(SgAsmElfDynamicSection_HEADERS) || defined(DOCUMENTATION)
23514#include <Rose/BinaryAnalysis/Address.h>
23515
23516#ifdef ROSE_SgAsmElfDynamicSection_IMPL
23517#include <SgAsmElfDynamicEntryList.h>
23518#endif
23519#endif // SgAsmElfDynamicSection_HEADERS
23520
23521#ifdef DOCUMENTATION
23524#endif // DOCUMENTATION
23525
23526#ifndef DOCUMENTATION
23527 AsmElfDynamicSection.setDataPrototype(
23528 "SgAsmElfDynamicEntryList*", "entries", "= createAndParent<SgAsmElfDynamicEntryList>(this)",
23529 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23530#endif // !DOCUMENTATION
23531
23532 DECLARE_OTHERS(AsmElfDynamicSection);
23533#if defined(SgAsmElfDynamicSection_OTHERS) || defined(DOCUMENTATION)
23534
23535 //----------------------- Boost serialization for SgAsmElfDynamicSection -----------------------
23536#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23537private:
23538 friend class boost::serialization::access;
23539
23540 template<class S>
23541 void serialize(S &s, const unsigned /*version*/) {
23542 debugSerializationBegin("SgAsmElfDynamicSection");
23543 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmElfSection);
23544 s & BOOST_SERIALIZATION_NVP(p_entries);
23545 debugSerializationEnd("SgAsmElfDynamicSection");
23546 }
23547#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23548public:
23549public:
23559public:
23562
23564 virtual SgAsmElfDynamicSection* parse() override;
23565
23567 virtual void finishParsing() override;
23568
23572 calculateSizes(size_t *total, size_t *required, size_t *optional, size_t *entcount) const override;
23573
23574 virtual bool reallocate() override;
23575
23577 virtual void unparse(std::ostream&) const override;
23578
23580 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
23581
23583 // Deprecated 2023-11
23585public:
23586 virtual void finish_parsing() override ROSE_DEPRECATED("use finishParsing") ROSE_DEPRECATED("use finishParsing");
23587 using SgAsmElfSection::calculate_sizes;
23588 virtual Rose::BinaryAnalysis::Address calculate_sizes(size_t*, size_t*, size_t*, size_t*) const override
23589 ROSE_DEPRECATED("use calculateSizes");
23590public:
23593
23594public:
23597
23598protected:
23606#endif // SgAsmElfDynamicSection_OTHERS
23607#ifdef DOCUMENTATION
23608};
23609#endif // DOCUMENTATION
23610
23611
23613// SgAsmElfSection -- MACHINE GENERATED; DO NOT MODIFY --
23615
23616#ifndef DOCUMENTATION
23617AstNodeClass& AsmElfSection = nonTerminalConstructor(
23618 "AsmElfSection",
23619 *this,
23620 "AsmElfSection",
23621 "AsmElfSectionTag",
23622 SubclassListBuilder()
23623 | AsmElfDynamicSection
23624 | AsmElfEHFrameSection
23625 | AsmElfNoteSection
23626 | AsmElfRelocSection
23627 | AsmElfStringSection
23628 | AsmElfSymbolSection
23629 | AsmElfSymverDefinedSection
23630 | AsmElfSymverNeededSection
23631 | AsmElfSymverSection
23632 , true);
23633assert(AsmElfSection.associatedGrammar != nullptr);
23634AsmElfSection.setCppCondition("!defined(DOCUMENTATION)");
23635AsmElfSection.isBoostSerializable(true);
23636AsmElfSection.setAutomaticGenerationOfConstructor(false);
23637AsmElfSection.setAutomaticGenerationOfDestructor(false);
23638#endif // !DOCUMENTATION
23639
23640#ifndef DOCUMENTATION
23641AsmElfSection.useSmallHeader(true);
23642#endif // !DOCUMENTATION
23643
23644DECLARE_HEADERS(AsmElfSection);
23645#if defined(SgAsmElfSection_HEADERS) || defined(DOCUMENTATION)
23646#include <Rose/BinaryAnalysis/Address.h>
23647
23648#ifdef ROSE_SgAsmElfSection_IMPL
23649#include <SgAsmElfSectionTableEntry.h>
23650#include <SgAsmElfSegmentTableEntry.h>
23651#endif
23652#endif // SgAsmElfSection_HEADERS
23653
23654#ifdef DOCUMENTATION
23657#endif // DOCUMENTATION
23658
23659#ifndef DOCUMENTATION
23660 AsmElfSection.setDataPrototype(
23661 "SgAsmElfSection*", "linkedSection", "= nullptr",
23662 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23663#endif // !DOCUMENTATION
23664
23665#ifndef DOCUMENTATION
23666 AsmElfSection.setDataPrototype(
23667 "SgAsmElfSectionTableEntry*", "sectionEntry", "= nullptr",
23668 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23669#endif // !DOCUMENTATION
23670
23671#ifndef DOCUMENTATION
23672 AsmElfSection.setDataPrototype(
23673 "SgAsmElfSegmentTableEntry*", "segmentEntry", "= nullptr",
23674 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23675#endif // !DOCUMENTATION
23676
23677 DECLARE_OTHERS(AsmElfSection);
23678#if defined(SgAsmElfSection_OTHERS) || defined(DOCUMENTATION)
23679
23680 //----------------------- Boost serialization for SgAsmElfSection -----------------------
23681#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23682private:
23683 friend class boost::serialization::access;
23684
23685 template<class S>
23686 void serialize(S &s, const unsigned /*version*/) {
23687 debugSerializationBegin("SgAsmElfSection");
23688 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
23689 s & BOOST_SERIALIZATION_NVP(p_linkedSection);
23690 s & BOOST_SERIALIZATION_NVP(p_sectionEntry);
23691 s & BOOST_SERIALIZATION_NVP(p_segmentEntry);
23692 debugSerializationEnd("SgAsmElfSection");
23693 }
23694#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23695public:
23696public:
23705public:
23713public:
23720public:
23726
23733
23738
23759 Rose::BinaryAnalysis::Address calculateSizes(size_t r32size, size_t r64size, const std::vector<size_t> &optsizes,
23760 size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
23761
23762 virtual void finishParsing();
23763
23781 calculateSizes(size_t *entsize, size_t *required, size_t *optional, size_t *entcount) const;
23782
23783 virtual bool reallocate() override;
23784
23786 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
23787
23790
23795
23797 // Deprecated 2023-11
23799public:
23800 SgAsmElfSection* get_linked_section() const ROSE_DEPRECATED("use get_linkedSection");
23801 virtual void set_linked_section(SgAsmElfSection*) ROSE_DEPRECATED("use set_linkSection");
23802 SgAsmElfSectionTableEntry* get_section_entry() const ROSE_DEPRECATED("use get_sectionEntry");
23803 void set_section_entry(SgAsmElfSectionTableEntry*) ROSE_DEPRECATED("use set_sectionEntry");
23804 SgAsmElfSegmentTableEntry* get_segment_entry() const ROSE_DEPRECATED("use get_segmentEntry");
23805 void set_segment_entry(SgAsmElfSegmentTableEntry*) ROSE_DEPRECATED("use set_segmentEntry");
23806 SgAsmElfSection *init_from_section_table(SgAsmElfSectionTableEntry*, SgAsmElfStringSection*, int)
23807 ROSE_DEPRECATED("use initFromSectionTable");
23808 SgAsmElfSection *init_from_segment_table(SgAsmElfSegmentTableEntry*, bool mmap_only=false)
23809 ROSE_DEPRECATED("use initFromSegmentTable");
23810 Rose::BinaryAnalysis::Address
23811 calculate_sizes(size_t, size_t, const std::vector<size_t>&, size_t*, size_t*, size_t*, size_t*) const
23812 ROSE_DEPRECATED("use calculateSizes");
23813 virtual void finish_parsing() ROSE_DEPRECATED("use finishParsing");
23814 virtual Rose::BinaryAnalysis::Address
23815 calculate_sizes(size_t*, size_t*, size_t*, size_t*) const ROSE_DEPRECATED("use calculateSizes");
23816 void allocate_name_to_storage(SgAsmElfStringSection*) ROSE_DEPRECATED("use allocateNameToStorage");
23817 SgAsmElfFileHeader *get_elf_header() const ROSE_DEPRECATED("use get_elfHeader");
23818public:
23821
23822public:
23825
23826protected:
23834#endif // SgAsmElfSection_OTHERS
23835#ifdef DOCUMENTATION
23836};
23837#endif // DOCUMENTATION
23838
23839
23841// SgAsmElfDynamicEntryList -- MACHINE GENERATED; DO NOT MODIFY --
23843
23844DECLARE_LEAF_CLASS(AsmElfDynamicEntryList);
23845IS_SERIALIZABLE(AsmElfDynamicEntryList);
23846
23847#ifndef DOCUMENTATION
23848AsmElfDynamicEntryList.useSmallHeader(true);
23849#endif // !DOCUMENTATION
23850
23851DECLARE_HEADERS(AsmElfDynamicEntryList);
23852#if defined(SgAsmElfDynamicEntryList_HEADERS) || defined(DOCUMENTATION)
23853#include <sageContainer.h>
23854#endif // SgAsmElfDynamicEntryList_HEADERS
23855
23856#ifdef DOCUMENTATION
23862#endif // DOCUMENTATION
23863
23864#ifndef DOCUMENTATION
23865 AsmElfDynamicEntryList.setDataPrototype(
23866 "SgAsmElfDynamicEntryPtrList", "entries", "",
23867 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23868#endif // !DOCUMENTATION
23869
23870 DECLARE_OTHERS(AsmElfDynamicEntryList);
23871#if defined(SgAsmElfDynamicEntryList_OTHERS) || defined(DOCUMENTATION)
23872
23873 //----------------------- Boost serialization for SgAsmElfDynamicEntryList -----------------------
23874#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23875private:
23876 friend class boost::serialization::access;
23877
23878 template<class S>
23879 void serialize(S &s, const unsigned /*version*/) {
23880 debugSerializationBegin("SgAsmElfDynamicEntryList");
23881 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23882 s & BOOST_SERIALIZATION_NVP(p_entries);
23883 debugSerializationEnd("SgAsmElfDynamicEntryList");
23884 }
23885#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23886public:
23887public:
23891 SgAsmElfDynamicEntryPtrList const& get_entries() const;
23892 SgAsmElfDynamicEntryPtrList& get_entries();
23893 void set_entries(SgAsmElfDynamicEntryPtrList const&);
23896public:
23899
23900public:
23903
23904protected:
23912#endif // SgAsmElfDynamicEntryList_OTHERS
23913#ifdef DOCUMENTATION
23914};
23915#endif // DOCUMENTATION
23916
23917
23919// SgAsmElfDynamicEntry -- MACHINE GENERATED; DO NOT MODIFY --
23921
23922DECLARE_LEAF_CLASS(AsmElfDynamicEntry);
23923IS_SERIALIZABLE(AsmElfDynamicEntry);
23924
23925#ifndef DOCUMENTATION
23926AsmElfDynamicEntry.useSmallHeader(true);
23927#endif // !DOCUMENTATION
23928
23929DECLARE_HEADERS(AsmElfDynamicEntry);
23930#if defined(SgAsmElfDynamicEntry_HEADERS) || defined(DOCUMENTATION)
23931#include <Rose/BinaryAnalysis/ByteOrder.h>
23932#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
23933#include <sageContainer.h>
23934#endif // SgAsmElfDynamicEntry_HEADERS
23935
23936#ifdef DOCUMENTATION
23939#endif // DOCUMENTATION
23940
23941#ifndef DOCUMENTATION
23942 AsmElfDynamicEntry.setDataPrototype(
23943 "SgAsmElfDynamicEntry::EntryType", "d_tag", "= SgAsmElfDynamicEntry::DT_NULL",
23944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23945#endif // !DOCUMENTATION
23946
23947#ifndef DOCUMENTATION
23948 AsmElfDynamicEntry.setDataPrototype(
23949 "Rose::BinaryAnalysis::RelativeVirtualAddress", "d_val", "",
23950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23951#endif // !DOCUMENTATION
23952
23953#ifndef DOCUMENTATION
23954 AsmElfDynamicEntry.setDataPrototype(
23955 "SgAsmGenericString*", "name", "= nullptr",
23956 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
23957#endif // !DOCUMENTATION
23958
23959#ifndef DOCUMENTATION
23960 AsmElfDynamicEntry.setDataPrototype(
23961 "SgUnsignedCharList", "extra", "",
23962 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
23963#endif // !DOCUMENTATION
23964
23965 DECLARE_OTHERS(AsmElfDynamicEntry);
23966#if defined(SgAsmElfDynamicEntry_OTHERS) || defined(DOCUMENTATION)
23967
23968 //----------------------- Boost serialization for SgAsmElfDynamicEntry -----------------------
23969#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
23970private:
23971 friend class boost::serialization::access;
23972
23973 template<class S>
23974 void serialize(S &s, const unsigned /*version*/) {
23975 debugSerializationBegin("SgAsmElfDynamicEntry");
23976 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
23977 s & BOOST_SERIALIZATION_NVP(p_d_tag);
23978 s & BOOST_SERIALIZATION_NVP(p_d_val);
23979 s & BOOST_SERIALIZATION_NVP(p_name);
23980 s & BOOST_SERIALIZATION_NVP(p_extra);
23981 debugSerializationEnd("SgAsmElfDynamicEntry");
23982 }
23983#endif // ROSE_ENABLE_BOOST_SERIALIZATION
23985 // Local types
23987public:
23988 enum EntryType { /* Type Executable SharedObj Purpose */
23989 DT_NULL = 0, /* ignored mandatory mandatory Marks end of dynamic array */
23990 DT_NEEDED = 1, /* value optional optional Name of needed library */
23991 DT_PLTRELSZ = 2, /* value optional optional Size of reloc entries associated with PLT */
23992 DT_PLTGOT = 3, /* pointer optional optional PLT and/or GOT */
23993 DT_HASH = 4, /* pointer mandatory mandatory Symbol hash table */
23994 DT_STRTAB = 5, /* pointer mandatory mandatory String table for symbols, lib names, etc. */
23995 DT_SYMTAB = 6, /* pointer mandatory mandatory Symbol table */
23996 DT_RELA = 7, /* pointer mandatory optional Relocation table */
23997 DT_RELASZ = 8, /* value mandatory optional Size of RELA relocation table */
23998 DT_RELAENT = 9, /* value mandatory optional Size of each RELA table entry */
23999 DT_STRSZ = 10, /* value mandatory mandatory Size of string table */
24000 DT_SYMENT = 11, /* value mandatory mandatory Size of symbol table entry */
24001 DT_INIT = 12, /* pointer optional optional Initialization function */
24002 DT_FINI = 13, /* pointer optional optional Termination function */
24003 DT_SONAME = 14, /* value ignored optional Name of shared object */
24004 DT_RPATH = 15, /* value optional ignored NUL-term library search path */
24005 DT_SYMBOLIC = 16, /* ignored ignored optional Bool determines dynamic linker symbol resolution */
24006 DT_REL = 17, /* pointer mandatory optional Relocation table */
24007 DT_RELSZ = 18, /* value mandatory optional Size of REL relocation table */
24008 DT_RELENT = 19, /* value mandatory optional Size of each REL table entry */
24009 DT_PLTREL = 20, /* value optional optional Reloc type for PLT; value is DT_RELA or DT_REL */
24010 DT_DEBUG = 21, /* pointer optional ignored Contents are not specified at ABI level */
24011 DT_TEXTREL = 22, /* ignored optional optional presence => relocs to nonwritable segments OK */
24012 DT_JMPREL = 23, /* pointer optional optional Addr of relocation entries for PLT */
24013 DT_BIND_NOW = 24, /* ignored optional optional Shall dynlinker do relocs before xfering control?*/
24014 DT_INIT_ARRAY = 25, /* pointer optional ? Array with addresses of init fct */
24015 DT_FINI_ARRAY = 26, /* pointer optional ? Array with address of fini fct */
24016 DT_INIT_ARRAYSZ = 27, /* value optional ? Size in bytes of DT_INIT_ARRAY */
24017 DT_FINI_ARRAYSZ = 28, /* value optional ? Size in bytes of DT_FINI_ARRAY */
24018 DT_RUNPATH = 29, /* ? optional ? Library search path (how diff from DT_RPATH?) */
24019 DT_FLAGS = 30, /* value optional ? Bit flags */
24020 DT_PREINIT_ARRAY = 32, /* pointer optional ? Array with addrs of preinit fct (aka DT_ENCODING)*/
24021 DT_PREINIT_ARRAYSZ = 33,/* value optional ? size in bytes of DT_PREINIT_ARRAY */
24022 DT_NUM = 34, /* ? ? ? "number used"? */
24023
24024 DT_GNU_PRELINKED =0x6ffffdf5,/*value ? ? Prelinking time stamp */
24025 DT_GNU_CONFLICTSZ=0x6ffffdf6,/*value ? ? Size of conflict section */
24026 DT_GNU_LIBLISTSZ=0x6ffffdf7,/*value ? ? Size of library list */
24027 DT_CHECKSUM = 0x6ffffdf8, /* value ? ? ? */
24028 DT_PLTPADSZ = 0x6ffffdf9, /* value ? ? ? */
24029 DT_MOVEENT = 0x6ffffdfa, /* value ? ? ? */
24030 DT_MOVESZ = 0x6ffffdfb, /* value ? ? ? */
24031 DT_FEATURE_1= 0x6ffffdfc, /* value ? ? Feature selection (DTF_*) */
24032 DT_POSFLAG_1= 0x6ffffdfd, /* value ? ? Flag for DT_* entries affecting next entry */
24033 DT_SYMINSZ = 0x6ffffdfe, /* value ? ? Size of syminfo table in bytes */
24034 DT_SYMINENT = 0x6ffffdff, /* value ? ? Size of each syminfo table entry */
24035
24036 DT_GNU_HASH = 0x6ffffef5, /* pointer ? ? GNU-style hash table */
24037 DT_TLSDESC_PLT=0x6ffffef6,/* pointer ? ? ? */
24038 DT_TLSDESC_GOT=0x6ffffef7,/* pointer ? ? ? */
24039 DT_GNU_CONFLICT=0x6ffffef8,/*pointer ? ? Start of conflict section */
24040 DT_GNU_LIBLIST=0x6ffffef9,/* pointer ? ? Library list */
24041 DT_CONFIG = 0x6ffffefa, /* pointer ? ? Configuration information */
24042 DT_DEPAUDIT = 0x6ffffefb, /* pointer ? ? Dependency auditing */
24043 DT_AUDIT = 0x6ffffefc, /* pointer ? ? Object auditing */
24044 DT_PLTPAD = 0x6ffffefd, /* pointer ? ? PLT padding */
24045 DT_MOVETAB = 0x6ffffefe, /* pointer ? ? Move table */
24046 DT_SYMINFO = 0x6ffffeff, /* pointer ? ? Syminfo table */
24047
24048 DT_VERSYM = 0x6ffffff0, /* pointer ? ? ? */
24049 DT_RELACOUNT= 0x6ffffff9, /* value ? ? ? */
24050 DT_RELCOUNT = 0x6ffffffa, /* value ? ? ? */
24051 DT_FLAGS_1 = 0x6ffffffb, /* value ? ? Sun state flags */
24052 DT_VERDEF = 0x6ffffffc, /* pointer ? ? Sun version definition table */
24053 DT_VERDEFNUM= 0x6ffffffd, /* value ? ? Sun number of version definitions */
24054 DT_VERNEED = 0x6ffffffe, /* pointer ? ? Sun needed versions table */
24055 DT_VERNEEDNUM=0x6fffffff, /* value ? ? Sun number of needed versions */
24056
24057 DT_AUXILIARY= 0x7ffffffd, /* pointer ? ? Sun shared obj to load before self */
24058 DT_FILTER = 0x7fffffff /* pointer ? ? Shared object ot get values from */
24059 };
24060
24061#ifdef _MSC_VER
24062# pragma pack (1)
24063#endif
24064
24067 uint32_t d_tag;
24068 uint32_t d_val;
24069 }
24070#if !defined(SWIG) && !defined(_MSC_VER)
24071 __attribute__((packed))
24072#endif
24073 ;
24074
24076 uint64_t d_tag;
24077 uint64_t d_val;
24078 }
24079#if !defined(SWIG) && !defined(_MSC_VER)
24080 __attribute__((packed))
24081#endif
24082 ;
24083
24084#ifdef _MSC_VER
24085# pragma pack ()
24086#endif
24087
24089 // Properties
24091public:
24092public:
24098 SgAsmElfDynamicEntry::EntryType const& get_d_tag() const;
24099 void set_d_tag(SgAsmElfDynamicEntry::EntryType const&);
24102public:
24113public:
24120public:
24124 SgUnsignedCharList const& get_extra() const;
24125 SgUnsignedCharList& get_extra();
24126 void set_extra(SgUnsignedCharList const&);
24129 // Functions
24131public:
24134
24150 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
24151
24153 static std::string toString(SgAsmElfDynamicEntry::EntryType);
24154
24156 // Deprecated 2023-11
24158public:
24159 static std::string to_string(SgAsmElfDynamicEntry::EntryType) ROSE_DEPRECATED("use toString");
24160public:
24163
24164public:
24167
24168protected:
24176#endif // SgAsmElfDynamicEntry_OTHERS
24177#ifdef DOCUMENTATION
24178};
24179#endif // DOCUMENTATION
24180
24181
24183// SgAsmDwarfWithStmt -- MACHINE GENERATED; DO NOT MODIFY --
24185
24186DECLARE_LEAF_CLASS(AsmDwarfWithStmt);
24187IS_SERIALIZABLE(AsmDwarfWithStmt);
24188
24189#ifndef DOCUMENTATION
24190AsmDwarfWithStmt.useSmallHeader(true);
24191#endif // !DOCUMENTATION
24192
24193#ifdef DOCUMENTATION
24195#endif // DOCUMENTATION
24196
24197 DECLARE_OTHERS(AsmDwarfWithStmt);
24198#if defined(SgAsmDwarfWithStmt_OTHERS) || defined(DOCUMENTATION)
24199
24200 //----------------------- Boost serialization for SgAsmDwarfWithStmt -----------------------
24201#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24202private:
24203 friend class boost::serialization::access;
24204
24205 template<class S>
24206 void serialize(S &s, const unsigned /*version*/) {
24207 debugSerializationBegin("SgAsmDwarfWithStmt");
24208 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24209 debugSerializationEnd("SgAsmDwarfWithStmt");
24210 }
24211#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24212
24213public:
24216
24217public:
24220
24221public:
24223 SgAsmDwarfWithStmt(int const& nesting_level,
24224 uint64_t const& offset,
24225 uint64_t const& overall_offset);
24226
24227protected:
24235#endif // SgAsmDwarfWithStmt_OTHERS
24236#ifdef DOCUMENTATION
24237};
24238#endif // DOCUMENTATION
24239
24240
24242// SgAsmDwarfVolatileType -- MACHINE GENERATED; DO NOT MODIFY --
24244
24245DECLARE_LEAF_CLASS(AsmDwarfVolatileType);
24246IS_SERIALIZABLE(AsmDwarfVolatileType);
24247
24248#ifndef DOCUMENTATION
24249AsmDwarfVolatileType.useSmallHeader(true);
24250#endif // !DOCUMENTATION
24251
24252#ifdef DOCUMENTATION
24254#endif // DOCUMENTATION
24255
24256 DECLARE_OTHERS(AsmDwarfVolatileType);
24257#if defined(SgAsmDwarfVolatileType_OTHERS) || defined(DOCUMENTATION)
24258
24259 //----------------------- Boost serialization for SgAsmDwarfVolatileType -----------------------
24260#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24261private:
24262 friend class boost::serialization::access;
24263
24264 template<class S>
24265 void serialize(S &s, const unsigned /*version*/) {
24266 debugSerializationBegin("SgAsmDwarfVolatileType");
24267 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24268 debugSerializationEnd("SgAsmDwarfVolatileType");
24269 }
24270#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24271
24272public:
24275
24276public:
24279
24280public:
24282 SgAsmDwarfVolatileType(int const& nesting_level,
24283 uint64_t const& offset,
24284 uint64_t const& overall_offset);
24285
24286protected:
24294#endif // SgAsmDwarfVolatileType_OTHERS
24295#ifdef DOCUMENTATION
24296};
24297#endif // DOCUMENTATION
24298
24299
24301// SgAsmDwarfVariantPart -- MACHINE GENERATED; DO NOT MODIFY --
24303
24304DECLARE_LEAF_CLASS(AsmDwarfVariantPart);
24305IS_SERIALIZABLE(AsmDwarfVariantPart);
24306
24307#ifndef DOCUMENTATION
24308AsmDwarfVariantPart.useSmallHeader(true);
24309#endif // !DOCUMENTATION
24310
24311#ifdef DOCUMENTATION
24313#endif // DOCUMENTATION
24314
24315 DECLARE_OTHERS(AsmDwarfVariantPart);
24316#if defined(SgAsmDwarfVariantPart_OTHERS) || defined(DOCUMENTATION)
24317
24318 //----------------------- Boost serialization for SgAsmDwarfVariantPart -----------------------
24319#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24320private:
24321 friend class boost::serialization::access;
24322
24323 template<class S>
24324 void serialize(S &s, const unsigned /*version*/) {
24325 debugSerializationBegin("SgAsmDwarfVariantPart");
24326 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24327 debugSerializationEnd("SgAsmDwarfVariantPart");
24328 }
24329#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24330
24331public:
24334
24335public:
24338
24339public:
24341 SgAsmDwarfVariantPart(int const& nesting_level,
24342 uint64_t const& offset,
24343 uint64_t const& overall_offset);
24344
24345protected:
24353#endif // SgAsmDwarfVariantPart_OTHERS
24354#ifdef DOCUMENTATION
24355};
24356#endif // DOCUMENTATION
24357
24358
24360// SgAsmDwarfVariant -- MACHINE GENERATED; DO NOT MODIFY --
24362
24363DECLARE_LEAF_CLASS(AsmDwarfVariant);
24364IS_SERIALIZABLE(AsmDwarfVariant);
24365
24366#ifndef DOCUMENTATION
24367AsmDwarfVariant.useSmallHeader(true);
24368#endif // !DOCUMENTATION
24369
24370#ifdef DOCUMENTATION
24372#endif // DOCUMENTATION
24373
24374 DECLARE_OTHERS(AsmDwarfVariant);
24375#if defined(SgAsmDwarfVariant_OTHERS) || defined(DOCUMENTATION)
24376
24377 //----------------------- Boost serialization for SgAsmDwarfVariant -----------------------
24378#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24379private:
24380 friend class boost::serialization::access;
24381
24382 template<class S>
24383 void serialize(S &s, const unsigned /*version*/) {
24384 debugSerializationBegin("SgAsmDwarfVariant");
24385 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24386 debugSerializationEnd("SgAsmDwarfVariant");
24387 }
24388#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24389
24390public:
24393
24394public:
24397
24398public:
24400 SgAsmDwarfVariant(int const& nesting_level,
24401 uint64_t const& offset,
24402 uint64_t const& overall_offset);
24403
24404protected:
24412#endif // SgAsmDwarfVariant_OTHERS
24413#ifdef DOCUMENTATION
24414};
24415#endif // DOCUMENTATION
24416
24417
24419// SgAsmDwarfVariable -- MACHINE GENERATED; DO NOT MODIFY --
24421
24422DECLARE_LEAF_CLASS(AsmDwarfVariable);
24423IS_SERIALIZABLE(AsmDwarfVariable);
24424
24425#ifndef DOCUMENTATION
24426AsmDwarfVariable.useSmallHeader(true);
24427#endif // !DOCUMENTATION
24428
24429#ifdef DOCUMENTATION
24431#endif // DOCUMENTATION
24432
24433 DECLARE_OTHERS(AsmDwarfVariable);
24434#if defined(SgAsmDwarfVariable_OTHERS) || defined(DOCUMENTATION)
24435
24436 //----------------------- Boost serialization for SgAsmDwarfVariable -----------------------
24437#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24438private:
24439 friend class boost::serialization::access;
24440
24441 template<class S>
24442 void serialize(S &s, const unsigned /*version*/) {
24443 debugSerializationBegin("SgAsmDwarfVariable");
24444 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24445 debugSerializationEnd("SgAsmDwarfVariable");
24446 }
24447#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24448
24449public:
24452
24453public:
24456
24457public:
24459 SgAsmDwarfVariable(int const& nesting_level,
24460 uint64_t const& offset,
24461 uint64_t const& overall_offset);
24462
24463protected:
24471#endif // SgAsmDwarfVariable_OTHERS
24472#ifdef DOCUMENTATION
24473};
24474#endif // DOCUMENTATION
24475
24476
24478// SgAsmDwarfUpcStrictType -- MACHINE GENERATED; DO NOT MODIFY --
24480
24481DECLARE_LEAF_CLASS(AsmDwarfUpcStrictType);
24482IS_SERIALIZABLE(AsmDwarfUpcStrictType);
24483
24484#ifndef DOCUMENTATION
24485AsmDwarfUpcStrictType.useSmallHeader(true);
24486#endif // !DOCUMENTATION
24487
24488#ifdef DOCUMENTATION
24490#endif // DOCUMENTATION
24491
24492 DECLARE_OTHERS(AsmDwarfUpcStrictType);
24493#if defined(SgAsmDwarfUpcStrictType_OTHERS) || defined(DOCUMENTATION)
24494
24495 //----------------------- Boost serialization for SgAsmDwarfUpcStrictType -----------------------
24496#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24497private:
24498 friend class boost::serialization::access;
24499
24500 template<class S>
24501 void serialize(S &s, const unsigned /*version*/) {
24502 debugSerializationBegin("SgAsmDwarfUpcStrictType");
24503 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24504 debugSerializationEnd("SgAsmDwarfUpcStrictType");
24505 }
24506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24507
24508public:
24511
24512public:
24515
24516public:
24518 SgAsmDwarfUpcStrictType(int const& nesting_level,
24519 uint64_t const& offset,
24520 uint64_t const& overall_offset);
24521
24522protected:
24530#endif // SgAsmDwarfUpcStrictType_OTHERS
24531#ifdef DOCUMENTATION
24532};
24533#endif // DOCUMENTATION
24534
24535
24537// SgAsmDwarfUpcSharedType -- MACHINE GENERATED; DO NOT MODIFY --
24539
24540DECLARE_LEAF_CLASS(AsmDwarfUpcSharedType);
24541IS_SERIALIZABLE(AsmDwarfUpcSharedType);
24542
24543#ifndef DOCUMENTATION
24544AsmDwarfUpcSharedType.useSmallHeader(true);
24545#endif // !DOCUMENTATION
24546
24547#ifdef DOCUMENTATION
24549#endif // DOCUMENTATION
24550
24551 DECLARE_OTHERS(AsmDwarfUpcSharedType);
24552#if defined(SgAsmDwarfUpcSharedType_OTHERS) || defined(DOCUMENTATION)
24553
24554 //----------------------- Boost serialization for SgAsmDwarfUpcSharedType -----------------------
24555#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24556private:
24557 friend class boost::serialization::access;
24558
24559 template<class S>
24560 void serialize(S &s, const unsigned /*version*/) {
24561 debugSerializationBegin("SgAsmDwarfUpcSharedType");
24562 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24563 debugSerializationEnd("SgAsmDwarfUpcSharedType");
24564 }
24565#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24566
24567public:
24570
24571public:
24574
24575public:
24577 SgAsmDwarfUpcSharedType(int const& nesting_level,
24578 uint64_t const& offset,
24579 uint64_t const& overall_offset);
24580
24581protected:
24589#endif // SgAsmDwarfUpcSharedType_OTHERS
24590#ifdef DOCUMENTATION
24591};
24592#endif // DOCUMENTATION
24593
24594
24596// SgAsmDwarfUpcRelaxedType -- MACHINE GENERATED; DO NOT MODIFY --
24598
24599DECLARE_LEAF_CLASS(AsmDwarfUpcRelaxedType);
24600IS_SERIALIZABLE(AsmDwarfUpcRelaxedType);
24601
24602#ifndef DOCUMENTATION
24603AsmDwarfUpcRelaxedType.useSmallHeader(true);
24604#endif // !DOCUMENTATION
24605
24606#ifdef DOCUMENTATION
24608#endif // DOCUMENTATION
24609
24610 DECLARE_OTHERS(AsmDwarfUpcRelaxedType);
24611#if defined(SgAsmDwarfUpcRelaxedType_OTHERS) || defined(DOCUMENTATION)
24612
24613 //----------------------- Boost serialization for SgAsmDwarfUpcRelaxedType -----------------------
24614#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24615private:
24616 friend class boost::serialization::access;
24617
24618 template<class S>
24619 void serialize(S &s, const unsigned /*version*/) {
24620 debugSerializationBegin("SgAsmDwarfUpcRelaxedType");
24621 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24622 debugSerializationEnd("SgAsmDwarfUpcRelaxedType");
24623 }
24624#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24625
24626public:
24629
24630public:
24633
24634public:
24636 SgAsmDwarfUpcRelaxedType(int const& nesting_level,
24637 uint64_t const& offset,
24638 uint64_t const& overall_offset);
24639
24640protected:
24648#endif // SgAsmDwarfUpcRelaxedType_OTHERS
24649#ifdef DOCUMENTATION
24650};
24651#endif // DOCUMENTATION
24652
24653
24655// SgAsmDwarfUnspecifiedType -- MACHINE GENERATED; DO NOT MODIFY --
24657
24658DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedType);
24659IS_SERIALIZABLE(AsmDwarfUnspecifiedType);
24660
24661#ifndef DOCUMENTATION
24662AsmDwarfUnspecifiedType.useSmallHeader(true);
24663#endif // !DOCUMENTATION
24664
24665#ifdef DOCUMENTATION
24667#endif // DOCUMENTATION
24668
24669 DECLARE_OTHERS(AsmDwarfUnspecifiedType);
24670#if defined(SgAsmDwarfUnspecifiedType_OTHERS) || defined(DOCUMENTATION)
24671
24672 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedType -----------------------
24673#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24674private:
24675 friend class boost::serialization::access;
24676
24677 template<class S>
24678 void serialize(S &s, const unsigned /*version*/) {
24679 debugSerializationBegin("SgAsmDwarfUnspecifiedType");
24680 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24681 debugSerializationEnd("SgAsmDwarfUnspecifiedType");
24682 }
24683#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24684
24685public:
24688
24689public:
24692
24693public:
24695 SgAsmDwarfUnspecifiedType(int const& nesting_level,
24696 uint64_t const& offset,
24697 uint64_t const& overall_offset);
24698
24699protected:
24707#endif // SgAsmDwarfUnspecifiedType_OTHERS
24708#ifdef DOCUMENTATION
24709};
24710#endif // DOCUMENTATION
24711
24712
24714// SgAsmDwarfUnspecifiedParameters -- MACHINE GENERATED; DO NOT MODIFY --
24716
24717DECLARE_LEAF_CLASS(AsmDwarfUnspecifiedParameters);
24718IS_SERIALIZABLE(AsmDwarfUnspecifiedParameters);
24719
24720#ifndef DOCUMENTATION
24721AsmDwarfUnspecifiedParameters.useSmallHeader(true);
24722#endif // !DOCUMENTATION
24723
24724#ifdef DOCUMENTATION
24726#endif // DOCUMENTATION
24727
24728 DECLARE_OTHERS(AsmDwarfUnspecifiedParameters);
24729#if defined(SgAsmDwarfUnspecifiedParameters_OTHERS) || defined(DOCUMENTATION)
24730
24731 //----------------------- Boost serialization for SgAsmDwarfUnspecifiedParameters -----------------------
24732#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24733private:
24734 friend class boost::serialization::access;
24735
24736 template<class S>
24737 void serialize(S &s, const unsigned /*version*/) {
24738 debugSerializationBegin("SgAsmDwarfUnspecifiedParameters");
24739 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24740 debugSerializationEnd("SgAsmDwarfUnspecifiedParameters");
24741 }
24742#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24743
24744public:
24747
24748public:
24751
24752public:
24754 SgAsmDwarfUnspecifiedParameters(int const& nesting_level,
24755 uint64_t const& offset,
24756 uint64_t const& overall_offset);
24757
24758protected:
24766#endif // SgAsmDwarfUnspecifiedParameters_OTHERS
24767#ifdef DOCUMENTATION
24768};
24769#endif // DOCUMENTATION
24770
24771
24773// SgAsmDwarfUnknownConstruct -- MACHINE GENERATED; DO NOT MODIFY --
24775
24776DECLARE_LEAF_CLASS(AsmDwarfUnknownConstruct);
24777IS_SERIALIZABLE(AsmDwarfUnknownConstruct);
24778
24779#ifndef DOCUMENTATION
24780AsmDwarfUnknownConstruct.useSmallHeader(true);
24781#endif // !DOCUMENTATION
24782
24783#ifdef DOCUMENTATION
24785#endif // DOCUMENTATION
24786
24787 DECLARE_OTHERS(AsmDwarfUnknownConstruct);
24788#if defined(SgAsmDwarfUnknownConstruct_OTHERS) || defined(DOCUMENTATION)
24789
24790 //----------------------- Boost serialization for SgAsmDwarfUnknownConstruct -----------------------
24791#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24792private:
24793 friend class boost::serialization::access;
24794
24795 template<class S>
24796 void serialize(S &s, const unsigned /*version*/) {
24797 debugSerializationBegin("SgAsmDwarfUnknownConstruct");
24798 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24799 debugSerializationEnd("SgAsmDwarfUnknownConstruct");
24800 }
24801#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24802
24803public:
24806
24807public:
24810
24811public:
24813 SgAsmDwarfUnknownConstruct(int const& nesting_level,
24814 uint64_t const& offset,
24815 uint64_t const& overall_offset);
24816
24817protected:
24825#endif // SgAsmDwarfUnknownConstruct_OTHERS
24826#ifdef DOCUMENTATION
24827};
24828#endif // DOCUMENTATION
24829
24830
24832// SgAsmDwarfUnionType -- MACHINE GENERATED; DO NOT MODIFY --
24834
24835DECLARE_LEAF_CLASS(AsmDwarfUnionType);
24836IS_SERIALIZABLE(AsmDwarfUnionType);
24837
24838#ifndef DOCUMENTATION
24839AsmDwarfUnionType.useSmallHeader(true);
24840#endif // !DOCUMENTATION
24841
24842DECLARE_HEADERS(AsmDwarfUnionType);
24843#if defined(SgAsmDwarfUnionType_HEADERS) || defined(DOCUMENTATION)
24844#ifdef ROSE_SgAsmDwarfUnionType_IMPL
24845#include <SgAsmDwarfConstructList.h>
24846#endif
24847#endif // SgAsmDwarfUnionType_HEADERS
24848
24849#ifdef DOCUMENTATION
24851#endif // DOCUMENTATION
24852
24853#ifndef DOCUMENTATION
24854 AsmDwarfUnionType.setDataPrototype(
24855 "SgAsmDwarfConstructList*", "body", "= NULL",
24856 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
24857#endif // !DOCUMENTATION
24858
24859 DECLARE_OTHERS(AsmDwarfUnionType);
24860#if defined(SgAsmDwarfUnionType_OTHERS) || defined(DOCUMENTATION)
24861
24862 //----------------------- Boost serialization for SgAsmDwarfUnionType -----------------------
24863#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24864private:
24865 friend class boost::serialization::access;
24866
24867 template<class S>
24868 void serialize(S &s, const unsigned /*version*/) {
24869 debugSerializationBegin("SgAsmDwarfUnionType");
24870 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24871 s & BOOST_SERIALIZATION_NVP(p_body);
24872 debugSerializationEnd("SgAsmDwarfUnionType");
24873 }
24874#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24875public:
24876public:
24877 SgAsmDwarfConstructList* const& get_body() const;
24878 void set_body(SgAsmDwarfConstructList* const&);
24879public:
24880 SgAsmDwarfConstructList* get_children() override;
24881public:
24884
24885public:
24888
24889public:
24891 SgAsmDwarfUnionType(int const& nesting_level,
24892 uint64_t const& offset,
24893 uint64_t const& overall_offset);
24894
24895protected:
24903#endif // SgAsmDwarfUnionType_OTHERS
24904#ifdef DOCUMENTATION
24905};
24906#endif // DOCUMENTATION
24907
24908
24910// SgAsmDwarfTypedef -- MACHINE GENERATED; DO NOT MODIFY --
24912
24913DECLARE_LEAF_CLASS(AsmDwarfTypedef);
24914IS_SERIALIZABLE(AsmDwarfTypedef);
24915
24916#ifndef DOCUMENTATION
24917AsmDwarfTypedef.useSmallHeader(true);
24918#endif // !DOCUMENTATION
24919
24920#ifdef DOCUMENTATION
24922#endif // DOCUMENTATION
24923
24924 DECLARE_OTHERS(AsmDwarfTypedef);
24925#if defined(SgAsmDwarfTypedef_OTHERS) || defined(DOCUMENTATION)
24926
24927 //----------------------- Boost serialization for SgAsmDwarfTypedef -----------------------
24928#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24929private:
24930 friend class boost::serialization::access;
24931
24932 template<class S>
24933 void serialize(S &s, const unsigned /*version*/) {
24934 debugSerializationBegin("SgAsmDwarfTypedef");
24935 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24936 debugSerializationEnd("SgAsmDwarfTypedef");
24937 }
24938#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24939
24940public:
24943
24944public:
24947
24948public:
24950 SgAsmDwarfTypedef(int const& nesting_level,
24951 uint64_t const& offset,
24952 uint64_t const& overall_offset);
24953
24954protected:
24962#endif // SgAsmDwarfTypedef_OTHERS
24963#ifdef DOCUMENTATION
24964};
24965#endif // DOCUMENTATION
24966
24967
24969// SgAsmDwarfTryBlock -- MACHINE GENERATED; DO NOT MODIFY --
24971
24972DECLARE_LEAF_CLASS(AsmDwarfTryBlock);
24973IS_SERIALIZABLE(AsmDwarfTryBlock);
24974
24975#ifndef DOCUMENTATION
24976AsmDwarfTryBlock.useSmallHeader(true);
24977#endif // !DOCUMENTATION
24978
24979#ifdef DOCUMENTATION
24981#endif // DOCUMENTATION
24982
24983 DECLARE_OTHERS(AsmDwarfTryBlock);
24984#if defined(SgAsmDwarfTryBlock_OTHERS) || defined(DOCUMENTATION)
24985
24986 //----------------------- Boost serialization for SgAsmDwarfTryBlock -----------------------
24987#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
24988private:
24989 friend class boost::serialization::access;
24990
24991 template<class S>
24992 void serialize(S &s, const unsigned /*version*/) {
24993 debugSerializationBegin("SgAsmDwarfTryBlock");
24994 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
24995 debugSerializationEnd("SgAsmDwarfTryBlock");
24996 }
24997#endif // ROSE_ENABLE_BOOST_SERIALIZATION
24998
24999public:
25002
25003public:
25006
25007public:
25009 SgAsmDwarfTryBlock(int const& nesting_level,
25010 uint64_t const& offset,
25011 uint64_t const& overall_offset);
25012
25013protected:
25021#endif // SgAsmDwarfTryBlock_OTHERS
25022#ifdef DOCUMENTATION
25023};
25024#endif // DOCUMENTATION
25025
25026
25028// SgAsmDwarfThrownType -- MACHINE GENERATED; DO NOT MODIFY --
25030
25031DECLARE_LEAF_CLASS(AsmDwarfThrownType);
25032IS_SERIALIZABLE(AsmDwarfThrownType);
25033
25034#ifndef DOCUMENTATION
25035AsmDwarfThrownType.useSmallHeader(true);
25036#endif // !DOCUMENTATION
25037
25038#ifdef DOCUMENTATION
25040#endif // DOCUMENTATION
25041
25042 DECLARE_OTHERS(AsmDwarfThrownType);
25043#if defined(SgAsmDwarfThrownType_OTHERS) || defined(DOCUMENTATION)
25044
25045 //----------------------- Boost serialization for SgAsmDwarfThrownType -----------------------
25046#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25047private:
25048 friend class boost::serialization::access;
25049
25050 template<class S>
25051 void serialize(S &s, const unsigned /*version*/) {
25052 debugSerializationBegin("SgAsmDwarfThrownType");
25053 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25054 debugSerializationEnd("SgAsmDwarfThrownType");
25055 }
25056#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25057
25058public:
25061
25062public:
25065
25066public:
25068 SgAsmDwarfThrownType(int const& nesting_level,
25069 uint64_t const& offset,
25070 uint64_t const& overall_offset);
25071
25072protected:
25080#endif // SgAsmDwarfThrownType_OTHERS
25081#ifdef DOCUMENTATION
25082};
25083#endif // DOCUMENTATION
25084
25085
25087// SgAsmDwarfTemplateValueParameter -- MACHINE GENERATED; DO NOT MODIFY --
25089
25090DECLARE_LEAF_CLASS(AsmDwarfTemplateValueParameter);
25091IS_SERIALIZABLE(AsmDwarfTemplateValueParameter);
25092
25093#ifndef DOCUMENTATION
25094AsmDwarfTemplateValueParameter.useSmallHeader(true);
25095#endif // !DOCUMENTATION
25096
25097#ifdef DOCUMENTATION
25099#endif // DOCUMENTATION
25100
25101 DECLARE_OTHERS(AsmDwarfTemplateValueParameter);
25102#if defined(SgAsmDwarfTemplateValueParameter_OTHERS) || defined(DOCUMENTATION)
25103
25104 //----------------------- Boost serialization for SgAsmDwarfTemplateValueParameter -----------------------
25105#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25106private:
25107 friend class boost::serialization::access;
25108
25109 template<class S>
25110 void serialize(S &s, const unsigned /*version*/) {
25111 debugSerializationBegin("SgAsmDwarfTemplateValueParameter");
25112 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25113 debugSerializationEnd("SgAsmDwarfTemplateValueParameter");
25114 }
25115#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25116
25117public:
25120
25121public:
25124
25125public:
25127 SgAsmDwarfTemplateValueParameter(int const& nesting_level,
25128 uint64_t const& offset,
25129 uint64_t const& overall_offset);
25130
25131protected:
25139#endif // SgAsmDwarfTemplateValueParameter_OTHERS
25140#ifdef DOCUMENTATION
25141};
25142#endif // DOCUMENTATION
25143
25144
25146// SgAsmDwarfTemplateTypeParameter -- MACHINE GENERATED; DO NOT MODIFY --
25148
25149DECLARE_LEAF_CLASS(AsmDwarfTemplateTypeParameter);
25150IS_SERIALIZABLE(AsmDwarfTemplateTypeParameter);
25151
25152#ifndef DOCUMENTATION
25153AsmDwarfTemplateTypeParameter.useSmallHeader(true);
25154#endif // !DOCUMENTATION
25155
25156#ifdef DOCUMENTATION
25158#endif // DOCUMENTATION
25159
25160 DECLARE_OTHERS(AsmDwarfTemplateTypeParameter);
25161#if defined(SgAsmDwarfTemplateTypeParameter_OTHERS) || defined(DOCUMENTATION)
25162
25163 //----------------------- Boost serialization for SgAsmDwarfTemplateTypeParameter -----------------------
25164#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25165private:
25166 friend class boost::serialization::access;
25167
25168 template<class S>
25169 void serialize(S &s, const unsigned /*version*/) {
25170 debugSerializationBegin("SgAsmDwarfTemplateTypeParameter");
25171 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25172 debugSerializationEnd("SgAsmDwarfTemplateTypeParameter");
25173 }
25174#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25175
25176public:
25179
25180public:
25183
25184public:
25186 SgAsmDwarfTemplateTypeParameter(int const& nesting_level,
25187 uint64_t const& offset,
25188 uint64_t const& overall_offset);
25189
25190protected:
25198#endif // SgAsmDwarfTemplateTypeParameter_OTHERS
25199#ifdef DOCUMENTATION
25200};
25201#endif // DOCUMENTATION
25202
25203
25205// SgAsmDwarfSubroutineType -- MACHINE GENERATED; DO NOT MODIFY --
25207
25208DECLARE_LEAF_CLASS(AsmDwarfSubroutineType);
25209IS_SERIALIZABLE(AsmDwarfSubroutineType);
25210
25211#ifndef DOCUMENTATION
25212AsmDwarfSubroutineType.useSmallHeader(true);
25213#endif // !DOCUMENTATION
25214
25215DECLARE_HEADERS(AsmDwarfSubroutineType);
25216#if defined(SgAsmDwarfSubroutineType_HEADERS) || defined(DOCUMENTATION)
25217#ifdef ROSE_SgAsmDwarfSubroutineType_IMPL
25218#include <SgAsmDwarfConstructList.h>
25219#endif
25220#endif // SgAsmDwarfSubroutineType_HEADERS
25221
25222#ifdef DOCUMENTATION
25224#endif // DOCUMENTATION
25225
25226#ifndef DOCUMENTATION
25227 AsmDwarfSubroutineType.setDataPrototype(
25228 "SgAsmDwarfConstructList*", "body", "= nullptr",
25229 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25230#endif // !DOCUMENTATION
25231
25232 DECLARE_OTHERS(AsmDwarfSubroutineType);
25233#if defined(SgAsmDwarfSubroutineType_OTHERS) || defined(DOCUMENTATION)
25234
25235 //----------------------- Boost serialization for SgAsmDwarfSubroutineType -----------------------
25236#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25237private:
25238 friend class boost::serialization::access;
25239
25240 template<class S>
25241 void serialize(S &s, const unsigned /*version*/) {
25242 debugSerializationBegin("SgAsmDwarfSubroutineType");
25243 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25244 s & BOOST_SERIALIZATION_NVP(p_body);
25245 debugSerializationEnd("SgAsmDwarfSubroutineType");
25246 }
25247#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25248public:
25249public:
25250 SgAsmDwarfConstructList* const& get_body() const;
25251 void set_body(SgAsmDwarfConstructList* const&);
25252public:
25253 SgAsmDwarfConstructList* get_children() override;
25254public:
25257
25258public:
25261
25262public:
25264 SgAsmDwarfSubroutineType(int const& nesting_level,
25265 uint64_t const& offset,
25266 uint64_t const& overall_offset);
25267
25268protected:
25276#endif // SgAsmDwarfSubroutineType_OTHERS
25277#ifdef DOCUMENTATION
25278};
25279#endif // DOCUMENTATION
25280
25281
25283// SgAsmDwarfSubrangeType -- MACHINE GENERATED; DO NOT MODIFY --
25285
25286DECLARE_LEAF_CLASS(AsmDwarfSubrangeType);
25287IS_SERIALIZABLE(AsmDwarfSubrangeType);
25288
25289#ifndef DOCUMENTATION
25290AsmDwarfSubrangeType.useSmallHeader(true);
25291#endif // !DOCUMENTATION
25292
25293#ifdef DOCUMENTATION
25295#endif // DOCUMENTATION
25296
25297 DECLARE_OTHERS(AsmDwarfSubrangeType);
25298#if defined(SgAsmDwarfSubrangeType_OTHERS) || defined(DOCUMENTATION)
25299
25300 //----------------------- Boost serialization for SgAsmDwarfSubrangeType -----------------------
25301#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25302private:
25303 friend class boost::serialization::access;
25304
25305 template<class S>
25306 void serialize(S &s, const unsigned /*version*/) {
25307 debugSerializationBegin("SgAsmDwarfSubrangeType");
25308 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25309 debugSerializationEnd("SgAsmDwarfSubrangeType");
25310 }
25311#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25312
25313public:
25316
25317public:
25320
25321public:
25323 SgAsmDwarfSubrangeType(int const& nesting_level,
25324 uint64_t const& offset,
25325 uint64_t const& overall_offset);
25326
25327protected:
25335#endif // SgAsmDwarfSubrangeType_OTHERS
25336#ifdef DOCUMENTATION
25337};
25338#endif // DOCUMENTATION
25339
25340
25342// SgAsmDwarfSubprogram -- MACHINE GENERATED; DO NOT MODIFY --
25344
25345DECLARE_LEAF_CLASS(AsmDwarfSubprogram);
25346IS_SERIALIZABLE(AsmDwarfSubprogram);
25347
25348#ifndef DOCUMENTATION
25349AsmDwarfSubprogram.useSmallHeader(true);
25350#endif // !DOCUMENTATION
25351
25352DECLARE_HEADERS(AsmDwarfSubprogram);
25353#if defined(SgAsmDwarfSubprogram_HEADERS) || defined(DOCUMENTATION)
25354#ifdef ROSE_SgAsmDwarfSubprogram_IMPL
25355#include <SgAsmDwarfConstructList.h>
25356#endif
25357#endif // SgAsmDwarfSubprogram_HEADERS
25358
25359#ifdef DOCUMENTATION
25361#endif // DOCUMENTATION
25362
25363#ifndef DOCUMENTATION
25364 AsmDwarfSubprogram.setDataPrototype(
25365 "SgAsmDwarfConstructList*", "body", "= NULL",
25366 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25367#endif // !DOCUMENTATION
25368
25369 DECLARE_OTHERS(AsmDwarfSubprogram);
25370#if defined(SgAsmDwarfSubprogram_OTHERS) || defined(DOCUMENTATION)
25371
25372 //----------------------- Boost serialization for SgAsmDwarfSubprogram -----------------------
25373#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25374private:
25375 friend class boost::serialization::access;
25376
25377 template<class S>
25378 void serialize(S &s, const unsigned /*version*/) {
25379 debugSerializationBegin("SgAsmDwarfSubprogram");
25380 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25381 s & BOOST_SERIALIZATION_NVP(p_body);
25382 debugSerializationEnd("SgAsmDwarfSubprogram");
25383 }
25384#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25385public:
25386public:
25387 SgAsmDwarfConstructList* const& get_body() const;
25388 void set_body(SgAsmDwarfConstructList* const&);
25389public:
25390 SgAsmDwarfConstructList* get_children() override;
25391public:
25394
25395public:
25398
25399public:
25401 SgAsmDwarfSubprogram(int const& nesting_level,
25402 uint64_t const& offset,
25403 uint64_t const& overall_offset);
25404
25405protected:
25413#endif // SgAsmDwarfSubprogram_OTHERS
25414#ifdef DOCUMENTATION
25415};
25416#endif // DOCUMENTATION
25417
25418
25420// SgAsmDwarfStructureType -- MACHINE GENERATED; DO NOT MODIFY --
25422
25423DECLARE_LEAF_CLASS(AsmDwarfStructureType);
25424IS_SERIALIZABLE(AsmDwarfStructureType);
25425
25426#ifndef DOCUMENTATION
25427AsmDwarfStructureType.useSmallHeader(true);
25428#endif // !DOCUMENTATION
25429
25430DECLARE_HEADERS(AsmDwarfStructureType);
25431#if defined(SgAsmDwarfStructureType_HEADERS) || defined(DOCUMENTATION)
25432#ifdef ROSE_SgAsmDwarfStructureType_IMPL
25433#include <SgAsmDwarfConstructList.h>
25434#endif
25435#endif // SgAsmDwarfStructureType_HEADERS
25436
25437#ifdef DOCUMENTATION
25439#endif // DOCUMENTATION
25440
25441#ifndef DOCUMENTATION
25442 AsmDwarfStructureType.setDataPrototype(
25443 "SgAsmDwarfConstructList*", "body", "= nullptr",
25444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
25445#endif // !DOCUMENTATION
25446
25447 DECLARE_OTHERS(AsmDwarfStructureType);
25448#if defined(SgAsmDwarfStructureType_OTHERS) || defined(DOCUMENTATION)
25449
25450 //----------------------- Boost serialization for SgAsmDwarfStructureType -----------------------
25451#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25452private:
25453 friend class boost::serialization::access;
25454
25455 template<class S>
25456 void serialize(S &s, const unsigned /*version*/) {
25457 debugSerializationBegin("SgAsmDwarfStructureType");
25458 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25459 s & BOOST_SERIALIZATION_NVP(p_body);
25460 debugSerializationEnd("SgAsmDwarfStructureType");
25461 }
25462#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25463public:
25464public:
25465 SgAsmDwarfConstructList* const& get_body() const;
25466 void set_body(SgAsmDwarfConstructList* const&);
25467public:
25468 SgAsmDwarfConstructList* get_children() override;
25469public:
25472
25473public:
25476
25477public:
25479 SgAsmDwarfStructureType(int const& nesting_level,
25480 uint64_t const& offset,
25481 uint64_t const& overall_offset);
25482
25483protected:
25491#endif // SgAsmDwarfStructureType_OTHERS
25492#ifdef DOCUMENTATION
25493};
25494#endif // DOCUMENTATION
25495
25496
25498// SgAsmDwarfStringType -- MACHINE GENERATED; DO NOT MODIFY --
25500
25501DECLARE_LEAF_CLASS(AsmDwarfStringType);
25502IS_SERIALIZABLE(AsmDwarfStringType);
25503
25504#ifndef DOCUMENTATION
25505AsmDwarfStringType.useSmallHeader(true);
25506#endif // !DOCUMENTATION
25507
25508#ifdef DOCUMENTATION
25510#endif // DOCUMENTATION
25511
25512 DECLARE_OTHERS(AsmDwarfStringType);
25513#if defined(SgAsmDwarfStringType_OTHERS) || defined(DOCUMENTATION)
25514
25515 //----------------------- Boost serialization for SgAsmDwarfStringType -----------------------
25516#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25517private:
25518 friend class boost::serialization::access;
25519
25520 template<class S>
25521 void serialize(S &s, const unsigned /*version*/) {
25522 debugSerializationBegin("SgAsmDwarfStringType");
25523 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25524 debugSerializationEnd("SgAsmDwarfStringType");
25525 }
25526#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25527
25528public:
25531
25532public:
25535
25536public:
25538 SgAsmDwarfStringType(int const& nesting_level,
25539 uint64_t const& offset,
25540 uint64_t const& overall_offset);
25541
25542protected:
25550#endif // SgAsmDwarfStringType_OTHERS
25551#ifdef DOCUMENTATION
25552};
25553#endif // DOCUMENTATION
25554
25555
25557// SgAsmDwarfSharedType -- MACHINE GENERATED; DO NOT MODIFY --
25559
25560DECLARE_LEAF_CLASS(AsmDwarfSharedType);
25561IS_SERIALIZABLE(AsmDwarfSharedType);
25562
25563#ifndef DOCUMENTATION
25564AsmDwarfSharedType.useSmallHeader(true);
25565#endif // !DOCUMENTATION
25566
25567#ifdef DOCUMENTATION
25569#endif // DOCUMENTATION
25570
25571 DECLARE_OTHERS(AsmDwarfSharedType);
25572#if defined(SgAsmDwarfSharedType_OTHERS) || defined(DOCUMENTATION)
25573
25574 //----------------------- Boost serialization for SgAsmDwarfSharedType -----------------------
25575#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25576private:
25577 friend class boost::serialization::access;
25578
25579 template<class S>
25580 void serialize(S &s, const unsigned /*version*/) {
25581 debugSerializationBegin("SgAsmDwarfSharedType");
25582 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25583 debugSerializationEnd("SgAsmDwarfSharedType");
25584 }
25585#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25586
25587public:
25590
25591public:
25594
25595public:
25597 SgAsmDwarfSharedType(int const& nesting_level,
25598 uint64_t const& offset,
25599 uint64_t const& overall_offset);
25600
25601protected:
25609#endif // SgAsmDwarfSharedType_OTHERS
25610#ifdef DOCUMENTATION
25611};
25612#endif // DOCUMENTATION
25613
25614
25616// SgAsmDwarfSetType -- MACHINE GENERATED; DO NOT MODIFY --
25618
25619DECLARE_LEAF_CLASS(AsmDwarfSetType);
25620IS_SERIALIZABLE(AsmDwarfSetType);
25621
25622#ifndef DOCUMENTATION
25623AsmDwarfSetType.useSmallHeader(true);
25624#endif // !DOCUMENTATION
25625
25626#ifdef DOCUMENTATION
25628#endif // DOCUMENTATION
25629
25630 DECLARE_OTHERS(AsmDwarfSetType);
25631#if defined(SgAsmDwarfSetType_OTHERS) || defined(DOCUMENTATION)
25632
25633 //----------------------- Boost serialization for SgAsmDwarfSetType -----------------------
25634#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25635private:
25636 friend class boost::serialization::access;
25637
25638 template<class S>
25639 void serialize(S &s, const unsigned /*version*/) {
25640 debugSerializationBegin("SgAsmDwarfSetType");
25641 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25642 debugSerializationEnd("SgAsmDwarfSetType");
25643 }
25644#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25645
25646public:
25649
25650public:
25653
25654public:
25656 SgAsmDwarfSetType(int const& nesting_level,
25657 uint64_t const& offset,
25658 uint64_t const& overall_offset);
25659
25660protected:
25668#endif // SgAsmDwarfSetType_OTHERS
25669#ifdef DOCUMENTATION
25670};
25671#endif // DOCUMENTATION
25672
25673
25675// SgAsmDwarfRestrictType -- MACHINE GENERATED; DO NOT MODIFY --
25677
25678DECLARE_LEAF_CLASS(AsmDwarfRestrictType);
25679IS_SERIALIZABLE(AsmDwarfRestrictType);
25680
25681#ifndef DOCUMENTATION
25682AsmDwarfRestrictType.useSmallHeader(true);
25683#endif // !DOCUMENTATION
25684
25685#ifdef DOCUMENTATION
25687#endif // DOCUMENTATION
25688
25689 DECLARE_OTHERS(AsmDwarfRestrictType);
25690#if defined(SgAsmDwarfRestrictType_OTHERS) || defined(DOCUMENTATION)
25691
25692 //----------------------- Boost serialization for SgAsmDwarfRestrictType -----------------------
25693#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25694private:
25695 friend class boost::serialization::access;
25696
25697 template<class S>
25698 void serialize(S &s, const unsigned /*version*/) {
25699 debugSerializationBegin("SgAsmDwarfRestrictType");
25700 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25701 debugSerializationEnd("SgAsmDwarfRestrictType");
25702 }
25703#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25704
25705public:
25708
25709public:
25712
25713public:
25715 SgAsmDwarfRestrictType(int const& nesting_level,
25716 uint64_t const& offset,
25717 uint64_t const& overall_offset);
25718
25719protected:
25727#endif // SgAsmDwarfRestrictType_OTHERS
25728#ifdef DOCUMENTATION
25729};
25730#endif // DOCUMENTATION
25731
25732
25734// SgAsmDwarfReferenceType -- MACHINE GENERATED; DO NOT MODIFY --
25736
25737DECLARE_LEAF_CLASS(AsmDwarfReferenceType);
25738IS_SERIALIZABLE(AsmDwarfReferenceType);
25739
25740#ifndef DOCUMENTATION
25741AsmDwarfReferenceType.useSmallHeader(true);
25742#endif // !DOCUMENTATION
25743
25744#ifdef DOCUMENTATION
25746#endif // DOCUMENTATION
25747
25748 DECLARE_OTHERS(AsmDwarfReferenceType);
25749#if defined(SgAsmDwarfReferenceType_OTHERS) || defined(DOCUMENTATION)
25750
25751 //----------------------- Boost serialization for SgAsmDwarfReferenceType -----------------------
25752#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25753private:
25754 friend class boost::serialization::access;
25755
25756 template<class S>
25757 void serialize(S &s, const unsigned /*version*/) {
25758 debugSerializationBegin("SgAsmDwarfReferenceType");
25759 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25760 debugSerializationEnd("SgAsmDwarfReferenceType");
25761 }
25762#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25763
25764public:
25767
25768public:
25771
25772public:
25774 SgAsmDwarfReferenceType(int const& nesting_level,
25775 uint64_t const& offset,
25776 uint64_t const& overall_offset);
25777
25778protected:
25786#endif // SgAsmDwarfReferenceType_OTHERS
25787#ifdef DOCUMENTATION
25788};
25789#endif // DOCUMENTATION
25790
25791
25793// SgAsmDwarfPtrToMemberType -- MACHINE GENERATED; DO NOT MODIFY --
25795
25796DECLARE_LEAF_CLASS(AsmDwarfPtrToMemberType);
25797IS_SERIALIZABLE(AsmDwarfPtrToMemberType);
25798
25799#ifndef DOCUMENTATION
25800AsmDwarfPtrToMemberType.useSmallHeader(true);
25801#endif // !DOCUMENTATION
25802
25803#ifdef DOCUMENTATION
25805#endif // DOCUMENTATION
25806
25807 DECLARE_OTHERS(AsmDwarfPtrToMemberType);
25808#if defined(SgAsmDwarfPtrToMemberType_OTHERS) || defined(DOCUMENTATION)
25809
25810 //----------------------- Boost serialization for SgAsmDwarfPtrToMemberType -----------------------
25811#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25812private:
25813 friend class boost::serialization::access;
25814
25815 template<class S>
25816 void serialize(S &s, const unsigned /*version*/) {
25817 debugSerializationBegin("SgAsmDwarfPtrToMemberType");
25818 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25819 debugSerializationEnd("SgAsmDwarfPtrToMemberType");
25820 }
25821#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25822
25823public:
25826
25827public:
25830
25831public:
25833 SgAsmDwarfPtrToMemberType(int const& nesting_level,
25834 uint64_t const& offset,
25835 uint64_t const& overall_offset);
25836
25837protected:
25845#endif // SgAsmDwarfPtrToMemberType_OTHERS
25846#ifdef DOCUMENTATION
25847};
25848#endif // DOCUMENTATION
25849
25850
25852// SgAsmDwarfPointerType -- MACHINE GENERATED; DO NOT MODIFY --
25854
25855DECLARE_LEAF_CLASS(AsmDwarfPointerType);
25856IS_SERIALIZABLE(AsmDwarfPointerType);
25857
25858#ifndef DOCUMENTATION
25859AsmDwarfPointerType.useSmallHeader(true);
25860#endif // !DOCUMENTATION
25861
25862#ifdef DOCUMENTATION
25864#endif // DOCUMENTATION
25865
25866 DECLARE_OTHERS(AsmDwarfPointerType);
25867#if defined(SgAsmDwarfPointerType_OTHERS) || defined(DOCUMENTATION)
25868
25869 //----------------------- Boost serialization for SgAsmDwarfPointerType -----------------------
25870#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25871private:
25872 friend class boost::serialization::access;
25873
25874 template<class S>
25875 void serialize(S &s, const unsigned /*version*/) {
25876 debugSerializationBegin("SgAsmDwarfPointerType");
25877 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25878 debugSerializationEnd("SgAsmDwarfPointerType");
25879 }
25880#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25881
25882public:
25885
25886public:
25889
25890public:
25892 SgAsmDwarfPointerType(int const& nesting_level,
25893 uint64_t const& offset,
25894 uint64_t const& overall_offset);
25895
25896protected:
25904#endif // SgAsmDwarfPointerType_OTHERS
25905#ifdef DOCUMENTATION
25906};
25907#endif // DOCUMENTATION
25908
25909
25911// SgAsmDwarfPartialUnit -- MACHINE GENERATED; DO NOT MODIFY --
25913
25914DECLARE_LEAF_CLASS(AsmDwarfPartialUnit);
25915IS_SERIALIZABLE(AsmDwarfPartialUnit);
25916
25917#ifndef DOCUMENTATION
25918AsmDwarfPartialUnit.useSmallHeader(true);
25919#endif // !DOCUMENTATION
25920
25921#ifdef DOCUMENTATION
25923#endif // DOCUMENTATION
25924
25925 DECLARE_OTHERS(AsmDwarfPartialUnit);
25926#if defined(SgAsmDwarfPartialUnit_OTHERS) || defined(DOCUMENTATION)
25927
25928 //----------------------- Boost serialization for SgAsmDwarfPartialUnit -----------------------
25929#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25930private:
25931 friend class boost::serialization::access;
25932
25933 template<class S>
25934 void serialize(S &s, const unsigned /*version*/) {
25935 debugSerializationBegin("SgAsmDwarfPartialUnit");
25936 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25937 debugSerializationEnd("SgAsmDwarfPartialUnit");
25938 }
25939#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25940
25941public:
25944
25945public:
25948
25949public:
25951 SgAsmDwarfPartialUnit(int const& nesting_level,
25952 uint64_t const& offset,
25953 uint64_t const& overall_offset);
25954
25955protected:
25963#endif // SgAsmDwarfPartialUnit_OTHERS
25964#ifdef DOCUMENTATION
25965};
25966#endif // DOCUMENTATION
25967
25968
25970// SgAsmDwarfPackedType -- MACHINE GENERATED; DO NOT MODIFY --
25972
25973DECLARE_LEAF_CLASS(AsmDwarfPackedType);
25974IS_SERIALIZABLE(AsmDwarfPackedType);
25975
25976#ifndef DOCUMENTATION
25977AsmDwarfPackedType.useSmallHeader(true);
25978#endif // !DOCUMENTATION
25979
25980#ifdef DOCUMENTATION
25982#endif // DOCUMENTATION
25983
25984 DECLARE_OTHERS(AsmDwarfPackedType);
25985#if defined(SgAsmDwarfPackedType_OTHERS) || defined(DOCUMENTATION)
25986
25987 //----------------------- Boost serialization for SgAsmDwarfPackedType -----------------------
25988#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
25989private:
25990 friend class boost::serialization::access;
25991
25992 template<class S>
25993 void serialize(S &s, const unsigned /*version*/) {
25994 debugSerializationBegin("SgAsmDwarfPackedType");
25995 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
25996 debugSerializationEnd("SgAsmDwarfPackedType");
25997 }
25998#endif // ROSE_ENABLE_BOOST_SERIALIZATION
25999
26000public:
26003
26004public:
26007
26008public:
26010 SgAsmDwarfPackedType(int const& nesting_level,
26011 uint64_t const& offset,
26012 uint64_t const& overall_offset);
26013
26014protected:
26022#endif // SgAsmDwarfPackedType_OTHERS
26023#ifdef DOCUMENTATION
26024};
26025#endif // DOCUMENTATION
26026
26027
26029// SgAsmDwarfNamespace -- MACHINE GENERATED; DO NOT MODIFY --
26031
26032DECLARE_LEAF_CLASS(AsmDwarfNamespace);
26033IS_SERIALIZABLE(AsmDwarfNamespace);
26034
26035#ifndef DOCUMENTATION
26036AsmDwarfNamespace.useSmallHeader(true);
26037#endif // !DOCUMENTATION
26038
26039DECLARE_HEADERS(AsmDwarfNamespace);
26040#if defined(SgAsmDwarfNamespace_HEADERS) || defined(DOCUMENTATION)
26041#ifdef ROSE_SgAsmDwarfNamespace_IMPL
26042#include <SgAsmDwarfConstructList.h>
26043#endif
26044#endif // SgAsmDwarfNamespace_HEADERS
26045
26046#ifdef DOCUMENTATION
26048#endif // DOCUMENTATION
26049
26050#ifndef DOCUMENTATION
26051 AsmDwarfNamespace.setDataPrototype(
26052 "SgAsmDwarfConstructList*", "body", "= NULL",
26053 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26054#endif // !DOCUMENTATION
26055
26056 DECLARE_OTHERS(AsmDwarfNamespace);
26057#if defined(SgAsmDwarfNamespace_OTHERS) || defined(DOCUMENTATION)
26058
26059 //----------------------- Boost serialization for SgAsmDwarfNamespace -----------------------
26060#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26061private:
26062 friend class boost::serialization::access;
26063
26064 template<class S>
26065 void serialize(S &s, const unsigned /*version*/) {
26066 debugSerializationBegin("SgAsmDwarfNamespace");
26067 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26068 s & BOOST_SERIALIZATION_NVP(p_body);
26069 debugSerializationEnd("SgAsmDwarfNamespace");
26070 }
26071#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26072public:
26073public:
26074 SgAsmDwarfConstructList* const& get_body() const;
26075 void set_body(SgAsmDwarfConstructList* const&);
26076public:
26077 SgAsmDwarfConstructList* get_children() override;
26078public:
26081
26082public:
26085
26086public:
26088 SgAsmDwarfNamespace(int const& nesting_level,
26089 uint64_t const& offset,
26090 uint64_t const& overall_offset);
26091
26092protected:
26100#endif // SgAsmDwarfNamespace_OTHERS
26101#ifdef DOCUMENTATION
26102};
26103#endif // DOCUMENTATION
26104
26105
26107// SgAsmDwarfNamelistItem -- MACHINE GENERATED; DO NOT MODIFY --
26109
26110DECLARE_LEAF_CLASS(AsmDwarfNamelistItem);
26111IS_SERIALIZABLE(AsmDwarfNamelistItem);
26112
26113#ifndef DOCUMENTATION
26114AsmDwarfNamelistItem.useSmallHeader(true);
26115#endif // !DOCUMENTATION
26116
26117#ifdef DOCUMENTATION
26119#endif // DOCUMENTATION
26120
26121 DECLARE_OTHERS(AsmDwarfNamelistItem);
26122#if defined(SgAsmDwarfNamelistItem_OTHERS) || defined(DOCUMENTATION)
26123
26124 //----------------------- Boost serialization for SgAsmDwarfNamelistItem -----------------------
26125#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26126private:
26127 friend class boost::serialization::access;
26128
26129 template<class S>
26130 void serialize(S &s, const unsigned /*version*/) {
26131 debugSerializationBegin("SgAsmDwarfNamelistItem");
26132 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26133 debugSerializationEnd("SgAsmDwarfNamelistItem");
26134 }
26135#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26136
26137public:
26140
26141public:
26144
26145public:
26147 SgAsmDwarfNamelistItem(int const& nesting_level,
26148 uint64_t const& offset,
26149 uint64_t const& overall_offset);
26150
26151protected:
26159#endif // SgAsmDwarfNamelistItem_OTHERS
26160#ifdef DOCUMENTATION
26161};
26162#endif // DOCUMENTATION
26163
26164
26166// SgAsmDwarfNamelist -- MACHINE GENERATED; DO NOT MODIFY --
26168
26169DECLARE_LEAF_CLASS(AsmDwarfNamelist);
26170IS_SERIALIZABLE(AsmDwarfNamelist);
26171
26172#ifndef DOCUMENTATION
26173AsmDwarfNamelist.useSmallHeader(true);
26174#endif // !DOCUMENTATION
26175
26176#ifdef DOCUMENTATION
26178#endif // DOCUMENTATION
26179
26180 DECLARE_OTHERS(AsmDwarfNamelist);
26181#if defined(SgAsmDwarfNamelist_OTHERS) || defined(DOCUMENTATION)
26182
26183 //----------------------- Boost serialization for SgAsmDwarfNamelist -----------------------
26184#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26185private:
26186 friend class boost::serialization::access;
26187
26188 template<class S>
26189 void serialize(S &s, const unsigned /*version*/) {
26190 debugSerializationBegin("SgAsmDwarfNamelist");
26191 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26192 debugSerializationEnd("SgAsmDwarfNamelist");
26193 }
26194#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26195
26196public:
26199
26200public:
26203
26204public:
26206 SgAsmDwarfNamelist(int const& nesting_level,
26207 uint64_t const& offset,
26208 uint64_t const& overall_offset);
26209
26210protected:
26218#endif // SgAsmDwarfNamelist_OTHERS
26219#ifdef DOCUMENTATION
26220};
26221#endif // DOCUMENTATION
26222
26223
26225// SgAsmDwarfMutableType -- MACHINE GENERATED; DO NOT MODIFY --
26227
26228DECLARE_LEAF_CLASS(AsmDwarfMutableType);
26229IS_SERIALIZABLE(AsmDwarfMutableType);
26230
26231#ifndef DOCUMENTATION
26232AsmDwarfMutableType.useSmallHeader(true);
26233#endif // !DOCUMENTATION
26234
26235#ifdef DOCUMENTATION
26237#endif // DOCUMENTATION
26238
26239 DECLARE_OTHERS(AsmDwarfMutableType);
26240#if defined(SgAsmDwarfMutableType_OTHERS) || defined(DOCUMENTATION)
26241
26242 //----------------------- Boost serialization for SgAsmDwarfMutableType -----------------------
26243#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26244private:
26245 friend class boost::serialization::access;
26246
26247 template<class S>
26248 void serialize(S &s, const unsigned /*version*/) {
26249 debugSerializationBegin("SgAsmDwarfMutableType");
26250 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26251 debugSerializationEnd("SgAsmDwarfMutableType");
26252 }
26253#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26254
26255public:
26258
26259public:
26262
26263public:
26265 SgAsmDwarfMutableType(int const& nesting_level,
26266 uint64_t const& offset,
26267 uint64_t const& overall_offset);
26268
26269protected:
26277#endif // SgAsmDwarfMutableType_OTHERS
26278#ifdef DOCUMENTATION
26279};
26280#endif // DOCUMENTATION
26281
26282
26284// SgAsmDwarfModule -- MACHINE GENERATED; DO NOT MODIFY --
26286
26287DECLARE_LEAF_CLASS(AsmDwarfModule);
26288IS_SERIALIZABLE(AsmDwarfModule);
26289
26290#ifndef DOCUMENTATION
26291AsmDwarfModule.useSmallHeader(true);
26292#endif // !DOCUMENTATION
26293
26294#ifdef DOCUMENTATION
26296#endif // DOCUMENTATION
26297
26298 DECLARE_OTHERS(AsmDwarfModule);
26299#if defined(SgAsmDwarfModule_OTHERS) || defined(DOCUMENTATION)
26300
26301 //----------------------- Boost serialization for SgAsmDwarfModule -----------------------
26302#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26303private:
26304 friend class boost::serialization::access;
26305
26306 template<class S>
26307 void serialize(S &s, const unsigned /*version*/) {
26308 debugSerializationBegin("SgAsmDwarfModule");
26309 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26310 debugSerializationEnd("SgAsmDwarfModule");
26311 }
26312#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26313
26314public:
26317
26318public:
26321
26322public:
26324 SgAsmDwarfModule(int const& nesting_level,
26325 uint64_t const& offset,
26326 uint64_t const& overall_offset);
26327
26328protected:
26336#endif // SgAsmDwarfModule_OTHERS
26337#ifdef DOCUMENTATION
26338};
26339#endif // DOCUMENTATION
26340
26341
26343// SgAsmDwarfMember -- MACHINE GENERATED; DO NOT MODIFY --
26345
26346DECLARE_LEAF_CLASS(AsmDwarfMember);
26347IS_SERIALIZABLE(AsmDwarfMember);
26348
26349#ifndef DOCUMENTATION
26350AsmDwarfMember.useSmallHeader(true);
26351#endif // !DOCUMENTATION
26352
26353#ifdef DOCUMENTATION
26355#endif // DOCUMENTATION
26356
26357 DECLARE_OTHERS(AsmDwarfMember);
26358#if defined(SgAsmDwarfMember_OTHERS) || defined(DOCUMENTATION)
26359
26360 //----------------------- Boost serialization for SgAsmDwarfMember -----------------------
26361#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26362private:
26363 friend class boost::serialization::access;
26364
26365 template<class S>
26366 void serialize(S &s, const unsigned /*version*/) {
26367 debugSerializationBegin("SgAsmDwarfMember");
26368 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26369 debugSerializationEnd("SgAsmDwarfMember");
26370 }
26371#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26372
26373public:
26376
26377public:
26380
26381public:
26383 SgAsmDwarfMember(int const& nesting_level,
26384 uint64_t const& offset,
26385 uint64_t const& overall_offset);
26386
26387protected:
26395#endif // SgAsmDwarfMember_OTHERS
26396#ifdef DOCUMENTATION
26397};
26398#endif // DOCUMENTATION
26399
26400
26402// SgAsmDwarfMacroList -- MACHINE GENERATED; DO NOT MODIFY --
26404
26405DECLARE_LEAF_CLASS(AsmDwarfMacroList);
26406IS_SERIALIZABLE(AsmDwarfMacroList);
26407
26408#ifndef DOCUMENTATION
26409AsmDwarfMacroList.useSmallHeader(true);
26410#endif // !DOCUMENTATION
26411
26412DECLARE_HEADERS(AsmDwarfMacroList);
26413#if defined(SgAsmDwarfMacroList_HEADERS) || defined(DOCUMENTATION)
26414#include <sageContainer.h>
26415#endif // SgAsmDwarfMacroList_HEADERS
26416
26417#ifdef DOCUMENTATION
26419#endif // DOCUMENTATION
26420
26421#ifndef DOCUMENTATION
26422 AsmDwarfMacroList.setDataPrototype(
26423 "SgAsmDwarfMacroPtrList", "macro_list", "",
26424 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26425#endif // !DOCUMENTATION
26426
26427 DECLARE_OTHERS(AsmDwarfMacroList);
26428#if defined(SgAsmDwarfMacroList_OTHERS) || defined(DOCUMENTATION)
26429
26430 //----------------------- Boost serialization for SgAsmDwarfMacroList -----------------------
26431#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26432private:
26433 friend class boost::serialization::access;
26434
26435 template<class S>
26436 void serialize(S &s, const unsigned /*version*/) {
26437 debugSerializationBegin("SgAsmDwarfMacroList");
26438 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26439 s & BOOST_SERIALIZATION_NVP(p_macro_list);
26440 debugSerializationEnd("SgAsmDwarfMacroList");
26441 }
26442#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26443public:
26444public:
26445 SgAsmDwarfMacroPtrList const& get_macro_list() const;
26446 void set_macro_list(SgAsmDwarfMacroPtrList const&);
26447
26448public:
26451
26452public:
26455
26456protected:
26464#endif // SgAsmDwarfMacroList_OTHERS
26465#ifdef DOCUMENTATION
26466};
26467#endif // DOCUMENTATION
26468
26469
26471// SgAsmDwarfMacro -- MACHINE GENERATED; DO NOT MODIFY --
26473
26474DECLARE_LEAF_CLASS(AsmDwarfMacro);
26475IS_SERIALIZABLE(AsmDwarfMacro);
26476
26477#ifndef DOCUMENTATION
26478AsmDwarfMacro.useSmallHeader(true);
26479#endif // !DOCUMENTATION
26480
26481#ifdef DOCUMENTATION
26483#endif // DOCUMENTATION
26484
26485#ifndef DOCUMENTATION
26486 AsmDwarfMacro.setDataPrototype(
26487 "std::string", "macro_string", "",
26488 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26489#endif // !DOCUMENTATION
26490
26491 DECLARE_OTHERS(AsmDwarfMacro);
26492#if defined(SgAsmDwarfMacro_OTHERS) || defined(DOCUMENTATION)
26493
26494 //----------------------- Boost serialization for SgAsmDwarfMacro -----------------------
26495#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26496private:
26497 friend class boost::serialization::access;
26498
26499 template<class S>
26500 void serialize(S &s, const unsigned /*version*/) {
26501 debugSerializationBegin("SgAsmDwarfMacro");
26502 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26503 s & BOOST_SERIALIZATION_NVP(p_macro_string);
26504 debugSerializationEnd("SgAsmDwarfMacro");
26505 }
26506#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26507public:
26508public:
26509 std::string const& get_macro_string() const;
26510 void set_macro_string(std::string const&);
26511
26512public:
26515
26516public:
26519
26520protected:
26528#endif // SgAsmDwarfMacro_OTHERS
26529#ifdef DOCUMENTATION
26530};
26531#endif // DOCUMENTATION
26532
26533
26535// SgAsmDwarfLineList -- MACHINE GENERATED; DO NOT MODIFY --
26537
26538DECLARE_LEAF_CLASS(AsmDwarfLineList);
26539IS_SERIALIZABLE(AsmDwarfLineList);
26540
26541#ifndef DOCUMENTATION
26542AsmDwarfLineList.useSmallHeader(true);
26543#endif // !DOCUMENTATION
26544
26545DECLARE_HEADERS(AsmDwarfLineList);
26546#if defined(SgAsmDwarfLineList_HEADERS) || defined(DOCUMENTATION)
26547#include <sageContainer.h>
26548#endif // SgAsmDwarfLineList_HEADERS
26549
26550#ifdef DOCUMENTATION
26552#endif // DOCUMENTATION
26553
26554#ifndef DOCUMENTATION
26555 AsmDwarfLineList.setDataPrototype(
26556 "SgAsmDwarfLinePtrList", "line_list", "",
26557 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26558#endif // !DOCUMENTATION
26559
26560 DECLARE_OTHERS(AsmDwarfLineList);
26561#if defined(SgAsmDwarfLineList_OTHERS) || defined(DOCUMENTATION)
26562
26563 //----------------------- Boost serialization for SgAsmDwarfLineList -----------------------
26564#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26565private:
26566 friend class boost::serialization::access;
26567
26568 template<class S>
26569 void serialize(S &s, const unsigned /*version*/) {
26570 debugSerializationBegin("SgAsmDwarfLineList");
26571 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26572 s & BOOST_SERIALIZATION_NVP(p_line_list);
26573 debugSerializationEnd("SgAsmDwarfLineList");
26574 }
26575#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26576public:
26577public:
26578 SgAsmDwarfLinePtrList const& get_line_list() const;
26579 SgAsmDwarfLinePtrList& get_line_list();
26580 void set_line_list(SgAsmDwarfLinePtrList const&);
26581#if 0
26582 // I [DQ] am having trouble making these proper data members so just use function to return them, so that they are
26583 // computed dynamically.
26584 AsmDwarfLineList.setDataPrototype("SgInstructionAddressSourcePositionMapPtrList", "instructionToSourceMap", "",
26585 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
26586 AsmDwarfLineList.setDataPrototype("SgSourcePositionInstructionAddressMapPtrList", "sourceToInstructionMap", "",
26587 NO_CONSTRUCTOR_PARAMETER, BUILD_LIST_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
26588#endif
26589
26590public:
26591 // Once the maps are setup using a valid SgAsmDwarfCompilationUnit, NULL is an acceptable value.
26593 static DwarfInstructionSourceMapReturnType buildInstructionAddressSourcePositionMaps( SgAsmDwarfCompilationUnit* dwarf_cu = NULL );
26594
26596 void display( const std::string & label );
26597
26598 static std::pair<uint64_t,uint64_t> instructionRange();
26599 static std::pair<LineColumnFilePosition,LineColumnFilePosition> sourceCodeRange( int file_id );
26600
26601 static uint64_t sourceCodeToAddress ( FileIdLineColumnFilePosition sourcePosition );
26602 static FileIdLineColumnFilePosition addressToSourceCode ( uint64_t address );
26603public:
26606
26607public:
26610
26611protected:
26619#endif // SgAsmDwarfLineList_OTHERS
26620#ifdef DOCUMENTATION
26621};
26622#endif // DOCUMENTATION
26623
26624
26626// SgAsmDwarfLine -- MACHINE GENERATED; DO NOT MODIFY --
26628
26629DECLARE_LEAF_CLASS(AsmDwarfLine);
26630IS_SERIALIZABLE(AsmDwarfLine);
26631
26632#ifndef DOCUMENTATION
26633AsmDwarfLine.useSmallHeader(true);
26634#endif // !DOCUMENTATION
26635
26636#ifdef DOCUMENTATION
26638#endif // DOCUMENTATION
26639
26640#ifndef DOCUMENTATION
26641 AsmDwarfLine.setDataPrototype(
26642 "uint64_t", "address", "= 0",
26643 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26644#endif // !DOCUMENTATION
26645
26646#ifndef DOCUMENTATION
26647 AsmDwarfLine.setDataPrototype(
26648 "int", "file_id", "= -2",
26649 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26650#endif // !DOCUMENTATION
26651
26652#ifndef DOCUMENTATION
26653 AsmDwarfLine.setDataPrototype(
26654 "int", "line", "= 0",
26655 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26656#endif // !DOCUMENTATION
26657
26658#ifndef DOCUMENTATION
26659 AsmDwarfLine.setDataPrototype(
26660 "int", "column", "= 0",
26661 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
26662#endif // !DOCUMENTATION
26663
26664 DECLARE_OTHERS(AsmDwarfLine);
26665#if defined(SgAsmDwarfLine_OTHERS) || defined(DOCUMENTATION)
26666
26667 //----------------------- Boost serialization for SgAsmDwarfLine -----------------------
26668#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26669private:
26670 friend class boost::serialization::access;
26671
26672 template<class S>
26673 void serialize(S &s, const unsigned /*version*/) {
26674 debugSerializationBegin("SgAsmDwarfLine");
26675 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
26676 s & BOOST_SERIALIZATION_NVP(p_address);
26677 s & BOOST_SERIALIZATION_NVP(p_file_id);
26678 s & BOOST_SERIALIZATION_NVP(p_line);
26679 s & BOOST_SERIALIZATION_NVP(p_column);
26680 debugSerializationEnd("SgAsmDwarfLine");
26681 }
26682#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26683public:
26684public:
26685 uint64_t const& get_address() const;
26686 void set_address(uint64_t const&);
26687 // FIXME[Robb Matzke 2024-03-14]: Sg_File_Info::NULL_FILE_ID == -2, but since Sg_File_Info's definition is in the
26688 // huge Cxx_Grammar.h file we don't want to include it here.
26689public:
26690 int const& get_file_id() const;
26691 void set_file_id(int const&);
26692
26693public:
26694 int const& get_line() const;
26695 void set_line(int const&);
26696
26697public:
26698 int const& get_column() const;
26699 void set_column(int const&);
26700
26701public:
26704
26705public:
26708
26709public:
26711 SgAsmDwarfLine(uint64_t const& address,
26712 int const& file_id,
26713 int const& line,
26714 int const& column);
26715
26716protected:
26724#endif // SgAsmDwarfLine_OTHERS
26725#ifdef DOCUMENTATION
26726};
26727#endif // DOCUMENTATION
26728
26729
26731// SgAsmDwarfLexicalBlock -- MACHINE GENERATED; DO NOT MODIFY --
26733
26734DECLARE_LEAF_CLASS(AsmDwarfLexicalBlock);
26735IS_SERIALIZABLE(AsmDwarfLexicalBlock);
26736
26737#ifndef DOCUMENTATION
26738AsmDwarfLexicalBlock.useSmallHeader(true);
26739#endif // !DOCUMENTATION
26740
26741DECLARE_HEADERS(AsmDwarfLexicalBlock);
26742#if defined(SgAsmDwarfLexicalBlock_HEADERS) || defined(DOCUMENTATION)
26743#ifdef ROSE_SgAsmDwarfLexicalBlock_IMPL
26744#include <SgAsmDwarfConstructList.h>
26745#endif
26746#endif // SgAsmDwarfLexicalBlock_HEADERS
26747
26748#ifdef DOCUMENTATION
26750#endif // DOCUMENTATION
26751
26752#ifndef DOCUMENTATION
26753 AsmDwarfLexicalBlock.setDataPrototype(
26754 "SgAsmDwarfConstructList*", "body", "= nullptr",
26755 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26756#endif // !DOCUMENTATION
26757
26758 DECLARE_OTHERS(AsmDwarfLexicalBlock);
26759#if defined(SgAsmDwarfLexicalBlock_OTHERS) || defined(DOCUMENTATION)
26760
26761 //----------------------- Boost serialization for SgAsmDwarfLexicalBlock -----------------------
26762#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26763private:
26764 friend class boost::serialization::access;
26765
26766 template<class S>
26767 void serialize(S &s, const unsigned /*version*/) {
26768 debugSerializationBegin("SgAsmDwarfLexicalBlock");
26769 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26770 s & BOOST_SERIALIZATION_NVP(p_body);
26771 debugSerializationEnd("SgAsmDwarfLexicalBlock");
26772 }
26773#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26774public:
26775public:
26776 SgAsmDwarfConstructList* const& get_body() const;
26777 void set_body(SgAsmDwarfConstructList* const&);
26778public:
26779 SgAsmDwarfConstructList* get_children() override;
26780public:
26783
26784public:
26787
26788public:
26790 SgAsmDwarfLexicalBlock(int const& nesting_level,
26791 uint64_t const& offset,
26792 uint64_t const& overall_offset);
26793
26794protected:
26802#endif // SgAsmDwarfLexicalBlock_OTHERS
26803#ifdef DOCUMENTATION
26804};
26805#endif // DOCUMENTATION
26806
26807
26809// SgAsmDwarfLabel -- MACHINE GENERATED; DO NOT MODIFY --
26811
26812DECLARE_LEAF_CLASS(AsmDwarfLabel);
26813IS_SERIALIZABLE(AsmDwarfLabel);
26814
26815#ifndef DOCUMENTATION
26816AsmDwarfLabel.useSmallHeader(true);
26817#endif // !DOCUMENTATION
26818
26819#ifdef DOCUMENTATION
26821#endif // DOCUMENTATION
26822
26823 DECLARE_OTHERS(AsmDwarfLabel);
26824#if defined(SgAsmDwarfLabel_OTHERS) || defined(DOCUMENTATION)
26825
26826 //----------------------- Boost serialization for SgAsmDwarfLabel -----------------------
26827#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26828private:
26829 friend class boost::serialization::access;
26830
26831 template<class S>
26832 void serialize(S &s, const unsigned /*version*/) {
26833 debugSerializationBegin("SgAsmDwarfLabel");
26834 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26835 debugSerializationEnd("SgAsmDwarfLabel");
26836 }
26837#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26838
26839public:
26842
26843public:
26846
26847public:
26849 SgAsmDwarfLabel(int const& nesting_level,
26850 uint64_t const& offset,
26851 uint64_t const& overall_offset);
26852
26853protected:
26861#endif // SgAsmDwarfLabel_OTHERS
26862#ifdef DOCUMENTATION
26863};
26864#endif // DOCUMENTATION
26865
26866
26868// SgAsmDwarfInterfaceType -- MACHINE GENERATED; DO NOT MODIFY --
26870
26871DECLARE_LEAF_CLASS(AsmDwarfInterfaceType);
26872IS_SERIALIZABLE(AsmDwarfInterfaceType);
26873
26874#ifndef DOCUMENTATION
26875AsmDwarfInterfaceType.useSmallHeader(true);
26876#endif // !DOCUMENTATION
26877
26878#ifdef DOCUMENTATION
26880#endif // DOCUMENTATION
26881
26882 DECLARE_OTHERS(AsmDwarfInterfaceType);
26883#if defined(SgAsmDwarfInterfaceType_OTHERS) || defined(DOCUMENTATION)
26884
26885 //----------------------- Boost serialization for SgAsmDwarfInterfaceType -----------------------
26886#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26887private:
26888 friend class boost::serialization::access;
26889
26890 template<class S>
26891 void serialize(S &s, const unsigned /*version*/) {
26892 debugSerializationBegin("SgAsmDwarfInterfaceType");
26893 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26894 debugSerializationEnd("SgAsmDwarfInterfaceType");
26895 }
26896#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26897
26898public:
26901
26902public:
26905
26906public:
26908 SgAsmDwarfInterfaceType(int const& nesting_level,
26909 uint64_t const& offset,
26910 uint64_t const& overall_offset);
26911
26912protected:
26920#endif // SgAsmDwarfInterfaceType_OTHERS
26921#ifdef DOCUMENTATION
26922};
26923#endif // DOCUMENTATION
26924
26925
26927// SgAsmDwarfInlinedSubroutine -- MACHINE GENERATED; DO NOT MODIFY --
26929
26930DECLARE_LEAF_CLASS(AsmDwarfInlinedSubroutine);
26931IS_SERIALIZABLE(AsmDwarfInlinedSubroutine);
26932
26933#ifndef DOCUMENTATION
26934AsmDwarfInlinedSubroutine.useSmallHeader(true);
26935#endif // !DOCUMENTATION
26936
26937DECLARE_HEADERS(AsmDwarfInlinedSubroutine);
26938#if defined(SgAsmDwarfInlinedSubroutine_HEADERS) || defined(DOCUMENTATION)
26939#ifdef ROSE_SgAsmDwarfInlinedSubroutine_IMPL
26940#include <SgAsmDwarfConstructList.h>
26941#endif
26942#endif // SgAsmDwarfInlinedSubroutine_HEADERS
26943
26944#ifdef DOCUMENTATION
26946#endif // DOCUMENTATION
26947
26948#ifndef DOCUMENTATION
26949 AsmDwarfInlinedSubroutine.setDataPrototype(
26950 "SgAsmDwarfConstructList*", "body", "= nullptr",
26951 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
26952#endif // !DOCUMENTATION
26953
26954 DECLARE_OTHERS(AsmDwarfInlinedSubroutine);
26955#if defined(SgAsmDwarfInlinedSubroutine_OTHERS) || defined(DOCUMENTATION)
26956
26957 //----------------------- Boost serialization for SgAsmDwarfInlinedSubroutine -----------------------
26958#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
26959private:
26960 friend class boost::serialization::access;
26961
26962 template<class S>
26963 void serialize(S &s, const unsigned /*version*/) {
26964 debugSerializationBegin("SgAsmDwarfInlinedSubroutine");
26965 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
26966 s & BOOST_SERIALIZATION_NVP(p_body);
26967 debugSerializationEnd("SgAsmDwarfInlinedSubroutine");
26968 }
26969#endif // ROSE_ENABLE_BOOST_SERIALIZATION
26970public:
26971public:
26972 SgAsmDwarfConstructList* const& get_body() const;
26973 void set_body(SgAsmDwarfConstructList* const&);
26974public:
26975 SgAsmDwarfConstructList* get_children() override;
26976public:
26979
26980public:
26983
26984public:
26986 SgAsmDwarfInlinedSubroutine(int const& nesting_level,
26987 uint64_t const& offset,
26988 uint64_t const& overall_offset);
26989
26990protected:
26998#endif // SgAsmDwarfInlinedSubroutine_OTHERS
26999#ifdef DOCUMENTATION
27000};
27001#endif // DOCUMENTATION
27002
27003
27005// SgAsmDwarfInheritance -- MACHINE GENERATED; DO NOT MODIFY --
27007
27008DECLARE_LEAF_CLASS(AsmDwarfInheritance);
27009IS_SERIALIZABLE(AsmDwarfInheritance);
27010
27011#ifndef DOCUMENTATION
27012AsmDwarfInheritance.useSmallHeader(true);
27013#endif // !DOCUMENTATION
27014
27015#ifdef DOCUMENTATION
27017#endif // DOCUMENTATION
27018
27019 DECLARE_OTHERS(AsmDwarfInheritance);
27020#if defined(SgAsmDwarfInheritance_OTHERS) || defined(DOCUMENTATION)
27021
27022 //----------------------- Boost serialization for SgAsmDwarfInheritance -----------------------
27023#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27024private:
27025 friend class boost::serialization::access;
27026
27027 template<class S>
27028 void serialize(S &s, const unsigned /*version*/) {
27029 debugSerializationBegin("SgAsmDwarfInheritance");
27030 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27031 debugSerializationEnd("SgAsmDwarfInheritance");
27032 }
27033#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27034
27035public:
27038
27039public:
27042
27043public:
27045 SgAsmDwarfInheritance(int const& nesting_level,
27046 uint64_t const& offset,
27047 uint64_t const& overall_offset);
27048
27049protected:
27057#endif // SgAsmDwarfInheritance_OTHERS
27058#ifdef DOCUMENTATION
27059};
27060#endif // DOCUMENTATION
27061
27062
27064// SgAsmDwarfImportedUnit -- MACHINE GENERATED; DO NOT MODIFY --
27066
27067DECLARE_LEAF_CLASS(AsmDwarfImportedUnit);
27068IS_SERIALIZABLE(AsmDwarfImportedUnit);
27069
27070#ifndef DOCUMENTATION
27071AsmDwarfImportedUnit.useSmallHeader(true);
27072#endif // !DOCUMENTATION
27073
27074#ifdef DOCUMENTATION
27076#endif // DOCUMENTATION
27077
27078 DECLARE_OTHERS(AsmDwarfImportedUnit);
27079#if defined(SgAsmDwarfImportedUnit_OTHERS) || defined(DOCUMENTATION)
27080
27081 //----------------------- Boost serialization for SgAsmDwarfImportedUnit -----------------------
27082#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27083private:
27084 friend class boost::serialization::access;
27085
27086 template<class S>
27087 void serialize(S &s, const unsigned /*version*/) {
27088 debugSerializationBegin("SgAsmDwarfImportedUnit");
27089 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27090 debugSerializationEnd("SgAsmDwarfImportedUnit");
27091 }
27092#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27093
27094public:
27097
27098public:
27101
27102public:
27104 SgAsmDwarfImportedUnit(int const& nesting_level,
27105 uint64_t const& offset,
27106 uint64_t const& overall_offset);
27107
27108protected:
27116#endif // SgAsmDwarfImportedUnit_OTHERS
27117#ifdef DOCUMENTATION
27118};
27119#endif // DOCUMENTATION
27120
27121
27123// SgAsmDwarfImportedModule -- MACHINE GENERATED; DO NOT MODIFY --
27125
27126DECLARE_LEAF_CLASS(AsmDwarfImportedModule);
27127IS_SERIALIZABLE(AsmDwarfImportedModule);
27128
27129#ifndef DOCUMENTATION
27130AsmDwarfImportedModule.useSmallHeader(true);
27131#endif // !DOCUMENTATION
27132
27133#ifdef DOCUMENTATION
27135#endif // DOCUMENTATION
27136
27137 DECLARE_OTHERS(AsmDwarfImportedModule);
27138#if defined(SgAsmDwarfImportedModule_OTHERS) || defined(DOCUMENTATION)
27139
27140 //----------------------- Boost serialization for SgAsmDwarfImportedModule -----------------------
27141#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27142private:
27143 friend class boost::serialization::access;
27144
27145 template<class S>
27146 void serialize(S &s, const unsigned /*version*/) {
27147 debugSerializationBegin("SgAsmDwarfImportedModule");
27148 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27149 debugSerializationEnd("SgAsmDwarfImportedModule");
27150 }
27151#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27152
27153public:
27156
27157public:
27160
27161public:
27163 SgAsmDwarfImportedModule(int const& nesting_level,
27164 uint64_t const& offset,
27165 uint64_t const& overall_offset);
27166
27167protected:
27175#endif // SgAsmDwarfImportedModule_OTHERS
27176#ifdef DOCUMENTATION
27177};
27178#endif // DOCUMENTATION
27179
27180
27182// SgAsmDwarfImportedDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
27184
27185DECLARE_LEAF_CLASS(AsmDwarfImportedDeclaration);
27186IS_SERIALIZABLE(AsmDwarfImportedDeclaration);
27187
27188#ifndef DOCUMENTATION
27189AsmDwarfImportedDeclaration.useSmallHeader(true);
27190#endif // !DOCUMENTATION
27191
27192#ifdef DOCUMENTATION
27194#endif // DOCUMENTATION
27195
27196 DECLARE_OTHERS(AsmDwarfImportedDeclaration);
27197#if defined(SgAsmDwarfImportedDeclaration_OTHERS) || defined(DOCUMENTATION)
27198
27199 //----------------------- Boost serialization for SgAsmDwarfImportedDeclaration -----------------------
27200#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27201private:
27202 friend class boost::serialization::access;
27203
27204 template<class S>
27205 void serialize(S &s, const unsigned /*version*/) {
27206 debugSerializationBegin("SgAsmDwarfImportedDeclaration");
27207 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27208 debugSerializationEnd("SgAsmDwarfImportedDeclaration");
27209 }
27210#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27211
27212public:
27215
27216public:
27219
27220public:
27222 SgAsmDwarfImportedDeclaration(int const& nesting_level,
27223 uint64_t const& offset,
27224 uint64_t const& overall_offset);
27225
27226protected:
27234#endif // SgAsmDwarfImportedDeclaration_OTHERS
27235#ifdef DOCUMENTATION
27236};
27237#endif // DOCUMENTATION
27238
27239
27241// SgAsmDwarfFunctionTemplate -- MACHINE GENERATED; DO NOT MODIFY --
27243
27244DECLARE_LEAF_CLASS(AsmDwarfFunctionTemplate);
27245IS_SERIALIZABLE(AsmDwarfFunctionTemplate);
27246
27247#ifndef DOCUMENTATION
27248AsmDwarfFunctionTemplate.useSmallHeader(true);
27249#endif // !DOCUMENTATION
27250
27251#ifdef DOCUMENTATION
27253#endif // DOCUMENTATION
27254
27255 DECLARE_OTHERS(AsmDwarfFunctionTemplate);
27256#if defined(SgAsmDwarfFunctionTemplate_OTHERS) || defined(DOCUMENTATION)
27257
27258 //----------------------- Boost serialization for SgAsmDwarfFunctionTemplate -----------------------
27259#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27260private:
27261 friend class boost::serialization::access;
27262
27263 template<class S>
27264 void serialize(S &s, const unsigned /*version*/) {
27265 debugSerializationBegin("SgAsmDwarfFunctionTemplate");
27266 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27267 debugSerializationEnd("SgAsmDwarfFunctionTemplate");
27268 }
27269#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27270
27271public:
27274
27275public:
27278
27279public:
27281 SgAsmDwarfFunctionTemplate(int const& nesting_level,
27282 uint64_t const& offset,
27283 uint64_t const& overall_offset);
27284
27285protected:
27293#endif // SgAsmDwarfFunctionTemplate_OTHERS
27294#ifdef DOCUMENTATION
27295};
27296#endif // DOCUMENTATION
27297
27298
27300// SgAsmDwarfFriend -- MACHINE GENERATED; DO NOT MODIFY --
27302
27303DECLARE_LEAF_CLASS(AsmDwarfFriend);
27304IS_SERIALIZABLE(AsmDwarfFriend);
27305
27306#ifndef DOCUMENTATION
27307AsmDwarfFriend.useSmallHeader(true);
27308#endif // !DOCUMENTATION
27309
27310#ifdef DOCUMENTATION
27312#endif // DOCUMENTATION
27313
27314 DECLARE_OTHERS(AsmDwarfFriend);
27315#if defined(SgAsmDwarfFriend_OTHERS) || defined(DOCUMENTATION)
27316
27317 //----------------------- Boost serialization for SgAsmDwarfFriend -----------------------
27318#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27319private:
27320 friend class boost::serialization::access;
27321
27322 template<class S>
27323 void serialize(S &s, const unsigned /*version*/) {
27324 debugSerializationBegin("SgAsmDwarfFriend");
27325 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27326 debugSerializationEnd("SgAsmDwarfFriend");
27327 }
27328#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27329
27330public:
27333
27334public:
27337
27338public:
27340 SgAsmDwarfFriend(int const& nesting_level,
27341 uint64_t const& offset,
27342 uint64_t const& overall_offset);
27343
27344protected:
27352#endif // SgAsmDwarfFriend_OTHERS
27353#ifdef DOCUMENTATION
27354};
27355#endif // DOCUMENTATION
27356
27357
27359// SgAsmDwarfFormatLabel -- MACHINE GENERATED; DO NOT MODIFY --
27361
27362DECLARE_LEAF_CLASS(AsmDwarfFormatLabel);
27363IS_SERIALIZABLE(AsmDwarfFormatLabel);
27364
27365#ifndef DOCUMENTATION
27366AsmDwarfFormatLabel.useSmallHeader(true);
27367#endif // !DOCUMENTATION
27368
27369#ifdef DOCUMENTATION
27371#endif // DOCUMENTATION
27372
27373 DECLARE_OTHERS(AsmDwarfFormatLabel);
27374#if defined(SgAsmDwarfFormatLabel_OTHERS) || defined(DOCUMENTATION)
27375
27376 //----------------------- Boost serialization for SgAsmDwarfFormatLabel -----------------------
27377#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27378private:
27379 friend class boost::serialization::access;
27380
27381 template<class S>
27382 void serialize(S &s, const unsigned /*version*/) {
27383 debugSerializationBegin("SgAsmDwarfFormatLabel");
27384 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27385 debugSerializationEnd("SgAsmDwarfFormatLabel");
27386 }
27387#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27388
27389public:
27392
27393public:
27396
27397public:
27399 SgAsmDwarfFormatLabel(int const& nesting_level,
27400 uint64_t const& offset,
27401 uint64_t const& overall_offset);
27402
27403protected:
27411#endif // SgAsmDwarfFormatLabel_OTHERS
27412#ifdef DOCUMENTATION
27413};
27414#endif // DOCUMENTATION
27415
27416
27418// SgAsmDwarfFormalParameter -- MACHINE GENERATED; DO NOT MODIFY --
27420
27421DECLARE_LEAF_CLASS(AsmDwarfFormalParameter);
27422IS_SERIALIZABLE(AsmDwarfFormalParameter);
27423
27424#ifndef DOCUMENTATION
27425AsmDwarfFormalParameter.useSmallHeader(true);
27426#endif // !DOCUMENTATION
27427
27428#ifdef DOCUMENTATION
27430#endif // DOCUMENTATION
27431
27432 DECLARE_OTHERS(AsmDwarfFormalParameter);
27433#if defined(SgAsmDwarfFormalParameter_OTHERS) || defined(DOCUMENTATION)
27434
27435 //----------------------- Boost serialization for SgAsmDwarfFormalParameter -----------------------
27436#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27437private:
27438 friend class boost::serialization::access;
27439
27440 template<class S>
27441 void serialize(S &s, const unsigned /*version*/) {
27442 debugSerializationBegin("SgAsmDwarfFormalParameter");
27443 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27444 debugSerializationEnd("SgAsmDwarfFormalParameter");
27445 }
27446#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27447
27448public:
27451
27452public:
27455
27456public:
27458 SgAsmDwarfFormalParameter(int const& nesting_level,
27459 uint64_t const& offset,
27460 uint64_t const& overall_offset);
27461
27462protected:
27470#endif // SgAsmDwarfFormalParameter_OTHERS
27471#ifdef DOCUMENTATION
27472};
27473#endif // DOCUMENTATION
27474
27475
27477// SgAsmDwarfFileType -- MACHINE GENERATED; DO NOT MODIFY --
27479
27480DECLARE_LEAF_CLASS(AsmDwarfFileType);
27481IS_SERIALIZABLE(AsmDwarfFileType);
27482
27483#ifndef DOCUMENTATION
27484AsmDwarfFileType.useSmallHeader(true);
27485#endif // !DOCUMENTATION
27486
27487#ifdef DOCUMENTATION
27489#endif // DOCUMENTATION
27490
27491 DECLARE_OTHERS(AsmDwarfFileType);
27492#if defined(SgAsmDwarfFileType_OTHERS) || defined(DOCUMENTATION)
27493
27494 //----------------------- Boost serialization for SgAsmDwarfFileType -----------------------
27495#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27496private:
27497 friend class boost::serialization::access;
27498
27499 template<class S>
27500 void serialize(S &s, const unsigned /*version*/) {
27501 debugSerializationBegin("SgAsmDwarfFileType");
27502 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27503 debugSerializationEnd("SgAsmDwarfFileType");
27504 }
27505#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27506
27507public:
27510
27511public:
27514
27515public:
27517 SgAsmDwarfFileType(int const& nesting_level,
27518 uint64_t const& offset,
27519 uint64_t const& overall_offset);
27520
27521protected:
27529#endif // SgAsmDwarfFileType_OTHERS
27530#ifdef DOCUMENTATION
27531};
27532#endif // DOCUMENTATION
27533
27534
27536// SgAsmDwarfEnumerator -- MACHINE GENERATED; DO NOT MODIFY --
27538
27539DECLARE_LEAF_CLASS(AsmDwarfEnumerator);
27540IS_SERIALIZABLE(AsmDwarfEnumerator);
27541
27542#ifndef DOCUMENTATION
27543AsmDwarfEnumerator.useSmallHeader(true);
27544#endif // !DOCUMENTATION
27545
27546#ifdef DOCUMENTATION
27548#endif // DOCUMENTATION
27549
27550 DECLARE_OTHERS(AsmDwarfEnumerator);
27551#if defined(SgAsmDwarfEnumerator_OTHERS) || defined(DOCUMENTATION)
27552
27553 //----------------------- Boost serialization for SgAsmDwarfEnumerator -----------------------
27554#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27555private:
27556 friend class boost::serialization::access;
27557
27558 template<class S>
27559 void serialize(S &s, const unsigned /*version*/) {
27560 debugSerializationBegin("SgAsmDwarfEnumerator");
27561 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27562 debugSerializationEnd("SgAsmDwarfEnumerator");
27563 }
27564#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27565
27566public:
27569
27570public:
27573
27574public:
27576 SgAsmDwarfEnumerator(int const& nesting_level,
27577 uint64_t const& offset,
27578 uint64_t const& overall_offset);
27579
27580protected:
27588#endif // SgAsmDwarfEnumerator_OTHERS
27589#ifdef DOCUMENTATION
27590};
27591#endif // DOCUMENTATION
27592
27593
27595// SgAsmDwarfEnumerationType -- MACHINE GENERATED; DO NOT MODIFY --
27597
27598DECLARE_LEAF_CLASS(AsmDwarfEnumerationType);
27599IS_SERIALIZABLE(AsmDwarfEnumerationType);
27600
27601#ifndef DOCUMENTATION
27602AsmDwarfEnumerationType.useSmallHeader(true);
27603#endif // !DOCUMENTATION
27604
27605DECLARE_HEADERS(AsmDwarfEnumerationType);
27606#if defined(SgAsmDwarfEnumerationType_HEADERS) || defined(DOCUMENTATION)
27607#ifdef ROSE_SgAsmDwarfEnumerationType_IMPL
27608#include <SgAsmDwarfConstructList.h>
27609#endif
27610#endif // SgAsmDwarfEnumerationType_HEADERS
27611
27612#ifdef DOCUMENTATION
27614#endif // DOCUMENTATION
27615
27616#ifndef DOCUMENTATION
27617 AsmDwarfEnumerationType.setDataPrototype(
27618 "SgAsmDwarfConstructList*", "body", "= NULL",
27619 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27620#endif // !DOCUMENTATION
27621
27622 DECLARE_OTHERS(AsmDwarfEnumerationType);
27623#if defined(SgAsmDwarfEnumerationType_OTHERS) || defined(DOCUMENTATION)
27624
27625 //----------------------- Boost serialization for SgAsmDwarfEnumerationType -----------------------
27626#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27627private:
27628 friend class boost::serialization::access;
27629
27630 template<class S>
27631 void serialize(S &s, const unsigned /*version*/) {
27632 debugSerializationBegin("SgAsmDwarfEnumerationType");
27633 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27634 s & BOOST_SERIALIZATION_NVP(p_body);
27635 debugSerializationEnd("SgAsmDwarfEnumerationType");
27636 }
27637#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27638public:
27639public:
27640 SgAsmDwarfConstructList* const& get_body() const;
27641 void set_body(SgAsmDwarfConstructList* const&);
27642public:
27643 SgAsmDwarfConstructList* get_children() override;
27644public:
27647
27648public:
27651
27652public:
27654 SgAsmDwarfEnumerationType(int const& nesting_level,
27655 uint64_t const& offset,
27656 uint64_t const& overall_offset);
27657
27658protected:
27666#endif // SgAsmDwarfEnumerationType_OTHERS
27667#ifdef DOCUMENTATION
27668};
27669#endif // DOCUMENTATION
27670
27671
27673// SgAsmDwarfEntryPoint -- MACHINE GENERATED; DO NOT MODIFY --
27675
27676DECLARE_LEAF_CLASS(AsmDwarfEntryPoint);
27677IS_SERIALIZABLE(AsmDwarfEntryPoint);
27678
27679#ifndef DOCUMENTATION
27680AsmDwarfEntryPoint.useSmallHeader(true);
27681#endif // !DOCUMENTATION
27682
27683#ifdef DOCUMENTATION
27685#endif // DOCUMENTATION
27686
27687 DECLARE_OTHERS(AsmDwarfEntryPoint);
27688#if defined(SgAsmDwarfEntryPoint_OTHERS) || defined(DOCUMENTATION)
27689
27690 //----------------------- Boost serialization for SgAsmDwarfEntryPoint -----------------------
27691#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27692private:
27693 friend class boost::serialization::access;
27694
27695 template<class S>
27696 void serialize(S &s, const unsigned /*version*/) {
27697 debugSerializationBegin("SgAsmDwarfEntryPoint");
27698 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27699 debugSerializationEnd("SgAsmDwarfEntryPoint");
27700 }
27701#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27702
27703public:
27706
27707public:
27710
27711public:
27713 SgAsmDwarfEntryPoint(int const& nesting_level,
27714 uint64_t const& offset,
27715 uint64_t const& overall_offset);
27716
27717protected:
27725#endif // SgAsmDwarfEntryPoint_OTHERS
27726#ifdef DOCUMENTATION
27727};
27728#endif // DOCUMENTATION
27729
27730
27732// SgAsmDwarfDwarfProcedure -- MACHINE GENERATED; DO NOT MODIFY --
27734
27735DECLARE_LEAF_CLASS(AsmDwarfDwarfProcedure);
27736IS_SERIALIZABLE(AsmDwarfDwarfProcedure);
27737
27738#ifndef DOCUMENTATION
27739AsmDwarfDwarfProcedure.useSmallHeader(true);
27740#endif // !DOCUMENTATION
27741
27742#ifdef DOCUMENTATION
27744#endif // DOCUMENTATION
27745
27746 DECLARE_OTHERS(AsmDwarfDwarfProcedure);
27747#if defined(SgAsmDwarfDwarfProcedure_OTHERS) || defined(DOCUMENTATION)
27748
27749 //----------------------- Boost serialization for SgAsmDwarfDwarfProcedure -----------------------
27750#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27751private:
27752 friend class boost::serialization::access;
27753
27754 template<class S>
27755 void serialize(S &s, const unsigned /*version*/) {
27756 debugSerializationBegin("SgAsmDwarfDwarfProcedure");
27757 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27758 debugSerializationEnd("SgAsmDwarfDwarfProcedure");
27759 }
27760#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27761
27762public:
27765
27766public:
27769
27770public:
27772 SgAsmDwarfDwarfProcedure(int const& nesting_level,
27773 uint64_t const& offset,
27774 uint64_t const& overall_offset);
27775
27776protected:
27784#endif // SgAsmDwarfDwarfProcedure_OTHERS
27785#ifdef DOCUMENTATION
27786};
27787#endif // DOCUMENTATION
27788
27789
27791// SgAsmDwarfConstType -- MACHINE GENERATED; DO NOT MODIFY --
27793
27794DECLARE_LEAF_CLASS(AsmDwarfConstType);
27795IS_SERIALIZABLE(AsmDwarfConstType);
27796
27797#ifndef DOCUMENTATION
27798AsmDwarfConstType.useSmallHeader(true);
27799#endif // !DOCUMENTATION
27800
27801#ifdef DOCUMENTATION
27803#endif // DOCUMENTATION
27804
27805 DECLARE_OTHERS(AsmDwarfConstType);
27806#if defined(SgAsmDwarfConstType_OTHERS) || defined(DOCUMENTATION)
27807
27808 //----------------------- Boost serialization for SgAsmDwarfConstType -----------------------
27809#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27810private:
27811 friend class boost::serialization::access;
27812
27813 template<class S>
27814 void serialize(S &s, const unsigned /*version*/) {
27815 debugSerializationBegin("SgAsmDwarfConstType");
27816 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27817 debugSerializationEnd("SgAsmDwarfConstType");
27818 }
27819#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27820
27821public:
27824
27825public:
27828
27829public:
27831 SgAsmDwarfConstType(int const& nesting_level,
27832 uint64_t const& offset,
27833 uint64_t const& overall_offset);
27834
27835protected:
27843#endif // SgAsmDwarfConstType_OTHERS
27844#ifdef DOCUMENTATION
27845};
27846#endif // DOCUMENTATION
27847
27848
27850// SgAsmDwarfConstructList -- MACHINE GENERATED; DO NOT MODIFY --
27852
27853DECLARE_LEAF_CLASS(AsmDwarfConstructList);
27854IS_SERIALIZABLE(AsmDwarfConstructList);
27855
27856#ifndef DOCUMENTATION
27857AsmDwarfConstructList.useSmallHeader(true);
27858#endif // !DOCUMENTATION
27859
27860DECLARE_HEADERS(AsmDwarfConstructList);
27861#if defined(SgAsmDwarfConstructList_HEADERS) || defined(DOCUMENTATION)
27862#include <sageContainer.h>
27863#endif // SgAsmDwarfConstructList_HEADERS
27864
27865#ifdef DOCUMENTATION
27867#endif // DOCUMENTATION
27868
27869#ifndef DOCUMENTATION
27870 AsmDwarfConstructList.setDataPrototype(
27871 "SgAsmDwarfConstructPtrList", "list", "",
27872 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
27873#endif // !DOCUMENTATION
27874
27875 DECLARE_OTHERS(AsmDwarfConstructList);
27876#if defined(SgAsmDwarfConstructList_OTHERS) || defined(DOCUMENTATION)
27877
27878 //----------------------- Boost serialization for SgAsmDwarfConstructList -----------------------
27879#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27880private:
27881 friend class boost::serialization::access;
27882
27883 template<class S>
27884 void serialize(S &s, const unsigned /*version*/) {
27885 debugSerializationBegin("SgAsmDwarfConstructList");
27886 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
27887 s & BOOST_SERIALIZATION_NVP(p_list);
27888 debugSerializationEnd("SgAsmDwarfConstructList");
27889 }
27890#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27891public:
27892public:
27893 SgAsmDwarfConstructPtrList const& get_list() const;
27894 SgAsmDwarfConstructPtrList& get_list();
27895 void set_list(SgAsmDwarfConstructPtrList const&);
27896
27897public:
27900
27901public:
27904
27905protected:
27913#endif // SgAsmDwarfConstructList_OTHERS
27914#ifdef DOCUMENTATION
27915};
27916#endif // DOCUMENTATION
27917
27918
27920// SgAsmDwarfConstant -- MACHINE GENERATED; DO NOT MODIFY --
27922
27923DECLARE_LEAF_CLASS(AsmDwarfConstant);
27924IS_SERIALIZABLE(AsmDwarfConstant);
27925
27926#ifndef DOCUMENTATION
27927AsmDwarfConstant.useSmallHeader(true);
27928#endif // !DOCUMENTATION
27929
27930#ifdef DOCUMENTATION
27932#endif // DOCUMENTATION
27933
27934 DECLARE_OTHERS(AsmDwarfConstant);
27935#if defined(SgAsmDwarfConstant_OTHERS) || defined(DOCUMENTATION)
27936
27937 //----------------------- Boost serialization for SgAsmDwarfConstant -----------------------
27938#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27939private:
27940 friend class boost::serialization::access;
27941
27942 template<class S>
27943 void serialize(S &s, const unsigned /*version*/) {
27944 debugSerializationBegin("SgAsmDwarfConstant");
27945 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
27946 debugSerializationEnd("SgAsmDwarfConstant");
27947 }
27948#endif // ROSE_ENABLE_BOOST_SERIALIZATION
27949
27950public:
27953
27954public:
27957
27958public:
27960 SgAsmDwarfConstant(int const& nesting_level,
27961 uint64_t const& offset,
27962 uint64_t const& overall_offset);
27963
27964protected:
27972#endif // SgAsmDwarfConstant_OTHERS
27973#ifdef DOCUMENTATION
27974};
27975#endif // DOCUMENTATION
27976
27977
27979// SgAsmDwarfCondition -- MACHINE GENERATED; DO NOT MODIFY --
27981
27982DECLARE_LEAF_CLASS(AsmDwarfCondition);
27983IS_SERIALIZABLE(AsmDwarfCondition);
27984
27985#ifndef DOCUMENTATION
27986AsmDwarfCondition.useSmallHeader(true);
27987#endif // !DOCUMENTATION
27988
27989#ifdef DOCUMENTATION
27991#endif // DOCUMENTATION
27992
27993 DECLARE_OTHERS(AsmDwarfCondition);
27994#if defined(SgAsmDwarfCondition_OTHERS) || defined(DOCUMENTATION)
27995
27996 //----------------------- Boost serialization for SgAsmDwarfCondition -----------------------
27997#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
27998private:
27999 friend class boost::serialization::access;
28000
28001 template<class S>
28002 void serialize(S &s, const unsigned /*version*/) {
28003 debugSerializationBegin("SgAsmDwarfCondition");
28004 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28005 debugSerializationEnd("SgAsmDwarfCondition");
28006 }
28007#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28008
28009public:
28012
28013public:
28016
28017public:
28019 SgAsmDwarfCondition(int const& nesting_level,
28020 uint64_t const& offset,
28021 uint64_t const& overall_offset);
28022
28023protected:
28031#endif // SgAsmDwarfCondition_OTHERS
28032#ifdef DOCUMENTATION
28033};
28034#endif // DOCUMENTATION
28035
28036
28038// SgAsmDwarfCompilationUnitList -- MACHINE GENERATED; DO NOT MODIFY --
28040
28041DECLARE_LEAF_CLASS(AsmDwarfCompilationUnitList);
28042IS_SERIALIZABLE(AsmDwarfCompilationUnitList);
28043
28044#ifndef DOCUMENTATION
28045AsmDwarfCompilationUnitList.useSmallHeader(true);
28046#endif // !DOCUMENTATION
28047
28048DECLARE_HEADERS(AsmDwarfCompilationUnitList);
28049#if defined(SgAsmDwarfCompilationUnitList_HEADERS) || defined(DOCUMENTATION)
28050#include <sageContainer.h>
28051#endif // SgAsmDwarfCompilationUnitList_HEADERS
28052
28053#ifdef DOCUMENTATION
28055#endif // DOCUMENTATION
28056
28057#ifndef DOCUMENTATION
28058 AsmDwarfCompilationUnitList.setDataPrototype(
28059 "SgAsmDwarfCompilationUnitPtrList", "cu_list", "",
28060 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28061#endif // !DOCUMENTATION
28062
28063 DECLARE_OTHERS(AsmDwarfCompilationUnitList);
28064#if defined(SgAsmDwarfCompilationUnitList_OTHERS) || defined(DOCUMENTATION)
28065
28066 //----------------------- Boost serialization for SgAsmDwarfCompilationUnitList -----------------------
28067#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28068private:
28069 friend class boost::serialization::access;
28070
28071 template<class S>
28072 void serialize(S &s, const unsigned /*version*/) {
28073 debugSerializationBegin("SgAsmDwarfCompilationUnitList");
28074 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
28075 s & BOOST_SERIALIZATION_NVP(p_cu_list);
28076 debugSerializationEnd("SgAsmDwarfCompilationUnitList");
28077 }
28078#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28079public:
28080public:
28081 SgAsmDwarfCompilationUnitPtrList const& get_cu_list() const;
28082 SgAsmDwarfCompilationUnitPtrList& get_cu_list();
28083 void set_cu_list(SgAsmDwarfCompilationUnitPtrList const&);
28084
28085public:
28088
28089public:
28092
28093protected:
28101#endif // SgAsmDwarfCompilationUnitList_OTHERS
28102#ifdef DOCUMENTATION
28103};
28104#endif // DOCUMENTATION
28105
28106
28108// SgAsmDwarfCompilationUnit -- MACHINE GENERATED; DO NOT MODIFY --
28110
28111DECLARE_LEAF_CLASS(AsmDwarfCompilationUnit);
28112IS_SERIALIZABLE(AsmDwarfCompilationUnit);
28113
28114#ifndef DOCUMENTATION
28115AsmDwarfCompilationUnit.useSmallHeader(true);
28116#endif // !DOCUMENTATION
28117
28118DECLARE_HEADERS(AsmDwarfCompilationUnit);
28119#if defined(SgAsmDwarfCompilationUnit_HEADERS) || defined(DOCUMENTATION)
28120#ifdef ROSE_SgAsmDwarfCompilationUnit_IMPL
28121#include <SgAsmDwarfConstructList.h>
28122#include <SgAsmDwarfLineList.h>
28123#include <SgAsmDwarfMacroList.h>
28124#endif
28125#endif // SgAsmDwarfCompilationUnit_HEADERS
28126
28127#ifdef DOCUMENTATION
28129#endif // DOCUMENTATION
28130
28131#ifndef DOCUMENTATION
28132 AsmDwarfCompilationUnit.setDataPrototype(
28133 "std::string", "producer", "",
28134 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28135#endif // !DOCUMENTATION
28136
28137#ifndef DOCUMENTATION
28138 AsmDwarfCompilationUnit.setDataPrototype(
28139 "std::string", "language", "",
28140 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28141#endif // !DOCUMENTATION
28142
28143#ifndef DOCUMENTATION
28144 AsmDwarfCompilationUnit.setDataPrototype(
28145 "uint64_t", "low_pc", "= 0",
28146 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28147#endif // !DOCUMENTATION
28148
28149#ifndef DOCUMENTATION
28150 AsmDwarfCompilationUnit.setDataPrototype(
28151 "uint64_t", "hi_pc", "= 0",
28152 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28153#endif // !DOCUMENTATION
28154
28155#ifndef DOCUMENTATION
28156 AsmDwarfCompilationUnit.setDataPrototype(
28157 "int", "version_stamp", "= 0",
28158 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28159#endif // !DOCUMENTATION
28160
28161#ifndef DOCUMENTATION
28162 AsmDwarfCompilationUnit.setDataPrototype(
28163 "uint64_t", "abbrev_offset", "= 0",
28164 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28165#endif // !DOCUMENTATION
28166
28167#ifndef DOCUMENTATION
28168 AsmDwarfCompilationUnit.setDataPrototype(
28169 "uint64_t", "address_size", "= 0",
28170 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28171#endif // !DOCUMENTATION
28172
28173#ifndef DOCUMENTATION
28174 AsmDwarfCompilationUnit.setDataPrototype(
28175 "uint64_t", "offset_length", "= 0",
28176 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28177#endif // !DOCUMENTATION
28178
28179#ifndef DOCUMENTATION
28180 AsmDwarfCompilationUnit.setDataPrototype(
28181 "SgAsmDwarfLineList*", "line_info", "= nullptr",
28182 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28183#endif // !DOCUMENTATION
28184
28185#ifndef DOCUMENTATION
28186 AsmDwarfCompilationUnit.setDataPrototype(
28187 "SgAsmDwarfConstructList*", "language_constructs", "= nullptr",
28188 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28189#endif // !DOCUMENTATION
28190
28191#ifndef DOCUMENTATION
28192 AsmDwarfCompilationUnit.setDataPrototype(
28193 "SgAsmDwarfMacroList*", "macro_info", "= nullptr",
28194 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28195#endif // !DOCUMENTATION
28196
28197 DECLARE_OTHERS(AsmDwarfCompilationUnit);
28198#if defined(SgAsmDwarfCompilationUnit_OTHERS) || defined(DOCUMENTATION)
28199
28200 //----------------------- Boost serialization for SgAsmDwarfCompilationUnit -----------------------
28201#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28202private:
28203 friend class boost::serialization::access;
28204
28205 template<class S>
28206 void serialize(S &s, const unsigned /*version*/) {
28207 debugSerializationBegin("SgAsmDwarfCompilationUnit");
28208 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28209 s & BOOST_SERIALIZATION_NVP(p_producer);
28210 s & BOOST_SERIALIZATION_NVP(p_language);
28211 s & BOOST_SERIALIZATION_NVP(p_low_pc);
28212 s & BOOST_SERIALIZATION_NVP(p_hi_pc);
28213 s & BOOST_SERIALIZATION_NVP(p_version_stamp);
28214 s & BOOST_SERIALIZATION_NVP(p_abbrev_offset);
28215 s & BOOST_SERIALIZATION_NVP(p_address_size);
28216 s & BOOST_SERIALIZATION_NVP(p_offset_length);
28217 s & BOOST_SERIALIZATION_NVP(p_line_info);
28218 s & BOOST_SERIALIZATION_NVP(p_language_constructs);
28219 s & BOOST_SERIALIZATION_NVP(p_macro_info);
28220 debugSerializationEnd("SgAsmDwarfCompilationUnit");
28221 }
28222#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28223public:
28224public:
28225 std::string const& get_producer() const;
28226 void set_producer(std::string const&);
28227
28228public:
28229 std::string const& get_language() const;
28230 void set_language(std::string const&);
28231
28232public:
28233 uint64_t const& get_low_pc() const;
28234 void set_low_pc(uint64_t const&);
28235
28236public:
28237 uint64_t const& get_hi_pc() const;
28238 void set_hi_pc(uint64_t const&);
28239
28240public:
28241 int const& get_version_stamp() const;
28242 void set_version_stamp(int const&);
28243
28244public:
28245 uint64_t const& get_abbrev_offset() const;
28246 void set_abbrev_offset(uint64_t const&);
28247
28248public:
28249 uint64_t const& get_address_size() const;
28250 void set_address_size(uint64_t const&);
28251
28252public:
28253 uint64_t const& get_offset_length() const;
28254 void set_offset_length(uint64_t const&);
28255
28256public:
28257 SgAsmDwarfLineList* const& get_line_info() const;
28258 void set_line_info(SgAsmDwarfLineList* const&);
28259
28260public:
28261 SgAsmDwarfConstructList* const& get_language_constructs() const;
28262 void set_language_constructs(SgAsmDwarfConstructList* const&);
28263
28264public:
28265 SgAsmDwarfMacroList* const& get_macro_info() const;
28266 void set_macro_info(SgAsmDwarfMacroList* const&);
28267public:
28268 SgAsmDwarfConstructList* get_children() override;
28269public:
28272
28273public:
28276
28277public:
28279 SgAsmDwarfCompilationUnit(int const& nesting_level,
28280 uint64_t const& offset,
28281 uint64_t const& overall_offset);
28282
28283protected:
28291#endif // SgAsmDwarfCompilationUnit_OTHERS
28292#ifdef DOCUMENTATION
28293};
28294#endif // DOCUMENTATION
28295
28296
28298// SgAsmDwarfCommonInclusion -- MACHINE GENERATED; DO NOT MODIFY --
28300
28301DECLARE_LEAF_CLASS(AsmDwarfCommonInclusion);
28302IS_SERIALIZABLE(AsmDwarfCommonInclusion);
28303
28304#ifndef DOCUMENTATION
28305AsmDwarfCommonInclusion.useSmallHeader(true);
28306#endif // !DOCUMENTATION
28307
28308#ifdef DOCUMENTATION
28310#endif // DOCUMENTATION
28311
28312 DECLARE_OTHERS(AsmDwarfCommonInclusion);
28313#if defined(SgAsmDwarfCommonInclusion_OTHERS) || defined(DOCUMENTATION)
28314
28315 //----------------------- Boost serialization for SgAsmDwarfCommonInclusion -----------------------
28316#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28317private:
28318 friend class boost::serialization::access;
28319
28320 template<class S>
28321 void serialize(S &s, const unsigned /*version*/) {
28322 debugSerializationBegin("SgAsmDwarfCommonInclusion");
28323 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28324 debugSerializationEnd("SgAsmDwarfCommonInclusion");
28325 }
28326#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28327
28328public:
28331
28332public:
28335
28336public:
28338 SgAsmDwarfCommonInclusion(int const& nesting_level,
28339 uint64_t const& offset,
28340 uint64_t const& overall_offset);
28341
28342protected:
28350#endif // SgAsmDwarfCommonInclusion_OTHERS
28351#ifdef DOCUMENTATION
28352};
28353#endif // DOCUMENTATION
28354
28355
28357// SgAsmDwarfCommonBlock -- MACHINE GENERATED; DO NOT MODIFY --
28359
28360DECLARE_LEAF_CLASS(AsmDwarfCommonBlock);
28361IS_SERIALIZABLE(AsmDwarfCommonBlock);
28362
28363#ifndef DOCUMENTATION
28364AsmDwarfCommonBlock.useSmallHeader(true);
28365#endif // !DOCUMENTATION
28366
28367DECLARE_HEADERS(AsmDwarfCommonBlock);
28368#if defined(SgAsmDwarfCommonBlock_HEADERS) || defined(DOCUMENTATION)
28369#ifdef ROSE_SgAsmDwarfCommonBlock_IMPL
28370#include <SgAsmDwarfConstructList.h>
28371#endif
28372#endif // SgAsmDwarfCommonBlock_HEADERS
28373
28374#ifdef DOCUMENTATION
28376#endif // DOCUMENTATION
28377
28378#ifndef DOCUMENTATION
28379 AsmDwarfCommonBlock.setDataPrototype(
28380 "SgAsmDwarfConstructList*", "body", "= NULL",
28381 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28382#endif // !DOCUMENTATION
28383
28384 DECLARE_OTHERS(AsmDwarfCommonBlock);
28385#if defined(SgAsmDwarfCommonBlock_OTHERS) || defined(DOCUMENTATION)
28386
28387 //----------------------- Boost serialization for SgAsmDwarfCommonBlock -----------------------
28388#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28389private:
28390 friend class boost::serialization::access;
28391
28392 template<class S>
28393 void serialize(S &s, const unsigned /*version*/) {
28394 debugSerializationBegin("SgAsmDwarfCommonBlock");
28395 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28396 s & BOOST_SERIALIZATION_NVP(p_body);
28397 debugSerializationEnd("SgAsmDwarfCommonBlock");
28398 }
28399#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28400public:
28401public:
28402 SgAsmDwarfConstructList* const& get_body() const;
28403 void set_body(SgAsmDwarfConstructList* const&);
28404public:
28405 SgAsmDwarfConstructList* get_children() override;
28406public:
28409
28410public:
28413
28414public:
28416 SgAsmDwarfCommonBlock(int const& nesting_level,
28417 uint64_t const& offset,
28418 uint64_t const& overall_offset);
28419
28420protected:
28428#endif // SgAsmDwarfCommonBlock_OTHERS
28429#ifdef DOCUMENTATION
28430};
28431#endif // DOCUMENTATION
28432
28433
28435// SgAsmDwarfClassType -- MACHINE GENERATED; DO NOT MODIFY --
28437
28438DECLARE_LEAF_CLASS(AsmDwarfClassType);
28439IS_SERIALIZABLE(AsmDwarfClassType);
28440
28441#ifndef DOCUMENTATION
28442AsmDwarfClassType.useSmallHeader(true);
28443#endif // !DOCUMENTATION
28444
28445DECLARE_HEADERS(AsmDwarfClassType);
28446#if defined(SgAsmDwarfClassType_HEADERS) || defined(DOCUMENTATION)
28447#ifdef ROSE_SgAsmDwarfClassType_IMPL
28448#include <SgAsmDwarfConstructList.h>
28449#endif
28450#endif // SgAsmDwarfClassType_HEADERS
28451
28452#ifdef DOCUMENTATION
28454#endif // DOCUMENTATION
28455
28456#ifndef DOCUMENTATION
28457 AsmDwarfClassType.setDataPrototype(
28458 "SgAsmDwarfConstructList*", "body", "= nullptr",
28459 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28460#endif // !DOCUMENTATION
28461
28462 DECLARE_OTHERS(AsmDwarfClassType);
28463#if defined(SgAsmDwarfClassType_OTHERS) || defined(DOCUMENTATION)
28464
28465 //----------------------- Boost serialization for SgAsmDwarfClassType -----------------------
28466#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28467private:
28468 friend class boost::serialization::access;
28469
28470 template<class S>
28471 void serialize(S &s, const unsigned /*version*/) {
28472 debugSerializationBegin("SgAsmDwarfClassType");
28473 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28474 s & BOOST_SERIALIZATION_NVP(p_body);
28475 debugSerializationEnd("SgAsmDwarfClassType");
28476 }
28477#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28478public:
28479public:
28480 SgAsmDwarfConstructList* const& get_body() const;
28481 void set_body(SgAsmDwarfConstructList* const&);
28482public:
28483 SgAsmDwarfConstructList* get_children() override;
28484public:
28487
28488public:
28491
28492public:
28494 SgAsmDwarfClassType(int const& nesting_level,
28495 uint64_t const& offset,
28496 uint64_t const& overall_offset);
28497
28498protected:
28506#endif // SgAsmDwarfClassType_OTHERS
28507#ifdef DOCUMENTATION
28508};
28509#endif // DOCUMENTATION
28510
28511
28513// SgAsmDwarfClassTemplate -- MACHINE GENERATED; DO NOT MODIFY --
28515
28516DECLARE_LEAF_CLASS(AsmDwarfClassTemplate);
28517IS_SERIALIZABLE(AsmDwarfClassTemplate);
28518
28519#ifndef DOCUMENTATION
28520AsmDwarfClassTemplate.useSmallHeader(true);
28521#endif // !DOCUMENTATION
28522
28523#ifdef DOCUMENTATION
28525#endif // DOCUMENTATION
28526
28527 DECLARE_OTHERS(AsmDwarfClassTemplate);
28528#if defined(SgAsmDwarfClassTemplate_OTHERS) || defined(DOCUMENTATION)
28529
28530 //----------------------- Boost serialization for SgAsmDwarfClassTemplate -----------------------
28531#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28532private:
28533 friend class boost::serialization::access;
28534
28535 template<class S>
28536 void serialize(S &s, const unsigned /*version*/) {
28537 debugSerializationBegin("SgAsmDwarfClassTemplate");
28538 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28539 debugSerializationEnd("SgAsmDwarfClassTemplate");
28540 }
28541#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28542
28543public:
28546
28547public:
28550
28551public:
28553 SgAsmDwarfClassTemplate(int const& nesting_level,
28554 uint64_t const& offset,
28555 uint64_t const& overall_offset);
28556
28557protected:
28565#endif // SgAsmDwarfClassTemplate_OTHERS
28566#ifdef DOCUMENTATION
28567};
28568#endif // DOCUMENTATION
28569
28570
28572// SgAsmDwarfCatchBlock -- MACHINE GENERATED; DO NOT MODIFY --
28574
28575DECLARE_LEAF_CLASS(AsmDwarfCatchBlock);
28576IS_SERIALIZABLE(AsmDwarfCatchBlock);
28577
28578#ifndef DOCUMENTATION
28579AsmDwarfCatchBlock.useSmallHeader(true);
28580#endif // !DOCUMENTATION
28581
28582#ifdef DOCUMENTATION
28584#endif // DOCUMENTATION
28585
28586 DECLARE_OTHERS(AsmDwarfCatchBlock);
28587#if defined(SgAsmDwarfCatchBlock_OTHERS) || defined(DOCUMENTATION)
28588
28589 //----------------------- Boost serialization for SgAsmDwarfCatchBlock -----------------------
28590#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28591private:
28592 friend class boost::serialization::access;
28593
28594 template<class S>
28595 void serialize(S &s, const unsigned /*version*/) {
28596 debugSerializationBegin("SgAsmDwarfCatchBlock");
28597 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28598 debugSerializationEnd("SgAsmDwarfCatchBlock");
28599 }
28600#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28601
28602public:
28605
28606public:
28609
28610public:
28612 SgAsmDwarfCatchBlock(int const& nesting_level,
28613 uint64_t const& offset,
28614 uint64_t const& overall_offset);
28615
28616protected:
28624#endif // SgAsmDwarfCatchBlock_OTHERS
28625#ifdef DOCUMENTATION
28626};
28627#endif // DOCUMENTATION
28628
28629
28631// SgAsmDwarfBaseType -- MACHINE GENERATED; DO NOT MODIFY --
28633
28634DECLARE_LEAF_CLASS(AsmDwarfBaseType);
28635IS_SERIALIZABLE(AsmDwarfBaseType);
28636
28637#ifndef DOCUMENTATION
28638AsmDwarfBaseType.useSmallHeader(true);
28639#endif // !DOCUMENTATION
28640
28641#ifdef DOCUMENTATION
28643#endif // DOCUMENTATION
28644
28645 DECLARE_OTHERS(AsmDwarfBaseType);
28646#if defined(SgAsmDwarfBaseType_OTHERS) || defined(DOCUMENTATION)
28647
28648 //----------------------- Boost serialization for SgAsmDwarfBaseType -----------------------
28649#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28650private:
28651 friend class boost::serialization::access;
28652
28653 template<class S>
28654 void serialize(S &s, const unsigned /*version*/) {
28655 debugSerializationBegin("SgAsmDwarfBaseType");
28656 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28657 debugSerializationEnd("SgAsmDwarfBaseType");
28658 }
28659#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28660
28661public:
28664
28665public:
28668
28669public:
28671 SgAsmDwarfBaseType(int const& nesting_level,
28672 uint64_t const& offset,
28673 uint64_t const& overall_offset);
28674
28675protected:
28683#endif // SgAsmDwarfBaseType_OTHERS
28684#ifdef DOCUMENTATION
28685};
28686#endif // DOCUMENTATION
28687
28688
28690// SgAsmDwarfArrayType -- MACHINE GENERATED; DO NOT MODIFY --
28692
28693DECLARE_LEAF_CLASS(AsmDwarfArrayType);
28694IS_SERIALIZABLE(AsmDwarfArrayType);
28695
28696#ifndef DOCUMENTATION
28697AsmDwarfArrayType.useSmallHeader(true);
28698#endif // !DOCUMENTATION
28699
28700DECLARE_HEADERS(AsmDwarfArrayType);
28701#if defined(SgAsmDwarfArrayType_HEADERS) || defined(DOCUMENTATION)
28702#ifdef ROSE_SgAsmDwarfArrayType_IMPL
28703#include <SgAsmDwarfConstructList.h>
28704#endif
28705#endif // SgAsmDwarfArrayType_HEADERS
28706
28707#ifdef DOCUMENTATION
28709#endif // DOCUMENTATION
28710
28711#ifndef DOCUMENTATION
28712 AsmDwarfArrayType.setDataPrototype(
28713 "SgAsmDwarfConstructList*", "body", "= nullptr",
28714 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
28715#endif // !DOCUMENTATION
28716
28717 DECLARE_OTHERS(AsmDwarfArrayType);
28718#if defined(SgAsmDwarfArrayType_OTHERS) || defined(DOCUMENTATION)
28719
28720 //----------------------- Boost serialization for SgAsmDwarfArrayType -----------------------
28721#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28722private:
28723 friend class boost::serialization::access;
28724
28725 template<class S>
28726 void serialize(S &s, const unsigned /*version*/) {
28727 debugSerializationBegin("SgAsmDwarfArrayType");
28728 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28729 s & BOOST_SERIALIZATION_NVP(p_body);
28730 debugSerializationEnd("SgAsmDwarfArrayType");
28731 }
28732#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28733public:
28734public:
28735 SgAsmDwarfConstructList* const& get_body() const;
28736 void set_body(SgAsmDwarfConstructList* const&);
28737public:
28738 SgAsmDwarfConstructList* get_children() override;
28739public:
28742
28743public:
28746
28747public:
28749 SgAsmDwarfArrayType(int const& nesting_level,
28750 uint64_t const& offset,
28751 uint64_t const& overall_offset);
28752
28753protected:
28761#endif // SgAsmDwarfArrayType_OTHERS
28762#ifdef DOCUMENTATION
28763};
28764#endif // DOCUMENTATION
28765
28766
28768// SgAsmDwarfAccessDeclaration -- MACHINE GENERATED; DO NOT MODIFY --
28770
28771DECLARE_LEAF_CLASS(AsmDwarfAccessDeclaration);
28772IS_SERIALIZABLE(AsmDwarfAccessDeclaration);
28773
28774#ifndef DOCUMENTATION
28775AsmDwarfAccessDeclaration.useSmallHeader(true);
28776#endif // !DOCUMENTATION
28777
28778#ifdef DOCUMENTATION
28780#endif // DOCUMENTATION
28781
28782 DECLARE_OTHERS(AsmDwarfAccessDeclaration);
28783#if defined(SgAsmDwarfAccessDeclaration_OTHERS) || defined(DOCUMENTATION)
28784
28785 //----------------------- Boost serialization for SgAsmDwarfAccessDeclaration -----------------------
28786#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28787private:
28788 friend class boost::serialization::access;
28789
28790 template<class S>
28791 void serialize(S &s, const unsigned /*version*/) {
28792 debugSerializationBegin("SgAsmDwarfAccessDeclaration");
28793 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfConstruct);
28794 debugSerializationEnd("SgAsmDwarfAccessDeclaration");
28795 }
28796#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28797
28798public:
28801
28802public:
28805
28806public:
28808 SgAsmDwarfAccessDeclaration(int const& nesting_level,
28809 uint64_t const& offset,
28810 uint64_t const& overall_offset);
28811
28812protected:
28820#endif // SgAsmDwarfAccessDeclaration_OTHERS
28821#ifdef DOCUMENTATION
28822};
28823#endif // DOCUMENTATION
28824
28825
28827// SgAsmDwarfConstruct -- MACHINE GENERATED; DO NOT MODIFY --
28829
28830#ifndef DOCUMENTATION
28831AstNodeClass& AsmDwarfConstruct = nonTerminalConstructor(
28832 "AsmDwarfConstruct",
28833 *this,
28834 "AsmDwarfConstruct",
28835 "AsmDwarfConstructTag",
28836 SubclassListBuilder()
28837 | AsmDwarfAccessDeclaration
28838 | AsmDwarfArrayType
28839 | AsmDwarfBaseType
28840 | AsmDwarfCatchBlock
28841 | AsmDwarfClassTemplate
28842 | AsmDwarfClassType
28843 | AsmDwarfCommonBlock
28844 | AsmDwarfCommonInclusion
28845 | AsmDwarfCompilationUnit
28846 | AsmDwarfCondition
28847 | AsmDwarfConstant
28848 | AsmDwarfConstType
28849 | AsmDwarfDwarfProcedure
28850 | AsmDwarfEntryPoint
28851 | AsmDwarfEnumerationType
28852 | AsmDwarfEnumerator
28853 | AsmDwarfFileType
28854 | AsmDwarfFormalParameter
28855 | AsmDwarfFormatLabel
28856 | AsmDwarfFriend
28857 | AsmDwarfFunctionTemplate
28858 | AsmDwarfImportedDeclaration
28859 | AsmDwarfImportedModule
28860 | AsmDwarfImportedUnit
28861 | AsmDwarfInheritance
28862 | AsmDwarfInlinedSubroutine
28863 | AsmDwarfInterfaceType
28864 | AsmDwarfLabel
28865 | AsmDwarfLexicalBlock
28866 | AsmDwarfMember
28867 | AsmDwarfModule
28868 | AsmDwarfMutableType
28869 | AsmDwarfNamelist
28870 | AsmDwarfNamelistItem
28871 | AsmDwarfNamespace
28872 | AsmDwarfPackedType
28873 | AsmDwarfPartialUnit
28874 | AsmDwarfPointerType
28875 | AsmDwarfPtrToMemberType
28876 | AsmDwarfReferenceType
28877 | AsmDwarfRestrictType
28878 | AsmDwarfSetType
28879 | AsmDwarfSharedType
28880 | AsmDwarfStringType
28881 | AsmDwarfStructureType
28882 | AsmDwarfSubprogram
28883 | AsmDwarfSubrangeType
28884 | AsmDwarfSubroutineType
28885 | AsmDwarfTemplateTypeParameter
28886 | AsmDwarfTemplateValueParameter
28887 | AsmDwarfThrownType
28888 | AsmDwarfTryBlock
28889 | AsmDwarfTypedef
28890 | AsmDwarfUnionType
28891 | AsmDwarfUnknownConstruct
28892 | AsmDwarfUnspecifiedParameters
28893 | AsmDwarfUnspecifiedType
28894 | AsmDwarfUpcRelaxedType
28895 | AsmDwarfUpcSharedType
28896 | AsmDwarfUpcStrictType
28897 | AsmDwarfVariable
28898 | AsmDwarfVariant
28899 | AsmDwarfVariantPart
28900 | AsmDwarfVolatileType
28901 | AsmDwarfWithStmt
28902 , false);
28903assert(AsmDwarfConstruct.associatedGrammar != nullptr);
28904AsmDwarfConstruct.setCppCondition("!defined(DOCUMENTATION)");
28905AsmDwarfConstruct.isBoostSerializable(true);
28906AsmDwarfConstruct.setAutomaticGenerationOfConstructor(false);
28907AsmDwarfConstruct.setAutomaticGenerationOfDestructor(false);
28908#endif // !DOCUMENTATION
28909
28910#ifndef DOCUMENTATION
28911AsmDwarfConstruct.useSmallHeader(true);
28912#endif // !DOCUMENTATION
28913
28914#ifdef DOCUMENTATION
28916#endif // DOCUMENTATION
28917
28918#ifndef DOCUMENTATION
28919 AsmDwarfConstruct.setDataPrototype(
28920 "int", "nesting_level", "= 0",
28921 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28922#endif // !DOCUMENTATION
28923
28924#ifndef DOCUMENTATION
28925 AsmDwarfConstruct.setDataPrototype(
28926 "uint64_t", "offset", "= 0",
28927 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28928#endif // !DOCUMENTATION
28929
28930#ifndef DOCUMENTATION
28931 AsmDwarfConstruct.setDataPrototype(
28932 "uint64_t", "overall_offset", "= 0",
28933 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28934#endif // !DOCUMENTATION
28935
28936#ifndef DOCUMENTATION
28937 AsmDwarfConstruct.setDataPrototype(
28938 "std::string", "name", "",
28939 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28940#endif // !DOCUMENTATION
28941
28942#ifndef DOCUMENTATION
28943 AsmDwarfConstruct.setDataPrototype(
28944 "SgAsmDwarfLine*", "source_position", "= nullptr",
28945 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
28946#endif // !DOCUMENTATION
28947
28948 DECLARE_OTHERS(AsmDwarfConstruct);
28949#if defined(SgAsmDwarfConstruct_OTHERS) || defined(DOCUMENTATION)
28950
28951 //----------------------- Boost serialization for SgAsmDwarfConstruct -----------------------
28952#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
28953private:
28954 friend class boost::serialization::access;
28955
28956 template<class S>
28957 void serialize(S &s, const unsigned /*version*/) {
28958 debugSerializationBegin("SgAsmDwarfConstruct");
28959 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmDwarfInformation);
28960 s & BOOST_SERIALIZATION_NVP(p_nesting_level);
28961 s & BOOST_SERIALIZATION_NVP(p_offset);
28962 s & BOOST_SERIALIZATION_NVP(p_overall_offset);
28963 s & BOOST_SERIALIZATION_NVP(p_name);
28964 s & BOOST_SERIALIZATION_NVP(p_source_position);
28965 debugSerializationEnd("SgAsmDwarfConstruct");
28966 }
28967#endif // ROSE_ENABLE_BOOST_SERIALIZATION
28968public:
28969 // For now we will store the nesting level (just to support debugging), then it will be removed.
28970public:
28971 int const& get_nesting_level() const;
28972 void set_nesting_level(int const&);
28973
28974public:
28975 uint64_t const& get_offset() const;
28976 void set_offset(uint64_t const&);
28977
28978public:
28979 uint64_t const& get_overall_offset() const;
28980 void set_overall_offset(uint64_t const&);
28981 // A lot of constructs have a name so put the name into the base class
28982public:
28983 std::string const& get_name() const;
28984 void set_name(std::string const&);
28985 // This is a data member that can be filled in via a separate analysis (we would have to read the line information before
28986 // hand).
28987public:
28988 SgAsmDwarfLine* const& get_source_position() const;
28989 void set_source_position(SgAsmDwarfLine* const&);
28990 // [Robb Matzke 2023-03-22]: SgNode already has an attributeMechanism
28991 // [[using Rosebud: rosetta]]
28992 // AstAttributeMechanism* attributeMechanism = nullptr;
28993
28994public:
28996 static SgAsmDwarfConstruct* createDwarfConstruct( int tag, int nesting_level, uint64_t offset, uint64_t overall_offset );
28997
28998 virtual SgAsmDwarfConstructList* get_children();
28999public:
29002
29003protected:
29006
29007protected:
29009 SgAsmDwarfConstruct(int const& nesting_level,
29010 uint64_t const& offset,
29011 uint64_t const& overall_offset);
29012
29013protected:
29021#endif // SgAsmDwarfConstruct_OTHERS
29022#ifdef DOCUMENTATION
29023};
29024#endif // DOCUMENTATION
29025
29026
29028// SgAsmDwarfInformation -- MACHINE GENERATED; DO NOT MODIFY --
29030
29031#ifndef DOCUMENTATION
29032AstNodeClass& AsmDwarfInformation = nonTerminalConstructor(
29033 "AsmDwarfInformation",
29034 *this,
29035 "AsmDwarfInformation",
29036 "AsmDwarfInformationTag",
29037 SubclassListBuilder()
29038 | AsmDwarfCompilationUnitList
29039 | AsmDwarfConstruct
29040 | AsmDwarfConstructList
29041 | AsmDwarfLine
29042 | AsmDwarfLineList
29043 | AsmDwarfMacro
29044 | AsmDwarfMacroList
29045 , false);
29046assert(AsmDwarfInformation.associatedGrammar != nullptr);
29047AsmDwarfInformation.setCppCondition("!defined(DOCUMENTATION)");
29048AsmDwarfInformation.isBoostSerializable(true);
29049AsmDwarfInformation.setAutomaticGenerationOfConstructor(false);
29050AsmDwarfInformation.setAutomaticGenerationOfDestructor(false);
29051#endif // !DOCUMENTATION
29052
29053#ifndef DOCUMENTATION
29054AsmDwarfInformation.useSmallHeader(true);
29055#endif // !DOCUMENTATION
29056
29057#ifdef DOCUMENTATION
29059#endif // DOCUMENTATION
29060
29061 DECLARE_OTHERS(AsmDwarfInformation);
29062#if defined(SgAsmDwarfInformation_OTHERS) || defined(DOCUMENTATION)
29063
29064 //----------------------- Boost serialization for SgAsmDwarfInformation -----------------------
29065#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29066private:
29067 friend class boost::serialization::access;
29068
29069 template<class S>
29070 void serialize(S &s, const unsigned /*version*/) {
29071 debugSerializationBegin("SgAsmDwarfInformation");
29072 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
29073 debugSerializationEnd("SgAsmDwarfInformation");
29074 }
29075#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29076
29077public:
29080
29081protected:
29084
29085protected:
29093#endif // SgAsmDwarfInformation_OTHERS
29094#ifdef DOCUMENTATION
29095};
29096#endif // DOCUMENTATION
29097
29098
29100// SgAsmDOSFileHeader -- MACHINE GENERATED; DO NOT MODIFY --
29102
29103DECLARE_LEAF_CLASS(AsmDOSFileHeader);
29104IS_SERIALIZABLE(AsmDOSFileHeader);
29105
29106#ifndef DOCUMENTATION
29107AsmDOSFileHeader.useSmallHeader(true);
29108#endif // !DOCUMENTATION
29109
29110DECLARE_HEADERS(AsmDOSFileHeader);
29111#if defined(SgAsmDOSFileHeader_HEADERS) || defined(DOCUMENTATION)
29112#include <Rose/BinaryAnalysis/Address.h>
29113#endif // SgAsmDOSFileHeader_HEADERS
29114
29115#ifdef DOCUMENTATION
29121#endif // DOCUMENTATION
29122
29123#ifndef DOCUMENTATION
29124 AsmDOSFileHeader.setDataPrototype(
29125 "uint16_t", "e_last_page_size", "= 0",
29126 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29127#endif // !DOCUMENTATION
29128
29129#ifndef DOCUMENTATION
29130 AsmDOSFileHeader.setDataPrototype(
29131 "uint16_t", "e_total_pages", "= 0",
29132 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29133#endif // !DOCUMENTATION
29134
29135#ifndef DOCUMENTATION
29136 AsmDOSFileHeader.setDataPrototype(
29137 "uint16_t", "e_nrelocs", "= 0",
29138 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29139#endif // !DOCUMENTATION
29140
29141#ifndef DOCUMENTATION
29142 AsmDOSFileHeader.setDataPrototype(
29143 "uint16_t", "e_header_paragraphs", "= 0",
29144 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29145#endif // !DOCUMENTATION
29146
29147#ifndef DOCUMENTATION
29148 AsmDOSFileHeader.setDataPrototype(
29149 "uint16_t", "e_minalloc", "= 0",
29150 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29151#endif // !DOCUMENTATION
29152
29153#ifndef DOCUMENTATION
29154 AsmDOSFileHeader.setDataPrototype(
29155 "uint16_t", "e_maxalloc", "= 0",
29156 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29157#endif // !DOCUMENTATION
29158
29159#ifndef DOCUMENTATION
29160 AsmDOSFileHeader.setDataPrototype(
29161 "uint16_t", "e_ss", "= 0",
29162 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29163#endif // !DOCUMENTATION
29164
29165#ifndef DOCUMENTATION
29166 AsmDOSFileHeader.setDataPrototype(
29167 "uint16_t", "e_sp", "= 0",
29168 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29169#endif // !DOCUMENTATION
29170
29171#ifndef DOCUMENTATION
29172 AsmDOSFileHeader.setDataPrototype(
29173 "uint16_t", "e_cksum", "= 0",
29174 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29175#endif // !DOCUMENTATION
29176
29177#ifndef DOCUMENTATION
29178 AsmDOSFileHeader.setDataPrototype(
29179 "uint16_t", "e_ip", "= 0",
29180 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29181#endif // !DOCUMENTATION
29182
29183#ifndef DOCUMENTATION
29184 AsmDOSFileHeader.setDataPrototype(
29185 "uint16_t", "e_cs", "= 0",
29186 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29187#endif // !DOCUMENTATION
29188
29189#ifndef DOCUMENTATION
29190 AsmDOSFileHeader.setDataPrototype(
29191 "uint16_t", "e_overlay", "= 0",
29192 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29193#endif // !DOCUMENTATION
29194
29195#ifndef DOCUMENTATION
29196 AsmDOSFileHeader.setDataPrototype(
29197 "Rose::BinaryAnalysis::Address", "e_relocs_offset", "= 0",
29198 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29199#endif // !DOCUMENTATION
29200
29201#ifndef DOCUMENTATION
29202 AsmDOSFileHeader.setDataPrototype(
29203 "unsigned", "e_res1", "= 0",
29204 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29205#endif // !DOCUMENTATION
29206
29207#ifndef DOCUMENTATION
29208 AsmDOSFileHeader.setDataPrototype(
29209 "SgAsmGenericSection*", "relocs", "= nullptr",
29210 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29211#endif // !DOCUMENTATION
29212
29213#ifndef DOCUMENTATION
29214 AsmDOSFileHeader.setDataPrototype(
29215 "SgAsmGenericSection*", "rm_section", "= nullptr",
29216 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29217#endif // !DOCUMENTATION
29218
29219 DECLARE_OTHERS(AsmDOSFileHeader);
29220#if defined(SgAsmDOSFileHeader_OTHERS) || defined(DOCUMENTATION)
29221
29222 //----------------------- Boost serialization for SgAsmDOSFileHeader -----------------------
29223#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29224private:
29225 friend class boost::serialization::access;
29226
29227 template<class S>
29228 void serialize(S &s, const unsigned /*version*/) {
29229 debugSerializationBegin("SgAsmDOSFileHeader");
29230 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericHeader);
29231 s & BOOST_SERIALIZATION_NVP(p_e_last_page_size);
29232 s & BOOST_SERIALIZATION_NVP(p_e_total_pages);
29233 s & BOOST_SERIALIZATION_NVP(p_e_nrelocs);
29234 s & BOOST_SERIALIZATION_NVP(p_e_header_paragraphs);
29235 s & BOOST_SERIALIZATION_NVP(p_e_minalloc);
29236 s & BOOST_SERIALIZATION_NVP(p_e_maxalloc);
29237 s & BOOST_SERIALIZATION_NVP(p_e_ss);
29238 s & BOOST_SERIALIZATION_NVP(p_e_sp);
29239 s & BOOST_SERIALIZATION_NVP(p_e_cksum);
29240 s & BOOST_SERIALIZATION_NVP(p_e_ip);
29241 s & BOOST_SERIALIZATION_NVP(p_e_cs);
29242 s & BOOST_SERIALIZATION_NVP(p_e_overlay);
29243 s & BOOST_SERIALIZATION_NVP(p_e_relocs_offset);
29244 s & BOOST_SERIALIZATION_NVP(p_e_res1);
29245 s & BOOST_SERIALIZATION_NVP(p_relocs);
29246 s & BOOST_SERIALIZATION_NVP(p_rm_section);
29247 debugSerializationEnd("SgAsmDOSFileHeader");
29248 }
29249#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29251 // Local types
29253public:
29254#ifdef _MSC_VER
29255# pragma pack (1)
29256#endif
29259 unsigned char e_magic[2];
29260 uint16_t e_last_page_size; //
29262 uint16_t e_total_pages;
29263 uint16_t e_nrelocs;
29265 uint16_t e_minalloc;
29266 uint16_t e_maxalloc;
29267 uint16_t e_ss;
29268 uint16_t e_sp;
29269 uint16_t e_cksum;
29271 uint16_t e_ip;
29272 uint16_t e_cs;
29274 uint16_t e_overlay;
29275 uint32_t e_res1;
29276 } /* 0x20 */
29277#if !defined(SWIG) && !defined(_MSC_VER)
29278 __attribute__((packed))
29279#endif
29280 ;
29281
29283 uint16_t offset; /* 0x00 */
29284 uint16_t segment; /* 0x02 */
29285 } /* 0x04 */
29286#if !defined(SWIG) && !defined(_MSC_VER)
29287 __attribute__((packed))
29288#endif
29289 ;
29290
29291#ifdef _MSC_VER
29292# pragma pack ()
29293#endif
29294
29296 // Properties
29298public:
29299public:
29305 uint16_t const& get_e_last_page_size() const;
29306 void set_e_last_page_size(uint16_t const&);
29309public:
29315 uint16_t const& get_e_total_pages() const;
29316 void set_e_total_pages(uint16_t const&);
29319public:
29325 uint16_t const& get_e_nrelocs() const;
29326 void set_e_nrelocs(uint16_t const&);
29329public:
29335 uint16_t const& get_e_header_paragraphs() const;
29336 void set_e_header_paragraphs(uint16_t const&);
29339public:
29345 uint16_t const& get_e_minalloc() const;
29346 void set_e_minalloc(uint16_t const&);
29349public:
29355 uint16_t const& get_e_maxalloc() const;
29356 void set_e_maxalloc(uint16_t const&);
29359public:
29365 uint16_t const& get_e_ss() const;
29366 void set_e_ss(uint16_t const&);
29369public:
29375 uint16_t const& get_e_sp() const;
29376 void set_e_sp(uint16_t const&);
29379public:
29385 uint16_t const& get_e_cksum() const;
29386 void set_e_cksum(uint16_t const&);
29389public:
29395 uint16_t const& get_e_ip() const;
29396 void set_e_ip(uint16_t const&);
29399public:
29405 uint16_t const& get_e_cs() const;
29406 void set_e_cs(uint16_t const&);
29409public:
29415 uint16_t const& get_e_overlay() const;
29416 void set_e_overlay(uint16_t const&);
29419public:
29429public:
29435 unsigned const& get_e_res1() const;
29436 void set_e_res1(unsigned const&);
29439public:
29447public:
29455 // Functions
29457public:
29459 virtual SgAsmDOSFileHeader *parse() override {return parse(true);}
29460 SgAsmDOSFileHeader *parse(bool define_rm_section);
29461 virtual bool reallocate() override;
29462 virtual void unparse(std::ostream&) const override;
29463 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29464 virtual const char *formatName() const override;
29465
29472
29479
29482
29483private:
29484 void *encode(SgAsmDOSFileHeader::DOSFileHeader_disk*) const;
29485
29487 // Deprecated 2023-11
29489public:
29490 virtual const char* format_name() const override ROSE_DEPRECATED("use formatName");
29491 SgAsmGenericSection* parse_rm_section(Rose::BinaryAnalysis::Address max_offset = 0) ROSE_DEPRECATED("use parseRealModeSection");
29492 void update_from_rm_section() ROSE_DEPRECATED("use updateFromRealModeSection");
29493 static bool is_DOS(SgAsmGenericFile*) ROSE_DEPRECATED("use isDos");
29494public:
29497
29498public:
29501
29502protected:
29510#endif // SgAsmDOSFileHeader_OTHERS
29511#ifdef DOCUMENTATION
29512};
29513#endif // DOCUMENTATION
29514
29515
29517// SgAsmGenericHeader -- MACHINE GENERATED; DO NOT MODIFY --
29519
29520#ifndef DOCUMENTATION
29521AstNodeClass& AsmGenericHeader = nonTerminalConstructor(
29522 "AsmGenericHeader",
29523 *this,
29524 "AsmGenericHeader",
29525 "AsmGenericHeaderTag",
29526 SubclassListBuilder()
29527 | AsmDOSFileHeader
29528 | AsmElfFileHeader
29529 | AsmJvmFileHeader
29530 | AsmLEFileHeader
29531 | AsmNEFileHeader
29532 | AsmPEFileHeader
29533 , true);
29534assert(AsmGenericHeader.associatedGrammar != nullptr);
29535AsmGenericHeader.setCppCondition("!defined(DOCUMENTATION)");
29536AsmGenericHeader.isBoostSerializable(true);
29537AsmGenericHeader.setAutomaticGenerationOfConstructor(false);
29538AsmGenericHeader.setAutomaticGenerationOfDestructor(false);
29539#endif // !DOCUMENTATION
29540
29541#ifndef DOCUMENTATION
29542AsmGenericHeader.useSmallHeader(true);
29543#endif // !DOCUMENTATION
29544
29545DECLARE_HEADERS(AsmGenericHeader);
29546#if defined(SgAsmGenericHeader_HEADERS) || defined(DOCUMENTATION)
29547#include <Rose/BinaryAnalysis/Address.h>
29548#include <Rose/BinaryAnalysis/ByteOrder.h>
29549#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
29550#include <sageContainer.h>
29551#include <SgAsmGenericFormat.h>
29552
29553#ifdef ROSE_SgAsmGenericHeader_IMPL
29554#include <SgAsmGenericDLLList.h>
29555#include <SgAsmGenericSectionList.h>
29556#endif
29557
29558class SgAsmGenericDLL;
29560#endif // SgAsmGenericHeader_HEADERS
29561
29562#ifdef DOCUMENTATION
29565#endif // DOCUMENTATION
29566
29567#ifndef DOCUMENTATION
29568 AsmGenericHeader.setDataPrototype(
29569 "SgAsmGenericFormat*", "executableFormat", "= createAndParent<SgAsmGenericFormat>(this)",
29570 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29571#endif // !DOCUMENTATION
29572
29573#ifndef DOCUMENTATION
29574 AsmGenericHeader.setDataPrototype(
29575 "SgCharList", "magic", "",
29576 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29577#endif // !DOCUMENTATION
29578
29579#ifndef DOCUMENTATION
29580 AsmGenericHeader.setDataPrototype(
29581 "SgAsmGenericFormat::InsSetArchitecture", "isa", "= SgAsmGenericFormat::ISA_UNSPECIFIED",
29582 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29583#endif // !DOCUMENTATION
29584
29585#ifndef DOCUMENTATION
29586 AsmGenericHeader.setDataPrototype(
29587 "Rose::BinaryAnalysis::Address", "baseVa", "= 0",
29588 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29589#endif // !DOCUMENTATION
29590
29591#ifndef DOCUMENTATION
29592 AsmGenericHeader.setDataPrototype(
29593 "SgRVAList", "entryRvas", "",
29594 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29595#endif // !DOCUMENTATION
29596
29597#ifndef DOCUMENTATION
29598 AsmGenericHeader.setDataPrototype(
29599 "SgAsmGenericDLLList*", "dlls", "= createAndParent<SgAsmGenericDLLList>(this)",
29600 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29601#endif // !DOCUMENTATION
29602
29603#ifndef DOCUMENTATION
29604 AsmGenericHeader.setDataPrototype(
29605 "SgAsmGenericSectionList*", "sections", "= createAndParent<SgAsmGenericSectionList>(this)",
29606 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
29607#endif // !DOCUMENTATION
29608
29609 DECLARE_OTHERS(AsmGenericHeader);
29610#if defined(SgAsmGenericHeader_OTHERS) || defined(DOCUMENTATION)
29611
29612 //----------------------- Boost serialization for SgAsmGenericHeader -----------------------
29613#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29614private:
29615 friend class boost::serialization::access;
29616
29617 template<class S>
29618 void serialize(S &s, const unsigned /*version*/) {
29619 debugSerializationBegin("SgAsmGenericHeader");
29620 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
29621 s & BOOST_SERIALIZATION_NVP(p_executableFormat);
29622 s & BOOST_SERIALIZATION_NVP(p_magic);
29623 s & BOOST_SERIALIZATION_NVP(p_isa);
29624 s & BOOST_SERIALIZATION_NVP(p_baseVa);
29625 s & BOOST_SERIALIZATION_NVP(p_entryRvas);
29626 s & BOOST_SERIALIZATION_NVP(p_dlls);
29627 s & BOOST_SERIALIZATION_NVP(p_sections);
29628 debugSerializationEnd("SgAsmGenericHeader");
29629 }
29630#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29631public:
29632public:
29640public:
29644 SgCharList const& get_magic() const;
29645 SgCharList& get_magic();
29646 void set_magic(SgCharList const&);
29649public:
29657public:
29665public:
29669 SgRVAList const& get_entryRvas() const;
29670 SgRVAList& get_entryRvas();
29671 void set_entryRvas(SgRVAList const&);
29674public:
29682public:
29689public:
29698
29699 virtual bool reallocate() override;
29700
29702 virtual void unparse(std::ostream&) const override;
29703
29705 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
29706
29708 virtual const char *formatName() const;
29709
29712
29714 std::vector<SgAsmGenericDLL*>& get_dlls();
29715
29721
29724
29725 /* Convenience functions */
29727 size_t get_wordSize() const;
29728
29733
29736
29738 SgAsmGenericSectionPtrList get_mappedSections() const;
29739
29741 SgAsmGenericSectionPtrList get_sectionsById(int id) const;
29742
29746 SgAsmGenericSectionPtrList get_sectionsByName(std::string, char sep=0) const;
29747
29750
29752 SgAsmGenericSectionPtrList get_sectionsByRva(Rose::BinaryAnalysis::Address rva) const;
29753
29760 SgAsmGenericSectionPtrList get_sectionsByVa(Rose::BinaryAnalysis::Address va, bool use_preferred) const;
29761
29763 SgAsmGenericSection *get_sectionById(int id, size_t *nfound=0) const;
29764
29766 SgAsmGenericSection *get_sectionByName(const std::string&, char sep=0, size_t *nfound=0) const;
29767
29770 size_t *nfound=0) const;
29771
29776
29783 SgAsmGenericSection *get_sectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const;
29784
29786 SgAsmGenericSection *get_bestSectionByVa(Rose::BinaryAnalysis::Address va, bool use_preferred, size_t *nfound=0) const;
29787
29789 // Deprecated 2023-11
29791public:
29792 SgAsmGenericFormat* get_exec_format() const ROSE_DEPRECATED("use get_executableFormat");
29793 void set_exec_format(SgAsmGenericFormat*) ROSE_DEPRECATED("use set_executableFormat");
29794 Rose::BinaryAnalysis::Address get_base_va() const ROSE_DEPRECATED("use get_baseVa");
29795 void set_base_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_baseVa");
29796 SgRVAList& get_entry_rvas() ROSE_DEPRECATED("use get_entryRvas");
29797 const SgRVAList& get_entry_rvas() const ROSE_DEPRECATED("use get_entryRvas");
29798 void set_entry_rvas(const SgRVAList&) ROSE_DEPRECATED("use set_entryRvas");
29799 virtual const char *format_name() const ROSE_DEPRECATED("use formatName");
29800 void add_dll(SgAsmGenericDLL*) ROSE_DEPRECATED("use addDll");
29801 Rose::BinaryAnalysis::Address get_entry_rva() const ROSE_DEPRECATED("use get_entryRva");
29802 void add_entry_rva(const Rose::BinaryAnalysis::RelativeVirtualAddress&) ROSE_DEPRECATED("use addEntryRva");
29803 size_t get_word_size() const ROSE_DEPRECATED("use get_wordSize");
29804 void add_section(SgAsmGenericSection*) ROSE_DEPRECATED("use addSection");
29805 void remove_section(SgAsmGenericSection*) ROSE_DEPRECATED("use removeSection");
29806 SgAsmGenericSectionPtrList get_mapped_sections() const ROSE_DEPRECATED("use get_mappedSections");
29807 SgAsmGenericSectionPtrList get_sections_by_id(int) const ROSE_DEPRECATED("use get_sectionsById");
29808 SgAsmGenericSectionPtrList get_sections_by_name(std::string, char=0) const ROSE_DEPRECATED("use get_sectionsByName");
29809 SgAsmGenericSectionPtrList get_sections_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address) const
29810 ROSE_DEPRECATED("use get_sectionsByOffset");
29811 SgAsmGenericSectionPtrList get_sections_by_rva(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_sectionsByRva");
29812 SgAsmGenericSectionPtrList get_sections_by_va(Rose::BinaryAnalysis::Address, bool) const
29813 ROSE_DEPRECATED("use get_sectionsByVa");
29814 SgAsmGenericSection *get_section_by_id(int, size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionById");
29815 SgAsmGenericSection *get_section_by_name(const std::string&, char=0, size_t* = nullptr) const
29816 ROSE_DEPRECATED("use get_sectionByName");
29817 SgAsmGenericSection *get_section_by_offset(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address,
29818 size_t* = nullptr) const ROSE_DEPRECATED("use get_sectionByOffset");
29819 SgAsmGenericSection *get_section_by_rva(Rose::BinaryAnalysis::Address, size_t* = nullptr) const
29820 ROSE_DEPRECATED("use get_sectionByRva");
29821 SgAsmGenericSection *get_section_by_va(Rose::BinaryAnalysis::Address, bool, size_t* = nullptr) const
29822 ROSE_DEPRECATED("use get_sectionByVa");
29823 SgAsmGenericSection *get_best_section_by_va(Rose::BinaryAnalysis::Address, bool, size_t* = nullptr) const
29824 ROSE_DEPRECATED("use get_bestSectionByVa");
29825public:
29828
29829public:
29832
29833protected:
29841#endif // SgAsmGenericHeader_OTHERS
29842#ifdef DOCUMENTATION
29843};
29844#endif // DOCUMENTATION
29845
29846
29848// SgAsmDOSExtendedHeader -- MACHINE GENERATED; DO NOT MODIFY --
29850
29851DECLARE_LEAF_CLASS(AsmDOSExtendedHeader);
29852IS_SERIALIZABLE(AsmDOSExtendedHeader);
29853
29854#ifndef DOCUMENTATION
29855AsmDOSExtendedHeader.useSmallHeader(true);
29856#endif // !DOCUMENTATION
29857
29858DECLARE_HEADERS(AsmDOSExtendedHeader);
29859#if defined(SgAsmDOSExtendedHeader_HEADERS) || defined(DOCUMENTATION)
29860#include <Rose/BinaryAnalysis/Address.h>
29861#endif // SgAsmDOSExtendedHeader_HEADERS
29862
29863#ifdef DOCUMENTATION
29868#endif // DOCUMENTATION
29869
29870#ifndef DOCUMENTATION
29871 AsmDOSExtendedHeader.setDataPrototype(
29872 "unsigned", "e_res1", "= 0",
29873 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29874#endif // !DOCUMENTATION
29875
29876#ifndef DOCUMENTATION
29877 AsmDOSExtendedHeader.setDataPrototype(
29878 "unsigned", "e_oemid", "= 0",
29879 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29880#endif // !DOCUMENTATION
29881
29882#ifndef DOCUMENTATION
29883 AsmDOSExtendedHeader.setDataPrototype(
29884 "unsigned", "e_oeminfo", "= 0",
29885 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29886#endif // !DOCUMENTATION
29887
29888#ifndef DOCUMENTATION
29889 AsmDOSExtendedHeader.setDataPrototype(
29890 "unsigned", "e_res2", "= 0",
29891 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29892#endif // !DOCUMENTATION
29893
29894#ifndef DOCUMENTATION
29895 AsmDOSExtendedHeader.setDataPrototype(
29896 "unsigned", "e_res3", "= 0",
29897 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29898#endif // !DOCUMENTATION
29899
29900#ifndef DOCUMENTATION
29901 AsmDOSExtendedHeader.setDataPrototype(
29902 "unsigned", "e_res4", "= 0",
29903 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29904#endif // !DOCUMENTATION
29905
29906#ifndef DOCUMENTATION
29907 AsmDOSExtendedHeader.setDataPrototype(
29908 "unsigned", "e_res5", "= 0",
29909 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29910#endif // !DOCUMENTATION
29911
29912#ifndef DOCUMENTATION
29913 AsmDOSExtendedHeader.setDataPrototype(
29914 "unsigned", "e_res6", "= 0",
29915 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29916#endif // !DOCUMENTATION
29917
29918#ifndef DOCUMENTATION
29919 AsmDOSExtendedHeader.setDataPrototype(
29920 "Rose::BinaryAnalysis::Address", "e_lfanew", "= 0",
29921 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
29922#endif // !DOCUMENTATION
29923
29924 DECLARE_OTHERS(AsmDOSExtendedHeader);
29925#if defined(SgAsmDOSExtendedHeader_OTHERS) || defined(DOCUMENTATION)
29926
29927 //----------------------- Boost serialization for SgAsmDOSExtendedHeader -----------------------
29928#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
29929private:
29930 friend class boost::serialization::access;
29931
29932 template<class S>
29933 void serialize(S &s, const unsigned /*version*/) {
29934 debugSerializationBegin("SgAsmDOSExtendedHeader");
29935 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
29936 s & BOOST_SERIALIZATION_NVP(p_e_res1);
29937 s & BOOST_SERIALIZATION_NVP(p_e_oemid);
29938 s & BOOST_SERIALIZATION_NVP(p_e_oeminfo);
29939 s & BOOST_SERIALIZATION_NVP(p_e_res2);
29940 s & BOOST_SERIALIZATION_NVP(p_e_res3);
29941 s & BOOST_SERIALIZATION_NVP(p_e_res4);
29942 s & BOOST_SERIALIZATION_NVP(p_e_res5);
29943 s & BOOST_SERIALIZATION_NVP(p_e_res6);
29944 s & BOOST_SERIALIZATION_NVP(p_e_lfanew);
29945 debugSerializationEnd("SgAsmDOSExtendedHeader");
29946 }
29947#endif // ROSE_ENABLE_BOOST_SERIALIZATION
29949 // Local types
29951public:
29952#ifdef _MSC_VER
29953# pragma pack (1)
29954#endif
29956 uint32_t e_res1; /* 0x00 reserved */
29957 uint16_t e_oemid; /* 0x04 OEM Identifier */
29958 uint16_t e_oeminfo; /* 0x06 other OEM information; oemid specific */
29959 uint32_t e_res2; /* 0x08 reserved */
29960 uint32_t e_res3; /* 0x0c reserved */
29961 uint32_t e_res4; /* 0x10 reserved */
29962 uint32_t e_res5; /* 0x14 reserved */
29963 uint32_t e_res6; /* 0x18 reserved */
29964 uint32_t e_lfanew; /* 0x1c file offset of new exe (PE) header */
29965 } /* 0x20 */
29966#if !defined(SWIG) && !defined(_MSC_VER)
29967 __attribute__((packed))
29968#endif
29969 ;
29970#ifdef _MSC_VER
29971# pragma pack ()
29972#endif
29973
29975 // Properties
29977public:
29978public:
29984 unsigned const& get_e_res1() const;
29985 void set_e_res1(unsigned const&);
29988public:
29994 unsigned const& get_e_oemid() const;
29995 void set_e_oemid(unsigned const&);
29998public:
30004 unsigned const& get_e_oeminfo() const;
30005 void set_e_oeminfo(unsigned const&);
30008public:
30014 unsigned const& get_e_res2() const;
30015 void set_e_res2(unsigned const&);
30018public:
30024 unsigned const& get_e_res3() const;
30025 void set_e_res3(unsigned const&);
30028public:
30034 unsigned const& get_e_res4() const;
30035 void set_e_res4(unsigned const&);
30038public:
30044 unsigned const& get_e_res5() const;
30045 void set_e_res5(unsigned const&);
30048public:
30054 unsigned const& get_e_res6() const;
30055 void set_e_res6(unsigned const&);
30058public:
30068 // Functions
30070public:
30072 virtual SgAsmDOSExtendedHeader *parse() override;
30074 virtual void unparse(std::ostream&) const override;
30075 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
30076public:
30079
30080public:
30083
30084protected:
30092#endif // SgAsmDOSExtendedHeader_OTHERS
30093#ifdef DOCUMENTATION
30094};
30095#endif // DOCUMENTATION
30096
30097
30099// SgAsmDirectRegisterExpression -- MACHINE GENERATED; DO NOT MODIFY --
30101
30102DECLARE_LEAF_CLASS(AsmDirectRegisterExpression);
30103IS_SERIALIZABLE(AsmDirectRegisterExpression);
30104
30105#ifndef DOCUMENTATION
30106AsmDirectRegisterExpression.useSmallHeader(true);
30107#endif // !DOCUMENTATION
30108
30109#ifdef DOCUMENTATION
30112#endif // DOCUMENTATION
30113
30114 DECLARE_OTHERS(AsmDirectRegisterExpression);
30115#if defined(SgAsmDirectRegisterExpression_OTHERS) || defined(DOCUMENTATION)
30116
30117 //----------------------- Boost serialization for SgAsmDirectRegisterExpression -----------------------
30118#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30119private:
30120 friend class boost::serialization::access;
30121
30122 template<class S>
30123 void serialize(S &s, const unsigned /*version*/) {
30124 debugSerializationBegin("SgAsmDirectRegisterExpression");
30125 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmRegisterReferenceExpression);
30126 debugSerializationEnd("SgAsmDirectRegisterExpression");
30127 }
30128#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30129
30130public:
30133
30134public:
30137
30138public:
30141
30142protected:
30150#endif // SgAsmDirectRegisterExpression_OTHERS
30151#ifdef DOCUMENTATION
30152};
30153#endif // DOCUMENTATION
30154
30155
30157// SgAsmRegisterReferenceExpression -- MACHINE GENERATED; DO NOT MODIFY --
30159
30160#ifndef DOCUMENTATION
30161AstNodeClass& AsmRegisterReferenceExpression = nonTerminalConstructor(
30162 "AsmRegisterReferenceExpression",
30163 *this,
30164 "AsmRegisterReferenceExpression",
30165 "AsmRegisterReferenceExpressionTag",
30166 SubclassListBuilder()
30167 | AsmDirectRegisterExpression
30168 | AsmIndirectRegisterExpression
30169 , false);
30170assert(AsmRegisterReferenceExpression.associatedGrammar != nullptr);
30171AsmRegisterReferenceExpression.setCppCondition("!defined(DOCUMENTATION)");
30172AsmRegisterReferenceExpression.isBoostSerializable(true);
30173AsmRegisterReferenceExpression.setAutomaticGenerationOfConstructor(false);
30174AsmRegisterReferenceExpression.setAutomaticGenerationOfDestructor(false);
30175#endif // !DOCUMENTATION
30176
30177#ifndef DOCUMENTATION
30178AsmRegisterReferenceExpression.useSmallHeader(true);
30179#endif // !DOCUMENTATION
30180
30181#ifdef DOCUMENTATION
30184#endif // DOCUMENTATION
30185
30186#ifndef DOCUMENTATION
30187 AsmRegisterReferenceExpression.setDataPrototype(
30188 "Rose::BinaryAnalysis::RegisterDescriptor", "descriptor", "",
30189 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30190#endif // !DOCUMENTATION
30191
30192#ifndef DOCUMENTATION
30193 AsmRegisterReferenceExpression.setDataPrototype(
30194 "int", "adjustment", "= 0",
30195 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30196#endif // !DOCUMENTATION
30197
30198 DECLARE_OTHERS(AsmRegisterReferenceExpression);
30199#if defined(SgAsmRegisterReferenceExpression_OTHERS) || defined(DOCUMENTATION)
30200
30201 //----------------------- Boost serialization for SgAsmRegisterReferenceExpression -----------------------
30202#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30203private:
30204 friend class boost::serialization::access;
30205
30206 template<class S>
30207 void serialize(S &s, const unsigned /*version*/) {
30208 debugSerializationBegin("SgAsmRegisterReferenceExpression");
30209 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30210 s & BOOST_SERIALIZATION_NVP(p_descriptor);
30211 s & BOOST_SERIALIZATION_NVP(p_adjustment);
30212 debugSerializationEnd("SgAsmRegisterReferenceExpression");
30213 }
30214#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30215public:
30216public:
30224public:
30230 int const& get_adjustment() const;
30231 void set_adjustment(int const&);
30234public:
30237
30238protected:
30241
30242protected:
30245
30246protected:
30254#endif // SgAsmRegisterReferenceExpression_OTHERS
30255#ifdef DOCUMENTATION
30256};
30257#endif // DOCUMENTATION
30258
30259
30261// SgAsmControlFlagsExpression -- MACHINE GENERATED; DO NOT MODIFY --
30263
30264DECLARE_LEAF_CLASS(AsmControlFlagsExpression);
30265IS_SERIALIZABLE(AsmControlFlagsExpression);
30266
30267#ifndef DOCUMENTATION
30268AsmControlFlagsExpression.useSmallHeader(true);
30269#endif // !DOCUMENTATION
30270
30271DECLARE_HEADERS(AsmControlFlagsExpression);
30272#if defined(SgAsmControlFlagsExpression_HEADERS) || defined(DOCUMENTATION)
30273// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
30274#endif // SgAsmControlFlagsExpression_HEADERS
30275
30276#ifdef DOCUMENTATION
30278#endif // DOCUMENTATION
30279
30280#ifndef DOCUMENTATION
30281 AsmControlFlagsExpression.setDataPrototype(
30282 "unsigned long", "bitFlags", "= 0",
30283 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30284#endif // !DOCUMENTATION
30285
30286 DECLARE_OTHERS(AsmControlFlagsExpression);
30287#if defined(SgAsmControlFlagsExpression_OTHERS) || defined(DOCUMENTATION)
30288
30289 //----------------------- Boost serialization for SgAsmControlFlagsExpression -----------------------
30290#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30291private:
30292 friend class boost::serialization::access;
30293
30294 template<class S>
30295 void serialize(S &s, const unsigned /*version*/) {
30296 debugSerializationBegin("SgAsmControlFlagsExpression");
30297 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30298 s & BOOST_SERIALIZATION_NVP(p_bitFlags);
30299 debugSerializationEnd("SgAsmControlFlagsExpression");
30300 }
30301#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30302public:
30303public:
30304 unsigned long const& get_bitFlags() const;
30305 void set_bitFlags(unsigned long const&);
30306 // [Robb Matzke 2023-11-06] deprecated 2023-11
30307 unsigned long get_bit_flags() const ROSE_DEPRECATED("use get_bitFlags");
30308 void set_bit_flags(unsigned long) ROSE_DEPRECATED("use set_bitFlags");
30309public:
30312
30313public:
30316
30317protected:
30325#endif // SgAsmControlFlagsExpression_OTHERS
30326#ifdef DOCUMENTATION
30327};
30328#endif // DOCUMENTATION
30329
30330
30332// SgAsmConstantExpression -- MACHINE GENERATED; DO NOT MODIFY --
30334
30335#ifndef DOCUMENTATION
30336AstNodeClass& AsmConstantExpression = nonTerminalConstructor(
30337 "AsmConstantExpression",
30338 *this,
30339 "AsmConstantExpression",
30340 "AsmConstantExpressionTag",
30341 SubclassListBuilder()
30342 | AsmFloatValueExpression
30343 | AsmIntegerValueExpression
30344 , false);
30345assert(AsmConstantExpression.associatedGrammar != nullptr);
30346AsmConstantExpression.setCppCondition("!defined(DOCUMENTATION)");
30347AsmConstantExpression.isBoostSerializable(true);
30348AsmConstantExpression.setAutomaticGenerationOfConstructor(false);
30349AsmConstantExpression.setAutomaticGenerationOfDestructor(false);
30350#endif // !DOCUMENTATION
30351
30352#ifndef DOCUMENTATION
30353AsmConstantExpression.useSmallHeader(true);
30354#endif // !DOCUMENTATION
30355
30356DECLARE_HEADERS(AsmConstantExpression);
30357#if defined(SgAsmConstantExpression_HEADERS) || defined(DOCUMENTATION)
30358#include <Sawyer/BitVector.h>
30359#endif // SgAsmConstantExpression_HEADERS
30360
30361#ifdef DOCUMENTATION
30367#endif // DOCUMENTATION
30368
30369#ifndef DOCUMENTATION
30370 AsmConstantExpression.setDataPrototype(
30371 "Sawyer::Container::BitVector", "bitVector", "",
30372 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30373#endif // !DOCUMENTATION
30374
30375 DECLARE_OTHERS(AsmConstantExpression);
30376#if defined(SgAsmConstantExpression_OTHERS) || defined(DOCUMENTATION)
30377
30378 //----------------------- Boost serialization for SgAsmConstantExpression -----------------------
30379#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30380private:
30381 friend class boost::serialization::access;
30382
30383 template<class S>
30384 void serialize(S &s, const unsigned /*version*/) {
30385 debugSerializationBegin("SgAsmConstantExpression");
30386 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmValueExpression);
30387 s & BOOST_SERIALIZATION_NVP(p_bitVector);
30388 debugSerializationEnd("SgAsmConstantExpression");
30389 }
30390#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30391public:
30392public:
30403public:
30406
30407protected:
30410
30411protected:
30419#endif // SgAsmConstantExpression_OTHERS
30420#ifdef DOCUMENTATION
30421};
30422#endif // DOCUMENTATION
30423
30424
30426// SgAsmValueExpression -- MACHINE GENERATED; DO NOT MODIFY --
30428
30429#ifndef DOCUMENTATION
30430AstNodeClass& AsmValueExpression = nonTerminalConstructor(
30431 "AsmValueExpression",
30432 *this,
30433 "AsmValueExpression",
30434 "AsmValueExpressionTag",
30435 SubclassListBuilder()
30436 | AsmConstantExpression
30437 , false);
30438assert(AsmValueExpression.associatedGrammar != nullptr);
30439AsmValueExpression.setCppCondition("!defined(DOCUMENTATION)");
30440AsmValueExpression.isBoostSerializable(true);
30441AsmValueExpression.setAutomaticGenerationOfConstructor(false);
30442AsmValueExpression.setAutomaticGenerationOfDestructor(false);
30443#endif // !DOCUMENTATION
30444
30445#ifndef DOCUMENTATION
30446AsmValueExpression.useSmallHeader(true);
30447#endif // !DOCUMENTATION
30448
30449#ifdef DOCUMENTATION
30458#endif // DOCUMENTATION
30459
30460#ifndef DOCUMENTATION
30461 AsmValueExpression.setDataPrototype(
30462 "SgAsmValueExpression*", "unfoldedExpression", "= nullptr",
30463 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30464#endif // !DOCUMENTATION
30465
30466#ifndef DOCUMENTATION
30467 AsmValueExpression.setDataPrototype(
30468 "unsigned short", "bitOffset", "= 0",
30469 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30470#endif // !DOCUMENTATION
30471
30472#ifndef DOCUMENTATION
30473 AsmValueExpression.setDataPrototype(
30474 "unsigned short", "bitSize", "= 0",
30475 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30476#endif // !DOCUMENTATION
30477
30478#ifndef DOCUMENTATION
30479 AsmValueExpression.setDataPrototype(
30480 "SgSymbol*", "symbol", "= nullptr",
30481 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30482#endif // !DOCUMENTATION
30483
30484 DECLARE_OTHERS(AsmValueExpression);
30485#if defined(SgAsmValueExpression_OTHERS) || defined(DOCUMENTATION)
30486
30487 //----------------------- Boost serialization for SgAsmValueExpression -----------------------
30488#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30489private:
30490 friend class boost::serialization::access;
30491
30492 template<class S>
30493 void serialize(S &s, const unsigned /*version*/) {
30494 debugSerializationBegin("SgAsmValueExpression");
30495 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30496 s & BOOST_SERIALIZATION_NVP(p_unfoldedExpression);
30497 s & BOOST_SERIALIZATION_NVP(p_bitOffset);
30498 s & BOOST_SERIALIZATION_NVP(p_bitSize);
30499 debugSerializationEnd("SgAsmValueExpression");
30500 }
30501#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30502public:
30503public:
30515public:
30524 unsigned short const& get_bitOffset() const;
30525 void set_bitOffset(unsigned short const&);
30528public:
30535 unsigned short const& get_bitSize() const;
30536 void set_bitSize(unsigned short const&);
30539public:
30546 SgSymbol* const& get_symbol() const;
30547 void set_symbol(SgSymbol* const&);
30550 // Deprecated 2023-11
30552public:
30553 SgAsmValueExpression* get_unfolded_expression_tree() const ROSE_DEPRECATED("use get_unfoldedExpression");
30554 void set_unfolded_expression_tree(SgAsmValueExpression*) ROSE_DEPRECATED("use set_unfoldedExpression");
30555 unsigned short get_bit_offset() const ROSE_DEPRECATED("use get_bitOffset");
30556 void set_bit_offset(unsigned short) ROSE_DEPRECATED("use set_bitOffset");
30557 unsigned short get_bit_size() const ROSE_DEPRECATED("use get_bitSize");
30558 void set_bit_size(unsigned short) ROSE_DEPRECATED("use set_bitSize");
30559public:
30562
30563protected:
30566
30567protected:
30575#endif // SgAsmValueExpression_OTHERS
30576#ifdef DOCUMENTATION
30577};
30578#endif // DOCUMENTATION
30579
30580
30582// SgAsmCommonSubExpression -- MACHINE GENERATED; DO NOT MODIFY --
30584
30585DECLARE_LEAF_CLASS(AsmCommonSubExpression);
30586IS_SERIALIZABLE(AsmCommonSubExpression);
30587
30588#ifndef DOCUMENTATION
30589AsmCommonSubExpression.useSmallHeader(true);
30590#endif // !DOCUMENTATION
30591
30592DECLARE_HEADERS(AsmCommonSubExpression);
30593#if defined(SgAsmCommonSubExpression_HEADERS) || defined(DOCUMENTATION)
30594// FIXME[Robb P Matzke 2016-10-31]: no idea what this is
30595#endif // SgAsmCommonSubExpression_HEADERS
30596
30597#ifdef DOCUMENTATION
30599#endif // DOCUMENTATION
30600
30601#ifndef DOCUMENTATION
30602 AsmCommonSubExpression.setDataPrototype(
30603 "SgAsmExpression*", "subexpression", "= nullptr",
30604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30605#endif // !DOCUMENTATION
30606
30607 DECLARE_OTHERS(AsmCommonSubExpression);
30608#if defined(SgAsmCommonSubExpression_OTHERS) || defined(DOCUMENTATION)
30609
30610 //----------------------- Boost serialization for SgAsmCommonSubExpression -----------------------
30611#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30612private:
30613 friend class boost::serialization::access;
30614
30615 template<class S>
30616 void serialize(S &s, const unsigned /*version*/) {
30617 debugSerializationBegin("SgAsmCommonSubExpression");
30618 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExpression);
30619 s & BOOST_SERIALIZATION_NVP(p_subexpression);
30620 debugSerializationEnd("SgAsmCommonSubExpression");
30621 }
30622#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30623public:
30624public:
30625 SgAsmExpression* const& get_subexpression() const;
30626 void set_subexpression(SgAsmExpression* const&);
30627
30628public:
30631
30632public:
30635
30636protected:
30644#endif // SgAsmCommonSubExpression_OTHERS
30645#ifdef DOCUMENTATION
30646};
30647#endif // DOCUMENTATION
30648
30649
30651// SgAsmCoffSymbolTable -- MACHINE GENERATED; DO NOT MODIFY --
30653
30654DECLARE_LEAF_CLASS(AsmCoffSymbolTable);
30655IS_SERIALIZABLE(AsmCoffSymbolTable);
30656
30657#ifndef DOCUMENTATION
30658AsmCoffSymbolTable.useSmallHeader(true);
30659#endif // !DOCUMENTATION
30660
30661DECLARE_HEADERS(AsmCoffSymbolTable);
30662#if defined(SgAsmCoffSymbolTable_HEADERS) || defined(DOCUMENTATION)
30663#ifdef ROSE_SgAsmCoffSymbolTable_IMPL
30664#include <SgAsmCoffSymbolList.h>
30665#endif
30666#endif // SgAsmCoffSymbolTable_HEADERS
30667
30668#ifdef DOCUMENTATION
30673#endif // DOCUMENTATION
30674
30675#ifndef DOCUMENTATION
30676 AsmCoffSymbolTable.setDataPrototype(
30677 "SgAsmGenericSection*", "strtab", "= nullptr",
30678 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30679#endif // !DOCUMENTATION
30680
30681#ifndef DOCUMENTATION
30682 AsmCoffSymbolTable.setDataPrototype(
30683 "SgAsmCoffSymbolList*", "symbols", "= createAndParent<SgAsmCoffSymbolList>(this)",
30684 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30685#endif // !DOCUMENTATION
30686
30687 DECLARE_OTHERS(AsmCoffSymbolTable);
30688#if defined(SgAsmCoffSymbolTable_OTHERS) || defined(DOCUMENTATION)
30689
30690 //----------------------- Boost serialization for SgAsmCoffSymbolTable -----------------------
30691#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30692private:
30693 friend class boost::serialization::access;
30694
30695 template<class S>
30696 void serialize(S &s, const unsigned /*version*/) {
30697 debugSerializationBegin("SgAsmCoffSymbolTable");
30698 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
30699 s & BOOST_SERIALIZATION_NVP(p_strtab);
30700 s & BOOST_SERIALIZATION_NVP(p_symbols);
30701 debugSerializationEnd("SgAsmCoffSymbolTable");
30702 }
30703#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30704public:
30705public:
30715public:
30722public:
30724 size_t get_nslots() const;
30725 virtual SgAsmCoffSymbolTable *parse() override;
30726 virtual void unparse(std::ostream&) const override;
30727 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
30728public:
30731
30732public:
30735
30736protected:
30744#endif // SgAsmCoffSymbolTable_OTHERS
30745#ifdef DOCUMENTATION
30746};
30747#endif // DOCUMENTATION
30748
30749
30751// SgAsmCoffSymbolList -- MACHINE GENERATED; DO NOT MODIFY --
30753
30754DECLARE_LEAF_CLASS(AsmCoffSymbolList);
30755IS_SERIALIZABLE(AsmCoffSymbolList);
30756
30757#ifndef DOCUMENTATION
30758AsmCoffSymbolList.useSmallHeader(true);
30759#endif // !DOCUMENTATION
30760
30761DECLARE_HEADERS(AsmCoffSymbolList);
30762#if defined(SgAsmCoffSymbolList_HEADERS) || defined(DOCUMENTATION)
30763#include <sageContainer.h>
30764#endif // SgAsmCoffSymbolList_HEADERS
30765
30766#ifdef DOCUMENTATION
30769#endif // DOCUMENTATION
30770
30771#ifndef DOCUMENTATION
30772 AsmCoffSymbolList.setDataPrototype(
30773 "SgAsmCoffSymbolPtrList", "symbols", "",
30774 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
30775#endif // !DOCUMENTATION
30776
30777 DECLARE_OTHERS(AsmCoffSymbolList);
30778#if defined(SgAsmCoffSymbolList_OTHERS) || defined(DOCUMENTATION)
30779
30780 //----------------------- Boost serialization for SgAsmCoffSymbolList -----------------------
30781#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30782private:
30783 friend class boost::serialization::access;
30784
30785 template<class S>
30786 void serialize(S &s, const unsigned /*version*/) {
30787 debugSerializationBegin("SgAsmCoffSymbolList");
30788 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
30789 s & BOOST_SERIALIZATION_NVP(p_symbols);
30790 debugSerializationEnd("SgAsmCoffSymbolList");
30791 }
30792#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30793public:
30794public:
30798 SgAsmCoffSymbolPtrList const& get_symbols() const;
30799 SgAsmCoffSymbolPtrList& get_symbols();
30800 void set_symbols(SgAsmCoffSymbolPtrList const&);
30803public:
30806
30807public:
30810
30811protected:
30819#endif // SgAsmCoffSymbolList_OTHERS
30820#ifdef DOCUMENTATION
30821};
30822#endif // DOCUMENTATION
30823
30824
30826// SgAsmCoffSymbol -- MACHINE GENERATED; DO NOT MODIFY --
30828
30829DECLARE_LEAF_CLASS(AsmCoffSymbol);
30830IS_SERIALIZABLE(AsmCoffSymbol);
30831
30832#ifndef DOCUMENTATION
30833AsmCoffSymbol.useSmallHeader(true);
30834#endif // !DOCUMENTATION
30835
30836DECLARE_HEADERS(AsmCoffSymbol);
30837#if defined(SgAsmCoffSymbol_HEADERS) || defined(DOCUMENTATION)
30838#include <Rose/BinaryAnalysis/Address.h>
30839
30840#include <sageContainer.h>
30841#endif // SgAsmCoffSymbol_HEADERS
30842
30843#ifdef DOCUMENTATION
30846#endif // DOCUMENTATION
30847
30848#ifndef DOCUMENTATION
30849 AsmCoffSymbol.setDataPrototype(
30850 "std::string", "st_name", "",
30851 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30852#endif // !DOCUMENTATION
30853
30854#ifndef DOCUMENTATION
30855 AsmCoffSymbol.setDataPrototype(
30856 "Rose::BinaryAnalysis::Address", "st_name_offset", "= 0",
30857 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30858#endif // !DOCUMENTATION
30859
30860#ifndef DOCUMENTATION
30861 AsmCoffSymbol.setDataPrototype(
30862 "int", "st_section_num", "= 0",
30863 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30864#endif // !DOCUMENTATION
30865
30866#ifndef DOCUMENTATION
30867 AsmCoffSymbol.setDataPrototype(
30868 "unsigned", "st_type", "= 0",
30869 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30870#endif // !DOCUMENTATION
30871
30872#ifndef DOCUMENTATION
30873 AsmCoffSymbol.setDataPrototype(
30874 "unsigned", "st_storage_class", "= 0",
30875 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30876#endif // !DOCUMENTATION
30877
30878#ifndef DOCUMENTATION
30879 AsmCoffSymbol.setDataPrototype(
30880 "unsigned", "st_num_aux_entries", "= 0",
30881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30882#endif // !DOCUMENTATION
30883
30884#ifndef DOCUMENTATION
30885 AsmCoffSymbol.setDataPrototype(
30886 "SgUnsignedCharList", "auxiliaryData", "",
30887 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
30888#endif // !DOCUMENTATION
30889
30890 DECLARE_OTHERS(AsmCoffSymbol);
30891#if defined(SgAsmCoffSymbol_OTHERS) || defined(DOCUMENTATION)
30892
30893 //----------------------- Boost serialization for SgAsmCoffSymbol -----------------------
30894#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
30895private:
30896 friend class boost::serialization::access;
30897
30898 template<class S>
30899 void serialize(S &s, const unsigned /*version*/) {
30900 debugSerializationBegin("SgAsmCoffSymbol");
30901 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSymbol);
30902 s & BOOST_SERIALIZATION_NVP(p_st_name);
30903 s & BOOST_SERIALIZATION_NVP(p_st_name_offset);
30904 s & BOOST_SERIALIZATION_NVP(p_st_section_num);
30905 s & BOOST_SERIALIZATION_NVP(p_st_type);
30906 s & BOOST_SERIALIZATION_NVP(p_st_storage_class);
30907 s & BOOST_SERIALIZATION_NVP(p_st_num_aux_entries);
30908 s & BOOST_SERIALIZATION_NVP(p_auxiliaryData);
30909 debugSerializationEnd("SgAsmCoffSymbol");
30910 }
30911#endif // ROSE_ENABLE_BOOST_SERIALIZATION
30913 // Local types
30915public:
30916#ifdef _MSC_VER
30917# pragma pack (1)
30918#endif
30920 union {
30921 char st_name[8];
30922 struct {
30923 uint32_t st_zero;
30924 uint32_t st_offset;
30925 };
30926 };
30927 uint32_t st_value;
30928 int16_t st_section_num;
30929 uint16_t st_type;
30930 unsigned char st_storage_class;
30931 unsigned char st_num_aux_entries;
30932 }
30933// DQ (3/7/2013): Adding support to restrict visability to SWIG.
30934#if !defined(SWIG) && !defined(_MSC_VER)
30935 __attribute__((packed))
30936#endif
30937 ;
30938#ifdef _MSC_VER
30939# pragma pack ()
30940#endif
30941
30943 // Properties and data members
30945public:
30946public:
30950 std::string const& get_st_name() const;
30951 void set_st_name(std::string const&);
30954public:
30962public:
30966 int const& get_st_section_num() const;
30967 void set_st_section_num(int const&);
30970public:
30974 unsigned const& get_st_type() const;
30975 void set_st_type(unsigned const&);
30978public:
30982 unsigned const& get_st_storage_class() const;
30983 void set_st_storage_class(unsigned const&);
30986public:
30990 unsigned const& get_st_num_aux_entries() const;
30991 void set_st_num_aux_entries(unsigned const&);
30994public:
30998 SgUnsignedCharList const& get_auxiliaryData() const;
30999 SgUnsignedCharList& get_auxiliaryData();
31000 void set_auxiliaryData(SgUnsignedCharList const&);
31002public:
31003 static const unsigned int COFFSymbol_disk_size = 18;
31004
31006 // Functions
31008public:
31009 SgAsmCoffSymbol(SgAsmPEFileHeader *fhdr, SgAsmGenericSection *symtab, SgAsmGenericSection *strtab, size_t idx);
31010 void *encode(SgAsmCoffSymbol::COFFSymbol_disk*) const;
31011 virtual void dump(FILE *f, const char *prefix, ssize_t idx) const override;
31012
31014 // Deprecated
31016public:
31017 const SgUnsignedCharList& get_aux_data() const ROSE_DEPRECATED("use get_auxiliaryData");
31018 void set_aux_data(const SgUnsignedCharList&) ROSE_DEPRECATED("use set_auxiliaryData");
31019public:
31022
31023public:
31026
31027protected:
31035#endif // SgAsmCoffSymbol_OTHERS
31036#ifdef DOCUMENTATION
31037};
31038#endif // DOCUMENTATION
31039
31040
31042// SgAsmGenericSymbol -- MACHINE GENERATED; DO NOT MODIFY --
31044
31045#ifndef DOCUMENTATION
31046AstNodeClass& AsmGenericSymbol = nonTerminalConstructor(
31047 "AsmGenericSymbol",
31048 *this,
31049 "AsmGenericSymbol",
31050 "AsmGenericSymbolTag",
31051 SubclassListBuilder()
31052 | AsmCoffSymbol
31053 | AsmElfSymbol
31054 , false);
31055assert(AsmGenericSymbol.associatedGrammar != nullptr);
31056AsmGenericSymbol.setCppCondition("!defined(DOCUMENTATION)");
31057AsmGenericSymbol.isBoostSerializable(true);
31058AsmGenericSymbol.setAutomaticGenerationOfConstructor(false);
31059AsmGenericSymbol.setAutomaticGenerationOfDestructor(false);
31060#endif // !DOCUMENTATION
31061
31062#ifndef DOCUMENTATION
31063AsmGenericSymbol.useSmallHeader(true);
31064#endif // !DOCUMENTATION
31065
31066DECLARE_HEADERS(AsmGenericSymbol);
31067#if defined(SgAsmGenericSymbol_HEADERS) || defined(DOCUMENTATION)
31068#include <Rose/BinaryAnalysis/Address.h>
31069
31070/* Base class for symbol tables. */
31071#endif // SgAsmGenericSymbol_HEADERS
31072
31073#ifdef DOCUMENTATION
31075#endif // DOCUMENTATION
31076
31077#ifndef DOCUMENTATION
31078 AsmGenericSymbol.setDataPrototype(
31079 "SgAsmGenericSymbol::SymbolDefState", "definitionState", "= SgAsmGenericSymbol::SYM_UNDEFINED",
31080 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31081#endif // !DOCUMENTATION
31082
31083#ifndef DOCUMENTATION
31084 AsmGenericSymbol.setDataPrototype(
31085 "SgAsmGenericSymbol::SymbolBinding", "binding", "= SgAsmGenericSymbol::SYM_NO_BINDING",
31086 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31087#endif // !DOCUMENTATION
31088
31089#ifndef DOCUMENTATION
31090 AsmGenericSymbol.setDataPrototype(
31091 "SgAsmGenericSymbol::SymbolType", "type", "= SgAsmGenericSymbol::SYM_NO_TYPE",
31092 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31093#endif // !DOCUMENTATION
31094
31095#ifndef DOCUMENTATION
31096 AsmGenericSymbol.setDataPrototype(
31097 "Rose::BinaryAnalysis::Address", "value", "= 0",
31098 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31099#endif // !DOCUMENTATION
31100
31101#ifndef DOCUMENTATION
31102 AsmGenericSymbol.setDataPrototype(
31103 "Rose::BinaryAnalysis::Address", "size", "= 0",
31104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31105#endif // !DOCUMENTATION
31106
31107#ifndef DOCUMENTATION
31108 AsmGenericSymbol.setDataPrototype(
31109 "SgAsmGenericSection*", "bound", "= nullptr",
31110 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31111#endif // !DOCUMENTATION
31112
31113#ifndef DOCUMENTATION
31114 AsmGenericSymbol.setDataPrototype(
31115 "SgAsmGenericString*", "name", "= nullptr",
31116 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
31117#endif // !DOCUMENTATION
31118
31119 DECLARE_OTHERS(AsmGenericSymbol);
31120#if defined(SgAsmGenericSymbol_OTHERS) || defined(DOCUMENTATION)
31121
31122 //----------------------- Boost serialization for SgAsmGenericSymbol -----------------------
31123#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31124private:
31125 friend class boost::serialization::access;
31126
31127 template<class S>
31128 void serialize(S &s, const unsigned /*version*/) {
31129 debugSerializationBegin("SgAsmGenericSymbol");
31130 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
31131 s & BOOST_SERIALIZATION_NVP(p_definitionState);
31132 s & BOOST_SERIALIZATION_NVP(p_binding);
31133 s & BOOST_SERIALIZATION_NVP(p_type);
31134 s & BOOST_SERIALIZATION_NVP(p_value);
31135 s & BOOST_SERIALIZATION_NVP(p_size);
31136 s & BOOST_SERIALIZATION_NVP(p_bound);
31137 s & BOOST_SERIALIZATION_NVP(p_name);
31138 debugSerializationEnd("SgAsmGenericSymbol");
31139 }
31140#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31142 // Local types
31144public:
31151
31165
31173
31175 // Properties
31177public:
31178public:
31186public:
31194public:
31202public:
31210public:
31218public:
31226public:
31235 // Functions
31237public:
31239 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
31240
31242 // Deprecated 2023-11
31244public:
31245 SymbolDefState get_def_state() const ROSE_DEPRECATED("use get_definitionState");
31246 void set_def_state(SymbolDefState) ROSE_DEPRECATED("use set_definitionState");
31247public:
31250
31251protected:
31254
31255protected:
31263#endif // SgAsmGenericSymbol_OTHERS
31264#ifdef DOCUMENTATION
31265};
31266#endif // DOCUMENTATION
31267
31268
31270// SgAsmCoffStrtab -- MACHINE GENERATED; DO NOT MODIFY --
31272
31273DECLARE_LEAF_CLASS(AsmCoffStrtab);
31274IS_SERIALIZABLE(AsmCoffStrtab);
31275
31276#ifndef DOCUMENTATION
31277AsmCoffStrtab.useSmallHeader(true);
31278#endif // !DOCUMENTATION
31279
31280DECLARE_HEADERS(AsmCoffStrtab);
31281#if defined(SgAsmCoffStrtab_HEADERS) || defined(DOCUMENTATION)
31282#include <Rose/BinaryAnalysis/Address.h>
31283#endif // SgAsmCoffStrtab_HEADERS
31284
31285#ifdef DOCUMENTATION
31288#endif // DOCUMENTATION
31289
31290 DECLARE_OTHERS(AsmCoffStrtab);
31291#if defined(SgAsmCoffStrtab_OTHERS) || defined(DOCUMENTATION)
31292
31293 //----------------------- Boost serialization for SgAsmCoffStrtab -----------------------
31294#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31295private:
31296 friend class boost::serialization::access;
31297
31298 template<class S>
31299 void serialize(S &s, const unsigned /*version*/) {
31300 debugSerializationBegin("SgAsmCoffStrtab");
31301 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericStrtab);
31302 debugSerializationEnd("SgAsmCoffStrtab");
31303 }
31304#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31305public:
31306 explicit SgAsmCoffStrtab(class SgAsmPESection *containing_section);
31307 void destructorHelper() override;
31308 virtual void unparse(std::ostream&) const;
31309 virtual SgAsmStringStorage *createStorage(Rose::BinaryAnalysis::Address offset, bool shared) override;
31310 virtual Rose::BinaryAnalysis::Address get_storageSize(const SgAsmStringStorage*) override;
31311
31313 // Deprecated 2023-11
31315 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) override ROSE_DEPRECATED("use createStorage");
31316 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) override
31317 ROSE_DEPRECATED("use get_storageSize");
31318public:
31321
31322public:
31325
31326protected:
31334#endif // SgAsmCoffStrtab_OTHERS
31335#ifdef DOCUMENTATION
31336};
31337#endif // DOCUMENTATION
31338
31339
31341// SgAsmGenericStrtab -- MACHINE GENERATED; DO NOT MODIFY --
31343
31344#ifndef DOCUMENTATION
31345AstNodeClass& AsmGenericStrtab = nonTerminalConstructor(
31346 "AsmGenericStrtab",
31347 *this,
31348 "AsmGenericStrtab",
31349 "AsmGenericStrtabTag",
31350 SubclassListBuilder()
31351 | AsmCoffStrtab
31352 | AsmElfStrtab
31353 , false);
31354assert(AsmGenericStrtab.associatedGrammar != nullptr);
31355AsmGenericStrtab.setCppCondition("!defined(DOCUMENTATION)");
31356AsmGenericStrtab.isBoostSerializable(true);
31357AsmGenericStrtab.setAutomaticGenerationOfConstructor(false);
31358AsmGenericStrtab.setAutomaticGenerationOfDestructor(false);
31359#endif // !DOCUMENTATION
31360
31361#ifndef DOCUMENTATION
31362AsmGenericStrtab.useSmallHeader(true);
31363#endif // !DOCUMENTATION
31364
31365DECLARE_HEADERS(AsmGenericStrtab);
31366#if defined(SgAsmGenericStrtab_HEADERS) || defined(DOCUMENTATION)
31367#include <Rose/BinaryAnalysis/Address.h>
31368#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
31369#endif // SgAsmGenericStrtab_HEADERS
31370
31371#ifdef DOCUMENTATION
31374#endif // DOCUMENTATION
31375
31376#ifndef DOCUMENTATION
31377 AsmGenericStrtab.setDataPrototype(
31378 "SgAsmGenericSection*", "container", "= nullptr",
31379 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31380#endif // !DOCUMENTATION
31381
31382#ifndef DOCUMENTATION
31383 AsmGenericStrtab.setDataPrototype(
31384 "SgAsmGenericStrtab::referenced_t", "storageList", "",
31385 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31386#endif // !DOCUMENTATION
31387
31388#ifndef DOCUMENTATION
31389 AsmGenericStrtab.setDataPrototype(
31390 "Rose::BinaryAnalysis::AddressIntervalSet", "freeList", "",
31391 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31392#endif // !DOCUMENTATION
31393
31394#ifndef DOCUMENTATION
31395 AsmGenericStrtab.setDataPrototype(
31396 "SgAsmStringStorage*", "dontFree", "= nullptr",
31397 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31398#endif // !DOCUMENTATION
31399
31400#ifndef DOCUMENTATION
31401 AsmGenericStrtab.setDataPrototype(
31402 "size_t", "numberFreed", "= 0",
31403 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31404#endif // !DOCUMENTATION
31405
31406 DECLARE_OTHERS(AsmGenericStrtab);
31407#if defined(SgAsmGenericStrtab_OTHERS) || defined(DOCUMENTATION)
31408
31409 //----------------------- Boost serialization for SgAsmGenericStrtab -----------------------
31410#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31411private:
31412 friend class boost::serialization::access;
31413
31414 template<class S>
31415 void serialize(S &s, const unsigned /*version*/) {
31416 debugSerializationBegin("SgAsmGenericStrtab");
31417 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
31418 s & BOOST_SERIALIZATION_NVP(p_container);
31419 s & BOOST_SERIALIZATION_NVP(p_storageList);
31420 s & BOOST_SERIALIZATION_NVP(p_freeList);
31421 s & BOOST_SERIALIZATION_NVP(p_dontFree);
31422 s & BOOST_SERIALIZATION_NVP(p_numberFreed);
31423 debugSerializationEnd("SgAsmGenericStrtab");
31424 }
31425#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31427 // Local types
31429public:
31430 typedef std::vector<class SgAsmStringStorage*> referenced_t;
31431
31433 // Properties
31435public:
31436public:
31444public:
31448 SgAsmGenericStrtab::referenced_t const& get_storageList() const;
31449 void set_storageList(SgAsmGenericStrtab::referenced_t const&);
31452public:
31461public:
31469public:
31473 size_t const& get_numberFreed() const;
31474 void set_numberFreed(size_t const&);
31477 // Functions
31479public:
31482
31484 virtual SgAsmGenericStrtab* parse() {return this;}
31485
31487 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
31488
31491
31496
31501 void free(Rose::BinaryAnalysis::Address offset, Rose::BinaryAnalysis::Address size); /*mark part of table as free*/
31502
31507 void freeAllStrings(bool blow_away_holes=false);
31508
31509 virtual void allocateOverlap(SgAsmStringStorage*);
31510
31516 bool reallocate(bool shrink);
31517
31518 //These should be pure virtual but ROSETTA apparently doesn't support that (RPM 2008-10-03)
31519 virtual SgAsmStringStorage *createStorage(Rose::BinaryAnalysis::Address /*offset*/, bool /*shared*/);
31520 virtual Rose::BinaryAnalysis::Address get_storageSize(const SgAsmStringStorage*);
31522
31524 // Deprecated 2023-11
31526public:
31527 const referenced_t& get_storage_list() const ROSE_DEPRECATED("use get_storageList");
31528 void set_storage_list(const referenced_t&) ROSE_DEPRECATED("use set_storageList");
31529 const Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() const ROSE_DEPRECATED("use get_freeList");
31530 Rose::BinaryAnalysis::AddressIntervalSet& get_freelist() ROSE_DEPRECATED("use set_freeList");
31531 SgAsmStringStorage* get_dont_free() const ROSE_DEPRECATED("use get_dontFree");
31532 void set_dont_free(SgAsmStringStorage*) ROSE_DEPRECATED("use set_dontFree");
31533 size_t get_num_freed() const ROSE_DEPRECATED("use get_numberFreed");
31534 void set_num_freed(size_t) ROSE_DEPRECATED("use set_numberFreed");
31535 SgAsmStoredString *create_string(Rose::BinaryAnalysis::Address, bool) ROSE_DEPRECATED("use createString");
31536 void free_all_strings(bool=false) ROSE_DEPRECATED("use freeAllStrings");
31537 virtual void allocate_overlap(SgAsmStringStorage*) ROSE_DEPRECATED("use allocateOverlap");
31538 virtual SgAsmStringStorage *create_storage(Rose::BinaryAnalysis::Address, bool) ROSE_DEPRECATED("use createStorage");
31539 virtual Rose::BinaryAnalysis::Address get_storage_size(const SgAsmStringStorage*) ROSE_DEPRECATED("use get_storageSize");
31540public:
31543
31544protected:
31547
31548protected:
31556#endif // SgAsmGenericStrtab_OTHERS
31557#ifdef DOCUMENTATION
31558};
31559#endif // DOCUMENTATION
31560
31561
31563// SgAsmCliHeader -- MACHINE GENERATED; DO NOT MODIFY --
31565
31566DECLARE_LEAF_CLASS(AsmCliHeader);
31567IS_SERIALIZABLE(AsmCliHeader);
31568
31569#ifndef DOCUMENTATION
31570AsmCliHeader.useSmallHeader(true);
31571#endif // !DOCUMENTATION
31572
31573DECLARE_HEADERS(AsmCliHeader);
31574#if defined(SgAsmCliHeader_HEADERS) || defined(DOCUMENTATION)
31575#ifdef ROSE_SgAsmCliHeader_IMPL
31576#include <SgAsmCilMetadataRoot.h>
31577#endif
31578#endif // SgAsmCliHeader_HEADERS
31579
31580#ifdef DOCUMENTATION
31585#endif // DOCUMENTATION
31586
31587#ifndef DOCUMENTATION
31588 AsmCliHeader.setDataPrototype(
31589 "uint32_t", "cb", "= 0",
31590 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31591#endif // !DOCUMENTATION
31592
31593#ifndef DOCUMENTATION
31594 AsmCliHeader.setDataPrototype(
31595 "uint16_t", "majorRuntimeVersion", "= 0",
31596 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31597#endif // !DOCUMENTATION
31598
31599#ifndef DOCUMENTATION
31600 AsmCliHeader.setDataPrototype(
31601 "uint16_t", "minorRuntimeVersion", "= 0",
31602 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31603#endif // !DOCUMENTATION
31604
31605#ifndef DOCUMENTATION
31606 AsmCliHeader.setDataPrototype(
31607 "uint64_t", "metaData", "= 0",
31608 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31609#endif // !DOCUMENTATION
31610
31611#ifndef DOCUMENTATION
31612 AsmCliHeader.setDataPrototype(
31613 "uint32_t", "flags", "= 0",
31614 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31615#endif // !DOCUMENTATION
31616
31617#ifndef DOCUMENTATION
31618 AsmCliHeader.setDataPrototype(
31619 "uint32_t", "entryPointToken", "= 0",
31620 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31621#endif // !DOCUMENTATION
31622
31623#ifndef DOCUMENTATION
31624 AsmCliHeader.setDataPrototype(
31625 "uint64_t", "resources", "= 0",
31626 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31627#endif // !DOCUMENTATION
31628
31629#ifndef DOCUMENTATION
31630 AsmCliHeader.setDataPrototype(
31631 "uint64_t", "strongNameSignature", "= 0",
31632 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31633#endif // !DOCUMENTATION
31634
31635#ifndef DOCUMENTATION
31636 AsmCliHeader.setDataPrototype(
31637 "uint64_t", "codeManagerTable", "= 0",
31638 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31639#endif // !DOCUMENTATION
31640
31641#ifndef DOCUMENTATION
31642 AsmCliHeader.setDataPrototype(
31643 "uint64_t", "vTableFixups", "= 0",
31644 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31645#endif // !DOCUMENTATION
31646
31647#ifndef DOCUMENTATION
31648 AsmCliHeader.setDataPrototype(
31649 "uint64_t", "exportAddressTableJumps", "= 0",
31650 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31651#endif // !DOCUMENTATION
31652
31653#ifndef DOCUMENTATION
31654 AsmCliHeader.setDataPrototype(
31655 "uint64_t", "managedNativeHeader", "= 0",
31656 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31657#endif // !DOCUMENTATION
31658
31659#ifndef DOCUMENTATION
31660 AsmCliHeader.setDataPrototype(
31661 "SgAsmCilMetadataRoot*", "metadataRoot", "= nullptr",
31662 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
31663#endif // !DOCUMENTATION
31664
31665 DECLARE_OTHERS(AsmCliHeader);
31666#if defined(SgAsmCliHeader_OTHERS) || defined(DOCUMENTATION)
31667
31668 //----------------------- Boost serialization for SgAsmCliHeader -----------------------
31669#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
31670private:
31671 friend class boost::serialization::access;
31672
31673 template<class S>
31674 void serialize(S &s, const unsigned /*version*/) {
31675 debugSerializationBegin("SgAsmCliHeader");
31676 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmGenericSection);
31677 s & BOOST_SERIALIZATION_NVP(p_cb);
31678 s & BOOST_SERIALIZATION_NVP(p_majorRuntimeVersion);
31679 s & BOOST_SERIALIZATION_NVP(p_minorRuntimeVersion);
31680 s & BOOST_SERIALIZATION_NVP(p_metaData);
31681 s & BOOST_SERIALIZATION_NVP(p_flags);
31682 s & BOOST_SERIALIZATION_NVP(p_entryPointToken);
31683 s & BOOST_SERIALIZATION_NVP(p_resources);
31684 s & BOOST_SERIALIZATION_NVP(p_strongNameSignature);
31685 s & BOOST_SERIALIZATION_NVP(p_codeManagerTable);
31686 s & BOOST_SERIALIZATION_NVP(p_vTableFixups);
31687 s & BOOST_SERIALIZATION_NVP(p_exportAddressTableJumps);
31688 s & BOOST_SERIALIZATION_NVP(p_managedNativeHeader);
31689 debugSerializationEnd("SgAsmCliHeader");
31690 }
31691#endif // ROSE_ENABLE_BOOST_SERIALIZATION
31692public:
31693public:
31699 uint32_t const& get_cb() const;
31700 void set_cb(uint32_t const&);
31703public:
31709 uint16_t const& get_majorRuntimeVersion() const;
31710 void set_majorRuntimeVersion(uint16_t const&);
31713public:
31719 uint16_t const& get_minorRuntimeVersion() const;
31720 void set_minorRuntimeVersion(uint16_t const&);
31723public:
31729 uint64_t const& get_metaData() const;
31730 void set_metaData(uint64_t const&);
31733public:
31739 uint32_t const& get_flags() const;
31740 void set_flags(uint32_t const&);
31743public:
31749 uint32_t const& get_entryPointToken() const;
31750 void set_entryPointToken(uint32_t const&);
31753public:
31759 uint64_t const& get_resources() const;
31760 void set_resources(uint64_t const&);
31763public:
31769 uint64_t const& get_strongNameSignature() const;
31770 void set_strongNameSignature(uint64_t const&);
31773public:
31779 uint64_t const& get_codeManagerTable() const;
31780 void set_codeManagerTable(uint64_t const&);
31783public:
31789 uint64_t const& get_vTableFixups() const;
31790 void set_vTableFixups(uint64_t const&);
31793public:
31799 uint64_t const& get_exportAddressTableJumps() const;
31800 void set_exportAddressTableJumps(uint64_t const&);
31803public:
31809 uint64_t const& get_managedNativeHeader() const;
31810 void set_managedNativeHeader(uint64_t const&);
31812 // FIXME[Robb Matzke 2023-03-20]: is the lack of serialization a bug?
31813public:
31820 public:
31825
31827 virtual SgAsmCliHeader* parse() override;
31828
31830 virtual void dump(FILE*, const char *prefix, ssize_t idx) const override;
31831public:
31834
31835public:
31838
31839protected:
31847#endif // SgAsmCliHeader_OTHERS
31848#ifdef DOCUMENTATION
31849};
31850#endif // DOCUMENTATION
31851
31852
31854// SgAsmGenericSection -- MACHINE GENERATED; DO NOT MODIFY --
31856
31857#ifndef DOCUMENTATION
31858AstNodeClass& AsmGenericSection = nonTerminalConstructor(
31859 "AsmGenericSection",
31860 *this,
31861 "AsmGenericSection",
31862 "AsmGenericSectionTag",
31863 SubclassListBuilder()
31864 | AsmCliHeader
31865 | AsmCoffSymbolTable
31866 | AsmDOSExtendedHeader
31867 | AsmElfSection
31868 | AsmElfSectionTable
31869 | AsmElfSegmentTable
31870 | AsmGenericHeader
31871 | AsmJvmAttributeTable
31872 | AsmJvmConstantPool
31873 | AsmJvmFieldTable
31874 | AsmJvmMethodTable
31875 | AsmLEEntryTable
31876 | AsmLENameTable
31877 | AsmLEPageTable
31878 | AsmLERelocTable
31879 | AsmLESection
31880 | AsmLESectionTable
31881 | AsmNEEntryTable
31882 | AsmNEModuleTable
31883 | AsmNENameTable
31884 | AsmNERelocTable
31885 | AsmNESection
31886 | AsmNESectionTable
31887 | AsmNEStringTable
31888 | AsmPESection
31889 | AsmPESectionTable
31890 , true);
31891assert(AsmGenericSection.associatedGrammar != nullptr);
31892AsmGenericSection.setCppCondition("!defined(DOCUMENTATION)");
31893AsmGenericSection.isBoostSerializable(true);
31894AsmGenericSection.setAutomaticGenerationOfConstructor(false);
31895AsmGenericSection.setAutomaticGenerationOfDestructor(false);
31896#endif // !DOCUMENTATION
31897
31898#ifndef DOCUMENTATION
31899AsmGenericSection.useSmallHeader(true);
31900#endif // !DOCUMENTATION
31901
31902DECLARE_HEADERS(AsmGenericSection);
31903#if defined(SgAsmGenericSection_HEADERS) || defined(DOCUMENTATION)
31904#include <Rose/BinaryAnalysis/Address.h>
31905#include <Rose/BinaryAnalysis/AddressIntervalSet.h>
31906#include <Rose/BinaryAnalysis/MemoryMap.h>
31907#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h>
31908#include <sageContainer.h>
31909
31910#ifdef ROSE_SgAsmGenericSection_IMPL
31911#include <SgAsmBasicString.h>
31912#endif
31913#endif // SgAsmGenericSection_HEADERS
31914
31915#ifdef DOCUMENTATION
31921#endif // DOCUMENTATION
31922
31923#ifndef DOCUMENTATION
31924 AsmGenericSection.setDataPrototype(
31925 "SgAsmGenericFile*", "file", "= nullptr",
31926 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31927#endif // !DOCUMENTATION
31928
31929#ifndef DOCUMENTATION
31930 AsmGenericSection.setDataPrototype(
31931 "SgAsmGenericHeader*", "header", "= nullptr",
31932 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31933#endif // !DOCUMENTATION
31934
31935#ifndef DOCUMENTATION
31936 AsmGenericSection.setDataPrototype(
31937 "Rose::BinaryAnalysis::Address", "size", "= 0",
31938 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31939#endif // !DOCUMENTATION
31940
31941#ifndef DOCUMENTATION
31942 AsmGenericSection.setDataPrototype(
31943 "Rose::BinaryAnalysis::Address", "offset", "= 0",
31944 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31945#endif // !DOCUMENTATION
31946
31947#ifndef DOCUMENTATION
31948 AsmGenericSection.setDataPrototype(
31949 "Rose::BinaryAnalysis::Address", "fileAlignment", "= 0",
31950 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31951#endif // !DOCUMENTATION
31952
31953#ifndef DOCUMENTATION
31954 AsmGenericSection.setDataPrototype(
31955 "SgFileContentList", "data", "",
31956 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31957#endif // !DOCUMENTATION
31958
31959#ifndef DOCUMENTATION
31960 AsmGenericSection.setDataPrototype(
31961 "SgAsmGenericSection::SectionPurpose", "purpose", "= SgAsmGenericSection::SP_UNSPECIFIED",
31962 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31963#endif // !DOCUMENTATION
31964
31965#ifndef DOCUMENTATION
31966 AsmGenericSection.setDataPrototype(
31967 "bool", "synthesized", "= false",
31968 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31969#endif // !DOCUMENTATION
31970
31971#ifndef DOCUMENTATION
31972 AsmGenericSection.setDataPrototype(
31973 "int", "id", "= -1",
31974 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31975#endif // !DOCUMENTATION
31976
31977#ifndef DOCUMENTATION
31978 AsmGenericSection.setDataPrototype(
31979 "SgAsmGenericString*", "name", "= createAndParent<SgAsmBasicString>(this)",
31980 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31981#endif // !DOCUMENTATION
31982
31983#ifndef DOCUMENTATION
31984 AsmGenericSection.setDataPrototype(
31985 "std::string", "shortName", "",
31986 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31987#endif // !DOCUMENTATION
31988
31989#ifndef DOCUMENTATION
31990 AsmGenericSection.setDataPrototype(
31991 "Rose::BinaryAnalysis::Address", "mappedPreferredRva", "= 0",
31992 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31993#endif // !DOCUMENTATION
31994
31995#ifndef DOCUMENTATION
31996 AsmGenericSection.setDataPrototype(
31997 "Rose::BinaryAnalysis::Address", "mappedSize", "= 0",
31998 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
31999#endif // !DOCUMENTATION
32000
32001#ifndef DOCUMENTATION
32002 AsmGenericSection.setDataPrototype(
32003 "Rose::BinaryAnalysis::Address", "mappedAlignment", "= 0",
32004 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32005#endif // !DOCUMENTATION
32006
32007#ifndef DOCUMENTATION
32008 AsmGenericSection.setDataPrototype(
32009 "bool", "mappedReadPermission", "= false",
32010 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32011#endif // !DOCUMENTATION
32012
32013#ifndef DOCUMENTATION
32014 AsmGenericSection.setDataPrototype(
32015 "bool", "mappedWritePermission", "= false",
32016 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32017#endif // !DOCUMENTATION
32018
32019#ifndef DOCUMENTATION
32020 AsmGenericSection.setDataPrototype(
32021 "bool", "mappedExecutePermission", "= false",
32022 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32023#endif // !DOCUMENTATION
32024
32025#ifndef DOCUMENTATION
32026 AsmGenericSection.setDataPrototype(
32027 "bool", "containsCode", "= false",
32028 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32029#endif // !DOCUMENTATION
32030
32031#ifndef DOCUMENTATION
32032 AsmGenericSection.setDataPrototype(
32033 "Rose::BinaryAnalysis::Address", "mappedActualVa", "= 0",
32034 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32035#endif // !DOCUMENTATION
32036
32037 DECLARE_OTHERS(AsmGenericSection);
32038#if defined(SgAsmGenericSection_OTHERS) || defined(DOCUMENTATION)
32039
32040 //----------------------- Boost serialization for SgAsmGenericSection -----------------------
32041#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32042private:
32043 friend class boost::serialization::access;
32044
32045 template<class S>
32046 void serialize(S &s, const unsigned /*version*/) {
32047 debugSerializationBegin("SgAsmGenericSection");
32048 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmExecutableFileFormat);
32049 s & BOOST_SERIALIZATION_NVP(p_file);
32050 s & BOOST_SERIALIZATION_NVP(p_header);
32051 s & BOOST_SERIALIZATION_NVP(p_size);
32052 s & BOOST_SERIALIZATION_NVP(p_offset);
32053 s & BOOST_SERIALIZATION_NVP(p_fileAlignment);
32054 s & BOOST_SERIALIZATION_NVP(p_data);
32055 s & BOOST_SERIALIZATION_NVP(p_purpose);
32056 s & BOOST_SERIALIZATION_NVP(p_synthesized);
32057 s & BOOST_SERIALIZATION_NVP(p_id);
32058 s & BOOST_SERIALIZATION_NVP(p_name);
32059 s & BOOST_SERIALIZATION_NVP(p_shortName);
32060 s & BOOST_SERIALIZATION_NVP(p_mappedPreferredRva);
32061 s & BOOST_SERIALIZATION_NVP(p_mappedSize);
32062 s & BOOST_SERIALIZATION_NVP(p_mappedAlignment);
32063 s & BOOST_SERIALIZATION_NVP(p_mappedReadPermission);
32064 s & BOOST_SERIALIZATION_NVP(p_mappedWritePermission);
32065 s & BOOST_SERIALIZATION_NVP(p_mappedExecutePermission);
32066 s & BOOST_SERIALIZATION_NVP(p_containsCode);
32067 s & BOOST_SERIALIZATION_NVP(p_mappedActualVa);
32068 debugSerializationEnd("SgAsmGenericSection");
32069 }
32070#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32072 // Local types
32074public:
32086
32088 // Properties
32090public:
32091public:
32099public:
32107public:
32121public:
32129 // Starting file offset of the section
32130
32134public:
32144public:
32154public:
32162public:
32168 bool const& get_synthesized() const;
32169 void set_synthesized(bool const&);
32172public:
32178 int const& get_id() const;
32179 void set_id(int const&);
32182public:
32193public:
32201 void set_shortName(std::string const&);
32202 std::string get_shortName() const;
32204public:
32217public:
32226public:
32234public:
32238 bool const& get_mappedReadPermission() const;
32239 void set_mappedReadPermission(bool const&);
32242public:
32246 bool const& get_mappedWritePermission() const;
32247 void set_mappedWritePermission(bool const&);
32250public:
32254 bool const& get_mappedExecutePermission() const;
32258public:
32268 bool const& get_containsCode() const;
32269 void set_containsCode(bool const&);
32272public:
32290 // Non-property data members
32292private:
32293protected: // Allows local_data_pool to be initialized by subclasses. Note, destruction is problematic, freeing non-allocated ptr.
32294 // Set breakpoint in malloc_error_break to debug [Rasmussen, 2024.03.02]
32295 /* This is an optional local, writable pool for the p_data member. Normally a section will point into the pool
32296 * for its SgAsmGenericFile which is memory-mapped (read-only) from the actual file being parsed. The default
32297 * unparsing action is to write the original data back to the file. By allowing a section to allocate its own
32298 * pool for `data` we create a very easy way to get data into the unparsed file (the alternative is to derive
32299 * a new class and override the unparse() method). */
32300 unsigned char *local_data_pool;
32301
32303 // Functions
32305public:
32313
32315 static void dumpContainingSections(FILE*, const std::string &prefix, Rose::BinaryAnalysis::RelativeVirtualAddress,
32316 const SgAsmGenericSectionPtrList&);
32317
32323
32328
32330 virtual void dump(FILE*, const char *prefix, ssize_t idx) const;
32331
32333 virtual bool reallocate() { return false; }
32334
32338 virtual void unparse(std::ostream&) const;
32339
32341 void unparse(std::ostream&, const ExtentMap&) const;
32342
32344 void unparseHoles(std::ostream&) const;
32345
32351
32354
32362
32376 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, size_t bufsize, const void *buf) const;
32377 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, const std::string &str) const;
32380 Rose::BinaryAnalysis::Address write(std::ostream&, Rose::BinaryAnalysis::Address offset, const SgUnsignedCharList &buf) const;
32387
32392
32400 size_t readContent(Rose::BinaryAnalysis::Address abs_offset, void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
32401
32414 Rose::BinaryAnalysis::Address size, bool strict=true);
32416 void *dst_buf, Rose::BinaryAnalysis::Address size, bool strict=true);
32426 bool strict=true);
32427
32435
32443 std::string readContentString(Rose::BinaryAnalysis::Address abs_offset, bool strict=true);
32445 bool strict=true);
32453 std::string readContentLocalString(Rose::BinaryAnalysis::Address rel_offset, bool strict=true);
32454
32460
32466 int64_t readContentLocalSleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true);
32467
32473 uint64_t readContentLocalUleb128(Rose::BinaryAnalysis::Address *rel_offset, bool strict=true);
32474
32482 unsigned char *writableContent(size_t nbytes);
32483
32490
32497
32501 bool isMapped() const;
32502
32507
32513
32518
32524
32530
32535
32541
32555 bool align();
32556
32557protected:
32558 virtual void destructorHelper() override;
32559
32561 // Deprecated 2023-11
32563public:
32564 Rose::BinaryAnalysis::Address get_file_alignment() const ROSE_DEPRECATED("use get_fileAlignment");
32565 void set_file_alignment(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_fileAlignment");
32566 std::string get_short_name() const ROSE_DEPRECATED("use get_shortName");
32567 void set_short_name(const std::string&) ROSE_DEPRECATED("use set_shortName");
32568 Rose::BinaryAnalysis::Address get_mapped_preferred_rva() const ROSE_DEPRECATED("use get_mappedPreferredRva");
32569 void set_mapped_preferred_rva(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedPreferredRva");
32570 Rose::BinaryAnalysis::Address get_mapped_size() const ROSE_DEPRECATED("use get_mappedSize");
32571 void set_mapped_size(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedSize");
32572 Rose::BinaryAnalysis::Address get_mapped_alignment() const ROSE_DEPRECATED("use get_mappedAlignment");
32573 void set_mapped_alignment(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedAlignment");
32574 bool get_mapped_rperm() const ROSE_DEPRECATED("use get_mappedReadPermission");
32575 void set_mapped_rperm(bool) ROSE_DEPRECATED("use set_mappedReadPermission");
32576 bool get_mapped_wperm() const ROSE_DEPRECATED("use get_mappedWritePermission");
32577 void set_mapped_wperm(bool) ROSE_DEPRECATED("use set_mappedWritePermission");
32578 bool get_mapped_xperm() const ROSE_DEPRECATED("use get_mappedExecutePermission");
32579 void set_mapped_xperm(bool) ROSE_DEPRECATED("use set_mappedExecutePermission");
32580 bool get_contains_code() const ROSE_DEPRECATED("use get_containsCode");
32581 void set_contains_code(bool) ROSE_DEPRECATED("use set_containsCode");
32582 Rose::BinaryAnalysis::Address get_mapped_actual_va() const ROSE_DEPRECATED("use get_mappedActualVa");
32583 void set_mapped_actual_va(Rose::BinaryAnalysis::Address) ROSE_DEPRECATED("use set_mappedActualVa");
32584 static void dump_containing_sections(FILE*, const std::string&, Rose::BinaryAnalysis::RelativeVirtualAddress,
32585 const SgAsmGenericSectionPtrList&)
32586 ROSE_DEPRECATED("use dumpContainingSections");
32587 void grab_content() ROSE_DEPRECATED("use grabContent");
32588 void unparse_holes(std::ostream&) const ROSE_DEPRECATED("use unparseHoles");
32589 SgAsmGenericHeader *is_file_header() ROSE_DEPRECATED("use isFileHeader");
32590 Rose::BinaryAnalysis::Address get_end_offset() const ROSE_DEPRECATED("use get_endOffset");
32591 Rose::BinaryAnalysis::Address write_uleb128(unsigned char*, Rose::BinaryAnalysis::Address, uint64_t) const
32592 ROSE_DEPRECATED("use writeUleb128");
32593 Rose::BinaryAnalysis::Address write_sleb128(unsigned char*, Rose::BinaryAnalysis::Address, int64_t) const
32594 ROSE_DEPRECATED("use writeSleb128");
32595 size_t read_content(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
32596 ROSE_DEPRECATED("use readContent");
32597 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, void*,
32598 Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContent");
32599 size_t read_content(const Rose::BinaryAnalysis::MemoryMap::Ptr&, const Rose::BinaryAnalysis::RelativeVirtualAddress&, void*,
32600 Rose::BinaryAnalysis::Address, bool=true)
32601 ROSE_DEPRECATED("use readContent");
32602 size_t read_content_local(Rose::BinaryAnalysis::Address, void*, Rose::BinaryAnalysis::Address, bool=true)
32603 ROSE_DEPRECATED("use readContentLocal");
32604 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::Address, bool=true)
32605 ROSE_DEPRECATED("use readContentString");
32606 std::string read_content_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentString");
32607 std::string read_content_str(const Rose::BinaryAnalysis::MemoryMap::Ptr&, Rose::BinaryAnalysis::RelativeVirtualAddress,
32608 bool=true)
32609 ROSE_DEPRECATED("use readContentString");
32610 std::string read_content_local_str(Rose::BinaryAnalysis::Address, bool=true) ROSE_DEPRECATED("use readContentLocalString");
32611 SgUnsignedCharList read_content_local_ucl(Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address)
32612 ROSE_DEPRECATED("use readContentLocalUcl");
32613 int64_t read_content_local_sleb128(Rose::BinaryAnalysis::Address*, bool=true) ROSE_DEPRECATED("use readContentLocalSleb128");
32614 uint64_t read_content_local_uleb128(Rose::BinaryAnalysis::Address*, bool=true) ROSE_DEPRECATED("use readContentLocalUleb128");
32615 unsigned char *writable_content(size_t) ROSE_DEPRECATED("use writableContent");
32616 Rose::BinaryAnalysis::AddressIntervalSet get_referenced_extents() const ROSE_DEPRECATED("use get_referencedExtents");
32617 Rose::BinaryAnalysis::AddressIntervalSet get_unreferenced_extents() const ROSE_DEPRECATED("use get_unreferencedExtents");
32618 bool is_mapped() const ROSE_DEPRECATED("use isMapped");
32619 void clear_mapped() ROSE_DEPRECATED("use clearMapped");
32620 Rose::BinaryAnalysis::Address get_base_va() const ROSE_DEPRECATED("use get_baseVa");
32621 Rose::BinaryAnalysis::Address get_mapped_preferred_va() const ROSE_DEPRECATED("use get_mappedPreferredVa");
32622 Rose::BinaryAnalysis::Address get_va_offset(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_vaOffset");
32623 Rose::BinaryAnalysis::Address get_rva_offset(Rose::BinaryAnalysis::Address) const ROSE_DEPRECATED("use get_rvaOffset");
32624 Extent get_file_extent() const ROSE_DEPRECATED("use get_fileExtent");
32625 Extent get_mapped_preferred_extent() const ROSE_DEPRECATED("use get_mappedPreferredExtent");
32626public:
32629
32630public:
32633
32634protected:
32642#endif // SgAsmGenericSection_OTHERS
32643#ifdef DOCUMENTATION
32644};
32645#endif // DOCUMENTATION
32646
32647
32649// SgAsmCilUint8Heap -- MACHINE GENERATED; DO NOT MODIFY --
32651
32652DECLARE_LEAF_CLASS(AsmCilUint8Heap);
32653IS_SERIALIZABLE(AsmCilUint8Heap);
32654
32655#ifndef DOCUMENTATION
32656AsmCilUint8Heap.useSmallHeader(true);
32657#endif // !DOCUMENTATION
32658
32659#ifdef DOCUMENTATION
32662#endif // DOCUMENTATION
32663
32664#ifndef DOCUMENTATION
32665 AsmCilUint8Heap.setDataPrototype(
32666 "std::vector<uint8_t>", "Stream", "",
32667 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32668#endif // !DOCUMENTATION
32669
32670 DECLARE_OTHERS(AsmCilUint8Heap);
32671#if defined(SgAsmCilUint8Heap_OTHERS) || defined(DOCUMENTATION)
32672
32673 //----------------------- Boost serialization for SgAsmCilUint8Heap -----------------------
32674#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32675private:
32676 friend class boost::serialization::access;
32677
32678 template<class S>
32679 void serialize(S &s, const unsigned /*version*/) {
32680 debugSerializationBegin("SgAsmCilUint8Heap");
32681 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
32682 s & BOOST_SERIALIZATION_NVP(p_Stream);
32683 debugSerializationEnd("SgAsmCilUint8Heap");
32684 }
32685#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32686
32687public:
32688 std::vector<uint8_t> const& get_Stream() const;
32689 std::vector<uint8_t>& get_Stream();
32690public:
32691 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
32692 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
32693 void dump(std::ostream& os) const override;
32694public:
32697
32698public:
32701
32702public:
32704 SgAsmCilUint8Heap(uint32_t const& Offset,
32705 uint32_t const& Size,
32706 std::string const& Name,
32707 uint32_t const& NamePadding);
32708
32709protected:
32717#endif // SgAsmCilUint8Heap_OTHERS
32718#ifdef DOCUMENTATION
32719};
32720#endif // DOCUMENTATION
32721
32722
32724// SgAsmCilUint32Heap -- MACHINE GENERATED; DO NOT MODIFY --
32726
32727DECLARE_LEAF_CLASS(AsmCilUint32Heap);
32728IS_SERIALIZABLE(AsmCilUint32Heap);
32729
32730#ifndef DOCUMENTATION
32731AsmCilUint32Heap.useSmallHeader(true);
32732#endif // !DOCUMENTATION
32733
32734#ifdef DOCUMENTATION
32737#endif // DOCUMENTATION
32738
32739#ifndef DOCUMENTATION
32740 AsmCilUint32Heap.setDataPrototype(
32741 "std::vector<uint32_t>", "Stream", "",
32742 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32743#endif // !DOCUMENTATION
32744
32745 DECLARE_OTHERS(AsmCilUint32Heap);
32746#if defined(SgAsmCilUint32Heap_OTHERS) || defined(DOCUMENTATION)
32747
32748 //----------------------- Boost serialization for SgAsmCilUint32Heap -----------------------
32749#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32750private:
32751 friend class boost::serialization::access;
32752
32753 template<class S>
32754 void serialize(S &s, const unsigned /*version*/) {
32755 debugSerializationBegin("SgAsmCilUint32Heap");
32756 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
32757 s & BOOST_SERIALIZATION_NVP(p_Stream);
32758 debugSerializationEnd("SgAsmCilUint32Heap");
32759 }
32760#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32761
32762public:
32763 std::vector<uint32_t> const& get_Stream() const;
32764 std::vector<uint32_t>& get_Stream();
32765public:
32766 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
32767 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
32768 void dump(std::ostream& os) const override;
32769public:
32772
32773public:
32776
32777public:
32779 SgAsmCilUint32Heap(uint32_t const& Offset,
32780 uint32_t const& Size,
32781 std::string const& Name,
32782 uint32_t const& NamePadding);
32783
32784protected:
32792#endif // SgAsmCilUint32Heap_OTHERS
32793#ifdef DOCUMENTATION
32794};
32795#endif // DOCUMENTATION
32796
32797
32799// SgAsmCilTypeSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
32801
32802DECLARE_LEAF_CLASS(AsmCilTypeSpecTable);
32803IS_SERIALIZABLE(AsmCilTypeSpecTable);
32804
32805#ifndef DOCUMENTATION
32806AsmCilTypeSpecTable.useSmallHeader(true);
32807#endif // !DOCUMENTATION
32808
32809#ifdef DOCUMENTATION
32812#endif // DOCUMENTATION
32813
32814#ifndef DOCUMENTATION
32815 AsmCilTypeSpecTable.setDataPrototype(
32816 "std::vector<SgAsmCilTypeSpec*>", "elements", "",
32817 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32818#endif // !DOCUMENTATION
32819
32820 DECLARE_OTHERS(AsmCilTypeSpecTable);
32821#if defined(SgAsmCilTypeSpecTable_OTHERS) || defined(DOCUMENTATION)
32822
32823 //----------------------- Boost serialization for SgAsmCilTypeSpecTable -----------------------
32824#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32825private:
32826 friend class boost::serialization::access;
32827
32828 template<class S>
32829 void serialize(S &s, const unsigned /*version*/) {
32830 debugSerializationBegin("SgAsmCilTypeSpecTable");
32831 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32832 s & BOOST_SERIALIZATION_NVP(p_elements);
32833 debugSerializationEnd("SgAsmCilTypeSpecTable");
32834 }
32835#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32836
32837public:
32838 std::vector<SgAsmCilTypeSpec*> const& get_elements() const;
32839 std::vector<SgAsmCilTypeSpec*>& get_elements();
32840public:
32842public:
32845
32846public:
32849
32850protected:
32858#endif // SgAsmCilTypeSpecTable_OTHERS
32859#ifdef DOCUMENTATION
32860};
32861#endif // DOCUMENTATION
32862
32863
32865// SgAsmCilTypeSpec -- MACHINE GENERATED; DO NOT MODIFY --
32867
32868DECLARE_LEAF_CLASS(AsmCilTypeSpec);
32869IS_SERIALIZABLE(AsmCilTypeSpec);
32870
32871#ifndef DOCUMENTATION
32872AsmCilTypeSpec.useSmallHeader(true);
32873#endif // !DOCUMENTATION
32874
32875#ifdef DOCUMENTATION
32878#endif // DOCUMENTATION
32879
32880#ifndef DOCUMENTATION
32881 AsmCilTypeSpec.setDataPrototype(
32882 "uint32_t", "Signature", "= 0",
32883 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
32884#endif // !DOCUMENTATION
32885
32886 DECLARE_OTHERS(AsmCilTypeSpec);
32887#if defined(SgAsmCilTypeSpec_OTHERS) || defined(DOCUMENTATION)
32888
32889 //----------------------- Boost serialization for SgAsmCilTypeSpec -----------------------
32890#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32891private:
32892 friend class boost::serialization::access;
32893
32894 template<class S>
32895 void serialize(S &s, const unsigned /*version*/) {
32896 debugSerializationBegin("SgAsmCilTypeSpec");
32897 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32898 s & BOOST_SERIALIZATION_NVP(p_Signature);
32899 debugSerializationEnd("SgAsmCilTypeSpec");
32900 }
32901#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32902
32903public:
32909 uint32_t const& get_Signature() const;
32910 void set_Signature(uint32_t const&);
32912public:
32913 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
32914 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
32915 void dump(std::ostream&) const;
32916
32917 const std::uint8_t* get_Signature_blob() const;
32918public:
32921
32922public:
32925
32926protected:
32934#endif // SgAsmCilTypeSpec_OTHERS
32935#ifdef DOCUMENTATION
32936};
32937#endif // DOCUMENTATION
32938
32939
32941// SgAsmCilTypeRefTable -- MACHINE GENERATED; DO NOT MODIFY --
32943
32944DECLARE_LEAF_CLASS(AsmCilTypeRefTable);
32945IS_SERIALIZABLE(AsmCilTypeRefTable);
32946
32947#ifndef DOCUMENTATION
32948AsmCilTypeRefTable.useSmallHeader(true);
32949#endif // !DOCUMENTATION
32950
32951#ifdef DOCUMENTATION
32954#endif // DOCUMENTATION
32955
32956#ifndef DOCUMENTATION
32957 AsmCilTypeRefTable.setDataPrototype(
32958 "std::vector<SgAsmCilTypeRef*>", "elements", "",
32959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
32960#endif // !DOCUMENTATION
32961
32962 DECLARE_OTHERS(AsmCilTypeRefTable);
32963#if defined(SgAsmCilTypeRefTable_OTHERS) || defined(DOCUMENTATION)
32964
32965 //----------------------- Boost serialization for SgAsmCilTypeRefTable -----------------------
32966#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
32967private:
32968 friend class boost::serialization::access;
32969
32970 template<class S>
32971 void serialize(S &s, const unsigned /*version*/) {
32972 debugSerializationBegin("SgAsmCilTypeRefTable");
32973 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
32974 s & BOOST_SERIALIZATION_NVP(p_elements);
32975 debugSerializationEnd("SgAsmCilTypeRefTable");
32976 }
32977#endif // ROSE_ENABLE_BOOST_SERIALIZATION
32978
32979public:
32980 std::vector<SgAsmCilTypeRef*> const& get_elements() const;
32981 std::vector<SgAsmCilTypeRef*>& get_elements();
32982public:
32984public:
32987
32988public:
32991
32992protected:
33000#endif // SgAsmCilTypeRefTable_OTHERS
33001#ifdef DOCUMENTATION
33002};
33003#endif // DOCUMENTATION
33004
33005
33007// SgAsmCilTypeRef -- MACHINE GENERATED; DO NOT MODIFY --
33009
33010DECLARE_LEAF_CLASS(AsmCilTypeRef);
33011IS_SERIALIZABLE(AsmCilTypeRef);
33012
33013#ifndef DOCUMENTATION
33014AsmCilTypeRef.useSmallHeader(true);
33015#endif // !DOCUMENTATION
33016
33017#ifdef DOCUMENTATION
33020#endif // DOCUMENTATION
33021
33022#ifndef DOCUMENTATION
33023 AsmCilTypeRef.setDataPrototype(
33024 "uint16_t", "ResolutionScope", "= 0",
33025 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33026#endif // !DOCUMENTATION
33027
33028#ifndef DOCUMENTATION
33029 AsmCilTypeRef.setDataPrototype(
33030 "uint32_t", "TypeName", "= 0",
33031 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33032#endif // !DOCUMENTATION
33033
33034#ifndef DOCUMENTATION
33035 AsmCilTypeRef.setDataPrototype(
33036 "uint32_t", "TypeNamespace", "= 0",
33037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33038#endif // !DOCUMENTATION
33039
33040 DECLARE_OTHERS(AsmCilTypeRef);
33041#if defined(SgAsmCilTypeRef_OTHERS) || defined(DOCUMENTATION)
33042
33043 //----------------------- Boost serialization for SgAsmCilTypeRef -----------------------
33044#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33045private:
33046 friend class boost::serialization::access;
33047
33048 template<class S>
33049 void serialize(S &s, const unsigned /*version*/) {
33050 debugSerializationBegin("SgAsmCilTypeRef");
33051 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33052 s & BOOST_SERIALIZATION_NVP(p_ResolutionScope);
33053 s & BOOST_SERIALIZATION_NVP(p_TypeName);
33054 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
33055 debugSerializationEnd("SgAsmCilTypeRef");
33056 }
33057#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33058
33059public:
33065 uint16_t const& get_ResolutionScope() const;
33066 void set_ResolutionScope(uint16_t const&);
33069public:
33075 uint32_t const& get_TypeName() const;
33076 void set_TypeName(uint32_t const&);
33079public:
33085 uint32_t const& get_TypeNamespace() const;
33086 void set_TypeNamespace(uint32_t const&);
33088public:
33089 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33090 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33091 void dump(std::ostream&) const;
33092
33093 const SgAsmCilMetadata* get_ResolutionScope_object() const;
33094 const std::uint8_t* get_TypeName_string() const;
33095 const std::uint8_t* get_TypeNamespace_string() const;
33096public:
33099
33100public:
33103
33104protected:
33112#endif // SgAsmCilTypeRef_OTHERS
33113#ifdef DOCUMENTATION
33114};
33115#endif // DOCUMENTATION
33116
33117
33119// SgAsmCilTypeDefTable -- MACHINE GENERATED; DO NOT MODIFY --
33121
33122DECLARE_LEAF_CLASS(AsmCilTypeDefTable);
33123IS_SERIALIZABLE(AsmCilTypeDefTable);
33124
33125#ifndef DOCUMENTATION
33126AsmCilTypeDefTable.useSmallHeader(true);
33127#endif // !DOCUMENTATION
33128
33129#ifdef DOCUMENTATION
33132#endif // DOCUMENTATION
33133
33134#ifndef DOCUMENTATION
33135 AsmCilTypeDefTable.setDataPrototype(
33136 "std::vector<SgAsmCilTypeDef*>", "elements", "",
33137 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33138#endif // !DOCUMENTATION
33139
33140 DECLARE_OTHERS(AsmCilTypeDefTable);
33141#if defined(SgAsmCilTypeDefTable_OTHERS) || defined(DOCUMENTATION)
33142
33143 //----------------------- Boost serialization for SgAsmCilTypeDefTable -----------------------
33144#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33145private:
33146 friend class boost::serialization::access;
33147
33148 template<class S>
33149 void serialize(S &s, const unsigned /*version*/) {
33150 debugSerializationBegin("SgAsmCilTypeDefTable");
33151 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33152 s & BOOST_SERIALIZATION_NVP(p_elements);
33153 debugSerializationEnd("SgAsmCilTypeDefTable");
33154 }
33155#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33156
33157public:
33158 std::vector<SgAsmCilTypeDef*> const& get_elements() const;
33159 std::vector<SgAsmCilTypeDef*>& get_elements();
33160public:
33162public:
33165
33166public:
33169
33170protected:
33178#endif // SgAsmCilTypeDefTable_OTHERS
33179#ifdef DOCUMENTATION
33180};
33181#endif // DOCUMENTATION
33182
33183
33185// SgAsmCilTypeDef -- MACHINE GENERATED; DO NOT MODIFY --
33187
33188DECLARE_LEAF_CLASS(AsmCilTypeDef);
33189IS_SERIALIZABLE(AsmCilTypeDef);
33190
33191#ifndef DOCUMENTATION
33192AsmCilTypeDef.useSmallHeader(true);
33193#endif // !DOCUMENTATION
33194
33195#ifdef DOCUMENTATION
33198#endif // DOCUMENTATION
33199
33200#ifndef DOCUMENTATION
33201 AsmCilTypeDef.setDataPrototype(
33202 "uint32_t", "Flags", "= 0",
33203 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33204#endif // !DOCUMENTATION
33205
33206#ifndef DOCUMENTATION
33207 AsmCilTypeDef.setDataPrototype(
33208 "uint32_t", "TypeName", "= 0",
33209 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33210#endif // !DOCUMENTATION
33211
33212#ifndef DOCUMENTATION
33213 AsmCilTypeDef.setDataPrototype(
33214 "uint32_t", "TypeNamespace", "= 0",
33215 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33216#endif // !DOCUMENTATION
33217
33218#ifndef DOCUMENTATION
33219 AsmCilTypeDef.setDataPrototype(
33220 "uint32_t", "Extends", "= 0",
33221 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33222#endif // !DOCUMENTATION
33223
33224#ifndef DOCUMENTATION
33225 AsmCilTypeDef.setDataPrototype(
33226 "uint32_t", "FieldList", "= 0",
33227 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33228#endif // !DOCUMENTATION
33229
33230#ifndef DOCUMENTATION
33231 AsmCilTypeDef.setDataPrototype(
33232 "uint32_t", "MethodList", "= 0",
33233 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33234#endif // !DOCUMENTATION
33235
33236 DECLARE_OTHERS(AsmCilTypeDef);
33237#if defined(SgAsmCilTypeDef_OTHERS) || defined(DOCUMENTATION)
33238
33239 //----------------------- Boost serialization for SgAsmCilTypeDef -----------------------
33240#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33241private:
33242 friend class boost::serialization::access;
33243
33244 template<class S>
33245 void serialize(S &s, const unsigned /*version*/) {
33246 debugSerializationBegin("SgAsmCilTypeDef");
33247 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33248 s & BOOST_SERIALIZATION_NVP(p_Flags);
33249 s & BOOST_SERIALIZATION_NVP(p_TypeName);
33250 s & BOOST_SERIALIZATION_NVP(p_TypeNamespace);
33251 s & BOOST_SERIALIZATION_NVP(p_Extends);
33252 s & BOOST_SERIALIZATION_NVP(p_FieldList);
33253 s & BOOST_SERIALIZATION_NVP(p_MethodList);
33254 debugSerializationEnd("SgAsmCilTypeDef");
33255 }
33256#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33257
33258public:
33264 uint32_t const& get_Flags() const;
33265 void set_Flags(uint32_t const&);
33268public:
33274 uint32_t const& get_TypeName() const;
33275 void set_TypeName(uint32_t const&);
33278public:
33284 uint32_t const& get_TypeNamespace() const;
33285 void set_TypeNamespace(uint32_t const&);
33288public:
33294 uint32_t const& get_Extends() const;
33295 void set_Extends(uint32_t const&);
33298public:
33304 uint32_t const& get_FieldList() const;
33305 void set_FieldList(uint32_t const&);
33308public:
33314 uint32_t const& get_MethodList() const;
33315 void set_MethodList(uint32_t const&);
33317public:
33318 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33319 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33320 void dump(std::ostream&) const;
33321
33322 const std::uint8_t* get_TypeName_string() const;
33323 const std::uint8_t* get_TypeNamespace_string() const;
33324 const SgAsmCilMetadata* get_Extends_object() const;
33325 const SgAsmCilMetadata* get_FieldList_object() const;
33326 const SgAsmCilMetadata* get_MethodList_object() const;
33327 const SgAsmCilMetadata* get_MethodList_object(const SgAsmCilMethodDef*) const;
33328public:
33331
33332public:
33335
33336protected:
33344#endif // SgAsmCilTypeDef_OTHERS
33345#ifdef DOCUMENTATION
33346};
33347#endif // DOCUMENTATION
33348
33349
33351// SgAsmCilStandAloneSigTable -- MACHINE GENERATED; DO NOT MODIFY --
33353
33354DECLARE_LEAF_CLASS(AsmCilStandAloneSigTable);
33355IS_SERIALIZABLE(AsmCilStandAloneSigTable);
33356
33357#ifndef DOCUMENTATION
33358AsmCilStandAloneSigTable.useSmallHeader(true);
33359#endif // !DOCUMENTATION
33360
33361#ifdef DOCUMENTATION
33364#endif // DOCUMENTATION
33365
33366#ifndef DOCUMENTATION
33367 AsmCilStandAloneSigTable.setDataPrototype(
33368 "std::vector<SgAsmCilStandAloneSig*>", "elements", "",
33369 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33370#endif // !DOCUMENTATION
33371
33372 DECLARE_OTHERS(AsmCilStandAloneSigTable);
33373#if defined(SgAsmCilStandAloneSigTable_OTHERS) || defined(DOCUMENTATION)
33374
33375 //----------------------- Boost serialization for SgAsmCilStandAloneSigTable -----------------------
33376#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33377private:
33378 friend class boost::serialization::access;
33379
33380 template<class S>
33381 void serialize(S &s, const unsigned /*version*/) {
33382 debugSerializationBegin("SgAsmCilStandAloneSigTable");
33383 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33384 s & BOOST_SERIALIZATION_NVP(p_elements);
33385 debugSerializationEnd("SgAsmCilStandAloneSigTable");
33386 }
33387#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33388
33389public:
33390 std::vector<SgAsmCilStandAloneSig*> const& get_elements() const;
33391 std::vector<SgAsmCilStandAloneSig*>& get_elements();
33392public:
33394public:
33397
33398public:
33401
33402protected:
33410#endif // SgAsmCilStandAloneSigTable_OTHERS
33411#ifdef DOCUMENTATION
33412};
33413#endif // DOCUMENTATION
33414
33415
33417// SgAsmCilStandAloneSig -- MACHINE GENERATED; DO NOT MODIFY --
33419
33420DECLARE_LEAF_CLASS(AsmCilStandAloneSig);
33421IS_SERIALIZABLE(AsmCilStandAloneSig);
33422
33423#ifndef DOCUMENTATION
33424AsmCilStandAloneSig.useSmallHeader(true);
33425#endif // !DOCUMENTATION
33426
33427#ifdef DOCUMENTATION
33430#endif // DOCUMENTATION
33431
33432#ifndef DOCUMENTATION
33433 AsmCilStandAloneSig.setDataPrototype(
33434 "uint32_t", "Signature", "= 0",
33435 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33436#endif // !DOCUMENTATION
33437
33438 DECLARE_OTHERS(AsmCilStandAloneSig);
33439#if defined(SgAsmCilStandAloneSig_OTHERS) || defined(DOCUMENTATION)
33440
33441 //----------------------- Boost serialization for SgAsmCilStandAloneSig -----------------------
33442#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33443private:
33444 friend class boost::serialization::access;
33445
33446 template<class S>
33447 void serialize(S &s, const unsigned /*version*/) {
33448 debugSerializationBegin("SgAsmCilStandAloneSig");
33449 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33450 s & BOOST_SERIALIZATION_NVP(p_Signature);
33451 debugSerializationEnd("SgAsmCilStandAloneSig");
33452 }
33453#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33454
33455public:
33461 uint32_t const& get_Signature() const;
33462 void set_Signature(uint32_t const&);
33464public:
33465 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33466 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33467 void dump(std::ostream&) const;
33468
33469 const std::uint8_t* get_Signature_blob() const;
33470public:
33473
33474public:
33477
33478protected:
33486#endif // SgAsmCilStandAloneSig_OTHERS
33487#ifdef DOCUMENTATION
33488};
33489#endif // DOCUMENTATION
33490
33491
33493// SgAsmCilPropertyTable -- MACHINE GENERATED; DO NOT MODIFY --
33495
33496DECLARE_LEAF_CLASS(AsmCilPropertyTable);
33497IS_SERIALIZABLE(AsmCilPropertyTable);
33498
33499#ifndef DOCUMENTATION
33500AsmCilPropertyTable.useSmallHeader(true);
33501#endif // !DOCUMENTATION
33502
33503#ifdef DOCUMENTATION
33506#endif // DOCUMENTATION
33507
33508#ifndef DOCUMENTATION
33509 AsmCilPropertyTable.setDataPrototype(
33510 "std::vector<SgAsmCilProperty*>", "elements", "",
33511 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33512#endif // !DOCUMENTATION
33513
33514 DECLARE_OTHERS(AsmCilPropertyTable);
33515#if defined(SgAsmCilPropertyTable_OTHERS) || defined(DOCUMENTATION)
33516
33517 //----------------------- Boost serialization for SgAsmCilPropertyTable -----------------------
33518#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33519private:
33520 friend class boost::serialization::access;
33521
33522 template<class S>
33523 void serialize(S &s, const unsigned /*version*/) {
33524 debugSerializationBegin("SgAsmCilPropertyTable");
33525 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33526 s & BOOST_SERIALIZATION_NVP(p_elements);
33527 debugSerializationEnd("SgAsmCilPropertyTable");
33528 }
33529#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33530
33531public:
33532 std::vector<SgAsmCilProperty*> const& get_elements() const;
33533 std::vector<SgAsmCilProperty*>& get_elements();
33534public:
33536public:
33539
33540public:
33543
33544protected:
33552#endif // SgAsmCilPropertyTable_OTHERS
33553#ifdef DOCUMENTATION
33554};
33555#endif // DOCUMENTATION
33556
33557
33559// SgAsmCilPropertyMapTable -- MACHINE GENERATED; DO NOT MODIFY --
33561
33562DECLARE_LEAF_CLASS(AsmCilPropertyMapTable);
33563IS_SERIALIZABLE(AsmCilPropertyMapTable);
33564
33565#ifndef DOCUMENTATION
33566AsmCilPropertyMapTable.useSmallHeader(true);
33567#endif // !DOCUMENTATION
33568
33569#ifdef DOCUMENTATION
33572#endif // DOCUMENTATION
33573
33574#ifndef DOCUMENTATION
33575 AsmCilPropertyMapTable.setDataPrototype(
33576 "std::vector<SgAsmCilPropertyMap*>", "elements", "",
33577 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33578#endif // !DOCUMENTATION
33579
33580 DECLARE_OTHERS(AsmCilPropertyMapTable);
33581#if defined(SgAsmCilPropertyMapTable_OTHERS) || defined(DOCUMENTATION)
33582
33583 //----------------------- Boost serialization for SgAsmCilPropertyMapTable -----------------------
33584#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33585private:
33586 friend class boost::serialization::access;
33587
33588 template<class S>
33589 void serialize(S &s, const unsigned /*version*/) {
33590 debugSerializationBegin("SgAsmCilPropertyMapTable");
33591 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33592 s & BOOST_SERIALIZATION_NVP(p_elements);
33593 debugSerializationEnd("SgAsmCilPropertyMapTable");
33594 }
33595#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33596
33597public:
33598 std::vector<SgAsmCilPropertyMap*> const& get_elements() const;
33599 std::vector<SgAsmCilPropertyMap*>& get_elements();
33600public:
33602public:
33605
33606public:
33609
33610protected:
33618#endif // SgAsmCilPropertyMapTable_OTHERS
33619#ifdef DOCUMENTATION
33620};
33621#endif // DOCUMENTATION
33622
33623
33625// SgAsmCilPropertyMap -- MACHINE GENERATED; DO NOT MODIFY --
33627
33628DECLARE_LEAF_CLASS(AsmCilPropertyMap);
33629IS_SERIALIZABLE(AsmCilPropertyMap);
33630
33631#ifndef DOCUMENTATION
33632AsmCilPropertyMap.useSmallHeader(true);
33633#endif // !DOCUMENTATION
33634
33635#ifdef DOCUMENTATION
33638#endif // DOCUMENTATION
33639
33640#ifndef DOCUMENTATION
33641 AsmCilPropertyMap.setDataPrototype(
33642 "uint32_t", "Parent", "= 0",
33643 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33644#endif // !DOCUMENTATION
33645
33646#ifndef DOCUMENTATION
33647 AsmCilPropertyMap.setDataPrototype(
33648 "uint32_t", "PropertyList", "= 0",
33649 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33650#endif // !DOCUMENTATION
33651
33652 DECLARE_OTHERS(AsmCilPropertyMap);
33653#if defined(SgAsmCilPropertyMap_OTHERS) || defined(DOCUMENTATION)
33654
33655 //----------------------- Boost serialization for SgAsmCilPropertyMap -----------------------
33656#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33657private:
33658 friend class boost::serialization::access;
33659
33660 template<class S>
33661 void serialize(S &s, const unsigned /*version*/) {
33662 debugSerializationBegin("SgAsmCilPropertyMap");
33663 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33664 s & BOOST_SERIALIZATION_NVP(p_Parent);
33665 s & BOOST_SERIALIZATION_NVP(p_PropertyList);
33666 debugSerializationEnd("SgAsmCilPropertyMap");
33667 }
33668#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33669
33670public:
33676 uint32_t const& get_Parent() const;
33677 void set_Parent(uint32_t const&);
33680public:
33686 uint32_t const& get_PropertyList() const;
33687 void set_PropertyList(uint32_t const&);
33689public:
33690 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33691 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33692 void dump(std::ostream&) const;
33693
33694 const SgAsmCilMetadata* get_Parent_object() const;
33695 const SgAsmCilMetadata* get_PropertyList_object() const;
33696public:
33699
33700public:
33703
33704protected:
33712#endif // SgAsmCilPropertyMap_OTHERS
33713#ifdef DOCUMENTATION
33714};
33715#endif // DOCUMENTATION
33716
33717
33719// SgAsmCilProperty -- MACHINE GENERATED; DO NOT MODIFY --
33721
33722DECLARE_LEAF_CLASS(AsmCilProperty);
33723IS_SERIALIZABLE(AsmCilProperty);
33724
33725#ifndef DOCUMENTATION
33726AsmCilProperty.useSmallHeader(true);
33727#endif // !DOCUMENTATION
33728
33729#ifdef DOCUMENTATION
33732#endif // DOCUMENTATION
33733
33734#ifndef DOCUMENTATION
33735 AsmCilProperty.setDataPrototype(
33736 "uint16_t", "Flags", "= 0",
33737 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33738#endif // !DOCUMENTATION
33739
33740#ifndef DOCUMENTATION
33741 AsmCilProperty.setDataPrototype(
33742 "uint32_t", "Name", "= 0",
33743 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33744#endif // !DOCUMENTATION
33745
33746#ifndef DOCUMENTATION
33747 AsmCilProperty.setDataPrototype(
33748 "uint32_t", "Type", "= 0",
33749 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33750#endif // !DOCUMENTATION
33751
33752 DECLARE_OTHERS(AsmCilProperty);
33753#if defined(SgAsmCilProperty_OTHERS) || defined(DOCUMENTATION)
33754
33755 //----------------------- Boost serialization for SgAsmCilProperty -----------------------
33756#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33757private:
33758 friend class boost::serialization::access;
33759
33760 template<class S>
33761 void serialize(S &s, const unsigned /*version*/) {
33762 debugSerializationBegin("SgAsmCilProperty");
33763 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33764 s & BOOST_SERIALIZATION_NVP(p_Flags);
33765 s & BOOST_SERIALIZATION_NVP(p_Name);
33766 s & BOOST_SERIALIZATION_NVP(p_Type);
33767 debugSerializationEnd("SgAsmCilProperty");
33768 }
33769#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33770
33771public:
33777 uint16_t const& get_Flags() const;
33778 void set_Flags(uint16_t const&);
33781public:
33787 uint32_t const& get_Name() const;
33788 void set_Name(uint32_t const&);
33791public:
33797 uint32_t const& get_Type() const;
33798 void set_Type(uint32_t const&);
33800public:
33801 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33802 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33803 void dump(std::ostream&) const;
33804
33805 const std::uint8_t* get_Name_string() const;
33806 const std::uint8_t* get_Type_blob() const;
33807public:
33810
33811public:
33814
33815protected:
33823#endif // SgAsmCilProperty_OTHERS
33824#ifdef DOCUMENTATION
33825};
33826#endif // DOCUMENTATION
33827
33828
33830// SgAsmCilParamTable -- MACHINE GENERATED; DO NOT MODIFY --
33832
33833DECLARE_LEAF_CLASS(AsmCilParamTable);
33834IS_SERIALIZABLE(AsmCilParamTable);
33835
33836#ifndef DOCUMENTATION
33837AsmCilParamTable.useSmallHeader(true);
33838#endif // !DOCUMENTATION
33839
33840#ifdef DOCUMENTATION
33843#endif // DOCUMENTATION
33844
33845#ifndef DOCUMENTATION
33846 AsmCilParamTable.setDataPrototype(
33847 "std::vector<SgAsmCilParam*>", "elements", "",
33848 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
33849#endif // !DOCUMENTATION
33850
33851 DECLARE_OTHERS(AsmCilParamTable);
33852#if defined(SgAsmCilParamTable_OTHERS) || defined(DOCUMENTATION)
33853
33854 //----------------------- Boost serialization for SgAsmCilParamTable -----------------------
33855#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33856private:
33857 friend class boost::serialization::access;
33858
33859 template<class S>
33860 void serialize(S &s, const unsigned /*version*/) {
33861 debugSerializationBegin("SgAsmCilParamTable");
33862 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33863 s & BOOST_SERIALIZATION_NVP(p_elements);
33864 debugSerializationEnd("SgAsmCilParamTable");
33865 }
33866#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33867
33868public:
33869 std::vector<SgAsmCilParam*> const& get_elements() const;
33870 std::vector<SgAsmCilParam*>& get_elements();
33871public:
33873public:
33876
33877public:
33880
33881protected:
33889#endif // SgAsmCilParamTable_OTHERS
33890#ifdef DOCUMENTATION
33891};
33892#endif // DOCUMENTATION
33893
33894
33896// SgAsmCilParam -- MACHINE GENERATED; DO NOT MODIFY --
33898
33899DECLARE_LEAF_CLASS(AsmCilParam);
33900IS_SERIALIZABLE(AsmCilParam);
33901
33902#ifndef DOCUMENTATION
33903AsmCilParam.useSmallHeader(true);
33904#endif // !DOCUMENTATION
33905
33906#ifdef DOCUMENTATION
33909#endif // DOCUMENTATION
33910
33911#ifndef DOCUMENTATION
33912 AsmCilParam.setDataPrototype(
33913 "uint16_t", "Flags", "= 0",
33914 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33915#endif // !DOCUMENTATION
33916
33917#ifndef DOCUMENTATION
33918 AsmCilParam.setDataPrototype(
33919 "uint16_t", "Sequence", "= 0",
33920 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33921#endif // !DOCUMENTATION
33922
33923#ifndef DOCUMENTATION
33924 AsmCilParam.setDataPrototype(
33925 "uint32_t", "Name", "= 0",
33926 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
33927#endif // !DOCUMENTATION
33928
33929 DECLARE_OTHERS(AsmCilParam);
33930#if defined(SgAsmCilParam_OTHERS) || defined(DOCUMENTATION)
33931
33932 //----------------------- Boost serialization for SgAsmCilParam -----------------------
33933#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
33934private:
33935 friend class boost::serialization::access;
33936
33937 template<class S>
33938 void serialize(S &s, const unsigned /*version*/) {
33939 debugSerializationBegin("SgAsmCilParam");
33940 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
33941 s & BOOST_SERIALIZATION_NVP(p_Flags);
33942 s & BOOST_SERIALIZATION_NVP(p_Sequence);
33943 s & BOOST_SERIALIZATION_NVP(p_Name);
33944 debugSerializationEnd("SgAsmCilParam");
33945 }
33946#endif // ROSE_ENABLE_BOOST_SERIALIZATION
33947
33948public:
33954 uint16_t const& get_Flags() const;
33955 void set_Flags(uint16_t const&);
33958public:
33964 uint16_t const& get_Sequence() const;
33965 void set_Sequence(uint16_t const&);
33968public:
33974 uint32_t const& get_Name() const;
33975 void set_Name(uint32_t const&);
33977public:
33978 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
33979 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
33980 void dump(std::ostream&) const;
33981
33982 const std::uint8_t* get_Name_string() const;
33983public:
33986
33987public:
33990
33991protected:
33999#endif // SgAsmCilParam_OTHERS
34000#ifdef DOCUMENTATION
34001};
34002#endif // DOCUMENTATION
34003
34004
34006// SgAsmCilNestedClassTable -- MACHINE GENERATED; DO NOT MODIFY --
34008
34009DECLARE_LEAF_CLASS(AsmCilNestedClassTable);
34010IS_SERIALIZABLE(AsmCilNestedClassTable);
34011
34012#ifndef DOCUMENTATION
34013AsmCilNestedClassTable.useSmallHeader(true);
34014#endif // !DOCUMENTATION
34015
34016#ifdef DOCUMENTATION
34019#endif // DOCUMENTATION
34020
34021#ifndef DOCUMENTATION
34022 AsmCilNestedClassTable.setDataPrototype(
34023 "std::vector<SgAsmCilNestedClass*>", "elements", "",
34024 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34025#endif // !DOCUMENTATION
34026
34027 DECLARE_OTHERS(AsmCilNestedClassTable);
34028#if defined(SgAsmCilNestedClassTable_OTHERS) || defined(DOCUMENTATION)
34029
34030 //----------------------- Boost serialization for SgAsmCilNestedClassTable -----------------------
34031#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34032private:
34033 friend class boost::serialization::access;
34034
34035 template<class S>
34036 void serialize(S &s, const unsigned /*version*/) {
34037 debugSerializationBegin("SgAsmCilNestedClassTable");
34038 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34039 s & BOOST_SERIALIZATION_NVP(p_elements);
34040 debugSerializationEnd("SgAsmCilNestedClassTable");
34041 }
34042#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34043
34044public:
34045 std::vector<SgAsmCilNestedClass*> const& get_elements() const;
34046 std::vector<SgAsmCilNestedClass*>& get_elements();
34047public:
34049public:
34052
34053public:
34056
34057protected:
34065#endif // SgAsmCilNestedClassTable_OTHERS
34066#ifdef DOCUMENTATION
34067};
34068#endif // DOCUMENTATION
34069
34070
34072// SgAsmCilNestedClass -- MACHINE GENERATED; DO NOT MODIFY --
34074
34075DECLARE_LEAF_CLASS(AsmCilNestedClass);
34076IS_SERIALIZABLE(AsmCilNestedClass);
34077
34078#ifndef DOCUMENTATION
34079AsmCilNestedClass.useSmallHeader(true);
34080#endif // !DOCUMENTATION
34081
34082#ifdef DOCUMENTATION
34085#endif // DOCUMENTATION
34086
34087#ifndef DOCUMENTATION
34088 AsmCilNestedClass.setDataPrototype(
34089 "uint32_t", "NestedClass", "= 0",
34090 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34091#endif // !DOCUMENTATION
34092
34093#ifndef DOCUMENTATION
34094 AsmCilNestedClass.setDataPrototype(
34095 "uint32_t", "EnclosingClass", "= 0",
34096 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34097#endif // !DOCUMENTATION
34098
34099 DECLARE_OTHERS(AsmCilNestedClass);
34100#if defined(SgAsmCilNestedClass_OTHERS) || defined(DOCUMENTATION)
34101
34102 //----------------------- Boost serialization for SgAsmCilNestedClass -----------------------
34103#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34104private:
34105 friend class boost::serialization::access;
34106
34107 template<class S>
34108 void serialize(S &s, const unsigned /*version*/) {
34109 debugSerializationBegin("SgAsmCilNestedClass");
34110 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34111 s & BOOST_SERIALIZATION_NVP(p_NestedClass);
34112 s & BOOST_SERIALIZATION_NVP(p_EnclosingClass);
34113 debugSerializationEnd("SgAsmCilNestedClass");
34114 }
34115#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34116
34117public:
34123 uint32_t const& get_NestedClass() const;
34124 void set_NestedClass(uint32_t const&);
34127public:
34133 uint32_t const& get_EnclosingClass() const;
34134 void set_EnclosingClass(uint32_t const&);
34136public:
34137 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34138 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34139 void dump(std::ostream&) const;
34140
34141 const SgAsmCilMetadata* get_NestedClass_object() const;
34142 const SgAsmCilMetadata* get_EnclosingClass_object() const;
34143public:
34146
34147public:
34150
34151protected:
34159#endif // SgAsmCilNestedClass_OTHERS
34160#ifdef DOCUMENTATION
34161};
34162#endif // DOCUMENTATION
34163
34164
34166// SgAsmCilModuleTable -- MACHINE GENERATED; DO NOT MODIFY --
34168
34169DECLARE_LEAF_CLASS(AsmCilModuleTable);
34170IS_SERIALIZABLE(AsmCilModuleTable);
34171
34172#ifndef DOCUMENTATION
34173AsmCilModuleTable.useSmallHeader(true);
34174#endif // !DOCUMENTATION
34175
34176#ifdef DOCUMENTATION
34179#endif // DOCUMENTATION
34180
34181#ifndef DOCUMENTATION
34182 AsmCilModuleTable.setDataPrototype(
34183 "std::vector<SgAsmCilModule*>", "elements", "",
34184 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34185#endif // !DOCUMENTATION
34186
34187 DECLARE_OTHERS(AsmCilModuleTable);
34188#if defined(SgAsmCilModuleTable_OTHERS) || defined(DOCUMENTATION)
34189
34190 //----------------------- Boost serialization for SgAsmCilModuleTable -----------------------
34191#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34192private:
34193 friend class boost::serialization::access;
34194
34195 template<class S>
34196 void serialize(S &s, const unsigned /*version*/) {
34197 debugSerializationBegin("SgAsmCilModuleTable");
34198 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34199 s & BOOST_SERIALIZATION_NVP(p_elements);
34200 debugSerializationEnd("SgAsmCilModuleTable");
34201 }
34202#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34203
34204public:
34205 std::vector<SgAsmCilModule*> const& get_elements() const;
34206 std::vector<SgAsmCilModule*>& get_elements();
34207public:
34209public:
34212
34213public:
34216
34217protected:
34225#endif // SgAsmCilModuleTable_OTHERS
34226#ifdef DOCUMENTATION
34227};
34228#endif // DOCUMENTATION
34229
34230
34232// SgAsmCilModuleRefTable -- MACHINE GENERATED; DO NOT MODIFY --
34234
34235DECLARE_LEAF_CLASS(AsmCilModuleRefTable);
34236IS_SERIALIZABLE(AsmCilModuleRefTable);
34237
34238#ifndef DOCUMENTATION
34239AsmCilModuleRefTable.useSmallHeader(true);
34240#endif // !DOCUMENTATION
34241
34242#ifdef DOCUMENTATION
34245#endif // DOCUMENTATION
34246
34247#ifndef DOCUMENTATION
34248 AsmCilModuleRefTable.setDataPrototype(
34249 "std::vector<SgAsmCilModuleRef*>", "elements", "",
34250 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34251#endif // !DOCUMENTATION
34252
34253 DECLARE_OTHERS(AsmCilModuleRefTable);
34254#if defined(SgAsmCilModuleRefTable_OTHERS) || defined(DOCUMENTATION)
34255
34256 //----------------------- Boost serialization for SgAsmCilModuleRefTable -----------------------
34257#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34258private:
34259 friend class boost::serialization::access;
34260
34261 template<class S>
34262 void serialize(S &s, const unsigned /*version*/) {
34263 debugSerializationBegin("SgAsmCilModuleRefTable");
34264 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34265 s & BOOST_SERIALIZATION_NVP(p_elements);
34266 debugSerializationEnd("SgAsmCilModuleRefTable");
34267 }
34268#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34269
34270public:
34271 std::vector<SgAsmCilModuleRef*> const& get_elements() const;
34272 std::vector<SgAsmCilModuleRef*>& get_elements();
34273public:
34275public:
34278
34279public:
34282
34283protected:
34291#endif // SgAsmCilModuleRefTable_OTHERS
34292#ifdef DOCUMENTATION
34293};
34294#endif // DOCUMENTATION
34295
34296
34298// SgAsmCilModuleRef -- MACHINE GENERATED; DO NOT MODIFY --
34300
34301DECLARE_LEAF_CLASS(AsmCilModuleRef);
34302IS_SERIALIZABLE(AsmCilModuleRef);
34303
34304#ifndef DOCUMENTATION
34305AsmCilModuleRef.useSmallHeader(true);
34306#endif // !DOCUMENTATION
34307
34308#ifdef DOCUMENTATION
34311#endif // DOCUMENTATION
34312
34313#ifndef DOCUMENTATION
34314 AsmCilModuleRef.setDataPrototype(
34315 "uint32_t", "Name", "= 0",
34316 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34317#endif // !DOCUMENTATION
34318
34319 DECLARE_OTHERS(AsmCilModuleRef);
34320#if defined(SgAsmCilModuleRef_OTHERS) || defined(DOCUMENTATION)
34321
34322 //----------------------- Boost serialization for SgAsmCilModuleRef -----------------------
34323#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34324private:
34325 friend class boost::serialization::access;
34326
34327 template<class S>
34328 void serialize(S &s, const unsigned /*version*/) {
34329 debugSerializationBegin("SgAsmCilModuleRef");
34330 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34331 s & BOOST_SERIALIZATION_NVP(p_Name);
34332 debugSerializationEnd("SgAsmCilModuleRef");
34333 }
34334#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34335
34336public:
34342 uint32_t const& get_Name() const;
34343 void set_Name(uint32_t const&);
34345public:
34346 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34347 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34348 void dump(std::ostream&) const;
34349
34350 const std::uint8_t* get_Name_string() const;
34351public:
34354
34355public:
34358
34359protected:
34367#endif // SgAsmCilModuleRef_OTHERS
34368#ifdef DOCUMENTATION
34369};
34370#endif // DOCUMENTATION
34371
34372
34374// SgAsmCilModule -- MACHINE GENERATED; DO NOT MODIFY --
34376
34377DECLARE_LEAF_CLASS(AsmCilModule);
34378IS_SERIALIZABLE(AsmCilModule);
34379
34380#ifndef DOCUMENTATION
34381AsmCilModule.useSmallHeader(true);
34382#endif // !DOCUMENTATION
34383
34384#ifdef DOCUMENTATION
34387#endif // DOCUMENTATION
34388
34389#ifndef DOCUMENTATION
34390 AsmCilModule.setDataPrototype(
34391 "uint16_t", "Generation", "= 0",
34392 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34393#endif // !DOCUMENTATION
34394
34395#ifndef DOCUMENTATION
34396 AsmCilModule.setDataPrototype(
34397 "uint32_t", "Name", "= 0",
34398 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34399#endif // !DOCUMENTATION
34400
34401#ifndef DOCUMENTATION
34402 AsmCilModule.setDataPrototype(
34403 "uint32_t", "Mvid", "= 0",
34404 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34405#endif // !DOCUMENTATION
34406
34407#ifndef DOCUMENTATION
34408 AsmCilModule.setDataPrototype(
34409 "uint32_t", "Encld", "= 0",
34410 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34411#endif // !DOCUMENTATION
34412
34413#ifndef DOCUMENTATION
34414 AsmCilModule.setDataPrototype(
34415 "uint32_t", "EncBaseId", "= 0",
34416 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34417#endif // !DOCUMENTATION
34418
34419 DECLARE_OTHERS(AsmCilModule);
34420#if defined(SgAsmCilModule_OTHERS) || defined(DOCUMENTATION)
34421
34422 //----------------------- Boost serialization for SgAsmCilModule -----------------------
34423#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34424private:
34425 friend class boost::serialization::access;
34426
34427 template<class S>
34428 void serialize(S &s, const unsigned /*version*/) {
34429 debugSerializationBegin("SgAsmCilModule");
34430 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34431 s & BOOST_SERIALIZATION_NVP(p_Generation);
34432 s & BOOST_SERIALIZATION_NVP(p_Name);
34433 s & BOOST_SERIALIZATION_NVP(p_Mvid);
34434 s & BOOST_SERIALIZATION_NVP(p_Encld);
34435 s & BOOST_SERIALIZATION_NVP(p_EncBaseId);
34436 debugSerializationEnd("SgAsmCilModule");
34437 }
34438#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34439
34440public:
34446 uint16_t const& get_Generation() const;
34447 void set_Generation(uint16_t const&);
34450public:
34456 uint32_t const& get_Name() const;
34457 void set_Name(uint32_t const&);
34460public:
34466 uint32_t const& get_Mvid() const;
34467 void set_Mvid(uint32_t const&);
34470public:
34476 uint32_t const& get_Encld() const;
34477 void set_Encld(uint32_t const&);
34480public:
34486 uint32_t const& get_EncBaseId() const;
34487 void set_EncBaseId(uint32_t const&);
34489public:
34490 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34491 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34492 void dump(std::ostream&) const;
34493
34494 const std::uint8_t* get_Name_string() const;
34495 const std::uint32_t* get_Mvid_guid() const;
34496 const std::uint32_t* get_Encld_guid() const;
34497 const std::uint32_t* get_EncBaseId_guid() const;
34498public:
34501
34502public:
34505
34506protected:
34514#endif // SgAsmCilModule_OTHERS
34515#ifdef DOCUMENTATION
34516};
34517#endif // DOCUMENTATION
34518
34519
34521// SgAsmCilMethodSpecTable -- MACHINE GENERATED; DO NOT MODIFY --
34523
34524DECLARE_LEAF_CLASS(AsmCilMethodSpecTable);
34525IS_SERIALIZABLE(AsmCilMethodSpecTable);
34526
34527#ifndef DOCUMENTATION
34528AsmCilMethodSpecTable.useSmallHeader(true);
34529#endif // !DOCUMENTATION
34530
34531#ifdef DOCUMENTATION
34534#endif // DOCUMENTATION
34535
34536#ifndef DOCUMENTATION
34537 AsmCilMethodSpecTable.setDataPrototype(
34538 "std::vector<SgAsmCilMethodSpec*>", "elements", "",
34539 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34540#endif // !DOCUMENTATION
34541
34542 DECLARE_OTHERS(AsmCilMethodSpecTable);
34543#if defined(SgAsmCilMethodSpecTable_OTHERS) || defined(DOCUMENTATION)
34544
34545 //----------------------- Boost serialization for SgAsmCilMethodSpecTable -----------------------
34546#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34547private:
34548 friend class boost::serialization::access;
34549
34550 template<class S>
34551 void serialize(S &s, const unsigned /*version*/) {
34552 debugSerializationBegin("SgAsmCilMethodSpecTable");
34553 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34554 s & BOOST_SERIALIZATION_NVP(p_elements);
34555 debugSerializationEnd("SgAsmCilMethodSpecTable");
34556 }
34557#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34558
34559public:
34560 std::vector<SgAsmCilMethodSpec*> const& get_elements() const;
34561 std::vector<SgAsmCilMethodSpec*>& get_elements();
34562public:
34564public:
34567
34568public:
34571
34572protected:
34580#endif // SgAsmCilMethodSpecTable_OTHERS
34581#ifdef DOCUMENTATION
34582};
34583#endif // DOCUMENTATION
34584
34585
34587// SgAsmCilMethodSpec -- MACHINE GENERATED; DO NOT MODIFY --
34589
34590DECLARE_LEAF_CLASS(AsmCilMethodSpec);
34591IS_SERIALIZABLE(AsmCilMethodSpec);
34592
34593#ifndef DOCUMENTATION
34594AsmCilMethodSpec.useSmallHeader(true);
34595#endif // !DOCUMENTATION
34596
34597#ifdef DOCUMENTATION
34600#endif // DOCUMENTATION
34601
34602#ifndef DOCUMENTATION
34603 AsmCilMethodSpec.setDataPrototype(
34604 "uint32_t", "Method", "= 0",
34605 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34606#endif // !DOCUMENTATION
34607
34608#ifndef DOCUMENTATION
34609 AsmCilMethodSpec.setDataPrototype(
34610 "uint32_t", "Instantiation", "= 0",
34611 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34612#endif // !DOCUMENTATION
34613
34614 DECLARE_OTHERS(AsmCilMethodSpec);
34615#if defined(SgAsmCilMethodSpec_OTHERS) || defined(DOCUMENTATION)
34616
34617 //----------------------- Boost serialization for SgAsmCilMethodSpec -----------------------
34618#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34619private:
34620 friend class boost::serialization::access;
34621
34622 template<class S>
34623 void serialize(S &s, const unsigned /*version*/) {
34624 debugSerializationBegin("SgAsmCilMethodSpec");
34625 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34626 s & BOOST_SERIALIZATION_NVP(p_Method);
34627 s & BOOST_SERIALIZATION_NVP(p_Instantiation);
34628 debugSerializationEnd("SgAsmCilMethodSpec");
34629 }
34630#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34631
34632public:
34638 uint32_t const& get_Method() const;
34639 void set_Method(uint32_t const&);
34642public:
34648 uint32_t const& get_Instantiation() const;
34649 void set_Instantiation(uint32_t const&);
34651public:
34652 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34653 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34654 void dump(std::ostream&) const;
34655
34656 const SgAsmCilMetadata* get_Method_object() const;
34657 const std::uint8_t* get_Instantiation_blob() const;
34658public:
34661
34662public:
34665
34666protected:
34674#endif // SgAsmCilMethodSpec_OTHERS
34675#ifdef DOCUMENTATION
34676};
34677#endif // DOCUMENTATION
34678
34679
34681// SgAsmCilMethodSemanticsTable -- MACHINE GENERATED; DO NOT MODIFY --
34683
34684DECLARE_LEAF_CLASS(AsmCilMethodSemanticsTable);
34685IS_SERIALIZABLE(AsmCilMethodSemanticsTable);
34686
34687#ifndef DOCUMENTATION
34688AsmCilMethodSemanticsTable.useSmallHeader(true);
34689#endif // !DOCUMENTATION
34690
34691#ifdef DOCUMENTATION
34694#endif // DOCUMENTATION
34695
34696#ifndef DOCUMENTATION
34697 AsmCilMethodSemanticsTable.setDataPrototype(
34698 "std::vector<SgAsmCilMethodSemantics*>", "elements", "",
34699 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34700#endif // !DOCUMENTATION
34701
34702 DECLARE_OTHERS(AsmCilMethodSemanticsTable);
34703#if defined(SgAsmCilMethodSemanticsTable_OTHERS) || defined(DOCUMENTATION)
34704
34705 //----------------------- Boost serialization for SgAsmCilMethodSemanticsTable -----------------------
34706#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34707private:
34708 friend class boost::serialization::access;
34709
34710 template<class S>
34711 void serialize(S &s, const unsigned /*version*/) {
34712 debugSerializationBegin("SgAsmCilMethodSemanticsTable");
34713 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34714 s & BOOST_SERIALIZATION_NVP(p_elements);
34715 debugSerializationEnd("SgAsmCilMethodSemanticsTable");
34716 }
34717#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34718
34719public:
34720 std::vector<SgAsmCilMethodSemantics*> const& get_elements() const;
34721 std::vector<SgAsmCilMethodSemantics*>& get_elements();
34722public:
34724public:
34727
34728public:
34731
34732protected:
34740#endif // SgAsmCilMethodSemanticsTable_OTHERS
34741#ifdef DOCUMENTATION
34742};
34743#endif // DOCUMENTATION
34744
34745
34747// SgAsmCilMethodSemantics -- MACHINE GENERATED; DO NOT MODIFY --
34749
34750DECLARE_LEAF_CLASS(AsmCilMethodSemantics);
34751IS_SERIALIZABLE(AsmCilMethodSemantics);
34752
34753#ifndef DOCUMENTATION
34754AsmCilMethodSemantics.useSmallHeader(true);
34755#endif // !DOCUMENTATION
34756
34757#ifdef DOCUMENTATION
34760#endif // DOCUMENTATION
34761
34762#ifndef DOCUMENTATION
34763 AsmCilMethodSemantics.setDataPrototype(
34764 "uint16_t", "Semantics", "= 0",
34765 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34766#endif // !DOCUMENTATION
34767
34768#ifndef DOCUMENTATION
34769 AsmCilMethodSemantics.setDataPrototype(
34770 "uint32_t", "Method", "= 0",
34771 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34772#endif // !DOCUMENTATION
34773
34774#ifndef DOCUMENTATION
34775 AsmCilMethodSemantics.setDataPrototype(
34776 "uint32_t", "Association", "= 0",
34777 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34778#endif // !DOCUMENTATION
34779
34780 DECLARE_OTHERS(AsmCilMethodSemantics);
34781#if defined(SgAsmCilMethodSemantics_OTHERS) || defined(DOCUMENTATION)
34782
34783 //----------------------- Boost serialization for SgAsmCilMethodSemantics -----------------------
34784#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34785private:
34786 friend class boost::serialization::access;
34787
34788 template<class S>
34789 void serialize(S &s, const unsigned /*version*/) {
34790 debugSerializationBegin("SgAsmCilMethodSemantics");
34791 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34792 s & BOOST_SERIALIZATION_NVP(p_Semantics);
34793 s & BOOST_SERIALIZATION_NVP(p_Method);
34794 s & BOOST_SERIALIZATION_NVP(p_Association);
34795 debugSerializationEnd("SgAsmCilMethodSemantics");
34796 }
34797#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34798
34799public:
34805 uint16_t const& get_Semantics() const;
34806 void set_Semantics(uint16_t const&);
34809public:
34815 uint32_t const& get_Method() const;
34816 void set_Method(uint32_t const&);
34819public:
34825 uint32_t const& get_Association() const;
34826 void set_Association(uint32_t const&);
34828public:
34829 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
34830 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
34831 void dump(std::ostream&) const;
34832
34833 const SgAsmCilMetadata* get_Method_object() const;
34834 const SgAsmCilMetadata* get_Association_object() const;
34835public:
34838
34839public:
34842
34843protected:
34851#endif // SgAsmCilMethodSemantics_OTHERS
34852#ifdef DOCUMENTATION
34853};
34854#endif // DOCUMENTATION
34855
34856
34858// SgAsmCilMethodImplTable -- MACHINE GENERATED; DO NOT MODIFY --
34860
34861DECLARE_LEAF_CLASS(AsmCilMethodImplTable);
34862IS_SERIALIZABLE(AsmCilMethodImplTable);
34863
34864#ifndef DOCUMENTATION
34865AsmCilMethodImplTable.useSmallHeader(true);
34866#endif // !DOCUMENTATION
34867
34868#ifdef DOCUMENTATION
34871#endif // DOCUMENTATION
34872
34873#ifndef DOCUMENTATION
34874 AsmCilMethodImplTable.setDataPrototype(
34875 "std::vector<SgAsmCilMethodImpl*>", "elements", "",
34876 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
34877#endif // !DOCUMENTATION
34878
34879 DECLARE_OTHERS(AsmCilMethodImplTable);
34880#if defined(SgAsmCilMethodImplTable_OTHERS) || defined(DOCUMENTATION)
34881
34882 //----------------------- Boost serialization for SgAsmCilMethodImplTable -----------------------
34883#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34884private:
34885 friend class boost::serialization::access;
34886
34887 template<class S>
34888 void serialize(S &s, const unsigned /*version*/) {
34889 debugSerializationBegin("SgAsmCilMethodImplTable");
34890 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34891 s & BOOST_SERIALIZATION_NVP(p_elements);
34892 debugSerializationEnd("SgAsmCilMethodImplTable");
34893 }
34894#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34895
34896public:
34897 std::vector<SgAsmCilMethodImpl*> const& get_elements() const;
34898 std::vector<SgAsmCilMethodImpl*>& get_elements();
34899public:
34901public:
34904
34905public:
34908
34909protected:
34917#endif // SgAsmCilMethodImplTable_OTHERS
34918#ifdef DOCUMENTATION
34919};
34920#endif // DOCUMENTATION
34921
34922
34924// SgAsmCilMethodImpl -- MACHINE GENERATED; DO NOT MODIFY --
34926
34927DECLARE_LEAF_CLASS(AsmCilMethodImpl);
34928IS_SERIALIZABLE(AsmCilMethodImpl);
34929
34930#ifndef DOCUMENTATION
34931AsmCilMethodImpl.useSmallHeader(true);
34932#endif // !DOCUMENTATION
34933
34934#ifdef DOCUMENTATION
34937#endif // DOCUMENTATION
34938
34939#ifndef DOCUMENTATION
34940 AsmCilMethodImpl.setDataPrototype(
34941 "uint32_t", "Class", "= 0",
34942 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34943#endif // !DOCUMENTATION
34944
34945#ifndef DOCUMENTATION
34946 AsmCilMethodImpl.setDataPrototype(
34947 "uint32_t", "MethodBody", "= 0",
34948 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34949#endif // !DOCUMENTATION
34950
34951#ifndef DOCUMENTATION
34952 AsmCilMethodImpl.setDataPrototype(
34953 "uint32_t", "MethodDeclaration", "= 0",
34954 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
34955#endif // !DOCUMENTATION
34956
34957 DECLARE_OTHERS(AsmCilMethodImpl);
34958#if defined(SgAsmCilMethodImpl_OTHERS) || defined(DOCUMENTATION)
34959
34960 //----------------------- Boost serialization for SgAsmCilMethodImpl -----------------------
34961#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
34962private:
34963 friend class boost::serialization::access;
34964
34965 template<class S>
34966 void serialize(S &s, const unsigned /*version*/) {
34967 debugSerializationBegin("SgAsmCilMethodImpl");
34968 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
34969 s & BOOST_SERIALIZATION_NVP(p_Class);
34970 s & BOOST_SERIALIZATION_NVP(p_MethodBody);
34971 s & BOOST_SERIALIZATION_NVP(p_MethodDeclaration);
34972 debugSerializationEnd("SgAsmCilMethodImpl");
34973 }
34974#endif // ROSE_ENABLE_BOOST_SERIALIZATION
34975
34976public:
34982 uint32_t const& get_Class() const;
34983 void set_Class(uint32_t const&);
34986public:
34992 uint32_t const& get_MethodBody() const;
34993 void set_MethodBody(uint32_t const&);
34996public:
35002 uint32_t const& get_MethodDeclaration() const;
35003 void set_MethodDeclaration(uint32_t const&);
35005public:
35006 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
35007 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
35008 void dump(std::ostream&) const;
35009
35010 const SgAsmCilMetadata* get_Class_object() const;
35011 const SgAsmCilMetadata* get_MethodBody_object() const;
35012 const SgAsmCilMetadata* get_MethodDeclaration_object() const;
35013public:
35016
35017public:
35020
35021protected:
35029#endif // SgAsmCilMethodImpl_OTHERS
35030#ifdef DOCUMENTATION
35031};
35032#endif // DOCUMENTATION
35033
35034
35036// SgAsmCilMethodDefTable -- MACHINE GENERATED; DO NOT MODIFY --
35038
35039DECLARE_LEAF_CLASS(AsmCilMethodDefTable);
35040IS_SERIALIZABLE(AsmCilMethodDefTable);
35041
35042#ifndef DOCUMENTATION
35043AsmCilMethodDefTable.useSmallHeader(true);
35044#endif // !DOCUMENTATION
35045
35046#ifdef DOCUMENTATION
35049#endif // DOCUMENTATION
35050
35051#ifndef DOCUMENTATION
35052 AsmCilMethodDefTable.setDataPrototype(
35053 "std::vector<SgAsmCilMethodDef*>", "elements", "",
35054 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35055#endif // !DOCUMENTATION
35056
35057 DECLARE_OTHERS(AsmCilMethodDefTable);
35058#if defined(SgAsmCilMethodDefTable_OTHERS) || defined(DOCUMENTATION)
35059
35060 //----------------------- Boost serialization for SgAsmCilMethodDefTable -----------------------
35061#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35062private:
35063 friend class boost::serialization::access;
35064
35065 template<class S>
35066 void serialize(S &s, const unsigned /*version*/) {
35067 debugSerializationBegin("SgAsmCilMethodDefTable");
35068 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35069 s & BOOST_SERIALIZATION_NVP(p_elements);
35070 debugSerializationEnd("SgAsmCilMethodDefTable");
35071 }
35072#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35073
35074public:
35075 std::vector<SgAsmCilMethodDef*> const& get_elements() const;
35076 std::vector<SgAsmCilMethodDef*>& get_elements();
35077public:
35079public:
35082
35083public:
35086
35087protected:
35095#endif // SgAsmCilMethodDefTable_OTHERS
35096#ifdef DOCUMENTATION
35097};
35098#endif // DOCUMENTATION
35099
35100
35102// SgAsmCilMethodDef -- MACHINE GENERATED; DO NOT MODIFY --
35104
35105DECLARE_LEAF_CLASS(AsmCilMethodDef);
35106IS_SERIALIZABLE(AsmCilMethodDef);
35107
35108#ifndef DOCUMENTATION
35109AsmCilMethodDef.useSmallHeader(true);
35110#endif // !DOCUMENTATION
35111
35112#ifdef DOCUMENTATION
35115#endif // DOCUMENTATION
35116
35117#ifndef DOCUMENTATION
35118 AsmCilMethodDef.setDataPrototype(
35119 "uint32_t", "RVA", "= 0",
35120 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35121#endif // !DOCUMENTATION
35122
35123#ifndef DOCUMENTATION
35124 AsmCilMethodDef.setDataPrototype(
35125 "uint16_t", "ImplFlags", "= 0",
35126 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35127#endif // !DOCUMENTATION
35128
35129#ifndef DOCUMENTATION
35130 AsmCilMethodDef.setDataPrototype(
35131 "uint16_t", "Flags", "= 0",
35132 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35133#endif // !DOCUMENTATION
35134
35135#ifndef DOCUMENTATION
35136 AsmCilMethodDef.setDataPrototype(
35137 "uint32_t", "Name", "= 0",
35138 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35139#endif // !DOCUMENTATION
35140
35141#ifndef DOCUMENTATION
35142 AsmCilMethodDef.setDataPrototype(
35143 "uint32_t", "Signature", "= 0",
35144 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35145#endif // !DOCUMENTATION
35146
35147#ifndef DOCUMENTATION
35148 AsmCilMethodDef.setDataPrototype(
35149 "uint32_t", "ParamList", "= 0",
35150 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35151#endif // !DOCUMENTATION
35152
35153#ifndef DOCUMENTATION
35154 AsmCilMethodDef.setDataPrototype(
35155 "SgAsmBlock*", "body", "= 0",
35156 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35157#endif // !DOCUMENTATION
35158
35159#ifndef DOCUMENTATION
35160 AsmCilMethodDef.setDataPrototype(
35161 "bool", "initLocals", "= 0",
35162 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35163#endif // !DOCUMENTATION
35164
35165#ifndef DOCUMENTATION
35166 AsmCilMethodDef.setDataPrototype(
35167 "uint32_t", "stackSize", "= 0",
35168 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35169#endif // !DOCUMENTATION
35170
35171#ifndef DOCUMENTATION
35172 AsmCilMethodDef.setDataPrototype(
35173 "bool", "hasMoreSections", "= 0",
35174 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35175#endif // !DOCUMENTATION
35176
35177#ifndef DOCUMENTATION
35178 AsmCilMethodDef.setDataPrototype(
35179 "uint32_t", "localVarSigTok", "= 0",
35180 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35181#endif // !DOCUMENTATION
35182
35183#ifndef DOCUMENTATION
35184 AsmCilMethodDef.setDataPrototype(
35185 "std::vector<SgAsmCilMethodData*>", "methodData", "",
35186 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35187#endif // !DOCUMENTATION
35188
35189#ifndef DOCUMENTATION
35190 AsmCilMethodDef.setDataPrototype(
35191 "int", "bodyState", "= BDY_NOT_PROCESSED",
35192 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35193#endif // !DOCUMENTATION
35194
35195 DECLARE_OTHERS(AsmCilMethodDef);
35196#if defined(SgAsmCilMethodDef_OTHERS) || defined(DOCUMENTATION)
35197
35198 //----------------------- Boost serialization for SgAsmCilMethodDef -----------------------
35199#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35200private:
35201 friend class boost::serialization::access;
35202
35203 template<class S>
35204 void serialize(S &s, const unsigned /*version*/) {
35205 debugSerializationBegin("SgAsmCilMethodDef");
35206 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
35207 s & BOOST_SERIALIZATION_NVP(p_RVA);
35208 s & BOOST_SERIALIZATION_NVP(p_ImplFlags);
35209 s & BOOST_SERIALIZATION_NVP(p_Flags);
35210 s & BOOST_SERIALIZATION_NVP(p_Name);
35211 s & BOOST_SERIALIZATION_NVP(p_Signature);
35212 s & BOOST_SERIALIZATION_NVP(p_ParamList);
35213 s & BOOST_SERIALIZATION_NVP(p_body);
35214 s & BOOST_SERIALIZATION_NVP(p_initLocals);
35215 s & BOOST_SERIALIZATION_NVP(p_stackSize);
35216 s & BOOST_SERIALIZATION_NVP(p_hasMoreSections);
35217 s & BOOST_SERIALIZATION_NVP(p_localVarSigTok);
35218 s & BOOST_SERIALIZATION_NVP(p_methodData);
35219 s & BOOST_SERIALIZATION_NVP(p_bodyState);
35220 debugSerializationEnd("SgAsmCilMethodDef");
35221 }
35222#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35223 public:
35224 using BodyState = int;
35225
35226 enum : BodyState {
35227 // good states > 0
35231
35232 // default == 0
35234
35235 // fail states < 0
35246 };
35247
35248 private:
35249public:
35255 uint32_t const& get_RVA() const;
35256 void set_RVA(uint32_t const&);
35259public:
35265 uint16_t const& get_ImplFlags() const;
35266 void set_ImplFlags(uint16_t const&);
35269public:
35275 uint16_t const& get_Flags() const;
35276 void set_Flags(uint16_t const&);
35279public:
35285 uint32_t const& get_Name() const;
35286 void set_Name(uint32_t const&);
35289public:
35295 uint32_t const& get_Signature() const;
35296 void set_Signature(uint32_t const&);
35299public:
35305 uint32_t const& get_ParamList() const;
35306 void set_ParamList(uint32_t const&);
35309public:
35315 SgAsmBlock* const& get_body() const;
35316 void set_body(SgAsmBlock* const&);
35319public:
35325 bool const& get_initLocals() const;
35326 void set_initLocals(bool const&);
35329public:
35335 uint32_t const& get_stackSize() const;
35336 void set_stackSize(uint32_t const&);
35339public:
35345 bool const& get_hasMoreSections() const;
35346 void set_hasMoreSections(bool const&);
35348 //
35349 // additional fields
35350public:
35357 uint32_t const& get_localVarSigTok() const;
35358 void set_localVarSigTok(uint32_t const&);
35361public:
35367 std::vector<SgAsmCilMethodData*> const& get_methodData() const;
35368 std::vector<SgAsmCilMethodData*>& get_methodData();
35371public:
35378 int const& get_bodyState() const;
35379 void set_bodyState(int const&);
35381public:
35382 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
35383 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
35384 void dump(std::ostream&) const;
35385
35386 const std::uint8_t* get_Name_string() const;
35387 const std::uint8_t* get_Signature_blob() const;
35388 const SgAsmCilMetadata* get_ParamList_object() const;
35389public:
35392
35393public:
35396
35397protected:
35405#endif // SgAsmCilMethodDef_OTHERS
35406#ifdef DOCUMENTATION
35407};
35408#endif // DOCUMENTATION
35409
35410
35412// SgAsmCilMethodData -- MACHINE GENERATED; DO NOT MODIFY --
35414
35415DECLARE_LEAF_CLASS(AsmCilMethodData);
35416IS_SERIALIZABLE(AsmCilMethodData);
35417
35418#ifndef DOCUMENTATION
35419AsmCilMethodData.useSmallHeader(true);
35420#endif // !DOCUMENTATION
35421
35422DECLARE_HEADERS(AsmCilMethodData);
35423#if defined(SgAsmCilMethodData_HEADERS) || defined(DOCUMENTATION)
35424#include <vector>
35425#endif // SgAsmCilMethodData_HEADERS
35426
35427#ifdef DOCUMENTATION
35433#endif // DOCUMENTATION
35434
35435#ifndef DOCUMENTATION
35436 AsmCilMethodData.setDataPrototype(
35437 "uint64_t", "kind", "= 0",
35438 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35439#endif // !DOCUMENTATION
35440
35441#ifndef DOCUMENTATION
35442 AsmCilMethodData.setDataPrototype(
35443 "std::uint32_t", "dataSize", "= 0",
35444 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35445#endif // !DOCUMENTATION
35446
35447#ifndef DOCUMENTATION
35448 AsmCilMethodData.setDataPrototype(
35449 "std::vector<SgAsmCilExceptionData*>", "clauses", "",
35450 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35451#endif // !DOCUMENTATION
35452
35453 DECLARE_OTHERS(AsmCilMethodData);
35454#if defined(SgAsmCilMethodData_OTHERS) || defined(DOCUMENTATION)
35455
35456 //----------------------- Boost serialization for SgAsmCilMethodData -----------------------
35457#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35458private:
35459 friend class boost::serialization::access;
35460
35461 template<class S>
35462 void serialize(S &s, const unsigned /*version*/) {
35463 debugSerializationBegin("SgAsmCilMethodData");
35464 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
35465 s & BOOST_SERIALIZATION_NVP(p_kind);
35466 s & BOOST_SERIALIZATION_NVP(p_dataSize);
35467 s & BOOST_SERIALIZATION_NVP(p_clauses);
35468 debugSerializationEnd("SgAsmCilMethodData");
35469 }
35470#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35471public:
35472 enum
35473 {
35474 CorILMethod_Sect_EHTable = 0x01,
35475 CorILMethod_Sect_OptILTable = 0x02,
35476 CorILMethod_Sect_FatFormat = 0x40,
35477 CorILMethod_Sect_MoreSects = 0x80,
35478 };
35479
35480private:
35481public:
35482 uint64_t const& get_kind() const;
35483 void set_kind(uint64_t const&);
35484
35485public:
35486 std::uint32_t const& get_dataSize() const;
35487 void set_dataSize(std::uint32_t const&);
35488
35489public:
35490 std::vector<SgAsmCilExceptionData*> const& get_Clauses() const;
35491 std::vector<SgAsmCilExceptionData*>& get_Clauses();
35492public:
35493 bool isEHTable() const
35494 {
35495 return (p_kind & CorILMethod_Sect_EHTable) == CorILMethod_Sect_EHTable;
35496 }
35497
35498 bool isOptILTable() const
35499 {
35500 const bool res = (p_kind & CorILMethod_Sect_OptILTable) == CorILMethod_Sect_OptILTable;
35501
35502 ASSERT_require(!res);
35503 return res;
35504 }
35505
35506 bool usesFatFormat() const
35507 {
35508 return (p_kind & CorILMethod_Sect_FatFormat) == CorILMethod_Sect_FatFormat;
35509 }
35510
35511 bool hasMoreSections() const
35512 {
35513 return (p_kind & CorILMethod_Sect_MoreSects) == CorILMethod_Sect_MoreSects;
35514 }
35515public:
35518
35519public:
35522
35523protected:
35531#endif // SgAsmCilMethodData_OTHERS
35532#ifdef DOCUMENTATION
35533};
35534#endif // DOCUMENTATION
35535
35536
35538// SgAsmCilMetadataRoot -- MACHINE GENERATED; DO NOT MODIFY --
35540
35541DECLARE_LEAF_CLASS(AsmCilMetadataRoot);
35542IS_SERIALIZABLE(AsmCilMetadataRoot);
35543
35544#ifndef DOCUMENTATION
35545AsmCilMetadataRoot.useSmallHeader(true);
35546#endif // !DOCUMENTATION
35547
35548#ifdef DOCUMENTATION
35551#endif // DOCUMENTATION
35552
35553#ifndef DOCUMENTATION
35554 AsmCilMetadataRoot.setDataPrototype(
35555 "uint32_t", "Signature", "= 0",
35556 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35557#endif // !DOCUMENTATION
35558
35559#ifndef DOCUMENTATION
35560 AsmCilMetadataRoot.setDataPrototype(
35561 "uint16_t", "MajorVersion", "= 0",
35562 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35563#endif // !DOCUMENTATION
35564
35565#ifndef DOCUMENTATION
35566 AsmCilMetadataRoot.setDataPrototype(
35567 "uint16_t", "MinorVersion", "= 0",
35568 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35569#endif // !DOCUMENTATION
35570
35571#ifndef DOCUMENTATION
35572 AsmCilMetadataRoot.setDataPrototype(
35573 "uint32_t", "Reserved0", "= 0",
35574 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35575#endif // !DOCUMENTATION
35576
35577#ifndef DOCUMENTATION
35578 AsmCilMetadataRoot.setDataPrototype(
35579 "uint32_t", "Length", "= 0",
35580 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35581#endif // !DOCUMENTATION
35582
35583#ifndef DOCUMENTATION
35584 AsmCilMetadataRoot.setDataPrototype(
35585 "std::string", "Version", "",
35586 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35587#endif // !DOCUMENTATION
35588
35589#ifndef DOCUMENTATION
35590 AsmCilMetadataRoot.setDataPrototype(
35591 "uint32_t", "VersionPadding", "= 0",
35592 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35593#endif // !DOCUMENTATION
35594
35595#ifndef DOCUMENTATION
35596 AsmCilMetadataRoot.setDataPrototype(
35597 "uint16_t", "Flags", "= 0",
35598 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35599#endif // !DOCUMENTATION
35600
35601#ifndef DOCUMENTATION
35602 AsmCilMetadataRoot.setDataPrototype(
35603 "uint16_t", "NumberOfStreams", "= 0",
35604 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35605#endif // !DOCUMENTATION
35606
35607#ifndef DOCUMENTATION
35608 AsmCilMetadataRoot.setDataPrototype(
35609 "std::vector<SgAsmCilDataStream*>", "Streams", "",
35610 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35611#endif // !DOCUMENTATION
35612
35613#ifndef DOCUMENTATION
35614 AsmCilMetadataRoot.setDataPrototype(
35615 "bool", "ErrorFree", "= true",
35616 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35617#endif // !DOCUMENTATION
35618
35619 DECLARE_OTHERS(AsmCilMetadataRoot);
35620#if defined(SgAsmCilMetadataRoot_OTHERS) || defined(DOCUMENTATION)
35621
35622 //----------------------- Boost serialization for SgAsmCilMetadataRoot -----------------------
35623#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
35624private:
35625 friend class boost::serialization::access;
35626
35627 template<class S>
35628 void serialize(S &s, const unsigned /*version*/) {
35629 debugSerializationBegin("SgAsmCilMetadataRoot");
35630 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilNode);
35631 s & BOOST_SERIALIZATION_NVP(p_Signature);
35632 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
35633 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
35634 s & BOOST_SERIALIZATION_NVP(p_Reserved0);
35635 s & BOOST_SERIALIZATION_NVP(p_Length);
35636 s & BOOST_SERIALIZATION_NVP(p_Version);
35637 s & BOOST_SERIALIZATION_NVP(p_VersionPadding);
35638 s & BOOST_SERIALIZATION_NVP(p_Flags);
35639 s & BOOST_SERIALIZATION_NVP(p_NumberOfStreams);
35640 s & BOOST_SERIALIZATION_NVP(p_Streams);
35641 s & BOOST_SERIALIZATION_NVP(p_ErrorFree);
35642 debugSerializationEnd("SgAsmCilMetadataRoot");
35643 }
35644#endif // ROSE_ENABLE_BOOST_SERIALIZATION
35645
35646public:
35650 uint32_t const& get_Signature() const;
35651 void set_Signature(uint32_t const&);
35654public:
35658 uint16_t const& get_MajorVersion() const;
35659 void set_MajorVersion(uint16_t const&);
35662public:
35666 uint16_t const& get_MinorVersion() const;
35667 void set_MinorVersion(uint16_t const&);
35670public:
35674 uint32_t const& get_Reserved0() const;
35675 void set_Reserved0(uint32_t const&);
35678public:
35682 uint32_t const& get_Length() const;
35683 void set_Length(uint32_t const&);
35686public:
35690 std::string const& get_Version() const;
35691 void set_Version(std::string const&);
35694public:
35698 uint32_t const& get_VersionPadding() const;
35699 void set_VersionPadding(uint32_t const&);
35702public:
35706 uint16_t const& get_Flags() const;
35707 void set_Flags(uint16_t const&);
35710public:
35714 uint16_t const& get_NumberOfStreams() const;
35715 void set_NumberOfStreams(uint16_t const&);
35718public:
35722 std::vector<SgAsmCilDataStream*> const& get_Streams() const;
35723 std::vector<SgAsmCilDataStream*>& get_Streams();
35726public:
35730 bool const& get_ErrorFree() const;
35731 void set_ErrorFree(bool const&);
35733private:
35736 mutable int8_t idxStringHeap = -1;
35737 mutable int8_t idxBlobHeap = -1;
35738 mutable int8_t idxUsHeap = -1;
35739 mutable int8_t idxGuidHeap = -1;
35740 mutable int8_t idxMetadataHeap = -1;
35743public:
35746 static constexpr uint32_t MAGIC_SIGNATURE = 0x424A5342;
35747
35751 void parse();
35752
35758 void parse(const std::vector<uint8_t>& buf, size_t index);
35759
35761 void unparse(std::ostream& f) const;
35762
35764 void unparse(std::vector<uint8_t>&, std::size_t) const;
35765
35767 void dump(std::ostream& os) const;
35768
35778public:
35781
35782public:
35785
35786protected:
35794#endif // SgAsmCilMetadataRoot_OTHERS
35795#ifdef DOCUMENTATION
35796};
35797#endif // DOCUMENTATION
35798
35799
35801// SgAsmCilMetadataHeap -- MACHINE GENERATED; DO NOT MODIFY --
35803
35804DECLARE_LEAF_CLASS(AsmCilMetadataHeap);
35805IS_SERIALIZABLE(AsmCilMetadataHeap);
35806
35807#ifndef DOCUMENTATION
35808AsmCilMetadataHeap.useSmallHeader(true);
35809#endif // !DOCUMENTATION
35810
35811DECLARE_HEADERS(AsmCilMetadataHeap);
35812#if defined(SgAsmCilMetadataHeap_HEADERS) || defined(DOCUMENTATION)
35813#ifdef ROSE_SgAsmCilMetadataHeap_IMPL
35814#include <SgAsmCilAssemblyTable.h>
35815#include <SgAsmCilAssemblyOSTable.h>
35816#include <SgAsmCilAssemblyProcessorTable.h>
35817#include <SgAsmCilAssemblyRefTable.h>
35818#include <SgAsmCilAssemblyRefOSTable.h>
35819#include <SgAsmCilAssemblyRefProcessorTable.h>
35820#include <SgAsmCilClassLayoutTable.h>
35821#include <SgAsmCilConstantTable.h>
35822#include <SgAsmCilCustomAttributeTable.h>
35823#include <SgAsmCilDeclSecurityTable.h>
35824#include <SgAsmCilEventTable.h>
35825#include <SgAsmCilEventMapTable.h>
35826#include <SgAsmCilExportedTypeTable.h>
35827#include <SgAsmCilFieldTable.h>
35828#include <SgAsmCilFieldLayoutTable.h>
35829#include <SgAsmCilFieldMarshalTable.h>
35830#include <SgAsmCilFieldRVATable.h>
35831#include <SgAsmCilFileTable.h>
35832#include <SgAsmCilGenericParamTable.h>
35833#include <SgAsmCilGenericParamConstraintTable.h>
35834#include <SgAsmCilImplMapTable.h>
35835#include <SgAsmCilInterfaceImplTable.h>
35836#include <SgAsmCilManifestResourceTable.h>
35837#include <SgAsmCilMemberRefTable.h>
35838#include <SgAsmCilMethodDefTable.h>
35839#include <SgAsmCilMethodImplTable.h>
35840#include <SgAsmCilMethodSemanticsTable.h>
35841#include <SgAsmCilMethodSpecTable.h>
35842#include <SgAsmCilModuleTable.h>
35843#include <SgAsmCilModuleRefTable.h>
35844#include <SgAsmCilNestedClassTable.h>
35845#include <SgAsmCilParamTable.h>
35846#include <SgAsmCilPropertyTable.h>
35847#include <SgAsmCilPropertyMapTable.h>
35848#include <SgAsmCilStandAloneSigTable.h>
35849#include <SgAsmCilTypeDefTable.h>
35850#include <SgAsmCilTypeRefTable.h>
35851#include <SgAsmCilTypeSpecTable.h>
35852#endif
35853#endif // SgAsmCilMetadataHeap_HEADERS
35854
35855#ifdef DOCUMENTATION
35858#endif // DOCUMENTATION
35859
35860#ifndef DOCUMENTATION
35861 AsmCilMetadataHeap.setDataPrototype(
35862 "uint32_t", "ReservedAlwaysZero", "= 0",
35863 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35864#endif // !DOCUMENTATION
35865
35866#ifndef DOCUMENTATION
35867 AsmCilMetadataHeap.setDataPrototype(
35868 "uint8_t", "MajorVersion", "= 0",
35869 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35870#endif // !DOCUMENTATION
35871
35872#ifndef DOCUMENTATION
35873 AsmCilMetadataHeap.setDataPrototype(
35874 "uint8_t", "MinorVersion", "= 0",
35875 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35876#endif // !DOCUMENTATION
35877
35878#ifndef DOCUMENTATION
35879 AsmCilMetadataHeap.setDataPrototype(
35880 "uint8_t", "HeapSizes", "= 0",
35881 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35882#endif // !DOCUMENTATION
35883
35884#ifndef DOCUMENTATION
35885 AsmCilMetadataHeap.setDataPrototype(
35886 "uint8_t", "ReservedAlwaysOne", "= 0",
35887 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35888#endif // !DOCUMENTATION
35889
35890#ifndef DOCUMENTATION
35891 AsmCilMetadataHeap.setDataPrototype(
35892 "uint64_t", "Valid", "= 0",
35893 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35894#endif // !DOCUMENTATION
35895
35896#ifndef DOCUMENTATION
35897 AsmCilMetadataHeap.setDataPrototype(
35898 "uint64_t", "Sorted", "= 0",
35899 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35900#endif // !DOCUMENTATION
35901
35902#ifndef DOCUMENTATION
35903 AsmCilMetadataHeap.setDataPrototype(
35904 "std::vector<uint32_t>", "NumberOfRows", "",
35905 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35906#endif // !DOCUMENTATION
35907
35908#ifndef DOCUMENTATION
35909 AsmCilMetadataHeap.setDataPrototype(
35910 "uint64_t", "DataSizeFlags", "= 0",
35911 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
35912#endif // !DOCUMENTATION
35913
35914#ifndef DOCUMENTATION
35915 AsmCilMetadataHeap.setDataPrototype(
35916 "SgAsmCilAssemblyTable*", "AssemblyTable", "",
35917 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35918#endif // !DOCUMENTATION
35919
35920#ifndef DOCUMENTATION
35921 AsmCilMetadataHeap.setDataPrototype(
35922 "SgAsmCilAssemblyOSTable*", "AssemblyOSTable", "",
35923 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35924#endif // !DOCUMENTATION
35925
35926#ifndef DOCUMENTATION
35927 AsmCilMetadataHeap.setDataPrototype(
35928 "SgAsmCilAssemblyProcessorTable*", "AssemblyProcessorTable", "",
35929 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35930#endif // !DOCUMENTATION
35931
35932#ifndef DOCUMENTATION
35933 AsmCilMetadataHeap.setDataPrototype(
35934 "SgAsmCilAssemblyRefTable*", "AssemblyRefTable", "",
35935 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35936#endif // !DOCUMENTATION
35937
35938#ifndef DOCUMENTATION
35939 AsmCilMetadataHeap.setDataPrototype(
35940 "SgAsmCilAssemblyRefOSTable*", "AssemblyRefOSTable", "",
35941 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35942#endif // !DOCUMENTATION
35943
35944#ifndef DOCUMENTATION
35945 AsmCilMetadataHeap.setDataPrototype(
35946 "SgAsmCilAssemblyRefProcessorTable*", "AssemblyRefProcessorTable", "",
35947 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35948#endif // !DOCUMENTATION
35949
35950#ifndef DOCUMENTATION
35951 AsmCilMetadataHeap.setDataPrototype(
35952 "SgAsmCilClassLayoutTable*", "ClassLayoutTable", "",
35953 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35954#endif // !DOCUMENTATION
35955
35956#ifndef DOCUMENTATION
35957 AsmCilMetadataHeap.setDataPrototype(
35958 "SgAsmCilConstantTable*", "ConstantTable", "",
35959 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35960#endif // !DOCUMENTATION
35961
35962#ifndef DOCUMENTATION
35963 AsmCilMetadataHeap.setDataPrototype(
35964 "SgAsmCilCustomAttributeTable*", "CustomAttributeTable", "",
35965 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35966#endif // !DOCUMENTATION
35967
35968#ifndef DOCUMENTATION
35969 AsmCilMetadataHeap.setDataPrototype(
35970 "SgAsmCilDeclSecurityTable*", "DeclSecurityTable", "",
35971 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35972#endif // !DOCUMENTATION
35973
35974#ifndef DOCUMENTATION
35975 AsmCilMetadataHeap.setDataPrototype(
35976 "SgAsmCilEventTable*", "EventTable", "",
35977 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35978#endif // !DOCUMENTATION
35979
35980#ifndef DOCUMENTATION
35981 AsmCilMetadataHeap.setDataPrototype(
35982 "SgAsmCilEventMapTable*", "EventMapTable", "",
35983 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35984#endif // !DOCUMENTATION
35985
35986#ifndef DOCUMENTATION
35987 AsmCilMetadataHeap.setDataPrototype(
35988 "SgAsmCilExportedTypeTable*", "ExportedTypeTable", "",
35989 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35990#endif // !DOCUMENTATION
35991
35992#ifndef DOCUMENTATION
35993 AsmCilMetadataHeap.setDataPrototype(
35994 "SgAsmCilFieldTable*", "FieldTable", "",
35995 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
35996#endif // !DOCUMENTATION
35997
35998#ifndef DOCUMENTATION
35999 AsmCilMetadataHeap.setDataPrototype(
36000 "SgAsmCilFieldLayoutTable*", "FieldLayoutTable", "",
36001 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36002#endif // !DOCUMENTATION
36003
36004#ifndef DOCUMENTATION
36005 AsmCilMetadataHeap.setDataPrototype(
36006 "SgAsmCilFieldMarshalTable*", "FieldMarshalTable", "",
36007 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36008#endif // !DOCUMENTATION
36009
36010#ifndef DOCUMENTATION
36011 AsmCilMetadataHeap.setDataPrototype(
36012 "SgAsmCilFieldRVATable*", "FieldRVATable", "",
36013 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36014#endif // !DOCUMENTATION
36015
36016#ifndef DOCUMENTATION
36017 AsmCilMetadataHeap.setDataPrototype(
36018 "SgAsmCilFileTable*", "FileTable", "",
36019 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36020#endif // !DOCUMENTATION
36021
36022#ifndef DOCUMENTATION
36023 AsmCilMetadataHeap.setDataPrototype(
36024 "SgAsmCilGenericParamTable*", "GenericParamTable", "",
36025 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36026#endif // !DOCUMENTATION
36027
36028#ifndef DOCUMENTATION
36029 AsmCilMetadataHeap.setDataPrototype(
36030 "SgAsmCilGenericParamConstraintTable*", "GenericParamConstraintTable", "",
36031 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36032#endif // !DOCUMENTATION
36033
36034#ifndef DOCUMENTATION
36035 AsmCilMetadataHeap.setDataPrototype(
36036 "SgAsmCilImplMapTable*", "ImplMapTable", "",
36037 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36038#endif // !DOCUMENTATION
36039
36040#ifndef DOCUMENTATION
36041 AsmCilMetadataHeap.setDataPrototype(
36042 "SgAsmCilInterfaceImplTable*", "InterfaceImplTable", "",
36043 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36044#endif // !DOCUMENTATION
36045
36046#ifndef DOCUMENTATION
36047 AsmCilMetadataHeap.setDataPrototype(
36048 "SgAsmCilManifestResourceTable*", "ManifestResourceTable", "",
36049 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36050#endif // !DOCUMENTATION
36051
36052#ifndef DOCUMENTATION
36053 AsmCilMetadataHeap.setDataPrototype(
36054 "SgAsmCilMemberRefTable*", "MemberRefTable", "",
36055 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36056#endif // !DOCUMENTATION
36057
36058#ifndef DOCUMENTATION
36059 AsmCilMetadataHeap.setDataPrototype(
36060 "SgAsmCilMethodDefTable*", "MethodDefTable", "",
36061 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36062#endif // !DOCUMENTATION
36063
36064#ifndef DOCUMENTATION
36065 AsmCilMetadataHeap.setDataPrototype(
36066 "SgAsmCilMethodImplTable*", "MethodImplTable", "",
36067 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36068#endif // !DOCUMENTATION
36069
36070#ifndef DOCUMENTATION
36071 AsmCilMetadataHeap.setDataPrototype(
36072 "SgAsmCilMethodSemanticsTable*", "MethodSemanticsTable", "",
36073 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36074#endif // !DOCUMENTATION
36075
36076#ifndef DOCUMENTATION
36077 AsmCilMetadataHeap.setDataPrototype(
36078 "SgAsmCilMethodSpecTable*", "MethodSpecTable", "",
36079 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36080#endif // !DOCUMENTATION
36081
36082#ifndef DOCUMENTATION
36083 AsmCilMetadataHeap.setDataPrototype(
36084 "SgAsmCilModuleTable*", "ModuleTable", "",
36085 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36086#endif // !DOCUMENTATION
36087
36088#ifndef DOCUMENTATION
36089 AsmCilMetadataHeap.setDataPrototype(
36090 "SgAsmCilModuleRefTable*", "ModuleRefTable", "",
36091 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36092#endif // !DOCUMENTATION
36093
36094#ifndef DOCUMENTATION
36095 AsmCilMetadataHeap.setDataPrototype(
36096 "SgAsmCilNestedClassTable*", "NestedClassTable", "",
36097 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36098#endif // !DOCUMENTATION
36099
36100#ifndef DOCUMENTATION
36101 AsmCilMetadataHeap.setDataPrototype(
36102 "SgAsmCilParamTable*", "ParamTable", "",
36103 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36104#endif // !DOCUMENTATION
36105
36106#ifndef DOCUMENTATION
36107 AsmCilMetadataHeap.setDataPrototype(
36108 "SgAsmCilPropertyTable*", "PropertyTable", "",
36109 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36110#endif // !DOCUMENTATION
36111
36112#ifndef DOCUMENTATION
36113 AsmCilMetadataHeap.setDataPrototype(
36114 "SgAsmCilPropertyMapTable*", "PropertyMapTable", "",
36115 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36116#endif // !DOCUMENTATION
36117
36118#ifndef DOCUMENTATION
36119 AsmCilMetadataHeap.setDataPrototype(
36120 "SgAsmCilStandAloneSigTable*", "StandAloneSigTable", "",
36121 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36122#endif // !DOCUMENTATION
36123
36124#ifndef DOCUMENTATION
36125 AsmCilMetadataHeap.setDataPrototype(
36126 "SgAsmCilTypeDefTable*", "TypeDefTable", "",
36127 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36128#endif // !DOCUMENTATION
36129
36130#ifndef DOCUMENTATION
36131 AsmCilMetadataHeap.setDataPrototype(
36132 "SgAsmCilTypeRefTable*", "TypeRefTable", "",
36133 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36134#endif // !DOCUMENTATION
36135
36136#ifndef DOCUMENTATION
36137 AsmCilMetadataHeap.setDataPrototype(
36138 "SgAsmCilTypeSpecTable*", "TypeSpecTable", "",
36139 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36140#endif // !DOCUMENTATION
36141
36142 DECLARE_OTHERS(AsmCilMetadataHeap);
36143#if defined(SgAsmCilMetadataHeap_OTHERS) || defined(DOCUMENTATION)
36144
36145 //----------------------- Boost serialization for SgAsmCilMetadataHeap -----------------------
36146#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36147private:
36148 friend class boost::serialization::access;
36149
36150 template<class S>
36151 void serialize(S &s, const unsigned /*version*/) {
36152 debugSerializationBegin("SgAsmCilMetadataHeap");
36153 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilDataStream);
36154 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysZero);
36155 s & BOOST_SERIALIZATION_NVP(p_MajorVersion);
36156 s & BOOST_SERIALIZATION_NVP(p_MinorVersion);
36157 s & BOOST_SERIALIZATION_NVP(p_HeapSizes);
36158 s & BOOST_SERIALIZATION_NVP(p_ReservedAlwaysOne);
36159 s & BOOST_SERIALIZATION_NVP(p_Valid);
36160 s & BOOST_SERIALIZATION_NVP(p_Sorted);
36161 s & BOOST_SERIALIZATION_NVP(p_NumberOfRows);
36162 s & BOOST_SERIALIZATION_NVP(p_DataSizeFlags);
36163 s & BOOST_SERIALIZATION_NVP(p_AssemblyTable);
36164 s & BOOST_SERIALIZATION_NVP(p_AssemblyOSTable);
36165 s & BOOST_SERIALIZATION_NVP(p_AssemblyProcessorTable);
36166 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefTable);
36167 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefOSTable);
36168 s & BOOST_SERIALIZATION_NVP(p_AssemblyRefProcessorTable);
36169 s & BOOST_SERIALIZATION_NVP(p_ClassLayoutTable);
36170 s & BOOST_SERIALIZATION_NVP(p_ConstantTable);
36171 s & BOOST_SERIALIZATION_NVP(p_CustomAttributeTable);
36172 s & BOOST_SERIALIZATION_NVP(p_DeclSecurityTable);
36173 s & BOOST_SERIALIZATION_NVP(p_EventTable);
36174 s & BOOST_SERIALIZATION_NVP(p_EventMapTable);
36175 s & BOOST_SERIALIZATION_NVP(p_ExportedTypeTable);
36176 s & BOOST_SERIALIZATION_NVP(p_FieldTable);
36177 s & BOOST_SERIALIZATION_NVP(p_FieldLayoutTable);
36178 s & BOOST_SERIALIZATION_NVP(p_FieldMarshalTable);
36179 s & BOOST_SERIALIZATION_NVP(p_FieldRVATable);
36180 s & BOOST_SERIALIZATION_NVP(p_FileTable);
36181 s & BOOST_SERIALIZATION_NVP(p_GenericParamTable);
36182 s & BOOST_SERIALIZATION_NVP(p_GenericParamConstraintTable);
36183 s & BOOST_SERIALIZATION_NVP(p_ImplMapTable);
36184 s & BOOST_SERIALIZATION_NVP(p_InterfaceImplTable);
36185 s & BOOST_SERIALIZATION_NVP(p_ManifestResourceTable);
36186 s & BOOST_SERIALIZATION_NVP(p_MemberRefTable);
36187 s & BOOST_SERIALIZATION_NVP(p_MethodDefTable);
36188 s & BOOST_SERIALIZATION_NVP(p_MethodImplTable);
36189 s & BOOST_SERIALIZATION_NVP(p_MethodSemanticsTable);
36190 s & BOOST_SERIALIZATION_NVP(p_MethodSpecTable);
36191 s & BOOST_SERIALIZATION_NVP(p_ModuleTable);
36192 s & BOOST_SERIALIZATION_NVP(p_ModuleRefTable);
36193 s & BOOST_SERIALIZATION_NVP(p_NestedClassTable);
36194 s & BOOST_SERIALIZATION_NVP(p_ParamTable);
36195 s & BOOST_SERIALIZATION_NVP(p_PropertyTable);
36196 s & BOOST_SERIALIZATION_NVP(p_PropertyMapTable);
36197 s & BOOST_SERIALIZATION_NVP(p_StandAloneSigTable);
36198 s & BOOST_SERIALIZATION_NVP(p_TypeDefTable);
36199 s & BOOST_SERIALIZATION_NVP(p_TypeRefTable);
36200 s & BOOST_SERIALIZATION_NVP(p_TypeSpecTable);
36201 debugSerializationEnd("SgAsmCilMetadataHeap");
36202 }
36203#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36204
36205public:
36209 uint32_t const& get_ReservedAlwaysZero() const;
36210 void set_ReservedAlwaysZero(uint32_t const&);
36213public:
36217 uint8_t const& get_MajorVersion() const;
36218 void set_MajorVersion(uint8_t const&);
36221public:
36225 uint8_t const& get_MinorVersion() const;
36226 void set_MinorVersion(uint8_t const&);
36229public:
36233 uint8_t const& get_HeapSizes() const;
36234 void set_HeapSizes(uint8_t const&);
36237public:
36241 uint8_t const& get_ReservedAlwaysOne() const;
36242 void set_ReservedAlwaysOne(uint8_t const&);
36245public:
36249 uint64_t const& get_Valid() const;
36250 void set_Valid(uint64_t const&);
36253public:
36257 uint64_t const& get_Sorted() const;
36258 void set_Sorted(uint64_t const&);
36261public:
36265 std::vector<uint32_t> const& get_NumberOfRows() const;
36266 void set_NumberOfRows(std::vector<uint32_t> const&);
36269public:
36273 uint64_t const& get_DataSizeFlags() const;
36274 void set_DataSizeFlags(uint64_t const&);
36277public:
36285public:
36293public:
36301public:
36309public:
36317public:
36325public:
36333public:
36341public:
36349public:
36357public:
36365public:
36373public:
36381public:
36389public:
36397public:
36405public:
36413public:
36421public:
36429public:
36437public:
36445public:
36453public:
36461public:
36469public:
36477public:
36485public:
36493public:
36501public:
36509public:
36517public:
36525public:
36533public:
36541public:
36549public:
36557public:
36565public:
36573public:
36580public:
36583 {
36584 // heaps
36585 e_ref_string_heap = 1 << 0,
36586 e_ref_guid_heap = 1 << 1,
36587 e_ref_blob_heap = 1 << 2,
36588 // single-table references
36589 e_ref_assembly_ref = 1 << 3,
36590 e_ref_type_def = 1 << 4,
36591 e_ref_event = 1 << 5,
36592 e_ref_field = 1 << 6,
36593 e_ref_generic_param = 1 << 7,
36594 e_ref_module_ref = 1 << 8,
36595 e_ref_method_def = 1 << 9,
36596 e_ref_param = 1 << 10,
36597 e_ref_property = 1 << 11,
36598 // multi-table references
36599 e_ref_has_constant = 1 << 12,
36600 e_ref_has_custom_attribute = 1 << 13,
36601 e_ref_has_decl_security = 1 << 14,
36602 e_ref_has_field_marshall = 1 << 15,
36603 e_ref_has_semantics = 1 << 16,
36604 e_ref_method_def_or_ref = 1 << 17,
36605 e_ref_type_def_or_ref = 1 << 18,
36606 e_ref_implementation = 1 << 19,
36607 e_ref_member_forwarded = 1 << 20,
36608 e_ref_member_ref_parent = 1 << 21,
36609 e_ref_type_or_method_def = 1 << 22,
36610 e_ref_custom_attribute_type = 1 << 23,
36611 e_ref_resolution_scope = 1 << 24,
36612 e_ref_last = 1 << 25,
36613 };
36614
36615 enum TableKind : std::uint8_t
36616 {
36617
36618 e_Assembly = 0x20,
36619 e_AssemblyOS = 0x22,
36620 e_AssemblyProcessor = 0x21,
36621 e_AssemblyRef = 0x23,
36622 e_AssemblyRefOS = 0x25,
36623 e_AssemblyRefProcessor = 0x24,
36624 e_ClassLayout = 0x0F,
36625 e_Constant = 0x0B,
36626 e_CustomAttribute = 0x0C,
36627 e_DeclSecurity = 0x0E,
36628 e_Event = 0x14,
36629 e_EventMap = 0x12,
36630 e_ExportedType = 0x27,
36631 e_Field = 0x04,
36632 e_FieldLayout = 0x10,
36633 e_FieldMarshal = 0x0D,
36634 e_FieldRVA = 0x1D,
36635 e_File = 0x26,
36636 e_GenericParam = 0x2A,
36637 e_GenericParamConstraint = 0x2C,
36638 e_ImplMap = 0x1C,
36639 e_InterfaceImpl = 0x09,
36640 e_ManifestResource = 0x28,
36641 e_MemberRef = 0x0A,
36642 e_MethodDef = 0x06,
36643 e_MethodImpl = 0x19,
36644 e_MethodSemantics = 0x18,
36645 e_MethodSpec = 0x2B,
36646 e_Module = 0x00,
36647 e_ModuleRef = 0x1A,
36648 e_NestedClass = 0x29,
36649 e_Param = 0x08,
36650 e_Property = 0x17,
36651 e_PropertyMap = 0x15,
36652 e_StandAloneSig = 0x11,
36653 e_TypeDef = 0x02,
36654 e_TypeRef = 0x01,
36655 e_TypeSpec = 0x1B,
36656 e_Unknown_table_kind = 0xFF
36657 };
36658
36660 void parse(const std::vector<uint8_t>& buf, size_t startOfMetaData) override;
36661
36663 void unparse(std::vector<uint8_t>& buf, size_t startOfMetaData) const override;
36664
36666 void dump(std::ostream& os) const override;
36667
36671 SgAsmCilMetadata* get_MetadataNode(std::uint32_t idx, TableKind tblcode) const;
36672
36677 SgAsmCilMetadata* get_CodedMetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
36678
36683 SgAsmCilMetadata* get_MetadataNode(std::uint32_t refcode, ReferenceKind knd) const;
36684public:
36687
36688public:
36691
36692public:
36694 SgAsmCilMetadataHeap(uint32_t const& Offset,
36695 uint32_t const& Size,
36696 std::string const& Name,
36697 uint32_t const& NamePadding);
36698
36699protected:
36707#endif // SgAsmCilMetadataHeap_OTHERS
36708#ifdef DOCUMENTATION
36709};
36710#endif // DOCUMENTATION
36711
36712
36714// SgAsmCilMemberRefTable -- MACHINE GENERATED; DO NOT MODIFY --
36716
36717DECLARE_LEAF_CLASS(AsmCilMemberRefTable);
36718IS_SERIALIZABLE(AsmCilMemberRefTable);
36719
36720#ifndef DOCUMENTATION
36721AsmCilMemberRefTable.useSmallHeader(true);
36722#endif // !DOCUMENTATION
36723
36724#ifdef DOCUMENTATION
36727#endif // DOCUMENTATION
36728
36729#ifndef DOCUMENTATION
36730 AsmCilMemberRefTable.setDataPrototype(
36731 "std::vector<SgAsmCilMemberRef*>", "elements", "",
36732 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36733#endif // !DOCUMENTATION
36734
36735 DECLARE_OTHERS(AsmCilMemberRefTable);
36736#if defined(SgAsmCilMemberRefTable_OTHERS) || defined(DOCUMENTATION)
36737
36738 //----------------------- Boost serialization for SgAsmCilMemberRefTable -----------------------
36739#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36740private:
36741 friend class boost::serialization::access;
36742
36743 template<class S>
36744 void serialize(S &s, const unsigned /*version*/) {
36745 debugSerializationBegin("SgAsmCilMemberRefTable");
36746 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36747 s & BOOST_SERIALIZATION_NVP(p_elements);
36748 debugSerializationEnd("SgAsmCilMemberRefTable");
36749 }
36750#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36751
36752public:
36753 std::vector<SgAsmCilMemberRef*> const& get_elements() const;
36754 std::vector<SgAsmCilMemberRef*>& get_elements();
36755public:
36757public:
36760
36761public:
36764
36765protected:
36773#endif // SgAsmCilMemberRefTable_OTHERS
36774#ifdef DOCUMENTATION
36775};
36776#endif // DOCUMENTATION
36777
36778
36780// SgAsmCilMemberRef -- MACHINE GENERATED; DO NOT MODIFY --
36782
36783DECLARE_LEAF_CLASS(AsmCilMemberRef);
36784IS_SERIALIZABLE(AsmCilMemberRef);
36785
36786#ifndef DOCUMENTATION
36787AsmCilMemberRef.useSmallHeader(true);
36788#endif // !DOCUMENTATION
36789
36790#ifdef DOCUMENTATION
36793#endif // DOCUMENTATION
36794
36795#ifndef DOCUMENTATION
36796 AsmCilMemberRef.setDataPrototype(
36797 "uint32_t", "Class", "= 0",
36798 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36799#endif // !DOCUMENTATION
36800
36801#ifndef DOCUMENTATION
36802 AsmCilMemberRef.setDataPrototype(
36803 "uint32_t", "Name", "= 0",
36804 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36805#endif // !DOCUMENTATION
36806
36807#ifndef DOCUMENTATION
36808 AsmCilMemberRef.setDataPrototype(
36809 "uint32_t", "Signature", "= 0",
36810 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36811#endif // !DOCUMENTATION
36812
36813 DECLARE_OTHERS(AsmCilMemberRef);
36814#if defined(SgAsmCilMemberRef_OTHERS) || defined(DOCUMENTATION)
36815
36816 //----------------------- Boost serialization for SgAsmCilMemberRef -----------------------
36817#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36818private:
36819 friend class boost::serialization::access;
36820
36821 template<class S>
36822 void serialize(S &s, const unsigned /*version*/) {
36823 debugSerializationBegin("SgAsmCilMemberRef");
36824 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36825 s & BOOST_SERIALIZATION_NVP(p_Class);
36826 s & BOOST_SERIALIZATION_NVP(p_Name);
36827 s & BOOST_SERIALIZATION_NVP(p_Signature);
36828 debugSerializationEnd("SgAsmCilMemberRef");
36829 }
36830#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36831
36832public:
36838 uint32_t const& get_Class() const;
36839 void set_Class(uint32_t const&);
36842public:
36848 uint32_t const& get_Name() const;
36849 void set_Name(uint32_t const&);
36852public:
36858 uint32_t const& get_Signature() const;
36859 void set_Signature(uint32_t const&);
36861public:
36862 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
36863 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
36864 void dump(std::ostream&) const;
36865
36866 const SgAsmCilMetadata* get_Class_object() const;
36867 const std::uint8_t* get_Name_string() const;
36868 const std::uint8_t* get_Signature_blob() const;
36869public:
36872
36873public:
36876
36877protected:
36885#endif // SgAsmCilMemberRef_OTHERS
36886#ifdef DOCUMENTATION
36887};
36888#endif // DOCUMENTATION
36889
36890
36892// SgAsmCilManifestResourceTable -- MACHINE GENERATED; DO NOT MODIFY --
36894
36895DECLARE_LEAF_CLASS(AsmCilManifestResourceTable);
36896IS_SERIALIZABLE(AsmCilManifestResourceTable);
36897
36898#ifndef DOCUMENTATION
36899AsmCilManifestResourceTable.useSmallHeader(true);
36900#endif // !DOCUMENTATION
36901
36902#ifdef DOCUMENTATION
36905#endif // DOCUMENTATION
36906
36907#ifndef DOCUMENTATION
36908 AsmCilManifestResourceTable.setDataPrototype(
36909 "std::vector<SgAsmCilManifestResource*>", "elements", "",
36910 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
36911#endif // !DOCUMENTATION
36912
36913 DECLARE_OTHERS(AsmCilManifestResourceTable);
36914#if defined(SgAsmCilManifestResourceTable_OTHERS) || defined(DOCUMENTATION)
36915
36916 //----------------------- Boost serialization for SgAsmCilManifestResourceTable -----------------------
36917#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
36918private:
36919 friend class boost::serialization::access;
36920
36921 template<class S>
36922 void serialize(S &s, const unsigned /*version*/) {
36923 debugSerializationBegin("SgAsmCilManifestResourceTable");
36924 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
36925 s & BOOST_SERIALIZATION_NVP(p_elements);
36926 debugSerializationEnd("SgAsmCilManifestResourceTable");
36927 }
36928#endif // ROSE_ENABLE_BOOST_SERIALIZATION
36929
36930public:
36931 std::vector<SgAsmCilManifestResource*> const& get_elements() const;
36932 std::vector<SgAsmCilManifestResource*>& get_elements();
36933public:
36935public:
36938
36939public:
36942
36943protected:
36951#endif // SgAsmCilManifestResourceTable_OTHERS
36952#ifdef DOCUMENTATION
36953};
36954#endif // DOCUMENTATION
36955
36956
36958// SgAsmCilManifestResource -- MACHINE GENERATED; DO NOT MODIFY --
36960
36961DECLARE_LEAF_CLASS(AsmCilManifestResource);
36962IS_SERIALIZABLE(AsmCilManifestResource);
36963
36964#ifndef DOCUMENTATION
36965AsmCilManifestResource.useSmallHeader(true);
36966#endif // !DOCUMENTATION
36967
36968#ifdef DOCUMENTATION
36971#endif // DOCUMENTATION
36972
36973#ifndef DOCUMENTATION
36974 AsmCilManifestResource.setDataPrototype(
36975 "uint32_t", "Offset", "= 0",
36976 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36977#endif // !DOCUMENTATION
36978
36979#ifndef DOCUMENTATION
36980 AsmCilManifestResource.setDataPrototype(
36981 "uint32_t", "Flags", "= 0",
36982 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36983#endif // !DOCUMENTATION
36984
36985#ifndef DOCUMENTATION
36986 AsmCilManifestResource.setDataPrototype(
36987 "uint32_t", "Name", "= 0",
36988 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36989#endif // !DOCUMENTATION
36990
36991#ifndef DOCUMENTATION
36992 AsmCilManifestResource.setDataPrototype(
36993 "uint32_t", "Implementation", "= 0",
36994 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE, COPY_DATA);
36995#endif // !DOCUMENTATION
36996
36997 DECLARE_OTHERS(AsmCilManifestResource);
36998#if defined(SgAsmCilManifestResource_OTHERS) || defined(DOCUMENTATION)
36999
37000 //----------------------- Boost serialization for SgAsmCilManifestResource -----------------------
37001#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37002private:
37003 friend class boost::serialization::access;
37004
37005 template<class S>
37006 void serialize(S &s, const unsigned /*version*/) {
37007 debugSerializationBegin("SgAsmCilManifestResource");
37008 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37009 s & BOOST_SERIALIZATION_NVP(p_Offset);
37010 s & BOOST_SERIALIZATION_NVP(p_Flags);
37011 s & BOOST_SERIALIZATION_NVP(p_Name);
37012 s & BOOST_SERIALIZATION_NVP(p_Implementation);
37013 debugSerializationEnd("SgAsmCilManifestResource");
37014 }
37015#endif // ROSE_ENABLE_BOOST_SERIALIZATION
37016
37017public:
37023 uint32_t const& get_Offset() const;
37024 void set_Offset(uint32_t const&);
37027public:
37033 uint32_t const& get_Flags() const;
37034 void set_Flags(uint32_t const&);
37037public:
37043 uint32_t const& get_Name() const;
37044 void set_Name(uint32_t const&);
37047public:
37053 uint32_t const& get_Implementation() const;
37054 void set_Implementation(uint32_t const&);
37056public:
37057 void parse(const std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing);
37058 void unparse(std::vector<uint8_t>& buf, size_t& index, uint64_t uses4byteIndexing) const;
37059 void dump(std::ostream&) const;
37060
37061 const std::uint8_t* get_Name_string() const;
37062 const SgAsmCilMetadata* get_Implementation_object() const;
37063public:
37066
37067public:
37070
37071protected:
37079#endif // SgAsmCilManifestResource_OTHERS
37080#ifdef DOCUMENTATION
37081};
37082#endif // DOCUMENTATION
37083
37084
37086// SgAsmCilInterfaceImplTable -- MACHINE GENERATED; DO NOT MODIFY --
37088
37089DECLARE_LEAF_CLASS(AsmCilInterfaceImplTable);
37090IS_SERIALIZABLE(AsmCilInterfaceImplTable);
37091
37092#ifndef DOCUMENTATION
37093AsmCilInterfaceImplTable.useSmallHeader(true);
37094#endif // !DOCUMENTATION
37095
37096#ifdef DOCUMENTATION
37099#endif // DOCUMENTATION
37100
37101#ifndef DOCUMENTATION
37102 AsmCilInterfaceImplTable.setDataPrototype(
37103 "std::vector<SgAsmCilInterfaceImpl*>", "elements", "",
37104 NO_CONSTRUCTOR_PARAMETER, NO_ACCESS_FUNCTIONS, DEF_TRAVERSAL, NO_DELETE, COPY_DATA);
37105#endif // !DOCUMENTATION
37106
37107 DECLARE_OTHERS(AsmCilInterfaceImplTable);
37108#if defined(SgAsmCilInterfaceImplTable_OTHERS) || defined(DOCUMENTATION)
37109
37110 //----------------------- Boost serialization for SgAsmCilInterfaceImplTable -----------------------
37111#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
37112private:
37113 friend class boost::serialization::access;
37114
37115 template<class S>
37116 void serialize(S &s, const unsigned /*version*/) {
37117 debugSerializationBegin("SgAsmCilInterfaceImplTable");
37118 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(SgAsmCilMetadata);
37119 s & BOOST_SERIALIZATION_NVP(p_elements);