From 687a17acae0944c0c585c58c69aca0391085f3ef Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 21 Jan 2018 16:56:58 -0500 Subject: [PATCH 1/2] nvmap: Make IoctlCommands an enum class Prevents the enum values from polluting the surrounding scope --- src/core/hle/service/nvdrv/devices/nvmap.cpp | 12 ++++++------ src/core/hle/service/nvdrv/devices/nvmap.h | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/core/hle/service/nvdrv/devices/nvmap.cpp b/src/core/hle/service/nvdrv/devices/nvmap.cpp index d37b5b159..ca65d9d35 100644 --- a/src/core/hle/service/nvdrv/devices/nvmap.cpp +++ b/src/core/hle/service/nvdrv/devices/nvmap.cpp @@ -22,16 +22,16 @@ VAddr nvmap::GetObjectAddress(u32 handle) const { } u32 nvmap::ioctl(u32 command, const std::vector& input, std::vector& output) { - switch (command) { - case IocCreateCommand: + switch (static_cast(command)) { + case IoctlCommand::Create: return IocCreate(input, output); - case IocAllocCommand: + case IoctlCommand::Alloc: return IocAlloc(input, output); - case IocGetIdCommand: + case IoctlCommand::GetId: return IocGetId(input, output); - case IocFromIdCommand: + case IoctlCommand::FromId: return IocFromId(input, output); - case IocParamCommand: + case IoctlCommand::Param: return IocParam(input, output); } diff --git a/src/core/hle/service/nvdrv/devices/nvmap.h b/src/core/hle/service/nvdrv/devices/nvmap.h index 6954c0324..42e00f370 100644 --- a/src/core/hle/service/nvdrv/devices/nvmap.h +++ b/src/core/hle/service/nvdrv/devices/nvmap.h @@ -48,12 +48,12 @@ private: /// Mapping of currently allocated handles to the objects they represent. std::unordered_map> handles; - enum IoctlCommands { - IocCreateCommand = 0xC0080101, - IocFromIdCommand = 0xC0080103, - IocAllocCommand = 0xC0200104, - IocParamCommand = 0xC00C0109, - IocGetIdCommand = 0xC008010E + enum class IoctlCommand : u32 { + Create = 0xC0080101, + FromId = 0xC0080103, + Alloc = 0xC0200104, + Param = 0xC00C0109, + GetId = 0xC008010E }; struct IocCreateParams { From 06d2e1bd23608cb5e64854c76b6e18911d9e0913 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sun, 21 Jan 2018 17:07:44 -0500 Subject: [PATCH 2/2] nvmap: Add a return 0 underneath the UNIMPLEMENTED macro This macro resolves to an empty macro in release builds. --- src/core/hle/service/nvdrv/devices/nvmap.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/hle/service/nvdrv/devices/nvmap.cpp b/src/core/hle/service/nvdrv/devices/nvmap.cpp index ca65d9d35..74ee7e154 100644 --- a/src/core/hle/service/nvdrv/devices/nvmap.cpp +++ b/src/core/hle/service/nvdrv/devices/nvmap.cpp @@ -36,6 +36,7 @@ u32 nvmap::ioctl(u32 command, const std::vector& input, std::vector& out } UNIMPLEMENTED(); + return 0; } u32 nvmap::IocCreate(const std::vector& input, std::vector& output) {