mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-11-01 12:57:52 +00:00
Kernel: Added stubbed code to support creation of kernel Archive objects.
This commit is contained in:
parent
0cc3e85685
commit
8b8c8f4c13
6 changed files with 95 additions and 0 deletions
|
@ -33,6 +33,7 @@ set(SRCS core.cpp
|
||||||
hle/config_mem.cpp
|
hle/config_mem.cpp
|
||||||
hle/coprocessor.cpp
|
hle/coprocessor.cpp
|
||||||
hle/svc.cpp
|
hle/svc.cpp
|
||||||
|
hle/kernel/archive.cpp
|
||||||
hle/kernel/event.cpp
|
hle/kernel/event.cpp
|
||||||
hle/kernel/kernel.cpp
|
hle/kernel/kernel.cpp
|
||||||
hle/kernel/mutex.cpp
|
hle/kernel/mutex.cpp
|
||||||
|
@ -78,6 +79,7 @@ set(HEADERS core.h
|
||||||
hle/coprocessor.h
|
hle/coprocessor.h
|
||||||
hle/hle.h
|
hle/hle.h
|
||||||
hle/svc.h
|
hle/svc.h
|
||||||
|
hle/kernel/archive.h
|
||||||
hle/kernel/kernel.h
|
hle/kernel/kernel.h
|
||||||
hle/kernel/mutex.h
|
hle/kernel/mutex.h
|
||||||
hle/kernel/thread.h
|
hle/kernel/thread.h
|
||||||
|
|
|
@ -165,6 +165,7 @@
|
||||||
<ClCompile Include="hle\config_mem.cpp" />
|
<ClCompile Include="hle\config_mem.cpp" />
|
||||||
<ClCompile Include="hle\coprocessor.cpp" />
|
<ClCompile Include="hle\coprocessor.cpp" />
|
||||||
<ClCompile Include="hle\hle.cpp" />
|
<ClCompile Include="hle\hle.cpp" />
|
||||||
|
<ClCompile Include="hle\kernel\archive.cpp" />
|
||||||
<ClCompile Include="hle\kernel\event.cpp" />
|
<ClCompile Include="hle\kernel\event.cpp" />
|
||||||
<ClCompile Include="hle\kernel\kernel.cpp" />
|
<ClCompile Include="hle\kernel\kernel.cpp" />
|
||||||
<ClCompile Include="hle\kernel\mutex.cpp" />
|
<ClCompile Include="hle\kernel\mutex.cpp" />
|
||||||
|
@ -214,6 +215,7 @@
|
||||||
<ClInclude Include="hle\coprocessor.h" />
|
<ClInclude Include="hle\coprocessor.h" />
|
||||||
<ClInclude Include="hle\function_wrappers.h" />
|
<ClInclude Include="hle\function_wrappers.h" />
|
||||||
<ClInclude Include="hle\hle.h" />
|
<ClInclude Include="hle\hle.h" />
|
||||||
|
<ClInclude Include="hle\kernel\archive.h" />
|
||||||
<ClInclude Include="hle\kernel\event.h" />
|
<ClInclude Include="hle\kernel\event.h" />
|
||||||
<ClInclude Include="hle\kernel\kernel.h" />
|
<ClInclude Include="hle\kernel\kernel.h" />
|
||||||
<ClInclude Include="hle\kernel\mutex.h" />
|
<ClInclude Include="hle\kernel\mutex.h" />
|
||||||
|
|
|
@ -170,6 +170,9 @@
|
||||||
<ClCompile Include="loader\elf.cpp">
|
<ClCompile Include="loader\elf.cpp">
|
||||||
<Filter>loader</Filter>
|
<Filter>loader</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="hle\kernel\archive.cpp">
|
||||||
|
<Filter>hle\kernel</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="arm\disassembler\arm_disasm.h">
|
<ClInclude Include="arm\disassembler\arm_disasm.h">
|
||||||
|
@ -302,6 +305,9 @@
|
||||||
<ClInclude Include="loader\elf.h">
|
<ClInclude Include="loader\elf.h">
|
||||||
<Filter>loader</Filter>
|
<Filter>loader</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="hle\kernel\archive.h">
|
||||||
|
<Filter>hle\kernel</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Text Include="CMakeLists.txt" />
|
<Text Include="CMakeLists.txt" />
|
||||||
|
|
61
src/core/hle/kernel/archive.cpp
Normal file
61
src/core/hle/kernel/archive.cpp
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
// Copyright 2014 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "common/common_types.h"
|
||||||
|
|
||||||
|
#include "core/hle/kernel/kernel.h"
|
||||||
|
#include "core/hle/kernel/archive.h"
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Kernel namespace
|
||||||
|
|
||||||
|
namespace Kernel {
|
||||||
|
|
||||||
|
class Archive : public Object {
|
||||||
|
public:
|
||||||
|
const char* GetTypeName() const { return "Archive"; }
|
||||||
|
const char* GetName() const { return name.c_str(); }
|
||||||
|
|
||||||
|
static Kernel::HandleType GetStaticHandleType() { return HandleType::Archive; }
|
||||||
|
Kernel::HandleType GetHandleType() const { return HandleType::Archive; }
|
||||||
|
|
||||||
|
std::string name; ///< Name of archive (optional)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wait for kernel object to synchronize
|
||||||
|
* @param wait Boolean wait set if current thread should wait as a result of sync operation
|
||||||
|
* @return Result of operation, 0 on success, otherwise error code
|
||||||
|
*/
|
||||||
|
Result WaitSynchronization(bool* wait) {
|
||||||
|
// TODO(bunnei): ImplementMe
|
||||||
|
ERROR_LOG(OSHLE, "unimplemented function");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an Archive
|
||||||
|
* @param name Optional name of Archive
|
||||||
|
* @param handle Handle to newly created archive object
|
||||||
|
* @return Newly created Archive object
|
||||||
|
*/
|
||||||
|
Archive* CreateArchive(Handle& handle, const std::string& name) {
|
||||||
|
Archive* archive = new Archive;
|
||||||
|
handle = Kernel::g_object_pool.Create(archive);
|
||||||
|
archive->name = name;
|
||||||
|
return archive;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an Archive
|
||||||
|
* @param name Optional name of Archive
|
||||||
|
* @return Handle to newly created Archive object
|
||||||
|
*/
|
||||||
|
Handle CreateArchive(const std::string& name) {
|
||||||
|
Handle handle;
|
||||||
|
Archive* archive = CreateArchive(handle, name);
|
||||||
|
return handle;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Kernel
|
23
src/core/hle/kernel/archive.h
Normal file
23
src/core/hle/kernel/archive.h
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// Copyright 2014 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "common/common_types.h"
|
||||||
|
|
||||||
|
#include "core/hle/kernel/kernel.h"
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Kernel namespace
|
||||||
|
|
||||||
|
namespace Kernel {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an archive
|
||||||
|
* @param name Optional name of archive
|
||||||
|
* @return Handle to newly created archive object
|
||||||
|
*/
|
||||||
|
Handle CreateArchive(const std::string& name="Unknown");
|
||||||
|
|
||||||
|
} // namespace FileSys
|
|
@ -29,6 +29,7 @@ enum class HandleType : u32 {
|
||||||
Arbiter = 9,
|
Arbiter = 9,
|
||||||
File = 10,
|
File = 10,
|
||||||
Semaphore = 11,
|
Semaphore = 11,
|
||||||
|
Archive = 12,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|
Loading…
Reference in a new issue