mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-24 12:26:26 -05:00
general: Make formatting of logged hex values more straightforward
This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on).
This commit is contained in:
parent
8262aeeac8
commit
7c9644646f
29 changed files with 105 additions and 104 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,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,8 +407,9 @@ 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,
|
||||||
|
"called, shared_memory_handle=0x{:X}, addr=0x{:X}, size=0x{:X}, permissions=0x{:08X}",
|
||||||
shared_memory_handle, addr, size, permissions);
|
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);
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue