The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Direct memory access control Manager
Module
Version |
World |
Privilege
|
1.69-3.60 |
Non-secure |
Kernel
|
Libraries
Known NIDs
Data segment layout
Address |
Size |
Description
|
0x0000 |
0x04 |
void* SceDmacmgrDmac0Reg membase
|
0x0004 |
0x04 |
void* SceDmacmgrDmac1Reg membase
|
0x0008 |
0x04 |
void* SceDmacmgrDmac2Reg membase
|
0x000C |
0x04 |
void* SceDmacmgrDmac3Reg membase
|
0x0010 |
0x04 |
void* SceDmacmgrDmac4Reg membase
|
0x0014 |
0x04 |
void* SceDmacmgrDmac5Reg membase
|
0x0018 |
0x04 |
void* SceDmacmgrDmac6Reg membase
|
0x001C |
0x1284 |
|
Types
typedef SceInt32 SceDmaOpId;
// Using internally
typedef struct SceDmaOpAlloc { // size is 0x60 on FW 0.990
uint unk_0;
uint unk_4;
uint magic; // 0x81005001
SceUID evfId;
uint unk_10;
uint16_t unk_14; // 1
uint16_t unk_16;
uint maybe_callback_1;
uint stat;
char unk_20[0x14];
int curchain;
uint unk_38; // 0
uint unk_3C;
const char opname[0x20];
} SceDmaOpAlloc;
typedef struct SceKernelDmaOp { // Size is 0x40-bytes on 3.60
int data_0x00;
int data_0x04;
int data_0x08;
int data_0x0C;
void *data_0x10;
int data_0x14;
int data_0x18;
int data_0x1C;
int data_0x20;
int data_0x24;
void *data_0x28;
int cpu_intr;
uintptr_t data_0x30;
SceUID evfid;
SceUInt16 data_0x38;
SceUInt16 data_0x3A;
char *name;
} SceKernelDmaOp;
SceDmacmgrForDriver
sceKernelDmaOpSetupChainForDriver
Version |
NID
|
0.990-3.60 |
0x167079FC
|
int sceKernelDmaOpSetupChainForDriver(uint32_t opid, void *pTag, int *a3, uint32_t flag);
sceKernelDmaOpQuitForDriver
Version |
NID
|
0.990-3.60 |
0x03052D0D
|
int sceKernelDmaOpQuitForDriver(int opid);
sceKernelDmaOpAllocForDriver
Version |
NID
|
0.990-3.60 |
0x7CD5088A
|
Usages:
Module |
Name
|
SceSblSsMgr |
SceSblDmac5Common, Dmac5Test_Direct
|
SceDisplay |
SceDisplay
|
SceAudio |
SceSrcMix%d%d
|
SceCodecEngineWrapper |
SceVeneziaDmacMemcpy%02u, SceHwd0DmacMemcpy%02u
|
Allocate 0x60 bytes of heap.
Return opid = (uint)dma_op_heap_addr >> 1 | 1;
SceDmaOpId sceKernelDmaOpAllocForDriver(const char *name);
sceKernelDmaOpAssignForDriver
Version |
NID
|
0.990-3.60 |
0xFCE4171A
|
Executes DMAC5 command.
int sceKernelDmaOpAssignForDriver(SceDmaOpId opid, SceUInt32 unk1, SceUInt32 unk2);
sceKernelDmaOpFreeForDriver
Version |
NID
|
0.990-3.60 |
0xADFF1186
|
int sceKernelDmaOpFreeForDriver(int opid);
sceKernelDmaOpConcatenateForDriver
Version |
NID
|
0.990-3.60 |
0xA4454DEA
|
sceKernelDmaOpEnQueueForDriver
Version |
NID
|
0.990-3.60 |
0x543F54CF
|
int sceKernelDmaOpEnQueueForDriver(int opid);
sceKernelDmaOpDeQueueForDriver
Version |
NID
|
0.990-3.60 |
0x7433F70F
|
sceKernelDmaOpSetCallbackForDriver
Version |
NID
|
0.990-3.60 |
0xCF627CFD
|
int sceKernelDmaOpSetCallbackForDriver(int opid, int a2, int a3);
sceKernelDmaOpSyncForDriver
Version |
NID
|
0.990-3.60 |
0x397A917C
|
int sceKernelDmaOpSyncForDriver(int opid, SceUInt32 op_sync_mode, SceUInt32 timeout, SceInt32 *result);
sceKernelDmacMemcpyForDriver
Version |
NID
|
0.990-3.60 |
0x00896B11
|
Synchronous memcpy
, wrapper around SceKernelDmacMgr#sceKernelDmacMemcpyAsyncForDriver.
SceInt32 sceKernelDmacMemcpyForDriver(void *dst, const void *src, SceSize size);
sceKernelDmacMemsetForDriver
Version |
NID
|
0.990-3.60 |
0x4BAC049B
|
sceKernelDmaOpSetupDirectForDriver
Version |
NID
|
0.990-3.60 |
0x01A599E0
|
typedef struct SceDmaOpKey {
char data[0x4C];
} SceDmaOpKey;
int sceKernelDmaOpSetupDirectForDriver(int opid, SceDmaOpKey *a2, int a3);
sceKernelDmacMemcpyAsyncForDriver
Version |
NID
|
0.990 |
0x6E81B8BF
|
3.60 |
not present
|
sceKernelDmacMemsetAsyncForDriver
Version |
NID
|
0.990 |
0x6FD7F708
|
3.60 |
not present
|
SceDmacmgrForDriver_BCBB5E85
Version |
NID
|
0.990-3.60 |
0xBCBB5E85
|
A big function. TO RE.
SceDmacmgrForDriver_1EDD385C
Version |
NID
|
0.940 |
0x1EDD385C
|
Returns SCE_KERNEL_ERROR_NOT_IMPLEMENTED.
SceDmacmgrForDriver_DCBA0B59
Version |
NID
|
0.940 |
0xDCBA0B59
|
Returns SCE_KERNEL_ERROR_NOT_IMPLEMENTED.
SceDmacmgrForDriver_893FCB80
Version |
NID
|
0.990-3.60 |
0x893FCB80
|
On FW 0.990 simply returns SCE_KERNEL_ERROR_NOT_IMPLEMENTED.
SceDmacmgr
This library doesn't exist on FW 0.990.
sceDmacMemcpy
Version |
NID
|
3.60 |
0x9B2FF739
|
sceDmacMemset
Version |
NID
|
3.60 |
0xA4C33F11
|