summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/process.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/process.h')
-rw-r--r--src/core/hle/kernel/process.h44
1 files changed, 32 insertions, 12 deletions
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h
index 98d8da35e..f29ee67c6 100644
--- a/src/core/hle/kernel/process.h
+++ b/src/core/hle/kernel/process.h
@@ -55,6 +55,12 @@ enum class ProcessStatus { Created, Running, Exited };
55class ResourceLimit; 55class ResourceLimit;
56 56
57struct CodeSet final : public Object { 57struct CodeSet final : public Object {
58 struct Segment {
59 size_t offset = 0;
60 VAddr addr = 0;
61 u32 size = 0;
62 };
63
58 static SharedPtr<CodeSet> Create(std::string name); 64 static SharedPtr<CodeSet> Create(std::string name);
59 65
60 std::string GetTypeName() const override { 66 std::string GetTypeName() const override {
@@ -69,24 +75,38 @@ struct CodeSet final : public Object {
69 return HANDLE_TYPE; 75 return HANDLE_TYPE;
70 } 76 }
71 77
72 /// Name of the process 78 Segment& CodeSegment() {
73 std::string name; 79 return segments[0];
80 }
74 81
75 std::shared_ptr<std::vector<u8>> memory; 82 const Segment& CodeSegment() const {
83 return segments[0];
84 }
76 85
77 struct Segment { 86 Segment& RODataSegment() {
78 size_t offset = 0; 87 return segments[1];
79 VAddr addr = 0; 88 }
80 u32 size = 0;
81 };
82 89
83 Segment segments[3]; 90 const Segment& RODataSegment() const {
84 Segment& code = segments[0]; 91 return segments[1];
85 Segment& rodata = segments[1]; 92 }
86 Segment& data = segments[2]; 93
94 Segment& DataSegment() {
95 return segments[2];
96 }
97
98 const Segment& DataSegment() const {
99 return segments[2];
100 }
101
102 std::shared_ptr<std::vector<u8>> memory;
87 103
104 Segment segments[3];
88 VAddr entrypoint; 105 VAddr entrypoint;
89 106
107 /// Name of the process
108 std::string name;
109
90private: 110private:
91 CodeSet(); 111 CodeSet();
92 ~CodeSet() override; 112 ~CodeSet() override;