mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-04 02:22:15 +02:00
Sketching on cmd generation
This commit is contained in:
parent
cccc865128
commit
66e3810ef8
@ -14,3 +14,20 @@ iova_t nvCmdListGetGpuAddr(NvCmdList* c);
|
||||
u64 nvCmdListGetListSize(NvCmdList* c);
|
||||
|
||||
u32* nvCmdListInsert(NvCmdList* c, size_t num_cmds);
|
||||
|
||||
#define NvCmd(cmd_list, ...) do { \
|
||||
u32 _[] = { __VA_ARGS__ }; \
|
||||
memcpy(nvCmdListInsert(cmd_list, sizeof(_)/4), _, sizeof(_)); \
|
||||
} while (0)
|
||||
|
||||
#define NvImm(reg, subc, val) \
|
||||
(0x80000000 | (reg) | ((subc) << 13) | ((val) << 16))
|
||||
|
||||
#define NvRep(reg, subc, ...) \
|
||||
(0x60000000 | ((reg) | ((subc) << 13) | ((sizeof((u32[]) { __VA_ARGS__ })) << 16))), __VA_ARGS__
|
||||
|
||||
#define NvIncr(reg, subc, ...) \
|
||||
(0x20000000 | ((reg) | ((subc) << 13) | ((sizeof((u32[]) { __VA_ARGS__ })) << 16))), __VA_ARGS__
|
||||
|
||||
#define NvIncrOnce(reg, subc, ...) \
|
||||
(0xA0000000 | ((reg) | ((subc) << 13) | ((sizeof((u32[]) { __VA_ARGS__ })) << 16))), __VA_ARGS__
|
||||
|
Loading…
Reference in New Issue
Block a user