mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 16:09:03 -05:00 
			
		
		
		
	Merge pull request #431 from lioncash/fmt
general: Make formatting of logged hex values more straightforward
This commit is contained in:
		| @@ -55,7 +55,7 @@ public: | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     void InterpreterFallback(u64 pc, size_t num_instructions) override { |     void InterpreterFallback(u64 pc, size_t num_instructions) override { | ||||||
|         NGLOG_INFO(Core_ARM, "Unicorn fallback @ {:#X} for {} instructions (instr = {:08X})", pc, |         NGLOG_INFO(Core_ARM, "Unicorn fallback @ 0x{:X} for {} instructions (instr = {:08X})", pc, | ||||||
|                    num_instructions, MemoryReadCode(pc)); |                    num_instructions, MemoryReadCode(pc)); | ||||||
|  |  | ||||||
|         ARM_Interface::ThreadContext ctx; |         ARM_Interface::ThreadContext ctx; | ||||||
|   | |||||||
| @@ -53,7 +53,7 @@ static bool UnmappedMemoryHook(uc_engine* uc, uc_mem_type type, u64 addr, int si | |||||||
|                                void* user_data) { |                                void* user_data) { | ||||||
|     ARM_Interface::ThreadContext ctx{}; |     ARM_Interface::ThreadContext ctx{}; | ||||||
|     Core::CPU().SaveContext(ctx); |     Core::CPU().SaveContext(ctx); | ||||||
|     ASSERT_MSG(false, "Attempted to read from unmapped memory: {:#X}, pc={:#X}, lr={:#X}", addr, |     ASSERT_MSG(false, "Attempted to read from unmapped memory: 0x{:X}, pc=0x{:X}, lr=0x{:X}", addr, | ||||||
|                ctx.pc, ctx.cpu_registers[30]); |                ctx.pc, ctx.cpu_registers[30]); | ||||||
|     return {}; |     return {}; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -77,11 +77,11 @@ u64 ProgramMetadata::GetFilesystemPermissions() const { | |||||||
|  |  | ||||||
| void ProgramMetadata::Print() const { | void ProgramMetadata::Print() const { | ||||||
|     NGLOG_DEBUG(Service_FS, "Magic:                  {:.4}", npdm_header.magic.data()); |     NGLOG_DEBUG(Service_FS, "Magic:                  {:.4}", npdm_header.magic.data()); | ||||||
|     NGLOG_DEBUG(Service_FS, "Main thread priority:   {:#04X}", npdm_header.main_thread_priority); |     NGLOG_DEBUG(Service_FS, "Main thread priority:   0x{:02X}", npdm_header.main_thread_priority); | ||||||
|     NGLOG_DEBUG(Service_FS, "Main thread core:       {}", npdm_header.main_thread_cpu); |     NGLOG_DEBUG(Service_FS, "Main thread core:       {}", npdm_header.main_thread_cpu); | ||||||
|     NGLOG_DEBUG(Service_FS, "Main thread stack size: {:#X} bytes", npdm_header.main_stack_size); |     NGLOG_DEBUG(Service_FS, "Main thread stack size: 0x{:X} bytes", npdm_header.main_stack_size); | ||||||
|     NGLOG_DEBUG(Service_FS, "Process category:       {}", npdm_header.process_category); |     NGLOG_DEBUG(Service_FS, "Process category:       {}", npdm_header.process_category); | ||||||
|     NGLOG_DEBUG(Service_FS, "Flags:                  {:02X}", npdm_header.flags); |     NGLOG_DEBUG(Service_FS, "Flags:                  0x{:02X}", npdm_header.flags); | ||||||
|     NGLOG_DEBUG(Service_FS, " > 64-bit instructions: {}", |     NGLOG_DEBUG(Service_FS, " > 64-bit instructions: {}", | ||||||
|                 npdm_header.has_64_bit_instructions ? "YES" : "NO"); |                 npdm_header.has_64_bit_instructions ? "YES" : "NO"); | ||||||
|  |  | ||||||
| @@ -99,15 +99,15 @@ void ProgramMetadata::Print() const { | |||||||
|  |  | ||||||
|     // Begin ACID printing (potential perms, signed) |     // Begin ACID printing (potential perms, signed) | ||||||
|     NGLOG_DEBUG(Service_FS, "Magic:                  {:.4}", acid_header.magic.data()); |     NGLOG_DEBUG(Service_FS, "Magic:                  {:.4}", acid_header.magic.data()); | ||||||
|     NGLOG_DEBUG(Service_FS, "Flags:                  {:02X}", acid_header.flags); |     NGLOG_DEBUG(Service_FS, "Flags:                  0x{:02X}", acid_header.flags); | ||||||
|     NGLOG_DEBUG(Service_FS, " > Is Retail:           {}", acid_header.is_retail ? "YES" : "NO"); |     NGLOG_DEBUG(Service_FS, " > Is Retail:           {}", acid_header.is_retail ? "YES" : "NO"); | ||||||
|     NGLOG_DEBUG(Service_FS, "Title ID Min:           {:016X}", acid_header.title_id_min); |     NGLOG_DEBUG(Service_FS, "Title ID Min:           0x{:016X}", acid_header.title_id_min); | ||||||
|     NGLOG_DEBUG(Service_FS, "Title ID Max:           {:016X}", acid_header.title_id_max); |     NGLOG_DEBUG(Service_FS, "Title ID Max:           0x{:016X}", acid_header.title_id_max); | ||||||
|     NGLOG_DEBUG(Service_FS, "Filesystem Access:      {:016X}\n", acid_file_access.permissions); |     NGLOG_DEBUG(Service_FS, "Filesystem Access:      0x{:016X}\n", acid_file_access.permissions); | ||||||
|  |  | ||||||
|     // Begin ACI0 printing (actual perms, unsigned) |     // Begin ACI0 printing (actual perms, unsigned) | ||||||
|     NGLOG_DEBUG(Service_FS, "Magic:                  {:.4}", aci_header.magic.data()); |     NGLOG_DEBUG(Service_FS, "Magic:                  {:.4}", aci_header.magic.data()); | ||||||
|     NGLOG_DEBUG(Service_FS, "Title ID:               {:016X}", aci_header.title_id); |     NGLOG_DEBUG(Service_FS, "Title ID:               0x{:016X}", aci_header.title_id); | ||||||
|     NGLOG_DEBUG(Service_FS, "Filesystem Access:      {:016X}\n", aci_file_access.permissions); |     NGLOG_DEBUG(Service_FS, "Filesystem Access:      0x{:016X}\n", aci_file_access.permissions); | ||||||
| } | } | ||||||
| } // namespace FileSys | } // namespace FileSys | ||||||
|   | |||||||
| @@ -10,12 +10,12 @@ namespace Kernel { | |||||||
| ObjectAddressTable g_object_address_table; | ObjectAddressTable g_object_address_table; | ||||||
|  |  | ||||||
| void ObjectAddressTable::Insert(VAddr addr, SharedPtr<Object> obj) { | void ObjectAddressTable::Insert(VAddr addr, SharedPtr<Object> obj) { | ||||||
|     ASSERT_MSG(objects.find(addr) == objects.end(), "Object already exists with addr={:#X}", addr); |     ASSERT_MSG(objects.find(addr) == objects.end(), "Object already exists with addr=0x{:X}", addr); | ||||||
|     objects[addr] = obj; |     objects[addr] = obj; | ||||||
| } | } | ||||||
|  |  | ||||||
| void ObjectAddressTable::Close(VAddr addr) { | void ObjectAddressTable::Close(VAddr addr) { | ||||||
|     ASSERT_MSG(objects.find(addr) != objects.end(), "Object does not exist with addr={:#X}", addr); |     ASSERT_MSG(objects.find(addr) != objects.end(), "Object does not exist with addr=0x{:X}", addr); | ||||||
|     objects.erase(addr); |     objects.erase(addr); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -111,7 +111,7 @@ void Process::ParseKernelCaps(const u32* kernel_caps, size_t len) { | |||||||
|             int major = (kernel_version >> 8) & 0xFF; |             int major = (kernel_version >> 8) & 0xFF; | ||||||
|             NGLOG_INFO(Loader, "ExHeader kernel version: {}.{}", major, minor); |             NGLOG_INFO(Loader, "ExHeader kernel version: {}.{}", major, minor); | ||||||
|         } else { |         } else { | ||||||
|             NGLOG_ERROR(Loader, "Unhandled kernel caps descriptor: {:#010X}", descriptor); |             NGLOG_ERROR(Loader, "Unhandled kernel caps descriptor: 0x{:08X}", descriptor); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -71,7 +71,7 @@ ResultCode ServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& con | |||||||
|             return domain_request_handlers[object_id - 1]->HandleSyncRequest(context); |             return domain_request_handlers[object_id - 1]->HandleSyncRequest(context); | ||||||
|  |  | ||||||
|         case IPC::DomainMessageHeader::CommandType::CloseVirtualHandle: { |         case IPC::DomainMessageHeader::CommandType::CloseVirtualHandle: { | ||||||
|             NGLOG_DEBUG(IPC, "CloseVirtualHandle, object_id={:#010X}", object_id); |             NGLOG_DEBUG(IPC, "CloseVirtualHandle, object_id=0x{:08X}", object_id); | ||||||
|  |  | ||||||
|             domain_request_handlers[object_id - 1] = nullptr; |             domain_request_handlers[object_id - 1] = nullptr; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -107,7 +107,7 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi | |||||||
|  |  | ||||||
|     // Error out if the requested permissions don't match what the creator process allows. |     // Error out if the requested permissions don't match what the creator process allows. | ||||||
|     if (static_cast<u32>(permissions) & ~static_cast<u32>(own_other_permissions)) { |     if (static_cast<u32>(permissions) & ~static_cast<u32>(own_other_permissions)) { | ||||||
|         NGLOG_ERROR(Kernel, "cannot map id={}, address={:#X} name={}, permissions don't match", |         NGLOG_ERROR(Kernel, "cannot map id={}, address=0x{:X} name={}, permissions don't match", | ||||||
|                     GetObjectId(), address, name); |                     GetObjectId(), address, name); | ||||||
|         return ERR_INVALID_COMBINATION; |         return ERR_INVALID_COMBINATION; | ||||||
|     } |     } | ||||||
| @@ -115,7 +115,7 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi | |||||||
|     // Error out if the provided permissions are not compatible with what the creator process needs. |     // Error out if the provided permissions are not compatible with what the creator process needs. | ||||||
|     if (other_permissions != MemoryPermission::DontCare && |     if (other_permissions != MemoryPermission::DontCare && | ||||||
|         static_cast<u32>(this->permissions) & ~static_cast<u32>(other_permissions)) { |         static_cast<u32>(this->permissions) & ~static_cast<u32>(other_permissions)) { | ||||||
|         NGLOG_ERROR(Kernel, "cannot map id={}, address={:#X} name={}, permissions don't match", |         NGLOG_ERROR(Kernel, "cannot map id={}, address=0x{:X} name={}, permissions don't match", | ||||||
|                     GetObjectId(), address, name); |                     GetObjectId(), address, name); | ||||||
|         return ERR_WRONG_PERMISSION; |         return ERR_WRONG_PERMISSION; | ||||||
|     } |     } | ||||||
| @@ -133,7 +133,7 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi | |||||||
|     if (result.Failed()) { |     if (result.Failed()) { | ||||||
|         NGLOG_ERROR( |         NGLOG_ERROR( | ||||||
|             Kernel, |             Kernel, | ||||||
|             "cannot map id={}, target_address={:#X} name={}, error mapping to virtual memory", |             "cannot map id={}, target_address=0x{:X} name={}, error mapping to virtual memory", | ||||||
|             GetObjectId(), target_address, name); |             GetObjectId(), target_address, name); | ||||||
|         return result.Code(); |         return result.Code(); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ namespace Kernel { | |||||||
|  |  | ||||||
| /// Set the process heap to a given Size. It can both extend and shrink the heap. | /// Set the process heap to a given Size. It can both extend and shrink the heap. | ||||||
| static ResultCode SetHeapSize(VAddr* heap_addr, u64 heap_size) { | static ResultCode SetHeapSize(VAddr* heap_addr, u64 heap_size) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called, heap_size={:#X}", heap_size); |     NGLOG_TRACE(Kernel_SVC, "called, heap_size=0x{:X}", heap_size); | ||||||
|     auto& process = *Core::CurrentProcess(); |     auto& process = *Core::CurrentProcess(); | ||||||
|     CASCADE_RESULT(*heap_addr, |     CASCADE_RESULT(*heap_addr, | ||||||
|                    process.HeapAllocate(Memory::HEAP_VADDR, heap_size, VMAPermission::ReadWrite)); |                    process.HeapAllocate(Memory::HEAP_VADDR, heap_size, VMAPermission::ReadWrite)); | ||||||
| @@ -39,20 +39,20 @@ static ResultCode SetHeapSize(VAddr* heap_addr, u64 heap_size) { | |||||||
| } | } | ||||||
|  |  | ||||||
| static ResultCode SetMemoryAttribute(VAddr addr, u64 size, u32 state0, u32 state1) { | static ResultCode SetMemoryAttribute(VAddr addr, u64 size, u32 state0, u32 state1) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, addr={:#X}", addr); |     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, addr=0x{:X}", addr); | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| /// Maps a memory range into a different range. | /// Maps a memory range into a different range. | ||||||
| static ResultCode MapMemory(VAddr dst_addr, VAddr src_addr, u64 size) { | static ResultCode MapMemory(VAddr dst_addr, VAddr src_addr, u64 size) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called, dst_addr={:#X}, src_addr={:#X}, size={:#X}", dst_addr, |     NGLOG_TRACE(Kernel_SVC, "called, dst_addr=0x{:X}, src_addr=0x{:X}, size=0x{:X}", dst_addr, | ||||||
|                 src_addr, size); |                 src_addr, size); | ||||||
|     return Core::CurrentProcess()->MirrorMemory(dst_addr, src_addr, size); |     return Core::CurrentProcess()->MirrorMemory(dst_addr, src_addr, size); | ||||||
| } | } | ||||||
|  |  | ||||||
| /// Unmaps a region that was previously mapped with svcMapMemory | /// Unmaps a region that was previously mapped with svcMapMemory | ||||||
| static ResultCode UnmapMemory(VAddr dst_addr, VAddr src_addr, u64 size) { | static ResultCode UnmapMemory(VAddr dst_addr, VAddr src_addr, u64 size) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called, dst_addr={:#X}, src_addr={:#X}, size={:#X}", dst_addr, |     NGLOG_TRACE(Kernel_SVC, "called, dst_addr=0x{:X}, src_addr=0x{:X}, size=0x{:X}", dst_addr, | ||||||
|                 src_addr, size); |                 src_addr, size); | ||||||
|     return Core::CurrentProcess()->UnmapMemory(dst_addr, src_addr, size); |     return Core::CurrentProcess()->UnmapMemory(dst_addr, src_addr, size); | ||||||
| } | } | ||||||
| @@ -90,11 +90,11 @@ static ResultCode ConnectToNamedPort(Handle* out_handle, VAddr port_name_address | |||||||
| static ResultCode SendSyncRequest(Handle handle) { | static ResultCode SendSyncRequest(Handle handle) { | ||||||
|     SharedPtr<ClientSession> session = g_handle_table.Get<ClientSession>(handle); |     SharedPtr<ClientSession> session = g_handle_table.Get<ClientSession>(handle); | ||||||
|     if (!session) { |     if (!session) { | ||||||
|         NGLOG_ERROR(Kernel_SVC, "called with invalid handle={:#010X}", handle); |         NGLOG_ERROR(Kernel_SVC, "called with invalid handle=0x{:08X}", handle); | ||||||
|         return ERR_INVALID_HANDLE; |         return ERR_INVALID_HANDLE; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called handle={:#010X}({})", handle, session->GetName()); |     NGLOG_TRACE(Kernel_SVC, "called handle=0x{:08X}({})", handle, session->GetName()); | ||||||
|  |  | ||||||
|     Core::System::GetInstance().PrepareReschedule(); |     Core::System::GetInstance().PrepareReschedule(); | ||||||
|  |  | ||||||
| @@ -105,7 +105,7 @@ static ResultCode SendSyncRequest(Handle handle) { | |||||||
|  |  | ||||||
| /// Get the ID for the specified thread. | /// Get the ID for the specified thread. | ||||||
| static ResultCode GetThreadId(u32* thread_id, Handle thread_handle) { | static ResultCode GetThreadId(u32* thread_id, Handle thread_handle) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called thread={:#010X}", thread_handle); |     NGLOG_TRACE(Kernel_SVC, "called thread=0x{:08X}", thread_handle); | ||||||
|  |  | ||||||
|     const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); |     const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); | ||||||
|     if (!thread) { |     if (!thread) { | ||||||
| @@ -118,7 +118,7 @@ static ResultCode GetThreadId(u32* thread_id, Handle thread_handle) { | |||||||
|  |  | ||||||
| /// Get the ID of the specified process | /// Get the ID of the specified process | ||||||
| static ResultCode GetProcessId(u32* process_id, Handle process_handle) { | static ResultCode GetProcessId(u32* process_id, Handle process_handle) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called process={:#010X}", process_handle); |     NGLOG_TRACE(Kernel_SVC, "called process=0x{:08X}", process_handle); | ||||||
|  |  | ||||||
|     const SharedPtr<Process> process = g_handle_table.Get<Process>(process_handle); |     const SharedPtr<Process> process = g_handle_table.Get<Process>(process_handle); | ||||||
|     if (!process) { |     if (!process) { | ||||||
| @@ -178,7 +178,7 @@ static ResultCode WaitSynchronization1( | |||||||
| /// Wait for the given handles to synchronize, timeout after the specified nanoseconds | /// Wait for the given handles to synchronize, timeout after the specified nanoseconds | ||||||
| static ResultCode WaitSynchronization(Handle* index, VAddr handles_address, u64 handle_count, | static ResultCode WaitSynchronization(Handle* index, VAddr handles_address, u64 handle_count, | ||||||
|                                       s64 nano_seconds) { |                                       s64 nano_seconds) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called handles_address={:#X}, handle_count={}, nano_seconds={}", |     NGLOG_TRACE(Kernel_SVC, "called handles_address=0x{:X}, handle_count={}, nano_seconds={}", | ||||||
|                 handles_address, handle_count, nano_seconds); |                 handles_address, handle_count, nano_seconds); | ||||||
|  |  | ||||||
|     if (!Memory::IsValidVirtualAddress(handles_address)) |     if (!Memory::IsValidVirtualAddress(handles_address)) | ||||||
| @@ -239,7 +239,7 @@ static ResultCode WaitSynchronization(Handle* index, VAddr handles_address, u64 | |||||||
|  |  | ||||||
| /// Resumes a thread waiting on WaitSynchronization | /// Resumes a thread waiting on WaitSynchronization | ||||||
| static ResultCode CancelSynchronization(Handle thread_handle) { | static ResultCode CancelSynchronization(Handle thread_handle) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called thread={:#X}", thread_handle); |     NGLOG_TRACE(Kernel_SVC, "called thread=0x{:X}", thread_handle); | ||||||
|  |  | ||||||
|     const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); |     const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); | ||||||
|     if (!thread) { |     if (!thread) { | ||||||
| @@ -257,8 +257,8 @@ static ResultCode CancelSynchronization(Handle thread_handle) { | |||||||
| static ResultCode ArbitrateLock(Handle holding_thread_handle, VAddr mutex_addr, | static ResultCode ArbitrateLock(Handle holding_thread_handle, VAddr mutex_addr, | ||||||
|                                 Handle requesting_thread_handle) { |                                 Handle requesting_thread_handle) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, |     NGLOG_TRACE(Kernel_SVC, | ||||||
|                 "called holding_thread_handle={:#010X}, mutex_addr={:#X}, " |                 "called holding_thread_handle=0x{:08X}, mutex_addr=0x{:X}, " | ||||||
|                 "requesting_current_thread_handle={:#010X}", |                 "requesting_current_thread_handle=0x{:08X}", | ||||||
|                 holding_thread_handle, mutex_addr, requesting_thread_handle); |                 holding_thread_handle, mutex_addr, requesting_thread_handle); | ||||||
|  |  | ||||||
|     return Mutex::TryAcquire(mutex_addr, holding_thread_handle, requesting_thread_handle); |     return Mutex::TryAcquire(mutex_addr, holding_thread_handle, requesting_thread_handle); | ||||||
| @@ -266,7 +266,7 @@ static ResultCode ArbitrateLock(Handle holding_thread_handle, VAddr mutex_addr, | |||||||
|  |  | ||||||
| /// Unlock a mutex | /// Unlock a mutex | ||||||
| static ResultCode ArbitrateUnlock(VAddr mutex_addr) { | static ResultCode ArbitrateUnlock(VAddr mutex_addr) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called mutex_addr={:#X}", mutex_addr); |     NGLOG_TRACE(Kernel_SVC, "called mutex_addr=0x{:X}", mutex_addr); | ||||||
|  |  | ||||||
|     return Mutex::Release(mutex_addr); |     return Mutex::Release(mutex_addr); | ||||||
| } | } | ||||||
| @@ -286,7 +286,7 @@ static void OutputDebugString(VAddr address, s32 len) { | |||||||
|  |  | ||||||
| /// Gets system/memory information for the current process | /// Gets system/memory information for the current process | ||||||
| static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id) { | static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called info_id={:#X}, info_sub_id={:#X}, handle={:#010X}", info_id, |     NGLOG_TRACE(Kernel_SVC, "called info_id=0x{:X}, info_sub_id=0x{:X}, handle=0x{:08X}", info_id, | ||||||
|                 info_sub_id, handle); |                 info_sub_id, handle); | ||||||
|  |  | ||||||
|     auto& vm_manager = Core::CurrentProcess()->vm_manager; |     auto& vm_manager = Core::CurrentProcess()->vm_manager; | ||||||
| @@ -355,14 +355,14 @@ static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id) | |||||||
|  |  | ||||||
| /// Sets the thread activity | /// Sets the thread activity | ||||||
| static ResultCode SetThreadActivity(Handle handle, u32 unknown) { | static ResultCode SetThreadActivity(Handle handle, u32 unknown) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle={:#010X}, unknown={:#010X}", handle, |     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle=0x{:08X}, unknown=0x{:08X}", handle, | ||||||
|                   unknown); |                   unknown); | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| /// Gets the thread context | /// Gets the thread context | ||||||
| static ResultCode GetThreadContext(Handle handle, VAddr addr) { | static ResultCode GetThreadContext(Handle handle, VAddr addr) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle={:#010X}, addr={:#X}", handle, addr); |     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle=0x{:08X}, addr=0x{:X}", handle, addr); | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -407,9 +407,10 @@ static u32 GetCurrentProcessorNumber() { | |||||||
|  |  | ||||||
| static ResultCode MapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 size, | static ResultCode MapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 size, | ||||||
|                                   u32 permissions) { |                                   u32 permissions) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, |     NGLOG_TRACE( | ||||||
|                 "called, shared_memory_handle={:#X}, addr={:#X}, size={:#X}, permissions={:#010X}", |         Kernel_SVC, | ||||||
|                 shared_memory_handle, addr, size, permissions); |         "called, shared_memory_handle=0x{:X}, addr=0x{:X}, size=0x{:X}, permissions=0x{:08X}", | ||||||
|  |         shared_memory_handle, addr, size, permissions); | ||||||
|  |  | ||||||
|     SharedPtr<SharedMemory> shared_memory = g_handle_table.Get<SharedMemory>(shared_memory_handle); |     SharedPtr<SharedMemory> shared_memory = g_handle_table.Get<SharedMemory>(shared_memory_handle); | ||||||
|     if (!shared_memory) { |     if (!shared_memory) { | ||||||
| @@ -429,14 +430,14 @@ static ResultCode MapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 s | |||||||
|         return shared_memory->Map(Core::CurrentProcess().get(), addr, permissions_type, |         return shared_memory->Map(Core::CurrentProcess().get(), addr, permissions_type, | ||||||
|                                   MemoryPermission::DontCare); |                                   MemoryPermission::DontCare); | ||||||
|     default: |     default: | ||||||
|         NGLOG_ERROR(Kernel_SVC, "unknown permissions={:#010X}", permissions); |         NGLOG_ERROR(Kernel_SVC, "unknown permissions=0x{:08X}", permissions); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| static ResultCode UnmapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 size) { | static ResultCode UnmapSharedMemory(Handle shared_memory_handle, VAddr addr, u64 size) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "called, shared_memory_handle={:#010X}, addr={:#X}, size={:#X}", |     NGLOG_WARNING(Kernel_SVC, "called, shared_memory_handle=0x{:08X}, addr=0x{:X}, size=0x{:X}", | ||||||
|                   shared_memory_handle, addr, size); |                   shared_memory_handle, addr, size); | ||||||
|  |  | ||||||
|     SharedPtr<SharedMemory> shared_memory = g_handle_table.Get<SharedMemory>(shared_memory_handle); |     SharedPtr<SharedMemory> shared_memory = g_handle_table.Get<SharedMemory>(shared_memory_handle); | ||||||
| @@ -465,7 +466,7 @@ static ResultCode QueryProcessMemory(MemoryInfo* memory_info, PageInfo* /*page_i | |||||||
|         memory_info->type = static_cast<u32>(vma->second.meminfo_state); |         memory_info->type = static_cast<u32>(vma->second.meminfo_state); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called process={:#010X} addr={:X}", process_handle, addr); |     NGLOG_TRACE(Kernel_SVC, "called process=0x{:08X} addr={:X}", process_handle, addr); | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -552,8 +553,8 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V | |||||||
|     Core::System::GetInstance().PrepareReschedule(); |     Core::System::GetInstance().PrepareReschedule(); | ||||||
|  |  | ||||||
|     NGLOG_TRACE(Kernel_SVC, |     NGLOG_TRACE(Kernel_SVC, | ||||||
|                 "called entrypoint={:#010X} ({}), arg={:#010X}, stacktop={:#010X}, " |                 "called entrypoint=0x{:08X} ({}), arg=0x{:08X}, stacktop=0x{:08X}, " | ||||||
|                 "threadpriority={:#010X}, processorid={:#010X} : created handle={:#010X}", |                 "threadpriority=0x{:08X}, processorid=0x{:08X} : created handle=0x{:08X}", | ||||||
|                 entry_point, name, arg, stack_top, priority, processor_id, *out_handle); |                 entry_point, name, arg, stack_top, priority, processor_id, *out_handle); | ||||||
|  |  | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| @@ -561,7 +562,7 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V | |||||||
|  |  | ||||||
| /// Starts the thread for the provided handle | /// Starts the thread for the provided handle | ||||||
| static ResultCode StartThread(Handle thread_handle) { | static ResultCode StartThread(Handle thread_handle) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called thread={:#010X}", thread_handle); |     NGLOG_TRACE(Kernel_SVC, "called thread=0x{:08X}", thread_handle); | ||||||
|  |  | ||||||
|     const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); |     const SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); | ||||||
|     if (!thread) { |     if (!thread) { | ||||||
| @@ -575,7 +576,7 @@ static ResultCode StartThread(Handle thread_handle) { | |||||||
|  |  | ||||||
| /// Called when a thread exits | /// Called when a thread exits | ||||||
| static void ExitThread() { | static void ExitThread() { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called, pc={:#010X}", Core::CPU().GetPC()); |     NGLOG_TRACE(Kernel_SVC, "called, pc=0x{:08X}", Core::CPU().GetPC()); | ||||||
|  |  | ||||||
|     ExitCurrentThread(); |     ExitCurrentThread(); | ||||||
|     Core::System::GetInstance().PrepareReschedule(); |     Core::System::GetInstance().PrepareReschedule(); | ||||||
| @@ -604,7 +605,7 @@ static ResultCode WaitProcessWideKeyAtomic(VAddr mutex_addr, VAddr condition_var | |||||||
|                                            Handle thread_handle, s64 nano_seconds) { |                                            Handle thread_handle, s64 nano_seconds) { | ||||||
|     NGLOG_TRACE( |     NGLOG_TRACE( | ||||||
|         Kernel_SVC, |         Kernel_SVC, | ||||||
|         "called mutex_addr={:X}, condition_variable_addr={:X}, thread_handle={:#010X}, timeout={}", |         "called mutex_addr={:X}, condition_variable_addr={:X}, thread_handle=0x{:08X}, timeout={}", | ||||||
|         mutex_addr, condition_variable_addr, thread_handle, nano_seconds); |         mutex_addr, condition_variable_addr, thread_handle, nano_seconds); | ||||||
|  |  | ||||||
|     SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); |     SharedPtr<Thread> thread = g_handle_table.Get<Thread>(thread_handle); | ||||||
| @@ -629,7 +630,7 @@ static ResultCode WaitProcessWideKeyAtomic(VAddr mutex_addr, VAddr condition_var | |||||||
|  |  | ||||||
| /// Signal process wide key | /// Signal process wide key | ||||||
| static ResultCode SignalProcessWideKey(VAddr condition_variable_addr, s32 target) { | static ResultCode SignalProcessWideKey(VAddr condition_variable_addr, s32 target) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called, condition_variable_addr={:#X}, target={:#010X}", |     NGLOG_TRACE(Kernel_SVC, "called, condition_variable_addr=0x{:X}, target=0x{:08X}", | ||||||
|                 condition_variable_addr, target); |                 condition_variable_addr, target); | ||||||
|  |  | ||||||
|     u32 processed = 0; |     u32 processed = 0; | ||||||
| @@ -696,13 +697,13 @@ static u64 GetSystemTick() { | |||||||
|  |  | ||||||
| /// Close a handle | /// Close a handle | ||||||
| static ResultCode CloseHandle(Handle handle) { | static ResultCode CloseHandle(Handle handle) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "Closing handle {:#010X}", handle); |     NGLOG_TRACE(Kernel_SVC, "Closing handle 0x{:08X}", handle); | ||||||
|     return g_handle_table.Close(handle); |     return g_handle_table.Close(handle); | ||||||
| } | } | ||||||
|  |  | ||||||
| /// Reset an event | /// Reset an event | ||||||
| static ResultCode ResetSignal(Handle handle) { | static ResultCode ResetSignal(Handle handle) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called handle {:#010X}", handle); |     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called handle 0x{:08X}", handle); | ||||||
|     auto event = g_handle_table.Get<Event>(handle); |     auto event = g_handle_table.Get<Event>(handle); | ||||||
|     ASSERT(event != nullptr); |     ASSERT(event != nullptr); | ||||||
|     event->Clear(); |     event->Clear(); | ||||||
| @@ -711,28 +712,28 @@ static ResultCode ResetSignal(Handle handle) { | |||||||
|  |  | ||||||
| /// Creates a TransferMemory object | /// Creates a TransferMemory object | ||||||
| static ResultCode CreateTransferMemory(Handle* handle, VAddr addr, u64 size, u32 permissions) { | static ResultCode CreateTransferMemory(Handle* handle, VAddr addr, u64 size, u32 permissions) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called addr={:#X}, size={:#X}, perms={:010X}", addr, size, |     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called addr=0x{:X}, size=0x{:X}, perms=0x{:08X}", addr, | ||||||
|                   permissions); |                   size, permissions); | ||||||
|     *handle = 0; |     *handle = 0; | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| static ResultCode GetThreadCoreMask(Handle handle, u32* mask, u64* unknown) { | static ResultCode GetThreadCoreMask(Handle handle, u32* mask, u64* unknown) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle={:010X}", handle); |     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle=0x{:08X}", handle); | ||||||
|     *mask = 0x0; |     *mask = 0x0; | ||||||
|     *unknown = 0xf; |     *unknown = 0xf; | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| static ResultCode SetThreadCoreMask(Handle handle, u32 mask, u64 unknown) { | static ResultCode SetThreadCoreMask(Handle handle, u32 mask, u64 unknown) { | ||||||
|     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle={:#010X}, mask={:#010X}, unknown={:#X}", |     NGLOG_WARNING(Kernel_SVC, "(STUBBED) called, handle=0x{:08X}, mask=0x{:08X}, unknown=0x{:X}", | ||||||
|                   handle, mask, unknown); |                   handle, mask, unknown); | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
| static ResultCode CreateSharedMemory(Handle* handle, u64 size, u32 local_permissions, | static ResultCode CreateSharedMemory(Handle* handle, u64 size, u32 local_permissions, | ||||||
|                                      u32 remote_permissions) { |                                      u32 remote_permissions) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called, size={:#X}, localPerms={:#010X}, remotePerms={:#010X}", size, |     NGLOG_TRACE(Kernel_SVC, "called, size=0x{:X}, localPerms=0x{:08X}, remotePerms=0x{:08X}", size, | ||||||
|                 local_permissions, remote_permissions); |                 local_permissions, remote_permissions); | ||||||
|     auto sharedMemHandle = |     auto sharedMemHandle = | ||||||
|         SharedMemory::Create(g_handle_table.Get<Process>(KernelHandle::CurrentProcess), size, |         SharedMemory::Create(g_handle_table.Get<Process>(KernelHandle::CurrentProcess), size, | ||||||
| @@ -744,7 +745,7 @@ static ResultCode CreateSharedMemory(Handle* handle, u64 size, u32 local_permiss | |||||||
| } | } | ||||||
|  |  | ||||||
| static ResultCode ClearEvent(Handle handle) { | static ResultCode ClearEvent(Handle handle) { | ||||||
|     NGLOG_TRACE(Kernel_SVC, "called, event={:010X}", handle); |     NGLOG_TRACE(Kernel_SVC, "called, event=0x{:08X}", handle); | ||||||
|  |  | ||||||
|     SharedPtr<Event> evt = g_handle_table.Get<Event>(handle); |     SharedPtr<Event> evt = g_handle_table.Get<Event>(handle); | ||||||
|     if (evt == nullptr) |     if (evt == nullptr) | ||||||
| @@ -896,7 +897,7 @@ static const FunctionDef SVC_Table[] = { | |||||||
|  |  | ||||||
| static const FunctionDef* GetSVCInfo(u32 func_num) { | static const FunctionDef* GetSVCInfo(u32 func_num) { | ||||||
|     if (func_num >= std::size(SVC_Table)) { |     if (func_num >= std::size(SVC_Table)) { | ||||||
|         NGLOG_ERROR(Kernel_SVC, "Unknown svc={:#04X}", func_num); |         NGLOG_ERROR(Kernel_SVC, "Unknown svc=0x{:02X}", func_num); | ||||||
|         return nullptr; |         return nullptr; | ||||||
|     } |     } | ||||||
|     return &SVC_Table[func_num]; |     return &SVC_Table[func_num]; | ||||||
| @@ -918,7 +919,7 @@ void CallSVC(u32 immediate) { | |||||||
|             NGLOG_CRITICAL(Kernel_SVC, "Unimplemented SVC function {}(..)", info->name); |             NGLOG_CRITICAL(Kernel_SVC, "Unimplemented SVC function {}(..)", info->name); | ||||||
|         } |         } | ||||||
|     } else { |     } else { | ||||||
|         NGLOG_CRITICAL(Kernel_SVC, "Unknown SVC function {:#X}", immediate); |         NGLOG_CRITICAL(Kernel_SVC, "Unknown SVC function 0x{:X}", immediate); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -243,8 +243,8 @@ VMManager::VMAIter VMManager::StripIterConstness(const VMAHandle& iter) { | |||||||
| } | } | ||||||
|  |  | ||||||
| ResultVal<VMManager::VMAIter> VMManager::CarveVMA(VAddr base, u64 size) { | ResultVal<VMManager::VMAIter> VMManager::CarveVMA(VAddr base, u64 size) { | ||||||
|     ASSERT_MSG((size & Memory::PAGE_MASK) == 0, "non-page aligned size: {:#018X}", size); |     ASSERT_MSG((size & Memory::PAGE_MASK) == 0, "non-page aligned size: 0x{:016X}", size); | ||||||
|     ASSERT_MSG((base & Memory::PAGE_MASK) == 0, "non-page aligned base: {:#018X}", base); |     ASSERT_MSG((base & Memory::PAGE_MASK) == 0, "non-page aligned base: 0x{:016X}", base); | ||||||
|  |  | ||||||
|     VMAIter vma_handle = StripIterConstness(FindVMA(base)); |     VMAIter vma_handle = StripIterConstness(FindVMA(base)); | ||||||
|     if (vma_handle == vma_map.end()) { |     if (vma_handle == vma_map.end()) { | ||||||
| @@ -279,8 +279,8 @@ ResultVal<VMManager::VMAIter> VMManager::CarveVMA(VAddr base, u64 size) { | |||||||
| } | } | ||||||
|  |  | ||||||
| ResultVal<VMManager::VMAIter> VMManager::CarveVMARange(VAddr target, u64 size) { | ResultVal<VMManager::VMAIter> VMManager::CarveVMARange(VAddr target, u64 size) { | ||||||
|     ASSERT_MSG((size & Memory::PAGE_MASK) == 0, "non-page aligned size: {:#018X}", size); |     ASSERT_MSG((size & Memory::PAGE_MASK) == 0, "non-page aligned size: 0x{:016X}", size); | ||||||
|     ASSERT_MSG((target & Memory::PAGE_MASK) == 0, "non-page aligned base: {:#018X}", target); |     ASSERT_MSG((target & Memory::PAGE_MASK) == 0, "non-page aligned base: 0x{:016X}", target); | ||||||
|  |  | ||||||
|     VAddr target_end = target + size; |     VAddr target_end = target + size; | ||||||
|     ASSERT(target_end >= target); |     ASSERT(target_end >= target); | ||||||
|   | |||||||
| @@ -534,7 +534,7 @@ void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { | |||||||
|     IPC::ResponseBuilder rb{ctx, 2}; |     IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|     rb.Push(RESULT_SUCCESS); |     rb.Push(RESULT_SUCCESS); | ||||||
|  |  | ||||||
|     NGLOG_WARNING(Service_AM, "(STUBBED) called, result={:#010}", result); |     NGLOG_WARNING(Service_AM, "(STUBBED) called, result=0x{:08X}", result); | ||||||
| } | } | ||||||
|  |  | ||||||
| void IApplicationFunctions::GetDesiredLanguage(Kernel::HLERequestContext& ctx) { | void IApplicationFunctions::GetDesiredLanguage(Kernel::HLERequestContext& ctx) { | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ Module::Interface::Interface(std::shared_ptr<Module> module, const char* name) | |||||||
| void Module::Interface::FatalSimple(Kernel::HLERequestContext& ctx) { | void Module::Interface::FatalSimple(Kernel::HLERequestContext& ctx) { | ||||||
|     IPC::RequestParser rp(ctx); |     IPC::RequestParser rp(ctx); | ||||||
|     u32 error_code = rp.Pop<u32>(); |     u32 error_code = rp.Pop<u32>(); | ||||||
|     NGLOG_WARNING(Service_Fatal, "(STUBBED) called, error_code={:#X}", error_code); |     NGLOG_WARNING(Service_Fatal, "(STUBBED) called, error_code=0x{:X}", error_code); | ||||||
|     IPC::ResponseBuilder rb{ctx, 2}; |     IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|     rb.Push(RESULT_SUCCESS); |     rb.Push(RESULT_SUCCESS); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ ResultCode RegisterFileSystem(std::unique_ptr<FileSys::FileSystemFactory>&& fact | |||||||
|     ASSERT_MSG(inserted, "Tried to register more than one system with same id code"); |     ASSERT_MSG(inserted, "Tried to register more than one system with same id code"); | ||||||
|  |  | ||||||
|     auto& filesystem = result.first->second; |     auto& filesystem = result.first->second; | ||||||
|     NGLOG_DEBUG(Service_FS, "Registered file system {} with id code {:#010X}", |     NGLOG_DEBUG(Service_FS, "Registered file system {} with id code 0x{:08X}", | ||||||
|                 filesystem->GetName(), static_cast<u32>(type)); |                 filesystem->GetName(), static_cast<u32>(type)); | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -35,7 +35,7 @@ private: | |||||||
|         const s64 offset = rp.Pop<s64>(); |         const s64 offset = rp.Pop<s64>(); | ||||||
|         const s64 length = rp.Pop<s64>(); |         const s64 length = rp.Pop<s64>(); | ||||||
|  |  | ||||||
|         NGLOG_DEBUG(Service_FS, "called, offset={:#X}, length={}", offset, length); |         NGLOG_DEBUG(Service_FS, "called, offset=0x{:X}, length={}", offset, length); | ||||||
|  |  | ||||||
|         // Error checking |         // Error checking | ||||||
|         if (length < 0) { |         if (length < 0) { | ||||||
| @@ -87,7 +87,7 @@ private: | |||||||
|         const s64 offset = rp.Pop<s64>(); |         const s64 offset = rp.Pop<s64>(); | ||||||
|         const s64 length = rp.Pop<s64>(); |         const s64 length = rp.Pop<s64>(); | ||||||
|  |  | ||||||
|         NGLOG_DEBUG(Service_FS, "called, offset={:#X}, length={}", offset, length); |         NGLOG_DEBUG(Service_FS, "called, offset=0x{:X}, length={}", offset, length); | ||||||
|  |  | ||||||
|         // Error checking |         // Error checking | ||||||
|         if (length < 0) { |         if (length < 0) { | ||||||
| @@ -124,7 +124,7 @@ private: | |||||||
|         const s64 offset = rp.Pop<s64>(); |         const s64 offset = rp.Pop<s64>(); | ||||||
|         const s64 length = rp.Pop<s64>(); |         const s64 length = rp.Pop<s64>(); | ||||||
|  |  | ||||||
|         NGLOG_DEBUG(Service_FS, "called, offset={:#X}, length={}", offset, length); |         NGLOG_DEBUG(Service_FS, "called, offset=0x{:X}, length={}", offset, length); | ||||||
|  |  | ||||||
|         // Error checking |         // Error checking | ||||||
|         if (length < 0) { |         if (length < 0) { | ||||||
| @@ -197,7 +197,7 @@ private: | |||||||
|         IPC::RequestParser rp{ctx}; |         IPC::RequestParser rp{ctx}; | ||||||
|         const u64 unk = rp.Pop<u64>(); |         const u64 unk = rp.Pop<u64>(); | ||||||
|  |  | ||||||
|         NGLOG_DEBUG(Service_FS, "called, unk={:#X}", unk); |         NGLOG_DEBUG(Service_FS, "called, unk=0x{:X}", unk); | ||||||
|  |  | ||||||
|         // Calculate how many entries we can fit in the output buffer |         // Calculate how many entries we can fit in the output buffer | ||||||
|         u64 count_entries = ctx.GetWriteBufferSize() / sizeof(FileSys::Entry); |         u64 count_entries = ctx.GetWriteBufferSize() / sizeof(FileSys::Entry); | ||||||
| @@ -265,7 +265,7 @@ public: | |||||||
|         u64 mode = rp.Pop<u64>(); |         u64 mode = rp.Pop<u64>(); | ||||||
|         u32 size = rp.Pop<u32>(); |         u32 size = rp.Pop<u32>(); | ||||||
|  |  | ||||||
|         NGLOG_DEBUG(Service_FS, "called file {} mode {:#X} size {:#010X}", name, mode, size); |         NGLOG_DEBUG(Service_FS, "called file {} mode 0x{:X} size 0x{:08X}", name, mode, size); | ||||||
|  |  | ||||||
|         IPC::ResponseBuilder rb{ctx, 2}; |         IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|         rb.Push(backend->CreateFile(name, size)); |         rb.Push(backend->CreateFile(name, size)); | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
| namespace Service::Nvidia::Devices { | namespace Service::Nvidia::Devices { | ||||||
|  |  | ||||||
| u32 nvhost_as_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | u32 nvhost_as_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "called, command={:#010X}, input_size={:#X}, output_size={:#X}", |     NGLOG_DEBUG(Service_NVDRV, "called, command=0x{:08X}, input_size=0x{:X}, output_size=0x{:X}", | ||||||
|                 command.raw, input.size(), output.size()); |                 command.raw, input.size(), output.size()); | ||||||
|  |  | ||||||
|     switch (static_cast<IoctlCommand>(command.raw)) { |     switch (static_cast<IoctlCommand>(command.raw)) { | ||||||
| @@ -38,7 +38,7 @@ u32 nvhost_as_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vecto | |||||||
| u32 nvhost_as_gpu::InitalizeEx(const std::vector<u8>& input, std::vector<u8>& output) { | u32 nvhost_as_gpu::InitalizeEx(const std::vector<u8>& input, std::vector<u8>& output) { | ||||||
|     IoctlInitalizeEx params{}; |     IoctlInitalizeEx params{}; | ||||||
|     std::memcpy(¶ms, input.data(), input.size()); |     std::memcpy(¶ms, input.data(), input.size()); | ||||||
|     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, big_page_size={:#X}", params.big_page_size); |     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, big_page_size=0x{:X}", params.big_page_size); | ||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
| namespace Service::Nvidia::Devices { | namespace Service::Nvidia::Devices { | ||||||
|  |  | ||||||
| u32 nvhost_ctrl::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | u32 nvhost_ctrl::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "called, command={:#010X}, input_size={:#X}, output_size={:#X}", |     NGLOG_DEBUG(Service_NVDRV, "called, command=0x{:08X}, input_size=0x{:X}, output_size=0x{:X}", | ||||||
|                 command.raw, input.size(), output.size()); |                 command.raw, input.size(), output.size()); | ||||||
|  |  | ||||||
|     switch (static_cast<IoctlCommand>(command.raw)) { |     switch (static_cast<IoctlCommand>(command.raw)) { | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
| namespace Service::Nvidia::Devices { | namespace Service::Nvidia::Devices { | ||||||
|  |  | ||||||
| u32 nvhost_ctrl_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | u32 nvhost_ctrl_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "called, command={:#010X}, input_size={:#X}, output_size={:#X}", |     NGLOG_DEBUG(Service_NVDRV, "called, command=0x{:08X}, input_size=0x{:X}, output_size=0x{:X}", | ||||||
|                 command.raw, input.size(), output.size()); |                 command.raw, input.size(), output.size()); | ||||||
|  |  | ||||||
|     switch (static_cast<IoctlCommand>(command.raw)) { |     switch (static_cast<IoctlCommand>(command.raw)) { | ||||||
| @@ -77,7 +77,7 @@ u32 nvhost_ctrl_gpu::GetCharacteristics(const std::vector<u8>& input, std::vecto | |||||||
| u32 nvhost_ctrl_gpu::GetTPCMasks(const std::vector<u8>& input, std::vector<u8>& output) { | u32 nvhost_ctrl_gpu::GetTPCMasks(const std::vector<u8>& input, std::vector<u8>& output) { | ||||||
|     IoctlGpuGetTpcMasksArgs params{}; |     IoctlGpuGetTpcMasksArgs params{}; | ||||||
|     std::memcpy(¶ms, input.data(), input.size()); |     std::memcpy(¶ms, input.data(), input.size()); | ||||||
|     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, mask={:#X}, mask_buf_addr={:#X}", |     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, mask=0x{:X}, mask_buf_addr=0x{:X}", | ||||||
|                   params.mask_buf_size, params.mask_buf_addr); |                   params.mask_buf_size, params.mask_buf_addr); | ||||||
|     params.unk = 0xcafe; // TODO(ogniK): Needs to be non 0, what does this actually do? |     params.unk = 0xcafe; // TODO(ogniK): Needs to be non 0, what does this actually do? | ||||||
|     std::memcpy(output.data(), ¶ms, sizeof(params)); |     std::memcpy(output.data(), ¶ms, sizeof(params)); | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
| namespace Service::Nvidia::Devices { | namespace Service::Nvidia::Devices { | ||||||
|  |  | ||||||
| u32 nvhost_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | u32 nvhost_gpu::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) { | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "called, command={:#010X}, input_size={:#X}, output_size={:#X}", |     NGLOG_DEBUG(Service_NVDRV, "called, command=0x{:08X}, input_size=0x{:X}, output_size=0x{:X}", | ||||||
|                 command.raw, input.size(), output.size()); |                 command.raw, input.size(), output.size()); | ||||||
|  |  | ||||||
|     switch (static_cast<IoctlCommand>(command.raw)) { |     switch (static_cast<IoctlCommand>(command.raw)) { | ||||||
|   | |||||||
| @@ -49,7 +49,7 @@ u32 nvmap::IocCreate(const std::vector<u8>& input, std::vector<u8>& output) { | |||||||
|     u32 handle = next_handle++; |     u32 handle = next_handle++; | ||||||
|     handles[handle] = std::move(object); |     handles[handle] = std::move(object); | ||||||
|  |  | ||||||
|     NGLOG_DEBUG(Service_NVDRV, "size={:#010X}", params.size); |     NGLOG_DEBUG(Service_NVDRV, "size=0x{:08X}", params.size); | ||||||
|  |  | ||||||
|     params.handle = handle; |     params.handle = handle; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -75,7 +75,7 @@ void NVDRV::SetClientPID(Kernel::HLERequestContext& ctx) { | |||||||
|     IPC::RequestParser rp{ctx}; |     IPC::RequestParser rp{ctx}; | ||||||
|     pid = rp.Pop<u64>(); |     pid = rp.Pop<u64>(); | ||||||
|  |  | ||||||
|     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, pid={:#X}", pid); |     NGLOG_WARNING(Service_NVDRV, "(STUBBED) called, pid=0x{:X}", pid); | ||||||
|     IPC::ResponseBuilder rb{ctx, 3}; |     IPC::ResponseBuilder rb{ctx, 3}; | ||||||
|     rb.Push(RESULT_SUCCESS); |     rb.Push(RESULT_SUCCESS); | ||||||
|     rb.Push<u32>(0); |     rb.Push<u32>(0); | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ static std::string MakeFunctionString(const char* name, const char* port_name, | |||||||
|  |  | ||||||
|     std::string function_string = fmt::format("function '{}': port={}", name, port_name); |     std::string function_string = fmt::format("function '{}': port={}", name, port_name); | ||||||
|     for (int i = 1; i <= num_params; ++i) { |     for (int i = 1; i <= num_params; ++i) { | ||||||
|         function_string += fmt::format(", cmd_buff[{}]={:#X}", i, cmd_buff[i]); |         function_string += fmt::format(", cmd_buff[{}]=0x{:X}", i, cmd_buff[i]); | ||||||
|     } |     } | ||||||
|     return function_string; |     return function_string; | ||||||
| } | } | ||||||
| @@ -113,10 +113,10 @@ void ServiceFrameworkBase::ReportUnimplementedFunction(Kernel::HLERequestContext | |||||||
|     std::string function_name = info == nullptr ? fmt::format("{}", ctx.GetCommand()) : info->name; |     std::string function_name = info == nullptr ? fmt::format("{}", ctx.GetCommand()) : info->name; | ||||||
|  |  | ||||||
|     fmt::memory_buffer buf; |     fmt::memory_buffer buf; | ||||||
|     fmt::format_to(buf, "function '{}': port='{}' cmd_buf={{[0]={:#x}", function_name, service_name, |     fmt::format_to(buf, "function '{}': port='{}' cmd_buf={{[0]=0x{:X}", function_name, | ||||||
|                    cmd_buf[0]); |                    service_name, cmd_buf[0]); | ||||||
|     for (int i = 1; i <= 8; ++i) { |     for (int i = 1; i <= 8; ++i) { | ||||||
|         fmt::format_to(buf, ", [{}]={:#x}", i, cmd_buf[i]); |         fmt::format_to(buf, ", [{}]=0x{:X}", i, cmd_buf[i]); | ||||||
|     } |     } | ||||||
|     buf.push_back('}'); |     buf.push_back('}'); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -102,7 +102,7 @@ void SM::GetService(Kernel::HLERequestContext& ctx) { | |||||||
|     if (client_port.Failed()) { |     if (client_port.Failed()) { | ||||||
|         IPC::ResponseBuilder rb = rp.MakeBuilder(2, 0, 0); |         IPC::ResponseBuilder rb = rp.MakeBuilder(2, 0, 0); | ||||||
|         rb.Push(client_port.Code()); |         rb.Push(client_port.Code()); | ||||||
|         NGLOG_ERROR(Service_SM, "called service={} -> error {:#010X}", name, |         NGLOG_ERROR(Service_SM, "called service={} -> error 0x{:08X}", name, | ||||||
|                     client_port.Code().raw); |                     client_port.Code().raw); | ||||||
|         if (name.length() == 0) |         if (name.length() == 0) | ||||||
|             return; // LibNX Fix |             return; // LibNX Fix | ||||||
|   | |||||||
| @@ -111,7 +111,7 @@ private: | |||||||
|         IPC::RequestParser rp{ctx}; |         IPC::RequestParser rp{ctx}; | ||||||
|         u64 posix_time = rp.Pop<u64>(); |         u64 posix_time = rp.Pop<u64>(); | ||||||
|  |  | ||||||
|         NGLOG_WARNING(Service_Time, "(STUBBED) called, posix_time={:#018X}", posix_time); |         NGLOG_WARNING(Service_Time, "(STUBBED) called, posix_time=0x{:016X}", posix_time); | ||||||
|  |  | ||||||
|         CalendarTime calendar_time{2018, 1, 1, 0, 0, 0}; |         CalendarTime calendar_time{2018, 1, 1, 0, 0, 0}; | ||||||
|         CalendarAdditionalInfo additional_info{}; |         CalendarAdditionalInfo additional_info{}; | ||||||
|   | |||||||
| @@ -640,7 +640,7 @@ private: | |||||||
|         bool visibility = rp.Pop<bool>(); |         bool visibility = rp.Pop<bool>(); | ||||||
|         IPC::ResponseBuilder rb = rp.MakeBuilder(2, 0, 0); |         IPC::ResponseBuilder rb = rp.MakeBuilder(2, 0, 0); | ||||||
|         rb.Push(RESULT_SUCCESS); |         rb.Push(RESULT_SUCCESS); | ||||||
|         NGLOG_WARNING(Service_VI, "(STUBBED) called, layer_id={:#010X}, visibility={}", layer_id, |         NGLOG_WARNING(Service_VI, "(STUBBED) called, layer_id=0x{:08X}, visibility={}", layer_id, | ||||||
|                       visibility); |                       visibility); | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| @@ -762,7 +762,7 @@ private: | |||||||
|         bool visibility = rp.Pop<bool>(); |         bool visibility = rp.Pop<bool>(); | ||||||
|         IPC::ResponseBuilder rb = rp.MakeBuilder(2, 0, 0); |         IPC::ResponseBuilder rb = rp.MakeBuilder(2, 0, 0); | ||||||
|         rb.Push(RESULT_SUCCESS); |         rb.Push(RESULT_SUCCESS); | ||||||
|         NGLOG_WARNING(Service_VI, "(STUBBED) called, layer_id={:#X}, visibility={}", layer_id, |         NGLOG_WARNING(Service_VI, "(STUBBED) called, layer_id=0x{:X}, visibility={}", layer_id, | ||||||
|                       visibility); |                       visibility); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ inline void Read(T& var, const u32 addr) { | |||||||
|         LCD::Read(var, addr); |         LCD::Read(var, addr); | ||||||
|         break; |         break; | ||||||
|     default: |     default: | ||||||
|         NGLOG_ERROR(HW_Memory, "Unknown Read{} @ {:#010X}", sizeof(var) * 8, addr); |         NGLOG_ERROR(HW_Memory, "Unknown Read{} @ 0x{:08X}", sizeof(var) * 8, addr); | ||||||
|         break; |         break; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @@ -62,7 +62,7 @@ inline void Write(u32 addr, const T data) { | |||||||
|         LCD::Write(addr, data); |         LCD::Write(addr, data); | ||||||
|         break; |         break; | ||||||
|     default: |     default: | ||||||
|         NGLOG_ERROR(HW_Memory, "Unknown Write{} {:#010X} @ {:#010X}", sizeof(data) * 8, data, addr); |         NGLOG_ERROR(HW_Memory, "Unknown Write{} 0x{:08X} @ 0x{:08X}", sizeof(data) * 8, data, addr); | ||||||
|         break; |         break; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ inline void Read(T& var, const u32 raw_addr) { | |||||||
|  |  | ||||||
|     // Reads other than u32 are untested, so I'd rather have them abort than silently fail |     // Reads other than u32 are untested, so I'd rather have them abort than silently fail | ||||||
|     if (index >= 0x400 || !std::is_same<T, u32>::value) { |     if (index >= 0x400 || !std::is_same<T, u32>::value) { | ||||||
|         NGLOG_ERROR(HW_LCD, "Unknown Read{} @ {:#010X}", sizeof(var) * 8, addr); |         NGLOG_ERROR(HW_LCD, "Unknown Read{} @ 0x{:08X}", sizeof(var) * 8, addr); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -34,7 +34,7 @@ inline void Write(u32 addr, const T data) { | |||||||
|  |  | ||||||
|     // Writes other than u32 are untested, so I'd rather have them abort than silently fail |     // Writes other than u32 are untested, so I'd rather have them abort than silently fail | ||||||
|     if (index >= 0x400 || !std::is_same<T, u32>::value) { |     if (index >= 0x400 || !std::is_same<T, u32>::value) { | ||||||
|         NGLOG_ERROR(HW_LCD, "Unknown Write{} {:#010X} @ {:#010X}", sizeof(data) * 8, data, addr); |         NGLOG_ERROR(HW_LCD, "Unknown Write{} 0x{:08X} @ 0x{:08X}", sizeof(data) * 8, data, addr); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -132,7 +132,7 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load( | |||||||
|         const VAddr load_addr = next_load_addr; |         const VAddr load_addr = next_load_addr; | ||||||
|         next_load_addr = AppLoader_NSO::LoadModule(path, load_addr); |         next_load_addr = AppLoader_NSO::LoadModule(path, load_addr); | ||||||
|         if (next_load_addr) { |         if (next_load_addr) { | ||||||
|             NGLOG_DEBUG(Loader, "loaded module {} @ {:#X}", module, load_addr); |             NGLOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", module, load_addr); | ||||||
|         } else { |         } else { | ||||||
|             next_load_addr = load_addr; |             next_load_addr = load_addr; | ||||||
|         } |         } | ||||||
| @@ -176,8 +176,8 @@ ResultStatus AppLoader_DeconstructedRomDirectory::ReadRomFS( | |||||||
|     offset = 0; |     offset = 0; | ||||||
|     size = romfs_file->GetSize(); |     size = romfs_file->GetSize(); | ||||||
|  |  | ||||||
|     NGLOG_DEBUG(Loader, "RomFS offset:           {:#018X}", offset); |     NGLOG_DEBUG(Loader, "RomFS offset:           0x{:016X}", offset); | ||||||
|     NGLOG_DEBUG(Loader, "RomFS size:             {:#018X}", size); |     NGLOG_DEBUG(Loader, "RomFS size:             0x{:016X}", size); | ||||||
|  |  | ||||||
|     // Reset read pointer |     // Reset read pointer | ||||||
|     file.Seek(0, SEEK_SET); |     file.Seek(0, SEEK_SET); | ||||||
|   | |||||||
| @@ -158,7 +158,7 @@ ResultStatus AppLoader_NSO::Load(Kernel::SharedPtr<Kernel::Process>& process) { | |||||||
|  |  | ||||||
|     // Load module |     // Load module | ||||||
|     LoadModule(filepath, Memory::PROCESS_IMAGE_VADDR); |     LoadModule(filepath, Memory::PROCESS_IMAGE_VADDR); | ||||||
|     NGLOG_DEBUG(Loader, "loaded module {} @ {:#X}", filepath, Memory::PROCESS_IMAGE_VADDR); |     NGLOG_DEBUG(Loader, "loaded module {} @ 0x{:X}", filepath, Memory::PROCESS_IMAGE_VADDR); | ||||||
|  |  | ||||||
|     process->svc_access_mask.set(); |     process->svc_access_mask.set(); | ||||||
|     process->address_mappings = default_address_mappings; |     process->address_mappings = default_address_mappings; | ||||||
|   | |||||||
| @@ -168,7 +168,7 @@ T Read(const VAddr vaddr) { | |||||||
|     PageType type = current_page_table->attributes[vaddr >> PAGE_BITS]; |     PageType type = current_page_table->attributes[vaddr >> PAGE_BITS]; | ||||||
|     switch (type) { |     switch (type) { | ||||||
|     case PageType::Unmapped: |     case PageType::Unmapped: | ||||||
|         NGLOG_ERROR(HW_Memory, "Unmapped Read{} @ {:#010X}", sizeof(T) * 8, vaddr); |         NGLOG_ERROR(HW_Memory, "Unmapped Read{} @ 0x{:08X}", sizeof(T) * 8, vaddr); | ||||||
|         return 0; |         return 0; | ||||||
|     case PageType::Memory: |     case PageType::Memory: | ||||||
|         ASSERT_MSG(false, "Mapped memory page without a pointer @ {:016X}", vaddr); |         ASSERT_MSG(false, "Mapped memory page without a pointer @ {:016X}", vaddr); | ||||||
| @@ -200,8 +200,8 @@ void Write(const VAddr vaddr, const T data) { | |||||||
|     PageType type = current_page_table->attributes[vaddr >> PAGE_BITS]; |     PageType type = current_page_table->attributes[vaddr >> PAGE_BITS]; | ||||||
|     switch (type) { |     switch (type) { | ||||||
|     case PageType::Unmapped: |     case PageType::Unmapped: | ||||||
|         NGLOG_ERROR(HW_Memory, "Unmapped Write{} {:#010X} @ {:#018X}", sizeof(data) * 8, (u32)data, |         NGLOG_ERROR(HW_Memory, "Unmapped Write{} 0x{:08X} @ 0x{:016X}", sizeof(data) * 8, | ||||||
|                     vaddr); |                     static_cast<u32>(data), vaddr); | ||||||
|         return; |         return; | ||||||
|     case PageType::Memory: |     case PageType::Memory: | ||||||
|         ASSERT_MSG(false, "Mapped memory page without a pointer @ {:016X}", vaddr); |         ASSERT_MSG(false, "Mapped memory page without a pointer @ {:016X}", vaddr); | ||||||
| @@ -250,7 +250,7 @@ u8* GetPointer(const VAddr vaddr) { | |||||||
|         return GetPointerFromVMA(vaddr); |         return GetPointerFromVMA(vaddr); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     NGLOG_ERROR(HW_Memory, "Unknown GetPointer @ {:#018X}", vaddr); |     NGLOG_ERROR(HW_Memory, "Unknown GetPointer @ 0x{:016X}", vaddr); | ||||||
|     return nullptr; |     return nullptr; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -287,12 +287,12 @@ u8* GetPhysicalPointer(PAddr address) { | |||||||
|         }); |         }); | ||||||
|  |  | ||||||
|     if (area == std::end(memory_areas)) { |     if (area == std::end(memory_areas)) { | ||||||
|         NGLOG_ERROR(HW_Memory, "Unknown GetPhysicalPointer @ {:#018X}", address); |         NGLOG_ERROR(HW_Memory, "Unknown GetPhysicalPointer @ 0x{:016X}", address); | ||||||
|         return nullptr; |         return nullptr; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (area->paddr_base == IO_AREA_PADDR) { |     if (area->paddr_base == IO_AREA_PADDR) { | ||||||
|         NGLOG_ERROR(HW_Memory, "MMIO mappings are not supported yet. phys_addr={:018X}", address); |         NGLOG_ERROR(HW_Memory, "MMIO mappings are not supported yet. phys_addr={:016X}", address); | ||||||
|         return nullptr; |         return nullptr; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -476,7 +476,7 @@ void ReadBlock(const Kernel::Process& process, const VAddr src_addr, void* dest_ | |||||||
|         switch (page_table.attributes[page_index]) { |         switch (page_table.attributes[page_index]) { | ||||||
|         case PageType::Unmapped: { |         case PageType::Unmapped: { | ||||||
|             NGLOG_ERROR(HW_Memory, |             NGLOG_ERROR(HW_Memory, | ||||||
|                         "Unmapped ReadBlock @ {:#018X} (start address = {:#018X}, size = {})", |                         "Unmapped ReadBlock @ 0x{:016X} (start address = 0x{:016X}, size = {})", | ||||||
|                         current_vaddr, src_addr, size); |                         current_vaddr, src_addr, size); | ||||||
|             std::memset(dest_buffer, 0, copy_amount); |             std::memset(dest_buffer, 0, copy_amount); | ||||||
|             break; |             break; | ||||||
| @@ -540,7 +540,7 @@ void WriteBlock(const Kernel::Process& process, const VAddr dest_addr, const voi | |||||||
|         switch (page_table.attributes[page_index]) { |         switch (page_table.attributes[page_index]) { | ||||||
|         case PageType::Unmapped: { |         case PageType::Unmapped: { | ||||||
|             NGLOG_ERROR(HW_Memory, |             NGLOG_ERROR(HW_Memory, | ||||||
|                         "Unmapped WriteBlock @ {:#018X} (start address = {:#018X}, size = {})", |                         "Unmapped WriteBlock @ 0x{:016X} (start address = 0x{:016X}, size = {})", | ||||||
|                         current_vaddr, dest_addr, size); |                         current_vaddr, dest_addr, size); | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
| @@ -588,7 +588,7 @@ void ZeroBlock(const Kernel::Process& process, const VAddr dest_addr, const size | |||||||
|         switch (page_table.attributes[page_index]) { |         switch (page_table.attributes[page_index]) { | ||||||
|         case PageType::Unmapped: { |         case PageType::Unmapped: { | ||||||
|             NGLOG_ERROR(HW_Memory, |             NGLOG_ERROR(HW_Memory, | ||||||
|                         "Unmapped ZeroBlock @ {:#018X} (start address = {#:018X}, size = {})", |                         "Unmapped ZeroBlock @ 0x{:016X} (start address = 0x{:016X}, size = {})", | ||||||
|                         current_vaddr, dest_addr, size); |                         current_vaddr, dest_addr, size); | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
| @@ -629,7 +629,7 @@ void CopyBlock(const Kernel::Process& process, VAddr dest_addr, VAddr src_addr, | |||||||
|         switch (page_table.attributes[page_index]) { |         switch (page_table.attributes[page_index]) { | ||||||
|         case PageType::Unmapped: { |         case PageType::Unmapped: { | ||||||
|             NGLOG_ERROR(HW_Memory, |             NGLOG_ERROR(HW_Memory, | ||||||
|                         "Unmapped CopyBlock @ {:#018X} (start address = {:#018X}, size = {})", |                         "Unmapped CopyBlock @ 0x{:016X} (start address = 0x{:016X}, size = {})", | ||||||
|                         current_vaddr, src_addr, size); |                         current_vaddr, src_addr, size); | ||||||
|             ZeroBlock(process, dest_addr, copy_amount); |             ZeroBlock(process, dest_addr, copy_amount); | ||||||
|             break; |             break; | ||||||
| @@ -683,7 +683,7 @@ boost::optional<PAddr> TryVirtualToPhysicalAddress(const VAddr addr) { | |||||||
| PAddr VirtualToPhysicalAddress(const VAddr addr) { | PAddr VirtualToPhysicalAddress(const VAddr addr) { | ||||||
|     auto paddr = TryVirtualToPhysicalAddress(addr); |     auto paddr = TryVirtualToPhysicalAddress(addr); | ||||||
|     if (!paddr) { |     if (!paddr) { | ||||||
|         NGLOG_ERROR(HW_Memory, "Unknown virtual address @ {:#018X}", addr); |         NGLOG_ERROR(HW_Memory, "Unknown virtual address @ 0x{:016X}", addr); | ||||||
|         // To help with debugging, set bit on address so that it's obviously invalid. |         // To help with debugging, set bit on address so that it's obviously invalid. | ||||||
|         return addr | 0x80000000; |         return addr | 0x80000000; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -252,7 +252,7 @@ void RasterizerOpenGL::SetupShaders(u8* buffer_ptr, GLintptr buffer_offset) { | |||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         default: |         default: | ||||||
|             NGLOG_CRITICAL(HW_GPU, "Unimplemented shader index={}, enable={}, offset={:#010X}", |             NGLOG_CRITICAL(HW_GPU, "Unimplemented shader index={}, enable={}, offset=0x{:08X}", | ||||||
|                            index, shader_config.enable.Value(), shader_config.offset); |                            index, shader_config.enable.Value(), shader_config.offset); | ||||||
|             UNREACHABLE(); |             UNREACHABLE(); | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei