libnx/nx/source/nvidia/gpu/gpu.c
2018-08-31 13:05:21 +02:00

34 lines
608 B
C

#include <switch.h>
typedef struct {
NvAddressSpace addr_space;
NvChannel gpu_channel;
} NvGpu;
Result nvgpuCreate(NvGpu* g)
{
Result rc;
rc = nvchannelCreate(&g->gpu_channel, "/dev/nvhost-gpu");
if (R_SUCCEEDED(rc))
rc = nvasCreate(&g->addr_space);
if (R_SUCCEEDED(rc))
rc = nvasReserveFull(&g->addr_space);
if (R_SUCCEEDED(rc))
rc = nvasBindToChannel(&g->addr_space, &g->gpu_channel);
if (R_FAILED(rc))
nvgpuClose(g);
return rc;
}
void nvgpuClose(NvGpu* g)
{
nvasClose(&g->addr_space);
nvchannelClose(&g->gpu_channel);
}