diff options
159 files changed, 2173 insertions, 1531 deletions
diff --git a/.ci/scripts/windows/docker.sh b/.ci/scripts/windows/docker.sh index 192a01fd8..feba3fd6e 100755 --- a/.ci/scripts/windows/docker.sh +++ b/.ci/scripts/windows/docker.sh @@ -47,3 +47,6 @@ python3 .ci/scripts/windows/scan_dll.py package/imageformats/*.dll "package/"  EXTERNALS_PATH="$(pwd)/build/externals"  FFMPEG_DLL_PATH="$(find ${EXTERNALS_PATH} -maxdepth 1 -type d | grep ffmpeg)/bin"  find ${FFMPEG_DLL_PATH} -type f -regex ".*\.dll" -exec cp -v {} package/ ';' + +# copy libraries from yuzu.exe path +find "$(pwd)/build/bin/" -type f -regex ".*\.dll" -exec cp -v {} package/ ';' diff --git a/.ci/templates/build-msvc.yml b/.ci/templates/build-msvc.yml index 74e688c12..f6e7557b2 100644 --- a/.ci/templates/build-msvc.yml +++ b/.ci/templates/build-msvc.yml @@ -8,7 +8,7 @@ steps:    displayName: 'Install vulkan-sdk'  - script: python -m pip install --upgrade pip conan    displayName: 'Install conan' -- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} .. && cmake --install . --config Release && cd .. +- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release .. && cd ..    displayName: 'Configure CMake'  - task: MSBuild@1    displayName: 'Build' diff --git a/CMakeLists.txt b/CMakeLists.txt index 10c5032dc..ba207dfd1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -426,7 +426,7 @@ if(NOT APPLE)  endif()  if (NOT LIBUSB_FOUND)      add_subdirectory(externals/libusb) -    set(LIBUSB_INCLUDE_DIR "") +    set(LIBUSB_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals/libusb/libusb/libusb")      set(LIBUSB_LIBRARIES usb)  endif() diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index fe1c088ca..aae0baa0b 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -47,19 +47,21 @@ target_include_directories(unicorn-headers INTERFACE ./unicorn/include)  # SDL2  if (NOT SDL2_FOUND AND ENABLE_SDL2) -    # Yuzu itself needs: Events Joystick Haptic Sensor Timers -    # Yuzu-cmd also needs: Video (depends on Loadso/Dlopen) -    set(SDL_UNUSED_SUBSYSTEMS -        Atomic Audio Render Power Threads -        File CPUinfo Filesystem Locale) -    foreach(_SUB ${SDL_UNUSED_SUBSYSTEMS}) -      string(TOUPPER ${_SUB} _OPT) -      option(SDL_${_OPT} "" OFF) -    endforeach() - +    if (NOT WIN32) +        # Yuzu itself needs: Events Joystick Haptic Sensor Timers +        # Yuzu-cmd also needs: Video (depends on Loadso/Dlopen) +        set(SDL_UNUSED_SUBSYSTEMS +            Atomic Audio Render Power Threads +            File CPUinfo Filesystem Locale) +        foreach(_SUB ${SDL_UNUSED_SUBSYSTEMS}) +          string(TOUPPER ${_SUB} _OPT) +          option(SDL_${_OPT} "" OFF) +        endforeach() + +        option(HIDAPI "" ON) +    endif()      set(SDL_STATIC ON)      set(SDL_SHARED OFF) -    option(HIDAPI "" ON)      add_subdirectory(SDL EXCLUDE_FROM_ALL)      add_library(SDL2 ALIAS SDL2-static) diff --git a/externals/libusb/CMakeLists.txt b/externals/libusb/CMakeLists.txt index 70d6735e3..3ef007b40 100644 --- a/externals/libusb/CMakeLists.txt +++ b/externals/libusb/CMakeLists.txt @@ -1,155 +1,239 @@ -# Ensure libusb compiles with UTF-8 encoding on MSVC -if(MSVC) -    add_compile_options(/utf-8) -endif() - -add_library(usb STATIC EXCLUDE_FROM_ALL -    libusb/libusb/core.c -    libusb/libusb/core.c -    libusb/libusb/descriptor.c -    libusb/libusb/hotplug.c -    libusb/libusb/io.c -    libusb/libusb/strerror.c -    libusb/libusb/sync.c -) -set_target_properties(usb PROPERTIES VERSION 1.0.23) -if(WIN32) -    target_include_directories(usb -        BEFORE -        PUBLIC -          libusb/libusb - -        PRIVATE -          "${CMAKE_CURRENT_BINARY_DIR}" -    ) +if (MINGW) +    # The MinGW toolchain for some reason doesn't work with this CMakeLists file after updating to +    # 1.0.24, so we do it the old-fashioned way for now. We may want to move native Linux toolchains +    # to here, too (TODO lat9nq?). + +    set(LIBUSB_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/libusb") +    set(LIBUSB_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libusb") +    # Workarounds for MSYS/MinGW +    if (MSYS) +        # CMake on Windows passes `C:/`, but we need `/C/` or `/c/` to use `configure` +        string(REPLACE ":/" "/" LIBUSB_SRC_DIR "${LIBUSB_SRC_DIR}") +        set(LIBUSB_SRC_DIR "/${LIBUSB_SRC_DIR}") -    if (NOT MINGW) -        target_include_directories(usb BEFORE PRIVATE libusb/msvc) +        # And now that we are using /C/ for srcdir but everything else is using C:/, we need to +        # compile everything in the source directory, else `configure` won't think the build +        # environment is sane. +        set(LIBUSB_PREFIX "${LIBUSB_SRC_DIR}")      endif() -    # Works around other libraries providing their own definition of USB GUIDs (e.g. SDL2) -    target_compile_definitions(usb PRIVATE "-DGUID_DEVINTERFACE_USB_DEVICE=(GUID){ 0xA5DCBF10, 0x6530, 0x11D2, {0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED}}") -else() -target_include_directories(usb -    # turns out other projects also have "config.h", so make sure the -    # LibUSB one comes first -    BEFORE - -    PUBLIC -      libusb/libusb - -    PRIVATE -      "${CMAKE_CURRENT_BINARY_DIR}" -) -endif() - -if(WIN32 OR CYGWIN) -    target_sources(usb PRIVATE -      libusb/libusb/os/threads_windows.c -      libusb/libusb/os/windows_winusb.c -      libusb/libusb/os/windows_usbdk.c -      libusb/libusb/os/windows_nt_common.c +    set(LIBUSB_CONFIGURE "${LIBUSB_SRC_DIR}/configure") +    set(LIBUSB_MAKEFILE "${LIBUSB_PREFIX}/Makefile") +    set(LIBUSB_LIBRARY "${LIBUSB_PREFIX}/libusb/.libs/libusb-1.0.dll.a") +    set(LIBUSB_SHARED_LIBRARY "${LIBUSB_PREFIX}/libusb/.libs/libusb-1.0.dll") +    set(LIBUSB_SHARED_LIBRARY_DEST "${CMAKE_BINARY_DIR}/bin/libusb-1.0.dll") + +    # Causes "externals/libusb/libusb/libusb/os/windows_winusb.c:1427:2: error: conversion to non-scalar type requested", so cannot statically link it for now. +    # set(LIBUSB_CFLAGS "-DGUID_DEVINTERFACE_USB_DEVICE=\\(GUID\\){0xA5DCBF10,0x6530,0x11D2,{0x90,0x1F,0x00,0xC0,0x4F,0xB9,0x51,0xED}}") + +    make_directory("${LIBUSB_PREFIX}") + +    add_custom_command( +        OUTPUT +            "${LIBUSB_LIBRARY}" +        COMMAND +            make +        WORKING_DIRECTORY +            "${LIBUSB_PREFIX}"      ) -    set(OS_WINDOWS TRUE) -elseif(APPLE) -    target_sources(usb PRIVATE -        libusb/libusb/os/darwin_usb.c + +    # We may use this path for other GNU toolchains, so put all of the MinGW-specific stuff here +    if (MINGW) +        set(LIBUSB_CONFIGURE_ARGS --host=x86_64-w64-mingw32 --build=x86_64-windows) +    endif() + +    add_custom_command( +        OUTPUT +            "${LIBUSB_MAKEFILE}" +        COMMAND +            # /bin/env +            #     CFLAGS="${LIBUSB_CFLAGS}" +            /bin/sh "${LIBUSB_CONFIGURE}" +                ${LIBUSB_CONFIGURE_ARGS} +                --srcdir="${LIBUSB_SRC_DIR}" +        WORKING_DIRECTORY +            "${LIBUSB_PREFIX}"      ) -    find_library(COREFOUNDATION_LIBRARY CoreFoundation) -    find_library(IOKIT_LIBRARY IOKit) -    find_library(OBJC_LIBRARY objc) -    target_link_libraries(usb PRIVATE -        ${COREFOUNDATION_LIBRARY} -        ${IOKIT_LIBRARY} -        ${OBJC_LIBRARY} + +    add_custom_command( +        OUTPUT +            "${LIBUSB_CONFIGURE}" +        COMMAND +            /bin/sh "${LIBUSB_SRC_DIR}/bootstrap.sh" +        WORKING_DIRECTORY +            "${LIBUSB_SRC_DIR}"      ) -    set(OS_DARWIN TRUE) -elseif(ANDROID) -    target_sources(usb PRIVATE -        libusb/libusb/os/linux_usbfs.c -        libusb/libusb/os/linux_netlink.c + +    add_custom_command( +        OUTPUT +            "${LIBUSB_SHARED_LIBRARY_DEST}" +        COMMAND +            /bin/cp "${LIBUSB_SHARED_LIBRARY}" "${LIBUSB_SHARED_LIBRARY_DEST}"      ) -    find_library(LOG_LIBRARY log) -    target_link_libraries(usb PRIVATE ${LOG_LIBRARY}) -    set(OS_LINUX TRUE) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") -    target_sources(usb PRIVATE -        libusb/libusb/os/linux_usbfs.c + +    add_custom_target(usb-bootstrap ALL DEPENDS "${LIBUSB_CONFIGURE}") +    add_custom_target(usb-configure ALL DEPENDS "${LIBUSB_MAKEFILE}" usb-bootstrap) +    add_custom_target(usb-build ALL DEPENDS "${LIBUSB_LIBRARY}" usb-configure) +    # Workaround since static linking didn't work out -- We need to copy the DLL to the bin directory +    add_custom_target(usb-copy ALL DEPENDS "${LIBUSB_SHARED_LIBRARY_DEST}" usb-build) + +    # Make `usb` alias to LIBUSB_LIBRARY +    add_library(usb INTERFACE) +    target_link_libraries(usb INTERFACE "${LIBUSB_LIBRARY}") +else() # MINGW +    # Ensure libusb compiles with UTF-8 encoding on MSVC +    if(MSVC) +        add_compile_options(/utf-8) +    endif() + +    add_library(usb STATIC EXCLUDE_FROM_ALL +        libusb/libusb/core.c +        libusb/libusb/core.c +        libusb/libusb/descriptor.c +        libusb/libusb/hotplug.c +        libusb/libusb/io.c +        libusb/libusb/strerror.c +        libusb/libusb/sync.c      ) -    find_package(Libudev) -    if(LIBUDEV_FOUND) -        target_sources(usb PRIVATE -            libusb/libusb/os/linux_udev.c +    set_target_properties(usb PROPERTIES VERSION 1.0.24) +    if(WIN32) +        target_include_directories(usb +            BEFORE +            PUBLIC +              libusb/libusb + +            PRIVATE +              "${CMAKE_CURRENT_BINARY_DIR}"          ) -        target_link_libraries(usb PRIVATE "${LIBUDEV_LIBRARIES}") -        target_include_directories(usb PRIVATE "${LIBUDEV_INCLUDE_DIR}") -        set(HAVE_LIBUDEV TRUE) -        set(USE_UDEV TRUE) + +        if (NOT MINGW) +            target_include_directories(usb BEFORE PRIVATE libusb/msvc) +        endif() + +        # Works around other libraries providing their own definition of USB GUIDs (e.g. SDL2) +        target_compile_definitions(usb PRIVATE "-DGUID_DEVINTERFACE_USB_DEVICE=(GUID){ 0xA5DCBF10, 0x6530, 0x11D2, {0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED}}")      else() +        target_include_directories(usb +            # turns out other projects also have "config.h", so make sure the +            # LibUSB one comes first +            BEFORE + +            PUBLIC +              libusb/libusb + +            PRIVATE +              "${CMAKE_CURRENT_BINARY_DIR}" +        ) +    endif() + +    if(WIN32 OR CYGWIN) +        target_sources(usb PRIVATE +          libusb/libusb/os/threads_windows.c +          libusb/libusb/os/windows_winusb.c +          libusb/libusb/os/windows_usbdk.c +          libusb/libusb/os/windows_common.c +        ) +        set(OS_WINDOWS TRUE) +    elseif(APPLE) +        target_sources(usb PRIVATE +            libusb/libusb/os/darwin_usb.c +        ) +        find_library(COREFOUNDATION_LIBRARY CoreFoundation) +        find_library(IOKIT_LIBRARY IOKit) +        find_library(OBJC_LIBRARY objc) +        target_link_libraries(usb PRIVATE +            ${COREFOUNDATION_LIBRARY} +            ${IOKIT_LIBRARY} +            ${OBJC_LIBRARY} +        ) +        set(OS_DARWIN TRUE) +    elseif(ANDROID)          target_sources(usb PRIVATE +            libusb/libusb/os/linux_usbfs.c              libusb/libusb/os/linux_netlink.c          ) +        find_library(LOG_LIBRARY log) +        target_link_libraries(usb PRIVATE ${LOG_LIBRARY}) +        set(OS_LINUX TRUE) +    elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") +        target_sources(usb PRIVATE +            libusb/libusb/os/linux_usbfs.c +        ) +        find_package(Libudev) +        if(LIBUDEV_FOUND) +            target_sources(usb PRIVATE +                libusb/libusb/os/linux_udev.c +            ) +            target_link_libraries(usb PRIVATE "${LIBUDEV_LIBRARIES}") +            target_include_directories(usb PRIVATE "${LIBUDEV_INCLUDE_DIR}") +            set(HAVE_LIBUDEV TRUE) +            set(USE_UDEV TRUE) +        else() +            target_sources(usb PRIVATE +                libusb/libusb/os/linux_netlink.c +            ) +        endif() +        set(OS_LINUX TRUE) +    elseif(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD") +        target_sources(usb PRIVATE +            libusb/libusb/os/netbsd_usb.c +        ) +        set(OS_NETBSD TRUE) +    elseif(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") +        target_sources(usb PRIVATE +            libusb/libusb/os/openbsd_usb.c +        ) +        set(OS_OPENBSD TRUE)      endif() -    set(OS_LINUX TRUE) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD") -    target_sources(usb PRIVATE -        libusb/libusb/os/netbsd_usb.c -    ) -    set(OS_NETBSD TRUE) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") -    target_sources(usb PRIVATE -        libusb/libusb/os/openbsd_usb.c -    ) -    set(OS_OPENBSD TRUE) -endif() -if(UNIX) -    target_sources(usb PRIVATE -        libusb/libusb/os/poll_posix.c -        libusb/libusb/os/threads_posix.c -    ) -    find_package(Threads REQUIRED) -    if(THREADS_HAVE_PTHREAD_ARG) -      target_compile_options(usb PUBLIC "-pthread") +    if(UNIX) +        target_sources(usb PRIVATE +            libusb/libusb/os/events_posix.c +            libusb/libusb/os/threads_posix.c +        ) +        find_package(Threads REQUIRED) +        if(THREADS_HAVE_PTHREAD_ARG) +          target_compile_options(usb PUBLIC "-pthread") +        endif() +        if(CMAKE_THREAD_LIBS_INIT) +          target_link_libraries(usb PRIVATE "${CMAKE_THREAD_LIBS_INIT}") +        endif() +        set(THREADS_POSIX TRUE) +    elseif(WIN32) +        target_sources(usb PRIVATE +            libusb/libusb/os/events_windows.c +            libusb/libusb/os/threads_windows.c +        )      endif() -    if(CMAKE_THREAD_LIBS_INIT) -      target_link_libraries(usb PRIVATE "${CMAKE_THREAD_LIBS_INIT}") + +    include(CheckFunctionExists) +    include(CheckIncludeFiles) +    include(CheckTypeSize) +    check_include_files(asm/types.h HAVE_ASM_TYPES_H) +    check_function_exists(gettimeofday HAVE_GETTIMEOFDAY) +    check_include_files(linux/filter.h HAVE_LINUX_FILTER_H) +    check_include_files(linux/netlink.h HAVE_LINUX_NETLINK_H) +    check_include_files(poll.h HAVE_POLL_H) +    check_include_files(signal.h HAVE_SIGNAL_H) +    check_include_files(strings.h HAVE_STRINGS_H) +    check_type_size("struct timespec" STRUCT_TIMESPEC) +    check_function_exists(syslog HAVE_SYSLOG_FUNC) +    check_include_files(syslog.h HAVE_SYSLOG_H) +    check_include_files(sys/socket.h HAVE_SYS_SOCKET_H) +    check_include_files(sys/time.h HAVE_SYS_TIME_H) +    check_include_files(sys/types.h HAVE_SYS_TYPES_H) + +    set(CMAKE_EXTRA_INCLUDE_FILES poll.h) +    check_type_size("nfds_t" nfds_t) +    unset(CMAKE_EXTRA_INCLUDE_FILES) +    if(HAVE_NFDS_T) +        set(POLL_NFDS_TYPE "nfds_t") +    else() +        set(POLL_NFDS_TYPE "unsigned int")      endif() -    set(THREADS_POSIX TRUE) -elseif(WIN32) -    target_sources(usb PRIVATE -        libusb/libusb/os/poll_windows.c -        libusb/libusb/os/threads_windows.c -    ) -endif() - -include(CheckFunctionExists) -include(CheckIncludeFiles) -include(CheckTypeSize) -check_include_files(asm/types.h HAVE_ASM_TYPES_H) -check_function_exists(gettimeofday HAVE_GETTIMEOFDAY) -check_include_files(linux/filter.h HAVE_LINUX_FILTER_H) -check_include_files(linux/netlink.h HAVE_LINUX_NETLINK_H) -check_include_files(poll.h HAVE_POLL_H) -check_include_files(signal.h HAVE_SIGNAL_H) -check_include_files(strings.h HAVE_STRINGS_H) -check_type_size("struct timespec" STRUCT_TIMESPEC) -check_function_exists(syslog HAVE_SYSLOG_FUNC) -check_include_files(syslog.h HAVE_SYSLOG_H) -check_include_files(sys/socket.h HAVE_SYS_SOCKET_H) -check_include_files(sys/time.h HAVE_SYS_TIME_H) -check_include_files(sys/types.h HAVE_SYS_TYPES_H) - -set(CMAKE_EXTRA_INCLUDE_FILES poll.h) -check_type_size("nfds_t" nfds_t) -unset(CMAKE_EXTRA_INCLUDE_FILES) -if(HAVE_NFDS_T) -    set(POLL_NFDS_TYPE "nfds_t") -else() -    set(POLL_NFDS_TYPE "unsigned int") -endif() - -check_include_files(sys/timerfd.h USBI_TIMERFD_AVAILABLE) - - -configure_file(config.h.in config.h) + +    check_include_files(sys/timerfd.h USBI_TIMERFD_AVAILABLE) + + +    configure_file(config.h.in config.h) +endif() # MINGW diff --git a/externals/libusb/libusb b/externals/libusb/libusb -Subproject e782eeb2514266f6738e242cdcb18e3ae1ed06f +Subproject c6a35c56016ea2ab2f19115d2ea1e85e0edae15 diff --git a/src/audio_core/audio_renderer.cpp b/src/audio_core/audio_renderer.cpp index ae2201c36..80ffddb10 100644 --- a/src/audio_core/audio_renderer.cpp +++ b/src/audio_core/audio_renderer.cpp @@ -197,7 +197,7 @@ ResultCode AudioRenderer::UpdateAudioRenderer(const std::vector<u8>& input_param      ReleaseAndQueueBuffers(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void AudioRenderer::QueueMixedBuffer(Buffer::Tag tag) { diff --git a/src/audio_core/info_updater.cpp b/src/audio_core/info_updater.cpp index d3ac90827..4a5b1b4ab 100644 --- a/src/audio_core/info_updater.cpp +++ b/src/audio_core/info_updater.cpp @@ -407,7 +407,7 @@ ResultCode InfoUpdater::UpdateMixes(MixContext& mix_context, std::size_t mix_buf      // TODO(ogniK): Sort when splitter is suppoorted -    return RESULT_SUCCESS; +    return ResultSuccess;  }  bool InfoUpdater::UpdateSinks(SinkContext& sink_context) { diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index eafb96b0b..7a4d9e354 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -154,6 +154,7 @@ add_library(common STATIC      param_package.cpp      param_package.h      parent_of_member.h +    point.h      quaternion.h      ring_buffer.h      scm_rev.cpp diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index 17d1ee86b..53bd7da60 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h @@ -97,17 +97,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void);          return static_cast<T>(key) == 0;                                                           \      } -/// Evaluates a boolean expression, and returns a result unless that expression is true. -#define R_UNLESS(expr, res)                                                                        \ -    {                                                                                              \ -        if (!(expr)) {                                                                             \ -            if (res.IsError()) {                                                                   \ -                LOG_ERROR(Kernel, "Failed with result: {}", res.raw);                              \ -            }                                                                                      \ -            return res;                                                                            \ -        }                                                                                          \ -    } -  #define YUZU_NON_COPYABLE(cls)                                                                     \      cls(const cls&) = delete;                                                                      \      cls& operator=(const cls&) = delete @@ -116,20 +105,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void);      cls(cls&&) = delete;                                                                           \      cls& operator=(cls&&) = delete -#define R_SUCCEEDED(res) (res.IsSuccess()) - -/// Evaluates an expression that returns a result, and returns the result if it would fail. -#define R_TRY(res_expr)                                                                            \ -    {                                                                                              \ -        const auto _tmp_r_try_rc = (res_expr);                                                     \ -        if (_tmp_r_try_rc.IsError()) {                                                             \ -            return _tmp_r_try_rc;                                                                  \ -        }                                                                                          \ -    } - -/// Evaluates a boolean expression, and succeeds if that expression is true. -#define R_SUCCEED_IF(expr) R_UNLESS(!(expr), RESULT_SUCCESS) -  namespace Common {  [[nodiscard]] constexpr u32 MakeMagic(char a, char b, char c, char d) { diff --git a/src/common/fs/fs_util.cpp b/src/common/fs/fs_util.cpp index 0ddfc3131..357cf5855 100644 --- a/src/common/fs/fs_util.cpp +++ b/src/common/fs/fs_util.cpp @@ -2,6 +2,8 @@  // Licensed under GPLv2 or any later version  // Refer to the license.txt file included. +#include <algorithm> +  #include "common/fs/fs_util.h"  namespace Common::FS { @@ -10,4 +12,16 @@ std::u8string ToU8String(std::string_view utf8_string) {      return std::u8string{utf8_string.begin(), utf8_string.end()};  } +std::u8string BufferToU8String(std::span<const u8> buffer) { +    return std::u8string{buffer.begin(), std::ranges::find(buffer, u8{0})}; +} + +std::string ToUTF8String(std::u8string_view u8_string) { +    return std::string{u8_string.begin(), u8_string.end()}; +} + +std::string PathToUTF8String(const std::filesystem::path& path) { +    return ToUTF8String(path.u8string()); +} +  } // namespace Common::FS diff --git a/src/common/fs/fs_util.h b/src/common/fs/fs_util.h index 951df53b6..ec9950ee7 100644 --- a/src/common/fs/fs_util.h +++ b/src/common/fs/fs_util.h @@ -5,9 +5,13 @@  #pragma once  #include <concepts> +#include <filesystem> +#include <span>  #include <string>  #include <string_view> +#include "common/common_types.h" +  namespace Common::FS {  template <typename T> @@ -22,4 +26,33 @@ concept IsChar = std::same_as<T, char>;   */  [[nodiscard]] std::u8string ToU8String(std::string_view utf8_string); +/** + * Converts a buffer of bytes to a UTF8-encoded std::u8string. + * This converts from the start of the buffer until the first encountered null-terminator. + * If no null-terminator is found, this converts the entire buffer instead. + * + * @param buffer Buffer of bytes + * + * @returns UTF-8 encoded std::u8string. + */ +[[nodiscard]] std::u8string BufferToU8String(std::span<const u8> buffer); + +/** + * Converts a std::u8string or std::u8string_view to a UTF-8 encoded std::string. + * + * @param u8_string UTF-8 encoded u8string + * + * @returns UTF-8 encoded std::string. + */ +[[nodiscard]] std::string ToUTF8String(std::u8string_view u8_string); + +/** + * Converts a filesystem path to a UTF-8 encoded std::string. + * + * @param path Filesystem path + * + * @returns UTF-8 encoded std::string. + */ +[[nodiscard]] std::string PathToUTF8String(const std::filesystem::path& path); +  } // namespace Common::FS diff --git a/src/common/fs/path_util.cpp b/src/common/fs/path_util.cpp index 8b732a21c..6cdd14f13 100644 --- a/src/common/fs/path_util.cpp +++ b/src/common/fs/path_util.cpp @@ -129,12 +129,6 @@ private:      std::unordered_map<YuzuPath, fs::path> yuzu_paths;  }; -std::string PathToUTF8String(const fs::path& path) { -    const auto utf8_string = path.u8string(); - -    return std::string{utf8_string.begin(), utf8_string.end()}; -} -  bool ValidatePath(const fs::path& path) {      if (path.empty()) {          LOG_ERROR(Common_Filesystem, "Input path is empty, path={}", PathToUTF8String(path)); diff --git a/src/common/fs/path_util.h b/src/common/fs/path_util.h index a9fadbceb..14e8c35d7 100644 --- a/src/common/fs/path_util.h +++ b/src/common/fs/path_util.h @@ -26,15 +26,6 @@ enum class YuzuPath {  };  /** - * Converts a filesystem path to a UTF-8 encoded std::string. - * - * @param path Filesystem path - * - * @returns UTF-8 encoded std::string. - */ -[[nodiscard]] std::string PathToUTF8String(const std::filesystem::path& path); - -/**   * Validates a given path.   *   * A given path is valid if it meets these conditions: diff --git a/src/common/page_table.cpp b/src/common/page_table.cpp index 8fd8620fd..9fffd816f 100644 --- a/src/common/page_table.cpp +++ b/src/common/page_table.cpp @@ -14,6 +14,7 @@ void PageTable::Resize(size_t address_space_width_in_bits, size_t page_size_in_b      const size_t num_page_table_entries{1ULL << (address_space_width_in_bits - page_size_in_bits)};      pointers.resize(num_page_table_entries);      backing_addr.resize(num_page_table_entries); +    current_address_space_width_in_bits = address_space_width_in_bits;  }  } // namespace Common diff --git a/src/common/page_table.h b/src/common/page_table.h index 61c5552e0..e92b66b2b 100644 --- a/src/common/page_table.h +++ b/src/common/page_table.h @@ -98,6 +98,10 @@ struct PageTable {       */      void Resize(size_t address_space_width_in_bits, size_t page_size_in_bits); +    size_t GetAddressSpaceBits() const { +        return current_address_space_width_in_bits; +    } +      /**       * Vector of memory pointers backing each page. An entry can only be non-null if the       * corresponding attribute element is of type `Memory`. @@ -105,6 +109,8 @@ struct PageTable {      VirtualBuffer<PageInfo> pointers;      VirtualBuffer<u64> backing_addr; + +    size_t current_address_space_width_in_bits;  };  } // namespace Common diff --git a/src/common/point.h b/src/common/point.h new file mode 100644 index 000000000..c0a52ad8d --- /dev/null +++ b/src/common/point.h @@ -0,0 +1,57 @@ +// Copyright 2021 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <type_traits> + +namespace Common { + +// Represents a point within a 2D space. +template <typename T> +struct Point { +    static_assert(std::is_arithmetic_v<T>, "T must be an arithmetic type!"); + +    T x{}; +    T y{}; + +#define ARITHMETIC_OP(op, compound_op)                                                             \ +    friend constexpr Point operator op(const Point& lhs, const Point& rhs) noexcept {              \ +        return {                                                                                   \ +            .x = static_cast<T>(lhs.x op rhs.x),                                                   \ +            .y = static_cast<T>(lhs.y op rhs.y),                                                   \ +        };                                                                                         \ +    }                                                                                              \ +    friend constexpr Point operator op(const Point& lhs, T value) noexcept {                       \ +        return {                                                                                   \ +            .x = static_cast<T>(lhs.x op value),                                                   \ +            .y = static_cast<T>(lhs.y op value),                                                   \ +        };                                                                                         \ +    }                                                                                              \ +    friend constexpr Point operator op(T value, const Point& rhs) noexcept {                       \ +        return {                                                                                   \ +            .x = static_cast<T>(value op rhs.x),                                                   \ +            .y = static_cast<T>(value op rhs.y),                                                   \ +        };                                                                                         \ +    }                                                                                              \ +    friend constexpr Point& operator compound_op(Point& lhs, const Point& rhs) noexcept {          \ +        lhs.x = static_cast<T>(lhs.x op rhs.x);                                                    \ +        lhs.y = static_cast<T>(lhs.y op rhs.y);                                                    \ +        return lhs;                                                                                \ +    }                                                                                              \ +    friend constexpr Point& operator compound_op(Point& lhs, T value) noexcept {                   \ +        lhs.x = static_cast<T>(lhs.x op value);                                                    \ +        lhs.y = static_cast<T>(lhs.y op value);                                                    \ +        return lhs;                                                                                \ +    } +    ARITHMETIC_OP(+, +=) +    ARITHMETIC_OP(-, -=) +    ARITHMETIC_OP(*, *=) +    ARITHMETIC_OP(/, /=) +#undef ARITHMETIC_OP + +    friend constexpr bool operator==(const Point&, const Point&) = default; +}; + +} // namespace Common diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp index e5b78210a..cea7f0fb1 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp @@ -24,45 +24,46 @@ namespace Core {  class DynarmicCallbacks32 : public Dynarmic::A32::UserCallbacks {  public: -    explicit DynarmicCallbacks32(ARM_Dynarmic_32& parent_) : parent{parent_} {} +    explicit DynarmicCallbacks32(ARM_Dynarmic_32& parent_) +        : parent{parent_}, memory(parent.system.Memory()) {}      u8 MemoryRead8(u32 vaddr) override { -        return parent.system.Memory().Read8(vaddr); +        return memory.Read8(vaddr);      }      u16 MemoryRead16(u32 vaddr) override { -        return parent.system.Memory().Read16(vaddr); +        return memory.Read16(vaddr);      }      u32 MemoryRead32(u32 vaddr) override { -        return parent.system.Memory().Read32(vaddr); +        return memory.Read32(vaddr);      }      u64 MemoryRead64(u32 vaddr) override { -        return parent.system.Memory().Read64(vaddr); +        return memory.Read64(vaddr);      }      void MemoryWrite8(u32 vaddr, u8 value) override { -        parent.system.Memory().Write8(vaddr, value); +        memory.Write8(vaddr, value);      }      void MemoryWrite16(u32 vaddr, u16 value) override { -        parent.system.Memory().Write16(vaddr, value); +        memory.Write16(vaddr, value);      }      void MemoryWrite32(u32 vaddr, u32 value) override { -        parent.system.Memory().Write32(vaddr, value); +        memory.Write32(vaddr, value);      }      void MemoryWrite64(u32 vaddr, u64 value) override { -        parent.system.Memory().Write64(vaddr, value); +        memory.Write64(vaddr, value);      }      bool MemoryWriteExclusive8(u32 vaddr, u8 value, u8 expected) override { -        return parent.system.Memory().WriteExclusive8(vaddr, value, expected); +        return memory.WriteExclusive8(vaddr, value, expected);      }      bool MemoryWriteExclusive16(u32 vaddr, u16 value, u16 expected) override { -        return parent.system.Memory().WriteExclusive16(vaddr, value, expected); +        return memory.WriteExclusive16(vaddr, value, expected);      }      bool MemoryWriteExclusive32(u32 vaddr, u32 value, u32 expected) override { -        return parent.system.Memory().WriteExclusive32(vaddr, value, expected); +        return memory.WriteExclusive32(vaddr, value, expected);      }      bool MemoryWriteExclusive64(u32 vaddr, u64 value, u64 expected) override { -        return parent.system.Memory().WriteExclusive64(vaddr, value, expected); +        return memory.WriteExclusive64(vaddr, value, expected);      }      void InterpreterFallback(u32 pc, std::size_t num_instructions) override { @@ -112,6 +113,7 @@ public:      }      ARM_Dynarmic_32& parent; +    Core::Memory::Memory& memory;      std::size_t num_interpreted_instructions{};      static constexpr u64 minimum_run_cycles = 1000U;  }; diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp index dd439f55e..63193dcb1 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp @@ -27,57 +27,56 @@ using Vector = Dynarmic::A64::Vector;  class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks {  public: -    explicit DynarmicCallbacks64(ARM_Dynarmic_64& parent_) : parent{parent_} {} +    explicit DynarmicCallbacks64(ARM_Dynarmic_64& parent_) +        : parent{parent_}, memory(parent.system.Memory()) {}      u8 MemoryRead8(u64 vaddr) override { -        return parent.system.Memory().Read8(vaddr); +        return memory.Read8(vaddr);      }      u16 MemoryRead16(u64 vaddr) override { -        return parent.system.Memory().Read16(vaddr); +        return memory.Read16(vaddr);      }      u32 MemoryRead32(u64 vaddr) override { -        return parent.system.Memory().Read32(vaddr); +        return memory.Read32(vaddr);      }      u64 MemoryRead64(u64 vaddr) override { -        return parent.system.Memory().Read64(vaddr); +        return memory.Read64(vaddr);      }      Vector MemoryRead128(u64 vaddr) override { -        auto& memory = parent.system.Memory();          return {memory.Read64(vaddr), memory.Read64(vaddr + 8)};      }      void MemoryWrite8(u64 vaddr, u8 value) override { -        parent.system.Memory().Write8(vaddr, value); +        memory.Write8(vaddr, value);      }      void MemoryWrite16(u64 vaddr, u16 value) override { -        parent.system.Memory().Write16(vaddr, value); +        memory.Write16(vaddr, value);      }      void MemoryWrite32(u64 vaddr, u32 value) override { -        parent.system.Memory().Write32(vaddr, value); +        memory.Write32(vaddr, value);      }      void MemoryWrite64(u64 vaddr, u64 value) override { -        parent.system.Memory().Write64(vaddr, value); +        memory.Write64(vaddr, value);      }      void MemoryWrite128(u64 vaddr, Vector value) override { -        auto& memory = parent.system.Memory();          memory.Write64(vaddr, value[0]);          memory.Write64(vaddr + 8, value[1]);      }      bool MemoryWriteExclusive8(u64 vaddr, std::uint8_t value, std::uint8_t expected) override { -        return parent.system.Memory().WriteExclusive8(vaddr, value, expected); +        return memory.WriteExclusive8(vaddr, value, expected);      }      bool MemoryWriteExclusive16(u64 vaddr, std::uint16_t value, std::uint16_t expected) override { -        return parent.system.Memory().WriteExclusive16(vaddr, value, expected); +        return memory.WriteExclusive16(vaddr, value, expected);      }      bool MemoryWriteExclusive32(u64 vaddr, std::uint32_t value, std::uint32_t expected) override { -        return parent.system.Memory().WriteExclusive32(vaddr, value, expected); +        return memory.WriteExclusive32(vaddr, value, expected);      }      bool MemoryWriteExclusive64(u64 vaddr, std::uint64_t value, std::uint64_t expected) override { -        return parent.system.Memory().WriteExclusive64(vaddr, value, expected); +        return memory.WriteExclusive64(vaddr, value, expected);      }      bool MemoryWriteExclusive128(u64 vaddr, Vector value, Vector expected) override { -        return parent.system.Memory().WriteExclusive128(vaddr, value, expected); +        return memory.WriteExclusive128(vaddr, value, expected);      }      void InterpreterFallback(u64 pc, std::size_t num_instructions) override { @@ -139,6 +138,7 @@ public:      }      ARM_Dynarmic_64& parent; +    Core::Memory::Memory& memory;      u64 tpidrro_el0 = 0;      u64 tpidr_el0 = 0;      static constexpr u64 minimum_run_cycles = 1000U; diff --git a/src/core/file_sys/romfs_factory.cpp b/src/core/file_sys/romfs_factory.cpp index aa7f3072f..638c6cea8 100644 --- a/src/core/file_sys/romfs_factory.cpp +++ b/src/core/file_sys/romfs_factory.cpp @@ -53,7 +53,7 @@ ResultVal<VirtualFile> RomFSFactory::OpenPatchedRomFS(u64 title_id, ContentRecor      if (nca == nullptr) {          // TODO: Find the right error code to use here -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      const PatchManager patch_manager{title_id, filesystem_controller, content_provider}; @@ -74,13 +74,13 @@ ResultVal<VirtualFile> RomFSFactory::Open(u64 title_id, StorageId storage,      const std::shared_ptr<NCA> res = GetEntry(title_id, storage, type);      if (res == nullptr) {          // TODO(DarkLordZach): Find the right error code to use here -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      const auto romfs = res->GetRomFS();      if (romfs == nullptr) {          // TODO(DarkLordZach): Find the right error code to use here -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      return MakeResult<VirtualFile>(romfs); diff --git a/src/core/file_sys/savedata_factory.cpp b/src/core/file_sys/savedata_factory.cpp index f973d1d21..b5254dd75 100644 --- a/src/core/file_sys/savedata_factory.cpp +++ b/src/core/file_sys/savedata_factory.cpp @@ -91,7 +91,7 @@ ResultVal<VirtualDir> SaveDataFactory::Create(SaveDataSpaceId space,      // Return an error if the save data doesn't actually exist.      if (out == nullptr) {          // TODO(DarkLordZach): Find out correct error code. -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      return MakeResult<VirtualDir>(std::move(out)); @@ -105,14 +105,14 @@ ResultVal<VirtualDir> SaveDataFactory::Open(SaveDataSpaceId space,      auto out = dir->GetDirectoryRelative(save_directory); -    if (out == nullptr && ShouldSaveDataBeAutomaticallyCreated(space, meta)) { +    if (out == nullptr && (ShouldSaveDataBeAutomaticallyCreated(space, meta) && auto_create)) {          return Create(space, meta);      }      // Return an error if the save data doesn't actually exist.      if (out == nullptr) {          // TODO(Subv): Find out correct error code. -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      return MakeResult<VirtualDir>(std::move(out)); @@ -199,4 +199,8 @@ void SaveDataFactory::WriteSaveDataSize(SaveDataType type, u64 title_id, u128 us      size_file->WriteObject(new_value);  } +void SaveDataFactory::SetAutoCreate(bool state) { +    auto_create = state; +} +  } // namespace FileSys diff --git a/src/core/file_sys/savedata_factory.h b/src/core/file_sys/savedata_factory.h index 86c9f5350..1d8dc981f 100644 --- a/src/core/file_sys/savedata_factory.h +++ b/src/core/file_sys/savedata_factory.h @@ -104,9 +104,12 @@ public:      void WriteSaveDataSize(SaveDataType type, u64 title_id, u128 user_id,                             SaveDataSize new_value) const; +    void SetAutoCreate(bool state); +  private:      VirtualDir dir;      Core::System& system; +    bool auto_create{true};  };  } // namespace FileSys diff --git a/src/core/frontend/input.h b/src/core/frontend/input.h index 0c5d2b3b0..7a047803e 100644 --- a/src/core/frontend/input.h +++ b/src/core/frontend/input.h @@ -27,6 +27,10 @@ struct AnalogProperties {      float range;      float threshold;  }; +template <typename StatusType> +struct InputCallback { +    std::function<void(StatusType)> on_change; +};  /// An abstract class template for an input device (a button, an analog input, etc.).  template <typename StatusType> @@ -50,6 +54,17 @@ public:                                 [[maybe_unused]] f32 freq_high) const {          return {};      } +    void SetCallback(InputCallback<StatusType> callback_) { +        callback = std::move(callback_); +    } +    void TriggerOnChange() { +        if (callback.on_change) { +            callback.on_change(GetStatus()); +        } +    } + +private: +    InputCallback<StatusType> callback;  };  /// An abstract class template for a factory that can create input devices. diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp index 9d069a78f..2b5c30f7a 100644 --- a/src/core/hle/kernel/hle_ipc.cpp +++ b/src/core/hle/kernel/hle_ipc.cpp @@ -169,12 +169,12 @@ ResultCode HLERequestContext::PopulateFromIncomingCommandBuffer(const KHandleTab      if (command_header->IsCloseCommand()) {          // Close does not populate the rest of the IPC header -        return RESULT_SUCCESS; +        return ResultSuccess;      }      std::copy_n(src_cmdbuf, IPC::COMMAND_BUFFER_LENGTH, cmd_buf.begin()); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode HLERequestContext::WriteToOutgoingCommandBuffer(KThread& requesting_thread) { @@ -216,7 +216,7 @@ ResultCode HLERequestContext::WriteToOutgoingCommandBuffer(KThread& requesting_t      memory.WriteBlock(owner_process, requesting_thread.GetTLSAddress(), cmd_buf.data(),                        write_size * sizeof(u32)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  std::vector<u8> HLERequestContext::ReadBuffer(std::size_t buffer_index) const { diff --git a/src/core/hle/kernel/k_address_arbiter.cpp b/src/core/hle/kernel/k_address_arbiter.cpp index 7018f56da..1b429bc1e 100644 --- a/src/core/hle/kernel/k_address_arbiter.cpp +++ b/src/core/hle/kernel/k_address_arbiter.cpp @@ -97,7 +97,7 @@ ResultCode KAddressArbiter::Signal(VAddr addr, s32 count) {          while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&                 (it->GetAddressArbiterKey() == addr)) {              KThread* target_thread = std::addressof(*it); -            target_thread->SetSyncedObject(nullptr, RESULT_SUCCESS); +            target_thread->SetSyncedObject(nullptr, ResultSuccess);              ASSERT(target_thread->IsWaitingForAddressArbiter());              target_thread->Wakeup(); @@ -107,7 +107,7 @@ ResultCode KAddressArbiter::Signal(VAddr addr, s32 count) {              ++num_waiters;          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KAddressArbiter::SignalAndIncrementIfEqual(VAddr addr, s32 value, s32 count) { @@ -130,7 +130,7 @@ ResultCode KAddressArbiter::SignalAndIncrementIfEqual(VAddr addr, s32 value, s32          while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&                 (it->GetAddressArbiterKey() == addr)) {              KThread* target_thread = std::addressof(*it); -            target_thread->SetSyncedObject(nullptr, RESULT_SUCCESS); +            target_thread->SetSyncedObject(nullptr, ResultSuccess);              ASSERT(target_thread->IsWaitingForAddressArbiter());              target_thread->Wakeup(); @@ -140,7 +140,7 @@ ResultCode KAddressArbiter::SignalAndIncrementIfEqual(VAddr addr, s32 value, s32              ++num_waiters;          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KAddressArbiter::SignalAndModifyByWaitingCountIfEqual(VAddr addr, s32 value, s32 count) { @@ -198,7 +198,7 @@ ResultCode KAddressArbiter::SignalAndModifyByWaitingCountIfEqual(VAddr addr, s32          while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&                 (it->GetAddressArbiterKey() == addr)) {              KThread* target_thread = std::addressof(*it); -            target_thread->SetSyncedObject(nullptr, RESULT_SUCCESS); +            target_thread->SetSyncedObject(nullptr, ResultSuccess);              ASSERT(target_thread->IsWaitingForAddressArbiter());              target_thread->Wakeup(); @@ -208,7 +208,7 @@ ResultCode KAddressArbiter::SignalAndModifyByWaitingCountIfEqual(VAddr addr, s32              ++num_waiters;          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KAddressArbiter::WaitIfLessThan(VAddr addr, s32 value, bool decrement, s64 timeout) { diff --git a/src/core/hle/kernel/k_address_arbiter.h b/src/core/hle/kernel/k_address_arbiter.h index 8d379b524..bf8b46665 100644 --- a/src/core/hle/kernel/k_address_arbiter.h +++ b/src/core/hle/kernel/k_address_arbiter.h @@ -37,7 +37,7 @@ public:              return SignalAndModifyByWaitingCountIfEqual(addr, value, count);          }          UNREACHABLE(); -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      [[nodiscard]] ResultCode WaitForAddress(VAddr addr, Svc::ArbitrationType type, s32 value, @@ -51,7 +51,7 @@ public:              return WaitIfEqual(addr, value, timeout);          }          UNREACHABLE(); -        return RESULT_UNKNOWN; +        return ResultUnknown;      }  private: diff --git a/src/core/hle/kernel/k_class_token.cpp b/src/core/hle/kernel/k_class_token.cpp index beb8a2a05..0be0027be 100644 --- a/src/core/hle/kernel/k_class_token.cpp +++ b/src/core/hle/kernel/k_class_token.cpp @@ -84,50 +84,43 @@ static_assert(ClassToken<KTransferMemory> == ((0b10010001 << 8) | ClassToken<KAu  // Ensure that the token hierarchy reflects the class hierarchy.  // Base classes. -static_assert(!std::is_final<KSynchronizationObject>::value && -              std::is_base_of<KAutoObject, KSynchronizationObject>::value); -static_assert(!std::is_final<KReadableEvent>::value && -              std::is_base_of<KSynchronizationObject, KReadableEvent>::value); +static_assert(!std::is_final_v<KSynchronizationObject> && +              std::is_base_of_v<KAutoObject, KSynchronizationObject>); +static_assert(!std::is_final_v<KReadableEvent> && +              std::is_base_of_v<KSynchronizationObject, KReadableEvent>);  // Final classes -// static_assert(std::is_final<KInterruptEvent>::value && -//              std::is_base_of<KReadableEvent, KInterruptEvent>::value); -// static_assert(std::is_final<KDebug>::value && -//              std::is_base_of<KSynchronizationObject, KDebug>::value); -static_assert(std::is_final<KThread>::value && -              std::is_base_of<KSynchronizationObject, KThread>::value); -static_assert(std::is_final<KServerPort>::value && -              std::is_base_of<KSynchronizationObject, KServerPort>::value); -static_assert(std::is_final<KServerSession>::value && -              std::is_base_of<KSynchronizationObject, KServerSession>::value); -static_assert(std::is_final<KClientPort>::value && -              std::is_base_of<KSynchronizationObject, KClientPort>::value); -static_assert(std::is_final<KClientSession>::value && -              std::is_base_of<KAutoObject, KClientSession>::value); -static_assert(std::is_final<KProcess>::value && -              std::is_base_of<KSynchronizationObject, KProcess>::value); -static_assert(std::is_final<KResourceLimit>::value && -              std::is_base_of<KAutoObject, KResourceLimit>::value); -// static_assert(std::is_final<KLightSession>::value && -//              std::is_base_of<KAutoObject, KLightSession>::value); -static_assert(std::is_final<KPort>::value && std::is_base_of<KAutoObject, KPort>::value); -static_assert(std::is_final<KSession>::value && std::is_base_of<KAutoObject, KSession>::value); -static_assert(std::is_final<KSharedMemory>::value && -              std::is_base_of<KAutoObject, KSharedMemory>::value); -static_assert(std::is_final<KEvent>::value && std::is_base_of<KAutoObject, KEvent>::value); -static_assert(std::is_final<KWritableEvent>::value && -              std::is_base_of<KAutoObject, KWritableEvent>::value); -// static_assert(std::is_final<KLightClientSession>::value && -//              std::is_base_of<KAutoObject, KLightClientSession>::value); -// static_assert(std::is_final<KLightServerSession>::value && -//              std::is_base_of<KAutoObject, KLightServerSession>::value); -static_assert(std::is_final<KTransferMemory>::value && -              std::is_base_of<KAutoObject, KTransferMemory>::value); -// static_assert(std::is_final<KDeviceAddressSpace>::value && -//              std::is_base_of<KAutoObject, KDeviceAddressSpace>::value); -// static_assert(std::is_final<KSessionRequest>::value && -//              std::is_base_of<KAutoObject, KSessionRequest>::value); -// static_assert(std::is_final<KCodeMemory>::value && -//              std::is_base_of<KAutoObject, KCodeMemory>::value); +// static_assert(std::is_final_v<KInterruptEvent> && +//              std::is_base_of_v<KReadableEvent, KInterruptEvent>); +// static_assert(std::is_final_v<KDebug> && +//              std::is_base_of_v<KSynchronizationObject, KDebug>); +static_assert(std::is_final_v<KThread> && std::is_base_of_v<KSynchronizationObject, KThread>); +static_assert(std::is_final_v<KServerPort> && +              std::is_base_of_v<KSynchronizationObject, KServerPort>); +static_assert(std::is_final_v<KServerSession> && +              std::is_base_of_v<KSynchronizationObject, KServerSession>); +static_assert(std::is_final_v<KClientPort> && +              std::is_base_of_v<KSynchronizationObject, KClientPort>); +static_assert(std::is_final_v<KClientSession> && std::is_base_of_v<KAutoObject, KClientSession>); +static_assert(std::is_final_v<KProcess> && std::is_base_of_v<KSynchronizationObject, KProcess>); +static_assert(std::is_final_v<KResourceLimit> && std::is_base_of_v<KAutoObject, KResourceLimit>); +// static_assert(std::is_final_v<KLightSession> && +//              std::is_base_of_v<KAutoObject, KLightSession>); +static_assert(std::is_final_v<KPort> && std::is_base_of_v<KAutoObject, KPort>); +static_assert(std::is_final_v<KSession> && std::is_base_of_v<KAutoObject, KSession>); +static_assert(std::is_final_v<KSharedMemory> && std::is_base_of_v<KAutoObject, KSharedMemory>); +static_assert(std::is_final_v<KEvent> && std::is_base_of_v<KAutoObject, KEvent>); +static_assert(std::is_final_v<KWritableEvent> && std::is_base_of_v<KAutoObject, KWritableEvent>); +// static_assert(std::is_final_v<KLightClientSession> && +//              std::is_base_of_v<KAutoObject, KLightClientSession>); +// static_assert(std::is_final_v<KLightServerSession> && +//              std::is_base_of_v<KAutoObject, KLightServerSession>); +static_assert(std::is_final_v<KTransferMemory> && std::is_base_of_v<KAutoObject, KTransferMemory>); +// static_assert(std::is_final_v<KDeviceAddressSpace> && +//              std::is_base_of_v<KAutoObject, KDeviceAddressSpace>); +// static_assert(std::is_final_v<KSessionRequest> && +//              std::is_base_of_v<KAutoObject, KSessionRequest>); +// static_assert(std::is_final_v<KCodeMemory> && +//              std::is_base_of_v<KAutoObject, KCodeMemory>);  } // namespace Kernel diff --git a/src/core/hle/kernel/k_client_port.cpp b/src/core/hle/kernel/k_client_port.cpp index 4a12dee10..23d830d1f 100644 --- a/src/core/hle/kernel/k_client_port.cpp +++ b/src/core/hle/kernel/k_client_port.cpp @@ -119,7 +119,7 @@ ResultCode KClientPort::CreateSession(KClientSession** out) {      // We succeeded, so set the output.      session_guard.Cancel();      *out = std::addressof(session->GetClientSession()); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Kernel diff --git a/src/core/hle/kernel/k_condition_variable.cpp b/src/core/hle/kernel/k_condition_variable.cpp index ce3bade60..ef14ad1d2 100644 --- a/src/core/hle/kernel/k_condition_variable.cpp +++ b/src/core/hle/kernel/k_condition_variable.cpp @@ -86,7 +86,7 @@ ResultCode KConditionVariable::SignalToAddress(VAddr addr) {                  next_value |= Svc::HandleWaitMask;              } -            next_owner_thread->SetSyncedObject(nullptr, RESULT_SUCCESS); +            next_owner_thread->SetSyncedObject(nullptr, ResultSuccess);              next_owner_thread->Wakeup();          } @@ -100,7 +100,7 @@ ResultCode KConditionVariable::SignalToAddress(VAddr addr) {          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KConditionVariable::WaitForAddress(Handle handle, VAddr addr, u32 value) { @@ -112,7 +112,7 @@ ResultCode KConditionVariable::WaitForAddress(Handle handle, VAddr addr, u32 val          ASSERT(owner_thread.IsNull());          {              KScopedSchedulerLock sl(kernel); -            cur_thread->SetSyncedObject(nullptr, RESULT_SUCCESS); +            cur_thread->SetSyncedObject(nullptr, ResultSuccess);              // Check if the thread should terminate.              R_UNLESS(!cur_thread->IsTerminationRequested(), ResultTerminationRequested); @@ -124,7 +124,7 @@ ResultCode KConditionVariable::WaitForAddress(Handle handle, VAddr addr, u32 val                           ResultInvalidCurrentMemory);                  // If the tag isn't the handle (with wait mask), we're done. -                R_UNLESS(test_tag == (handle | Svc::HandleWaitMask), RESULT_SUCCESS); +                R_UNLESS(test_tag == (handle | Svc::HandleWaitMask), ResultSuccess);                  // Get the lock owner thread.                  owner_thread = @@ -181,7 +181,7 @@ KThread* KConditionVariable::SignalImpl(KThread* thread) {      if (can_access) {          if (prev_tag == Svc::InvalidHandle) {              // If nobody held the lock previously, we're all good. -            thread->SetSyncedObject(nullptr, RESULT_SUCCESS); +            thread->SetSyncedObject(nullptr, ResultSuccess);              thread->Wakeup();          } else {              // Get the previous owner. @@ -292,7 +292,7 @@ ResultCode KConditionVariable::Wait(VAddr addr, u64 key, u32 value, s64 timeout)                  }                  // Wake up the next owner. -                next_owner_thread->SetSyncedObject(nullptr, RESULT_SUCCESS); +                next_owner_thread->SetSyncedObject(nullptr, ResultSuccess);                  next_owner_thread->Wakeup();              } diff --git a/src/core/hle/kernel/k_handle_table.cpp b/src/core/hle/kernel/k_handle_table.cpp index 0378447f6..6a420d5b0 100644 --- a/src/core/hle/kernel/k_handle_table.cpp +++ b/src/core/hle/kernel/k_handle_table.cpp @@ -25,7 +25,7 @@ ResultCode KHandleTable::Finalize() {          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  bool KHandleTable::Remove(Handle handle) { @@ -79,7 +79,7 @@ ResultCode KHandleTable::Add(Handle* out_handle, KAutoObject* obj, u16 type) {          *out_handle = EncodeHandle(static_cast<u16>(index), linear_id);      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KHandleTable::Reserve(Handle* out_handle) { @@ -89,7 +89,7 @@ ResultCode KHandleTable::Reserve(Handle* out_handle) {      R_UNLESS(m_count < m_table_size, ResultOutOfHandles);      *out_handle = EncodeHandle(static_cast<u16>(this->AllocateEntry()), this->AllocateLinearId()); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KHandleTable::Unreserve(Handle handle) { diff --git a/src/core/hle/kernel/k_handle_table.h b/src/core/hle/kernel/k_handle_table.h index ba9dd061d..2ff6aa160 100644 --- a/src/core/hle/kernel/k_handle_table.h +++ b/src/core/hle/kernel/k_handle_table.h @@ -50,7 +50,7 @@ public:              m_free_head_index = i;          } -        return RESULT_SUCCESS; +        return ResultSuccess;      }      size_t GetTableSize() const { diff --git a/src/core/hle/kernel/k_memory_manager.cpp b/src/core/hle/kernel/k_memory_manager.cpp index aa71697b2..0166df0a5 100644 --- a/src/core/hle/kernel/k_memory_manager.cpp +++ b/src/core/hle/kernel/k_memory_manager.cpp @@ -86,7 +86,7 @@ ResultCode KMemoryManager::Allocate(KPageLinkedList& page_list, std::size_t num_      // Early return if we're allocating no pages      if (num_pages == 0) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      // Lock the pool that we're allocating from @@ -146,14 +146,14 @@ ResultCode KMemoryManager::Allocate(KPageLinkedList& page_list, std::size_t num_      // We succeeded!      group_guard.Cancel(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KMemoryManager::Free(KPageLinkedList& page_list, std::size_t num_pages, Pool pool,                                  Direction dir) {      // Early return if we're freeing no pages      if (!num_pages) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      // Lock the pool that we're freeing from @@ -170,7 +170,7 @@ ResultCode KMemoryManager::Free(KPageLinkedList& page_list, std::size_t num_page          chosen_manager.Free(it.GetAddress(), min_num_pages);      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  std::size_t KMemoryManager::Impl::CalculateManagementOverheadSize(std::size_t region_size) { diff --git a/src/core/hle/kernel/k_page_linked_list.h b/src/core/hle/kernel/k_page_linked_list.h index dfdac5321..3362fb236 100644 --- a/src/core/hle/kernel/k_page_linked_list.h +++ b/src/core/hle/kernel/k_page_linked_list.h @@ -71,7 +71,7 @@ public:      ResultCode AddBlock(u64 address, u64 num_pages) {          if (!num_pages) { -            return RESULT_SUCCESS; +            return ResultSuccess;          }          if (!nodes.empty()) {              const auto node = nodes.back(); @@ -82,7 +82,7 @@ public:              }          }          nodes.push_back({address, num_pages}); -        return RESULT_SUCCESS; +        return ResultSuccess;      }  private: diff --git a/src/core/hle/kernel/k_page_table.cpp b/src/core/hle/kernel/k_page_table.cpp index 27dbf0ebc..66d260635 100644 --- a/src/core/hle/kernel/k_page_table.cpp +++ b/src/core/hle/kernel/k_page_table.cpp @@ -292,7 +292,7 @@ ResultCode KPageTable::MapProcessCode(VAddr addr, std::size_t num_pages, KMemory      block_manager->Update(addr, num_pages, state, perm); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::MapProcessCodeMemory(VAddr dst_addr, VAddr src_addr, std::size_t size) { @@ -329,14 +329,14 @@ ResultCode KPageTable::MapProcessCodeMemory(VAddr dst_addr, VAddr src_addr, std:                            KMemoryAttribute::Locked);      block_manager->Update(dst_addr, num_pages, KMemoryState::AliasCode); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::UnmapProcessCodeMemory(VAddr dst_addr, VAddr src_addr, std::size_t size) {      std::lock_guard lock{page_table_lock};      if (!size) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      const std::size_t num_pages{size / PageSize}; @@ -360,7 +360,7 @@ ResultCode KPageTable::UnmapProcessCodeMemory(VAddr dst_addr, VAddr src_addr, st      block_manager->Update(src_addr, num_pages, KMemoryState::Normal,                            KMemoryPermission::ReadAndWrite); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KPageTable::MapPhysicalMemory(KPageLinkedList& page_linked_list, VAddr start, VAddr end) { @@ -408,7 +408,7 @@ ResultCode KPageTable::MapPhysicalMemory(VAddr addr, std::size_t size) {      });      if (mapped_size == size) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      const std::size_t remaining_size{size - mapped_size}; @@ -440,14 +440,14 @@ ResultCode KPageTable::MapPhysicalMemory(VAddr addr, std::size_t size) {                            KMemoryAttribute::None, KMemoryState::Normal,                            KMemoryPermission::ReadAndWrite, KMemoryAttribute::None); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::UnmapPhysicalMemory(VAddr addr, std::size_t size) {      std::lock_guard lock{page_table_lock};      const VAddr end_addr{addr + size}; -    ResultCode result{RESULT_SUCCESS}; +    ResultCode result{ResultSuccess};      std::size_t mapped_size{};      // Verify that the region can be unmapped @@ -468,7 +468,7 @@ ResultCode KPageTable::UnmapPhysicalMemory(VAddr addr, std::size_t size) {      }      if (!mapped_size) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      CASCADE_CODE(UnmapMemory(addr, size)); @@ -477,14 +477,14 @@ ResultCode KPageTable::UnmapPhysicalMemory(VAddr addr, std::size_t size) {      process->GetResourceLimit()->Release(LimitableResource::PhysicalMemory, mapped_size);      physical_memory_usage -= mapped_size; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::UnmapMemory(VAddr addr, std::size_t size) {      std::lock_guard lock{page_table_lock};      const VAddr end_addr{addr + size}; -    ResultCode result{RESULT_SUCCESS}; +    ResultCode result{ResultSuccess};      KPageLinkedList page_linked_list;      // Unmap each region within the range @@ -513,7 +513,7 @@ ResultCode KPageTable::UnmapMemory(VAddr addr, std::size_t size) {      block_manager->Update(addr, num_pages, KMemoryState::Free); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::Map(VAddr dst_addr, VAddr src_addr, std::size_t size) { @@ -552,7 +552,7 @@ ResultCode KPageTable::Map(VAddr dst_addr, VAddr src_addr, std::size_t size) {      block_manager->Update(dst_addr, num_pages, KMemoryState::Stack,                            KMemoryPermission::ReadAndWrite); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::Unmap(VAddr dst_addr, VAddr src_addr, std::size_t size) { @@ -594,7 +594,7 @@ ResultCode KPageTable::Unmap(VAddr dst_addr, VAddr src_addr, std::size_t size) {      block_manager->Update(src_addr, num_pages, src_state, KMemoryPermission::ReadAndWrite);      block_manager->Update(dst_addr, num_pages, KMemoryState::Free); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::MapPages(VAddr addr, const KPageLinkedList& page_linked_list, @@ -616,7 +616,7 @@ ResultCode KPageTable::MapPages(VAddr addr, const KPageLinkedList& page_linked_l          cur_addr += node.GetNumPages() * PageSize;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::MapPages(VAddr addr, KPageLinkedList& page_linked_list, KMemoryState state, @@ -638,7 +638,7 @@ ResultCode KPageTable::MapPages(VAddr addr, KPageLinkedList& page_linked_list, K      block_manager->Update(addr, num_pages, state, perm); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::UnmapPages(VAddr addr, const KPageLinkedList& page_linked_list) { @@ -655,7 +655,7 @@ ResultCode KPageTable::UnmapPages(VAddr addr, const KPageLinkedList& page_linked          cur_addr += node.GetNumPages() * PageSize;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::UnmapPages(VAddr addr, KPageLinkedList& page_linked_list, @@ -677,7 +677,7 @@ ResultCode KPageTable::UnmapPages(VAddr addr, KPageLinkedList& page_linked_list,      block_manager->Update(addr, num_pages, state, KMemoryPermission::None); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::SetCodeMemoryPermission(VAddr addr, std::size_t size, @@ -708,7 +708,7 @@ ResultCode KPageTable::SetCodeMemoryPermission(VAddr addr, std::size_t size,      // Return early if there is nothing to change      if (state == prev_state && perm == prev_perm) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      if ((prev_perm & KMemoryPermission::Execute) != (perm & KMemoryPermission::Execute)) { @@ -725,7 +725,7 @@ ResultCode KPageTable::SetCodeMemoryPermission(VAddr addr, std::size_t size,      block_manager->Update(addr, num_pages, state, perm); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  KMemoryInfo KPageTable::QueryInfoImpl(VAddr addr) { @@ -758,7 +758,7 @@ ResultCode KPageTable::ReserveTransferMemory(VAddr addr, std::size_t size, KMemo      block_manager->Update(addr, size / PageSize, state, perm, attribute | KMemoryAttribute::Locked); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::ResetTransferMemory(VAddr addr, std::size_t size) { @@ -775,7 +775,7 @@ ResultCode KPageTable::ResetTransferMemory(VAddr addr, std::size_t size) {      block_manager->Update(addr, size / PageSize, state, KMemoryPermission::ReadAndWrite); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::SetMemoryAttribute(VAddr addr, std::size_t size, KMemoryAttribute mask, @@ -797,13 +797,13 @@ ResultCode KPageTable::SetMemoryAttribute(VAddr addr, std::size_t size, KMemoryA      block_manager->Update(addr, size / PageSize, state, perm, attribute); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::SetHeapCapacity(std::size_t new_heap_capacity) {      std::lock_guard lock{page_table_lock};      heap_capacity = new_heap_capacity; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultVal<VAddr> KPageTable::SetHeapSize(std::size_t size) { @@ -911,7 +911,7 @@ ResultCode KPageTable::LockForDeviceAddressSpace(VAddr addr, std::size_t size) {          },          perm); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::UnlockForDeviceAddressSpace(VAddr addr, std::size_t size) { @@ -934,13 +934,13 @@ ResultCode KPageTable::UnlockForDeviceAddressSpace(VAddr addr, std::size_t size)          },          perm); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::InitializeMemoryLayout(VAddr start, VAddr end) {      block_manager = std::make_unique<KMemoryBlockManager>(start, end); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  bool KPageTable::IsRegionMapped(VAddr address, u64 size) { @@ -1006,7 +1006,7 @@ ResultCode KPageTable::Operate(VAddr addr, std::size_t num_pages, const KPageLin          addr += size;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::Operate(VAddr addr, std::size_t num_pages, KMemoryPermission perm, @@ -1033,7 +1033,7 @@ ResultCode KPageTable::Operate(VAddr addr, std::size_t num_pages, KMemoryPermiss      default:          UNREACHABLE();      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  constexpr VAddr KPageTable::GetRegionAddress(KMemoryState state) const { @@ -1164,7 +1164,7 @@ constexpr ResultCode KPageTable::CheckMemoryState(const KMemoryInfo& info, KMemo          return ResultInvalidCurrentMemory;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KPageTable::CheckMemoryState(KMemoryState* out_state, KMemoryPermission* out_perm, @@ -1223,7 +1223,7 @@ ResultCode KPageTable::CheckMemoryState(KMemoryState* out_state, KMemoryPermissi          *out_attr = first_attr & static_cast<KMemoryAttribute>(~ignore_attr);      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Kernel diff --git a/src/core/hle/kernel/k_port.cpp b/src/core/hle/kernel/k_port.cpp index 223c0b205..a8ba09c4a 100644 --- a/src/core/hle/kernel/k_port.cpp +++ b/src/core/hle/kernel/k_port.cpp @@ -59,7 +59,7 @@ ResultCode KPort::EnqueueSession(KServerSession* session) {      server.EnqueueSession(session);      server.GetSessionRequestHandler()->ClientConnected(server.AcceptSession()); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Kernel diff --git a/src/core/hle/kernel/k_process.cpp b/src/core/hle/kernel/k_process.cpp index bdcbaeeaa..06b8ce151 100644 --- a/src/core/hle/kernel/k_process.cpp +++ b/src/core/hle/kernel/k_process.cpp @@ -142,7 +142,7 @@ ResultCode KProcess::Initialize(KProcess* process, Core::System& system, std::st      // Open a reference to the resource limit.      process->resource_limit->Open(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  KResourceLimit* KProcess::GetResourceLimit() const { @@ -258,7 +258,7 @@ ResultCode KProcess::AddSharedMemory(KSharedMemory* shmem, [[maybe_unused]] VAdd      // Open a reference to the shared memory.      shmem->Open(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KProcess::RemoveSharedMemory(KSharedMemory* shmem, [[maybe_unused]] VAddr address, @@ -291,7 +291,7 @@ ResultCode KProcess::Reset() {      // Clear signaled.      is_signaled = false; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KProcess::LoadFromMetadata(const FileSys::ProgramMetadata& metadata, @@ -524,7 +524,7 @@ ResultCode KProcess::AllocateMainThreadStack(std::size_t stack_size) {      main_thread_stack_top += main_thread_stack_size; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Kernel diff --git a/src/core/hle/kernel/k_process.h b/src/core/hle/kernel/k_process.h index c0656b9af..a03c074fb 100644 --- a/src/core/hle/kernel/k_process.h +++ b/src/core/hle/kernel/k_process.h @@ -310,7 +310,7 @@ public:       *       * @param metadata The provided metadata to load process specific info from.       * -     * @returns RESULT_SUCCESS if all relevant metadata was able to be +     * @returns ResultSuccess if all relevant metadata was able to be       *          loaded and parsed. Otherwise, an error code is returned.       */      ResultCode LoadFromMetadata(const FileSys::ProgramMetadata& metadata, std::size_t code_size); diff --git a/src/core/hle/kernel/k_readable_event.cpp b/src/core/hle/kernel/k_readable_event.cpp index 0ea2d0275..bf1db10d4 100644 --- a/src/core/hle/kernel/k_readable_event.cpp +++ b/src/core/hle/kernel/k_readable_event.cpp @@ -36,13 +36,13 @@ ResultCode KReadableEvent::Signal() {          NotifyAvailable();      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KReadableEvent::Clear() {      Reset(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KReadableEvent::Reset() { @@ -53,7 +53,7 @@ ResultCode KReadableEvent::Reset() {      }      is_signaled = false; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Kernel diff --git a/src/core/hle/kernel/k_resource_limit.cpp b/src/core/hle/kernel/k_resource_limit.cpp index bf20bf7d0..f91cb65dc 100644 --- a/src/core/hle/kernel/k_resource_limit.cpp +++ b/src/core/hle/kernel/k_resource_limit.cpp @@ -80,7 +80,7 @@ ResultCode KResourceLimit::SetLimitValue(LimitableResource which, s64 value) {      limit_values[index] = value; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  bool KResourceLimit::Reserve(LimitableResource which, s64 value) { diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp index 457fdfd60..dbf03b462 100644 --- a/src/core/hle/kernel/k_server_session.cpp +++ b/src/core/hle/kernel/k_server_session.cpp @@ -71,7 +71,7 @@ std::size_t KServerSession::NumDomainRequestHandlers() const {  ResultCode KServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& context) {      if (!context.HasDomainMessageHeader()) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      // Set domain handlers in HLE context, used for domain objects (IPC interfaces) as inputs @@ -88,7 +88,7 @@ ResultCode KServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& co                           "to {} needed to return a new interface!",                           object_id, name);              UNREACHABLE(); -            return RESULT_SUCCESS; // Ignore error if asserts are off +            return ResultSuccess; // Ignore error if asserts are off          }          return manager->DomainHandler(object_id - 1)->HandleSyncRequest(*this, context); @@ -98,14 +98,14 @@ ResultCode KServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& co          manager->CloseDomainHandler(object_id - 1);          IPC::ResponseBuilder rb{context, 2}; -        rb.Push(RESULT_SUCCESS); -        return RESULT_SUCCESS; +        rb.Push(ResultSuccess); +        return ResultSuccess;      }      }      LOG_CRITICAL(IPC, "Unknown domain command={}", domain_message_header.command.Value());      ASSERT(false); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KServerSession::QueueSyncRequest(KThread* thread, Core::Memory::Memory& memory) { @@ -116,14 +116,14 @@ ResultCode KServerSession::QueueSyncRequest(KThread* thread, Core::Memory::Memor      if (auto strong_ptr = service_thread.lock()) {          strong_ptr->QueueSyncRequest(*parent, std::move(context)); -        return RESULT_SUCCESS; +        return ResultSuccess;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KServerSession::CompleteSyncRequest(HLERequestContext& context) { -    ResultCode result = RESULT_SUCCESS; +    ResultCode result = ResultSuccess;      // If the session has been converted to a domain, handle the domain request      if (IsDomain() && context.HasDomainMessageHeader()) {          result = HandleDomainSyncRequest(context); diff --git a/src/core/hle/kernel/k_shared_memory.cpp b/src/core/hle/kernel/k_shared_memory.cpp index 7770b1868..51d7538ca 100644 --- a/src/core/hle/kernel/k_shared_memory.cpp +++ b/src/core/hle/kernel/k_shared_memory.cpp @@ -55,7 +55,7 @@ ResultCode KSharedMemory::Initialize(Core::DeviceMemory& device_memory_, KProces      // Clear all pages in the memory.      std::memset(device_memory_.GetPointer(physical_address_), 0, size_); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KSharedMemory::Finalize() { diff --git a/src/core/hle/kernel/k_synchronization_object.cpp b/src/core/hle/kernel/k_synchronization_object.cpp index 45380dea0..f168b4f21 100644 --- a/src/core/hle/kernel/k_synchronization_object.cpp +++ b/src/core/hle/kernel/k_synchronization_object.cpp @@ -38,7 +38,7 @@ ResultCode KSynchronizationObject::Wait(KernelCore& kernel_ctx, s32* out_index,              if (objects[i]->IsSignaled()) {                  *out_index = i;                  slp.CancelSleep(); -                return RESULT_SUCCESS; +                return ResultSuccess;              }          } @@ -97,7 +97,7 @@ ResultCode KSynchronizationObject::Wait(KernelCore& kernel_ctx, s32* out_index,      kernel_ctx.TimeManager().UnscheduleTimeEvent(thread);      // Get the wait result. -    ResultCode wait_result{RESULT_SUCCESS}; +    ResultCode wait_result{ResultSuccess};      s32 sync_index = -1;      {          KScopedSchedulerLock lock(kernel_ctx); diff --git a/src/core/hle/kernel/k_synchronization_object.h b/src/core/hle/kernel/k_synchronization_object.h index 3d4ce1fbc..898e58e16 100644 --- a/src/core/hle/kernel/k_synchronization_object.h +++ b/src/core/hle/kernel/k_synchronization_object.h @@ -43,7 +43,7 @@ protected:      void NotifyAvailable(ResultCode result);      void NotifyAvailable() { -        return this->NotifyAvailable(RESULT_SUCCESS); +        return this->NotifyAvailable(ResultSuccess);      }  private: diff --git a/src/core/hle/kernel/k_thread.cpp b/src/core/hle/kernel/k_thread.cpp index 3cf43d290..9f1d3156b 100644 --- a/src/core/hle/kernel/k_thread.cpp +++ b/src/core/hle/kernel/k_thread.cpp @@ -205,7 +205,7 @@ ResultCode KThread::Initialize(KThreadFunction func, uintptr_t arg, VAddr user_s          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KThread::InitializeThread(KThread* thread, KThreadFunction func, uintptr_t arg, @@ -219,7 +219,7 @@ ResultCode KThread::InitializeThread(KThread* thread, KThreadFunction func, uint      thread->host_context =          std::make_shared<Common::Fiber>(std::move(init_func), init_func_parameter); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KThread::InitializeDummyThread(KThread* thread) { @@ -460,7 +460,7 @@ ResultCode KThread::GetCoreMask(s32* out_ideal_core, u64* out_affinity_mask) {      *out_ideal_core = virtual_ideal_core_id;      *out_affinity_mask = virtual_affinity_mask; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KThread::GetPhysicalCoreMask(s32* out_ideal_core, u64* out_affinity_mask) { @@ -476,7 +476,7 @@ ResultCode KThread::GetPhysicalCoreMask(s32* out_ideal_core, u64* out_affinity_m          *out_affinity_mask = original_physical_affinity_mask.GetAffinityMask();      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KThread::SetCoreMask(s32 cpu_core_id, u64 v_affinity_mask) { @@ -599,7 +599,7 @@ ResultCode KThread::SetCoreMask(s32 cpu_core_id, u64 v_affinity_mask) {          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KThread::SetBasePriority(s32 value) { @@ -778,7 +778,7 @@ ResultCode KThread::SetActivity(Svc::ThreadActivity activity) {          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode KThread::GetThreadContext3(std::vector<u8>& out) { @@ -813,7 +813,7 @@ ResultCode KThread::GetThreadContext3(std::vector<u8>& out) {          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KThread::AddWaiterImpl(KThread* thread) { @@ -970,7 +970,7 @@ ResultCode KThread::Run() {          // Set our state and finish.          SetState(ThreadState::Runnable); -        return RESULT_SUCCESS; +        return ResultSuccess;      }  } @@ -1020,7 +1020,7 @@ ResultCode KThread::Sleep(s64 timeout) {      // Cancel the timer.      kernel.TimeManager().UnscheduleTimeEvent(this); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KThread::SetState(ThreadState state) { diff --git a/src/core/hle/kernel/k_thread.h b/src/core/hle/kernel/k_thread.h index 01eebb165..c77f44ad4 100644 --- a/src/core/hle/kernel/k_thread.h +++ b/src/core/hle/kernel/k_thread.h @@ -684,7 +684,7 @@ private:      u32 address_key_value{};      u32 suspend_request_flags{};      u32 suspend_allowed_flags{}; -    ResultCode wait_result{RESULT_SUCCESS}; +    ResultCode wait_result{ResultSuccess};      s32 base_priority{};      s32 physical_ideal_core_id{};      s32 virtual_ideal_core_id{}; diff --git a/src/core/hle/kernel/k_transfer_memory.cpp b/src/core/hle/kernel/k_transfer_memory.cpp index 5bc33706d..1732925c9 100644 --- a/src/core/hle/kernel/k_transfer_memory.cpp +++ b/src/core/hle/kernel/k_transfer_memory.cpp @@ -28,7 +28,7 @@ ResultCode KTransferMemory::Initialize(VAddr address_, std::size_t size_,      size = size_;      is_initialized = true; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void KTransferMemory::Finalize() { diff --git a/src/core/hle/kernel/process_capability.cpp b/src/core/hle/kernel/process_capability.cpp index b2ceeceb3..31a0867d3 100644 --- a/src/core/hle/kernel/process_capability.cpp +++ b/src/core/hle/kernel/process_capability.cpp @@ -153,7 +153,7 @@ ResultCode ProcessCapabilities::ParseCapabilities(const u32* capabilities,          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::ParseSingleFlagCapability(u32& set_flags, u32& set_svc_bits, @@ -167,7 +167,7 @@ ResultCode ProcessCapabilities::ParseSingleFlagCapability(u32& set_flags, u32& s      // Bail early on ignorable entries, as one would expect,      // ignorable descriptors can be ignored.      if (type == CapabilityType::Ignorable) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      // Ensure that the give flag hasn't already been initialized before. @@ -264,7 +264,7 @@ ResultCode ProcessCapabilities::HandlePriorityCoreNumFlags(u32 flags) {      core_mask = make_mask(core_num_min, core_num_max);      priority_mask = make_mask(priority_min, priority_max); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleSyscallFlags(u32& set_svc_bits, u32 flags) { @@ -288,23 +288,23 @@ ResultCode ProcessCapabilities::HandleSyscallFlags(u32& set_svc_bits, u32 flags)          svc_capabilities[svc_number] = true;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleMapPhysicalFlags(u32 flags, u32 size_flags,                                                         KPageTable& page_table) {      // TODO(Lioncache): Implement once the memory manager can handle this. -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleMapIOFlags(u32 flags, KPageTable& page_table) {      // TODO(Lioncache): Implement once the memory manager can handle this. -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleMapRegionFlags(u32 flags, KPageTable& page_table) {      // TODO(Lioncache): Implement once the memory manager can handle this. -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleInterruptFlags(u32 flags) { @@ -331,7 +331,7 @@ ResultCode ProcessCapabilities::HandleInterruptFlags(u32 flags) {          interrupt_capabilities[interrupt] = true;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleProgramTypeFlags(u32 flags) { @@ -342,7 +342,7 @@ ResultCode ProcessCapabilities::HandleProgramTypeFlags(u32 flags) {      }      program_type = static_cast<ProgramType>((flags >> 14) & 0b111); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleKernelVersionFlags(u32 flags) { @@ -362,7 +362,7 @@ ResultCode ProcessCapabilities::HandleKernelVersionFlags(u32 flags) {      }      kernel_version = flags; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleHandleTableFlags(u32 flags) { @@ -373,7 +373,7 @@ ResultCode ProcessCapabilities::HandleHandleTableFlags(u32 flags) {      }      handle_table_size = static_cast<s32>((flags >> 16) & 0x3FF); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ProcessCapabilities::HandleDebugFlags(u32 flags) { @@ -385,7 +385,7 @@ ResultCode ProcessCapabilities::HandleDebugFlags(u32 flags) {      is_debuggable = (flags & 0x20000) != 0;      can_force_debug = (flags & 0x40000) != 0; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Kernel diff --git a/src/core/hle/kernel/process_capability.h b/src/core/hle/kernel/process_capability.h index 2a7bf5505..a9b44325b 100644 --- a/src/core/hle/kernel/process_capability.h +++ b/src/core/hle/kernel/process_capability.h @@ -84,7 +84,7 @@ public:      /// @param page_table       The memory manager to use for handling any mapping-related      ///                         operations (such as mapping IO memory, etc).      /// -    /// @returns RESULT_SUCCESS if this capabilities instance was able to be initialized, +    /// @returns ResultSuccess if this capabilities instance was able to be initialized,      ///          otherwise, an error code upon failure.      ///      ResultCode InitializeForKernelProcess(const u32* capabilities, std::size_t num_capabilities, @@ -97,7 +97,7 @@ public:      /// @param page_table       The memory manager to use for handling any mapping-related      ///                         operations (such as mapping IO memory, etc).      /// -    /// @returns RESULT_SUCCESS if this capabilities instance was able to be initialized, +    /// @returns ResultSuccess if this capabilities instance was able to be initialized,      ///          otherwise, an error code upon failure.      ///      ResultCode InitializeForUserProcess(const u32* capabilities, std::size_t num_capabilities, @@ -184,7 +184,7 @@ private:      /// @param page_table       The memory manager that will perform any memory      ///                         mapping if necessary.      /// -    /// @return RESULT_SUCCESS if no errors occur, otherwise an error code. +    /// @return ResultSuccess if no errors occur, otherwise an error code.      ///      ResultCode ParseCapabilities(const u32* capabilities, std::size_t num_capabilities,                                   KPageTable& page_table); @@ -199,7 +199,7 @@ private:      /// @param page_table   The memory manager that will perform any memory      ///                     mapping if necessary.      /// -    /// @return RESULT_SUCCESS if no errors occurred, otherwise an error code. +    /// @return ResultSuccess if no errors occurred, otherwise an error code.      ///      ResultCode ParseSingleFlagCapability(u32& set_flags, u32& set_svc_bits, u32 flag,                                           KPageTable& page_table); diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 81e23f700..28bcae6e7 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -132,7 +132,7 @@ ResultCode MapUnmapMemorySanityChecks(const KPageTable& manager, VAddr dst_addr,          return ResultInvalidMemoryRegion;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  enum class ResourceLimitValueType { @@ -164,7 +164,7 @@ static ResultCode SetHeapSize(Core::System& system, VAddr* heap_addr, u64 heap_s      CASCADE_RESULT(*heap_addr, page_table.SetHeapSize(heap_size)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode SetHeapSize32(Core::System& system, u32* heap_addr, u32 heap_size) { @@ -305,7 +305,7 @@ static ResultCode ConnectToNamedPort(Core::System& system, Handle* out, VAddr po      // We succeeded.      handle_guard.Cancel(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode ConnectToNamedPort32(Core::System& system, Handle* out_handle, @@ -349,7 +349,7 @@ static ResultCode GetThreadId(Core::System& system, u64* out_thread_id, Handle t      // Get the thread's id.      *out_thread_id = thread->GetId(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetThreadId32(Core::System& system, u32* out_thread_id_low, @@ -454,7 +454,7 @@ static ResultCode CancelSynchronization(Core::System& system, Handle handle) {      // Cancel the thread's wait.      thread->WaitCancel(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode CancelSynchronization32(Core::System& system, Handle handle) { @@ -715,76 +715,76 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, Handle          switch (info_id_type) {          case GetInfoType::AllowedCPUCoreMask:              *result = process->GetCoreMask(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::AllowedThreadPriorityMask:              *result = process->GetPriorityMask(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::MapRegionBaseAddr:              *result = process->PageTable().GetAliasRegionStart(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::MapRegionSize:              *result = process->PageTable().GetAliasRegionSize(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::HeapRegionBaseAddr:              *result = process->PageTable().GetHeapRegionStart(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::HeapRegionSize:              *result = process->PageTable().GetHeapRegionSize(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::ASLRRegionBaseAddr:              *result = process->PageTable().GetAliasCodeRegionStart(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::ASLRRegionSize:              *result = process->PageTable().GetAliasCodeRegionSize(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::StackRegionBaseAddr:              *result = process->PageTable().GetStackRegionStart(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::StackRegionSize:              *result = process->PageTable().GetStackRegionSize(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::TotalPhysicalMemoryAvailable:              *result = process->GetTotalPhysicalMemoryAvailable(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::TotalPhysicalMemoryUsed:              *result = process->GetTotalPhysicalMemoryUsed(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::SystemResourceSize:              *result = process->GetSystemResourceSize(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::SystemResourceUsage:              LOG_WARNING(Kernel_SVC, "(STUBBED) Attempted to query system resource usage");              *result = process->GetSystemResourceUsage(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::TitleId:              *result = process->GetTitleID(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::UserExceptionContextAddr:              *result = process->GetTLSRegionAddress(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::TotalPhysicalMemoryAvailableWithoutSystemResource:              *result = process->GetTotalPhysicalMemoryAvailableWithoutSystemResource(); -            return RESULT_SUCCESS; +            return ResultSuccess;          case GetInfoType::TotalPhysicalMemoryUsedWithoutSystemResource:              *result = process->GetTotalPhysicalMemoryUsedWithoutSystemResource(); -            return RESULT_SUCCESS; +            return ResultSuccess;          default:              break; @@ -796,7 +796,7 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, Handle      case GetInfoType::IsCurrentProcessBeingDebugged:          *result = 0; -        return RESULT_SUCCESS; +        return ResultSuccess;      case GetInfoType::RegisterResourceLimit: {          if (handle != 0) { @@ -816,14 +816,14 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, Handle          if (!resource_limit) {              *result = Svc::InvalidHandle;              // Yes, the kernel considers this a successful operation. -            return RESULT_SUCCESS; +            return ResultSuccess;          }          Handle resource_handle{};          R_TRY(handle_table.Add(&resource_handle, resource_limit));          *result = resource_handle; -        return RESULT_SUCCESS; +        return ResultSuccess;      }      case GetInfoType::RandomEntropy: @@ -840,13 +840,13 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, Handle          }          *result = system.Kernel().CurrentProcess()->GetRandomEntropy(info_sub_id); -        return RESULT_SUCCESS; +        return ResultSuccess;      case GetInfoType::PrivilegedProcessId:          LOG_WARNING(Kernel_SVC,                      "(STUBBED) Attempted to query privileged process id bounds, returned 0");          *result = 0; -        return RESULT_SUCCESS; +        return ResultSuccess;      case GetInfoType::ThreadTickCount: {          constexpr u64 num_cpus = 4; @@ -881,7 +881,7 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, Handle          }          *result = out_ticks; -        return RESULT_SUCCESS; +        return ResultSuccess;      }      default: @@ -1034,7 +1034,7 @@ static ResultCode SetThreadActivity(Core::System& system, Handle thread_handle,      // Set the activity.      R_TRY(thread->SetActivity(thread_activity)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode SetThreadActivity32(Core::System& system, Handle thread_handle, @@ -1094,10 +1094,10 @@ static ResultCode GetThreadContext(Core::System& system, VAddr out_context, Hand          // Copy the thread context to user space.          system.Memory().WriteBlock(out_context, context.data(), context.size()); -        return RESULT_SUCCESS; +        return ResultSuccess;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetThreadContext32(Core::System& system, u32 out_context, Handle thread_handle) { @@ -1115,7 +1115,7 @@ static ResultCode GetThreadPriority(Core::System& system, u32* out_priority, Han      // Get the thread's priority.      *out_priority = thread->GetPriority(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetThreadPriority32(Core::System& system, u32* out_priority, Handle handle) { @@ -1138,7 +1138,7 @@ static ResultCode SetThreadPriority(Core::System& system, Handle thread_handle,      // Set the thread priority.      thread->SetBasePriority(priority); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode SetThreadPriority32(Core::System& system, Handle thread_handle, u32 priority) { @@ -1207,7 +1207,7 @@ static ResultCode MapSharedMemory(Core::System& system, Handle shmem_handle, VAd      // We succeeded.      guard.Cancel(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode MapSharedMemory32(Core::System& system, Handle shmem_handle, u32 address, @@ -1240,7 +1240,7 @@ static ResultCode UnmapSharedMemory(Core::System& system, Handle shmem_handle, V      // Remove the shared memory from the process.      process.RemoveSharedMemory(shmem.GetPointerUnsafe(), address, size); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode UnmapSharedMemory32(Core::System& system, Handle shmem_handle, u32 address, @@ -1276,7 +1276,7 @@ static ResultCode QueryProcessMemory(Core::System& system, VAddr memory_info_add      // Page info appears to be currently unused by the kernel and is always set to zero.      memory.Write32(page_info_address, 0); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode QueryMemory(Core::System& system, VAddr memory_info_address, @@ -1524,7 +1524,7 @@ static ResultCode CreateThread(Core::System& system, Handle* out_handle, VAddr e      // Add the thread to the handle table.      R_TRY(process.GetHandleTable().Add(out_handle, thread)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode CreateThread32(Core::System& system, Handle* out_handle, u32 priority, @@ -1547,7 +1547,7 @@ static ResultCode StartThread(Core::System& system, Handle thread_handle) {      // If we succeeded, persist a reference to the thread.      thread->Open(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode StartThread32(Core::System& system, Handle thread_handle) { @@ -1796,7 +1796,7 @@ static ResultCode CloseHandle(Core::System& system, Handle handle) {      R_UNLESS(system.Kernel().CurrentProcess()->GetHandleTable().Remove(handle),               ResultInvalidHandle); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode CloseHandle32(Core::System& system, Handle handle) { @@ -1891,7 +1891,7 @@ static ResultCode CreateTransferMemory(Core::System& system, Handle* out, VAddr      // Add the transfer memory to the handle table.      R_TRY(handle_table.Add(out, trmem)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode CreateTransferMemory32(Core::System& system, Handle* out, u32 address, u32 size, @@ -1911,7 +1911,7 @@ static ResultCode GetThreadCoreMask(Core::System& system, Handle thread_handle,      // Get the core mask.      R_TRY(thread->GetCoreMask(out_core_id, out_affinity_mask)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetThreadCoreMask32(Core::System& system, Handle thread_handle, s32* out_core_id, @@ -1952,7 +1952,7 @@ static ResultCode SetThreadCoreMask(Core::System& system, Handle thread_handle,      // Set the core mask.      R_TRY(thread->SetCoreMask(core_id, affinity_mask)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode SetThreadCoreMask32(Core::System& system, Handle thread_handle, s32 core_id, @@ -2051,7 +2051,7 @@ static ResultCode CreateEvent(Core::System& system, Handle* out_write, Handle* o      // We succeeded.      handle_guard.Cancel(); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode CreateEvent32(Core::System& system, Handle* out_write, Handle* out_read) { @@ -2081,7 +2081,7 @@ static ResultCode GetProcessInfo(Core::System& system, u64* out, Handle process_      }      *out = static_cast<u64>(process->GetStatus()); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode CreateResourceLimit(Core::System& system, Handle* out_handle) { @@ -2104,7 +2104,7 @@ static ResultCode CreateResourceLimit(Core::System& system, Handle* out_handle)      // Add the limit to the handle table.      R_TRY(kernel.CurrentProcess()->GetHandleTable().Add(out_handle, resource_limit)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetResourceLimitLimitValue(Core::System& system, u64* out_limit_value, @@ -2125,7 +2125,7 @@ static ResultCode GetResourceLimitLimitValue(Core::System& system, u64* out_limi      // Get the limit value.      *out_limit_value = resource_limit->GetLimitValue(which); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetResourceLimitCurrentValue(Core::System& system, u64* out_current_value, @@ -2146,7 +2146,7 @@ static ResultCode GetResourceLimitCurrentValue(Core::System& system, u64* out_cu      // Get the current value.      *out_current_value = resource_limit->GetCurrentValue(which); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode SetResourceLimitLimitValue(Core::System& system, Handle resource_limit_handle, @@ -2166,7 +2166,7 @@ static ResultCode SetResourceLimitLimitValue(Core::System& system, Handle resour      // Set the limit value.      R_TRY(resource_limit->SetLimitValue(which, limit_value)); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetProcessList(Core::System& system, u32* out_num_processes, @@ -2203,7 +2203,7 @@ static ResultCode GetProcessList(Core::System& system, u32* out_num_processes,      }      *out_num_processes = static_cast<u32>(num_processes); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode GetThreadList(Core::System& system, u32* out_num_threads, VAddr out_thread_ids, @@ -2243,7 +2243,7 @@ static ResultCode GetThreadList(Core::System& system, u32* out_num_threads, VAdd      }      *out_num_threads = static_cast<u32>(num_threads); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode FlushProcessDataCache32([[maybe_unused]] Core::System& system, @@ -2253,7 +2253,7 @@ static ResultCode FlushProcessDataCache32([[maybe_unused]] Core::System& system,      // as all emulation is done in the same cache level in host architecture, thus data cache      // does not need flushing.      LOG_DEBUG(Kernel_SVC, "called"); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  namespace { diff --git a/src/core/hle/result.h b/src/core/hle/result.h index 43968386f..605236552 100644 --- a/src/core/hle/result.h +++ b/src/core/hle/result.h @@ -144,7 +144,7 @@ constexpr bool operator!=(const ResultCode& a, const ResultCode& b) {  // Convenience functions for creating some common kinds of errors:  /// The default success `ResultCode`. -constexpr ResultCode RESULT_SUCCESS(0); +constexpr ResultCode ResultSuccess(0);  /**   * Placeholder result code used for unknown error codes. @@ -152,7 +152,7 @@ constexpr ResultCode RESULT_SUCCESS(0);   * @note This should only be used when a particular error code   *       is not known yet.   */ -constexpr ResultCode RESULT_UNKNOWN(UINT32_MAX); +constexpr ResultCode ResultUnknown(UINT32_MAX);  /**   * This is an optional value type. It holds a `ResultCode` and, if that code is a success code, @@ -191,7 +191,7 @@ class ResultVal {  public:      /// Constructs an empty `ResultVal` with the given error code. The code must not be a success      /// code. -    ResultVal(ResultCode error_code = RESULT_UNKNOWN) : result_code(error_code) { +    ResultVal(ResultCode error_code = ResultUnknown) : result_code(error_code) {          ASSERT(error_code.IsError());      } @@ -321,7 +321,7 @@ private:   */  template <typename T, typename... Args>  ResultVal<T> MakeResult(Args&&... args) { -    return ResultVal<T>::WithCode(RESULT_SUCCESS, std::forward<Args>(args)...); +    return ResultVal<T>::WithCode(ResultSuccess, std::forward<Args>(args)...);  }  /** @@ -330,8 +330,7 @@ ResultVal<T> MakeResult(Args&&... args) {   */  template <typename Arg>  ResultVal<std::remove_reference_t<Arg>> MakeResult(Arg&& arg) { -    return ResultVal<std::remove_reference_t<Arg>>::WithCode(RESULT_SUCCESS, -                                                             std::forward<Arg>(arg)); +    return ResultVal<std::remove_reference_t<Arg>>::WithCode(ResultSuccess, std::forward<Arg>(arg));  }  /** @@ -358,3 +357,28 @@ ResultVal<std::remove_reference_t<Arg>> MakeResult(Arg&& arg) {              return CONCAT2(check_result_L, __LINE__);                                              \          }                                                                                          \      } while (false) + +#define R_SUCCEEDED(res) (res.IsSuccess()) + +/// Evaluates a boolean expression, and succeeds if that expression is true. +#define R_SUCCEED_IF(expr) R_UNLESS(!(expr), ResultSuccess) + +/// Evaluates a boolean expression, and returns a result unless that expression is true. +#define R_UNLESS(expr, res)                                                                        \ +    {                                                                                              \ +        if (!(expr)) {                                                                             \ +            if (res.IsError()) {                                                                   \ +                LOG_ERROR(Kernel, "Failed with result: {}", res.raw);                              \ +            }                                                                                      \ +            return res;                                                                            \ +        }                                                                                          \ +    } + +/// Evaluates an expression that returns a result, and returns the result if it would fail. +#define R_TRY(res_expr)                                                                            \ +    {                                                                                              \ +        const auto _tmp_r_try_rc = (res_expr);                                                     \ +        if (_tmp_r_try_rc.IsError()) {                                                             \ +            return _tmp_r_try_rc;                                                                  \ +        }                                                                                          \ +    } diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp index 39cd1efc1..d1c1fb71d 100644 --- a/src/core/hle/service/acc/acc.cpp +++ b/src/core/hle/service/acc/acc.cpp @@ -298,13 +298,13 @@ protected:          if (profile_manager.GetProfileBaseAndData(user_id, profile_base, data)) {              ctx.WriteBuffer(data);              IPC::ResponseBuilder rb{ctx, 16}; -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);              rb.PushRaw(profile_base);          } else {              LOG_ERROR(Service_ACC, "Failed to get profile base and data for user={}",                        user_id.Format());              IPC::ResponseBuilder rb{ctx, 2}; -            rb.Push(RESULT_UNKNOWN); // TODO(ogniK): Get actual error code +            rb.Push(ResultUnknown); // TODO(ogniK): Get actual error code          }      } @@ -313,12 +313,12 @@ protected:          ProfileBase profile_base{};          if (profile_manager.GetProfileBase(user_id, profile_base)) {              IPC::ResponseBuilder rb{ctx, 16}; -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);              rb.PushRaw(profile_base);          } else {              LOG_ERROR(Service_ACC, "Failed to get profile base for user={}", user_id.Format());              IPC::ResponseBuilder rb{ctx, 2}; -            rb.Push(RESULT_UNKNOWN); // TODO(ogniK): Get actual error code +            rb.Push(ResultUnknown); // TODO(ogniK): Get actual error code          }      } @@ -326,7 +326,7 @@ protected:          LOG_DEBUG(Service_ACC, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          const Common::FS::IOFile image(GetImagePath(user_id), Common::FS::FileAccessMode::Read,                                         Common::FS::FileType::BinaryFile); @@ -352,7 +352,7 @@ protected:      void GetImageSize(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_ACC, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          const Common::FS::IOFile image(GetImagePath(user_id), Common::FS::FileAccessMode::Read,                                         Common::FS::FileType::BinaryFile); @@ -395,7 +395,7 @@ protected:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void StoreWithImage(Kernel::HLERequestContext& ctx) { @@ -433,7 +433,7 @@ protected:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      ProfileManager& profile_manager; @@ -528,7 +528,7 @@ private:      void CheckAvailability(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_ACC, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(false); // TODO: Check when this is supposed to return true and when not      } @@ -536,7 +536,7 @@ private:          LOG_DEBUG(Service_ACC, "called");          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u64>(user_id.GetNintendoID());      } @@ -552,14 +552,14 @@ private:          }          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u64>(user_id.GetNintendoID());      }      void StoreOpenContext(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_ACC, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      Common::UUID user_id{Common::INVALID_UUID}; @@ -655,7 +655,7 @@ public:  void Module::Interface::GetUserCount(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(static_cast<u32>(profile_manager->GetUserCount()));  } @@ -665,7 +665,7 @@ void Module::Interface::GetUserExistence(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called user_id={}", user_id.Format());      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(profile_manager->UserExists(user_id));  } @@ -673,20 +673,20 @@ void Module::Interface::ListAllUsers(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called");      ctx.WriteBuffer(profile_manager->GetAllUsers());      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::ListOpenUsers(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called");      ctx.WriteBuffer(profile_manager->GetOpenUsers());      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::GetLastOpenedUser(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called");      IPC::ResponseBuilder rb{ctx, 6}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw<Common::UUID>(profile_manager->GetLastOpenedUser());  } @@ -696,14 +696,14 @@ void Module::Interface::GetProfile(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called user_id={}", user_id.Format());      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IProfile>(system, user_id, *profile_manager);  }  void Module::Interface::IsUserRegistrationRequestPermitted(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_ACC, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(profile_manager->CanSystemRegisterUser());  } @@ -761,13 +761,13 @@ ResultCode Module::Interface::InitializeApplicationInfoBase() {      LOG_WARNING(Service_ACC, "ApplicationInfo init required");      // TODO(ogniK): Actual initalization here -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void Module::Interface::GetBaasAccountManagerForApplication(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IManagerForApplication>(system, profile_manager->GetLastOpenedUser());  } @@ -794,7 +794,7 @@ void Module::Interface::IsUserAccountSwitchLocked(Kernel::HLERequestContext& ctx      }      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(is_locked);  } @@ -805,7 +805,7 @@ void Module::Interface::GetProfileEditor(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_ACC, "called, user_id={}", user_id.Format());      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IProfileEditor>(system, user_id, *profile_manager);  } @@ -817,7 +817,7 @@ void Module::Interface::ListQualifiedUsers(Kernel::HLERequestContext& ctx) {      // the game regardless of parental control settings.      ctx.WriteBuffer(profile_manager->GetAllUsers());      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::LoadOpenContext(Kernel::HLERequestContext& ctx) { @@ -827,7 +827,7 @@ void Module::Interface::LoadOpenContext(Kernel::HLERequestContext& ctx) {      // This command is used concurrently with ListOpenContextStoredUsers      // TODO: Find the differences between this and GetBaasAccountManagerForApplication      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IManagerForApplication>(system, profile_manager->GetLastOpenedUser());  } @@ -837,7 +837,7 @@ void Module::Interface::ListOpenContextStoredUsers(Kernel::HLERequestContext& ct      // TODO(ogniK): Handle open contexts      ctx.WriteBuffer(profile_manager->GetOpenUsers());      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::StoreSaveDataThumbnailApplication(Kernel::HLERequestContext& ctx) { @@ -886,7 +886,7 @@ void Module::Interface::StoreSaveDataThumbnail(Kernel::HLERequestContext& ctx,      }      // TODO(ogniK): Construct save data thumbnail -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::TrySelectUserWithoutInteraction(Kernel::HLERequestContext& ctx) { @@ -895,7 +895,7 @@ void Module::Interface::TrySelectUserWithoutInteraction(Kernel::HLERequestContex      // access to use the network or not by the looks of it      IPC::ResponseBuilder rb{ctx, 6};      if (profile_manager->GetUserCount() != 1) { -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u128>(Common::INVALID_UUID);          return;      } @@ -903,13 +903,13 @@ void Module::Interface::TrySelectUserWithoutInteraction(Kernel::HLERequestContex      const auto user_list = profile_manager->GetAllUsers();      if (std::all_of(user_list.begin(), user_list.end(),                      [](const auto& user) { return user.uuid == Common::INVALID_UUID; })) { -        rb.Push(RESULT_UNKNOWN); // TODO(ogniK): Find the correct error code +        rb.Push(ResultUnknown); // TODO(ogniK): Find the correct error code          rb.PushRaw<u128>(Common::INVALID_UUID);          return;      }      // Select the first user we have -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw<u128>(profile_manager->GetUser(0)->uuid);  } diff --git a/src/core/hle/service/acc/profile_manager.cpp b/src/core/hle/service/acc/profile_manager.cpp index 77510489c..f72d5d561 100644 --- a/src/core/hle/service/acc/profile_manager.cpp +++ b/src/core/hle/service/acc/profile_manager.cpp @@ -91,7 +91,7 @@ ResultCode ProfileManager::AddUser(const ProfileInfo& user) {      if (!AddToProfiles(user)) {          return ERROR_TOO_MANY_USERS;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  /// Create a new user on the system. If the uuid of the user already exists, the user is not diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 234173297..b578153d3 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -91,14 +91,14 @@ void IWindowController::GetAppletResourceUserId(Kernel::HLERequestContext& ctx)      LOG_DEBUG(Service_AM, "called. Process ID=0x{:016X}", process_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u64>(process_id);  }  void IWindowController::AcquireForegroundRights(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  IAudioController::IAudioController(Core::System& system_) @@ -132,20 +132,20 @@ void IAudioController::SetExpectedMasterVolume(Kernel::HLERequestContext& ctx) {          std::clamp(library_applet_volume_tmp, min_allowed_volume, max_allowed_volume);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IAudioController::GetMainAppletExpectedMasterVolume(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called. main_applet_volume={}", main_applet_volume);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(main_applet_volume);  }  void IAudioController::GetLibraryAppletExpectedMasterVolume(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called. library_applet_volume={}", library_applet_volume);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(library_applet_volume);  } @@ -166,7 +166,7 @@ void IAudioController::ChangeMainAppletMasterVolume(Kernel::HLERequestContext& c      fade_time_ns = std::chrono::nanoseconds{parameters.fade_time_ns};      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IAudioController::SetTransparentAudioRate(Kernel::HLERequestContext& ctx) { @@ -180,7 +180,7 @@ void IAudioController::SetTransparentAudioRate(Kernel::HLERequestContext& ctx) {          std::clamp(transparent_volume_rate_tmp, min_allowed_volume, max_allowed_volume);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  IDisplayController::IDisplayController(Core::System& system_) @@ -332,7 +332,7 @@ void ISelfController::Exit(Kernel::HLERequestContext& ctx) {      system.Shutdown();      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::LockExit(Kernel::HLERequestContext& ctx) { @@ -341,7 +341,7 @@ void ISelfController::LockExit(Kernel::HLERequestContext& ctx) {      system.SetExitLock(true);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::UnlockExit(Kernel::HLERequestContext& ctx) { @@ -350,7 +350,7 @@ void ISelfController::UnlockExit(Kernel::HLERequestContext& ctx) {      system.SetExitLock(false);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::EnterFatalSection(Kernel::HLERequestContext& ctx) { @@ -358,7 +358,7 @@ void ISelfController::EnterFatalSection(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called. Num fatal sections entered: {}", num_fatal_sections_entered);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::LeaveFatalSection(Kernel::HLERequestContext& ctx) { @@ -374,7 +374,7 @@ void ISelfController::LeaveFatalSection(Kernel::HLERequestContext& ctx) {      --num_fatal_sections_entered;      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext& ctx) { @@ -383,7 +383,7 @@ void ISelfController::GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext&      launchable_event.GetWritableEvent().Signal();      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(launchable_event.GetReadableEvent());  } @@ -395,7 +395,7 @@ void ISelfController::SetScreenShotPermission(Kernel::HLERequestContext& ctx) {      screenshot_permission = permission;      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::SetOperationModeChangedNotification(Kernel::HLERequestContext& ctx) { @@ -405,7 +405,7 @@ void ISelfController::SetOperationModeChangedNotification(Kernel::HLERequestCont      LOG_WARNING(Service_AM, "(STUBBED) called flag={}", flag);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::SetPerformanceModeChangedNotification(Kernel::HLERequestContext& ctx) { @@ -415,7 +415,7 @@ void ISelfController::SetPerformanceModeChangedNotification(Kernel::HLERequestCo      LOG_WARNING(Service_AM, "(STUBBED) called flag={}", flag);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::SetFocusHandlingMode(Kernel::HLERequestContext& ctx) { @@ -434,14 +434,14 @@ void ISelfController::SetFocusHandlingMode(Kernel::HLERequestContext& ctx) {                  flags.unknown0, flags.unknown1, flags.unknown2);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::SetRestartMessageEnabled(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& ctx) { @@ -453,14 +453,14 @@ void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext&      LOG_WARNING(Service_AM, "(STUBBED) called enabled={}", enabled);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::SetAlbumImageOrientation(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) { @@ -472,7 +472,7 @@ void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx)      const auto layer_id = nvflinger.CreateLayer(*display_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(*layer_id);  } @@ -490,7 +490,7 @@ void ISelfController::CreateManagedDisplaySeparableLayer(Kernel::HLERequestConte      const auto layer_id = nvflinger.CreateLayer(*display_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(*layer_id);  } @@ -498,7 +498,7 @@ void ISelfController::SetHandlesRequestToDisplay(Kernel::HLERequestContext& ctx)      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::SetIdleTimeDetectionExtension(Kernel::HLERequestContext& ctx) { @@ -508,14 +508,14 @@ void ISelfController::SetIdleTimeDetectionExtension(Kernel::HLERequestContext& c                  idle_time_detection_extension);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::GetIdleTimeDetectionExtension(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(idle_time_detection_extension);  } @@ -536,14 +536,14 @@ void ISelfController::SetAutoSleepDisabled(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called. is_auto_sleep_disabled={}", is_auto_sleep_disabled);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ISelfController::IsAutoSleepDisabled(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called.");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(is_auto_sleep_disabled);  } @@ -554,7 +554,7 @@ void ISelfController::GetAccumulatedSuspendedTickValue(Kernel::HLERequestContext      // where the game was suspended. Since Yuzu doesn't implement game suspension, this command      // can just always return 0 ticks.      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u64>(0);  } @@ -562,7 +562,7 @@ void ISelfController::GetAccumulatedSuspendedTickChangedEvent(Kernel::HLERequest      LOG_DEBUG(Service_AM, "called.");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(accumulated_suspended_tick_changed_event.GetReadableEvent());  } @@ -578,7 +578,7 @@ void ISelfController::SetAlbumImageTakenNotificationEnabled(Kernel::HLERequestCo                  album_image_taken_notification_enabled);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  AppletMessageQueue::AppletMessageQueue(Kernel::KernelCore& kernel) @@ -704,7 +704,7 @@ void ICommonStateGetter::GetBootMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u8>(static_cast<u8>(Service::PM::SystemBootMode::Normal)); // Normal boot mode  } @@ -712,7 +712,7 @@ void ICommonStateGetter::GetEventHandle(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(msg_queue->GetMessageReceiveEvent());  } @@ -729,7 +729,7 @@ void ICommonStateGetter::ReceiveMessage(Kernel::HLERequestContext& ctx) {          return;      } -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum<AppletMessageQueue::AppletMessage>(message);  } @@ -737,7 +737,7 @@ void ICommonStateGetter::GetCurrentFocusState(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(static_cast<u8>(FocusState::InFocus));  } @@ -745,7 +745,7 @@ void ICommonStateGetter::IsVrModeEnabled(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(vr_mode_state);  } @@ -756,7 +756,7 @@ void ICommonStateGetter::SetVrModeEnabled(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "VR Mode is {}", vr_mode_state ? "on" : "off");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ICommonStateGetter::SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx) { @@ -767,28 +767,28 @@ void ICommonStateGetter::SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx                  is_lcd_backlight_off_enabled);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ICommonStateGetter::BeginVrModeEx(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ICommonStateGetter::EndVrModeEx(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(msg_queue->GetOperationModeChangedEvent());  } @@ -796,7 +796,7 @@ void ICommonStateGetter::GetDefaultDisplayResolution(Kernel::HLERequestContext&      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      if (Settings::values.use_docked_mode.GetValue()) {          rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) * @@ -826,7 +826,7 @@ void ICommonStateGetter::SetRequestExitToLibraryAppletAtExecuteNextProgramEnable      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  IStorageImpl::~IStorageImpl() = default; @@ -875,7 +875,7 @@ void IStorage::Open(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IStorageAccessor>(system, *this);  } @@ -884,7 +884,7 @@ void ICommonStateGetter::GetOperationMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called, use_docked_mode={}", use_docked_mode);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(static_cast<u8>(use_docked_mode ? OperationMode::Docked : OperationMode::Handheld));  } @@ -892,7 +892,7 @@ void ICommonStateGetter::GetPerformanceMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(system.GetAPMController().GetCurrentPerformanceMode());  } @@ -932,7 +932,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(applet->GetBroker().GetStateChangedEvent());      } @@ -940,7 +940,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(applet->TransactionComplete());      } @@ -955,7 +955,7 @@ private:          LOG_WARNING(Service_AM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Start(Kernel::HLERequestContext& ctx) { @@ -967,7 +967,7 @@ private:          applet->Execute();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void PushInData(Kernel::HLERequestContext& ctx) { @@ -977,7 +977,7 @@ private:          applet->GetBroker().PushNormalDataFromGame(rp.PopIpcInterface<IStorage>());          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void PopOutData(Kernel::HLERequestContext& ctx) { @@ -993,7 +993,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IStorage>(std::move(storage));      } @@ -1008,7 +1008,7 @@ private:          applet->Execute();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void PopInteractiveOutData(Kernel::HLERequestContext& ctx) { @@ -1024,7 +1024,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IStorage>(std::move(storage));      } @@ -1032,7 +1032,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(applet->GetBroker().GetNormalDataEvent());      } @@ -1040,7 +1040,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(applet->GetBroker().GetInteractiveDataEvent());      } @@ -1052,7 +1052,7 @@ private:          constexpr u64 handle = 0xdeadbeef;          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(handle);      } @@ -1079,7 +1079,7 @@ void IStorageAccessor::GetSize(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(static_cast<u64>(backing.GetSize()));  } @@ -1105,7 +1105,7 @@ void IStorageAccessor::Write(Kernel::HLERequestContext& ctx) {      std::memcpy(backing.GetData().data() + offset, data.data(), size);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IStorageAccessor::Read(Kernel::HLERequestContext& ctx) { @@ -1128,7 +1128,7 @@ void IStorageAccessor::Read(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(backing.GetData().data() + offset, size);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  ILibraryAppletCreator::ILibraryAppletCreator(Core::System& system_) @@ -1162,13 +1162,13 @@ void ILibraryAppletCreator::CreateLibraryApplet(Kernel::HLERequestContext& ctx)          LOG_ERROR(Service_AM, "Applet doesn't exist! applet_id={}", applet_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      }      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ILibraryAppletAccessor>(system, applet);  } @@ -1182,14 +1182,14 @@ void ILibraryAppletCreator::CreateStorage(Kernel::HLERequestContext& ctx) {      if (size <= 0) {          LOG_ERROR(Service_AM, "size is less than or equal to 0");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      }      std::vector<u8> buffer(size);      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IStorage>(system, std::move(buffer));  } @@ -1210,7 +1210,7 @@ void ILibraryAppletCreator::CreateTransferMemoryStorage(Kernel::HLERequestContex      if (parameters.size <= 0) {          LOG_ERROR(Service_AM, "size is less than or equal to 0");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -1220,7 +1220,7 @@ void ILibraryAppletCreator::CreateTransferMemoryStorage(Kernel::HLERequestContex      if (transfer_mem.IsNull()) {          LOG_ERROR(Service_AM, "transfer_mem is a nullptr for handle={:08X}", handle);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -1229,7 +1229,7 @@ void ILibraryAppletCreator::CreateTransferMemoryStorage(Kernel::HLERequestContex      std::vector<u8> memory{mem_begin, mem_end};      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IStorage>(system, std::move(memory));  } @@ -1244,7 +1244,7 @@ void ILibraryAppletCreator::CreateHandleStorage(Kernel::HLERequestContext& ctx)      if (size <= 0) {          LOG_ERROR(Service_AM, "size is less than or equal to 0");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -1254,7 +1254,7 @@ void ILibraryAppletCreator::CreateHandleStorage(Kernel::HLERequestContext& ctx)      if (transfer_mem.IsNull()) {          LOG_ERROR(Service_AM, "transfer_mem is a nullptr for handle={:08X}", handle);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -1263,7 +1263,7 @@ void ILibraryAppletCreator::CreateHandleStorage(Kernel::HLERequestContext& ctx)      std::vector<u8> memory{mem_begin, mem_end};      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IStorage>(system, std::move(memory));  } @@ -1355,7 +1355,7 @@ void IApplicationFunctions::EnableApplicationCrashReport(Kernel::HLERequestConte      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::InitializeApplicationCopyrightFrameBuffer( @@ -1363,14 +1363,14 @@ void IApplicationFunctions::InitializeApplicationCopyrightFrameBuffer(      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::SetApplicationCopyrightImage(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::SetApplicationCopyrightVisibility(Kernel::HLERequestContext& ctx) { @@ -1380,7 +1380,7 @@ void IApplicationFunctions::SetApplicationCopyrightVisibility(Kernel::HLERequest      LOG_WARNING(Service_AM, "(STUBBED) called, is_visible={}", is_visible);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed( @@ -1388,7 +1388,7 @@ void IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed(      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed( @@ -1396,21 +1396,21 @@ void IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed(      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::BeginBlockingHomeButton(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::EndBlockingHomeButton(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) { @@ -1430,7 +1430,7 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) {          auto data = backend->GetLaunchParameter({system.CurrentProcess()->GetTitleID(), build_id});          if (data.has_value()) {              IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);              rb.PushIpcInterface<IStorage>(system, std::move(*data));              launch_popped_application_specific = true;              return; @@ -1449,7 +1449,7 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) {          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          std::vector<u8> buffer(sizeof(LaunchParameterAccountPreselectedUser));          std::memcpy(buffer.data(), ¶ms, buffer.size()); @@ -1469,7 +1469,7 @@ void IApplicationFunctions::CreateApplicationAndRequestToStartForQuest(      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) { @@ -1500,7 +1500,7 @@ void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called, result=0x{:08X}", result);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) { @@ -1533,7 +1533,7 @@ void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 6}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(version_string);  } @@ -1589,7 +1589,7 @@ void IApplicationFunctions::GetDesiredLanguage(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "got desired_language={:016X}", *res_code);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(*res_code);  } @@ -1599,7 +1599,7 @@ void IApplicationFunctions::IsGamePlayRecordingSupported(Kernel::HLERequestConte      constexpr bool gameplay_recording_supported = false;      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(gameplay_recording_supported);  } @@ -1607,21 +1607,21 @@ void IApplicationFunctions::InitializeGamePlayRecording(Kernel::HLERequestContex      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::SetGamePlayRecordingState(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::NotifyRunning(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u8>(0); // Unknown, seems to be ignored by official processes  } @@ -1629,7 +1629,7 @@ void IApplicationFunctions::GetPseudoDeviceId(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 6}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      // Returns a 128-bit UUID      rb.Push<u64>(0); @@ -1657,7 +1657,7 @@ void IApplicationFunctions::ExtendSaveData(Kernel::HLERequestContext& ctx) {          type, system.CurrentProcess()->GetTitleID(), user_id, {new_normal_size, new_journal_size});      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      // The following value is used upon failure to help the system recover.      // Since we always succeed, this should be 0. @@ -1681,7 +1681,7 @@ void IApplicationFunctions::GetSaveDataSize(Kernel::HLERequestContext& ctx) {          type, system.CurrentProcess()->GetTitleID(), user_id);      IPC::ResponseBuilder rb{ctx, 6}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(size.normal);      rb.Push(size.journal);  } @@ -1690,7 +1690,7 @@ void IApplicationFunctions::QueryApplicationPlayStatistics(Kernel::HLERequestCon      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(0);  } @@ -1698,7 +1698,7 @@ void IApplicationFunctions::QueryApplicationPlayStatisticsByUid(Kernel::HLEReque      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(0);  } @@ -1711,7 +1711,7 @@ void IApplicationFunctions::ExecuteProgram(Kernel::HLERequestContext& ctx) {      const auto program_index = rp.Pop<u64>();      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      system.ExecuteProgram(program_index);  } @@ -1720,21 +1720,21 @@ void IApplicationFunctions::ClearUserChannel(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::UnpopToUserChannel(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IApplicationFunctions::GetPreviousProgramIndex(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(previous_program_index);  } @@ -1742,7 +1742,7 @@ void IApplicationFunctions::GetGpuErrorDetectedSystemEvent(Kernel::HLERequestCon      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(gpu_error_detected_event.GetReadableEvent());  } @@ -1750,7 +1750,7 @@ void IApplicationFunctions::GetFriendInvitationStorageChannelEvent(Kernel::HLERe      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(friend_invitation_storage_channel_event.GetReadableEvent());  } @@ -1766,7 +1766,7 @@ void IApplicationFunctions::GetHealthWarningDisappearedSystemEvent(Kernel::HLERe      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(health_warning_disappeared_system_event.GetReadableEvent());  } @@ -1817,14 +1817,14 @@ void IHomeMenuFunctions::RequestToGetForeground(Kernel::HLERequestContext& ctx)      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IHomeMenuFunctions::GetPopFromGeneralChannelEvent(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(pop_from_general_channel_event.GetReadableEvent());  } diff --git a/src/core/hle/service/am/applet_ae.cpp b/src/core/hle/service/am/applet_ae.cpp index 5421e0da0..0ec4fd4ca 100644 --- a/src/core/hle/service/am/applet_ae.cpp +++ b/src/core/hle/service/am/applet_ae.cpp @@ -41,7 +41,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ICommonStateGetter>(system, msg_queue);      } @@ -49,7 +49,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISelfController>(system, nvflinger);      } @@ -57,7 +57,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IWindowController>(system);      } @@ -65,7 +65,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IAudioController>(system);      } @@ -73,7 +73,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDisplayController>(system);      } @@ -81,7 +81,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IProcessWindingController>(system);      } @@ -89,7 +89,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDebugFunctions>(system);      } @@ -97,7 +97,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ILibraryAppletCreator>(system);      } @@ -105,7 +105,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IApplicationFunctions>(system);      } @@ -145,7 +145,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ICommonStateGetter>(system, msg_queue);      } @@ -153,7 +153,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISelfController>(system, nvflinger);      } @@ -161,7 +161,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IWindowController>(system);      } @@ -169,7 +169,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IAudioController>(system);      } @@ -177,7 +177,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDisplayController>(system);      } @@ -185,7 +185,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDebugFunctions>(system);      } @@ -193,7 +193,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ILibraryAppletCreator>(system);      } @@ -201,7 +201,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IHomeMenuFunctions>(system);      } @@ -209,7 +209,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IGlobalStateController>(system);      } @@ -217,7 +217,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IApplicationCreator>(system);      } @@ -229,7 +229,7 @@ void AppletAE::OpenSystemAppletProxy(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISystemAppletProxy>(nvflinger, msg_queue, system);  } @@ -237,7 +237,7 @@ void AppletAE::OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger, msg_queue, system);  } @@ -245,7 +245,7 @@ void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger, msg_queue, system);  } diff --git a/src/core/hle/service/am/applet_oe.cpp b/src/core/hle/service/am/applet_oe.cpp index f9eba8f52..b8859f4e6 100644 --- a/src/core/hle/service/am/applet_oe.cpp +++ b/src/core/hle/service/am/applet_oe.cpp @@ -39,7 +39,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IAudioController>(system);      } @@ -47,7 +47,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDisplayController>(system);      } @@ -55,7 +55,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDebugFunctions>(system);      } @@ -63,7 +63,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IWindowController>(system);      } @@ -71,7 +71,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISelfController>(system, nvflinger);      } @@ -79,7 +79,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ICommonStateGetter>(system, msg_queue);      } @@ -87,7 +87,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ILibraryAppletCreator>(system);      } @@ -95,7 +95,7 @@ private:          LOG_DEBUG(Service_AM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IApplicationFunctions>(system);      } @@ -107,7 +107,7 @@ void AppletOE::OpenApplicationProxy(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AM, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IApplicationProxy>(nvflinger, msg_queue, system);  } diff --git a/src/core/hle/service/am/applets/controller.h b/src/core/hle/service/am/applets/controller.h index 2d4dae0bd..20617e91f 100644 --- a/src/core/hle/service/am/applets/controller.h +++ b/src/core/hle/service/am/applets/controller.h @@ -129,7 +129,7 @@ private:      ControllerSupportArgNew controller_user_arg_new;      ControllerUpdateFirmwareArg controller_update_arg;      bool complete{false}; -    ResultCode status{RESULT_SUCCESS}; +    ResultCode status{ResultSuccess};      bool is_single_mode{false};      std::vector<u8> out_data;  }; diff --git a/src/core/hle/service/am/applets/error.cpp b/src/core/hle/service/am/applets/error.cpp index 08348b180..c724e5d5b 100644 --- a/src/core/hle/service/am/applets/error.cpp +++ b/src/core/hle/service/am/applets/error.cpp @@ -135,7 +135,7 @@ bool Error::TransactionComplete() const {  }  ResultCode Error::GetStatus() const { -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void Error::ExecuteInteractive() { diff --git a/src/core/hle/service/am/applets/error.h b/src/core/hle/service/am/applets/error.h index e606d12ce..8aa9046a5 100644 --- a/src/core/hle/service/am/applets/error.h +++ b/src/core/hle/service/am/applets/error.h @@ -42,7 +42,7 @@ private:      union ErrorArguments;      const Core::Frontend::ErrorApplet& frontend; -    ResultCode error_code = RESULT_SUCCESS; +    ResultCode error_code = ResultSuccess;      ErrorAppletMode mode = ErrorAppletMode::ShowError;      std::unique_ptr<ErrorArguments> args; diff --git a/src/core/hle/service/am/applets/general_backend.cpp b/src/core/hle/service/am/applets/general_backend.cpp index e95499edd..9fcb9f95b 100644 --- a/src/core/hle/service/am/applets/general_backend.cpp +++ b/src/core/hle/service/am/applets/general_backend.cpp @@ -76,7 +76,7 @@ bool Auth::TransactionComplete() const {  }  ResultCode Auth::GetStatus() const { -    return successful ? RESULT_SUCCESS : ERROR_INVALID_PIN; +    return successful ? ResultSuccess : ERROR_INVALID_PIN;  }  void Auth::ExecuteInteractive() { @@ -175,7 +175,7 @@ bool PhotoViewer::TransactionComplete() const {  }  ResultCode PhotoViewer::GetStatus() const { -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void PhotoViewer::ExecuteInteractive() { @@ -229,7 +229,7 @@ bool StubApplet::TransactionComplete() const {  ResultCode StubApplet::GetStatus() const {      LOG_WARNING(Service_AM, "called (STUBBED)"); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void StubApplet::ExecuteInteractive() { diff --git a/src/core/hle/service/am/applets/profile_select.cpp b/src/core/hle/service/am/applets/profile_select.cpp index c91a9776a..37048be26 100644 --- a/src/core/hle/service/am/applets/profile_select.cpp +++ b/src/core/hle/service/am/applets/profile_select.cpp @@ -23,7 +23,7 @@ ProfileSelect::~ProfileSelect() = default;  void ProfileSelect::Initialize() {      complete = false; -    status = RESULT_SUCCESS; +    status = ResultSuccess;      final_data.clear();      Applet::Initialize(); diff --git a/src/core/hle/service/am/applets/profile_select.h b/src/core/hle/service/am/applets/profile_select.h index f0dd6c1f3..8fb76e6c4 100644 --- a/src/core/hle/service/am/applets/profile_select.h +++ b/src/core/hle/service/am/applets/profile_select.h @@ -51,7 +51,7 @@ private:      UserSelectionConfig config;      bool complete = false; -    ResultCode status = RESULT_SUCCESS; +    ResultCode status = ResultSuccess;      std::vector<u8> final_data;      Core::System& system;  }; diff --git a/src/core/hle/service/am/applets/software_keyboard.cpp b/src/core/hle/service/am/applets/software_keyboard.cpp index b05a5da04..00dfe1675 100644 --- a/src/core/hle/service/am/applets/software_keyboard.cpp +++ b/src/core/hle/service/am/applets/software_keyboard.cpp @@ -273,8 +273,13 @@ void SoftwareKeyboard::ProcessTextCheck() {      std::memcpy(&swkbd_text_check, text_check_data.data(), sizeof(SwkbdTextCheck)); -    std::u16string text_check_message = Common::UTF16StringFromFixedZeroTerminatedBuffer( -        swkbd_text_check.text_check_message.data(), swkbd_text_check.text_check_message.size()); +    std::u16string text_check_message = +        swkbd_text_check.text_check_result == SwkbdTextCheckResult::Failure || +                swkbd_text_check.text_check_result == SwkbdTextCheckResult::Confirm +            ? Common::UTF16StringFromFixedZeroTerminatedBuffer( +                  swkbd_text_check.text_check_message.data(), +                  swkbd_text_check.text_check_message.size()) +            : u"";      LOG_INFO(Service_AM, "\nTextCheckResult: {}\nTextCheckMessage: {}",               GetTextCheckResultName(swkbd_text_check.text_check_result), @@ -285,10 +290,10 @@ void SoftwareKeyboard::ProcessTextCheck() {          SubmitNormalOutputAndExit(SwkbdResult::Ok, current_text);          break;      case SwkbdTextCheckResult::Failure: -        ShowTextCheckDialog(SwkbdTextCheckResult::Failure, text_check_message); +        ShowTextCheckDialog(SwkbdTextCheckResult::Failure, std::move(text_check_message));          break;      case SwkbdTextCheckResult::Confirm: -        ShowTextCheckDialog(SwkbdTextCheckResult::Confirm, text_check_message); +        ShowTextCheckDialog(SwkbdTextCheckResult::Confirm, std::move(text_check_message));          break;      case SwkbdTextCheckResult::Silent:      default: @@ -482,7 +487,7 @@ void SoftwareKeyboard::InitializeFrontendKeyboard() {              max_text_length <= 32 ? SwkbdTextDrawType::Line : SwkbdTextDrawType::Box;          Core::Frontend::KeyboardInitializeParameters initialize_parameters{ -            .ok_text{ok_text}, +            .ok_text{std::move(ok_text)},              .header_text{},              .sub_text{},              .guide_text{}, @@ -558,10 +563,10 @@ void SoftwareKeyboard::InitializeFrontendKeyboard() {                                                 : false;          Core::Frontend::KeyboardInitializeParameters initialize_parameters{ -            .ok_text{ok_text}, -            .header_text{header_text}, -            .sub_text{sub_text}, -            .guide_text{guide_text}, +            .ok_text{std::move(ok_text)}, +            .header_text{std::move(header_text)}, +            .sub_text{std::move(sub_text)}, +            .guide_text{std::move(guide_text)},              .initial_text{initial_text},              .max_text_length{max_text_length},              .min_text_length{min_text_length}, @@ -590,7 +595,7 @@ void SoftwareKeyboard::ShowNormalKeyboard() {  void SoftwareKeyboard::ShowTextCheckDialog(SwkbdTextCheckResult text_check_result,                                             std::u16string text_check_message) { -    frontend.ShowTextCheckDialog(text_check_result, text_check_message); +    frontend.ShowTextCheckDialog(text_check_result, std::move(text_check_message));  }  void SoftwareKeyboard::ShowInlineKeyboard() { @@ -653,7 +658,7 @@ void SoftwareKeyboard::InlineTextChanged() {  void SoftwareKeyboard::ExitKeyboard() {      complete = true; -    status = RESULT_SUCCESS; +    status = ResultSuccess;      frontend.ExitKeyboard(); diff --git a/src/core/hle/service/am/applets/software_keyboard.h b/src/core/hle/service/am/applets/software_keyboard.h index 7bdef78a7..e3fc733d0 100644 --- a/src/core/hle/service/am/applets/software_keyboard.h +++ b/src/core/hle/service/am/applets/software_keyboard.h @@ -160,7 +160,7 @@ private:      bool is_background{false};      bool complete{false}; -    ResultCode status{RESULT_SUCCESS}; +    ResultCode status{ResultSuccess};  };  } // namespace Service::AM::Applets diff --git a/src/core/hle/service/am/applets/web_browser.h b/src/core/hle/service/am/applets/web_browser.h index cdeaf2c40..9f81214b6 100644 --- a/src/core/hle/service/am/applets/web_browser.h +++ b/src/core/hle/service/am/applets/web_browser.h @@ -68,7 +68,7 @@ private:      const Core::Frontend::WebBrowserApplet& frontend;      bool complete{false}; -    ResultCode status{RESULT_SUCCESS}; +    ResultCode status{ResultSuccess};      WebAppletVersion web_applet_version{};      WebArgHeader web_arg_header{}; diff --git a/src/core/hle/service/aoc/aoc_u.cpp b/src/core/hle/service/aoc/aoc_u.cpp index 1863260f1..fec704c65 100644 --- a/src/core/hle/service/aoc/aoc_u.cpp +++ b/src/core/hle/service/aoc/aoc_u.cpp @@ -76,7 +76,7 @@ private:          LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetDeliveryTarget(Kernel::HLERequestContext& ctx) { @@ -88,14 +88,14 @@ private:          LOG_WARNING(Service_AOC, "(STUBBED) called, unknown_1={}", unknown_1);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetPurchasedEventReadableHandle(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_AOC, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(purchased_event.GetReadableEvent());      } @@ -144,7 +144,7 @@ void AOC_U::CountAddOnContent(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AOC, "called. process_id={}", params.process_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      const auto current = system.CurrentProcess()->GetTitleID(); @@ -190,7 +190,7 @@ void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) {      if (out.size() < offset) {          IPC::ResponseBuilder rb{ctx, 2};          // TODO(DarkLordZach): Find the correct error code. -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -201,7 +201,7 @@ void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(out);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(out_count);  } @@ -217,7 +217,7 @@ void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_AOC, "called. process_id={}", params.process_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      const auto title_id = system.CurrentProcess()->GetTitleID();      const FileSys::PatchManager pm{title_id, system.GetFileSystemController(), @@ -246,14 +246,14 @@ void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) {                  process_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void AOC_U::GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AOC, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(aoc_change_event.GetReadableEvent());  } @@ -261,7 +261,7 @@ void AOC_U::CreateEcPurchasedEventManager(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_AOC, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IPurchaseEventManager>(system);  } @@ -269,7 +269,7 @@ void AOC_U::CreatePermanentEcPurchasedEventManager(Kernel::HLERequestContext& ct      LOG_WARNING(Service_AOC, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IPurchaseEventManager>(system);  } diff --git a/src/core/hle/service/apm/interface.cpp b/src/core/hle/service/apm/interface.cpp index 0bff97a37..d69ddd135 100644 --- a/src/core/hle/service/apm/interface.cpp +++ b/src/core/hle/service/apm/interface.cpp @@ -33,7 +33,7 @@ private:          controller.SetPerformanceConfiguration(mode, config);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetPerformanceConfiguration(Kernel::HLERequestContext& ctx) { @@ -43,7 +43,7 @@ private:          LOG_DEBUG(Service_APM, "called mode={}", mode);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushEnum(controller.GetCurrentPerformanceConfiguration(mode));      } @@ -67,7 +67,7 @@ void APM::OpenSession(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_APM, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISession>(system, controller);  } @@ -82,7 +82,7 @@ void APM::IsCpuOverclockEnabled(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_APM, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(false);  } @@ -110,7 +110,7 @@ void APM_Sys::GetPerformanceEvent(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_APM, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISession>(system, controller);  } @@ -123,14 +123,14 @@ void APM_Sys::SetCpuBoostMode(Kernel::HLERequestContext& ctx) {      controller.SetFromCpuBoostMode(mode);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void APM_Sys::GetCurrentPerformanceConfiguration(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_APM, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(          controller.GetCurrentPerformanceConfiguration(controller.GetCurrentPerformanceMode()));  } diff --git a/src/core/hle/service/audio/audctl.cpp b/src/core/hle/service/audio/audctl.cpp index 84890be72..8c4c49b85 100644 --- a/src/core/hle/service/audio/audctl.cpp +++ b/src/core/hle/service/audio/audctl.cpp @@ -57,7 +57,7 @@ void AudCtl::GetTargetVolumeMin(Kernel::HLERequestContext& ctx) {      constexpr s32 target_min_volume = 0;      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(target_min_volume);  } @@ -69,7 +69,7 @@ void AudCtl::GetTargetVolumeMax(Kernel::HLERequestContext& ctx) {      constexpr s32 target_max_volume = 15;      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(target_max_volume);  } diff --git a/src/core/hle/service/audio/audin_u.cpp b/src/core/hle/service/audio/audin_u.cpp index ecd05e4a6..3e7fd6024 100644 --- a/src/core/hle/service/audio/audin_u.cpp +++ b/src/core/hle/service/audio/audin_u.cpp @@ -70,7 +70,7 @@ void AudInU::ListAudioIns(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(device_names);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(static_cast<u32>(device_names.size()));  } @@ -82,7 +82,7 @@ void AudInU::ListAudioInsAutoFiltered(Kernel::HLERequestContext& ctx) {      // device listing just omits the default input device      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(static_cast<u32>(device_count));  } @@ -94,7 +94,7 @@ void AudInU::OpenInOutImpl(Kernel::HLERequestContext& ctx) {      params.state = State::Started;      IPC::ResponseBuilder rb{ctx, 6, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw<AudInOutParams>(params);      rb.PushIpcInterface<IAudioIn>(system);  } diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp index e1ae726f5..804c6b10c 100644 --- a/src/core/hle/service/audio/audout_u.cpp +++ b/src/core/hle/service/audio/audout_u.cpp @@ -91,7 +91,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(static_cast<u32>(stream->IsPlaying() ? AudioState::Started : AudioState::Stopped));      } @@ -107,7 +107,7 @@ private:          audio_core.StartStream(stream);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void StopAudioOut(Kernel::HLERequestContext& ctx) { @@ -118,14 +118,14 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void RegisterBufferEvent(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(buffer_event.GetReadableEvent());      } @@ -150,7 +150,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetReleasedAudioOutBufferImpl(Kernel::HLERequestContext& ctx) { @@ -164,7 +164,7 @@ private:          ctx.WriteBuffer(tags);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(static_cast<u32>(released_buffers.size()));      } @@ -174,7 +174,7 @@ private:          IPC::RequestParser rp{ctx};          const u64 tag{rp.Pop<u64>()};          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(stream->ContainsBuffer(tag));      } @@ -182,7 +182,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(static_cast<u32>(stream->GetQueueSize()));      } @@ -190,7 +190,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(stream->Flush());      } @@ -202,14 +202,14 @@ private:          stream->SetVolume(volume);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetAudioOutVolume(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(stream->GetVolume());      } @@ -246,7 +246,7 @@ void AudOutU::ListAudioOutsImpl(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(DefaultDevice);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(1); // Amount of audio devices  } @@ -279,7 +279,7 @@ void AudOutU::OpenAudioOutImpl(Kernel::HLERequestContext& ctx) {          system, params, *audio_core, std::move(device_name), std::move(unique_name));      IPC::ResponseBuilder rb{ctx, 6, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(DefaultSampleRate);      rb.Push<u32>(params.channel_count);      rb.Push<u32>(static_cast<u32>(AudioCore::Codec::PcmFormat::Int16)); diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp index ae4284adf..800feba6e 100644 --- a/src/core/hle/service/audio/audren_u.cpp +++ b/src/core/hle/service/audio/audren_u.cpp @@ -65,7 +65,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(renderer->GetSampleRate());      } @@ -73,7 +73,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(renderer->GetSampleCount());      } @@ -81,7 +81,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(static_cast<u32>(renderer->GetStreamState()));      } @@ -89,7 +89,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(renderer->GetMixBufferCount());      } @@ -112,7 +112,7 @@ private:          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Stop(Kernel::HLERequestContext& ctx) { @@ -120,14 +120,14 @@ private:          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void QuerySystemEvent(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_Audio, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(system_event.GetReadableEvent());      } @@ -140,14 +140,14 @@ private:          ASSERT(rendering_time_limit_percent <= 100);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetRenderingTimeLimit(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(rendering_time_limit_percent);      } @@ -230,7 +230,7 @@ private:          ctx.WriteBuffer(name_buffer);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(static_cast<u32>(name_buffer.size()));      } @@ -244,7 +244,7 @@ private:          LOG_WARNING(Service_Audio, "(STUBBED) called. name={}, volume={}", name, volume);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetAudioDeviceOutputVolume(Kernel::HLERequestContext& ctx) { @@ -254,7 +254,7 @@ private:          LOG_WARNING(Service_Audio, "(STUBBED) called. name={}", name);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(1.0f);      } @@ -270,7 +270,7 @@ private:          ctx.WriteBuffer(out_device_name);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void QueryAudioDeviceSystemEvent(Kernel::HLERequestContext& ctx) { @@ -279,7 +279,7 @@ private:          buffer_event.GetWritableEvent().Signal();          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(buffer_event.GetReadableEvent());      } @@ -287,7 +287,7 @@ private:          LOG_WARNING(Service_Audio, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(1);      } @@ -296,7 +296,7 @@ private:          LOG_WARNING(Service_Audio, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(buffer_event.GetReadableEvent());      } @@ -304,7 +304,7 @@ private:          LOG_DEBUG(Service_Audio, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(buffer_event.GetReadableEvent());      } @@ -636,7 +636,7 @@ void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {      size = Common::AlignUp(size, 4096);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u64>(size);      LOG_DEBUG(Service_Audio, "buffer_size=0x{:X}", size); @@ -651,7 +651,7 @@ void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) {      // Revisionless variant of GetAudioDeviceServiceWithRevisionInfo that      // always assumes the initial release revision (REV1).      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IAudioDevice>(system, buffer_event, Common::MakeMagic('R', 'E', 'V', '1'));  } @@ -673,7 +673,7 @@ void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& c      LOG_DEBUG(Service_Audio, "called. revision={:08X}, aruid={:016X}", revision, aruid);      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IAudioDevice>(system, buffer_event, revision);  } @@ -682,7 +682,7 @@ void AudRenU::OpenAudioRendererImpl(Kernel::HLERequestContext& ctx) {      const auto params = rp.PopRaw<AudioCommon::AudioRendererParameter>();      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IAudioRenderer>(system, params, audren_instance_count++);  } diff --git a/src/core/hle/service/audio/hwopus.cpp b/src/core/hle/service/audio/hwopus.cpp index ee5ec8cd6..10e6f7a64 100644 --- a/src/core/hle/service/audio/hwopus.cpp +++ b/src/core/hle/service/audio/hwopus.cpp @@ -80,13 +80,13 @@ private:              LOG_ERROR(Audio, "Failed to decode opus data");              IPC::ResponseBuilder rb{ctx, 2};              // TODO(ogniK): Use correct error code -            rb.Push(RESULT_UNKNOWN); +            rb.Push(ResultUnknown);              return;          }          const u32 param_size = performance != nullptr ? 6 : 4;          IPC::ResponseBuilder rb{ctx, param_size}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(consumed);          rb.Push<u32>(sample_count);          if (performance) { @@ -249,7 +249,7 @@ void HwOpus::GetWorkBufferSize(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Audio, "worker_buffer_sz={}", worker_buffer_sz);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(worker_buffer_sz);  } @@ -281,12 +281,12 @@ void HwOpus::OpenOpusDecoder(Kernel::HLERequestContext& ctx) {          LOG_ERROR(Audio, "Failed to create Opus decoder (error={}).", error);          IPC::ResponseBuilder rb{ctx, 2};          // TODO(ogniK): Use correct error code -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      }      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IHardwareOpusDecoderManager>(          system, OpusDecoderState{std::move(decoder), sample_rate, channel_count});  } diff --git a/src/core/hle/service/bcat/backend/backend.cpp b/src/core/hle/service/bcat/backend/backend.cpp index 0e935bfa6..a78544c88 100644 --- a/src/core/hle/service/bcat/backend/backend.cpp +++ b/src/core/hle/service/bcat/backend/backend.cpp @@ -106,7 +106,7 @@ bool NullBackend::Synchronize(TitleIDVersion title, ProgressServiceBackend& prog      LOG_DEBUG(Service_BCAT, "called, title_id={:016X}, build_id={:016X}", title.title_id,                title.build_id); -    progress.FinishDownload(RESULT_SUCCESS); +    progress.FinishDownload(ResultSuccess);      return true;  } @@ -115,7 +115,7 @@ bool NullBackend::SynchronizeDirectory(TitleIDVersion title, std::string name,      LOG_DEBUG(Service_BCAT, "called, title_id={:016X}, build_id={:016X}, name={}", title.title_id,                title.build_id, name); -    progress.FinishDownload(RESULT_SUCCESS); +    progress.FinishDownload(ResultSuccess);      return true;  } diff --git a/src/core/hle/service/bcat/backend/backend.h b/src/core/hle/service/bcat/backend/backend.h index f591a362a..e79a9c2ad 100644 --- a/src/core/hle/service/bcat/backend/backend.h +++ b/src/core/hle/service/bcat/backend/backend.h @@ -51,7 +51,7 @@ struct DeliveryCacheProgressImpl {      };      Status status; -    ResultCode result = RESULT_SUCCESS; +    ResultCode result = ResultSuccess;      DirectoryName current_directory;      FileName current_file;      s64 current_downloaded_bytes; ///< Bytes downloaded on current file. diff --git a/src/core/hle/service/bcat/backend/boxcat.cpp b/src/core/hle/service/bcat/backend/boxcat.cpp index 3cc397604..d9fdc2dca 100644 --- a/src/core/hle/service/bcat/backend/boxcat.cpp +++ b/src/core/hle/service/bcat/backend/boxcat.cpp @@ -121,7 +121,7 @@ void HandleDownloadDisplayResult(const AM::Applets::AppletManager& applet_manage      const auto& frontend{applet_manager.GetAppletFrontendSet()};      frontend.error->ShowCustomErrorText( -        RESULT_UNKNOWN, "There was an error while attempting to use Boxcat.", +        ResultUnknown, "There was an error while attempting to use Boxcat.",          DOWNLOAD_RESULT_LOG_MESSAGES[static_cast<std::size_t>(res)], [] {});  } @@ -300,7 +300,7 @@ void SynchronizeInternal(AM::Applets::AppletManager& applet_manager, DirectoryGe          const auto dir = dir_getter(title.title_id);          if (dir)              progress.SetTotalSize(dir->GetSize()); -        progress.FinishDownload(RESULT_SUCCESS); +        progress.FinishDownload(ResultSuccess);          return;      } @@ -383,7 +383,7 @@ void SynchronizeInternal(AM::Applets::AppletManager& applet_manager, DirectoryGe          }      } -    progress.FinishDownload(RESULT_SUCCESS); +    progress.FinishDownload(ResultSuccess);  }  bool Boxcat::Synchronize(TitleIDVersion title, ProgressServiceBackend& progress) { diff --git a/src/core/hle/service/bcat/module.cpp b/src/core/hle/service/bcat/module.cpp index 0206cbb6a..44e4d0509 100644 --- a/src/core/hle/service/bcat/module.cpp +++ b/src/core/hle/service/bcat/module.cpp @@ -106,7 +106,7 @@ private:          LOG_DEBUG(Service_BCAT, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(event);      } @@ -116,7 +116,7 @@ private:          ctx.WriteBuffer(impl);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      Kernel::KReadableEvent& event; @@ -185,7 +185,7 @@ private:                              GetProgressBackend(SyncType::Normal));          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface(CreateProgressService(SyncType::Normal));      } @@ -202,7 +202,7 @@ private:                                       name, GetProgressBackend(SyncType::Directory));          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface(CreateProgressService(SyncType::Directory));      } @@ -235,7 +235,7 @@ private:          backend.SetPassphrase(title_id, passphrase);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void ClearDeliveryCacheStorage(Kernel::HLERequestContext& ctx) { @@ -259,7 +259,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      ProgressServiceBackend& GetProgressBackend(SyncType type) { @@ -278,7 +278,7 @@ void Module::Interface::CreateBcatService(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_BCAT, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IBcatService>(system, *backend);  } @@ -340,7 +340,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Read(Kernel::HLERequestContext& ctx) { @@ -362,7 +362,7 @@ private:          ctx.WriteBuffer(buffer);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(buffer.size());      } @@ -376,7 +376,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(current_file->GetSize());      } @@ -390,7 +390,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 6}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw(DigestFile(current_file));      } @@ -443,7 +443,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Read(Kernel::HLERequestContext& ctx) { @@ -472,7 +472,7 @@ private:          ctx.WriteBuffer(entries);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(static_cast<u32>(write_size * sizeof(DeliveryCacheDirectoryEntry)));      } @@ -489,7 +489,7 @@ private:          const auto files = current_dir->GetFiles();          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(static_cast<u32>(files.size()));      } @@ -524,7 +524,7 @@ private:          LOG_DEBUG(Service_BCAT, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDeliveryCacheFileService>(system, root);      } @@ -532,7 +532,7 @@ private:          LOG_DEBUG(Service_BCAT, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDeliveryCacheDirectoryService>(system, root);      } @@ -546,7 +546,7 @@ private:          next_read_index += size;          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(static_cast<u32>(size));      } @@ -560,7 +560,7 @@ void Module::Interface::CreateDeliveryCacheStorageService(Kernel::HLERequestCont      const auto title_id = system.CurrentProcess()->GetTitleID();      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IDeliveryCacheStorageService>(system, fsc.GetBCATDirectory(title_id));  } @@ -572,7 +572,7 @@ void Module::Interface::CreateDeliveryCacheStorageServiceWithApplicationId(      LOG_DEBUG(Service_BCAT, "called, title_id={:016X}", title_id);      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IDeliveryCacheStorageService>(system, fsc.GetBCATDirectory(title_id));  } diff --git a/src/core/hle/service/btdrv/btdrv.cpp b/src/core/hle/service/btdrv/btdrv.cpp index fd97a822c..46da438ef 100644 --- a/src/core/hle/service/btdrv/btdrv.cpp +++ b/src/core/hle/service/btdrv/btdrv.cpp @@ -44,7 +44,7 @@ private:          LOG_WARNING(Service_BTM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(register_event.GetReadableEvent());      } diff --git a/src/core/hle/service/btm/btm.cpp b/src/core/hle/service/btm/btm.cpp index 3b5ef69e1..3ab29036a 100644 --- a/src/core/hle/service/btm/btm.cpp +++ b/src/core/hle/service/btm/btm.cpp @@ -76,7 +76,7 @@ private:          LOG_WARNING(Service_BTM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(scan_event.GetReadableEvent());      } @@ -84,7 +84,7 @@ private:          LOG_WARNING(Service_BTM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(connection_event.GetReadableEvent());      } @@ -92,7 +92,7 @@ private:          LOG_WARNING(Service_BTM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(service_discovery.GetReadableEvent());      } @@ -100,7 +100,7 @@ private:          LOG_WARNING(Service_BTM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(config_event.GetReadableEvent());      } @@ -126,7 +126,7 @@ private:          LOG_DEBUG(Service_BTM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IBtmUserCore>(system);      }  }; @@ -273,7 +273,7 @@ private:          LOG_DEBUG(Service_BTM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IBtmSystemCore>(system);      }  }; diff --git a/src/core/hle/service/caps/caps_c.cpp b/src/core/hle/service/caps/caps_c.cpp index 45c1c9d30..a9ad5c8b1 100644 --- a/src/core/hle/service/caps/caps_c.cpp +++ b/src/core/hle/service/caps/caps_c.cpp @@ -84,7 +84,7 @@ void CAPS_C::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) {                  library_version, applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  } // namespace Service::Capture diff --git a/src/core/hle/service/caps/caps_su.cpp b/src/core/hle/service/caps/caps_su.cpp index eae39eb7b..45b705950 100644 --- a/src/core/hle/service/caps/caps_su.cpp +++ b/src/core/hle/service/caps/caps_su.cpp @@ -33,7 +33,7 @@ void CAPS_SU::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) {                  library_version, applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  } // namespace Service::Capture diff --git a/src/core/hle/service/caps/caps_u.cpp b/src/core/hle/service/caps/caps_u.cpp index 10b8d54b1..8f8ee2bb4 100644 --- a/src/core/hle/service/caps/caps_u.cpp +++ b/src/core/hle/service/caps/caps_u.cpp @@ -62,7 +62,7 @@ void CAPS_U::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) {                  library_version, applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void CAPS_U::GetAlbumContentsFileListForApplication(Kernel::HLERequestContext& ctx) { @@ -89,7 +89,7 @@ void CAPS_U::GetAlbumContentsFileListForApplication(Kernel::HLERequestContext& c          total_entries_1, total_entries_2);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(total_entries_1);      rb.Push(total_entries_2);  } diff --git a/src/core/hle/service/es/es.cpp b/src/core/hle/service/es/es.cpp index 26d1e3306..110c7cb1c 100644 --- a/src/core/hle/service/es/es.cpp +++ b/src/core/hle/service/es/es.cpp @@ -137,7 +137,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetTitleKey(Kernel::HLERequestContext& ctx) { @@ -163,7 +163,7 @@ private:          ctx.WriteBuffer(key);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void CountCommonTicket(Kernel::HLERequestContext& ctx) { @@ -172,7 +172,7 @@ private:          const u32 count = static_cast<u32>(keys.GetCommonTickets().size());          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(count);      } @@ -182,7 +182,7 @@ private:          const u32 count = static_cast<u32>(keys.GetPersonalizedTickets().size());          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(count);      } @@ -205,7 +205,7 @@ private:          ctx.WriteBuffer(ids.data(), out_entries * sizeof(u128));          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(out_entries);      } @@ -228,7 +228,7 @@ private:          ctx.WriteBuffer(ids.data(), out_entries * sizeof(u128));          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(out_entries);      } @@ -244,7 +244,7 @@ private:          const auto ticket = keys.GetCommonTickets().at(rights_id);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(ticket.GetSize());      } @@ -260,7 +260,7 @@ private:          const auto ticket = keys.GetPersonalizedTickets().at(rights_id);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(ticket.GetSize());      } @@ -279,7 +279,7 @@ private:          ctx.WriteBuffer(&ticket, write_size);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(write_size);      } @@ -298,7 +298,7 @@ private:          ctx.WriteBuffer(&ticket, write_size);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(write_size);      } diff --git a/src/core/hle/service/fatal/fatal.cpp b/src/core/hle/service/fatal/fatal.cpp index b7666e95a..2c2619a7d 100644 --- a/src/core/hle/service/fatal/fatal.cpp +++ b/src/core/hle/service/fatal/fatal.cpp @@ -135,7 +135,7 @@ void Module::Interface::ThrowFatal(Kernel::HLERequestContext& ctx) {      ThrowFatalError(system, error_code, FatalType::ErrorScreen, {});      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::ThrowFatalWithPolicy(Kernel::HLERequestContext& ctx) { @@ -147,7 +147,7 @@ void Module::Interface::ThrowFatalWithPolicy(Kernel::HLERequestContext& ctx) {      ThrowFatalError(system, error_code, fatal_type,                      {}); // No info is passed with ThrowFatalWithPolicy      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::ThrowFatalWithCpuContext(Kernel::HLERequestContext& ctx) { @@ -163,7 +163,7 @@ void Module::Interface::ThrowFatalWithCpuContext(Kernel::HLERequestContext& ctx)      ThrowFatalError(system, error_code, fatal_type, info);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { diff --git a/src/core/hle/service/fgm/fgm.cpp b/src/core/hle/service/fgm/fgm.cpp index 9dc1bc52e..25c6c0194 100644 --- a/src/core/hle/service/fgm/fgm.cpp +++ b/src/core/hle/service/fgm/fgm.cpp @@ -45,7 +45,7 @@ private:          LOG_DEBUG(Service_FGM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IRequest>(system);      }  }; diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 78664439d..3c16fe6c7 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp @@ -60,27 +60,27 @@ ResultCode VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64      }      const auto entry_type = GetEntryType(path); -    if (entry_type.Code() == RESULT_SUCCESS) { +    if (entry_type.Code() == ResultSuccess) {          return FileSys::ERROR_PATH_ALREADY_EXISTS;      }      auto file = dir->CreateFile(Common::FS::GetFilename(path));      if (file == nullptr) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      if (!file->Resize(size)) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) const {      std::string path(Common::FS::SanitizePath(path_));      if (path.empty()) {          // TODO(DarkLordZach): Why do games call this and what should it do? Works as is but... -        return RESULT_SUCCESS; +        return ResultSuccess;      }      auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path)); @@ -89,10 +89,10 @@ ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) cons      }      if (!dir->DeleteFile(Common::FS::GetFilename(path))) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_) const { @@ -104,9 +104,9 @@ ResultCode VfsDirectoryServiceWrapper::CreateDirectory(const std::string& path_)      auto new_dir = dir->CreateSubdirectory(Common::FS::GetFilename(path));      if (new_dir == nullptr) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_) const { @@ -114,9 +114,9 @@ ResultCode VfsDirectoryServiceWrapper::DeleteDirectory(const std::string& path_)      auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path));      if (!dir->DeleteSubdirectory(Common::FS::GetFilename(path))) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::string& path_) const { @@ -124,9 +124,9 @@ ResultCode VfsDirectoryServiceWrapper::DeleteDirectoryRecursively(const std::str      auto dir = GetDirectoryRelativeWrapped(backing, Common::FS::GetParentPath(path));      if (!dir->DeleteSubdirectoryRecursive(Common::FS::GetFilename(path))) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::string& path) const { @@ -135,10 +135,10 @@ ResultCode VfsDirectoryServiceWrapper::CleanDirectoryRecursively(const std::stri      if (!dir->CleanSubdirectoryRecursive(Common::FS::GetFilename(sanitized_path))) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_, @@ -152,14 +152,14 @@ ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_,              return FileSys::ERROR_PATH_NOT_FOUND;          if (!src->Rename(Common::FS::GetFilename(dest_path))) {              // TODO(DarkLordZach): Find a better error code for this -            return RESULT_UNKNOWN; +            return ResultUnknown;          } -        return RESULT_SUCCESS; +        return ResultSuccess;      }      // Move by hand -- TODO(DarkLordZach): Optimize      auto c_res = CreateFile(dest_path, src->GetSize()); -    if (c_res != RESULT_SUCCESS) +    if (c_res != ResultSuccess)          return c_res;      auto dest = backing->GetFileRelative(dest_path); @@ -170,10 +170,10 @@ ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_,      if (!src->GetContainingDirectory()->DeleteFile(Common::FS::GetFilename(src_path))) {          // TODO(DarkLordZach): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_path_, @@ -187,9 +187,9 @@ ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_pa              return FileSys::ERROR_PATH_NOT_FOUND;          if (!src->Rename(Common::FS::GetFilename(dest_path))) {              // TODO(DarkLordZach): Find a better error code for this -            return RESULT_UNKNOWN; +            return ResultUnknown;          } -        return RESULT_SUCCESS; +        return ResultSuccess;      }      // TODO(DarkLordZach): Implement renaming across the tree (move). @@ -199,7 +199,7 @@ ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_pa                 src_path, dest_path);      // TODO(DarkLordZach): Find a better error code for this -    return RESULT_UNKNOWN; +    return ResultUnknown;  }  ResultVal<FileSys::VirtualFile> VfsDirectoryServiceWrapper::OpenFile(const std::string& path_, @@ -258,7 +258,7 @@ FileSystemController::~FileSystemController() = default;  ResultCode FileSystemController::RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory) {      romfs_factory = std::move(factory);      LOG_DEBUG(Service_FS, "Registered RomFS"); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode FileSystemController::RegisterSaveData( @@ -266,21 +266,21 @@ ResultCode FileSystemController::RegisterSaveData(      ASSERT_MSG(save_data_factory == nullptr, "Tried to register a second save data");      save_data_factory = std::move(factory);      LOG_DEBUG(Service_FS, "Registered save data"); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode FileSystemController::RegisterSDMC(std::unique_ptr<FileSys::SDMCFactory>&& factory) {      ASSERT_MSG(sdmc_factory == nullptr, "Tried to register a second SDMC");      sdmc_factory = std::move(factory);      LOG_DEBUG(Service_FS, "Registered SDMC"); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode FileSystemController::RegisterBIS(std::unique_ptr<FileSys::BISFactory>&& factory) {      ASSERT_MSG(bis_factory == nullptr, "Tried to register a second BIS");      bis_factory = std::move(factory);      LOG_DEBUG(Service_FS, "Registered BIS"); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void FileSystemController::SetPackedUpdate(FileSys::VirtualFile update_raw) { @@ -297,7 +297,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFSCurrentProcess()      if (romfs_factory == nullptr) {          // TODO(bunnei): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      return romfs_factory->OpenCurrentProcess(system.CurrentProcess()->GetTitleID()); @@ -309,7 +309,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenPatchedRomFS(      if (romfs_factory == nullptr) {          // TODO: Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      return romfs_factory->OpenPatchedRomFS(title_id, type); @@ -322,7 +322,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenPatchedRomFSWithProgra      if (romfs_factory == nullptr) {          // TODO: Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      return romfs_factory->OpenPatchedRomFSWithProgramIndex(title_id, program_index, type); @@ -335,7 +335,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFS(      if (romfs_factory == nullptr) {          // TODO(bunnei): Find a better error code for this -        return RESULT_UNKNOWN; +        return ResultUnknown;      }      return romfs_factory->Open(title_id, storage_id, type); @@ -721,6 +721,10 @@ FileSys::VirtualDir FileSystemController::GetBCATDirectory(u64 title_id) const {      return bis_factory->GetBCATDirectory(title_id);  } +void FileSystemController::SetAutoSaveDataCreation(bool enable) { +    save_data_factory->SetAutoCreate(enable); +} +  void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite) {      if (overwrite) {          bis_factory = nullptr; diff --git a/src/core/hle/service/filesystem/filesystem.h b/src/core/hle/service/filesystem/filesystem.h index 7102d3f9a..b6b1b9220 100644 --- a/src/core/hle/service/filesystem/filesystem.h +++ b/src/core/hle/service/filesystem/filesystem.h @@ -120,6 +120,8 @@ public:      FileSys::VirtualDir GetBCATDirectory(u64 title_id) const; +    void SetAutoSaveDataCreation(bool enable); +      // Creates the SaveData, SDMC, and BIS Factories. Should be called once and before any function      // above is called.      void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite = true); diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index 92ea27074..3af9881c2 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp @@ -100,7 +100,7 @@ private:          ctx.WriteBuffer(output);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetSize(Kernel::HLERequestContext& ctx) { @@ -108,7 +108,7 @@ private:          LOG_DEBUG(Service_FS, "called, size={}", size);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(size);      }  }; @@ -162,7 +162,7 @@ private:          ctx.WriteBuffer(output);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(static_cast<u64>(output.size()));      } @@ -206,7 +206,7 @@ private:                     written);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Flush(Kernel::HLERequestContext& ctx) { @@ -215,7 +215,7 @@ private:          // Exists for SDK compatibiltity -- No need to flush file.          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetSize(Kernel::HLERequestContext& ctx) { @@ -226,7 +226,7 @@ private:          backend->Resize(size);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetSize(Kernel::HLERequestContext& ctx) { @@ -234,7 +234,7 @@ private:          LOG_DEBUG(Service_FS, "called, size={}", size);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(size);      }  }; @@ -290,7 +290,7 @@ private:          ctx.WriteBuffer(begin, range_size);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(actual_entries);      } @@ -300,7 +300,7 @@ private:          u64 count = entries.size() - next_entry_index;          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(count);      }  }; @@ -430,7 +430,7 @@ public:          auto file = std::make_shared<IFile>(system, result.Unwrap());          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IFile>(std::move(file));      } @@ -455,7 +455,7 @@ public:          auto directory = std::make_shared<IDirectory>(system, result.Unwrap());          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDirectory>(std::move(directory));      } @@ -473,7 +473,7 @@ public:          }          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(static_cast<u32>(*result));      } @@ -481,14 +481,14 @@ public:          LOG_WARNING(Service_FS, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetFreeSpaceSize(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_FS, "called");          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(size.get_free_size());      } @@ -496,7 +496,7 @@ public:          LOG_DEBUG(Service_FS, "called");          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(size.get_total_size());      } @@ -538,7 +538,7 @@ public:          ctx.WriteBuffer(begin, range_size);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(static_cast<u32>(actual_entries));      } @@ -764,7 +764,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)          {1000, nullptr, "SetBisRootForHost"},          {1001, nullptr, "SetSaveDataSize"},          {1002, nullptr, "SetSaveDataRootPath"}, -        {1003, nullptr, "DisableAutoSaveDataCreation"}, +        {1003, &FSP_SRV::DisableAutoSaveDataCreation, "DisableAutoSaveDataCreation"},          {1004, &FSP_SRV::SetGlobalAccessLogMode, "SetGlobalAccessLogMode"},          {1005, &FSP_SRV::GetGlobalAccessLogMode, "GetGlobalAccessLogMode"},          {1006, &FSP_SRV::OutputAccessLogToSdCard, "OutputAccessLogToSdCard"}, @@ -796,7 +796,7 @@ void FSP_SRV::SetCurrentProcess(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_FS, "called. current_process_id=0x{:016X}", current_process_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void FSP_SRV::OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx) { @@ -807,7 +807,7 @@ void FSP_SRV::OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_FS, "(STUBBED) called with type={}, title_id={:016X}", type, title_id);      IPC::ResponseBuilder rb{ctx, 2, 0, 0}; -    rb.Push(RESULT_UNKNOWN); +    rb.Push(ResultUnknown);  }  void FSP_SRV::OpenSdCardFileSystem(Kernel::HLERequestContext& ctx) { @@ -818,7 +818,7 @@ void FSP_SRV::OpenSdCardFileSystem(Kernel::HLERequestContext& ctx) {                                        SizeGetter::FromStorageId(fsc, FileSys::StorageId::SdCard));      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IFileSystem>(std::move(filesystem));  } @@ -835,7 +835,7 @@ void FSP_SRV::CreateSaveDataFileSystem(Kernel::HLERequestContext& ctx) {      fsc.CreateSaveData(FileSys::SaveDataSpaceId::NandUser, save_struct);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void FSP_SRV::OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx) { @@ -879,7 +879,7 @@ void FSP_SRV::OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx) {                                                      SizeGetter::FromStorageId(fsc, id));      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IFileSystem>(std::move(filesystem));  } @@ -894,7 +894,7 @@ void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext&      LOG_INFO(Service_FS, "called, space={}", space);      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISaveDataInfoReader>(          std::make_shared<ISaveDataInfoReader>(system, space, fsc));  } @@ -903,7 +903,7 @@ void FSP_SRV::WriteSaveDataFileSystemExtraDataBySaveDataAttribute(Kernel::HLEReq      LOG_WARNING(Service_FS, "(STUBBED) called.");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void FSP_SRV::ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute( @@ -929,7 +929,7 @@ void FSP_SRV::ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute(                  parameters.attribute.index);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(flags);  } @@ -941,14 +941,14 @@ void FSP_SRV::OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx) {          // TODO (bunnei): Find the right error code to use here          LOG_CRITICAL(Service_FS, "no file system interface available!");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      }      auto storage = std::make_shared<IStorage>(system, std::move(current_romfs.Unwrap()));      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IStorage>(std::move(storage));  } @@ -968,7 +968,7 @@ void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) {          if (archive != nullptr) {              IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);              rb.PushIpcInterface(std::make_shared<IStorage>(system, archive));              return;          } @@ -978,7 +978,7 @@ void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) {                    "could not open data storage with title_id={:016X}, storage_id={:02X}", title_id,                    storage_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -988,7 +988,7 @@ void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) {          system, pm.PatchRomFS(std::move(data.Unwrap()), 0, FileSys::ContentRecordType::Data));      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IStorage>(std::move(storage));  } @@ -1019,17 +1019,26 @@ void FSP_SRV::OpenDataStorageWithProgramIndex(Kernel::HLERequestContext& ctx) {          LOG_ERROR(Service_FS, "could not open storage with program_index={}", program_index);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      }      auto storage = std::make_shared<IStorage>(system, std::move(patched_romfs.Unwrap()));      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IStorage>(std::move(storage));  } +void FSP_SRV::DisableAutoSaveDataCreation(Kernel::HLERequestContext& ctx) { +    LOG_DEBUG(Service_FS, "called"); + +    fsc.SetAutoSaveDataCreation(false); + +    IPC::ResponseBuilder rb{ctx, 2}; +    rb.Push(ResultSuccess); +} +  void FSP_SRV::SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {      IPC::RequestParser rp{ctx};      log_mode = rp.PopEnum<LogMode>(); @@ -1037,14 +1046,14 @@ void FSP_SRV::SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_FS, "called, log_mode={:08X}", log_mode);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_FS, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(log_mode);  } @@ -1058,14 +1067,14 @@ void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) {      reporter.SaveFilesystemAccessReport(log_mode, std::move(log));      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void FSP_SRV::GetProgramIndexForAccessLog(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_FS, "called");      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(AccessLogVersion::Latest);      rb.Push(access_log_program_index);  } @@ -1088,14 +1097,14 @@ private:          LOG_WARNING(Service_FS, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Commit(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_FS, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  }; @@ -1103,7 +1112,7 @@ void FSP_SRV::OpenMultiCommitManager(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_FS, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IMultiCommitManager>(std::make_shared<IMultiCommitManager>(system));  } diff --git a/src/core/hle/service/filesystem/fsp_srv.h b/src/core/hle/service/filesystem/fsp_srv.h index b01b924eb..ff7455a20 100644 --- a/src/core/hle/service/filesystem/fsp_srv.h +++ b/src/core/hle/service/filesystem/fsp_srv.h @@ -50,6 +50,7 @@ private:      void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx);      void OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);      void OpenDataStorageWithProgramIndex(Kernel::HLERequestContext& ctx); +    void DisableAutoSaveDataCreation(Kernel::HLERequestContext& ctx);      void SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);      void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);      void OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx); diff --git a/src/core/hle/service/friend/friend.cpp b/src/core/hle/service/friend/friend.cpp index 91c202952..c5f88bce7 100644 --- a/src/core/hle/service/friend/friend.cpp +++ b/src/core/hle/service/friend/friend.cpp @@ -135,7 +135,7 @@ private:          // blocked users.          LOG_WARNING(Service_Friend, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(0); // Indicates there are no blocked users      } @@ -143,14 +143,14 @@ private:          // Stub used by Splatoon 2          LOG_WARNING(Service_Friend, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void UpdateUserPresence(Kernel::HLERequestContext& ctx) {          // Stub used by Retro City Rampage          LOG_WARNING(Service_Friend, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetPlayHistoryRegistrationKey(Kernel::HLERequestContext& ctx) { @@ -162,7 +162,7 @@ private:                      uuid.Format());          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetFriendList(Kernel::HLERequestContext& ctx) { @@ -175,7 +175,7 @@ private:                      uuid.Format(), pid);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(0); // Friend count          // TODO(ogniK): Return a buffer of u64s which are the "NetworkServiceAccountId" @@ -206,7 +206,7 @@ private:          LOG_DEBUG(Service_Friend, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(notification_event.GetReadableEvent());      } @@ -218,7 +218,7 @@ private:          std::memset(&states, 0, sizeof(States));          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Pop(Kernel::HLERequestContext& ctx) { @@ -249,7 +249,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 6}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<SizedNotificationInfo>(notification);      } @@ -280,7 +280,7 @@ private:  void Module::Interface::CreateFriendService(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IFriendService>(system);      LOG_DEBUG(Service_Friend, "called");  } @@ -292,7 +292,7 @@ void Module::Interface::CreateNotificationService(Kernel::HLERequestContext& ctx      LOG_DEBUG(Service_Friend, "called, uuid={}", uuid.Format());      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<INotificationService>(uuid, system);  } diff --git a/src/core/hle/service/glue/arp.cpp b/src/core/hle/service/glue/arp.cpp index 6ad62ee5a..ca25df67e 100644 --- a/src/core/hle/service/glue/arp.cpp +++ b/src/core/hle/service/glue/arp.cpp @@ -79,7 +79,7 @@ void ARP_R::GetApplicationLaunchProperty(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 6}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(*res);  } @@ -99,7 +99,7 @@ void ARP_R::GetApplicationLaunchPropertyWithApplicationId(Kernel::HLERequestCont      }      IPC::ResponseBuilder rb{ctx, 6}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(*res);  } @@ -129,7 +129,7 @@ void ARP_R::GetApplicationControlProperty(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(*res);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ARP_R::GetApplicationControlPropertyWithApplicationId(Kernel::HLERequestContext& ctx) { @@ -150,7 +150,7 @@ void ARP_R::GetApplicationControlPropertyWithApplicationId(Kernel::HLERequestCon      ctx.WriteBuffer(*res);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  class IRegistrar final : public ServiceFramework<IRegistrar> { @@ -198,7 +198,7 @@ private:          issued = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetApplicationLaunchProperty(Kernel::HLERequestContext& ctx) { @@ -217,7 +217,7 @@ private:          launch = rp.PopRaw<ApplicationLaunchProperty>();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetApplicationControlProperty(Kernel::HLERequestContext& ctx) { @@ -235,7 +235,7 @@ private:          control = ctx.ReadBuffer();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      IssuerFn issue_process_id; @@ -273,7 +273,7 @@ void ARP_W::AcquireRegistrar(Kernel::HLERequestContext& ctx) {          });      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface(registrar);  } diff --git a/src/core/hle/service/glue/bgtc.cpp b/src/core/hle/service/glue/bgtc.cpp index daecfff15..564c3b750 100644 --- a/src/core/hle/service/glue/bgtc.cpp +++ b/src/core/hle/service/glue/bgtc.cpp @@ -25,7 +25,7 @@ void BGTC_T::OpenTaskService(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_BGTC, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ITaskService>(system);  } diff --git a/src/core/hle/service/glue/manager.cpp b/src/core/hle/service/glue/manager.cpp index 6da52d2d6..9b1754cf8 100644 --- a/src/core/hle/service/glue/manager.cpp +++ b/src/core/hle/service/glue/manager.cpp @@ -54,7 +54,7 @@ ResultCode ARPManager::Register(u64 title_id, ApplicationLaunchProperty launch,      }      entries.insert_or_assign(title_id, MapEntry{launch, std::move(control)}); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode ARPManager::Unregister(u64 title_id) { @@ -68,7 +68,7 @@ ResultCode ARPManager::Unregister(u64 title_id) {      }      entries.erase(iter); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void ARPManager::ResetAll() { diff --git a/src/core/hle/service/hid/controllers/gesture.h b/src/core/hle/service/hid/controllers/gesture.h index eecfeaad5..7e7ae6625 100644 --- a/src/core/hle/service/hid/controllers/gesture.h +++ b/src/core/hle/service/hid/controllers/gesture.h @@ -7,6 +7,7 @@  #include <array>  #include "common/bit_field.h"  #include "common/common_types.h" +#include "common/point.h"  #include "core/frontend/input.h"  #include "core/hle/service/hid/controllers/controller_base.h" @@ -63,44 +64,21 @@ private:      };      static_assert(sizeof(Attribute) == 4, "Attribute is an invalid size"); -    template <typename T> -    struct Point { -        T x{}; -        T y{}; - -        friend Point operator+(const Point& lhs, const Point& rhs) { -            return { -                .x = lhs.x + rhs.x, -                .y = lhs.y + rhs.y, -            }; -        } - -        friend Point operator-(const Point& lhs, const Point& rhs) { -            return { -                .x = lhs.x - rhs.x, -                .y = lhs.y - rhs.y, -            }; -        } - -        friend bool operator==(const Point&, const Point&) = default; -    }; -    static_assert(sizeof(Point<s32_le>) == 8, "Point is an invalid size"); -      struct GestureState {          s64_le sampling_number;          s64_le sampling_number2;          s64_le detection_count;          TouchType type;          Direction direction; -        Point<s32_le> pos; -        Point<s32_le> delta; +        Common::Point<s32_le> pos; +        Common::Point<s32_le> delta;          f32 vel_x;          f32 vel_y;          Attribute attributes;          f32 scale;          f32 rotation_angle;          s32_le point_count; -        std::array<Point<s32_le>, 4> points; +        std::array<Common::Point<s32_le>, 4> points;      };      static_assert(sizeof(GestureState) == 0x68, "GestureState is an invalid size"); @@ -111,14 +89,14 @@ private:      static_assert(sizeof(SharedMemory) == 0x708, "SharedMemory is an invalid size");      struct Finger { -        Point<f32> pos{}; +        Common::Point<f32> pos{};          bool pressed{};      };      struct GestureProperties { -        std::array<Point<s32_le>, MAX_POINTS> points{}; +        std::array<Common::Point<s32_le>, MAX_POINTS> points{};          std::size_t active_points{}; -        Point<s32_le> mid_point{}; +        Common::Point<s32_le> mid_point{};          s64_le detection_count{};          u64_le delta_time{};          f32 average_distance{}; diff --git a/src/core/hle/service/hid/controllers/touchscreen.cpp b/src/core/hle/service/hid/controllers/touchscreen.cpp index ac9112c40..6ef17acc5 100644 --- a/src/core/hle/service/hid/controllers/touchscreen.cpp +++ b/src/core/hle/service/hid/controllers/touchscreen.cpp @@ -74,8 +74,11 @@ void Controller_Touchscreen::OnUpdate(const Core::Timing::CoreTiming& core_timin      for (std::size_t id = 0; id < MAX_FINGERS; ++id) {          auto& touch_entry = cur_entry.states[id];          if (id < active_fingers_count) { -            touch_entry.x = static_cast<u16>(active_fingers[id].x * Layout::ScreenUndocked::Width); -            touch_entry.y = static_cast<u16>(active_fingers[id].y * Layout::ScreenUndocked::Height); +            const auto& [active_x, active_y] = active_fingers[id].position; +            touch_entry.position = { +                .x = static_cast<u16>(active_x * Layout::ScreenUndocked::Width), +                .y = static_cast<u16>(active_y * Layout::ScreenUndocked::Height), +            };              touch_entry.diameter_x = Settings::values.touchscreen.diameter_x;              touch_entry.diameter_y = Settings::values.touchscreen.diameter_y;              touch_entry.rotation_angle = Settings::values.touchscreen.rotation_angle; @@ -86,8 +89,7 @@ void Controller_Touchscreen::OnUpdate(const Core::Timing::CoreTiming& core_timin          } else {              // Clear touch entry              touch_entry.attribute.raw = 0; -            touch_entry.x = 0; -            touch_entry.y = 0; +            touch_entry.position = {};              touch_entry.diameter_x = 0;              touch_entry.diameter_y = 0;              touch_entry.rotation_angle = 0; @@ -140,8 +142,7 @@ std::size_t Controller_Touchscreen::UpdateTouchInputEvent(              fingers[finger_id].id = static_cast<u32_le>(finger_id);              attribute.start_touch.Assign(1);          } -        fingers[finger_id].x = x; -        fingers[finger_id].y = y; +        fingers[finger_id].position = {x, y};          fingers[finger_id].attribute = attribute;          return finger_id;      } diff --git a/src/core/hle/service/hid/controllers/touchscreen.h b/src/core/hle/service/hid/controllers/touchscreen.h index 2869d0cfd..ef2becefd 100644 --- a/src/core/hle/service/hid/controllers/touchscreen.h +++ b/src/core/hle/service/hid/controllers/touchscreen.h @@ -7,6 +7,7 @@  #include "common/bit_field.h"  #include "common/common_funcs.h"  #include "common/common_types.h" +#include "common/point.h"  #include "common/swap.h"  #include "core/frontend/input.h"  #include "core/hle/service/hid/controllers/controller_base.h" @@ -55,8 +56,7 @@ private:          u64_le delta_time;          Attributes attribute;          u32_le finger; -        u32_le x; -        u32_le y; +        Common::Point<u32_le> position;          u32_le diameter_x;          u32_le diameter_y;          u32_le rotation_angle; @@ -81,8 +81,7 @@ private:      struct Finger {          u64_le last_touch{}; -        float x{}; -        float y{}; +        Common::Point<float> position;          u32_le id{};          bool pressed{};          Attributes attribute; diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index df0fe1c8e..fa6213d3c 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -114,7 +114,7 @@ void IAppletResource::GetSharedMemoryHandle(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(&system.Kernel().GetHidSharedMem());  } @@ -183,7 +183,7 @@ private:                    vibration_device_handle.device_index);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      std::shared_ptr<IAppletResource> applet_resource; @@ -351,7 +351,7 @@ void Hid::CreateAppletResource(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IAppletResource>(applet_resource);  } @@ -364,7 +364,7 @@ void Hid::ActivateDebugPad(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::ActivateTouchScreen(Kernel::HLERequestContext& ctx) { @@ -376,7 +376,7 @@ void Hid::ActivateTouchScreen(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::ActivateMouse(Kernel::HLERequestContext& ctx) { @@ -388,7 +388,7 @@ void Hid::ActivateMouse(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::ActivateKeyboard(Kernel::HLERequestContext& ctx) { @@ -400,7 +400,7 @@ void Hid::ActivateKeyboard(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) { @@ -410,7 +410,7 @@ void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_HID, "(STUBBED) called. flags={}", flags);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::ActivateXpad(Kernel::HLERequestContext& ctx) { @@ -429,7 +429,7 @@ void Hid::ActivateXpad(Kernel::HLERequestContext& ctx) {                parameters.basic_xpad_id, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetXpadIDs(Kernel::HLERequestContext& ctx) { @@ -439,7 +439,7 @@ void Hid::GetXpadIDs(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "(STUBBED) called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(0);  } @@ -461,7 +461,7 @@ void Hid::ActivateSixAxisSensor(Kernel::HLERequestContext& ctx) {                parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::DeactivateSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -482,7 +482,7 @@ void Hid::DeactivateSixAxisSensor(Kernel::HLERequestContext& ctx) {                parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StartSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -503,7 +503,7 @@ void Hid::StartSixAxisSensor(Kernel::HLERequestContext& ctx) {                parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -524,7 +524,7 @@ void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) {                parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::EnableSixAxisSensorFusion(Kernel::HLERequestContext& ctx) { @@ -547,7 +547,7 @@ void Hid::EnableSixAxisSensorFusion(Kernel::HLERequestContext& ctx) {                  parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { @@ -573,7 +573,7 @@ void Hid::SetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) {                  parameters.parameter2, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { @@ -599,7 +599,7 @@ void Hid::GetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) {          parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(parameter1);      rb.Push(parameter2);  } @@ -624,7 +624,7 @@ void Hid::ResetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) {          parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { @@ -643,7 +643,7 @@ void Hid::SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) {                drift_mode, applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { @@ -662,7 +662,7 @@ void Hid::GetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) {                parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(applet_resource->GetController<Controller_NPad>(HidController::NPad)                      .GetGyroscopeZeroDriftMode());  } @@ -686,7 +686,7 @@ void Hid::ResetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) {                parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::IsSixAxisSensorAtRest(Kernel::HLERequestContext& ctx) { @@ -705,7 +705,7 @@ void Hid::IsSixAxisSensorAtRest(Kernel::HLERequestContext& ctx) {                parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(applet_resource->GetController<Controller_NPad>(HidController::NPad)                  .IsSixAxisSensorAtRest());  } @@ -726,7 +726,7 @@ void Hid::ActivateGesture(Kernel::HLERequestContext& ctx) {                parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) { @@ -739,7 +739,7 @@ void Hid::SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, supported_styleset={}", supported_styleset);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) { @@ -749,7 +749,7 @@ void Hid::GetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(applet_resource->GetController<Controller_NPad>(HidController::NPad)                  .GetSupportedStyleSet()                  .raw); @@ -765,7 +765,7 @@ void Hid::SetSupportedNpadIdType(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::ActivateNpad(Kernel::HLERequestContext& ctx) { @@ -777,7 +777,7 @@ void Hid::ActivateNpad(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::DeactivateNpad(Kernel::HLERequestContext& ctx) { @@ -789,7 +789,7 @@ void Hid::DeactivateNpad(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::AcquireNpadStyleSetUpdateEventHandle(Kernel::HLERequestContext& ctx) { @@ -807,7 +807,7 @@ void Hid::AcquireNpadStyleSetUpdateEventHandle(Kernel::HLERequestContext& ctx) {                parameters.npad_id, parameters.applet_resource_user_id, parameters.unknown);      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(applet_resource->GetController<Controller_NPad>(HidController::NPad)                             .GetStyleSetChangedEvent(parameters.npad_id));  } @@ -829,7 +829,7 @@ void Hid::DisconnectNpad(Kernel::HLERequestContext& ctx) {                parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetPlayerLedPattern(Kernel::HLERequestContext& ctx) { @@ -839,7 +839,7 @@ void Hid::GetPlayerLedPattern(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, npad_id={}", npad_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(applet_resource->GetController<Controller_NPad>(HidController::NPad)                  .GetLedPattern(npad_id)                  .raw); @@ -862,7 +862,7 @@ void Hid::ActivateNpadWithRevision(Kernel::HLERequestContext& ctx) {                parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetNpadJoyHoldType(Kernel::HLERequestContext& ctx) { @@ -876,7 +876,7 @@ void Hid::SetNpadJoyHoldType(Kernel::HLERequestContext& ctx) {                applet_resource_user_id, hold_type);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetNpadJoyHoldType(Kernel::HLERequestContext& ctx) { @@ -886,7 +886,7 @@ void Hid::GetNpadJoyHoldType(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(applet_resource->GetController<Controller_NPad>(HidController::NPad).GetHoldType());  } @@ -907,7 +907,7 @@ void Hid::SetNpadJoyAssignmentModeSingleByDefault(Kernel::HLERequestContext& ctx                  parameters.npad_id, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetNpadJoyAssignmentModeSingle(Kernel::HLERequestContext& ctx) { @@ -931,7 +931,7 @@ void Hid::SetNpadJoyAssignmentModeSingle(Kernel::HLERequestContext& ctx) {                  parameters.npad_joy_device_type);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetNpadJoyAssignmentModeDual(Kernel::HLERequestContext& ctx) { @@ -951,7 +951,7 @@ void Hid::SetNpadJoyAssignmentModeDual(Kernel::HLERequestContext& ctx) {                  parameters.npad_id, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::MergeSingleJoyAsDualJoy(Kernel::HLERequestContext& ctx) { @@ -967,7 +967,7 @@ void Hid::MergeSingleJoyAsDualJoy(Kernel::HLERequestContext& ctx) {                npad_id_1, npad_id_2, applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StartLrAssignmentMode(Kernel::HLERequestContext& ctx) { @@ -979,7 +979,7 @@ void Hid::StartLrAssignmentMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StopLrAssignmentMode(Kernel::HLERequestContext& ctx) { @@ -991,7 +991,7 @@ void Hid::StopLrAssignmentMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) { @@ -1006,7 +1006,7 @@ void Hid::SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) {                applet_resource_user_id, activation_mode);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) { @@ -1016,7 +1016,7 @@ void Hid::GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(applet_resource->GetController<Controller_NPad>(HidController::NPad)                      .GetNpadHandheldActivationMode());  } @@ -1035,7 +1035,7 @@ void Hid::SwapNpadAssignment(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 2};      if (res) { -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      } else {          LOG_ERROR(Service_HID, "Npads are not connected!");          rb.Push(ERR_NPAD_NOT_CONNECTED); @@ -1056,7 +1056,7 @@ void Hid::IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext                  parameters.npad_id, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(applet_resource->GetController<Controller_NPad>(HidController::NPad)                  .IsUnintendedHomeButtonInputProtectionEnabled(parameters.npad_id));  } @@ -1083,7 +1083,7 @@ void Hid::EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& c                  parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetNpadAnalogStickUseCenterClamp(Kernel::HLERequestContext& ctx) { @@ -1104,7 +1104,7 @@ void Hid::SetNpadAnalogStickUseCenterClamp(Kernel::HLERequestContext& ctx) {                  parameters.analog_stick_use_center_clamp, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetVibrationDeviceInfo(Kernel::HLERequestContext& ctx) { @@ -1148,7 +1148,7 @@ void Hid::GetVibrationDeviceInfo(Kernel::HLERequestContext& ctx) {                vibration_device_info.type, vibration_device_info.position);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(vibration_device_info);  } @@ -1173,7 +1173,7 @@ void Hid::SendVibrationValue(Kernel::HLERequestContext& ctx) {                parameters.vibration_device_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetActualVibrationValue(Kernel::HLERequestContext& ctx) { @@ -1193,7 +1193,7 @@ void Hid::GetActualVibrationValue(Kernel::HLERequestContext& ctx) {                parameters.vibration_device_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 6}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(applet_resource->GetController<Controller_NPad>(HidController::NPad)                     .GetLastVibration(parameters.vibration_device_handle));  } @@ -1202,7 +1202,7 @@ void Hid::CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IActiveVibrationDeviceList>(system, applet_resource);  } @@ -1215,14 +1215,14 @@ void Hid::PermitVibration(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, can_vibrate={}", can_vibrate);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::IsVibrationPermitted(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(Settings::values.vibration_enabled.GetValue());  } @@ -1247,7 +1247,7 @@ void Hid::SendVibrationValues(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SendVibrationGcErmCommand(Kernel::HLERequestContext& ctx) { @@ -1307,7 +1307,7 @@ void Hid::SendVibrationGcErmCommand(Kernel::HLERequestContext& ctx) {                parameters.gc_erm_command);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetActualVibrationGcErmCommand(Kernel::HLERequestContext& ctx) { @@ -1348,7 +1348,7 @@ void Hid::GetActualVibrationGcErmCommand(Kernel::HLERequestContext& ctx) {                parameters.vibration_device_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(gc_erm_command);  } @@ -1362,7 +1362,7 @@ void Hid::BeginPermitVibrationSession(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::EndPermitVibrationSession(Kernel::HLERequestContext& ctx) { @@ -1372,7 +1372,7 @@ void Hid::EndPermitVibrationSession(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_HID, "called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::IsVibrationDeviceMounted(Kernel::HLERequestContext& ctx) { @@ -1392,7 +1392,7 @@ void Hid::IsVibrationDeviceMounted(Kernel::HLERequestContext& ctx) {                parameters.vibration_device_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(applet_resource->GetController<Controller_NPad>(HidController::NPad)                  .IsVibrationDeviceMounted(parameters.vibration_device_handle));  } @@ -1406,7 +1406,7 @@ void Hid::ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -1426,7 +1426,7 @@ void Hid::StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) {          parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -1446,7 +1446,7 @@ void Hid::StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) {          parameters.sixaxis_handle.device_index, parameters.applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -1458,7 +1458,7 @@ void Hid::ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -1469,7 +1469,7 @@ void Hid::StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx) {                  applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -1480,7 +1480,7 @@ void Hid::StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx) {                  applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -1500,7 +1500,7 @@ void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) {      if (t_mem_1.IsNull()) {          LOG_ERROR(Service_HID, "t_mem_1 is a nullptr for handle=0x{:08X}", t_mem_1_handle);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -1510,7 +1510,7 @@ void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) {      if (t_mem_2.IsNull()) {          LOG_ERROR(Service_HID, "t_mem_2 is a nullptr for handle=0x{:08X}", t_mem_2_handle);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_UNKNOWN); +        rb.Push(ResultUnknown);          return;      } @@ -1530,7 +1530,7 @@ void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) {                  t_mem_1_handle, t_mem_2_handle, applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { @@ -1541,7 +1541,7 @@ void Hid::FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) {                  applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx) { @@ -1554,7 +1554,7 @@ void Hid::ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { @@ -1567,7 +1567,7 @@ void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) {                  applet_resource_user_id, is_palma_all_connectable);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { @@ -1577,7 +1577,7 @@ void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_HID, "(STUBBED) called, palma_boost_mode={}", palma_boost_mode);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::SetNpadCommunicationMode(Kernel::HLERequestContext& ctx) { @@ -1592,7 +1592,7 @@ void Hid::SetNpadCommunicationMode(Kernel::HLERequestContext& ctx) {                  applet_resource_user_id, communication_mode);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Hid::GetNpadCommunicationMode(Kernel::HLERequestContext& ctx) { @@ -1603,7 +1603,7 @@ void Hid::GetNpadCommunicationMode(Kernel::HLERequestContext& ctx) {                  applet_resource_user_id);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(applet_resource->GetController<Controller_NPad>(HidController::NPad)                      .GetNpadCommunicationMode());  } @@ -1956,7 +1956,7 @@ private:          LOG_WARNING(Service_HID, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  }; diff --git a/src/core/hle/service/hid/irs.cpp b/src/core/hle/service/hid/irs.cpp index 3c6085990..4a92c6234 100644 --- a/src/core/hle/service/hid/irs.cpp +++ b/src/core/hle/service/hid/irs.cpp @@ -43,21 +43,21 @@ void IRS::ActivateIrsensor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::DeactivateIrsensor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::GetIrsensorSharedMemoryHandle(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_IRS, "called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(&system.Kernel().GetIrsSharedMem());  } @@ -65,35 +65,35 @@ void IRS::StopImageProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::RunMomentProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::RunClusteringProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::RunImageTransferProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::GetImageTransferProcessorState(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 5}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw<u64>(system.CoreTiming().GetCPUTicks());      rb.PushRaw<u32>(0);  } @@ -102,14 +102,14 @@ void IRS::RunTeraPluginProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::GetNpadIrCameraHandle(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw<u32>(device_handle);  } @@ -117,56 +117,56 @@ void IRS::RunPointingProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::SuspendImageProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::CheckFirmwareVersion(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::SetFunctionLevel(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::RunImageTransferExProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::RunIrLedProcessor(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::StopImageProcessorAsync(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void IRS::ActivateIrsensorWithFunctionLevel(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_IRS, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  IRS::~IRS() = default; diff --git a/src/core/hle/service/lbl/lbl.cpp b/src/core/hle/service/lbl/lbl.cpp index 3a5a2f4f5..24890c830 100644 --- a/src/core/hle/service/lbl/lbl.cpp +++ b/src/core/hle/service/lbl/lbl.cpp @@ -75,7 +75,7 @@ private:          update_instantly = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetCurrentBrightnessSetting(Kernel::HLERequestContext& ctx) { @@ -88,7 +88,7 @@ private:          LOG_DEBUG(Service_LBL, "called brightness={}", brightness);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(brightness);      } @@ -100,7 +100,7 @@ private:          backlight_enabled = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SwitchBacklightOff(Kernel::HLERequestContext& ctx) { @@ -111,14 +111,14 @@ private:          backlight_enabled = false;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetBacklightSwitchStatus(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushEnum<BacklightSwitchStatus>(backlight_enabled ? BacklightSwitchStatus::On                                                               : BacklightSwitchStatus::Off);      } @@ -129,7 +129,7 @@ private:          dimming = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void DisableDimming(Kernel::HLERequestContext& ctx) { @@ -138,14 +138,14 @@ private:          dimming = false;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void IsDimmingEnabled(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(dimming);      } @@ -155,7 +155,7 @@ private:          update_instantly = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void DisableAutoBrightnessControl(Kernel::HLERequestContext& ctx) { @@ -163,14 +163,14 @@ private:          auto_brightness = false;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void IsAutoBrightnessControlEnabled(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(auto_brightness);      } @@ -183,14 +183,14 @@ private:          ambient_light_value = light_value;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetAmbientLightSensorValue(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(ambient_light_value);      } @@ -199,7 +199,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetBrightnessReflectionDelayLevel(Kernel::HLERequestContext& ctx) { @@ -207,7 +207,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(0.0f);      } @@ -216,7 +216,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetCurrentBrightnessMapping(Kernel::HLERequestContext& ctx) { @@ -224,7 +224,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          // This function is suppose to return something but it seems like it doesn't      } @@ -233,7 +233,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetCurrentAmbientLightSensorMapping(Kernel::HLERequestContext& ctx) { @@ -241,14 +241,14 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          // This function is suppose to return something but it seems like it doesn't      }      void IsAmbientLightSensorAvailable(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_LBL, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          // TODO(ogniK): Only return true if there's no device error          rb.Push(true);      } @@ -267,7 +267,7 @@ private:          current_vr_brightness = brightness;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetCurrentBrightnessSettingForVrMode(Kernel::HLERequestContext& ctx) { @@ -280,7 +280,7 @@ private:          LOG_DEBUG(Service_LBL, "called brightness={}", brightness);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(brightness);      } @@ -288,7 +288,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          vr_mode_enabled = true;      } @@ -297,7 +297,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          vr_mode_enabled = false;      } @@ -306,7 +306,7 @@ private:          LOG_DEBUG(Service_LBL, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(vr_mode_enabled);      } diff --git a/src/core/hle/service/ldn/ldn.cpp b/src/core/hle/service/ldn/ldn.cpp index d160ffe87..6ccbe9623 100644 --- a/src/core/hle/service/ldn/ldn.cpp +++ b/src/core/hle/service/ldn/ldn.cpp @@ -48,7 +48,7 @@ public:          LOG_DEBUG(Service_LDN, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IMonitorService>(system);      }  }; @@ -147,7 +147,7 @@ public:          // Indicate a network error, as we do not actually emulate LDN          rb.Push(static_cast<u32>(State::Error)); -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Initialize2(Kernel::HLERequestContext& ctx) { @@ -189,7 +189,7 @@ public:          LOG_DEBUG(Service_LDN, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISystemLocalCommunicationService>(system);      }  }; @@ -210,15 +210,156 @@ public:          LOG_DEBUG(Service_LDN, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IUserLocalCommunicationService>(system);      }  }; +class INetworkService final : public ServiceFramework<INetworkService> { +public: +    explicit INetworkService(Core::System& system_) : ServiceFramework{system_, "INetworkService"} { +        // clang-format off +        static const FunctionInfo functions[] = { +            {0, nullptr, "Initialize"}, +            {256, nullptr, "AttachNetworkInterfaceStateChangeEvent"}, +            {264, nullptr, "GetNetworkInterfaceLastError"}, +            {272, nullptr, "GetRole"}, +            {280, nullptr, "GetAdvertiseData"}, +            {288, nullptr, "GetGroupInfo"}, +            {296, nullptr, "GetGroupInfo2"}, +            {304, nullptr, "GetGroupOwner"}, +            {312, nullptr, "GetIpConfig"}, +            {320, nullptr, "GetLinkLevel"}, +            {512, nullptr, "Scan"}, +            {768, nullptr, "CreateGroup"}, +            {776, nullptr, "DestroyGroup"}, +            {784, nullptr, "SetAdvertiseData"}, +            {1536, nullptr, "SendToOtherGroup"}, +            {1544, nullptr, "RecvFromOtherGroup"}, +            {1552, nullptr, "AddAcceptableGroupId"}, +            {1560, nullptr, "ClearAcceptableGroupId"}, +        }; +        // clang-format on + +        RegisterHandlers(functions); +    } +}; + +class INetworkServiceMonitor final : public ServiceFramework<INetworkServiceMonitor> { +public: +    explicit INetworkServiceMonitor(Core::System& system_) +        : ServiceFramework{system_, "INetworkServiceMonitor"} { +        // clang-format off +        static const FunctionInfo functions[] = { +            {0, &INetworkServiceMonitor::Initialize, "Initialize"}, +            {256, nullptr, "AttachNetworkInterfaceStateChangeEvent"}, +            {264, nullptr, "GetNetworkInterfaceLastError"}, +            {272, nullptr, "GetRole"}, +            {280, nullptr, "GetAdvertiseData"}, +            {281, nullptr, "GetAdvertiseData2"}, +            {288, nullptr, "GetGroupInfo"}, +            {296, nullptr, "GetGroupInfo2"}, +            {304, nullptr, "GetGroupOwner"}, +            {312, nullptr, "GetIpConfig"}, +            {320, nullptr, "GetLinkLevel"}, +            {328, nullptr, "AttachJoinEvent"}, +            {336, nullptr, "GetMembers"}, +        }; +        // clang-format on + +        RegisterHandlers(functions); +    } + +    void Initialize(Kernel::HLERequestContext& ctx) { +        LOG_WARNING(Service_LDN, "(STUBBED) called"); + +        IPC::ResponseBuilder rb{ctx, 2}; +        rb.Push(ERROR_DISABLED); +    } +}; + +class LP2PAPP final : public ServiceFramework<LP2PAPP> { +public: +    explicit LP2PAPP(Core::System& system_) : ServiceFramework{system_, "lp2p:app"} { +        // clang-format off +        static const FunctionInfo functions[] = { +            {0, &LP2PAPP::CreateMonitorService, "CreateNetworkService"}, +            {8, &LP2PAPP::CreateMonitorService, "CreateNetworkServiceMonitor"}, +        }; +        // clang-format on + +        RegisterHandlers(functions); +    } + +    void CreateNetworkervice(Kernel::HLERequestContext& ctx) { +        IPC::RequestParser rp{ctx}; +        const u64 reserved_input = rp.Pop<u64>(); +        const u32 input = rp.Pop<u32>(); + +        LOG_WARNING(Service_LDN, "(STUBBED) called reserved_input={} input={}", reserved_input, +                    input); + +        IPC::ResponseBuilder rb{ctx, 2, 0, 1}; +        rb.Push(ResultSuccess); +        rb.PushIpcInterface<INetworkService>(system); +    } + +    void CreateMonitorService(Kernel::HLERequestContext& ctx) { +        IPC::RequestParser rp{ctx}; +        const u64 reserved_input = rp.Pop<u64>(); + +        LOG_WARNING(Service_LDN, "(STUBBED) called reserved_input={}", reserved_input); + +        IPC::ResponseBuilder rb{ctx, 2, 0, 1}; +        rb.Push(ResultSuccess); +        rb.PushIpcInterface<INetworkServiceMonitor>(system); +    } +}; + +class LP2PSYS final : public ServiceFramework<LP2PSYS> { +public: +    explicit LP2PSYS(Core::System& system_) : ServiceFramework{system_, "lp2p:sys"} { +        // clang-format off +        static const FunctionInfo functions[] = { +            {0, &LP2PSYS::CreateMonitorService, "CreateNetworkService"}, +            {8, &LP2PSYS::CreateMonitorService, "CreateNetworkServiceMonitor"}, +        }; +        // clang-format on + +        RegisterHandlers(functions); +    } + +    void CreateNetworkervice(Kernel::HLERequestContext& ctx) { +        IPC::RequestParser rp{ctx}; +        const u64 reserved_input = rp.Pop<u64>(); +        const u32 input = rp.Pop<u32>(); + +        LOG_WARNING(Service_LDN, "(STUBBED) called reserved_input={} input={}", reserved_input, +                    input); + +        IPC::ResponseBuilder rb{ctx, 2, 0, 1}; +        rb.Push(ResultSuccess); +        rb.PushIpcInterface<INetworkService>(system); +    } + +    void CreateMonitorService(Kernel::HLERequestContext& ctx) { +        IPC::RequestParser rp{ctx}; +        const u64 reserved_input = rp.Pop<u64>(); + +        LOG_WARNING(Service_LDN, "(STUBBED) called reserved_input={}", reserved_input); + +        IPC::ResponseBuilder rb{ctx, 2, 0, 1}; +        rb.Push(ResultSuccess); +        rb.PushIpcInterface<INetworkServiceMonitor>(system); +    } +}; +  void InstallInterfaces(SM::ServiceManager& sm, Core::System& system) {      std::make_shared<LDNM>(system)->InstallAsService(sm);      std::make_shared<LDNS>(system)->InstallAsService(sm);      std::make_shared<LDNU>(system)->InstallAsService(sm); +    std::make_shared<LP2PAPP>(system)->InstallAsService(sm); +    std::make_shared<LP2PSYS>(system)->InstallAsService(sm);  }  } // namespace Service::LDN diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp index c3948eb8e..24b7e4435 100644 --- a/src/core/hle/service/ldr/ldr.cpp +++ b/src/core/hle/service/ldr/ldr.cpp @@ -270,7 +270,7 @@ public:          nrr.insert_or_assign(nrr_address, std::move(hashes));          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void UnregisterModuleInfo(Kernel::HLERequestContext& ctx) { @@ -284,7 +284,7 @@ public:          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      bool ValidateRegionForMap(Kernel::KPageTable& page_table, VAddr start, std::size_t size) const { @@ -524,7 +524,7 @@ public:                                       header.segment_headers[DATA_INDEX].memory_size, nro_address});          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(*map_result);      } @@ -541,7 +541,7 @@ public:              info.nro_address + info.text_size, info.src_addr + info.text_size, info.ro_size));          CASCADE_CODE(              page_table.UnmapProcessCodeMemory(info.nro_address, info.src_addr, info.text_size)); -        return RESULT_SUCCESS; +        return ResultSuccess;      }      void UnloadModule(Kernel::HLERequestContext& ctx) { @@ -596,7 +596,7 @@ public:          initialized = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  private: diff --git a/src/core/hle/service/lm/lm.cpp b/src/core/hle/service/lm/lm.cpp index 9bcf8870d..311e4fb2d 100644 --- a/src/core/hle/service/lm/lm.cpp +++ b/src/core/hle/service/lm/lm.cpp @@ -84,7 +84,7 @@ private:          // This function only succeeds - Get that out of the way          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          if (data.size() < sizeof(LogPacketHeader)) {              LOG_ERROR(Service_LM, "Data size is too small for header! size={}", data.size()); @@ -141,7 +141,7 @@ private:          destination = log_destination;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      u64 ReadLeb128(const std::vector<u8>& data, std::size_t& offset) { @@ -357,7 +357,7 @@ private:          LOG_DEBUG(Service_LM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ILogger>(system);      }  }; diff --git a/src/core/hle/service/mii/mii.cpp b/src/core/hle/service/mii/mii.cpp index 81f150a88..bbd81a88a 100644 --- a/src/core/hle/service/mii/mii.cpp +++ b/src/core/hle/service/mii/mii.cpp @@ -74,7 +74,7 @@ private:          LOG_DEBUG(Service_Mii, "called with source_flag={}", source_flag);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(manager.CheckAndResetUpdateCounter(source_flag, current_update_counter));      } @@ -82,7 +82,7 @@ private:          LOG_DEBUG(Service_Mii, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(manager.IsFullDatabase());      } @@ -93,7 +93,7 @@ private:          LOG_DEBUG(Service_Mii, "called with source_flag={}", source_flag);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(manager.GetCount(source_flag));      } @@ -115,7 +115,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(static_cast<u32>(result->size()));      } @@ -140,7 +140,7 @@ private:          ctx.WriteBuffer(SerializeArray(values));          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(static_cast<u32>(result->size()));      } @@ -159,7 +159,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2 + sizeof(MiiInfo) / sizeof(u32)}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<MiiInfo>(*result);      } @@ -194,7 +194,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2 + sizeof(MiiInfo) / sizeof(u32)}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<MiiInfo>(manager.BuildRandom(age, gender, race));      } @@ -213,7 +213,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2 + sizeof(MiiInfo) / sizeof(u32)}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<MiiInfo>(manager.BuildDefault(index));      } @@ -238,7 +238,7 @@ private:          UNIMPLEMENTED_IF(current_interface_version != 1);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      constexpr bool IsInterfaceVersionSupported(u32 interface_version) const { @@ -267,7 +267,7 @@ public:  private:      void GetDatabaseService(Kernel::HLERequestContext& ctx) {          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IDatabaseService>(system);          LOG_DEBUG(Service_Mii, "called"); diff --git a/src/core/hle/service/mm/mm_u.cpp b/src/core/hle/service/mm/mm_u.cpp index c8519e2db..0ccfe91cd 100644 --- a/src/core/hle/service/mm/mm_u.cpp +++ b/src/core/hle/service/mm/mm_u.cpp @@ -33,14 +33,14 @@ private:          LOG_WARNING(Service_MM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void FinalizeOld(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_MM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetAndWaitOld(Kernel::HLERequestContext& ctx) { @@ -51,14 +51,14 @@ private:          current = min;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetOld(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_MM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(current);      } @@ -66,7 +66,7 @@ private:          LOG_WARNING(Service_MM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(id); // Any non zero value      } @@ -74,7 +74,7 @@ private:          LOG_WARNING(Service_MM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetAndWait(Kernel::HLERequestContext& ctx) { @@ -87,14 +87,14 @@ private:          current = min;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Get(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_MM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(current);      } diff --git a/src/core/hle/service/nfc/nfc.cpp b/src/core/hle/service/nfc/nfc.cpp index 44a5d5789..b014ea826 100644 --- a/src/core/hle/service/nfc/nfc.cpp +++ b/src/core/hle/service/nfc/nfc.cpp @@ -46,7 +46,7 @@ private:          LOG_DEBUG(Service_NFC, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IAm>(system);      }  }; @@ -94,7 +94,7 @@ private:          LOG_DEBUG(Service_NFC, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<MFIUser>(system);      }  }; @@ -141,7 +141,7 @@ private:          LOG_DEBUG(Service_NFC, "called");          IPC::ResponseBuilder rb{ctx, 2, 0}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          // We don't deal with hardware initialization so we can just stub this.      } @@ -149,7 +149,7 @@ private:          LOG_DEBUG(Service_NFC, "IsNfcEnabledOld");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u8>(true);      } @@ -157,7 +157,7 @@ private:          LOG_WARNING(Service_NFC, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushEnum(NfcStates::Finalized); // TODO(ogniK): Figure out if this matches nfp      } @@ -165,7 +165,7 @@ private:          LOG_WARNING(Service_NFC, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  }; @@ -186,7 +186,7 @@ private:          LOG_DEBUG(Service_NFC, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IUser>(system);      }  }; @@ -245,7 +245,7 @@ private:          LOG_DEBUG(Service_NFC, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISystem>(system);      }  }; diff --git a/src/core/hle/service/nfp/nfp.cpp b/src/core/hle/service/nfp/nfp.cpp index d25b20ab5..5f1ca029d 100644 --- a/src/core/hle/service/nfp/nfp.cpp +++ b/src/core/hle/service/nfp/nfp.cpp @@ -113,7 +113,7 @@ private:          LOG_DEBUG(Service_NFC, "called");          IPC::ResponseBuilder rb{ctx, 2, 0}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          state = State::Initialized;      } @@ -122,7 +122,7 @@ private:          LOG_DEBUG(Service_NFC, "called");          IPC::ResponseBuilder rb{ctx, 3, 0}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u32>(static_cast<u32>(state));      } @@ -134,7 +134,7 @@ private:          ctx.WriteBuffer(device_handle);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(1);      } @@ -144,7 +144,7 @@ private:          LOG_DEBUG(Service_NFP, "called, dev_handle=0x{:X}", dev_handle);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(npad_id);      } @@ -154,7 +154,7 @@ private:          LOG_DEBUG(Service_NFP, "called, dev_handle=0x{:X}", dev_handle);          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(nfp_interface.GetNFCEvent());          has_attached_handle = true;      } @@ -165,7 +165,7 @@ private:          LOG_DEBUG(Service_NFP, "called, dev_handle=0x{:X}", dev_handle);          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(deactivate_event.GetReadableEvent());      } @@ -186,14 +186,14 @@ private:              break;          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetDeviceState(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_NFP, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(static_cast<u32>(device_state));      } @@ -204,7 +204,7 @@ private:              device_state = DeviceState::SearchingForTag;          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetTagInfo(Kernel::HLERequestContext& ctx) { @@ -221,7 +221,7 @@ private:              .padding_2 = {},          };          ctx.WriteBuffer(tag_info); -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Mount(Kernel::HLERequestContext& ctx) { @@ -229,7 +229,7 @@ private:          device_state = DeviceState::TagNearby;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetModelInfo(Kernel::HLERequestContext& ctx) { @@ -238,7 +238,7 @@ private:          IPC::ResponseBuilder rb{ctx, 2};          const auto& amiibo = nfp_interface.GetAmiiboBuffer();          ctx.WriteBuffer(amiibo.model_info); -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Unmount(Kernel::HLERequestContext& ctx) { @@ -247,7 +247,7 @@ private:          device_state = DeviceState::TagFound;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Finalize(Kernel::HLERequestContext& ctx) { @@ -256,14 +256,14 @@ private:          device_state = DeviceState::Finalized;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void AttachAvailabilityChangeEvent(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NFP, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(availability_change_event.GetReadableEvent());      } @@ -273,7 +273,7 @@ private:          // TODO(ogniK): Pull Mii and owner data from amiibo          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetCommonInfo(Kernel::HLERequestContext& ctx) { @@ -286,7 +286,7 @@ private:          ctx.WriteBuffer(common_info);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void OpenApplicationArea(Kernel::HLERequestContext& ctx) { @@ -299,7 +299,7 @@ private:          LOG_WARNING(Service_NFP, "(STUBBED) called");          // We don't need to worry about this since we can just open the file          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u32>(0); // This is from the GetCommonInfo stub      } @@ -309,7 +309,7 @@ private:          // TODO(ogniK): Pull application area from amiibo          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u32>(0); // This is from the GetCommonInfo stub      } @@ -327,7 +327,7 @@ void Module::Interface::CreateUserInterface(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_NFP, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IUser>(*this, system);  } diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index 76e3832df..f03b2666a 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp @@ -170,14 +170,14 @@ private:          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetRequestState(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          if (Settings::values.bcat_backend == "none") {              rb.PushEnum(RequestState::NotSubmitted); @@ -190,14 +190,14 @@ private:          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetSystemEventReadableHandles(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(event1.GetReadableEvent(), event2.GetReadableEvent());      } @@ -205,14 +205,14 @@ private:          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetConnectionConfirmationOption(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetAppletInfo(Kernel::HLERequestContext& ctx) { @@ -223,7 +223,7 @@ private:          ctx.WriteBuffer(out_buffer);          IPC::ResponseBuilder rb{ctx, 5}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(0);          rb.Push<u32>(0);          rb.Push<u32>(0); @@ -254,7 +254,7 @@ private:          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(client_id); // Client ID needs to be non zero otherwise it's considered invalid      }      void CreateScanRequest(Kernel::HLERequestContext& ctx) { @@ -262,7 +262,7 @@ private:          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IScanRequest>(system);      }      void CreateRequest(Kernel::HLERequestContext& ctx) { @@ -270,7 +270,7 @@ private:          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IRequest>(system);      }      void GetCurrentNetworkProfile(Kernel::HLERequestContext& ctx) { @@ -311,13 +311,13 @@ private:          ctx.WriteBuffer(network_profile_data);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void RemoveNetworkProfile(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetCurrentIpAddress(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIFM, "(STUBBED) called"); @@ -326,7 +326,7 @@ private:          UNIMPLEMENTED_IF(error != Network::Errno::SUCCESS);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw(ipv4);      }      void CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx) { @@ -340,7 +340,7 @@ private:          IPC::ResponseBuilder rb{ctx, 6, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<INetworkProfile>(system);          rb.PushRaw<u128>(uuid);      } @@ -369,21 +369,21 @@ private:          };          IPC::ResponseBuilder rb{ctx, 2 + (sizeof(IpConfigInfo) + 3) / sizeof(u32)}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<IpConfigInfo>(ip_config_info);      }      void IsWirelessCommunicationEnabled(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u8>(0);      }      void IsEthernetCommunicationEnabled(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          if (Settings::values.bcat_backend == "none") {              rb.Push<u8>(0);          } else { @@ -394,7 +394,7 @@ private:          LOG_WARNING(Service_NIFM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          if (Settings::values.bcat_backend == "none") {              rb.Push<u8>(0);          } else { @@ -471,7 +471,7 @@ private:          LOG_DEBUG(Service_NIFM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IGeneralService>(system);      } @@ -479,7 +479,7 @@ private:          LOG_DEBUG(Service_NIFM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IGeneralService>(system);      }  }; diff --git a/src/core/hle/service/nim/nim.cpp b/src/core/hle/service/nim/nim.cpp index 420a5a075..7447cc38f 100644 --- a/src/core/hle/service/nim/nim.cpp +++ b/src/core/hle/service/nim/nim.cpp @@ -52,7 +52,7 @@ private:      void CreateAsyncInterface(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IShopServiceAsync>(system);      }  }; @@ -74,7 +74,7 @@ private:      void CreateAccessorInterface(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IShopServiceAccessor>(system);      }  }; @@ -240,7 +240,7 @@ private:      void CreateServerInterface(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IShopServiceAccessServer>(system);      } @@ -252,7 +252,7 @@ private:          LOG_INFO(Service_NIM, "(STUBBED) called, unknown={}", unknown);          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(false);      }  }; @@ -325,14 +325,14 @@ private:          LOG_DEBUG(Service_NIM, "called");          finished_event.GetWritableEvent().Signal();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetFinishNotificationEvent(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_NIM, "called");          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(finished_event.GetReadableEvent());      } @@ -340,21 +340,21 @@ private:          LOG_DEBUG(Service_NIM, "called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void Cancel(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_NIM, "called");          finished_event.GetWritableEvent().Clear();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void IsProcessing(Kernel::HLERequestContext& ctx) {          LOG_DEBUG(Service_NIM, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<u32>(0); // We instantly process the request      } @@ -365,7 +365,7 @@ private:                                    std::chrono::system_clock::now().time_since_epoch())                                    .count()};          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw<s64>(server_time);      }  }; @@ -389,7 +389,7 @@ private:          LOG_DEBUG(Service_NIM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IEnsureNetworkClockAvailabilityService>(system);      } @@ -398,14 +398,14 @@ private:          LOG_WARNING(Service_NIM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void ResumeAutonomicTimeCorrection(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_NIM, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  }; diff --git a/src/core/hle/service/ns/ns.cpp b/src/core/hle/service/ns/ns.cpp index e373609a1..8ce1f3296 100644 --- a/src/core/hle/service/ns/ns.cpp +++ b/src/core/hle/service/ns/ns.cpp @@ -335,7 +335,7 @@ void IApplicationManagerInterface::GetApplicationControlData(Kernel::HLERequestC                        "output buffer is too small! (actual={:016X}, expected_min=0x4000)", size);              IPC::ResponseBuilder rb{ctx, 2};              // TODO(DarkLordZach): Find a better error code for this. -            rb.Push(RESULT_UNKNOWN); +            rb.Push(ResultUnknown);              return;          } @@ -355,7 +355,7 @@ void IApplicationManagerInterface::GetApplicationControlData(Kernel::HLERequestC                        0x4000 + control.second->GetSize());              IPC::ResponseBuilder rb{ctx, 2};              // TODO(DarkLordZach): Find a better error code for this. -            rb.Push(RESULT_UNKNOWN); +            rb.Push(ResultUnknown);              return;          } @@ -369,7 +369,7 @@ void IApplicationManagerInterface::GetApplicationControlData(Kernel::HLERequestC      ctx.WriteBuffer(out);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(static_cast<u32>(out.size()));  } @@ -380,7 +380,7 @@ void IApplicationManagerInterface::GetApplicationDesiredLanguage(Kernel::HLERequ      const auto res = GetApplicationDesiredLanguage(supported_languages);      if (res.Succeeded()) {          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(*res);      } else {          IPC::ResponseBuilder rb{ctx, 2}; @@ -432,7 +432,7 @@ void IApplicationManagerInterface::ConvertApplicationLanguageToLanguageCode(      const auto res = ConvertApplicationLanguageToLanguageCode(application_language);      if (res.Succeeded()) {          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(*res);      } else {          IPC::ResponseBuilder rb{ctx, 2}; @@ -697,7 +697,7 @@ private:          LOG_DEBUG(Service_NS, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISystemUpdateControl>(system);      }  }; @@ -721,7 +721,7 @@ private:          LOG_WARNING(Service_NS, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(false);      }  }; diff --git a/src/core/hle/service/ns/ns.h b/src/core/hle/service/ns/ns.h index 991271f3e..218eec3ec 100644 --- a/src/core/hle/service/ns/ns.h +++ b/src/core/hle/service/ns/ns.h @@ -87,7 +87,7 @@ private:          LOG_DEBUG(Service_NS, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<T>(system);      } @@ -95,7 +95,7 @@ private:          LOG_DEBUG(Service_NS, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IApplicationManagerInterface>(system);      } diff --git a/src/core/hle/service/ns/pl_u.cpp b/src/core/hle/service/ns/pl_u.cpp index 90ba5c752..6e5ba26a3 100644 --- a/src/core/hle/service/ns/pl_u.cpp +++ b/src/core/hle/service/ns/pl_u.cpp @@ -216,7 +216,7 @@ void PL_U::RequestLoad(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_NS, "called, shared_font_type={}", shared_font_type);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void PL_U::GetLoadState(Kernel::HLERequestContext& ctx) { @@ -225,7 +225,7 @@ void PL_U::GetLoadState(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_NS, "called, font_id={}", font_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(static_cast<u32>(LoadState::Done));  } @@ -235,7 +235,7 @@ void PL_U::GetSize(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_NS, "called, font_id={}", font_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(impl->GetSharedFontRegion(font_id).size);  } @@ -245,7 +245,7 @@ void PL_U::GetSharedMemoryAddressOffset(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_NS, "called, font_id={}", font_id);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(impl->GetSharedFontRegion(font_id).offset);  } @@ -260,7 +260,7 @@ void PL_U::GetSharedMemoryNativeHandle(Kernel::HLERequestContext& ctx) {                  impl->shared_font->size());      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(&kernel.GetFontSharedMem());  } @@ -294,7 +294,7 @@ void PL_U::GetSharedFontInOrderOfPriority(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(font_offsets, 1);      ctx.WriteBuffer(font_sizes, 2); -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u8>(static_cast<u8>(LoadState::Done)); // Fonts Loaded      rb.Push<u32>(static_cast<u32>(font_codes.size()));  } diff --git a/src/core/hle/service/nvdrv/interface.cpp b/src/core/hle/service/nvdrv/interface.cpp index dc9b9341f..e4d495000 100644 --- a/src/core/hle/service/nvdrv/interface.cpp +++ b/src/core/hle/service/nvdrv/interface.cpp @@ -23,7 +23,7 @@ void NVDRV::SignalGPUInterruptSyncpt(const u32 syncpoint_id, const u32 value) {  void NVDRV::Open(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_NVDRV, "called");      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      if (!is_initialized) {          rb.Push<DeviceFD>(0); @@ -52,7 +52,7 @@ void NVDRV::Open(Kernel::HLERequestContext& ctx) {  void NVDRV::ServiceError(Kernel::HLERequestContext& ctx, NvResult result) {      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(result);  } @@ -78,7 +78,7 @@ void NVDRV::Ioctl1(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(nv_result);  } @@ -105,7 +105,7 @@ void NVDRV::Ioctl2(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(nv_result);  } @@ -133,7 +133,7 @@ void NVDRV::Ioctl3(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(nv_result);  } @@ -151,7 +151,7 @@ void NVDRV::Close(Kernel::HLERequestContext& ctx) {      const auto result = nvdrv->Close(fd);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(result);  } @@ -161,7 +161,7 @@ void NVDRV::Initialize(Kernel::HLERequestContext& ctx) {      is_initialized = true;      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(NvResult::Success);  } @@ -186,14 +186,14 @@ void NVDRV::QueryEvent(Kernel::HLERequestContext& ctx) {      if (event_id < MaxNvEvents) {          IPC::ResponseBuilder rb{ctx, 3, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          auto& event = nvdrv->GetEvent(event_id);          event.Clear();          rb.PushCopyObjects(event);          rb.PushEnum(NvResult::Success);      } else {          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushEnum(NvResult::BadParameter);      }  } @@ -204,7 +204,7 @@ void NVDRV::SetAruid(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_NVDRV, "(STUBBED) called, pid=0x{:X}", pid);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(NvResult::Success);  } @@ -212,14 +212,14 @@ void NVDRV::SetGraphicsFirmwareMemoryMarginEnabled(Kernel::HLERequestContext& ct      LOG_WARNING(Service_NVDRV, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void NVDRV::GetStatus(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service_NVDRV, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(NvResult::Success);  } @@ -229,7 +229,7 @@ void NVDRV::DumpGraphicsMemoryInfo(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_NVDRV, "called");      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  NVDRV::NVDRV(Core::System& system_, std::shared_ptr<Module> nvdrv_, const char* name) diff --git a/src/core/hle/service/olsc/olsc.cpp b/src/core/hle/service/olsc/olsc.cpp index b066c3417..3bbe1bfe2 100644 --- a/src/core/hle/service/olsc/olsc.cpp +++ b/src/core/hle/service/olsc/olsc.cpp @@ -50,7 +50,7 @@ private:          initialized = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetSaveDataBackupSetting(Kernel::HLERequestContext& ctx) { @@ -60,7 +60,7 @@ private:          constexpr u64 backup_setting = 0;          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(backup_setting);      } @@ -68,7 +68,7 @@ private:          LOG_WARNING(Service_OLSC, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      bool initialized{}; diff --git a/src/core/hle/service/pctl/module.cpp b/src/core/hle/service/pctl/module.cpp index 1c3d81143..1e31d05a6 100644 --- a/src/core/hle/service/pctl/module.cpp +++ b/src/core/hle/service/pctl/module.cpp @@ -213,7 +213,7 @@ private:              }          } -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void CheckFreeCommunicationPermission(Kernel::HLERequestContext& ctx) { @@ -223,7 +223,7 @@ private:          if (!CheckFreeCommunicationPermissionImpl()) {              rb.Push(Error::ResultNoFreeCommunication);          } else { -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);          }          states.free_communication = true; @@ -234,7 +234,7 @@ private:          states.stereo_vision = true;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void IsFreeCommunicationAvailable(Kernel::HLERequestContext& ctx) { @@ -244,7 +244,7 @@ private:          if (!CheckFreeCommunicationPermissionImpl()) {              rb.Push(Error::ResultNoFreeCommunication);          } else { -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);          }      } @@ -278,7 +278,7 @@ private:              return;          } -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void IsStereoVisionPermitted(Kernel::HLERequestContext& ctx) { @@ -289,7 +289,7 @@ private:              rb.Push(Error::ResultStereoVisionRestricted);              rb.Push(false);          } else { -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);              rb.Push(true);          }      } @@ -307,7 +307,7 @@ private:          }          SetStereoVisionRestrictionImpl(can_use); -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetStereoVisionRestriction(Kernel::HLERequestContext& ctx) { @@ -321,7 +321,7 @@ private:              return;          } -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(settings.is_stero_vision_restricted);      } @@ -331,7 +331,7 @@ private:          states.stereo_vision = false;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      struct ApplicationInfo { @@ -368,7 +368,7 @@ void Module::Interface::CreateService(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_PCTL, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      // TODO(ogniK): Get TID from process      rb.PushIpcInterface<IParentalControlService>(system, capability); @@ -378,7 +378,7 @@ void Module::Interface::CreateServiceWithoutInitialize(Kernel::HLERequestContext      LOG_DEBUG(Service_PCTL, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IParentalControlService>(system, capability);  } diff --git a/src/core/hle/service/pm/pm.cpp b/src/core/hle/service/pm/pm.cpp index a43185c44..f675740b4 100644 --- a/src/core/hle/service/pm/pm.cpp +++ b/src/core/hle/service/pm/pm.cpp @@ -36,7 +36,7 @@ void GetApplicationPidGeneric(Kernel::HLERequestContext& ctx,      });      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(process.has_value() ? (*process)->GetProcessID() : NO_PROCESS_FOUND_PID);  } @@ -57,7 +57,7 @@ private:          LOG_DEBUG(Service_PM, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushEnum(boot_mode);      } @@ -67,7 +67,7 @@ private:          boot_mode = SystemBootMode::Maintenance;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      SystemBootMode boot_mode = SystemBootMode::Normal; @@ -111,7 +111,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push((*process)->GetProcessID());      } @@ -151,7 +151,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push((*process)->GetTitleID());      } diff --git a/src/core/hle/service/prepo/prepo.cpp b/src/core/hle/service/prepo/prepo.cpp index c914f8145..32db6834c 100644 --- a/src/core/hle/service/prepo/prepo.cpp +++ b/src/core/hle/service/prepo/prepo.cpp @@ -77,7 +77,7 @@ private:                                  process_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      template <Core::Reporter::PlayReportType Type> @@ -105,14 +105,14 @@ private:                                  process_id, user_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void RequestImmediateTransmission(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_PREPO, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetTransmissionStatus(Kernel::HLERequestContext& ctx) { @@ -121,7 +121,7 @@ private:          constexpr s32 status = 0;          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(status);      } @@ -130,7 +130,7 @@ private:          constexpr u64 system_session_id = 0;          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(system_session_id);      } @@ -154,7 +154,7 @@ private:          reporter.SavePlayReport(Core::Reporter::PlayReportType::System, title_id, {data1, data2});          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SaveSystemReportWithUser(Kernel::HLERequestContext& ctx) { @@ -181,7 +181,7 @@ private:                                  std::nullopt, user_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  }; diff --git a/src/core/hle/service/psc/psc.cpp b/src/core/hle/service/psc/psc.cpp index 5a52b2b05..f8ea02b58 100644 --- a/src/core/hle/service/psc/psc.cpp +++ b/src/core/hle/service/psc/psc.cpp @@ -67,7 +67,7 @@ private:          LOG_DEBUG(Service_PSC, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IPmModule>(system);      }  }; diff --git a/src/core/hle/service/ptm/psm.cpp b/src/core/hle/service/ptm/psm.cpp index bb7af9217..d9897c5c5 100644 --- a/src/core/hle/service/ptm/psm.cpp +++ b/src/core/hle/service/ptm/psm.cpp @@ -64,7 +64,7 @@ private:          should_signal = true;          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(state_change_event.GetReadableEvent());      } @@ -74,7 +74,7 @@ private:          should_signal = false;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetChargerTypeChangeEventEnabled(Kernel::HLERequestContext& ctx) { @@ -85,7 +85,7 @@ private:          should_signal_charger_type = state;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetPowerSupplyChangeEventEnabled(Kernel::HLERequestContext& ctx) { @@ -96,7 +96,7 @@ private:          should_signal_power_supply = state;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetBatteryVoltageStateChangeEventEnabled(Kernel::HLERequestContext& ctx) { @@ -107,7 +107,7 @@ private:          should_signal_battery_voltage = state;          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      bool should_signal_charger_type{}; @@ -154,7 +154,7 @@ private:          LOG_DEBUG(Service_PSM, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u32>(battery_charge_percentage);      } @@ -162,7 +162,7 @@ private:          LOG_DEBUG(Service_PSM, "called");          IPC::ResponseBuilder rb{ctx, 3}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushEnum(charger_type);      } @@ -170,7 +170,7 @@ private:          LOG_DEBUG(Service_PSM, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IPsmSession>(system);      } diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index fa61a5c7b..7a15eeba0 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp @@ -162,7 +162,7 @@ void ServiceFrameworkBase::ReportUnimplementedFunction(Kernel::HLERequestContext      if (Settings::values.use_auto_stub) {          LOG_WARNING(Service, "Using auto stub fallback!");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  } @@ -200,7 +200,7 @@ ResultCode ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& sessi      case IPC::CommandType::TIPC_Close: {          session.Close();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          return IPC::ERR_REMOTE_PROCESS_DEAD;      }      case IPC::CommandType::ControlWithContext: @@ -228,7 +228,7 @@ ResultCode ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& sessi          ctx.WriteToOutgoingCommandBuffer(ctx.GetThread());      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  /// Initialize Services diff --git a/src/core/hle/service/set/set.cpp b/src/core/hle/service/set/set.cpp index fbdc4793d..ece2a74c6 100644 --- a/src/core/hle/service/set/set.cpp +++ b/src/core/hle/service/set/set.cpp @@ -77,7 +77,7 @@ constexpr ResultCode ERR_INVALID_LANGUAGE{ErrorModule::Settings, 625};  void PushResponseLanguageCode(Kernel::HLERequestContext& ctx, std::size_t num_language_codes) {      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(static_cast<u32>(num_language_codes));  } @@ -107,7 +107,7 @@ void GetKeyCodeMapImpl(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(layout);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  } // Anonymous namespace @@ -133,7 +133,7 @@ void SET::MakeLanguageCode(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(available_language_codes[index]);  } @@ -159,7 +159,7 @@ void SET::GetQuestFlag(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_SET, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(static_cast<u32>(Settings::values.quest_flag));  } @@ -167,7 +167,7 @@ void SET::GetLanguageCode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_SET, "called {}", Settings::values.language_index.GetValue());      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(available_language_codes[Settings::values.language_index.GetValue()]);  } @@ -175,7 +175,7 @@ void SET::GetRegionCode(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_SET, "called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push(Settings::values.region_index.GetValue());  } diff --git a/src/core/hle/service/set/set_sys.cpp b/src/core/hle/service/set/set_sys.cpp index 4f1ffe55f..8299c6b68 100644 --- a/src/core/hle/service/set/set_sys.cpp +++ b/src/core/hle/service/set/set_sys.cpp @@ -70,7 +70,7 @@ void GetFirmwareVersionImpl(Kernel::HLERequestContext& ctx, GetFirmwareVersionTy      ctx.WriteBuffer(data);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  } // Anonymous namespace @@ -89,7 +89,7 @@ void SET_SYS::GetColorSetId(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushEnum(color_set);  } @@ -100,7 +100,7 @@ void SET_SYS::SetColorSetId(Kernel::HLERequestContext& ctx) {      color_set = rp.PopEnum<ColorSet>();      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  SET_SYS::SET_SYS(Core::System& system_) : ServiceFramework{system_, "set:sys"} { diff --git a/src/core/hle/service/sm/controller.cpp b/src/core/hle/service/sm/controller.cpp index 147f12147..5fa5e0512 100644 --- a/src/core/hle/service/sm/controller.cpp +++ b/src/core/hle/service/sm/controller.cpp @@ -23,7 +23,7 @@ void Controller::ConvertCurrentObjectToDomain(Kernel::HLERequestContext& ctx) {      ctx.Session()->ConvertToDomain();      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(1); // Converted sessions start with 1 request handler  } @@ -62,7 +62,7 @@ void Controller::CloneCurrentObject(Kernel::HLERequestContext& ctx) {      // We succeeded.      IPC::ResponseBuilder rb{ctx, 2, 0, 1, IPC::ResponseBuilder::Flags::AlwaysMoveHandles}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushMoveObjects(clone->GetClientSession());  } @@ -76,7 +76,7 @@ void Controller::QueryPointerBufferSize(Kernel::HLERequestContext& ctx) {      LOG_WARNING(Service, "(STUBBED) called");      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u16>(0x8000);  } diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp index a9bc7da74..d8b20a3f2 100644 --- a/src/core/hle/service/sm/sm.cpp +++ b/src/core/hle/service/sm/sm.cpp @@ -36,7 +36,7 @@ static ResultCode ValidateServiceName(const std::string& name) {          LOG_ERROR(Service_SM, "Invalid service name! service={}", name);          return ERR_INVALID_NAME;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  Kernel::KClientPort& ServiceManager::InterfaceFactory(ServiceManager& self, Core::System& system) { @@ -79,7 +79,7 @@ ResultCode ServiceManager::UnregisterService(const std::string& name) {      iter->second->Close();      registered_services.erase(iter); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultVal<Kernel::KPort*> ServiceManager::GetServicePort(const std::string& name) { @@ -109,7 +109,7 @@ void SM::Initialize(Kernel::HLERequestContext& ctx) {      is_initialized = true;      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void SM::GetService(Kernel::HLERequestContext& ctx) { diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 5fcd91f68..7d85ecb6a 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp @@ -47,7 +47,7 @@ void BSD::PollWork::Response(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(ret);      rb.PushEnum(bsd_errno);  } @@ -62,7 +62,7 @@ void BSD::AcceptWork::Response(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 5}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(ret);      rb.PushEnum(bsd_errno);      rb.Push<u32>(static_cast<u32>(write_buffer.size())); @@ -74,7 +74,7 @@ void BSD::ConnectWork::Execute(BSD* bsd) {  void BSD::ConnectWork::Response(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(bsd_errno == Errno::SUCCESS ? 0 : -1);      rb.PushEnum(bsd_errno);  } @@ -87,7 +87,7 @@ void BSD::RecvWork::Response(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(message);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(ret);      rb.PushEnum(bsd_errno);  } @@ -103,7 +103,7 @@ void BSD::RecvFromWork::Response(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, 5}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(ret);      rb.PushEnum(bsd_errno);      rb.Push<u32>(static_cast<u32>(addr.size())); @@ -115,7 +115,7 @@ void BSD::SendWork::Execute(BSD* bsd) {  void BSD::SendWork::Response(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(ret);      rb.PushEnum(bsd_errno);  } @@ -126,7 +126,7 @@ void BSD::SendToWork::Execute(BSD* bsd) {  void BSD::SendToWork::Response(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(ret);      rb.PushEnum(bsd_errno);  } @@ -136,7 +136,7 @@ void BSD::RegisterClient(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(0); // bsd errno  } @@ -145,7 +145,7 @@ void BSD::StartMonitoring(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void BSD::Socket(Kernel::HLERequestContext& ctx) { @@ -160,7 +160,7 @@ void BSD::Socket(Kernel::HLERequestContext& ctx) {                                              static_cast<Protocol>(protocol));      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(fd);      rb.PushEnum(bsd_errno);  } @@ -170,7 +170,7 @@ void BSD::Select(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(0); // ret      rb.Push<u32>(0); // bsd errno  } @@ -235,7 +235,7 @@ void BSD::GetPeerName(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(write_buffer);      IPC::ResponseBuilder rb{ctx, 5}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(bsd_errno != Errno::SUCCESS ? -1 : 0);      rb.PushEnum(bsd_errno);      rb.Push<u32>(static_cast<u32>(write_buffer.size())); @@ -253,7 +253,7 @@ void BSD::GetSockName(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(write_buffer);      IPC::ResponseBuilder rb{ctx, 5}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(bsd_errno != Errno::SUCCESS ? -1 : 0);      rb.PushEnum(bsd_errno);      rb.Push<u32>(static_cast<u32>(write_buffer.size())); @@ -272,7 +272,7 @@ void BSD::GetSockOpt(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(optval);      IPC::ResponseBuilder rb{ctx, 5}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(-1);      rb.PushEnum(Errno::NOTCONN);      rb.Push<u32>(static_cast<u32>(optval.size())); @@ -299,7 +299,7 @@ void BSD::Fcntl(Kernel::HLERequestContext& ctx) {      const auto [ret, bsd_errno] = FcntlImpl(fd, static_cast<FcntlCmd>(cmd), arg);      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(ret);      rb.PushEnum(bsd_errno);  } @@ -822,7 +822,7 @@ bool BSD::IsFileDescriptorValid(s32 fd) const noexcept {  void BSD::BuildErrnoResponse(Kernel::HLERequestContext& ctx, Errno bsd_errno) const noexcept {      IPC::ResponseBuilder rb{ctx, 4}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<s32>(bsd_errno == Errno::SUCCESS ? 0 : -1);      rb.PushEnum(bsd_errno);  } diff --git a/src/core/hle/service/sockets/sfdnsres.cpp b/src/core/hle/service/sockets/sfdnsres.cpp index 5c71f423c..fb6142c49 100644 --- a/src/core/hle/service/sockets/sfdnsres.cpp +++ b/src/core/hle/service/sockets/sfdnsres.cpp @@ -46,7 +46,7 @@ void SFDNSRES::GetAddrInfoRequest(Kernel::HLERequestContext& ctx) {                  parameters.use_nsd_resolve, parameters.unknown, parameters.process_id);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  } // namespace Service::Sockets diff --git a/src/core/hle/service/spl/module.cpp b/src/core/hle/service/spl/module.cpp index b1552c3f0..0b5e2b7c3 100644 --- a/src/core/hle/service/spl/module.cpp +++ b/src/core/hle/service/spl/module.cpp @@ -36,7 +36,7 @@ void Module::Interface::GetRandomBytes(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(data);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) { diff --git a/src/core/hle/service/ssl/ssl.cpp b/src/core/hle/service/ssl/ssl.cpp index 3b072f6bc..921f4d776 100644 --- a/src/core/hle/service/ssl/ssl.cpp +++ b/src/core/hle/service/ssl/ssl.cpp @@ -89,14 +89,14 @@ private:                      parameters.option);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void CreateConnection(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_SSL, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISslConnection>(system);      } @@ -110,7 +110,7 @@ private:          LOG_WARNING(Service_SSL, "(STUBBED) called, certificate_format={}", certificate_format);          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(server_id);      } @@ -129,7 +129,7 @@ private:          LOG_WARNING(Service_SSL, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(client_id);      }  }; @@ -160,7 +160,7 @@ private:          LOG_WARNING(Service_SSL, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISslContext>(system);      } @@ -171,7 +171,7 @@ private:          ssl_version = rp.Pop<u32>();          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }  }; diff --git a/src/core/hle/service/time/clock_types.h b/src/core/hle/service/time/clock_types.h index a9cfe3eb0..392e16863 100644 --- a/src/core/hle/service/time/clock_types.h +++ b/src/core/hle/service/time/clock_types.h @@ -32,7 +32,7 @@ struct SteadyClockTimePoint {          span = other.time_point - time_point; -        return RESULT_SUCCESS; +        return ResultSuccess;      }      static SteadyClockTimePoint GetRandom() { @@ -101,7 +101,7 @@ struct ClockSnapshot {              return ERROR_TIME_MISMATCH;          }          current_time = steady_clock_time_point.time_point + context.offset; -        return RESULT_SUCCESS; +        return ResultSuccess;      }  };  static_assert(sizeof(ClockSnapshot) == 0xD0, "ClockSnapshot is incorrect size"); diff --git a/src/core/hle/service/time/local_system_clock_context_writer.h b/src/core/hle/service/time/local_system_clock_context_writer.h index 490d0ef3e..6be617392 100644 --- a/src/core/hle/service/time/local_system_clock_context_writer.h +++ b/src/core/hle/service/time/local_system_clock_context_writer.h @@ -18,7 +18,7 @@ public:  protected:      ResultCode Update() override {          shared_memory.UpdateLocalSystemClockContext(context); -        return RESULT_SUCCESS; +        return ResultSuccess;      }  private: diff --git a/src/core/hle/service/time/network_system_clock_context_writer.h b/src/core/hle/service/time/network_system_clock_context_writer.h index e2920b8eb..a54fd7fe1 100644 --- a/src/core/hle/service/time/network_system_clock_context_writer.h +++ b/src/core/hle/service/time/network_system_clock_context_writer.h @@ -18,7 +18,7 @@ public:  protected:      ResultCode Update() override {          shared_memory.UpdateNetworkSystemClockContext(context); -        return RESULT_SUCCESS; +        return ResultSuccess;      }  private: diff --git a/src/core/hle/service/time/standard_network_system_clock_core.h b/src/core/hle/service/time/standard_network_system_clock_core.h index 9d0aeaedb..95923a27b 100644 --- a/src/core/hle/service/time/standard_network_system_clock_core.h +++ b/src/core/hle/service/time/standard_network_system_clock_core.h @@ -25,13 +25,13 @@ public:      bool IsStandardNetworkSystemClockAccuracySufficient(Core::System& system) const {          SystemClockContext clock_ctx{}; -        if (GetClockContext(system, clock_ctx) != RESULT_SUCCESS) { +        if (GetClockContext(system, clock_ctx) != ResultSuccess) {              return {};          }          s64 span{};          if (clock_ctx.steady_time_point.GetSpanBetween( -                GetSteadyClockCore().GetCurrentTimePoint(system), span) != RESULT_SUCCESS) { +                GetSteadyClockCore().GetCurrentTimePoint(system), span) != ResultSuccess) {              return {};          } diff --git a/src/core/hle/service/time/standard_user_system_clock_core.cpp b/src/core/hle/service/time/standard_user_system_clock_core.cpp index 41bc01abd..ef79ab917 100644 --- a/src/core/hle/service/time/standard_user_system_clock_core.cpp +++ b/src/core/hle/service/time/standard_user_system_clock_core.cpp @@ -24,20 +24,18 @@ StandardUserSystemClockCore::StandardUserSystemClockCore(  ResultCode StandardUserSystemClockCore::SetAutomaticCorrectionEnabled(Core::System& system,                                                                        bool value) { -    if (const ResultCode result{ApplyAutomaticCorrection(system, value)}; -        result != RESULT_SUCCESS) { +    if (const ResultCode result{ApplyAutomaticCorrection(system, value)}; result != ResultSuccess) {          return result;      }      auto_correction_enabled = value; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode StandardUserSystemClockCore::GetClockContext(Core::System& system,                                                          SystemClockContext& ctx) const { -    if (const ResultCode result{ApplyAutomaticCorrection(system, false)}; -        result != RESULT_SUCCESS) { +    if (const ResultCode result{ApplyAutomaticCorrection(system, false)}; result != ResultSuccess) {          return result;      } @@ -57,7 +55,7 @@ ResultCode StandardUserSystemClockCore::SetClockContext(const SystemClockContext  ResultCode StandardUserSystemClockCore::ApplyAutomaticCorrection(Core::System& system,                                                                   bool value) const {      if (auto_correction_enabled == value) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      if (!network_system_clock_core.IsClockSetup(system)) { @@ -66,13 +64,13 @@ ResultCode StandardUserSystemClockCore::ApplyAutomaticCorrection(Core::System& s      SystemClockContext ctx{};      if (const ResultCode result{network_system_clock_core.GetClockContext(system, ctx)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          return result;      }      local_system_clock_core.SetClockContext(ctx); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Service::Time::Clock diff --git a/src/core/hle/service/time/system_clock_context_update_callback.cpp b/src/core/hle/service/time/system_clock_context_update_callback.cpp index bca7d869e..f656fab1c 100644 --- a/src/core/hle/service/time/system_clock_context_update_callback.cpp +++ b/src/core/hle/service/time/system_clock_context_update_callback.cpp @@ -32,7 +32,7 @@ void SystemClockContextUpdateCallback::BroadcastOperationEvent() {  }  ResultCode SystemClockContextUpdateCallback::Update(const SystemClockContext& value) { -    ResultCode result{RESULT_SUCCESS}; +    ResultCode result{ResultSuccess};      if (NeedUpdate(value)) {          context = value; @@ -40,7 +40,7 @@ ResultCode SystemClockContextUpdateCallback::Update(const SystemClockContext& va          result = Update(); -        if (result == RESULT_SUCCESS) { +        if (result == ResultSuccess) {              BroadcastOperationEvent();          }      } @@ -49,7 +49,7 @@ ResultCode SystemClockContextUpdateCallback::Update(const SystemClockContext& va  }  ResultCode SystemClockContextUpdateCallback::Update() { -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Service::Time::Clock diff --git a/src/core/hle/service/time/system_clock_core.cpp b/src/core/hle/service/time/system_clock_core.cpp index 2ef442b56..bd334bbef 100644 --- a/src/core/hle/service/time/system_clock_core.cpp +++ b/src/core/hle/service/time/system_clock_core.cpp @@ -21,7 +21,7 @@ ResultCode SystemClockCore::GetCurrentTime(Core::System& system, s64& posix_time      const SteadyClockTimePoint current_time_point{steady_clock_core.GetCurrentTimePoint(system)};      SystemClockContext clock_context{}; -    if (const ResultCode result{GetClockContext(system, clock_context)}; result != RESULT_SUCCESS) { +    if (const ResultCode result{GetClockContext(system, clock_context)}; result != ResultSuccess) {          return result;      } @@ -31,7 +31,7 @@ ResultCode SystemClockCore::GetCurrentTime(Core::System& system, s64& posix_time      posix_time = clock_context.offset + current_time_point.time_point; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode SystemClockCore::SetCurrentTime(Core::System& system, s64 posix_time) { @@ -39,7 +39,7 @@ ResultCode SystemClockCore::SetCurrentTime(Core::System& system, s64 posix_time)      const SystemClockContext clock_context{posix_time - current_time_point.time_point,                                             current_time_point}; -    if (const ResultCode result{SetClockContext(clock_context)}; result != RESULT_SUCCESS) { +    if (const ResultCode result{SetClockContext(clock_context)}; result != ResultSuccess) {          return result;      }      return Flush(clock_context); @@ -47,13 +47,13 @@ ResultCode SystemClockCore::SetCurrentTime(Core::System& system, s64 posix_time)  ResultCode SystemClockCore::Flush(const SystemClockContext& clock_context) {      if (!system_clock_context_update_callback) { -        return RESULT_SUCCESS; +        return ResultSuccess;      }      return system_clock_context_update_callback->Update(clock_context);  }  ResultCode SystemClockCore::SetSystemClockContext(const SystemClockContext& clock_context) { -    if (const ResultCode result{SetClockContext(clock_context)}; result != RESULT_SUCCESS) { +    if (const ResultCode result{SetClockContext(clock_context)}; result != ResultSuccess) {          return result;      }      return Flush(clock_context); @@ -61,7 +61,7 @@ ResultCode SystemClockCore::SetSystemClockContext(const SystemClockContext& cloc  bool SystemClockCore::IsClockSetup(Core::System& system) const {      SystemClockContext value{}; -    if (GetClockContext(system, value) == RESULT_SUCCESS) { +    if (GetClockContext(system, value) == ResultSuccess) {          const SteadyClockTimePoint steady_clock_time_point{              steady_clock_core.GetCurrentTimePoint(system)};          return steady_clock_time_point.clock_source_id == value.steady_time_point.clock_source_id; diff --git a/src/core/hle/service/time/system_clock_core.h b/src/core/hle/service/time/system_clock_core.h index b8e6122bf..83d0e5d62 100644 --- a/src/core/hle/service/time/system_clock_core.h +++ b/src/core/hle/service/time/system_clock_core.h @@ -35,12 +35,12 @@ public:      virtual ResultCode GetClockContext([[maybe_unused]] Core::System& system,                                         SystemClockContext& value) const {          value = context; -        return RESULT_SUCCESS; +        return ResultSuccess;      }      virtual ResultCode SetClockContext(const SystemClockContext& value) {          context = value; -        return RESULT_SUCCESS; +        return ResultSuccess;      }      virtual ResultCode Flush(const SystemClockContext& clock_context); diff --git a/src/core/hle/service/time/time.cpp b/src/core/hle/service/time/time.cpp index e7991012b..d6f710eba 100644 --- a/src/core/hle/service/time/time.cpp +++ b/src/core/hle/service/time/time.cpp @@ -54,7 +54,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<s64>(posix_time);      } @@ -76,7 +76,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, sizeof(Clock::SystemClockContext) / 4 + 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw(system_clock_context);      } @@ -112,7 +112,7 @@ private:          const Clock::SteadyClockTimePoint time_point{clock_core.GetCurrentTimePoint(system)};          IPC::ResponseBuilder rb{ctx, (sizeof(Clock::SteadyClockTimePoint) / 4) + 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw(time_point);      } @@ -135,7 +135,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(      if (const ResultCode result{              time_manager.GetTimeZoneContentManager().GetTimeZoneManager().GetDeviceLocationName(                  clock_snapshot.location_name)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          return result;      } @@ -144,7 +144,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(      if (const ResultCode result{Clock::ClockSnapshot::GetCurrentTime(              clock_snapshot.user_time, clock_snapshot.steady_clock_time_point,              clock_snapshot.user_context)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          return result;      } @@ -152,7 +152,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(      if (const ResultCode result{              time_manager.GetTimeZoneContentManager().GetTimeZoneManager().ToCalendarTimeWithMyRules(                  clock_snapshot.user_time, userCalendarInfo)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          return result;      } @@ -163,7 +163,7 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(      if (Clock::ClockSnapshot::GetCurrentTime(clock_snapshot.network_time,                                               clock_snapshot.steady_clock_time_point, -                                             clock_snapshot.network_context) != RESULT_SUCCESS) { +                                             clock_snapshot.network_context) != ResultSuccess) {          clock_snapshot.network_time = 0;      } @@ -171,20 +171,20 @@ ResultCode Module::Interface::GetClockSnapshotFromSystemClockContextInternal(      if (const ResultCode result{              time_manager.GetTimeZoneContentManager().GetTimeZoneManager().ToCalendarTimeWithMyRules(                  clock_snapshot.network_time, networkCalendarInfo)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          return result;      }      clock_snapshot.network_calendar_time = networkCalendarInfo.time;      clock_snapshot.network_calendar_additional_time = networkCalendarInfo.additional_info; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  void Module::Interface::GetStandardUserSystemClock(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_Time, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISystemClock>(system.GetTimeManager().GetStandardUserSystemClockCore(),                                        system);  } @@ -192,7 +192,7 @@ void Module::Interface::GetStandardUserSystemClock(Kernel::HLERequestContext& ct  void Module::Interface::GetStandardNetworkSystemClock(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_Time, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISystemClock>(system.GetTimeManager().GetStandardNetworkSystemClockCore(),                                        system);  } @@ -200,14 +200,14 @@ void Module::Interface::GetStandardNetworkSystemClock(Kernel::HLERequestContext&  void Module::Interface::GetStandardSteadyClock(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_Time, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISteadyClock>(system.GetTimeManager().GetStandardSteadyClockCore(), system);  }  void Module::Interface::GetTimeZoneService(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_Time, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ITimeZoneService>(system,                                            system.GetTimeManager().GetTimeZoneContentManager());  } @@ -215,7 +215,7 @@ void Module::Interface::GetTimeZoneService(Kernel::HLERequestContext& ctx) {  void Module::Interface::GetStandardLocalSystemClock(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_Time, "called");      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<ISystemClock>(system.GetTimeManager().GetStandardLocalSystemClockCore(),                                        system);  } @@ -225,7 +225,7 @@ void Module::Interface::IsStandardNetworkSystemClockAccuracySufficient(      LOG_DEBUG(Service_Time, "called");      auto& clock_core{system.GetTimeManager().GetStandardNetworkSystemClockCore()};      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.Push<u32>(clock_core.IsStandardNetworkSystemClockAccuracySufficient(system));  } @@ -249,7 +249,7 @@ void Module::Interface::CalculateMonotonicSystemClockBaseTimePoint(Kernel::HLERe          const s64 base_time_point{context.offset + current_time_point.time_point -                                    ticks.ToSeconds()};          IPC::ResponseBuilder rb{ctx, (sizeof(s64) / 4) + 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushRaw(base_time_point);          return;      } @@ -296,7 +296,7 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(clock_snapshot);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLERequestContext& ctx) { @@ -313,7 +313,7 @@ void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLEReques      Clock::ClockSnapshot clock_snapshot{};      if (const ResultCode result{GetClockSnapshotFromSystemClockContextInternal(              &ctx.GetThread(), user_context, network_context, type, clock_snapshot)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          IPC::ResponseBuilder rb{ctx, 2};          rb.Push(result);          return; @@ -322,7 +322,7 @@ void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLEReques      ctx.WriteBuffer(clock_snapshot);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser( @@ -349,7 +349,7 @@ void Module::Interface::CalculateStandardUserSystemClockDifferenceByUser(      }      IPC::ResponseBuilder rb{ctx, (sizeof(s64) / 4) + 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(time_span_type.nanoseconds);  } @@ -370,7 +370,7 @@ void Module::Interface::CalculateSpanBetween(Kernel::HLERequestContext& ctx) {      if (const ResultCode result{snapshot_a.steady_clock_time_point.GetSpanBetween(              snapshot_b.steady_clock_time_point, span)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          if (snapshot_a.network_time && snapshot_b.network_time) {              time_span_type =                  Clock::TimeSpanType::FromSeconds(snapshot_b.network_time - snapshot_a.network_time); @@ -384,14 +384,14 @@ void Module::Interface::CalculateSpanBetween(Kernel::HLERequestContext& ctx) {      }      IPC::ResponseBuilder rb{ctx, (sizeof(s64) / 4) + 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(time_span_type.nanoseconds);  }  void Module::Interface::GetSharedMemoryNativeHandle(Kernel::HLERequestContext& ctx) {      LOG_DEBUG(Service_Time, "called");      IPC::ResponseBuilder rb{ctx, 2, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushCopyObjects(&system.Kernel().GetTimeSharedMem());  } diff --git a/src/core/hle/service/time/time_manager.cpp b/src/core/hle/service/time/time_manager.cpp index 4f9684de8..4bbc606a1 100644 --- a/src/core/hle/service/time/time_manager.cpp +++ b/src/core/hle/service/time/time_manager.cpp @@ -108,7 +108,7 @@ struct TimeManager::Impl final {                                std::size_t total_location_name_count, u128 time_zone_rule_version,                                FileSys::VirtualFile& vfs_file) {          if (time_zone_content_manager.GetTimeZoneManager().SetDeviceLocationNameWithTimeZoneRule( -                location_name, vfs_file) != RESULT_SUCCESS) { +                location_name, vfs_file) != ResultSuccess) {              UNREACHABLE();              return;          } @@ -152,7 +152,7 @@ struct TimeManager::Impl final {              standard_local_system_clock_core.SetSystemClockContext(clock_context);          } else {              if (standard_local_system_clock_core.SetCurrentTime(system_, posix_time) != -                RESULT_SUCCESS) { +                ResultSuccess) {                  UNREACHABLE();                  return;              } @@ -167,7 +167,7 @@ struct TimeManager::Impl final {              network_system_clock_context_writer);          if (standard_network_system_clock_core.SetSystemClockContext(clock_context) != -            RESULT_SUCCESS) { +            ResultSuccess) {              UNREACHABLE();              return;          } @@ -180,7 +180,7 @@ struct TimeManager::Impl final {      void SetupStandardUserSystemClock(Core::System& system_, bool is_automatic_correction_enabled,                                        Clock::SteadyClockTimePoint steady_clock_time_point) {          if (standard_user_system_clock_core.SetAutomaticCorrectionEnabled( -                system_, is_automatic_correction_enabled) != RESULT_SUCCESS) { +                system_, is_automatic_correction_enabled) != ResultSuccess) {              UNREACHABLE();              return;          } diff --git a/src/core/hle/service/time/time_zone_content_manager.cpp b/src/core/hle/service/time/time_zone_content_manager.cpp index 57f71e6f0..bf4402308 100644 --- a/src/core/hle/service/time/time_zone_content_manager.cpp +++ b/src/core/hle/service/time/time_zone_content_manager.cpp @@ -81,7 +81,7 @@ void TimeZoneContentManager::Initialize(TimeManager& time_manager) {      }      if (FileSys::VirtualFile vfs_file; -        GetTimeZoneInfoFile(location_name, vfs_file) == RESULT_SUCCESS) { +        GetTimeZoneInfoFile(location_name, vfs_file) == ResultSuccess) {          const auto time_point{              time_manager.GetStandardSteadyClockCore().GetCurrentTimePoint(system)};          time_manager.SetupTimeZoneManager(location_name, time_point, location_name_cache.size(), {}, @@ -95,7 +95,7 @@ ResultCode TimeZoneContentManager::LoadTimeZoneRule(TimeZoneRule& rules,                                                      const std::string& location_name) const {      FileSys::VirtualFile vfs_file;      if (const ResultCode result{GetTimeZoneInfoFile(location_name, vfs_file)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          return result;      } @@ -138,7 +138,7 @@ ResultCode TimeZoneContentManager::GetTimeZoneInfoFile(const std::string& locati          return ERROR_TIME_NOT_FOUND;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Service::Time::TimeZone diff --git a/src/core/hle/service/time/time_zone_manager.cpp b/src/core/hle/service/time/time_zone_manager.cpp index 3032ca193..6da893790 100644 --- a/src/core/hle/service/time/time_zone_manager.cpp +++ b/src/core/hle/service/time/time_zone_manager.cpp @@ -742,7 +742,7 @@ static ResultCode CreateCalendarTime(s64 time, int gmt_offset, CalendarTimeInter      calendar_additional_info.is_dst = false;      calendar_additional_info.gmt_offset = gmt_offset; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time, @@ -772,7 +772,7 @@ static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,          }          if (const ResultCode result{                  ToCalendarTimeInternal(rules, new_time, calendar_time, calendar_additional_info)}; -            result != RESULT_SUCCESS) { +            result != ResultSuccess) {              return result;          }          if (time < rules.ats[0]) { @@ -781,7 +781,7 @@ static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,              calendar_time.year += years;          } -        return RESULT_SUCCESS; +        return ResultSuccess;      }      s32 tti_index{}; @@ -803,7 +803,7 @@ static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,      if (const ResultCode result{CreateCalendarTime(time, rules.ttis[tti_index].gmt_offset,                                                     calendar_time, calendar_additional_info)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          return result;      } @@ -812,7 +812,7 @@ static ResultCode ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,      for (int index{}; time_zone[index] != '\0'; ++index) {          calendar_additional_info.timezone_name[index] = time_zone[index];      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  static ResultCode ToCalendarTimeImpl(const TimeZoneRule& rules, s64 time, CalendarInfo& calendar) { @@ -845,14 +845,14 @@ ResultCode TimeZoneManager::SetDeviceLocationNameWithTimeZoneRule(const std::str      if (ParseTimeZoneBinary(rule, vfs_file)) {          device_location_name = location_name;          time_zone_rule = rule; -        return RESULT_SUCCESS; +        return ResultSuccess;      }      return ERROR_TIME_ZONE_CONVERSION_FAILED;  }  ResultCode TimeZoneManager::SetUpdatedTime(const Clock::SteadyClockTimePoint& value) {      time_zone_update_time_point = value; -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode TimeZoneManager::ToCalendarTimeWithMyRules(s64 time, CalendarInfo& calendar) const { @@ -868,7 +868,7 @@ ResultCode TimeZoneManager::ParseTimeZoneRuleBinary(TimeZoneRule& rules,      if (!ParseTimeZoneBinary(rules, vfs_file)) {          return ERROR_TIME_ZONE_CONVERSION_FAILED;      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode TimeZoneManager::ToPosixTime(const TimeZoneRule& rules, @@ -981,7 +981,7 @@ ResultCode TimeZoneManager::ToPosixTime(const TimeZoneRule& rules,          CalendarTimeInternal candidate_calendar_time{};          CalendarAdditionalInfo unused{};          if (ToCalendarTimeInternal(rules, pivot, candidate_calendar_time, unused) != -            RESULT_SUCCESS) { +            ResultSuccess) {              if (pivot > 0) {                  direction = 1;              } else { @@ -1021,7 +1021,7 @@ ResultCode TimeZoneManager::ToPosixTime(const TimeZoneRule& rules,              }          }      } -    return RESULT_SUCCESS; +    return ResultSuccess;  }  ResultCode TimeZoneManager::ToPosixTimeWithMyRule(const CalendarTime& calendar_time, @@ -1038,7 +1038,7 @@ ResultCode TimeZoneManager::GetDeviceLocationName(LocationName& value) const {          return ERROR_UNINITIALIZED_CLOCK;      }      std::memcpy(value.data(), device_location_name.c_str(), device_location_name.size()); -    return RESULT_SUCCESS; +    return ResultSuccess;  }  } // namespace Service::Time::TimeZone diff --git a/src/core/hle/service/time/time_zone_service.cpp b/src/core/hle/service/time/time_zone_service.cpp index 19d7a1a0c..5c3108768 100644 --- a/src/core/hle/service/time/time_zone_service.cpp +++ b/src/core/hle/service/time/time_zone_service.cpp @@ -35,14 +35,14 @@ void ITimeZoneService::GetDeviceLocationName(Kernel::HLERequestContext& ctx) {      TimeZone::LocationName location_name{};      if (const ResultCode result{              time_zone_content_manager.GetTimeZoneManager().GetDeviceLocationName(location_name)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          IPC::ResponseBuilder rb{ctx, 2};          rb.Push(result);          return;      }      IPC::ResponseBuilder rb{ctx, (sizeof(location_name) / 4) + 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(location_name);  } @@ -64,7 +64,7 @@ void ITimeZoneService::LoadTimeZoneRule(Kernel::HLERequestContext& ctx) {      TimeZone::TimeZoneRule time_zone_rule{};      if (const ResultCode result{              time_zone_content_manager.LoadTimeZoneRule(time_zone_rule, location_name)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          IPC::ResponseBuilder rb{ctx, 2};          rb.Push(result);          return; @@ -75,7 +75,7 @@ void ITimeZoneService::LoadTimeZoneRule(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(time_zone_rule_outbuffer);      IPC::ResponseBuilder rb{ctx, 2}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);  }  void ITimeZoneService::ToCalendarTime(Kernel::HLERequestContext& ctx) { @@ -91,14 +91,14 @@ void ITimeZoneService::ToCalendarTime(Kernel::HLERequestContext& ctx) {      TimeZone::CalendarInfo calendar_info{};      if (const ResultCode result{time_zone_content_manager.GetTimeZoneManager().ToCalendarTime(              time_zone_rule, posix_time, calendar_info)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          IPC::ResponseBuilder rb{ctx, 2};          rb.Push(result);          return;      }      IPC::ResponseBuilder rb{ctx, 2 + (sizeof(TimeZone::CalendarInfo) / 4)}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(calendar_info);  } @@ -112,14 +112,14 @@ void ITimeZoneService::ToCalendarTimeWithMyRule(Kernel::HLERequestContext& ctx)      if (const ResultCode result{              time_zone_content_manager.GetTimeZoneManager().ToCalendarTimeWithMyRules(                  posix_time, calendar_info)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          IPC::ResponseBuilder rb{ctx, 2};          rb.Push(result);          return;      }      IPC::ResponseBuilder rb{ctx, 2 + (sizeof(TimeZone::CalendarInfo) / 4)}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw(calendar_info);  } @@ -134,7 +134,7 @@ void ITimeZoneService::ToPosixTime(Kernel::HLERequestContext& ctx) {      s64 posix_time{};      if (const ResultCode result{time_zone_content_manager.GetTimeZoneManager().ToPosixTime(              time_zone_rule, calendar_time, posix_time)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          IPC::ResponseBuilder rb{ctx, 2};          rb.Push(result);          return; @@ -144,7 +144,7 @@ void ITimeZoneService::ToPosixTime(Kernel::HLERequestContext& ctx) {      // TODO(bunnei): Handle multiple times      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw<u32>(1); // Number of times we're returning  } @@ -158,7 +158,7 @@ void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {      if (const ResultCode result{              time_zone_content_manager.GetTimeZoneManager().ToPosixTimeWithMyRule(calendar_time,                                                                                   posix_time)}; -        result != RESULT_SUCCESS) { +        result != ResultSuccess) {          IPC::ResponseBuilder rb{ctx, 2};          rb.Push(result);          return; @@ -167,7 +167,7 @@ void ITimeZoneService::ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx) {      ctx.WriteBuffer(posix_time);      IPC::ResponseBuilder rb{ctx, 3}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushRaw<u32>(1); // Number of times we're returning  } diff --git a/src/core/hle/service/usb/usb.cpp b/src/core/hle/service/usb/usb.cpp index b3b230a8c..7f436c3bb 100644 --- a/src/core/hle/service/usb/usb.cpp +++ b/src/core/hle/service/usb/usb.cpp @@ -165,7 +165,7 @@ private:          LOG_DEBUG(Service_USB, "called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IPdSession>(system);      }  }; @@ -207,7 +207,7 @@ public:  private:      void GetPdCradleSession(Kernel::HLERequestContext& ctx) {          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IPdCradleSession>(system);          LOG_DEBUG(Service_USB, "called"); diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index fdd2b4b4f..3e5949d52 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp @@ -646,7 +646,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void AdjustRefcount(Kernel::HLERequestContext& ctx) { @@ -659,7 +659,7 @@ private:                      type);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetNativeHandle(Kernel::HLERequestContext& ctx) { @@ -671,7 +671,7 @@ private:          // TODO(Subv): Find out what this actually is.          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(nv_flinger.FindBufferQueue(id)->GetBufferWaitEvent());      } @@ -744,7 +744,7 @@ private:                      z_value);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      // This function currently does nothing but return a success error code in @@ -757,14 +757,14 @@ private:          LOG_DEBUG(Service_VI, "called, layer_id=0x{:08X}, visibility={}", layer_id, visibility);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetDisplayMode(Kernel::HLERequestContext& ctx) {          LOG_WARNING(Service_VI, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 6}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          if (Settings::values.use_docked_mode.GetValue()) {              rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) * @@ -879,7 +879,7 @@ private:          LOG_WARNING(Service_VI, "(STUBBED) called. display=0x{:016X}", display);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void CreateManagedLayer(Kernel::HLERequestContext& ctx) { @@ -902,7 +902,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(*layer_id);      } @@ -915,7 +915,7 @@ private:                      layer_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void SetLayerVisibility(Kernel::HLERequestContext& ctx) { @@ -927,7 +927,7 @@ private:                      visibility);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      NVFlinger::NVFlinger& nv_flinger; @@ -958,7 +958,7 @@ private:          LOG_WARNING(Service_VI, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IHOSBinderDriver>(system, nv_flinger);      } @@ -966,7 +966,7 @@ private:          LOG_WARNING(Service_VI, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<ISystemDisplayService>(system);      } @@ -974,7 +974,7 @@ private:          LOG_WARNING(Service_VI, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IManagerDisplayService>(system, nv_flinger);      } @@ -982,7 +982,7 @@ private:          LOG_WARNING(Service_VI, "(STUBBED) called");          IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushIpcInterface<IHOSBinderDriver>(system, nv_flinger);      } @@ -1019,7 +1019,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(*display_id);      } @@ -1030,7 +1030,7 @@ private:          LOG_WARNING(Service_VI, "(STUBBED) called. display_id=0x{:016X}", display_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      // This literally does nothing internally in the actual service itself, @@ -1039,7 +1039,7 @@ private:          LOG_DEBUG(Service_VI, "called.");          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetDisplayResolution(Kernel::HLERequestContext& ctx) { @@ -1049,7 +1049,7 @@ private:          LOG_DEBUG(Service_VI, "called. display_id=0x{:016X}", display_id);          IPC::ResponseBuilder rb{ctx, 6}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          // This only returns the fixed values of 1280x720 and makes no distinguishing          // between docked and undocked dimensions. We take the liberty of applying @@ -1083,7 +1083,7 @@ private:              return;          } -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void ListDisplays(Kernel::HLERequestContext& ctx) { @@ -1094,7 +1094,7 @@ private:          display_info.height *= static_cast<u64>(Settings::values.resolution_factor.GetValue());          ctx.WriteBuffer(&display_info, sizeof(DisplayInfo));          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(1);      } @@ -1130,7 +1130,7 @@ private:          const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());          IPC::ResponseBuilder rb{ctx, 4}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push<u64>(buffer_size);      } @@ -1143,7 +1143,7 @@ private:          nv_flinger.CloseLayer(layer_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void CreateStrayLayer(Kernel::HLERequestContext& ctx) { @@ -1176,7 +1176,7 @@ private:          const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());          IPC::ResponseBuilder rb{ctx, 6}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(*layer_id);          rb.Push<u64>(buffer_size);      } @@ -1188,7 +1188,7 @@ private:          LOG_WARNING(Service_VI, "(STUBBED) called. layer_id=0x{:016X}", layer_id);          IPC::ResponseBuilder rb{ctx, 2}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetDisplayVsyncEvent(Kernel::HLERequestContext& ctx) { @@ -1206,7 +1206,7 @@ private:          }          IPC::ResponseBuilder rb{ctx, 2, 1}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.PushCopyObjects(vsync_event);      } @@ -1219,7 +1219,7 @@ private:          if (converted_mode.Succeeded()) {              IPC::ResponseBuilder rb{ctx, 4}; -            rb.Push(RESULT_SUCCESS); +            rb.Push(ResultSuccess);              rb.PushEnum(*converted_mode);          } else {              IPC::ResponseBuilder rb{ctx, 2}; @@ -1250,7 +1250,7 @@ private:          IPC::ResponseBuilder rb{ctx, 6};          rb.Push(unknown_result_1);          rb.Push(unknown_result_2); -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);      }      void GetIndirectLayerImageRequiredMemoryInfo(Kernel::HLERequestContext& ctx) { @@ -1265,7 +1265,7 @@ private:          const auto out_size = (texture_size + base_size - 1) / base_size * base_size;          IPC::ResponseBuilder rb{ctx, 6}; -        rb.Push(RESULT_SUCCESS); +        rb.Push(ResultSuccess);          rb.Push(out_size);          rb.Push(alignment);      } @@ -1347,7 +1347,7 @@ void detail::GetDisplayServiceImpl(Kernel::HLERequestContext& ctx, Core::System&      }      IPC::ResponseBuilder rb{ctx, 2, 0, 1}; -    rb.Push(RESULT_SUCCESS); +    rb.Push(ResultSuccess);      rb.PushIpcInterface<IApplicationDisplayService>(system, nv_flinger);  } diff --git a/src/core/memory.cpp b/src/core/memory.cpp index bf2ef7816..9857278f6 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp @@ -591,7 +591,15 @@ struct Memory::Impl {       * @returns The instance of T read from the specified virtual address.       */      template <typename T> -    T Read(const VAddr vaddr) { +    T Read(VAddr vaddr) { +        // AARCH64 masks the upper 16 bit of all memory accesses +        vaddr &= 0xffffffffffffLL; + +        if (vaddr >= 1uLL << current_page_table->GetAddressSpaceBits()) { +            LOG_ERROR(HW_Memory, "Unmapped Read{} @ 0x{:08X}", sizeof(T) * 8, vaddr); +            return 0; +        } +          // Avoid adding any extra logic to this fast-path block          const uintptr_t raw_pointer = current_page_table->pointers[vaddr >> PAGE_BITS].Raw();          if (const u8* const pointer = Common::PageTable::PageInfo::ExtractPointer(raw_pointer)) { @@ -629,7 +637,16 @@ struct Memory::Impl {       *           is undefined.       */      template <typename T> -    void Write(const VAddr vaddr, const T data) { +    void Write(VAddr vaddr, const T data) { +        // AARCH64 masks the upper 16 bit of all memory accesses +        vaddr &= 0xffffffffffffLL; + +        if (vaddr >= 1uLL << current_page_table->GetAddressSpaceBits()) { +            LOG_ERROR(HW_Memory, "Unmapped Write{} 0x{:08X} @ 0x{:016X}", sizeof(data) * 8, +                      static_cast<u32>(data), vaddr); +            return; +        } +          // Avoid adding any extra logic to this fast-path block          const uintptr_t raw_pointer = current_page_table->pointers[vaddr >> PAGE_BITS].Raw();          if (u8* const pointer = Common::PageTable::PageInfo::ExtractPointer(raw_pointer)) { @@ -656,7 +673,16 @@ struct Memory::Impl {      }      template <typename T> -    bool WriteExclusive(const VAddr vaddr, const T data, const T expected) { +    bool WriteExclusive(VAddr vaddr, const T data, const T expected) { +        // AARCH64 masks the upper 16 bit of all memory accesses +        vaddr &= 0xffffffffffffLL; + +        if (vaddr >= 1uLL << current_page_table->GetAddressSpaceBits()) { +            LOG_ERROR(HW_Memory, "Unmapped Write{} 0x{:08X} @ 0x{:016X}", sizeof(data) * 8, +                      static_cast<u32>(data), vaddr); +            return true; +        } +          const uintptr_t raw_pointer = current_page_table->pointers[vaddr >> PAGE_BITS].Raw();          if (u8* const pointer = Common::PageTable::PageInfo::ExtractPointer(raw_pointer)) {              // NOTE: Avoid adding any extra logic to this fast-path block @@ -683,7 +709,16 @@ struct Memory::Impl {          return true;      } -    bool WriteExclusive128(const VAddr vaddr, const u128 data, const u128 expected) { +    bool WriteExclusive128(VAddr vaddr, const u128 data, const u128 expected) { +        // AARCH64 masks the upper 16 bit of all memory accesses +        vaddr &= 0xffffffffffffLL; + +        if (vaddr >= 1uLL << current_page_table->GetAddressSpaceBits()) { +            LOG_ERROR(HW_Memory, "Unmapped Write{} 0x{:08X} @ 0x{:016X}", sizeof(data) * 8, +                      static_cast<u32>(data[0]), vaddr); +            return true; +        } +          const uintptr_t raw_pointer = current_page_table->pointers[vaddr >> PAGE_BITS].Raw();          if (u8* const pointer = Common::PageTable::PageInfo::ExtractPointer(raw_pointer)) {              // NOTE: Avoid adding any extra logic to this fast-path block diff --git a/src/core/reporter.cpp b/src/core/reporter.cpp index a9596fe4d..ec2a16e62 100644 --- a/src/core/reporter.cpp +++ b/src/core/reporter.cpp @@ -144,7 +144,7 @@ json GetFullDataAuto(const std::string& timestamp, u64 title_id, Core::System& s      json out;      out["yuzu_version"] = GetYuzuVersionData(); -    out["report_common"] = GetReportCommonData(title_id, RESULT_SUCCESS, timestamp); +    out["report_common"] = GetReportCommonData(title_id, ResultSuccess, timestamp);      out["processor_state"] = GetProcessorStateDataAuto(system);      out["backtrace"] = GetBacktraceData(system); @@ -322,7 +322,7 @@ void Reporter::SavePlayReport(PlayReportType type, u64 title_id, std::vector<std      json out;      out["yuzu_version"] = GetYuzuVersionData(); -    out["report_common"] = GetReportCommonData(title_id, RESULT_SUCCESS, timestamp, user_id); +    out["report_common"] = GetReportCommonData(title_id, ResultSuccess, timestamp, user_id);      auto data_out = json::array();      for (const auto& d : data) { @@ -372,7 +372,7 @@ void Reporter::SaveFilesystemAccessReport(Service::FileSystem::LogMode log_mode,      json out;      out["yuzu_version"] = GetYuzuVersionData(); -    out["report_common"] = GetReportCommonData(title_id, RESULT_SUCCESS, timestamp); +    out["report_common"] = GetReportCommonData(title_id, ResultSuccess, timestamp);      out["log_mode"] = fmt::format("{:08X}", static_cast<u32>(log_mode));      out["log_message"] = std::move(log_message); diff --git a/src/input_common/analog_from_button.cpp b/src/input_common/analog_from_button.cpp index f8ec179d0..100138d11 100755 --- a/src/input_common/analog_from_button.cpp +++ b/src/input_common/analog_from_button.cpp @@ -21,104 +21,153 @@ public:          : up(std::move(up_)), down(std::move(down_)), left(std::move(left_)),            right(std::move(right_)), modifier(std::move(modifier_)), modifier_scale(modifier_scale_),            modifier_angle(modifier_angle_) { -        update_thread_running.store(true); -        update_thread = std::thread(&Analog::UpdateStatus, this); +        Input::InputCallback<bool> callbacks{ +            [this]([[maybe_unused]] bool status) { UpdateStatus(); }}; +        up->SetCallback(callbacks); +        down->SetCallback(callbacks); +        left->SetCallback(callbacks); +        right->SetCallback(callbacks);      } -    ~Analog() override { -        if (update_thread_running.load()) { -            update_thread_running.store(false); -            if (update_thread.joinable()) { -                update_thread.join(); -            } -        } +    bool IsAngleGreater(float old_angle, float new_angle) const { +        constexpr float TAU = Common::PI * 2.0f; +        // Use wider angle to ease the transition. +        constexpr float aperture = TAU * 0.15f; +        const float top_limit = new_angle + aperture; +        return (old_angle > new_angle && old_angle <= top_limit) || +               (old_angle + TAU > new_angle && old_angle + TAU <= top_limit);      } -    void MoveToDirection(bool enable, float to_angle) { -        if (!enable) { -            return; -        } +    bool IsAngleSmaller(float old_angle, float new_angle) const {          constexpr float TAU = Common::PI * 2.0f;          // Use wider angle to ease the transition.          constexpr float aperture = TAU * 0.15f; -        const float top_limit = to_angle + aperture; -        const float bottom_limit = to_angle - aperture; - -        if ((angle > to_angle && angle <= top_limit) || -            (angle + TAU > to_angle && angle + TAU <= top_limit)) { -            angle -= modifier_angle; -            if (angle < 0) { -                angle += TAU; +        const float bottom_limit = new_angle - aperture; +        return (old_angle >= bottom_limit && old_angle < new_angle) || +               (old_angle - TAU >= bottom_limit && old_angle - TAU < new_angle); +    } + +    float GetAngle(std::chrono::time_point<std::chrono::steady_clock> now) const { +        constexpr float TAU = Common::PI * 2.0f; +        float new_angle = angle; + +        auto time_difference = static_cast<float>( +            std::chrono::duration_cast<std::chrono::microseconds>(now - last_update).count()); +        time_difference /= 1000.0f * 1000.0f; +        if (time_difference > 0.5f) { +            time_difference = 0.5f; +        } + +        if (IsAngleGreater(new_angle, goal_angle)) { +            new_angle -= modifier_angle * time_difference; +            if (new_angle < 0) { +                new_angle += TAU; +            } +            if (!IsAngleGreater(new_angle, goal_angle)) { +                return goal_angle;              } -        } else if ((angle >= bottom_limit && angle < to_angle) || -                   (angle - TAU >= bottom_limit && angle - TAU < to_angle)) { -            angle += modifier_angle; -            if (angle >= TAU) { -                angle -= TAU; +        } else if (IsAngleSmaller(new_angle, goal_angle)) { +            new_angle += modifier_angle * time_difference; +            if (new_angle >= TAU) { +                new_angle -= TAU; +            } +            if (!IsAngleSmaller(new_angle, goal_angle)) { +                return goal_angle;              }          } else { -            angle = to_angle; +            return goal_angle;          } +        return new_angle;      } -    void UpdateStatus() { -        while (update_thread_running.load()) { -            const float coef = modifier->GetStatus() ? modifier_scale : 1.0f; - -            bool r = right->GetStatus(); -            bool l = left->GetStatus(); -            bool u = up->GetStatus(); -            bool d = down->GetStatus(); - -            // Eliminate contradictory movements -            if (r && l) { -                r = false; -                l = false; -            } -            if (u && d) { -                u = false; -                d = false; -            } +    void SetGoalAngle(bool r, bool l, bool u, bool d) { +        // Move to the right +        if (r && !u && !d) { +            goal_angle = 0.0f; +        } + +        // Move to the upper right +        if (r && u && !d) { +            goal_angle = Common::PI * 0.25f; +        } -            // Move to the right -            MoveToDirection(r && !u && !d, 0.0f); +        // Move up +        if (u && !l && !r) { +            goal_angle = Common::PI * 0.5f; +        } -            // Move to the upper right -            MoveToDirection(r && u && !d, Common::PI * 0.25f); +        // Move to the upper left +        if (l && u && !d) { +            goal_angle = Common::PI * 0.75f; +        } -            // Move up -            MoveToDirection(u && !l && !r, Common::PI * 0.5f); +        // Move to the left +        if (l && !u && !d) { +            goal_angle = Common::PI; +        } -            // Move to the upper left -            MoveToDirection(l && u && !d, Common::PI * 0.75f); +        // Move to the bottom left +        if (l && !u && d) { +            goal_angle = Common::PI * 1.25f; +        } -            // Move to the left -            MoveToDirection(l && !u && !d, Common::PI); +        // Move down +        if (d && !l && !r) { +            goal_angle = Common::PI * 1.5f; +        } -            // Move to the bottom left -            MoveToDirection(l && !u && d, Common::PI * 1.25f); +        // Move to the bottom right +        if (r && !u && d) { +            goal_angle = Common::PI * 1.75f; +        } +    } -            // Move down -            MoveToDirection(d && !l && !r, Common::PI * 1.5f); +    void UpdateStatus() { +        const float coef = modifier->GetStatus() ? modifier_scale : 1.0f; -            // Move to the bottom right -            MoveToDirection(r && !u && d, Common::PI * 1.75f); +        bool r = right->GetStatus(); +        bool l = left->GetStatus(); +        bool u = up->GetStatus(); +        bool d = down->GetStatus(); -            // Move if a key is pressed -            if (r || l || u || d) { -                amplitude = coef; -            } else { -                amplitude = 0; -            } +        // Eliminate contradictory movements +        if (r && l) { +            r = false; +            l = false; +        } +        if (u && d) { +            u = false; +            d = false; +        } -            // Delay the update rate to 100hz -            std::this_thread::sleep_for(std::chrono::milliseconds(10)); +        // Move if a key is pressed +        if (r || l || u || d) { +            amplitude = coef; +        } else { +            amplitude = 0;          } + +        const auto now = std::chrono::steady_clock::now(); +        const auto time_difference = static_cast<u64>( +            std::chrono::duration_cast<std::chrono::milliseconds>(now - last_update).count()); + +        if (time_difference < 10) { +            // Disable analog mode if inputs are too fast +            SetGoalAngle(r, l, u, d); +            angle = goal_angle; +        } else { +            angle = GetAngle(now); +            SetGoalAngle(r, l, u, d); +        } + +        last_update = now;      }      std::tuple<float, float> GetStatus() const override {          if (Settings::values.emulate_analog_keyboard) { -            return std::make_tuple(std::cos(angle) * amplitude, std::sin(angle) * amplitude); +            const auto now = std::chrono::steady_clock::now(); +            float angle_ = GetAngle(now); +            return std::make_tuple(std::cos(angle_) * amplitude, std::sin(angle_) * amplitude);          }          constexpr float SQRT_HALF = 0.707106781f;          int x = 0, y = 0; @@ -166,9 +215,9 @@ private:      float modifier_scale;      float modifier_angle;      float angle{}; +    float goal_angle{};      float amplitude{}; -    std::thread update_thread; -    std::atomic<bool> update_thread_running{}; +    std::chrono::time_point<std::chrono::steady_clock> last_update;  };  std::unique_ptr<Input::AnalogDevice> AnalogFromButton::Create(const Common::ParamPackage& params) { @@ -179,7 +228,7 @@ std::unique_ptr<Input::AnalogDevice> AnalogFromButton::Create(const Common::Para      auto right = Input::CreateDevice<Input::ButtonDevice>(params.Get("right", null_engine));      auto modifier = Input::CreateDevice<Input::ButtonDevice>(params.Get("modifier", null_engine));      auto modifier_scale = params.Get("modifier_scale", 0.5f); -    auto modifier_angle = params.Get("modifier_angle", 0.035f); +    auto modifier_angle = params.Get("modifier_angle", 5.5f);      return std::make_unique<Analog>(std::move(up), std::move(down), std::move(left),                                      std::move(right), std::move(modifier), modifier_scale,                                      modifier_angle); diff --git a/src/input_common/keyboard.cpp b/src/input_common/keyboard.cpp index c467ff4c5..8261e76fd 100644 --- a/src/input_common/keyboard.cpp +++ b/src/input_common/keyboard.cpp @@ -75,6 +75,7 @@ public:                  } else {                      pair.key_button->UnlockButton();                  } +                pair.key_button->TriggerOnChange();              }          }      } diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp index b9b584b2a..68672a92b 100644 --- a/src/input_common/sdl/sdl_impl.cpp +++ b/src/input_common/sdl/sdl_impl.cpp @@ -18,16 +18,6 @@  #include <utility>  #include <vector> -// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307 -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wimplicit-fallthrough" -#endif -#include <SDL.h> -#ifdef __clang__ -#pragma clang diagnostic pop -#endif -  #include "common/logging/log.h"  #include "common/math_util.h"  #include "common/param_package.h" @@ -214,6 +204,40 @@ public:          sdl_controller.reset(controller);      } +    bool IsJoyconLeft() const { +        return std::strstr(GetControllerName().c_str(), "Joy-Con Left") != nullptr; +    } + +    bool IsJoyconRight() const { +        return std::strstr(GetControllerName().c_str(), "Joy-Con Right") != nullptr; +    } + +    std::string GetControllerName() const { +        if (sdl_controller) { +            switch (SDL_GameControllerGetType(sdl_controller.get())) { +            case SDL_CONTROLLER_TYPE_XBOX360: +                return "XBox 360 Controller"; +            case SDL_CONTROLLER_TYPE_XBOXONE: +                return "XBox One Controller"; +            default: +                break; +            } +            const auto name = SDL_GameControllerName(sdl_controller.get()); +            if (name) { +                return name; +            } +        } + +        if (sdl_joystick) { +            const auto name = SDL_JoystickName(sdl_joystick.get()); +            if (name) { +                return name; +            } +        } + +        return "Unknown"; +    } +  private:      struct State {          std::unordered_map<int, bool> buttons; @@ -858,23 +882,42 @@ SDLState::~SDLState() {  std::vector<Common::ParamPackage> SDLState::GetInputDevices() {      std::scoped_lock lock(joystick_map_mutex);      std::vector<Common::ParamPackage> devices; +    std::unordered_map<int, std::shared_ptr<SDLJoystick>> joycon_pairs; +    for (const auto& [key, value] : joystick_map) { +        for (const auto& joystick : value) { +            if (!joystick->GetSDLJoystick()) { +                continue; +            } +            std::string name = +                fmt::format("{} {}", joystick->GetControllerName(), joystick->GetPort()); +            devices.emplace_back(Common::ParamPackage{ +                {"class", "sdl"}, +                {"display", std::move(name)}, +                {"guid", joystick->GetGUID()}, +                {"port", std::to_string(joystick->GetPort())}, +            }); +            if (joystick->IsJoyconLeft()) { +                joycon_pairs.insert_or_assign(joystick->GetPort(), joystick); +            } +        } +    } + +    // Add dual controllers      for (const auto& [key, value] : joystick_map) {          for (const auto& joystick : value) { -            if (auto* const controller = joystick->GetSDLGameController()) { +            if (joystick->IsJoyconRight()) { +                if (!joycon_pairs.contains(joystick->GetPort())) { +                    continue; +                } +                const auto joystick2 = joycon_pairs.at(joystick->GetPort()); +                  std::string name = -                    fmt::format("{} {}", GetControllerName(controller), joystick->GetPort()); -                devices.emplace_back(Common::ParamPackage{ -                    {"class", "sdl"}, -                    {"display", std::move(name)}, -                    {"guid", joystick->GetGUID()}, -                    {"port", std::to_string(joystick->GetPort())}, -                }); -            } else if (auto* const joy = joystick->GetSDLJoystick()) { -                std::string name = fmt::format("{} {}", SDL_JoystickName(joy), joystick->GetPort()); +                    fmt::format("{} {}", "Nintendo Dual Joy-Con", joystick->GetPort());                  devices.emplace_back(Common::ParamPackage{                      {"class", "sdl"},                      {"display", std::move(name)},                      {"guid", joystick->GetGUID()}, +                    {"guid2", joystick2->GetGUID()},                      {"port", std::to_string(joystick->GetPort())},                  });              } @@ -883,17 +926,6 @@ std::vector<Common::ParamPackage> SDLState::GetInputDevices() {      return devices;  } -std::string SDLState::GetControllerName(SDL_GameController* controller) const { -    switch (SDL_GameControllerGetType(controller)) { -    case SDL_CONTROLLER_TYPE_XBOX360: -        return "XBox 360 Controller"; -    case SDL_CONTROLLER_TYPE_XBOXONE: -        return "XBox One Controller"; -    default: -        return SDL_GameControllerName(controller); -    } -} -  namespace {  Common::ParamPackage BuildAnalogParamPackageForButton(int port, std::string guid, s32 axis,                                                        float value = 0.1f) { @@ -1073,24 +1105,48 @@ ButtonMapping SDLState::GetButtonMappingForDevice(const Common::ParamPackage& pa          return {};      }      const auto joystick = GetSDLJoystickByGUID(params.Get("guid", ""), params.Get("port", 0)); +      auto* controller = joystick->GetSDLGameController();      if (controller == nullptr) {          return {};      } -    const bool invert = -        SDL_GameControllerGetType(controller) != SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO; -      // This list is missing ZL/ZR since those are not considered buttons in SDL GameController.      // We will add those afterwards      // This list also excludes Screenshot since theres not really a mapping for that -    using ButtonBindings = -        std::array<std::pair<Settings::NativeButton::Values, SDL_GameControllerButton>, 17>; -    const ButtonBindings switch_to_sdl_button{{ -        {Settings::NativeButton::A, invert ? SDL_CONTROLLER_BUTTON_B : SDL_CONTROLLER_BUTTON_A}, -        {Settings::NativeButton::B, invert ? SDL_CONTROLLER_BUTTON_A : SDL_CONTROLLER_BUTTON_B}, -        {Settings::NativeButton::X, invert ? SDL_CONTROLLER_BUTTON_Y : SDL_CONTROLLER_BUTTON_X}, -        {Settings::NativeButton::Y, invert ? SDL_CONTROLLER_BUTTON_X : SDL_CONTROLLER_BUTTON_Y}, +    ButtonBindings switch_to_sdl_button; + +    if (SDL_GameControllerGetType(controller) == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO) { +        switch_to_sdl_button = GetNintendoButtonBinding(joystick); +    } else { +        switch_to_sdl_button = GetDefaultButtonBinding(); +    } + +    // Add the missing bindings for ZL/ZR +    static constexpr ZButtonBindings switch_to_sdl_axis{{ +        {Settings::NativeButton::ZL, SDL_CONTROLLER_AXIS_TRIGGERLEFT}, +        {Settings::NativeButton::ZR, SDL_CONTROLLER_AXIS_TRIGGERRIGHT}, +    }}; + +    // Parameters contain two joysticks return dual +    if (params.Has("guid2")) { +        const auto joystick2 = GetSDLJoystickByGUID(params.Get("guid2", ""), params.Get("port", 0)); + +        if (joystick2->GetSDLGameController() != nullptr) { +            return GetDualControllerMapping(joystick, joystick2, switch_to_sdl_button, +                                            switch_to_sdl_axis); +        } +    } + +    return GetSingleControllerMapping(joystick, switch_to_sdl_button, switch_to_sdl_axis); +} + +ButtonBindings SDLState::GetDefaultButtonBinding() const { +    return { +        std::pair{Settings::NativeButton::A, SDL_CONTROLLER_BUTTON_B}, +        {Settings::NativeButton::B, SDL_CONTROLLER_BUTTON_A}, +        {Settings::NativeButton::X, SDL_CONTROLLER_BUTTON_Y}, +        {Settings::NativeButton::Y, SDL_CONTROLLER_BUTTON_X},          {Settings::NativeButton::LStick, SDL_CONTROLLER_BUTTON_LEFTSTICK},          {Settings::NativeButton::RStick, SDL_CONTROLLER_BUTTON_RIGHTSTICK},          {Settings::NativeButton::L, SDL_CONTROLLER_BUTTON_LEFTSHOULDER}, @@ -1104,18 +1160,51 @@ ButtonMapping SDLState::GetButtonMappingForDevice(const Common::ParamPackage& pa          {Settings::NativeButton::SL, SDL_CONTROLLER_BUTTON_LEFTSHOULDER},          {Settings::NativeButton::SR, SDL_CONTROLLER_BUTTON_RIGHTSHOULDER},          {Settings::NativeButton::Home, SDL_CONTROLLER_BUTTON_GUIDE}, -    }}; +    }; +} -    // Add the missing bindings for ZL/ZR -    using ZBindings = -        std::array<std::pair<Settings::NativeButton::Values, SDL_GameControllerAxis>, 2>; -    static constexpr ZBindings switch_to_sdl_axis{{ -        {Settings::NativeButton::ZL, SDL_CONTROLLER_AXIS_TRIGGERLEFT}, -        {Settings::NativeButton::ZR, SDL_CONTROLLER_AXIS_TRIGGERRIGHT}, -    }}; +ButtonBindings SDLState::GetNintendoButtonBinding( +    const std::shared_ptr<SDLJoystick>& joystick) const { +    // Default SL/SR mapping for pro controllers +    auto sl_button = SDL_CONTROLLER_BUTTON_LEFTSHOULDER; +    auto sr_button = SDL_CONTROLLER_BUTTON_RIGHTSHOULDER; + +    if (joystick->IsJoyconLeft()) { +        sl_button = SDL_CONTROLLER_BUTTON_PADDLE2; +        sr_button = SDL_CONTROLLER_BUTTON_PADDLE4; +    } +    if (joystick->IsJoyconRight()) { +        sl_button = SDL_CONTROLLER_BUTTON_PADDLE3; +        sr_button = SDL_CONTROLLER_BUTTON_PADDLE1; +    } +    return { +        std::pair{Settings::NativeButton::A, SDL_CONTROLLER_BUTTON_A}, +        {Settings::NativeButton::B, SDL_CONTROLLER_BUTTON_B}, +        {Settings::NativeButton::X, SDL_CONTROLLER_BUTTON_X}, +        {Settings::NativeButton::Y, SDL_CONTROLLER_BUTTON_Y}, +        {Settings::NativeButton::LStick, SDL_CONTROLLER_BUTTON_LEFTSTICK}, +        {Settings::NativeButton::RStick, SDL_CONTROLLER_BUTTON_RIGHTSTICK}, +        {Settings::NativeButton::L, SDL_CONTROLLER_BUTTON_LEFTSHOULDER}, +        {Settings::NativeButton::R, SDL_CONTROLLER_BUTTON_RIGHTSHOULDER}, +        {Settings::NativeButton::Plus, SDL_CONTROLLER_BUTTON_START}, +        {Settings::NativeButton::Minus, SDL_CONTROLLER_BUTTON_BACK}, +        {Settings::NativeButton::DLeft, SDL_CONTROLLER_BUTTON_DPAD_LEFT}, +        {Settings::NativeButton::DUp, SDL_CONTROLLER_BUTTON_DPAD_UP}, +        {Settings::NativeButton::DRight, SDL_CONTROLLER_BUTTON_DPAD_RIGHT}, +        {Settings::NativeButton::DDown, SDL_CONTROLLER_BUTTON_DPAD_DOWN}, +        {Settings::NativeButton::SL, sl_button}, +        {Settings::NativeButton::SR, sr_button}, +        {Settings::NativeButton::Home, SDL_CONTROLLER_BUTTON_GUIDE}, +    }; +} + +ButtonMapping SDLState::GetSingleControllerMapping( +    const std::shared_ptr<SDLJoystick>& joystick, const ButtonBindings& switch_to_sdl_button, +    const ZButtonBindings& switch_to_sdl_axis) const {      ButtonMapping mapping;      mapping.reserve(switch_to_sdl_button.size() + switch_to_sdl_axis.size()); +    auto* controller = joystick->GetSDLGameController();      for (const auto& [switch_button, sdl_button] : switch_to_sdl_button) {          const auto& binding = SDL_GameControllerGetBindForButton(controller, sdl_button); @@ -1133,11 +1222,68 @@ ButtonMapping SDLState::GetButtonMappingForDevice(const Common::ParamPackage& pa      return mapping;  } +ButtonMapping SDLState::GetDualControllerMapping(const std::shared_ptr<SDLJoystick>& joystick, +                                                 const std::shared_ptr<SDLJoystick>& joystick2, +                                                 const ButtonBindings& switch_to_sdl_button, +                                                 const ZButtonBindings& switch_to_sdl_axis) const { +    ButtonMapping mapping; +    mapping.reserve(switch_to_sdl_button.size() + switch_to_sdl_axis.size()); +    auto* controller = joystick->GetSDLGameController(); +    auto* controller2 = joystick2->GetSDLGameController(); + +    for (const auto& [switch_button, sdl_button] : switch_to_sdl_button) { +        if (IsButtonOnLeftSide(switch_button)) { +            const auto& binding = SDL_GameControllerGetBindForButton(controller2, sdl_button); +            mapping.insert_or_assign( +                switch_button, +                BuildParamPackageForBinding(joystick2->GetPort(), joystick2->GetGUID(), binding)); +            continue; +        } +        const auto& binding = SDL_GameControllerGetBindForButton(controller, sdl_button); +        mapping.insert_or_assign( +            switch_button, +            BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding)); +    } +    for (const auto& [switch_button, sdl_axis] : switch_to_sdl_axis) { +        if (IsButtonOnLeftSide(switch_button)) { +            const auto& binding = SDL_GameControllerGetBindForAxis(controller2, sdl_axis); +            mapping.insert_or_assign( +                switch_button, +                BuildParamPackageForBinding(joystick2->GetPort(), joystick2->GetGUID(), binding)); +            continue; +        } +        const auto& binding = SDL_GameControllerGetBindForAxis(controller, sdl_axis); +        mapping.insert_or_assign( +            switch_button, +            BuildParamPackageForBinding(joystick->GetPort(), joystick->GetGUID(), binding)); +    } + +    return mapping; +} + +bool SDLState::IsButtonOnLeftSide(Settings::NativeButton::Values button) const { +    switch (button) { +    case Settings::NativeButton::DDown: +    case Settings::NativeButton::DLeft: +    case Settings::NativeButton::DRight: +    case Settings::NativeButton::DUp: +    case Settings::NativeButton::L: +    case Settings::NativeButton::LStick: +    case Settings::NativeButton::Minus: +    case Settings::NativeButton::Screenshot: +    case Settings::NativeButton::ZL: +        return true; +    default: +        return false; +    } +} +  AnalogMapping SDLState::GetAnalogMappingForDevice(const Common::ParamPackage& params) {      if (!params.Has("guid") || !params.Has("port")) {          return {};      }      const auto joystick = GetSDLJoystickByGUID(params.Get("guid", ""), params.Get("port", 0)); +    const auto joystick2 = GetSDLJoystickByGUID(params.Get("guid2", ""), params.Get("port", 0));      auto* controller = joystick->GetSDLGameController();      if (controller == nullptr) {          return {}; @@ -1148,10 +1294,17 @@ AnalogMapping SDLState::GetAnalogMappingForDevice(const Common::ParamPackage& pa          SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTX);      const auto& binding_left_y =          SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_LEFTY); -    mapping.insert_or_assign(Settings::NativeAnalog::LStick, -                             BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(), -                                                        binding_left_x.value.axis, -                                                        binding_left_y.value.axis)); +    if (params.Has("guid2")) { +        mapping.insert_or_assign( +            Settings::NativeAnalog::LStick, +            BuildParamPackageForAnalog(joystick2->GetPort(), joystick2->GetGUID(), +                                       binding_left_x.value.axis, binding_left_y.value.axis)); +    } else { +        mapping.insert_or_assign( +            Settings::NativeAnalog::LStick, +            BuildParamPackageForAnalog(joystick->GetPort(), joystick->GetGUID(), +                                       binding_left_x.value.axis, binding_left_y.value.axis)); +    }      const auto& binding_right_x =          SDL_GameControllerGetBindForAxis(controller, SDL_CONTROLLER_AXIS_RIGHTX);      const auto& binding_right_y = @@ -1168,20 +1321,32 @@ MotionMapping SDLState::GetMotionMappingForDevice(const Common::ParamPackage& pa          return {};      }      const auto joystick = GetSDLJoystickByGUID(params.Get("guid", ""), params.Get("port", 0)); +    const auto joystick2 = GetSDLJoystickByGUID(params.Get("guid2", ""), params.Get("port", 0));      auto* controller = joystick->GetSDLGameController();      if (controller == nullptr) {          return {};      } +    MotionMapping mapping = {};      joystick->EnableMotion(); -    if (!joystick->HasGyro() && !joystick->HasAccel()) { -        return {}; +    if (joystick->HasGyro() || joystick->HasAccel()) { +        mapping.insert_or_assign(Settings::NativeMotion::MotionRight, +                                 BuildMotionParam(joystick->GetPort(), joystick->GetGUID())); +    } +    if (params.Has("guid2")) { +        joystick2->EnableMotion(); +        if (joystick2->HasGyro() || joystick2->HasAccel()) { +            mapping.insert_or_assign(Settings::NativeMotion::MotionLeft, +                                     BuildMotionParam(joystick2->GetPort(), joystick2->GetGUID())); +        } +    } else { +        if (joystick->HasGyro() || joystick->HasAccel()) { +            mapping.insert_or_assign(Settings::NativeMotion::MotionLeft, +                                     BuildMotionParam(joystick->GetPort(), joystick->GetGUID())); +        }      } -    MotionMapping mapping = {}; -    mapping.insert_or_assign(Settings::NativeMotion::MotionLeft, -                             BuildMotionParam(joystick->GetPort(), joystick->GetGUID()));      return mapping;  }  namespace Polling { diff --git a/src/input_common/sdl/sdl_impl.h b/src/input_common/sdl/sdl_impl.h index 121e01913..b77afcbd8 100644 --- a/src/input_common/sdl/sdl_impl.h +++ b/src/input_common/sdl/sdl_impl.h @@ -9,6 +9,17 @@  #include <mutex>  #include <thread>  #include <unordered_map> + +// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307 +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wimplicit-fallthrough" +#endif +#include <SDL.h> +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif +  #include "common/common_types.h"  #include "common/threadsafe_queue.h"  #include "input_common/sdl/sdl.h" @@ -18,6 +29,11 @@ using SDL_GameController = struct _SDL_GameController;  using SDL_Joystick = struct _SDL_Joystick;  using SDL_JoystickID = s32; +using ButtonBindings = +    std::array<std::pair<Settings::NativeButton::Values, SDL_GameControllerButton>, 17>; +using ZButtonBindings = +    std::array<std::pair<Settings::NativeButton::Values, SDL_GameControllerAxis>, 2>; +  namespace InputCommon::SDL {  class SDLAnalogFactory; @@ -66,8 +82,25 @@ private:      /// Needs to be called before SDL_QuitSubSystem.      void CloseJoysticks(); -    /// Returns a custom name for specific controllers because the default name is not correct -    std::string GetControllerName(SDL_GameController* controller) const; +    /// Returns the default button bindings list for generic controllers +    ButtonBindings GetDefaultButtonBinding() const; + +    /// Returns the default button bindings list for nintendo controllers +    ButtonBindings GetNintendoButtonBinding(const std::shared_ptr<SDLJoystick>& joystick) const; + +    /// Returns the button mappings from a single controller +    ButtonMapping GetSingleControllerMapping(const std::shared_ptr<SDLJoystick>& joystick, +                                             const ButtonBindings& switch_to_sdl_button, +                                             const ZButtonBindings& switch_to_sdl_axis) const; + +    /// Returns the button mappings from two different controllers +    ButtonMapping GetDualControllerMapping(const std::shared_ptr<SDLJoystick>& joystick, +                                           const std::shared_ptr<SDLJoystick>& joystick2, +                                           const ButtonBindings& switch_to_sdl_button, +                                           const ZButtonBindings& switch_to_sdl_axis) const; + +    /// Returns true if the button is on the left joycon +    bool IsButtonOnLeftSide(Settings::NativeButton::Values button) const;      // Set to true if SDL supports game controller subsystem      bool has_gamecontroller = false; diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 37f7b24e1..35cc561be 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -104,7 +104,13 @@ void GPU::WaitFence(u32 syncpoint_id, u32 value) {      }      MICROPROFILE_SCOPE(GPU_wait);      std::unique_lock lock{sync_mutex}; -    sync_cv.wait(lock, [=, this] { return syncpoints.at(syncpoint_id).load() >= value; }); +    sync_cv.wait(lock, [=, this] { +        if (shutting_down.load(std::memory_order_relaxed)) { +            // We're shutting down, ensure no threads continue to wait for the next syncpoint +            return true; +        } +        return syncpoints.at(syncpoint_id).load() >= value; +    });  }  void GPU::IncrementSyncPoint(const u32 syncpoint_id) { @@ -523,6 +529,10 @@ void GPU::TriggerCpuInterrupt(const u32 syncpoint_id, const u32 value) const {  }  void GPU::ShutDown() { +    // Signal that threads should no longer block on syncpoint fences +    shutting_down.store(true, std::memory_order_relaxed); +    sync_cv.notify_all(); +      gpu_thread.ShutDown();  } diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index 29a867863..a8e98e51b 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -389,6 +389,8 @@ private:      std::unique_ptr<Engines::KeplerMemory> kepler_memory;      /// Shader build notifier      std::unique_ptr<VideoCore::ShaderNotify> shader_notify; +    /// When true, we are about to shut down emulation session, so terminate outstanding tasks +    std::atomic_bool shutting_down{};      std::array<std::atomic<u32>, Service::Nvidia::MaxSyncPoints> syncpoints{}; diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp index fa37aa79a..5edd06ebc 100644 --- a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp +++ b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp @@ -53,6 +53,18 @@ struct Range {      UNREACHABLE_MSG("Invalid memory usage={}", usage);      return VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;  } + +constexpr VkExportMemoryAllocateInfo EXPORT_ALLOCATE_INFO{ +    .sType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, +    .pNext = nullptr, +#ifdef _WIN32 +    .handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, +#elif __unix__ +    .handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, +#else +    .handleTypes = 0, +#endif +};  } // Anonymous namespace  class MemoryAllocation { @@ -131,7 +143,7 @@ public:      /// Returns whether this allocation is compatible with the arguments.      [[nodiscard]] bool IsCompatible(VkMemoryPropertyFlags flags, u32 type_mask) const { -        return (flags & property_flags) && (type_mask & shifted_memory_type) != 0; +        return (flags & property_flags) == property_flags && (type_mask & shifted_memory_type) != 0;      }  private: @@ -217,14 +229,18 @@ MemoryAllocator::~MemoryAllocator() = default;  MemoryCommit MemoryAllocator::Commit(const VkMemoryRequirements& requirements, MemoryUsage usage) {      // Find the fastest memory flags we can afford with the current requirements -    const VkMemoryPropertyFlags flags = MemoryPropertyFlags(requirements.memoryTypeBits, usage); +    const u32 type_mask = requirements.memoryTypeBits; +    const VkMemoryPropertyFlags usage_flags = MemoryUsagePropertyFlags(usage); +    const VkMemoryPropertyFlags flags = MemoryPropertyFlags(type_mask, usage_flags);      if (std::optional<MemoryCommit> commit = TryCommit(requirements, flags)) {          return std::move(*commit);      }      // Commit has failed, allocate more memory. -    // TODO(Rodrigo): Handle out of memory situations in some way like flushing to guest memory. -    AllocMemory(flags, requirements.memoryTypeBits, AllocationChunkSize(requirements.size)); - +    const u64 chunk_size = AllocationChunkSize(requirements.size); +    if (!TryAllocMemory(flags, type_mask, chunk_size)) { +        // TODO(Rodrigo): Handle out of memory situations in some way like flushing to guest memory. +        throw vk::Exception(VK_ERROR_OUT_OF_DEVICE_MEMORY); +    }      // Commit again, this time it won't fail since there's a fresh allocation above.      // If it does, there's a bug.      return TryCommit(requirements, flags).value(); @@ -242,26 +258,25 @@ MemoryCommit MemoryAllocator::Commit(const vk::Image& image, MemoryUsage usage)      return commit;  } -void MemoryAllocator::AllocMemory(VkMemoryPropertyFlags flags, u32 type_mask, u64 size) { +bool MemoryAllocator::TryAllocMemory(VkMemoryPropertyFlags flags, u32 type_mask, u64 size) {      const u32 type = FindType(flags, type_mask).value(); -    const VkExportMemoryAllocateInfo export_allocate_info{ -        .sType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, -        .pNext = nullptr, -#ifdef _WIN32 -        .handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, -#elif __unix__ -        .handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, -#else -        .handleTypes = 0, -#endif -    }; -    vk::DeviceMemory memory = device.GetLogical().AllocateMemory({ +    vk::DeviceMemory memory = device.GetLogical().TryAllocateMemory({          .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, -        .pNext = export_allocations ? &export_allocate_info : nullptr, +        .pNext = export_allocations ? &EXPORT_ALLOCATE_INFO : nullptr,          .allocationSize = size,          .memoryTypeIndex = type,      }); +    if (!memory) { +        if ((flags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0) { +            // Try to allocate non device local memory +            return TryAllocMemory(flags & ~VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, type_mask, size); +        } else { +            // RIP +            return false; +        } +    }      allocations.push_back(std::make_unique<MemoryAllocation>(std::move(memory), flags, size, type)); +    return true;  }  std::optional<MemoryCommit> MemoryAllocator::TryCommit(const VkMemoryRequirements& requirements, @@ -274,24 +289,24 @@ std::optional<MemoryCommit> MemoryAllocator::TryCommit(const VkMemoryRequirement              return commit;          }      } +    if ((flags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0) { +        // Look for non device local commits on failure +        return TryCommit(requirements, flags & ~VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); +    }      return std::nullopt;  } -VkMemoryPropertyFlags MemoryAllocator::MemoryPropertyFlags(u32 type_mask, MemoryUsage usage) const { -    return MemoryPropertyFlags(type_mask, MemoryUsagePropertyFlags(usage)); -} -  VkMemoryPropertyFlags MemoryAllocator::MemoryPropertyFlags(u32 type_mask,                                                             VkMemoryPropertyFlags flags) const {      if (FindType(flags, type_mask)) {          // Found a memory type with those requirements          return flags;      } -    if (flags & VK_MEMORY_PROPERTY_HOST_CACHED_BIT) { +    if ((flags & VK_MEMORY_PROPERTY_HOST_CACHED_BIT) != 0) {          // Remove host cached bit in case it's not supported          return MemoryPropertyFlags(type_mask, flags & ~VK_MEMORY_PROPERTY_HOST_CACHED_BIT);      } -    if (flags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) { +    if ((flags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0) {          // Remove device local, if it's not supported by the requested resource          return MemoryPropertyFlags(type_mask, flags & ~VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);      } @@ -302,7 +317,7 @@ VkMemoryPropertyFlags MemoryAllocator::MemoryPropertyFlags(u32 type_mask,  std::optional<u32> MemoryAllocator::FindType(VkMemoryPropertyFlags flags, u32 type_mask) const {      for (u32 type_index = 0; type_index < properties.memoryTypeCount; ++type_index) {          const VkMemoryPropertyFlags type_flags = properties.memoryTypes[type_index].propertyFlags; -        if ((type_mask & (1U << type_index)) && (type_flags & flags)) { +        if ((type_mask & (1U << type_index)) != 0 && (type_flags & flags) == flags) {              // The type matches in type and in the wanted properties.              return type_index;          } diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.h b/src/video_core/vulkan_common/vulkan_memory_allocator.h index d1ce29450..db12d02f4 100644 --- a/src/video_core/vulkan_common/vulkan_memory_allocator.h +++ b/src/video_core/vulkan_common/vulkan_memory_allocator.h @@ -101,16 +101,13 @@ public:      MemoryCommit Commit(const vk::Image& image, MemoryUsage usage);  private: -    /// Allocates a chunk of memory. -    void AllocMemory(VkMemoryPropertyFlags flags, u32 type_mask, u64 size); +    /// Tries to allocate a chunk of memory. +    bool TryAllocMemory(VkMemoryPropertyFlags flags, u32 type_mask, u64 size);      /// Tries to allocate a memory commit.      std::optional<MemoryCommit> TryCommit(const VkMemoryRequirements& requirements,                                            VkMemoryPropertyFlags flags); -    /// Returns the fastest compatible memory property flags from a wanted usage. -    VkMemoryPropertyFlags MemoryPropertyFlags(u32 type_mask, MemoryUsage usage) const; -      /// Returns the fastest compatible memory property flags from the wanted flags.      VkMemoryPropertyFlags MemoryPropertyFlags(u32 type_mask, VkMemoryPropertyFlags flags) const; diff --git a/src/yuzu/applets/software_keyboard.cpp b/src/yuzu/applets/software_keyboard.cpp index a9a095d58..aa453a79f 100644 --- a/src/yuzu/applets/software_keyboard.cpp +++ b/src/yuzu/applets/software_keyboard.cpp @@ -1101,12 +1101,11 @@ void QtSoftwareKeyboardDialog::NormalKeyboardButtonClicked(QPushButton* button)      }      if (button == ui->button_ok || button == ui->button_ok_shift || button == ui->button_ok_num) { -        if (ui->topOSK->currentIndex() == 1) { -            emit SubmitNormalText(SwkbdResult::Ok, -                                  ui->text_edit_osk->toPlainText().toStdU16String()); -        } else { -            emit SubmitNormalText(SwkbdResult::Ok, ui->line_edit_osk->text().toStdU16String()); -        } +        auto text = ui->topOSK->currentIndex() == 1 +                        ? ui->text_edit_osk->toPlainText().toStdU16String() +                        : ui->line_edit_osk->text().toStdU16String(); + +        emit SubmitNormalText(SwkbdResult::Ok, std::move(text));          return;      } @@ -1265,13 +1264,11 @@ void QtSoftwareKeyboardDialog::TranslateButtonPress(HIDButton button) {          if (is_inline) {              emit SubmitInlineText(SwkbdReplyType::DecidedCancel, current_text, cursor_position);          } else { -            if (ui->topOSK->currentIndex() == 1) { -                emit SubmitNormalText(SwkbdResult::Cancel, -                                      ui->text_edit_osk->toPlainText().toStdU16String()); -            } else { -                emit SubmitNormalText(SwkbdResult::Cancel, -                                      ui->line_edit_osk->text().toStdU16String()); -            } +            auto text = ui->topOSK->currentIndex() == 1 +                            ? ui->text_edit_osk->toPlainText().toStdU16String() +                            : ui->line_edit_osk->text().toStdU16String(); + +            emit SubmitNormalText(SwkbdResult::Cancel, std::move(text));          }          break;      case HIDButton::Y: @@ -1563,7 +1560,7 @@ void QtSoftwareKeyboard::ShowNormalKeyboard() const {  void QtSoftwareKeyboard::ShowTextCheckDialog(      Service::AM::Applets::SwkbdTextCheckResult text_check_result,      std::u16string text_check_message) const { -    emit MainWindowShowTextCheckDialog(text_check_result, text_check_message); +    emit MainWindowShowTextCheckDialog(text_check_result, std::move(text_check_message));  }  void QtSoftwareKeyboard::ShowInlineKeyboard( diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index eb58bfa5b..e9d4bef60 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -255,7 +255,8 @@ void Config::Initialize(const std::string& config_name) {          Reload();          break;      case ConfigType::PerGameConfig: -        qt_config_loc = FS::PathToUTF8String(fs_config_loc / "custom" / config_file); +        qt_config_loc = +            FS::PathToUTF8String(fs_config_loc / "custom" / FS::ToU8String(config_file));          void(FS::CreateParentDir(qt_config_loc));          qt_config = std::make_unique<QSettings>(QString::fromStdString(qt_config_loc),                                                  QSettings::IniFormat); diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp index d89f1ad4b..a1d434aca 100644 --- a/src/yuzu/configuration/configure_per_game.cpp +++ b/src/yuzu/configuration/configure_per_game.cpp @@ -3,9 +3,13 @@  // Refer to the license.txt file included.  #include <algorithm> +#include <filesystem>  #include <memory> +#include <string>  #include <utility> +#include <fmt/format.h> +  #include <QAbstractButton>  #include <QCheckBox>  #include <QDialogButtonBox> @@ -17,6 +21,8 @@  #include <QTimer>  #include <QTreeView> +#include "common/fs/fs_util.h" +#include "common/fs/path_util.h"  #include "core/core.h"  #include "core/file_sys/control_metadata.h"  #include "core/file_sys/patch_manager.h" @@ -29,10 +35,12 @@  #include "yuzu/uisettings.h"  #include "yuzu/util/util.h" -ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id) +ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id, const std::string& file_name)      : QDialog(parent), ui(std::make_unique<Ui::ConfigurePerGame>()), title_id(title_id) { -    game_config = std::make_unique<Config>(fmt::format("{:016X}", title_id), -                                           Config::ConfigType::PerGameConfig); +    const auto file_path = std::filesystem::path(Common::FS::ToU8String(file_name)); +    const auto config_file_name = title_id == 0 ? Common::FS::PathToUTF8String(file_path.filename()) +                                                : fmt::format("{:016X}", title_id); +    game_config = std::make_unique<Config>(config_file_name, Config::ConfigType::PerGameConfig);      Settings::SetConfiguringGlobal(false); diff --git a/src/yuzu/configuration/configure_per_game.h b/src/yuzu/configuration/configure_per_game.h index f6e6ab7c4..a2d0211a3 100644 --- a/src/yuzu/configuration/configure_per_game.h +++ b/src/yuzu/configuration/configure_per_game.h @@ -5,6 +5,7 @@  #pragma once  #include <memory> +#include <string>  #include <vector>  #include <QDialog> @@ -27,7 +28,8 @@ class ConfigurePerGame : public QDialog {      Q_OBJECT  public: -    explicit ConfigurePerGame(QWidget* parent, u64 title_id); +    // Cannot use std::filesystem::path due to https://bugreports.qt.io/browse/QTBUG-73263 +    explicit ConfigurePerGame(QWidget* parent, u64 title_id, const std::string& file_name);      ~ConfigurePerGame() override;      /// Save all button configurations to settings file diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp index 63cf82f7d..9308cfef8 100644 --- a/src/yuzu/game_list.cpp +++ b/src/yuzu/game_list.cpp @@ -91,9 +91,8 @@ QString GameListSearchField::filterText() const {  QString GameList::GetLastFilterResultItem() const {      QString file_path; -    const int folder_count = item_model->rowCount(); -    for (int i = 0; i < folder_count; ++i) { +    for (int i = 1; i < item_model->rowCount() - 1; ++i) {          const QStandardItem* folder = item_model->item(i, 0);          const QModelIndex folder_index = folder->index();          const int children_count = folder->rowCount(); @@ -184,7 +183,6 @@ void GameList::OnItemExpanded(const QModelIndex& item) {  // Event in order to filter the gamelist after editing the searchfield  void GameList::OnTextChanged(const QString& new_text) { -    const int folder_count = tree_view->model()->rowCount();      QString edit_filter_text = new_text.toLower();      QStandardItem* folder;      int children_total = 0; @@ -194,7 +192,7 @@ void GameList::OnTextChanged(const QString& new_text) {      if (edit_filter_text.isEmpty()) {          tree_view->setRowHidden(0, item_model->invisibleRootItem()->index(),                                  UISettings::values.favorited_ids.size() == 0); -        for (int i = 1; i < folder_count; ++i) { +        for (int i = 1; i < item_model->rowCount() - 1; ++i) {              folder = item_model->item(i, 0);              const QModelIndex folder_index = folder->index();              const int children_count = folder->rowCount(); @@ -207,7 +205,7 @@ void GameList::OnTextChanged(const QString& new_text) {      } else {          tree_view->setRowHidden(0, item_model->invisibleRootItem()->index(), true);          int result_count = 0; -        for (int i = 1; i < folder_count; ++i) { +        for (int i = 1; i < item_model->rowCount() - 1; ++i) {              folder = item_model->item(i, 0);              const QModelIndex folder_index = folder->index();              const int children_count = folder->rowCount(); @@ -328,18 +326,14 @@ GameList::GameList(FileSys::VirtualFilesystem vfs, FileSys::ManualContentProvide      tree_view->setContextMenuPolicy(Qt::CustomContextMenu);      tree_view->setStyleSheet(QStringLiteral("QTreeView{ border: none; }")); -    item_model->insertColumns(0, UISettings::values.show_add_ons ? COLUMN_COUNT : COLUMN_COUNT - 1); +    item_model->insertColumns(0, COLUMN_COUNT);      item_model->setHeaderData(COLUMN_NAME, Qt::Horizontal, tr("Name"));      item_model->setHeaderData(COLUMN_COMPATIBILITY, Qt::Horizontal, tr("Compatibility")); -    if (UISettings::values.show_add_ons) { -        item_model->setHeaderData(COLUMN_ADD_ONS, Qt::Horizontal, tr("Add-ons")); -        item_model->setHeaderData(COLUMN_FILE_TYPE, Qt::Horizontal, tr("File type")); -        item_model->setHeaderData(COLUMN_SIZE, Qt::Horizontal, tr("Size")); -    } else { -        item_model->setHeaderData(COLUMN_FILE_TYPE - 1, Qt::Horizontal, tr("File type")); -        item_model->setHeaderData(COLUMN_SIZE - 1, Qt::Horizontal, tr("Size")); -    } +    item_model->setHeaderData(COLUMN_ADD_ONS, Qt::Horizontal, tr("Add-ons")); +    tree_view->setColumnHidden(COLUMN_ADD_ONS, !UISettings::values.show_add_ons); +    item_model->setHeaderData(COLUMN_FILE_TYPE, Qt::Horizontal, tr("File type")); +    item_model->setHeaderData(COLUMN_SIZE, Qt::Horizontal, tr("Size"));      item_model->setSortRole(GameListItemPath::SortRole);      connect(main_window, &GMainWindow::UpdateThemedIcons, this, &GameList::OnUpdateThemedIcons); @@ -466,9 +460,8 @@ void GameList::DonePopulating(const QStringList& watch_list) {          QCoreApplication::processEvents();      }      tree_view->setEnabled(true); -    const int folder_count = tree_view->model()->rowCount();      int children_total = 0; -    for (int i = 1; i < folder_count; ++i) { +    for (int i = 1; i < item_model->rowCount() - 1; ++i) {          children_total += item_model->item(i, 0)->rowCount();      }      search_field->setFilterResult(children_total, children_total); @@ -561,11 +554,11 @@ void GameList::AddGamePopup(QMenu& context_menu, u64 program_id, const std::stri      connect(remove_dlc, &QAction::triggered, [this, program_id]() {          emit RemoveInstalledEntryRequested(program_id, InstalledEntryType::AddOnContent);      }); -    connect(remove_shader_cache, &QAction::triggered, [this, program_id]() { -        emit RemoveFileRequested(program_id, GameListRemoveTarget::ShaderCache); +    connect(remove_shader_cache, &QAction::triggered, [this, program_id, path]() { +        emit RemoveFileRequested(program_id, GameListRemoveTarget::ShaderCache, path);      }); -    connect(remove_custom_config, &QAction::triggered, [this, program_id]() { -        emit RemoveFileRequested(program_id, GameListRemoveTarget::CustomConfiguration); +    connect(remove_custom_config, &QAction::triggered, [this, program_id, path]() { +        emit RemoveFileRequested(program_id, GameListRemoveTarget::CustomConfiguration, path);      });      connect(dump_romfs, &QAction::triggered,              [this, program_id, path]() { emit DumpRomFSRequested(program_id, path); }); @@ -649,9 +642,9 @@ void GameList::AddPermDirPopup(QMenu& context_menu, QModelIndex selected) {  }  void GameList::AddFavoritesPopup(QMenu& context_menu) { -    QAction* clear_all = context_menu.addAction(tr("Clear")); +    QAction* clear = context_menu.addAction(tr("Clear")); -    connect(clear_all, &QAction::triggered, [this] { +    connect(clear, &QAction::triggered, [this] {          for (const auto id : UISettings::values.favorited_ids) {              RemoveFavorite(id);          } @@ -708,22 +701,7 @@ void GameList::PopulateAsync(QVector<UISettings::GameDir>& game_dirs) {      tree_view->setEnabled(false);      // Update the columns in case UISettings has changed -    item_model->removeColumns(0, item_model->columnCount()); -    item_model->insertColumns(0, UISettings::values.show_add_ons ? COLUMN_COUNT : COLUMN_COUNT - 1); -    item_model->setHeaderData(COLUMN_NAME, Qt::Horizontal, tr("Name")); -    item_model->setHeaderData(COLUMN_COMPATIBILITY, Qt::Horizontal, tr("Compatibility")); - -    if (UISettings::values.show_add_ons) { -        item_model->setHeaderData(COLUMN_ADD_ONS, Qt::Horizontal, tr("Add-ons")); -        item_model->setHeaderData(COLUMN_FILE_TYPE, Qt::Horizontal, tr("File type")); -        item_model->setHeaderData(COLUMN_SIZE, Qt::Horizontal, tr("Size")); -    } else { -        item_model->setHeaderData(COLUMN_FILE_TYPE - 1, Qt::Horizontal, tr("File type")); -        item_model->setHeaderData(COLUMN_SIZE - 1, Qt::Horizontal, tr("Size")); -        item_model->removeColumns(COLUMN_COUNT - 1, 1); -    } - -    LoadInterfaceLayout(); +    tree_view->setColumnHidden(COLUMN_ADD_ONS, !UISettings::values.show_add_ons);      // Delete any rows that might already exist if we're repopulating      item_model->removeRows(0, item_model->rowCount()); @@ -800,7 +778,7 @@ void GameList::AddFavorite(u64 program_id) {              if (folder->child(j)->data(GameListItemPath::ProgramIdRole).toULongLong() ==                  program_id) {                  QList<QStandardItem*> list; -                for (int k = 0; k < item_model->columnCount(); k++) { +                for (int k = 0; k < COLUMN_COUNT; k++) {                      list.append(folder->child(j, k)->clone());                  }                  list[0]->setData(folder->child(j)->data(GameListItem::SortRole), diff --git a/src/yuzu/game_list.h b/src/yuzu/game_list.h index 9c0a1a482..ab6866735 100644 --- a/src/yuzu/game_list.h +++ b/src/yuzu/game_list.h @@ -88,7 +88,8 @@ signals:                               const std::string& game_path);      void OpenTransferableShaderCacheRequested(u64 program_id);      void RemoveInstalledEntryRequested(u64 program_id, InstalledEntryType type); -    void RemoveFileRequested(u64 program_id, GameListRemoveTarget target); +    void RemoveFileRequested(u64 program_id, GameListRemoveTarget target, +                             const std::string& game_path);      void DumpRomFSRequested(u64 program_id, const std::string& game_path);      void CopyTIDRequested(u64 program_id);      void NavigateToGamedbEntryRequested(u64 program_id, diff --git a/src/yuzu/game_list_worker.cpp b/src/yuzu/game_list_worker.cpp index 485045334..33cc90d5a 100644 --- a/src/yuzu/game_list_worker.cpp +++ b/src/yuzu/game_list_worker.cpp @@ -215,13 +215,11 @@ QList<QStandardItem*> MakeGameListEntry(const std::string& path, const std::stri          new GameListItemSize(Common::FS::GetSize(path)),      }; -    if (UISettings::values.show_add_ons) { -        const auto patch_versions = GetGameListCachedObject( -            fmt::format("{:016X}", patch.GetTitleID()), "pv.txt", [&patch, &loader] { -                return FormatPatchNameVersions(patch, loader, loader.IsRomFSUpdatable()); -            }); -        list.insert(2, new GameListItem(patch_versions)); -    } +    const auto patch_versions = GetGameListCachedObject( +        fmt::format("{:016X}", patch.GetTitleID()), "pv.txt", [&patch, &loader] { +            return FormatPatchNameVersions(patch, loader, loader.IsRomFSUpdatable()); +        }); +    list.insert(2, new GameListItem(patch_versions));      return list;  } diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 0f0e228b0..237e26829 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -1334,7 +1334,11 @@ void GMainWindow::BootGame(const QString& filename, std::size_t program_index) {      if (!(loader == nullptr || loader->ReadProgramId(title_id) != Loader::ResultStatus::Success)) {          // Load per game settings -        Config per_game_config(fmt::format("{:016X}", title_id), Config::ConfigType::PerGameConfig); +        const auto file_path = std::filesystem::path{filename.toStdU16String()}; +        const auto config_file_name = title_id == 0 +                                          ? Common::FS::PathToUTF8String(file_path.filename()) +                                          : fmt::format("{:016X}", title_id); +        Config per_game_config(config_file_name, Config::ConfigType::PerGameConfig);      }      ConfigureVibration::SetAllVibrationDevices(); @@ -1795,7 +1799,8 @@ void GMainWindow::RemoveAddOnContent(u64 program_id, const QString& entry_type)                               tr("Successfully removed %1 installed DLC.").arg(count));  } -void GMainWindow::OnGameListRemoveFile(u64 program_id, GameListRemoveTarget target) { +void GMainWindow::OnGameListRemoveFile(u64 program_id, GameListRemoveTarget target, +                                       const std::string& game_path) {      const QString question = [this, target] {          switch (target) {          case GameListRemoveTarget::ShaderCache: @@ -1817,7 +1822,7 @@ void GMainWindow::OnGameListRemoveFile(u64 program_id, GameListRemoveTarget targ          RemoveTransferableShaderCache(program_id);          break;      case GameListRemoveTarget::CustomConfiguration: -        RemoveCustomConfiguration(program_id); +        RemoveCustomConfiguration(program_id, game_path);          break;      }  } @@ -1842,9 +1847,13 @@ void GMainWindow::RemoveTransferableShaderCache(u64 program_id) {      }  } -void GMainWindow::RemoveCustomConfiguration(u64 program_id) { -    const auto custom_config_file_path = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / -                                         "custom" / fmt::format("{:016X}.ini", program_id); +void GMainWindow::RemoveCustomConfiguration(u64 program_id, const std::string& game_path) { +    const auto file_path = std::filesystem::path(Common::FS::ToU8String(game_path)); +    const auto config_file_name = +        program_id == 0 ? Common::FS::PathToUTF8String(file_path.filename()).append(".ini") +                        : fmt::format("{:016X}.ini", program_id); +    const auto custom_config_file_path = +        Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "custom" / config_file_name;      if (!Common::FS::Exists(custom_config_file_path)) {          QMessageBox::warning(this, tr("Error Removing Custom Configuration"), @@ -2635,7 +2644,7 @@ void GMainWindow::OpenPerGameConfiguration(u64 title_id, const std::string& file      const auto v_file = Core::GetGameFileFromPath(vfs, file_name);      const auto& system = Core::System::GetInstance(); -    ConfigurePerGame dialog(this, title_id); +    ConfigurePerGame dialog(this, title_id, file_name);      dialog.LoadFromFile(v_file);      const auto result = dialog.exec(); diff --git a/src/yuzu/main.h b/src/yuzu/main.h index b3a5033ce..490b6889f 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -236,7 +236,8 @@ private slots:                                const std::string& game_path);      void OnTransferableShaderCacheOpenFile(u64 program_id);      void OnGameListRemoveInstalledEntry(u64 program_id, InstalledEntryType type); -    void OnGameListRemoveFile(u64 program_id, GameListRemoveTarget target); +    void OnGameListRemoveFile(u64 program_id, GameListRemoveTarget target, +                              const std::string& game_path);      void OnGameListDumpRomFS(u64 program_id, const std::string& game_path);      void OnGameListCopyTID(u64 program_id);      void OnGameListNavigateToGamedbEntry(u64 program_id, @@ -275,7 +276,7 @@ private:      void RemoveUpdateContent(u64 program_id, const QString& entry_type);      void RemoveAddOnContent(u64 program_id, const QString& entry_type);      void RemoveTransferableShaderCache(u64 program_id); -    void RemoveCustomConfiguration(u64 program_id); +    void RemoveCustomConfiguration(u64 program_id, const std::string& game_path);      std::optional<u64> SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id);      InstallResult InstallNSPXCI(const QString& filename);      InstallResult InstallNCA(const QString& filename);  | 
