From c9678bda2440423ec55d420aedd9a11d79834649 Mon Sep 17 00:00:00 2001
From: Merry <git@mary.rs>
Date: Tue, 21 Feb 2023 21:36:20 +0000
Subject: [PATCH] svc: Fix type consistency (exposed on macOS)

---
 src/core/hle/kernel/svc.cpp                    | 16 ++++++++--------
 src/core/hle/kernel/svc.h                      | 18 +++++++++---------
 .../hle/kernel/svc/svc_address_translation.cpp | 10 +++++-----
 src/core/hle/kernel/svc/svc_cache.cpp          |  8 ++++----
 src/core/hle/kernel/svc/svc_code_memory.cpp    |  4 ++--
 src/core/hle/kernel/svc/svc_debug.cpp          | 10 +++++-----
 .../kernel/svc/svc_device_address_space.cpp    | 16 ++++++++--------
 .../hle/kernel/svc/svc_insecure_memory.cpp     |  4 ++--
 src/core/hle/kernel/svc/svc_io_pool.cpp        |  8 ++++----
 .../hle/kernel/svc/svc_physical_memory.cpp     |  2 +-
 src/core/hle/kernel/svc/svc_port.cpp           |  2 +-
 src/core/hle/kernel/svc/svc_process_memory.cpp |  4 ++--
 src/core/hle/kernel/svc_generator.py           |  4 ++--
 src/video_core/buffer_cache/buffer_base.h      |  2 +-
 14 files changed, 54 insertions(+), 54 deletions(-)

diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 1072da8cce..a0bfd6bbc1 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -82,7 +82,7 @@ static_assert(sizeof(uint64_t) == 8);
 static void SvcWrap_SetHeapSize64From32(Core::System& system) {
     Result ret{};
 
-    uintptr_t out_address{};
+    uint64_t out_address{};
     uint32_t size{};
 
     size = Convert<uint32_t>(GetReg32(system, 1));
@@ -729,7 +729,7 @@ static void SvcWrap_GetLastThreadInfo64From32(Core::System& system) {
     Result ret{};
 
     ilp32::LastThreadContext out_context{};
-    uintptr_t out_tls_address{};
+    uint64_t out_tls_address{};
     uint32_t out_flags{};
 
     ret = GetLastThreadInfo64From32(system, &out_context, &out_tls_address, &out_flags);
@@ -1278,8 +1278,8 @@ static void SvcWrap_QueryPhysicalAddress64From32(Core::System& system) {
 static void SvcWrap_QueryIoMapping64From32(Core::System& system) {
     Result ret{};
 
-    uintptr_t out_address{};
-    uintptr_t out_size{};
+    uint64_t out_address{};
+    uint64_t out_size{};
     uint64_t physical_address{};
     uint32_t size{};
 
@@ -2088,7 +2088,7 @@ static void SvcWrap_UnmapInsecureMemory64From32(Core::System& system) {
 static void SvcWrap_SetHeapSize64(Core::System& system) {
     Result ret{};
 
-    uintptr_t out_address{};
+    uint64_t out_address{};
     uint64_t size{};
 
     size = Convert<uint64_t>(GetReg64(system, 1));
@@ -2705,7 +2705,7 @@ static void SvcWrap_GetLastThreadInfo64(Core::System& system) {
     Result ret{};
 
     lp64::LastThreadContext out_context{};
-    uintptr_t out_tls_address{};
+    uint64_t out_tls_address{};
     uint32_t out_flags{};
 
     ret = GetLastThreadInfo64(system, &out_context, &out_tls_address, &out_flags);
@@ -3217,8 +3217,8 @@ static void SvcWrap_QueryPhysicalAddress64(Core::System& system) {
 static void SvcWrap_QueryIoMapping64(Core::System& system) {
     Result ret{};
 
-    uintptr_t out_address{};
-    uintptr_t out_size{};
+    uint64_t out_address{};
+    uint64_t out_size{};
     uint64_t physical_address{};
     uint64_t size{};
 
diff --git a/src/core/hle/kernel/svc.h b/src/core/hle/kernel/svc.h
index 36e619959a..ac46960084 100644
--- a/src/core/hle/kernel/svc.h
+++ b/src/core/hle/kernel/svc.h
@@ -16,7 +16,7 @@ class System;
 namespace Kernel::Svc {
 
 // clang-format off
-Result SetHeapSize(Core::System& system, uintptr_t* out_address, uint64_t size);
+Result SetHeapSize(Core::System& system, uint64_t* out_address, uint64_t size);
 Result SetMemoryPermission(Core::System& system, uint64_t address, uint64_t size, MemoryPermission perm);
 Result SetMemoryAttribute(Core::System& system, uint64_t address, uint64_t size, uint32_t mask, uint32_t attr);
 Result MapMemory(Core::System& system, uint64_t dst_address, uint64_t src_address, uint64_t size);
@@ -61,7 +61,7 @@ Result FlushDataCache(Core::System& system, uint64_t address, uint64_t size);
 Result MapPhysicalMemory(Core::System& system, uint64_t address, uint64_t size);
 Result UnmapPhysicalMemory(Core::System& system, uint64_t address, uint64_t size);
 Result GetDebugFutureThreadInfo(Core::System& system, lp64::LastThreadContext* out_context, uint64_t* out_thread_id, Handle debug_handle, int64_t ns);
-Result GetLastThreadInfo(Core::System& system, lp64::LastThreadContext* out_context, uintptr_t* out_tls_address, uint32_t* out_flags);
+Result GetLastThreadInfo(Core::System& system, lp64::LastThreadContext* out_context, uint64_t* out_tls_address, uint32_t* out_flags);
 Result GetResourceLimitLimitValue(Core::System& system, int64_t* out_limit_value, Handle resource_limit_handle, LimitableResource which);
 Result GetResourceLimitCurrentValue(Core::System& system, int64_t* out_current_value, Handle resource_limit_handle, LimitableResource which);
 Result SetThreadActivity(Core::System& system, Handle thread_handle, ThreadActivity thread_activity);
@@ -94,7 +94,7 @@ Result MapTransferMemory(Core::System& system, Handle trmem_handle, uint64_t add
 Result UnmapTransferMemory(Core::System& system, Handle trmem_handle, uint64_t address, uint64_t size);
 Result CreateInterruptEvent(Core::System& system, Handle* out_read_handle, int32_t interrupt_id, InterruptType interrupt_type);
 Result QueryPhysicalAddress(Core::System& system, lp64::PhysicalMemoryInfo* out_info, uint64_t address);
-Result QueryIoMapping(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, uint64_t physical_address, uint64_t size);
+Result QueryIoMapping(Core::System& system, uint64_t* out_address, uint64_t* out_size, uint64_t physical_address, uint64_t size);
 Result CreateDeviceAddressSpace(Core::System& system, Handle* out_handle, uint64_t das_address, uint64_t das_size);
 Result AttachDeviceAddressSpace(Core::System& system, DeviceName device_name, Handle das_handle);
 Result DetachDeviceAddressSpace(Core::System& system, DeviceName device_name, Handle das_handle);
@@ -137,7 +137,7 @@ Result SetResourceLimitLimitValue(Core::System& system, Handle resource_limit_ha
 Result MapInsecureMemory(Core::System& system, uint64_t address, uint64_t size);
 Result UnmapInsecureMemory(Core::System& system, uint64_t address, uint64_t size);
 
-Result SetHeapSize64From32(Core::System& system, uintptr_t* out_address, uint32_t size);
+Result SetHeapSize64From32(Core::System& system, uint64_t* out_address, uint32_t size);
 Result SetMemoryPermission64From32(Core::System& system, uint32_t address, uint32_t size, MemoryPermission perm);
 Result SetMemoryAttribute64From32(Core::System& system, uint32_t address, uint32_t size, uint32_t mask, uint32_t attr);
 Result MapMemory64From32(Core::System& system, uint32_t dst_address, uint32_t src_address, uint32_t size);
@@ -182,7 +182,7 @@ Result FlushDataCache64From32(Core::System& system, uint32_t address, uint32_t s
 Result MapPhysicalMemory64From32(Core::System& system, uint32_t address, uint32_t size);
 Result UnmapPhysicalMemory64From32(Core::System& system, uint32_t address, uint32_t size);
 Result GetDebugFutureThreadInfo64From32(Core::System& system, ilp32::LastThreadContext* out_context, uint64_t* out_thread_id, Handle debug_handle, int64_t ns);
-Result GetLastThreadInfo64From32(Core::System& system, ilp32::LastThreadContext* out_context, uintptr_t* out_tls_address, uint32_t* out_flags);
+Result GetLastThreadInfo64From32(Core::System& system, ilp32::LastThreadContext* out_context, uint64_t* out_tls_address, uint32_t* out_flags);
 Result GetResourceLimitLimitValue64From32(Core::System& system, int64_t* out_limit_value, Handle resource_limit_handle, LimitableResource which);
 Result GetResourceLimitCurrentValue64From32(Core::System& system, int64_t* out_current_value, Handle resource_limit_handle, LimitableResource which);
 Result SetThreadActivity64From32(Core::System& system, Handle thread_handle, ThreadActivity thread_activity);
@@ -215,7 +215,7 @@ Result MapTransferMemory64From32(Core::System& system, Handle trmem_handle, uint
 Result UnmapTransferMemory64From32(Core::System& system, Handle trmem_handle, uint32_t address, uint32_t size);
 Result CreateInterruptEvent64From32(Core::System& system, Handle* out_read_handle, int32_t interrupt_id, InterruptType interrupt_type);
 Result QueryPhysicalAddress64From32(Core::System& system, ilp32::PhysicalMemoryInfo* out_info, uint32_t address);
-Result QueryIoMapping64From32(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, uint64_t physical_address, uint32_t size);
+Result QueryIoMapping64From32(Core::System& system, uint64_t* out_address, uint64_t* out_size, uint64_t physical_address, uint32_t size);
 Result CreateDeviceAddressSpace64From32(Core::System& system, Handle* out_handle, uint64_t das_address, uint64_t das_size);
 Result AttachDeviceAddressSpace64From32(Core::System& system, DeviceName device_name, Handle das_handle);
 Result DetachDeviceAddressSpace64From32(Core::System& system, DeviceName device_name, Handle das_handle);
@@ -258,7 +258,7 @@ Result SetResourceLimitLimitValue64From32(Core::System& system, Handle resource_
 Result MapInsecureMemory64From32(Core::System& system, uint32_t address, uint32_t size);
 Result UnmapInsecureMemory64From32(Core::System& system, uint32_t address, uint32_t size);
 
-Result SetHeapSize64(Core::System& system, uintptr_t* out_address, uint64_t size);
+Result SetHeapSize64(Core::System& system, uint64_t* out_address, uint64_t size);
 Result SetMemoryPermission64(Core::System& system, uint64_t address, uint64_t size, MemoryPermission perm);
 Result SetMemoryAttribute64(Core::System& system, uint64_t address, uint64_t size, uint32_t mask, uint32_t attr);
 Result MapMemory64(Core::System& system, uint64_t dst_address, uint64_t src_address, uint64_t size);
@@ -303,7 +303,7 @@ Result FlushDataCache64(Core::System& system, uint64_t address, uint64_t size);
 Result MapPhysicalMemory64(Core::System& system, uint64_t address, uint64_t size);
 Result UnmapPhysicalMemory64(Core::System& system, uint64_t address, uint64_t size);
 Result GetDebugFutureThreadInfo64(Core::System& system, lp64::LastThreadContext* out_context, uint64_t* out_thread_id, Handle debug_handle, int64_t ns);
-Result GetLastThreadInfo64(Core::System& system, lp64::LastThreadContext* out_context, uintptr_t* out_tls_address, uint32_t* out_flags);
+Result GetLastThreadInfo64(Core::System& system, lp64::LastThreadContext* out_context, uint64_t* out_tls_address, uint32_t* out_flags);
 Result GetResourceLimitLimitValue64(Core::System& system, int64_t* out_limit_value, Handle resource_limit_handle, LimitableResource which);
 Result GetResourceLimitCurrentValue64(Core::System& system, int64_t* out_current_value, Handle resource_limit_handle, LimitableResource which);
 Result SetThreadActivity64(Core::System& system, Handle thread_handle, ThreadActivity thread_activity);
@@ -336,7 +336,7 @@ Result MapTransferMemory64(Core::System& system, Handle trmem_handle, uint64_t a
 Result UnmapTransferMemory64(Core::System& system, Handle trmem_handle, uint64_t address, uint64_t size);
 Result CreateInterruptEvent64(Core::System& system, Handle* out_read_handle, int32_t interrupt_id, InterruptType interrupt_type);
 Result QueryPhysicalAddress64(Core::System& system, lp64::PhysicalMemoryInfo* out_info, uint64_t address);
-Result QueryIoMapping64(Core::System& system, uintptr_t* out_address, uintptr_t* out_size, uint64_t physical_address, uint64_t size);
+Result QueryIoMapping64(Core::System& system, uint64_t* out_address, uint64_t* out_size, uint64_t physical_address, uint64_t size);
 Result CreateDeviceAddressSpace64(Core::System& system, Handle* out_handle, uint64_t das_address, uint64_t das_size);
 Result AttachDeviceAddressSpace64(Core::System& system, DeviceName device_name, Handle das_handle);
 Result DetachDeviceAddressSpace64(Core::System& system, DeviceName device_name, Handle das_handle);
diff --git a/src/core/hle/kernel/svc/svc_address_translation.cpp b/src/core/hle/kernel/svc/svc_address_translation.cpp
index c25e144cd1..e65a11cda8 100644
--- a/src/core/hle/kernel/svc/svc_address_translation.cpp
+++ b/src/core/hle/kernel/svc/svc_address_translation.cpp
@@ -12,7 +12,7 @@ Result QueryPhysicalAddress(Core::System& system, lp64::PhysicalMemoryInfo* out_
     R_THROW(ResultNotImplemented);
 }
 
-Result QueryIoMapping(Core::System& system, uintptr_t* out_address, uintptr_t* out_size,
+Result QueryIoMapping(Core::System& system, uint64_t* out_address, uint64_t* out_size,
                       uint64_t physical_address, uint64_t size) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
@@ -23,7 +23,7 @@ Result QueryPhysicalAddress64(Core::System& system, lp64::PhysicalMemoryInfo* ou
     R_RETURN(QueryPhysicalAddress(system, out_info, address));
 }
 
-Result QueryIoMapping64(Core::System& system, uintptr_t* out_address, uintptr_t* out_size,
+Result QueryIoMapping64(Core::System& system, uint64_t* out_address, uint64_t* out_size,
                         uint64_t physical_address, uint64_t size) {
     R_RETURN(QueryIoMapping(system, out_address, out_size, physical_address, size));
 }
@@ -41,10 +41,10 @@ Result QueryPhysicalAddress64From32(Core::System& system, ilp32::PhysicalMemoryI
     R_SUCCEED();
 }
 
-Result QueryIoMapping64From32(Core::System& system, uintptr_t* out_address, uintptr_t* out_size,
+Result QueryIoMapping64From32(Core::System& system, uint64_t* out_address, uint64_t* out_size,
                               uint64_t physical_address, uint32_t size) {
-    R_RETURN(QueryIoMapping(system, reinterpret_cast<uintptr_t*>(out_address),
-                            reinterpret_cast<uintptr_t*>(out_size), physical_address, size));
+    R_RETURN(QueryIoMapping(system, reinterpret_cast<uint64_t*>(out_address),
+                            reinterpret_cast<uint64_t*>(out_size), physical_address, size));
 }
 
 } // namespace Kernel::Svc
diff --git a/src/core/hle/kernel/svc/svc_cache.cpp b/src/core/hle/kernel/svc/svc_cache.cpp
index 598b71da53..1779832d37 100644
--- a/src/core/hle/kernel/svc/svc_cache.cpp
+++ b/src/core/hle/kernel/svc/svc_cache.cpp
@@ -13,7 +13,7 @@ void FlushEntireDataCache(Core::System& system) {
     UNIMPLEMENTED();
 }
 
-Result FlushDataCache(Core::System& system, VAddr address, size_t size) {
+Result FlushDataCache(Core::System& system, uint64_t address, uint64_t size) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
@@ -33,8 +33,8 @@ Result StoreProcessDataCache(Core::System& system, Handle process_handle, uint64
 Result FlushProcessDataCache(Core::System& system, Handle process_handle, u64 address, u64 size) {
     // Validate address/size.
     R_UNLESS(size > 0, ResultInvalidSize);
-    R_UNLESS(address == static_cast<uintptr_t>(address), ResultInvalidCurrentMemory);
-    R_UNLESS(size == static_cast<size_t>(size), ResultInvalidCurrentMemory);
+    R_UNLESS(address == static_cast<uint64_t>(address), ResultInvalidCurrentMemory);
+    R_UNLESS(size == static_cast<uint64_t>(size), ResultInvalidCurrentMemory);
 
     // Get the process from its handle.
     KScopedAutoObject process =
@@ -53,7 +53,7 @@ void FlushEntireDataCache64(Core::System& system) {
     FlushEntireDataCache(system);
 }
 
-Result FlushDataCache64(Core::System& system, VAddr address, size_t size) {
+Result FlushDataCache64(Core::System& system, uint64_t address, uint64_t size) {
     R_RETURN(FlushDataCache(system, address, size));
 }
 
diff --git a/src/core/hle/kernel/svc/svc_code_memory.cpp b/src/core/hle/kernel/svc/svc_code_memory.cpp
index 538ff1c71d..8bed747af0 100644
--- a/src/core/hle/kernel/svc/svc_code_memory.cpp
+++ b/src/core/hle/kernel/svc/svc_code_memory.cpp
@@ -28,7 +28,7 @@ constexpr bool IsValidUnmapFromOwnerCodeMemoryPermission(MemoryPermission perm)
 
 } // namespace
 
-Result CreateCodeMemory(Core::System& system, Handle* out, VAddr address, size_t size) {
+Result CreateCodeMemory(Core::System& system, Handle* out, VAddr address, uint64_t size) {
     LOG_TRACE(Kernel_SVC, "called, address=0x{:X}, size=0x{:X}", address, size);
 
     // Get kernel instance.
@@ -64,7 +64,7 @@ Result CreateCodeMemory(Core::System& system, Handle* out, VAddr address, size_t
 }
 
 Result ControlCodeMemory(Core::System& system, Handle code_memory_handle,
-                         CodeMemoryOperation operation, VAddr address, size_t size,
+                         CodeMemoryOperation operation, VAddr address, uint64_t size,
                          MemoryPermission perm) {
 
     LOG_TRACE(Kernel_SVC,
diff --git a/src/core/hle/kernel/svc/svc_debug.cpp b/src/core/hle/kernel/svc/svc_debug.cpp
index a14050fa74..a4d1f700e8 100644
--- a/src/core/hle/kernel/svc/svc_debug.cpp
+++ b/src/core/hle/kernel/svc/svc_debug.cpp
@@ -45,19 +45,19 @@ Result SetDebugThreadContext(Core::System& system, Handle debug_handle, uint64_t
 }
 
 Result QueryDebugProcessMemory(Core::System& system, uint64_t out_memory_info,
-                               PageInfo* out_page_info, Handle debug_handle, uintptr_t address) {
+                               PageInfo* out_page_info, Handle process_handle, uint64_t address) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
 
-Result ReadDebugProcessMemory(Core::System& system, uintptr_t buffer, Handle debug_handle,
-                              uintptr_t address, size_t size) {
+Result ReadDebugProcessMemory(Core::System& system, uint64_t buffer, Handle debug_handle,
+                              uint64_t address, uint64_t size) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
 
-Result WriteDebugProcessMemory(Core::System& system, Handle debug_handle, uintptr_t buffer,
-                               uintptr_t address, size_t size) {
+Result WriteDebugProcessMemory(Core::System& system, Handle debug_handle, uint64_t buffer,
+                               uint64_t address, uint64_t size) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
diff --git a/src/core/hle/kernel/svc/svc_device_address_space.cpp b/src/core/hle/kernel/svc/svc_device_address_space.cpp
index f68c0e6a95..ec3143e676 100644
--- a/src/core/hle/kernel/svc/svc_device_address_space.cpp
+++ b/src/core/hle/kernel/svc/svc_device_address_space.cpp
@@ -76,8 +76,8 @@ constexpr bool IsValidDeviceMemoryPermission(MemoryPermission device_perm) {
 }
 
 Result MapDeviceAddressSpaceByForce(Core::System& system, Handle das_handle, Handle process_handle,
-                                    uint64_t process_address, size_t size, uint64_t device_address,
-                                    u32 option) {
+                                    uint64_t process_address, uint64_t size,
+                                    uint64_t device_address, u32 option) {
     // Decode the option.
     const MapDeviceAddressSpaceOption option_pack{option};
     const auto device_perm = option_pack.permission;
@@ -90,7 +90,7 @@ Result MapDeviceAddressSpaceByForce(Core::System& system, Handle das_handle, Han
     R_UNLESS(size > 0, ResultInvalidSize);
     R_UNLESS((process_address < process_address + size), ResultInvalidCurrentMemory);
     R_UNLESS((device_address < device_address + size), ResultInvalidMemoryRegion);
-    R_UNLESS((process_address == static_cast<uintptr_t>(process_address)),
+    R_UNLESS((process_address == static_cast<uint64_t>(process_address)),
              ResultInvalidCurrentMemory);
     R_UNLESS(IsValidDeviceMemoryPermission(device_perm), ResultInvalidNewMemoryPermission);
     R_UNLESS(reserved == 0, ResultInvalidEnumValue);
@@ -116,8 +116,8 @@ Result MapDeviceAddressSpaceByForce(Core::System& system, Handle das_handle, Han
 }
 
 Result MapDeviceAddressSpaceAligned(Core::System& system, Handle das_handle, Handle process_handle,
-                                    uint64_t process_address, size_t size, uint64_t device_address,
-                                    u32 option) {
+                                    uint64_t process_address, uint64_t size,
+                                    uint64_t device_address, u32 option) {
     // Decode the option.
     const MapDeviceAddressSpaceOption option_pack{option};
     const auto device_perm = option_pack.permission;
@@ -131,7 +131,7 @@ Result MapDeviceAddressSpaceAligned(Core::System& system, Handle das_handle, Han
     R_UNLESS(size > 0, ResultInvalidSize);
     R_UNLESS((process_address < process_address + size), ResultInvalidCurrentMemory);
     R_UNLESS((device_address < device_address + size), ResultInvalidMemoryRegion);
-    R_UNLESS((process_address == static_cast<uintptr_t>(process_address)),
+    R_UNLESS((process_address == static_cast<uint64_t>(process_address)),
              ResultInvalidCurrentMemory);
     R_UNLESS(IsValidDeviceMemoryPermission(device_perm), ResultInvalidNewMemoryPermission);
     R_UNLESS(reserved == 0, ResultInvalidEnumValue);
@@ -157,7 +157,7 @@ Result MapDeviceAddressSpaceAligned(Core::System& system, Handle das_handle, Han
 }
 
 Result UnmapDeviceAddressSpace(Core::System& system, Handle das_handle, Handle process_handle,
-                               uint64_t process_address, size_t size, uint64_t device_address) {
+                               uint64_t process_address, uint64_t size, uint64_t device_address) {
     // Validate input.
     R_UNLESS(Common::IsAligned(process_address, PageSize), ResultInvalidAddress);
     R_UNLESS(Common::IsAligned(device_address, PageSize), ResultInvalidAddress);
@@ -165,7 +165,7 @@ Result UnmapDeviceAddressSpace(Core::System& system, Handle das_handle, Handle p
     R_UNLESS(size > 0, ResultInvalidSize);
     R_UNLESS((process_address < process_address + size), ResultInvalidCurrentMemory);
     R_UNLESS((device_address < device_address + size), ResultInvalidMemoryRegion);
-    R_UNLESS((process_address == static_cast<uintptr_t>(process_address)),
+    R_UNLESS((process_address == static_cast<uint64_t>(process_address)),
              ResultInvalidCurrentMemory);
 
     // Get the device address space.
diff --git a/src/core/hle/kernel/svc/svc_insecure_memory.cpp b/src/core/hle/kernel/svc/svc_insecure_memory.cpp
index 79882685d2..00457c6bf2 100644
--- a/src/core/hle/kernel/svc/svc_insecure_memory.cpp
+++ b/src/core/hle/kernel/svc/svc_insecure_memory.cpp
@@ -6,12 +6,12 @@
 
 namespace Kernel::Svc {
 
-Result MapInsecureMemory(Core::System& system, uintptr_t address, size_t size) {
+Result MapInsecureMemory(Core::System& system, uint64_t address, uint64_t size) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
 
-Result UnmapInsecureMemory(Core::System& system, uintptr_t address, size_t size) {
+Result UnmapInsecureMemory(Core::System& system, uint64_t address, uint64_t size) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
diff --git a/src/core/hle/kernel/svc/svc_io_pool.cpp b/src/core/hle/kernel/svc/svc_io_pool.cpp
index 33f3d69bfa..f01817e245 100644
--- a/src/core/hle/kernel/svc/svc_io_pool.cpp
+++ b/src/core/hle/kernel/svc/svc_io_pool.cpp
@@ -12,19 +12,19 @@ Result CreateIoPool(Core::System& system, Handle* out, IoPoolType pool_type) {
 }
 
 Result CreateIoRegion(Core::System& system, Handle* out, Handle io_pool_handle, uint64_t phys_addr,
-                      size_t size, MemoryMapping mapping, MemoryPermission perm) {
+                      uint64_t size, MemoryMapping mapping, MemoryPermission perm) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
 
-Result MapIoRegion(Core::System& system, Handle io_region_handle, uintptr_t address, size_t size,
+Result MapIoRegion(Core::System& system, Handle io_region_handle, uint64_t address, uint64_t size,
                    MemoryPermission map_perm) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
 
-Result UnmapIoRegion(Core::System& system, Handle io_region_handle, uintptr_t address,
-                     size_t size) {
+Result UnmapIoRegion(Core::System& system, Handle io_region_handle, uint64_t address,
+                     uint64_t size) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
diff --git a/src/core/hle/kernel/svc/svc_physical_memory.cpp b/src/core/hle/kernel/svc/svc_physical_memory.cpp
index a1f5344546..ed6a624ace 100644
--- a/src/core/hle/kernel/svc/svc_physical_memory.cpp
+++ b/src/core/hle/kernel/svc/svc_physical_memory.cpp
@@ -158,7 +158,7 @@ Result SetUnsafeLimit64(Core::System& system, uint64_t limit) {
     R_RETURN(SetUnsafeLimit(system, limit));
 }
 
-Result SetHeapSize64From32(Core::System& system, uintptr_t* out_address, uint32_t size) {
+Result SetHeapSize64From32(Core::System& system, uint64_t* out_address, uint32_t size) {
     R_RETURN(SetHeapSize(system, out_address, size));
 }
 
diff --git a/src/core/hle/kernel/svc/svc_port.cpp b/src/core/hle/kernel/svc/svc_port.cpp
index 2f9bfcb527..0b5b4ba2b6 100644
--- a/src/core/hle/kernel/svc/svc_port.cpp
+++ b/src/core/hle/kernel/svc/svc_port.cpp
@@ -65,7 +65,7 @@ Result ConnectToNamedPort(Core::System& system, Handle* out, VAddr port_name_add
 }
 
 Result CreatePort(Core::System& system, Handle* out_server, Handle* out_client,
-                  int32_t max_sessions, bool is_light, uintptr_t name) {
+                  int32_t max_sessions, bool is_light, uint64_t name) {
     UNIMPLEMENTED();
     R_THROW(ResultNotImplemented);
 }
diff --git a/src/core/hle/kernel/svc/svc_process_memory.cpp b/src/core/hle/kernel/svc/svc_process_memory.cpp
index 4dfd9e5bb0..8e2fb4092c 100644
--- a/src/core/hle/kernel/svc/svc_process_memory.cpp
+++ b/src/core/hle/kernel/svc/svc_process_memory.cpp
@@ -37,8 +37,8 @@ Result SetProcessMemoryPermission(Core::System& system, Handle process_handle, V
     R_UNLESS(Common::IsAligned(size, PageSize), ResultInvalidSize);
     R_UNLESS(size > 0, ResultInvalidSize);
     R_UNLESS((address < address + size), ResultInvalidCurrentMemory);
-    R_UNLESS(address == static_cast<uintptr_t>(address), ResultInvalidCurrentMemory);
-    R_UNLESS(size == static_cast<size_t>(size), ResultInvalidCurrentMemory);
+    R_UNLESS(address == static_cast<uint64_t>(address), ResultInvalidCurrentMemory);
+    R_UNLESS(size == static_cast<uint64_t>(size), ResultInvalidCurrentMemory);
 
     // Validate the memory permission.
     R_UNLESS(IsValidProcessMemoryPermission(perm), ResultInvalidNewMemoryPermission);
diff --git a/src/core/hle/kernel/svc_generator.py b/src/core/hle/kernel/svc_generator.py
index 34d2ac6598..0cce69e85e 100644
--- a/src/core/hle/kernel/svc_generator.py
+++ b/src/core/hle/kernel/svc_generator.py
@@ -443,7 +443,7 @@ def emit_wrapper(wrapped_fn, suffix, register_info, arguments, byte_size):
         lines.append("")
 
     for output_type, var_name, _, is_address in output_writes:
-        output_type = "uintptr_t" if is_address else output_type
+        output_type = "uint64_t" if is_address else output_type
         lines.append(f"{output_type} {var_name}{{}};")
     for input_type, var_name, _ in input_reads:
         lines.append(f"{input_type} {var_name}{{}};")
@@ -630,7 +630,7 @@ def emit_call(bitness, names, suffix):
 def build_fn_declaration(return_type, name, arguments):
     arg_list = ["Core::System& system"]
     for arg in arguments:
-        type_name = "uintptr_t" if arg.is_address else arg.type_name
+        type_name = "uint64_t" if arg.is_address else arg.type_name
         pointer = "*" if arg.is_output and not arg.is_outptr else ""
         arg_list.append(f"{type_name}{pointer} {arg.var_name}")
 
diff --git a/src/video_core/buffer_cache/buffer_base.h b/src/video_core/buffer_cache/buffer_base.h
index 92d77eef2d..1b4d63616d 100644
--- a/src/video_core/buffer_cache/buffer_base.h
+++ b/src/video_core/buffer_cache/buffer_base.h
@@ -568,7 +568,7 @@ private:
         const u64* const state_words = Array<type>();
         const u64 num_query_words = size / BYTES_PER_WORD + 1;
         const u64 word_begin = offset / BYTES_PER_WORD;
-        const u64 word_end = std::min(word_begin + num_query_words, NumWords());
+        const u64 word_end = std::min<u64>(word_begin + num_query_words, NumWords());
         const u64 page_base = offset / BYTES_PER_PAGE;
         const u64 page_limit = Common::DivCeil(offset + size, BYTES_PER_PAGE);
         u64 begin = std::numeric_limits<u64>::max();