aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/process.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-08-04 02:17:25 -0400
committerGitHub <noreply@github.com>2018-08-04 02:17:25 -0400
commit206f2e3436a2c1dddee7503edc4e142fb9a9dbd4 (patch)
tree69c99523b435fe2c2bff9b022534035a9b4b4020 /src/core/hle/kernel/process.h
parentd43dad001e8afa866eddc3d15bb5a6f47d797583 (diff)
parente649db8c6bbb3e76f610fe9511e2dfc33bd6b322 (diff)
Merge pull request #914 from lioncash/codeset
kernel/process: Use accessors instead of class members for referencing segment array
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 @@
#pragma once
+#include <array>
#include <bitset>
#include <cstddef>
#include <memory>
@@ -55,6 +56,12 @@ enum class ProcessStatus { Created, Running, Exited };
class ResourceLimit;
struct CodeSet final : public Object {
+ struct Segment {
+ size_t offset = 0;
+ VAddr addr = 0;
+ u32 size = 0;
+ };
+
static SharedPtr<CodeSet> Create(std::string name);
std::string GetTypeName() const override {
@@ -69,24 +76,38 @@ struct CodeSet final : public Object {
return HANDLE_TYPE;
}
- /// Name of the process
- std::string name;
+ Segment& CodeSegment() {
+ return segments[0];
+ }
- std::shared_ptr<std::vector<u8>> memory;
+ const Segment& CodeSegment() const {
+ return segments[0];
+ }
- struct Segment {
- size_t offset = 0;
- VAddr addr = 0;
- u32 size = 0;
- };
+ Segment& RODataSegment() {
+ return segments[1];
+ }
- Segment segments[3];
- Segment& code = segments[0];
- Segment& rodata = segments[1];
- Segment& data = segments[2];
+ const Segment& RODataSegment() const {
+ return segments[1];
+ }
+ Segment& DataSegment() {
+ return segments[2];
+ }
+
+ const Segment& DataSegment() const {
+ return segments[2];
+ }
+
+ std::shared_ptr<std::vector<u8>> memory;
+
+ std::array<Segment, 3> segments;
VAddr entrypoint;
+ /// Name of the process
+ std::string name;
+
private:
CodeSet();
~CodeSet() override;