From 99f37184fb5e90d756e13b2a298fe9989b67417d Mon Sep 17 00:00:00 2001 From: fincs Date: Thu, 30 Aug 2018 00:48:17 +0200 Subject: [PATCH] nvQueryEvent: return an Event instead of a raw Handle --- nx/include/switch/services/nv.h | 3 ++- nx/source/nvidia/gpu/error_notifier.c | 8 ++------ nx/source/services/nv.c | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/nx/include/switch/services/nv.h b/nx/include/switch/services/nv.h index 73aa9fc9..35684439 100644 --- a/nx/include/switch/services/nv.h +++ b/nx/include/switch/services/nv.h @@ -6,6 +6,7 @@ */ #pragma once #include "../types.h" +#include "../kernel/event.h" Result nvInitialize(void); void nvExit(void); @@ -25,6 +26,6 @@ typedef enum { Result nvOpen(u32 *fd, const char *devicepath); Result nvIoctl(u32 fd, u32 request, void* argp); Result nvClose(u32 fd); -Result nvQueryEvent(u32 fd, u32 event_id, Handle *handle_out); +Result nvQueryEvent(u32 fd, u32 event_id, Event *event_out); Result nvConvertError(int rc); diff --git a/nx/source/nvidia/gpu/error_notifier.c b/nx/source/nvidia/gpu/error_notifier.c index 3ca4eda1..ad236eb8 100644 --- a/nx/source/nvidia/gpu/error_notifier.c +++ b/nx/source/nvidia/gpu/error_notifier.c @@ -20,15 +20,11 @@ Result nvErrorNotifierCreate(NvErrorNotifier* t, NvGpu* parent) { Result rc; - Handle handle; - rc = nvQueryEvent( - parent->gpu_channel.fd, NvEventId_Gpu_ErrorNotifier, &handle); + rc = nvQueryEvent(parent->gpu_channel.fd, NvEventId_Gpu_ErrorNotifier, &t->event); - if (R_SUCCEEDED(rc)) { - eventLoadRemote(&t->event, handle, true); + if (R_SUCCEEDED(rc)) rc = nvioctlChannel_SetErrorNotifier(parent->gpu_channel.fd, 1); - } if (R_SUCCEEDED(rc)) { t->parent = parent; diff --git a/nx/source/services/nv.c b/nx/source/services/nv.c index fefcfab1..2daaade7 100644 --- a/nx/source/services/nv.c +++ b/nx/source/services/nv.c @@ -288,7 +288,7 @@ Result nvClose(u32 fd) { return rc; } -Result nvQueryEvent(u32 fd, u32 event_id, Handle *handle_out) { +Result nvQueryEvent(u32 fd, u32 event_id, Event *event_out) { IpcCommand c; ipcInitialize(&c); @@ -323,7 +323,7 @@ Result nvQueryEvent(u32 fd, u32 event_id, Handle *handle_out) { rc = nvConvertError(resp->error); if (R_SUCCEEDED(rc)) - *handle_out = r.Handles[0]; + eventLoadRemote(event_out, r.Handles[0], true); } return rc;