kernel: pass ref in CodeSet

This commit is contained in:
Weiyi Wang 2018-10-12 15:21:32 -04:00
parent 7449ba85a6
commit 213b259cf1
10 changed files with 56 additions and 30 deletions

View file

@ -13,6 +13,7 @@ namespace Kernel {
class AddressArbiter;
class Event;
class Mutex;
class CodeSet;
enum class ResetType {
OneShot,
@ -50,6 +51,8 @@ public:
* @return Pointer to new Mutex object
*/
SharedPtr<Mutex> CreateMutex(bool initial_locked, std::string name = "Unknown");
SharedPtr<CodeSet> CreateCodeSet(std::string name, u64 program_id);
};
} // namespace Kernel

View file

@ -20,8 +20,8 @@ namespace Kernel {
// Lists all processes that exist in the current session.
static std::vector<SharedPtr<Process>> process_list;
SharedPtr<CodeSet> CodeSet::Create(std::string name, u64 program_id) {
SharedPtr<CodeSet> codeset(new CodeSet);
SharedPtr<CodeSet> KernelSystem::CreateCodeSet(std::string name, u64 program_id) {
SharedPtr<CodeSet> codeset(new CodeSet(*this));
codeset->name = std::move(name);
codeset->program_id = program_id;
@ -29,7 +29,7 @@ SharedPtr<CodeSet> CodeSet::Create(std::string name, u64 program_id) {
return codeset;
}
CodeSet::CodeSet() {}
CodeSet::CodeSet(KernelSystem& system) {}
CodeSet::~CodeSet() {}
u32 Process::next_process_id;

View file

@ -62,8 +62,6 @@ struct CodeSet final : public Object {
u32 size = 0;
};
static SharedPtr<CodeSet> Create(std::string name, u64 program_id);
std::string GetTypeName() const override {
return "CodeSet";
}
@ -111,8 +109,10 @@ struct CodeSet final : public Object {
u64 program_id;
private:
CodeSet();
explicit CodeSet(KernelSystem& kernel);
~CodeSet() override;
friend class KernelSystem;
};
class Process final : public Object {