mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
- NvBuffer replaced with NvMap, which only manages the creation of raw nvmap objects. Users must map these objects manually to address spaces. - nvAddressSpaceBindToChannel removed. - nvChannelSetNvmapFd is now automatic and has been removed. - Nv3DContext, NvCmdList, NvErrorNotifier, NvGpfifo, NvGpu and NvZcullContext have all been removed. - Introduced NvGpuChannel, which provides all functionality that was part of said removed objects. - Other miscellaneous changes and fixes.
22 lines
902 B
C
22 lines
902 B
C
#pragma once
|
|
#include "types.h"
|
|
#include "ioctl.h"
|
|
|
|
typedef struct NvAddressSpace {
|
|
u32 fd;
|
|
u32 page_size;
|
|
bool has_init;
|
|
} NvAddressSpace;
|
|
|
|
Result nvAddressSpaceCreate(NvAddressSpace* a, u32 page_size);
|
|
void nvAddressSpaceClose(NvAddressSpace* a);
|
|
|
|
Result nvAddressSpaceAlloc(NvAddressSpace* a, bool sparse, u64 size, iova_t* iova_out);
|
|
Result nvAddressSpaceAllocFixed(NvAddressSpace* a, bool sparse, u64 size, iova_t iova);
|
|
Result nvAddressSpaceFree(NvAddressSpace* a, iova_t iova, u64 size);
|
|
|
|
Result nvAddressSpaceMap(NvAddressSpace* a, u32 nvmap_handle, bool is_gpu_cacheable, NvKind kind, iova_t* iova_out);
|
|
Result nvAddressSpaceMapFixed(NvAddressSpace* a, u32 nvmap_handle, bool is_gpu_cacheable, NvKind kind, iova_t iova);
|
|
Result nvAddressSpaceModify(NvAddressSpace* a, iova_t iova, u64 offset, u64 size, NvKind kind);
|
|
Result nvAddressSpaceUnmap(NvAddressSpace* a, iova_t iova);
|