mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-22 13:02:38 +02:00
- nvAddressSpaceMapBuffer now accepts a flags parameter instead of hardcoding NvMapBufferFlags_IsCacheable. - NvBufferFlags was incorrect and was thus removed. - nvBufferCreate/nvBufferCreateRw replaced with nvBufferCreate, with an extra 'is_cacheable' bool parameter. There's no such thing as a "read-only/read-write" buffer. - nvBufferMakeCpuUncached/nvBufferMakeCpuCached were removed.
26 lines
847 B
C
26 lines
847 B
C
#pragma once
|
|
#include "types.h"
|
|
|
|
typedef struct NvAddressSpace {
|
|
u32 fd;
|
|
bool has_init;
|
|
} NvAddressSpace;
|
|
|
|
typedef enum {
|
|
NvPageSize_4K = 0x1000,
|
|
NvPageSize_64K = 0x10000
|
|
} NvPageSize;
|
|
|
|
Result nvAddressSpaceCreate(NvAddressSpace* a);
|
|
void nvAddressSpaceClose(NvAddressSpace* a);
|
|
|
|
Result nvAddressSpaceReserveAlign(NvAddressSpace* a, NvPageSize align, u32 pages, NvPageSize page_sz, iova_t* iova_out);
|
|
Result nvAddressSpaceReserveAtFixedAddr(NvAddressSpace* a, iova_t addr, u32 pages, NvPageSize page_sz);
|
|
Result nvAddressSpaceReserveFull(NvAddressSpace* a);
|
|
|
|
Result nvAddressSpaceMapBuffer(NvAddressSpace* a, u32 fd, u32 flags, NvKind kind, iova_t* iova_out);
|
|
Result nvAddressSpaceUnmapBuffer(NvAddressSpace* a, iova_t iova);
|
|
|
|
struct NvChannel;
|
|
Result nvAddressSpaceBindToChannel(NvAddressSpace* a, struct NvChannel* channel);
|