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.h45
1 files changed, 33 insertions, 12 deletions
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h
index 98d8da35e..992689186 100644
--- a/src/core/hle/kernel/process.h
+++ b/src/core/hle/kernel/process.h
@@ -4,6 +4,7 @@
4 4
5#pragma once 5#pragma once
6 6
7#include <array>
7#include <bitset> 8#include <bitset>
8#include <cstddef> 9#include <cstddef>
9#include <memory> 10#include <memory>
@@ -55,6 +56,12 @@ enum class ProcessStatus { Created, Running, Exited };
55class ResourceLimit; 56class ResourceLimit;
56 57
57struct CodeSet final : public Object { 58struct CodeSet final : public Object {
59 struct Segment {
60 size_t offset = 0;
61 VAddr addr = 0;
62 u32 size = 0;
63 };
64
58 static SharedPtr<CodeSet> Create(std::string name); 65 static SharedPtr<CodeSet> Create(std::string name);
59 66
60 std::string GetTypeName() const override { 67 std::string GetTypeName() const override {
@@ -69,24 +76,38 @@ struct CodeSet final : public Object {
69 return HANDLE_TYPE; 76 return HANDLE_TYPE;
70 } 77 }
71 78
72 /// Name of the process 79 Segment& CodeSegment() {
73 std::string name; 80 return segments[0];
81 }
74 82
75 std::shared_ptr<std::vector<u8>> memory; 83 const Segment& CodeSegment() const {
84 return segments[0];
85 }
76 86
77 struct Segment { 87 Segment& RODataSegment() {
78 size_t offset = 0; 88 return segments[1];
79 VAddr addr = 0; 89 }
80 u32 size = 0;
81 };
82 90
83 Segment segments[3]; 91 const Segment& RODataSegment() const {
84 Segment& code = segments[0]; 92 return segments[1];
85 Segment& rodata = segments[1]; 93 }
86 Segment& data = segments[2];
87 94
95 Segment& DataSegment() {
96 return segments[2];
97 }
98
99 const Segment& DataSegment() const {
100 return segments[2];
101 }
102
103 std::shared_ptr<std::vector<u8>> memory;
104
105 std::array<Segment, 3> segments;
88 VAddr entrypoint; 106 VAddr entrypoint;
89 107
108 /// Name of the process
109 std::string name;
110
90private: 111private:
91 CodeSet(); 112 CodeSet();
92 ~CodeSet() override; 113 ~CodeSet() override;