summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorGravatar Subv2018-02-27 10:22:15 -0500
committerGravatar Subv2018-03-01 19:03:53 -0500
commit827f8ca3c77ad0b7e667c64b5c983b3b3ffe8d7d (patch)
treee557f60eddcd74f0ab380a81dd42749b3e46ef4e /src/core/hle/kernel
parentFS: Implement MountSaveData and some of the IFile interface. (diff)
downloadyuzu-827f8ca3c77ad0b7e667c64b5c983b3b3ffe8d7d.tar.gz
yuzu-827f8ca3c77ad0b7e667c64b5c983b3b3ffe8d7d.tar.xz
yuzu-827f8ca3c77ad0b7e667c64b5c983b3b3ffe8d7d.zip
Kernel: Store the program id in the Process class instead of the CodeSet class.
There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them.
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/process.cpp8
-rw-r--r--src/core/hle/kernel/process.h9
2 files changed, 8 insertions, 9 deletions
diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp
index 8e74059ea..bb6dc28d7 100644
--- a/src/core/hle/kernel/process.cpp
+++ b/src/core/hle/kernel/process.cpp
@@ -20,12 +20,9 @@ namespace Kernel {
20// Lists all processes that exist in the current session. 20// Lists all processes that exist in the current session.
21static std::vector<SharedPtr<Process>> process_list; 21static std::vector<SharedPtr<Process>> process_list;
22 22
23SharedPtr<CodeSet> CodeSet::Create(std::string name, u64 program_id) { 23SharedPtr<CodeSet> CodeSet::Create(std::string name) {
24 SharedPtr<CodeSet> codeset(new CodeSet); 24 SharedPtr<CodeSet> codeset(new CodeSet);
25
26 codeset->name = std::move(name); 25 codeset->name = std::move(name);
27 codeset->program_id = program_id;
28
29 return codeset; 26 return codeset;
30} 27}
31 28
@@ -34,13 +31,14 @@ CodeSet::~CodeSet() {}
34 31
35u32 Process::next_process_id; 32u32 Process::next_process_id;
36 33
37SharedPtr<Process> Process::Create(std::string&& name) { 34SharedPtr<Process> Process::Create(std::string&& name, u64 program_id) {
38 SharedPtr<Process> process(new Process); 35 SharedPtr<Process> process(new Process);
39 36
40 process->name = std::move(name); 37 process->name = std::move(name);
41 process->flags.raw = 0; 38 process->flags.raw = 0;
42 process->flags.memory_region.Assign(MemoryRegion::APPLICATION); 39 process->flags.memory_region.Assign(MemoryRegion::APPLICATION);
43 process->status = ProcessStatus::Created; 40 process->status = ProcessStatus::Created;
41 process->program_id = program_id;
44 42
45 process_list.push_back(process); 43 process_list.push_back(process);
46 return process; 44 return process;
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h
index add98472f..1de12efd3 100644
--- a/src/core/hle/kernel/process.h
+++ b/src/core/hle/kernel/process.h
@@ -56,7 +56,7 @@ class ResourceLimit;
56struct MemoryRegionInfo; 56struct MemoryRegionInfo;
57 57
58struct CodeSet final : public Object { 58struct CodeSet final : public Object {
59 static SharedPtr<CodeSet> Create(std::string name, u64 program_id); 59 static SharedPtr<CodeSet> Create(std::string name);
60 60
61 std::string GetTypeName() const override { 61 std::string GetTypeName() const override {
62 return "CodeSet"; 62 return "CodeSet";
@@ -72,8 +72,6 @@ struct CodeSet final : public Object {
72 72
73 /// Name of the process 73 /// Name of the process
74 std::string name; 74 std::string name;
75 /// Title ID corresponding to the process
76 u64 program_id;
77 75
78 std::shared_ptr<std::vector<u8>> memory; 76 std::shared_ptr<std::vector<u8>> memory;
79 77
@@ -97,7 +95,7 @@ private:
97 95
98class Process final : public Object { 96class Process final : public Object {
99public: 97public:
100 static SharedPtr<Process> Create(std::string&& name); 98 static SharedPtr<Process> Create(std::string&& name, u64 program_id);
101 99
102 std::string GetTypeName() const override { 100 std::string GetTypeName() const override {
103 return "Process"; 101 return "Process";
@@ -113,6 +111,9 @@ public:
113 111
114 static u32 next_process_id; 112 static u32 next_process_id;
115 113
114 /// Title ID corresponding to the process
115 u64 program_id;
116
116 /// Resource limit descriptor for this process 117 /// Resource limit descriptor for this process
117 SharedPtr<ResourceLimit> resource_limit; 118 SharedPtr<ResourceLimit> resource_limit;
118 119