SceDeci4pSDfMgr: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
(→‎SceDeci4pSDfMgrForKernel: Add sceSDfMgrBreakSystem)
(Add sceSDfMgrExOpen and sceSDfMgrOpen)
Line 28: Line 28:


typedef int (* SceSDfMgrExceptionCallback)(SceExcpmgrExceptionContext *context, SceUInt32 pc, SceUInt32 cpsr);
typedef int (* SceSDfMgrExceptionCallback)(SceExcpmgrExceptionContext *context, SceUInt32 pc, SceUInt32 cpsr);
typedef SceInt32 SceSDfMgrSocketId;
#define SCE_SDFMGR_EVENT_TYPE_1  (1) //recieved something
#define SCE_SDFMGR_EVENT_TYPE_2  (2)
#define SCE_SDFMGR_EVENT_TYPE_3  (3) //something to send
#define SCE_SDFMGR_EVENT_TYPE_4  (4)
#define SCE_SDFMGR_EVENT_TYPE_5  (5)
#define SCE_SDFMGR_EVENT_TYPE_6  (6)
typedef void (* SceSDfMgrEventHandler)(SceUInt32 event, void* eventData, void* pCommon); //<! pCommon is the data passed to Open/ExOpen
typedef struct _SceSDfMgrOpenParam {
    SceSize size;        //<! Size of this structure (0x1C)
    SceUInt32 clientId;  //<! Unique number, used to identify called - must not be 0
    SceUInt32 unk8;
    SceUInt32 unkC;
    SceUInt32 unk10;
    SceUInt16 unk14;
    SceUInt16 flags;      //<! Bitflag: 0x1 makes the initial "status" 0x3 instead of 0x1, 0x2 makes a call to dcmpSendStatusProtocolAlias, ...
    char* name;          //<! Name of the "caller" - example: DCMP
} SceSDfMgrOpenParam;
</source>
</source>


== SceDeci4pSDfMgrForKernel ==
== SceDeci4pSDfMgrForKernel ==
=== SceDeci4pSDfMgrForKernel_A55F5F0D ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990 || 0xA55F5F0D
|}
Potential name is <code>sceSDfMgrOpen</code>. Acquires an interrupt-suspending lock and calls [[SceDeci4pSDfMgr#sceSDfMgrExOpen|sceSDfMgrExOpen]].
<source lang="C">SceSDfMgrSocketId SceDeci4pSDfMgrForKernel_A55F5F0D(SceSDfMgrEventHandler eventHandler, const SceSDfMgrOpenParam* openParam, void* pCommon);</source>
=== sceSDfMgrExOpen ===
{| class="wikitable"
|-
! Version !! NID
|-
| 0.990 || 0xCF4A3E03
|}
Open a SDfMgr socket. <code>openParam</code> is not retained and can be disposed of after this call.
<source lang="C">SceSDfMgrSocketId sceSDfMgrExOpen(SceSDfMgrEventHandler eventHandler, const SceSDfMgrOpenParam* openParam, void* pCommon);</source>


=== sceSDfMgrBreakSystem ===
=== sceSDfMgrBreakSystem ===
Line 52: Line 94:
Writes <code>val</code> as a 3-byte unsigned integer to <code>ptr</code>.
Writes <code>val</code> as a 3-byte unsigned integer to <code>ptr</code>.
<source lang="C">void SceDeci4pSDfMgrForKernel_FFC95B63(void* ptr, SceUInt32 val);</source>
<source lang="C">void SceDeci4pSDfMgrForKernel_FFC95B63(void* ptr, SceUInt32 val);</source>


=== SceDeci4pSDfMgrForKernel_68903C1D ===
=== SceDeci4pSDfMgrForKernel_68903C1D ===
Line 140: Line 180:
           SceDeci4pSDfMgrForKernel_98AEC60E: 0x98AEC60E
           SceDeci4pSDfMgrForKernel_98AEC60E: 0x98AEC60E
           SceDeci4pSDfMgrForKernel_9A653F19: 0x9A653F19
           SceDeci4pSDfMgrForKernel_9A653F19: 0x9A653F19
          int SceDeci4pSDfMgrForKernel_A55F5F0D(const void *func, void *a2, void *a3); // set some cb
           SceDeci4pSDfMgrForKernel_A963E333: 0xA963E333 // trigger some SGI
           SceDeci4pSDfMgrForKernel_A963E333: 0xA963E333 // trigger some SGI
           SceDeci4pSDfMgrForKernel_B050A0D5: 0xB050A0D5
           SceDeci4pSDfMgrForKernel_B050A0D5: 0xB050A0D5
Line 147: Line 186:
           SceDeci4pSDfMgrForKernel_BFB482D8: 0xBFB482D8
           SceDeci4pSDfMgrForKernel_BFB482D8: 0xBFB482D8
           SceDeci4pSDfMgrForKernel_C38EA67A: 0xC38EA67A
           SceDeci4pSDfMgrForKernel_C38EA67A: 0xC38EA67A
          SceDeci4pSDfMgrForKernel_CF4A3E03: 0xCF4A3E03
           SceDeci4pSDfMgrForKernel_DAFE03AD: 0xDAFE03AD // maybe write sdbgsdio
           SceDeci4pSDfMgrForKernel_DAFE03AD: 0xDAFE03AD // maybe write sdbgsdio
           SceDeci4pSDfMgrForKernel_E53400AE: 0xE53400AE
           SceDeci4pSDfMgrForKernel_E53400AE: 0xE53400AE

Revision as of 16:41, 22 March 2022

Module

Version World Privilege
3.60-3.65 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.990-3.65 SceDeci4pSDfMgrForKernel Non-secure Kernel 0xA1386CB2

Types

#define SCE_SDFMGR_EXCP_TYPE_PABT  (0)
#define SCE_SDFMGR_EXCP_TYPE_DABT  (1)
#define SCE_SDFMGR_EXCP_TYPE_UNDEF (2)
#define SCE_SDFMGR_EXCP_TYPE_BUS   (3)

typedef int (* SceSDfMgrExceptionCallback)(SceExcpmgrExceptionContext *context, SceUInt32 pc, SceUInt32 cpsr);

typedef SceInt32 SceSDfMgrSocketId;

#define SCE_SDFMGR_EVENT_TYPE_1  (1) //recieved something
#define SCE_SDFMGR_EVENT_TYPE_2  (2)
#define SCE_SDFMGR_EVENT_TYPE_3  (3) //something to send
#define SCE_SDFMGR_EVENT_TYPE_4  (4)
#define SCE_SDFMGR_EVENT_TYPE_5  (5)
#define SCE_SDFMGR_EVENT_TYPE_6  (6)

typedef void (* SceSDfMgrEventHandler)(SceUInt32 event, void* eventData, void* pCommon); //<! pCommon is the data passed to Open/ExOpen

typedef struct _SceSDfMgrOpenParam {
    SceSize size;         //<! Size of this structure (0x1C)
    SceUInt32 clientId;   //<! Unique number, used to identify called - must not be 0
    SceUInt32 unk8;
    SceUInt32 unkC;
    SceUInt32 unk10;
    SceUInt16 unk14;
    SceUInt16 flags;      //<! Bitflag: 0x1 makes the initial "status" 0x3 instead of 0x1, 0x2 makes a call to dcmpSendStatusProtocolAlias, ...
    char* name;           //<! Name of the "caller" - example: DCMP
} SceSDfMgrOpenParam;

SceDeci4pSDfMgrForKernel

SceDeci4pSDfMgrForKernel_A55F5F0D

Version NID
0.990 0xA55F5F0D

Potential name is sceSDfMgrOpen. Acquires an interrupt-suspending lock and calls sceSDfMgrExOpen.

SceSDfMgrSocketId SceDeci4pSDfMgrForKernel_A55F5F0D(SceSDfMgrEventHandler eventHandler, const SceSDfMgrOpenParam* openParam, void* pCommon);

sceSDfMgrExOpen

Version NID
0.990 0xCF4A3E03

Open a SDfMgr socket. openParam is not retained and can be disposed of after this call.

SceSDfMgrSocketId sceSDfMgrExOpen(SceSDfMgrEventHandler eventHandler, const SceSDfMgrOpenParam* openParam, void* pCommon);

sceSDfMgrBreakSystem

Version NID
0.990 0xEDFBA012

Calls sceKernelGenerateSoftIntrForDriver(0, 1, 0).

SceInt32 sceSDfMgrBreakSystem();

SceDeci4pSDfMgrForKernel_FFC95B63

Version NID
0.990 0xFFC95B63

Equivalent to SceDeci4pDfMgrForDebugger_6D26CC56. Writes val as a 3-byte unsigned integer to ptr.

void SceDeci4pSDfMgrForKernel_FFC95B63(void* ptr, SceUInt32 val);

SceDeci4pSDfMgrForKernel_68903C1D

Version NID
0.990 0x68903C1D

Equivalent to SceDeci4pDfMgrForDebugger_CACAB5F9. Reads value at ptr as a 3-byte unsigned integer and returns it.

SceUInt32 SceDeci4pSDfMgrForKernel_68903C1D(void* ptr);

SceDeci4pSDfMgrForKernel_5996E2DB

Version NID
0.990 0x5996E2DB

Equivalent to memcpy.

void* SceDeci4pSDfMgrForKernel_8A3B06F2(void* dst, void* src, size_t len);

SceDeci4pSDfMgrForKernel_8A3B06F2

Version NID
0.990 0x8A3B06F2

Equivalent to memset.

void* SceDeci4pSDfMgrForKernel_8A3B06F2(void* dst, int ch, size_t len);

sceSDfMgrUnregisterExcpHandlerForKernel

Version NID
0.990 0xB050A0D5

Guessed name was sceSDfMgrUnregisterCpuExcpCallbackForKernel. This name is a deduction from sceSDfMgrRegisterExcpHandlerForKernel.

Unregisters an exception handler previously registered using sceSDfMgrRegisterExcpHandlerForKernel.

//Returns 0x80090001 if type >= 4, or func isn't the already registered callback
SceInt32 sceSDfMgrUnregisterExcpHandlerForKernel(SceSDfMgrExceptionCallback func, SceUInt32 type);

sceSDfMgrRegisterExcpHandlerForKernel

Version NID
0.990-3.60 0x6BF5553C

Guessed name was sceSDfMgrRegisterCpuExcpCallbackForKernel.

Used by SceDeci4pSDbgp.

//Returns 0x80090001 if type >= 4
//Returns 0x80090003 if a callback is already registered for this type
SceInt32 sceSDfMgrRegisterExcpHandlerForKernel(SceSDfMgrExceptionCallback func, SceUInt32 type);
         SceDeci4pSDfMgrForKernel_0A6437B6: 0x0A6437B6
         SceDeci4pSDfMgrForKernel_11340BD4: 0x11340BD4
         SceDeci4pSDfMgrForKernel_152D98DF: 0x152D98DF
         SceUInt32 SceDeci4pSDfMgrForKernel_35238B8A(void); // sceDeci4pSDfMgrGetMemoryTypeForKernel
         SceDeci4pSDfMgrForKernel_3A25594F: 0x3A25594F
         SceDeci4pSDfMgrForKernel_4D974C08: 0x4D974C08
         SceDeci4pSDfMgrForKernel_4EA65698: 0x4EA65698
         SceDeci4pSDfMgrForKernel_501CE61D: 0x501CE61D
         SceDeci4pSDfMgrForKernel_58D7597A: 0x58D7597A
         SceDeci4pSDfMgrForKernel_59C077B3: 0x59C077B3
         SceDeci4pSDfMgrForKernel_682D0EFB: 0x682D0EFB
         SceDeci4pSDfMgrForKernel_81E7C5BD: 0x81E7C5BD
         SceDeci4pSDfMgrForKernel_86CFC8C6: 0x86CFC8C6
         SceDeci4pSDfMgrForKernel_90E8D453: 0x90E8D453
         SceDeci4pSDfMgrForKernel_98AEC60E: 0x98AEC60E
         SceDeci4pSDfMgrForKernel_9A653F19: 0x9A653F19
         SceDeci4pSDfMgrForKernel_A963E333: 0xA963E333 // trigger some SGI
         SceDeci4pSDfMgrForKernel_B050A0D5: 0xB050A0D5
         SceDeci4pSDfMgrForKernel_B22B42FB: 0xB22B42FB
         SceDeci4pSDfMgrForKernel_B44083E1: 0xB44083E1
         SceDeci4pSDfMgrForKernel_BFB482D8: 0xBFB482D8
         SceDeci4pSDfMgrForKernel_C38EA67A: 0xC38EA67A
         SceDeci4pSDfMgrForKernel_DAFE03AD: 0xDAFE03AD // maybe write sdbgsdio
         SceDeci4pSDfMgrForKernel_E53400AE: 0xE53400AE
         SceDeci4pSDfMgrForKernel_F43F5941: 0xF43F5941 // maybe read sdbgsdio
         SceDeci4pSDfMgrForKernel_FCF211FB: 0xFCF211FB