From 3dbf146fbd381cd9195260ad2e2e412aae859e33 Mon Sep 17 00:00:00 2001 From: Eladash Date: Sat, 15 Jul 2023 14:46:41 +0300 Subject: [PATCH] [orbis-config.hpp] Add integral zero/sign extension specailization for uwrite --- rpcsx-os/orbis-kernel-config/orbis-config.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rpcsx-os/orbis-kernel-config/orbis-config.hpp b/rpcsx-os/orbis-kernel-config/orbis-config.hpp index 867242465..10a140bcf 100644 --- a/rpcsx-os/orbis-kernel-config/orbis-config.hpp +++ b/rpcsx-os/orbis-kernel-config/orbis-config.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -80,6 +81,12 @@ template [[nodiscard]] ErrorCode uwrite(ptr pointer, T data) { return uwriteRaw(pointer, &data, sizeof(T)); } +template requires (std::is_arithmetic_v && std::is_arithmetic_v && sizeof(T) > sizeof(U) && !std::is_same_v, bool>) +[[nodiscard]] ErrorCode uwrite(ptr pointer, U data) { + T converted = data; + return uwriteRaw(pointer, &converted, sizeof(T)); +} + template [[nodiscard]] ErrorCode uread(T *result, ptr pointer, std::size_t count) { return ureadRaw(&result, pointer, sizeof(T) * count);