mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue