libnx/nx/include/switch/nvidia/map.h

51 lines
868 B
C

#pragma once
#include "types.h"
typedef struct NvMap {
u32 handle;
u32 id;
u32 size;
void* cpu_addr;
NvKind kind;
bool has_init;
bool is_cpu_cacheable;
} NvMap;
Result nvMapInit(void);
u32 nvMapGetFd(void);
void nvMapExit(void);
Result nvMapCreate(NvMap* m, void* cpu_addr, u32 size, u32 align, NvKind kind, bool is_cpu_cacheable);
Result nvMapLoadRemote(NvMap* m, u32 id);
void nvMapClose(NvMap* m);
static inline u32 nvMapGetHandle(NvMap* m)
{
return m->handle;
}
static inline u32 nvMapGetId(NvMap* m)
{
return m->id;
}
static inline u32 nvMapGetSize(NvMap* m)
{
return m->size;
}
static inline void* nvMapGetCpuAddr(NvMap* m)
{
return m->cpu_addr;
}
static inline bool nvMapIsRemote(NvMap* m)
{
return !m->cpu_addr;
}
static inline NvKind nvMapGetKind(NvMap* m)
{
return m->kind;
}