mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #55 from lioncash/string
Core: Alter the kernel string functions to use std::string instead of const char*.
This commit is contained in:
		
						commit
						e9c5c563a5
					
				
					 16 changed files with 38 additions and 41 deletions
				
			
		|  | @ -17,8 +17,8 @@ namespace Kernel { | ||||||
| 
 | 
 | ||||||
| class AddressArbiter : public Object { | class AddressArbiter : public Object { | ||||||
| public: | public: | ||||||
|     const char* GetTypeName() const { return "Arbiter"; } |     std::string GetTypeName() const { return "Arbiter"; } | ||||||
|     const char* GetName() const { return name.c_str(); } |     std::string GetName() const { return name; } | ||||||
| 
 | 
 | ||||||
|     static Kernel::HandleType GetStaticHandleType() { return HandleType::AddressArbiter; } |     static Kernel::HandleType GetStaticHandleType() { return HandleType::AddressArbiter; } | ||||||
|     Kernel::HandleType GetHandleType() const { return HandleType::AddressArbiter; } |     Kernel::HandleType GetHandleType() const { return HandleType::AddressArbiter; } | ||||||
|  |  | ||||||
|  | @ -31,8 +31,8 @@ enum class FileCommand : u32 { | ||||||
| 
 | 
 | ||||||
| class Archive : public Object { | class Archive : public Object { | ||||||
| public: | public: | ||||||
|     const char* GetTypeName() const { return "Archive"; } |     std::string GetTypeName() const { return "Archive"; } | ||||||
|     const char* GetName() const { return name.c_str(); } |     std::string GetName() const { return name; } | ||||||
| 
 | 
 | ||||||
|     static Kernel::HandleType GetStaticHandleType() { return HandleType::Archive; } |     static Kernel::HandleType GetStaticHandleType() { return HandleType::Archive; } | ||||||
|     Kernel::HandleType GetHandleType() const { return HandleType::Archive; } |     Kernel::HandleType GetHandleType() const { return HandleType::Archive; } | ||||||
|  | @ -110,7 +110,7 @@ Result MountArchive(Archive* archive) { | ||||||
|         return -1; |         return -1; | ||||||
|     } |     } | ||||||
|     g_archive_map[id_code] = archive->GetHandle(); |     g_archive_map[id_code] = archive->GetHandle(); | ||||||
|     INFO_LOG(KERNEL, "Mounted archive %s", archive->GetName()); |     INFO_LOG(KERNEL, "Mounted archive %s", archive->GetName().c_str()); | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -16,8 +16,8 @@ namespace Kernel { | ||||||
| 
 | 
 | ||||||
| class Event : public Object { | class Event : public Object { | ||||||
| public: | public: | ||||||
|     const char* GetTypeName() const { return "Event"; } |     std::string GetTypeName() const { return "Event"; } | ||||||
|     const char* GetName() const { return name.c_str(); } |     std::string GetName() const { return name; } | ||||||
| 
 | 
 | ||||||
|     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Event; } |     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Event; } | ||||||
|     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Event; } |     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Event; } | ||||||
|  |  | ||||||
|  | @ -71,8 +71,8 @@ void ObjectPool::List() { | ||||||
|     for (int i = 0; i < MAX_COUNT; i++) { |     for (int i = 0; i < MAX_COUNT; i++) { | ||||||
|         if (occupied[i]) { |         if (occupied[i]) { | ||||||
|             if (pool[i]) { |             if (pool[i]) { | ||||||
|                 INFO_LOG(KERNEL, "KO %i: %s \"%s\"", i + HANDLE_OFFSET, pool[i]->GetTypeName(),  |                 INFO_LOG(KERNEL, "KO %i: %s \"%s\"", i + HANDLE_OFFSET, pool[i]->GetTypeName().c_str(),  | ||||||
|                     pool[i]->GetName()); |                     pool[i]->GetName().c_str()); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include <string> | ||||||
| #include "common/common.h" | #include "common/common.h" | ||||||
| 
 | 
 | ||||||
| typedef u32 Handle; | typedef u32 Handle; | ||||||
|  | @ -33,7 +34,6 @@ enum class HandleType : u32 { | ||||||
| }; | }; | ||||||
|      |      | ||||||
| enum { | enum { | ||||||
|     MAX_NAME_LENGTH     = 0x100, |  | ||||||
|     DEFAULT_STACK_SIZE  = 0x4000, |     DEFAULT_STACK_SIZE  = 0x4000, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | @ -45,8 +45,8 @@ class Object : NonCopyable { | ||||||
| public: | public: | ||||||
|     virtual ~Object() {} |     virtual ~Object() {} | ||||||
|     Handle GetHandle() const { return handle; } |     Handle GetHandle() const { return handle; } | ||||||
|     virtual const char* GetTypeName() const { return "[BAD KERNEL OBJECT TYPE]"; } |     virtual std::string GetTypeName() const { return "[BAD KERNEL OBJECT TYPE]"; } | ||||||
|     virtual const char* GetName() const { return "[UNKNOWN KERNEL OBJECT]"; } |     virtual std::string GetName() const { return "[UNKNOWN KERNEL OBJECT]"; } | ||||||
|     virtual Kernel::HandleType GetHandleType() const = 0; |     virtual Kernel::HandleType GetHandleType() const = 0; | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|  |  | ||||||
|  | @ -15,8 +15,8 @@ namespace Kernel { | ||||||
| 
 | 
 | ||||||
| class Mutex : public Object { | class Mutex : public Object { | ||||||
| public: | public: | ||||||
|     const char* GetTypeName() const { return "Mutex"; } |     std::string GetTypeName() const { return "Mutex"; } | ||||||
|     const char* GetName() const { return name.c_str(); } |     std::string GetName() const { return name; } | ||||||
| 
 | 
 | ||||||
|     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Mutex; } |     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Mutex; } | ||||||
|     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Mutex; } |     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Mutex; } | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ namespace Kernel { | ||||||
| 
 | 
 | ||||||
| class SharedMemory : public Object { | class SharedMemory : public Object { | ||||||
| public: | public: | ||||||
|     const char* GetTypeName() const { return "SharedMemory"; } |     std::string GetTypeName() const { return "SharedMemory"; } | ||||||
| 
 | 
 | ||||||
|     static Kernel::HandleType GetStaticHandleType() {  return Kernel::HandleType::SharedMemory; } |     static Kernel::HandleType GetStaticHandleType() {  return Kernel::HandleType::SharedMemory; } | ||||||
|     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::SharedMemory; } |     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::SharedMemory; } | ||||||
|  |  | ||||||
|  | @ -2,13 +2,12 @@ | ||||||
| // Licensed under GPLv2
 | // Licensed under GPLv2
 | ||||||
| // Refer to the license.txt file included.  
 | // Refer to the license.txt file included.  
 | ||||||
| 
 | 
 | ||||||
| #include <stdio.h> |  | ||||||
| 
 |  | ||||||
| #include <list> |  | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| #include <vector> | #include <cstdio> | ||||||
|  | #include <list> | ||||||
| #include <map> | #include <map> | ||||||
| #include <string> | #include <string> | ||||||
|  | #include <vector> | ||||||
| 
 | 
 | ||||||
| #include "common/common.h" | #include "common/common.h" | ||||||
| #include "common/thread_queue_list.h" | #include "common/thread_queue_list.h" | ||||||
|  | @ -25,8 +24,8 @@ namespace Kernel { | ||||||
| class Thread : public Kernel::Object { | class Thread : public Kernel::Object { | ||||||
| public: | public: | ||||||
| 
 | 
 | ||||||
|     const char* GetName() const { return name; } |     std::string GetName() const { return name; } | ||||||
|     const char* GetTypeName() const { return "Thread"; } |     std::string GetTypeName() const { return "Thread"; } | ||||||
| 
 | 
 | ||||||
|     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Thread; } |     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Thread; } | ||||||
|     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Thread; } |     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Thread; } | ||||||
|  | @ -71,7 +70,7 @@ public: | ||||||
| 
 | 
 | ||||||
|     std::vector<Handle> waiting_threads; |     std::vector<Handle> waiting_threads; | ||||||
| 
 | 
 | ||||||
|     char name[Kernel::MAX_NAME_LENGTH + 1]; |     std::string name; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // Lists all thread ids that aren't deleted/etc.
 | // Lists all thread ids that aren't deleted/etc.
 | ||||||
|  | @ -336,9 +335,7 @@ Thread* CreateThread(Handle& handle, const char* name, u32 entry_point, s32 prio | ||||||
|     thread->processor_id = processor_id; |     thread->processor_id = processor_id; | ||||||
|     thread->wait_type = WAITTYPE_NONE; |     thread->wait_type = WAITTYPE_NONE; | ||||||
|     thread->wait_handle = 0; |     thread->wait_handle = 0; | ||||||
| 
 |     thread->name = name; | ||||||
|     strncpy(thread->name, name, Kernel::MAX_NAME_LENGTH); |  | ||||||
|     thread->name[Kernel::MAX_NAME_LENGTH] = '\0'; |  | ||||||
| 
 | 
 | ||||||
|     return thread; |     return thread; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -29,7 +29,7 @@ public: | ||||||
|      * Gets the string port name used by CTROS for the service |      * Gets the string port name used by CTROS for the service | ||||||
|      * @return Port name of service |      * @return Port name of service | ||||||
|      */ |      */ | ||||||
|     const char *GetPortName() const { |     std::string GetPortName() const { | ||||||
|         return "APT:U"; |         return "APT:U"; | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ public: | ||||||
|      * Gets the string port name used by CTROS for the service |      * Gets the string port name used by CTROS for the service | ||||||
|      * @return Port name of service |      * @return Port name of service | ||||||
|      */ |      */ | ||||||
|     const char *GetPortName() const { |     std::string GetPortName() const { | ||||||
|         return "fs:USER"; |         return "fs:USER"; | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -137,7 +137,7 @@ public: | ||||||
|      * Gets the string port name used by CTROS for the service |      * Gets the string port name used by CTROS for the service | ||||||
|      * @return Port name of service |      * @return Port name of service | ||||||
|      */ |      */ | ||||||
|     const char *GetPortName() const { |     std::string GetPortName() const { | ||||||
|         return "gsp::Gpu"; |         return "gsp::Gpu"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ public: | ||||||
|      * Gets the string port name used by CTROS for the service |      * Gets the string port name used by CTROS for the service | ||||||
|      * @return Port name of service |      * @return Port name of service | ||||||
|      */ |      */ | ||||||
|     const char *GetPortName() const { |     std::string GetPortName() const { | ||||||
|         return "hid:USER"; |         return "hid:USER"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ public: | ||||||
|      * Gets the string port name used by CTROS for the service |      * Gets the string port name used by CTROS for the service | ||||||
|      * @return Port name of service |      * @return Port name of service | ||||||
|      */ |      */ | ||||||
|     const char *GetPortName() const { |     std::string GetPortName() const { | ||||||
|         return "ndm:u"; |         return "ndm:u"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -39,8 +39,8 @@ class Interface  : public Kernel::Object { | ||||||
|     friend class Manager; |     friend class Manager; | ||||||
| public: | public: | ||||||
|      |      | ||||||
|     const char *GetName() const { return GetPortName(); } |     std::string GetName() const { return GetPortName(); } | ||||||
|     const char *GetTypeName() const { return GetPortName(); } |     std::string GetTypeName() const { return GetPortName(); } | ||||||
| 
 | 
 | ||||||
|     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Service; } |     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Service; } | ||||||
|     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Service; } |     Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Service; } | ||||||
|  | @ -57,7 +57,7 @@ public: | ||||||
|      * Gets the string name used by CTROS for a service |      * Gets the string name used by CTROS for a service | ||||||
|      * @return Port name of service |      * @return Port name of service | ||||||
|      */ |      */ | ||||||
|     virtual const char *GetPortName() const { |     virtual std::string GetPortName() const { | ||||||
|         return "[UNKNOWN SERVICE PORT]"; |         return "[UNKNOWN SERVICE PORT]"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -86,7 +86,7 @@ public: | ||||||
| 
 | 
 | ||||||
|         if (itr == m_functions.end()) { |         if (itr == m_functions.end()) { | ||||||
|             ERROR_LOG(OSHLE, "unknown/unimplemented function: port=%s, command=0x%08X",  |             ERROR_LOG(OSHLE, "unknown/unimplemented function: port=%s, command=0x%08X",  | ||||||
|                 GetPortName(), cmd_buff[0]); |                 GetPortName().c_str(), cmd_buff[0]); | ||||||
| 
 | 
 | ||||||
|             // TODO(bunnei): Hack - ignore error
 |             // TODO(bunnei): Hack - ignore error
 | ||||||
|             u32* cmd_buff = Service::GetCommandBuffer(); |             u32* cmd_buff = Service::GetCommandBuffer(); | ||||||
|  | @ -95,7 +95,7 @@ public: | ||||||
|         } |         } | ||||||
|         if (itr->second.func == nullptr) { |         if (itr->second.func == nullptr) { | ||||||
|             ERROR_LOG(OSHLE, "unimplemented function: port=%s, name=%s",  |             ERROR_LOG(OSHLE, "unimplemented function: port=%s, name=%s",  | ||||||
|                 GetPortName(), itr->second.name.c_str()); |                 GetPortName().c_str(), itr->second.name.c_str()); | ||||||
| 
 | 
 | ||||||
|             // TODO(bunnei): Hack - ignore error
 |             // TODO(bunnei): Hack - ignore error
 | ||||||
|             u32* cmd_buff = Service::GetCommandBuffer(); |             u32* cmd_buff = Service::GetCommandBuffer(); | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ public: | ||||||
|      * Gets the string name used by CTROS for the service |      * Gets the string name used by CTROS for the service | ||||||
|      * @return Port name of service |      * @return Port name of service | ||||||
|      */ |      */ | ||||||
|     const char *GetPortName() const { |     std::string GetPortName() const { | ||||||
|         return "srv:"; |         return "srv:"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -92,7 +92,7 @@ Result SendSyncRequest(Handle handle) { | ||||||
|     Kernel::Object* object = Kernel::g_object_pool.GetFast<Kernel::Object>(handle); |     Kernel::Object* object = Kernel::g_object_pool.GetFast<Kernel::Object>(handle); | ||||||
| 
 | 
 | ||||||
|     _assert_msg_(KERNEL, (object != nullptr), "called, but kernel object is nullptr!"); |     _assert_msg_(KERNEL, (object != nullptr), "called, but kernel object is nullptr!"); | ||||||
|     DEBUG_LOG(SVC, "called handle=0x%08X(%s)", handle, object->GetTypeName()); |     DEBUG_LOG(SVC, "called handle=0x%08X(%s)", handle, object->GetTypeName().c_str()); | ||||||
| 
 | 
 | ||||||
|     bool wait = false; |     bool wait = false; | ||||||
|     Result res = object->SyncRequest(&wait); |     Result res = object->SyncRequest(&wait); | ||||||
|  | @ -118,8 +118,8 @@ Result WaitSynchronization1(Handle handle, s64 nano_seconds) { | ||||||
| 
 | 
 | ||||||
|     Kernel::Object* object = Kernel::g_object_pool.GetFast<Kernel::Object>(handle); |     Kernel::Object* object = Kernel::g_object_pool.GetFast<Kernel::Object>(handle); | ||||||
| 
 | 
 | ||||||
|     DEBUG_LOG(SVC, "called handle=0x%08X(%s:%s), nanoseconds=%d", handle, object->GetTypeName(),  |     DEBUG_LOG(SVC, "called handle=0x%08X(%s:%s), nanoseconds=%d", handle, object->GetTypeName().c_str(),  | ||||||
|             object->GetName(), nano_seconds); |             object->GetName().c_str(), nano_seconds); | ||||||
| 
 | 
 | ||||||
|     _assert_msg_(KERNEL, (object != nullptr), "called, but kernel object is nullptr!"); |     _assert_msg_(KERNEL, (object != nullptr), "called, but kernel object is nullptr!"); | ||||||
| 
 | 
 | ||||||
|  | @ -152,8 +152,8 @@ Result WaitSynchronizationN(s32* out, Handle* handles, s32 handle_count, bool wa | ||||||
|         _assert_msg_(KERNEL, (object != nullptr), "called handle=0x%08X, but kernel object " |         _assert_msg_(KERNEL, (object != nullptr), "called handle=0x%08X, but kernel object " | ||||||
|             "is nullptr!", handles[i]); |             "is nullptr!", handles[i]); | ||||||
| 
 | 
 | ||||||
|         DEBUG_LOG(SVC, "\thandle[%d] = 0x%08X(%s:%s)", i, handles[i], object->GetTypeName(),  |         DEBUG_LOG(SVC, "\thandle[%d] = 0x%08X(%s:%s)", i, handles[i], object->GetTypeName().c_str(),  | ||||||
|             object->GetName()); |             object->GetName().c_str()); | ||||||
| 
 | 
 | ||||||
|         Result res = object->WaitSynchronization(&wait); |         Result res = object->WaitSynchronization(&wait); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue