SceSblSmschedProxy: Difference between revisions
CelesteBlue (talk | contribs) |
CelesteBlue (talk | contribs) No edit summary |
||
Line 101: | Line 101: | ||
|} | |} | ||
Executes [[ | Executes [[SMC|smc 0x12D]] call. | ||
* priority - first smc arg | * priority - first smc arg | ||
Line 128: | Line 128: | ||
|} | |} | ||
Executes [[ | Executes [[SMC|smc 0x12E]] call. | ||
<source lang="c">int sceSblSmSchedProxyWaitForKernel(SmOperationId req_id, status_handler* result);</source> | <source lang="c">int sceSblSmSchedProxyWaitForKernel(SmOperationId req_id, status_handler* result);</source> | ||
Line 140: | Line 140: | ||
|} | |} | ||
Executes [[ | Executes [[SMC|smc 0x12F]] call. | ||
<source lang="c">int sceSblSmSchedProxyGetStatusForKernel(SmOperationId req_id, status_handler* status);</source> | <source lang="c">int sceSblSmSchedProxyGetStatusForKernel(SmOperationId req_id, status_handler* status);</source> | ||
Line 154: | Line 154: | ||
Temp name was sceSblSmSchedProxyChangeF00DStatusForKernel. | Temp name was sceSblSmSchedProxyChangeF00DStatusForKernel. | ||
Executes [[ | Executes [[SMC|smc 0x130]] call. | ||
<source lang="C">int sceSblSmSchedProxyKillForKernel(SmOperationId req_id);</source> | <source lang="C">int sceSblSmSchedProxyKillForKernel(SmOperationId req_id);</source> | ||
Line 189: | Line 189: | ||
|} | |} | ||
Executes [[ | Executes [[SMC|smc 0x133]] call. | ||
Called by [[SceSblSsSmComm#sceSblSmCommCallFunc|sceSblSmCommCallFunc]]. | Called by [[SceSblSsSmComm#sceSblSmCommCallFunc|sceSblSmCommCallFunc]]. | ||
Line 208: | Line 208: | ||
Calls subroutine "sceSblSmSchedProxyAccessMailbox". | Calls subroutine "sceSblSmSchedProxyAccessMailbox". | ||
Executes [[SMC|smc 0x134]] call. | |||
<source lang="C">int sceSblSmSchedProxyGetCommandF00DRegisterForKernel(SmOperationId req_id, int mailbox_id, SceSblSmschedCallFuncCommand** cmd_paddr);</source> | <source lang="C">int sceSblSmSchedProxyGetCommandF00DRegisterForKernel(SmOperationId req_id, int mailbox_id, SceSblSmschedCallFuncCommand** cmd_paddr);</source> | ||
Line 220: | Line 220: | ||
|} | |} | ||
Executes [[SMC|smc 0x135]] call. | |||
<source lang="C">int sceSblSmSchedProxySetUnknownF00DRegisterForKernel(SmOperationId req_id, int mailbox_id, int f00d_fifo_register_value);</source> | <source lang="C">int sceSblSmSchedProxySetUnknownF00DRegisterForKernel(SmOperationId req_id, int mailbox_id, int f00d_fifo_register_value);</source> | ||
Line 234: | Line 234: | ||
Temp name was sceSblSmSchedProxySetStatusCodeF00DRegisterForKernel. | Temp name was sceSblSmSchedProxySetStatusCodeF00DRegisterForKernel. | ||
Executes [[ | Executes [[SMC|smc 0x136]] call. | ||
Used by [[SceSblAuthMgr]]. | Used by [[SceSblAuthMgr]]. | ||
Line 252: | Line 252: | ||
Calls subroutine "sceSblSmSchedProxyAccessMailbox". | Calls subroutine "sceSblSmSchedProxyAccessMailbox". | ||
Executes [[ | Executes [[SMC|smc 0x137]] call. | ||
Used by [[SceSblAuthMgr]]. | Used by [[SceSblAuthMgr]]. | ||
Line 268: | Line 268: | ||
Temp name was sceSblSmSchedProxyEnableCry2ArmInterruptForKernel. | Temp name was sceSblSmSchedProxyEnableCry2ArmInterruptForKernel. | ||
Executes [[ | Executes [[SMC|smc 0x138]] call. | ||
Called by [[SceSblAuthMgr]]. | Called by [[SceSblAuthMgr]]. | ||
Line 290: | Line 290: | ||
Temp name was sceSblSmSchedProxyDisableCry2ArmInterruptForKernel. | Temp name was sceSblSmSchedProxyDisableCry2ArmInterruptForKernel. | ||
Executes [[ | Executes [[SMC|smc 0x139]] call. | ||
Called by [[SceSblAuthMgr]]. | Called by [[SceSblAuthMgr]]. | ||
Line 304: | Line 304: | ||
|} | |} | ||
Executes [[SMC|smc 0x13B]] call. | |||
only executes if cpuid is 0 | only executes if cpuid is 0 | ||
Line 318: | Line 318: | ||
|} | |} | ||
Executes [[SMC|smc 0x13C]] call | |||
<source lang="C">int sceSblSmSchedProxyExecuteF00DCommandForKernel(F00D_cmd_index cmd_index, int unused1, int unused2, int unused3);</source> | <source lang="C">int sceSblSmSchedProxyExecuteF00DCommandForKernel(F00D_cmd_index cmd_index, int unused1, int unused2, int unused3);</source> |
Revision as of 20:45, 3 June 2020
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceSblSmschedProxy | Non-secure | Kernel | 0xF3BC3013 |
3.60 | SceSblSmschedProxy | Non-secure | Kernel | 0x254B02B3 |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69-3.60 | SceSblSmSchedProxyForKernel | Non-secure | Kernel | 0x15F25C84 |
Types
typedef unsigned int SmOperationId; #define CRY_INTERRUPT_INDEX0 0 #define CRY_INTERRUPT_INDEX1 1 #define CRY_INTERRUPT_INDEX2 2 #define CRY_INTERRUPT_INDEX3 3 #define MAILBOX_ID1 1 #define MAILBOX_ID2 2 #define MAILBOX_ID3 3 enum SmStatus { SM_STATUS_1 = 0x1, SM_STATUS_2 = 0x2, SM_STATUS_EXIT = 0x3, SM_STATUS_4 = 0x4, SM_STATUS_5 = 0x5, SM_STATUS_6 = 0x6, SM_STATUS_7 = 0x7, SM_STATUS_8 = 0x8, SM_STATUS_9 = 0x9, SM_STATUS_A = 0xA, SM_STATUS_B = 0xB, SM_STATUS_C = 0xC, }; enum class F00D_cmd_index { F00D_CMD_B_INDEX = 0, F00D_CMD_C_INDEX = 1, F00D_CMD_D_INDEX = 2, F00D_CMD_E_INDEX = 3, F00D_CMD_F_INDEX = 4, }; typedef struct SceSblSmschedCallFuncCommand { unsigned int size; unsigned int service_id; unsigned int response; unsigned int unk2; unsigned int padding[(0x40 - 0x10) / 4]; unsigned int data[0]; } SceSblSmschedCallFuncCommand; /* size = 0X40 + ... */ typedef struct status_handler { int status0; SmStatus status1; } status_handler;
SceSblSmSchedProxyForKernel
sceSblSmSchedProxyInitializeForKernel
Version | NID |
---|---|
3.60 | 0xA488D604 |
Calls module_start if cpuid is 0.
int sceSblSmSchedProxyInitializeForKernel();
sceSblSmSchedProxyInvokeForKernel
Temp name was sceSblSmSchedProxyCreateSmOperationForKernel.
Version | NID |
---|---|
0.931-3.60 | 0x1916509B |
Executes smc 0x12D call.
- priority - first smc arg
- sm_self_data_paddr - second smc arg
- num_pairs - third smc arg
typedef struct sm_invoke_data_block_input { int unk0; int unk4; int unk8; int unkC; } sm_invoke_data_block_input; // paddr = Physical address of the buffer containing the result of sceKernelVARangeToPAVectorForDriver (req.output_buffer) // num_pairs = number of (paddr, size) pairs in the buffer returned by sceKernelVARangeToPAVectorForDriver (ret_count) int sceSblSmSchedProxyInvokeForKernel(int priority, void *sm_self_data_paddr, unsigned int num_pairs, sm_invoke_data_block_input *invoke_input, SceSblSmCommContext130 *ctx, SmOperationId *req_id);
sceSblSmSchedProxyWaitForKernel
Version | NID |
---|---|
0.940-3.60 | 0xF35EFC1A |
Executes smc 0x12E call.
int sceSblSmSchedProxyWaitForKernel(SmOperationId req_id, status_handler* result);
sceSblSmSchedProxyGetStatusForKernel
Version | NID |
---|---|
0.940-3.60 | 0x27EB92F1 |
Executes smc 0x12F call.
int sceSblSmSchedProxyGetStatusForKernel(SmOperationId req_id, status_handler* status);
sceSblSmSchedProxyKillForKernel
Version | NID |
---|---|
0.940-3.60 | 0xDE4EAC3C |
Temp name was sceSblSmSchedProxyChangeF00DStatusForKernel.
Executes smc 0x130 call.
int sceSblSmSchedProxyKillForKernel(SmOperationId req_id);
sceSblSmSchedProxyNotImplementedMaybeSMC0x131ForKernel
Version | NID |
---|---|
3.60 | 0x984EC9D1 |
returns 0x800F0425
sceSblSmSchedProxyNotImplementedMaybeSMC0x132ForKernel
Version | NID |
---|---|
3.60 | 0x1DFC8624 |
returns 0x800F0425
sceSblSmSchedCallFuncForKernel
Temp name was sceSblSmSchedProxySetCommandF00DRegisterForKernel
Version | NID |
---|---|
0.931-3.60 | 0x723B382F |
Executes smc 0x133 call.
Called by sceSblSmCommCallFunc.
- mailbox_id - second smc arg
- cmd_paddr - third smc arg
int sceSblSmSchedCallFuncForKernel(SmOperationId req_id, int mailbox_id, SceSblSmschedCallFuncCommand* cmd_paddr);
sceSblSmSchedProxyGetCommandF00DRegisterForKernel
Version | NID |
---|---|
0.990-3.60 | 0xF70C04EC |
Calls subroutine "sceSblSmSchedProxyAccessMailbox".
Executes smc 0x134 call.
int sceSblSmSchedProxyGetCommandF00DRegisterForKernel(SmOperationId req_id, int mailbox_id, SceSblSmschedCallFuncCommand** cmd_paddr);
sceSblSmSchedProxySetUnknownF00DRegisterForKernel
Version | NID |
---|---|
3.60 | 0x3CE17233 |
Executes smc 0x135 call.
int sceSblSmSchedProxySetUnknownF00DRegisterForKernel(SmOperationId req_id, int mailbox_id, int f00d_fifo_register_value);
sceSblSmSchedProxyWriteCry2ArmForKernel
Version | NID |
---|---|
0.931-3.60 | 0x15B0E4DF |
Temp name was sceSblSmSchedProxySetStatusCodeF00DRegisterForKernel.
Executes smc 0x136 call.
Used by SceSblAuthMgr.
int sceSblSmSchedProxyWriteCry2ArmForKernel(SmOperationId req_id, int mailbox_id, int mailval);
sceSblSmSchedProxyReadCry2ArmForKernel
Version | NID |
---|---|
0.931-3.60 | 0x973A4A7D |
Temp name was sceSblSmSchedProxyGetStatusCodeF00DRegisterForKernel.
Calls subroutine "sceSblSmSchedProxyAccessMailbox".
Executes smc 0x137 call.
Used by SceSblAuthMgr.
int sceSblSmSchedProxyReadCry2ArmForKernel(SmOperationId req_id, int mailbox_id, int* mailval);
sceSblSmSchedProxyRegisterIntrHandlerForKernel
Version | NID |
---|---|
0.931-3.60 | 0x8B84AC2A |
Temp name was sceSblSmSchedProxyEnableCry2ArmInterruptForKernel.
Executes smc 0x138 call.
Called by SceSblAuthMgr.
- smcArg1_funcArg1 - second smc arg
typedef int sceSblIntrHandlerforInvoke(SmOperationId req_id, int intr_index, int arg2, int arg3, int arg4); int sceSblSmSchedProxyRegisterIntrHandlerForKernel(SmOperationId req_id, int intr_index, sceSblIntrHandlerforInvoke *cb, int smcArg1_funcArg1);
sceSblSmSchedProxyReleaseIntrHandlerForKernel
Version | NID |
---|---|
0.931-3.60 | 0x85EDA5FC |
Temp name was sceSblSmSchedProxyDisableCry2ArmInterruptForKernel.
Executes smc 0x139 call.
Called by SceSblAuthMgr.
int sceSblSmSchedProxyReleaseIntrHandlerForKernel(SmOperationId req_id, int intr_index);
sceSblSmSchedProxyUninitializeForKernel
Version | NID |
---|---|
3.60 | 0x33A3A1E2 |
Executes smc 0x13B call.
only executes if cpuid is 0
int sceSblSmSchedProxyUninitializeForKernel();
sceSblSmSchedProxyExecuteF00DCommandForKernel
Version | NID |
---|---|
3.60 | 0x7894B6F0 |
Executes smc 0x13C call
int sceSblSmSchedProxyExecuteF00DCommandForKernel(F00D_cmd_index cmd_index, int unused1, int unused2, int unused3);
This function is called by two modules:
SceSblSsMgr just before PSVita entering suspend mode:
sceSblSmSchedProxyExecuteF00DCommandForKernel(4, 0, 0, 0);
SceSdif at init (at PSVita boot and maybe called after PSVita resume):
sceSblSmSchedProxyExecuteF00DCommandForKernel(3, 0, 0, 0);