aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/nvdrv/nvdrv_a.cpp
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2018-01-15 18:30:49 -0500
committerbunnei <bunneidev@gmail.com>2018-01-16 19:04:09 -0500
commitcb75b56e454a36190f07ee34b0e4e6ee6a7a66be (patch)
treef5af26691caa3aef505c2a66b07831f24c83b8e4 /src/core/hle/service/nvdrv/nvdrv_a.cpp
parent30657f9ca1485dcf9611d3c4ea3c74d52b350dec (diff)
NV: Implemented the nvdrv service, which uses the same interface as nvdrv:a
Diffstat (limited to 'src/core/hle/service/nvdrv/nvdrv_a.cpp')
-rw-r--r--src/core/hle/service/nvdrv/nvdrv_a.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/core/hle/service/nvdrv/nvdrv_a.cpp b/src/core/hle/service/nvdrv/nvdrv_a.cpp
deleted file mode 100644
index 5d3e68792..000000000
--- a/src/core/hle/service/nvdrv/nvdrv_a.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2018 yuzu emulator team
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#include "common/logging/log.h"
-#include "core/hle/ipc_helpers.h"
-#include "core/hle/service/nvdrv/nvdrv.h"
-#include "core/hle/service/nvdrv/nvdrv_a.h"
-
-namespace Service {
-namespace Nvidia {
-
-void NVDRV_A::Open(Kernel::HLERequestContext& ctx) {
- LOG_WARNING(Service, "(STUBBED) called");
-
- auto buffer = ctx.BufferDescriptorA()[0];
-
- std::string device_name = Memory::ReadCString(buffer.Address(), buffer.Size());
-
- u32 fd = nvdrv->Open(device_name);
- IPC::RequestBuilder rb{ctx, 4};
- rb.Push(RESULT_SUCCESS);
- rb.Push<u32>(fd);
- rb.Push<u32>(0);
-}
-
-void NVDRV_A::Ioctl(Kernel::HLERequestContext& ctx) {
- LOG_WARNING(Service, "(STUBBED) called");
-
- IPC::RequestParser rp{ctx};
- u32 fd = rp.Pop<u32>();
- u32 command = rp.Pop<u32>();
-
- auto input_buffer = ctx.BufferDescriptorA()[0];
- auto output_buffer = ctx.BufferDescriptorB()[0];
-
- std::vector<u8> input(input_buffer.Size());
- std::vector<u8> output(output_buffer.Size());
-
- Memory::ReadBlock(input_buffer.Address(), input.data(), input_buffer.Size());
-
- u32 nv_result = nvdrv->Ioctl(fd, command, input, output);
-
- Memory::WriteBlock(output_buffer.Address(), output.data(), output_buffer.Size());
-
- IPC::RequestBuilder rb{ctx, 3};
- rb.Push(RESULT_SUCCESS);
- rb.Push(nv_result);
-}
-
-void NVDRV_A::Initialize(Kernel::HLERequestContext& ctx) {
- LOG_WARNING(Service, "(STUBBED) called");
- IPC::RequestBuilder rb{ctx, 3};
- rb.Push(RESULT_SUCCESS);
- rb.Push<u32>(0);
-}
-
-NVDRV_A::NVDRV_A(std::shared_ptr<Module> nvdrv)
- : ServiceFramework("nvdrv:a"), nvdrv(std::move(nvdrv)) {
- static const FunctionInfo functions[] = {
- {0, &NVDRV_A::Open, "Open"},
- {1, &NVDRV_A::Ioctl, "Ioctl"},
- {3, &NVDRV_A::Initialize, "Initialize"},
- };
- RegisterHandlers(functions);
-}
-
-} // namespace Nvidia
-} // namespace Service