SceSblSmschedProxy
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 |
---|---|---|---|---|
0.931-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 sk_cmd_index {
SK_CMD_0xB01_INDEX = 0,
SK_CMD_0xC01_INDEX = 1,
SK_CMD_0xD01_INDEX = 2,
SK_CMD_0xE01_INDEX = 3,
SK_CMD_0xF01_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 |
---|---|
0.931-3.60 | 0xA488D604 |
Calls module_start if cpuId is 0.
int sceSblSmSchedProxyInitializeForKernel(void);
sceSblSmSchedProxyInvokeForKernel
Temp name was sceSblSmSchedProxyCreateSmOperationForKernel.
Version | NID |
---|---|
0.931-3.60 | 0x1916509B |
Executes smc 0x12D call.
- priority - first smc arg
- sm_self_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;
// sm_self_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(SceBool priority, void *sm_self_paddr, unsigned int num_pairs, sm_invoke_data_block_input *invoke_input, SceSblSmCommContext130 *ctx, SceSmSchedRequestId *req_id);
sceSblSmSchedProxyWaitForKernel
Version | NID |
---|---|
0.931-3.60 | 0xF35EFC1A |
Executes smc 0x12E call.
int sceSblSmSchedProxyWaitForKernel(SceSmSchedRequestId req_id, status_handler* result);
sceSblSmSchedProxyGetStatusForKernel
Version | NID |
---|---|
0.931-3.60 | 0x27EB92F1 |
Executes smc 0x12F call.
int sceSblSmSchedProxyGetStatusForKernel(SceSmSchedRequestId req_id, status_handler* status);
sceSblSmSchedProxyKillForKernel
Version | NID |
---|---|
0.931-3.60 | 0xDE4EAC3C |
Temp name was sceSblSmSchedProxyChangeF00DStatusForKernel.
Executes smc 0x130 call.
int sceSblSmSchedProxyKillForKernel(SceSmSchedRequestId req_id);
SceSblSmSchedProxyForKernel_984EC9D1
Version | NID |
---|---|
0.931-3.60 | 0x984EC9D1 |
Reserved function along with smc 0x131.
On FWs 0.931-3.60, does nothing and returns 0x800F0425.
SceSblSmSchedProxyForKernel_1DFC8624
Version | NID |
---|---|
0.931-3.60 | 0x1DFC8624 |
Reserved function along with smc 0x132.
On FWs 0.931-3.60, does nothing and returns 0x800F0425.
sceSblSmSchedProxyCallFuncForKernel
Version | NID |
---|---|
0.931-3.60 | 0x723B382F |
Temp name was sceSblSmSchedProxySetCommandF00DRegisterForKernel.
Executes smc 0x133 call.
Called by sceSblSmCommCallFunc.
int sceSblSmSchedProxyCallFuncForKernel(SceSmSchedRequestId req_id, int mailbox_id, SceUInt32 mailval);
sceSblSmSchedProxyReadArm2CryForKernel
Version | NID |
---|---|
0.931-3.60 | 0xF70C04EC |
Executes smc 0x134 call.
int sceSblSmSchedProxyReadArm2CryForKernel(SceSmSchedRequestId req_id, int mailbox_id, SceUInt32 *pMailval);
sceSblSmSchedProxyWriteArm2CryForKernel
Version | NID |
---|---|
0.931-3.60 | 0x3CE17233 |
Executes smc 0x135 call.
int sceSblSmSchedProxyWriteArm2CryForKernel(SceSmSchedRequestId req_id, int mailbox_id, SceUInt32 mailval);
sceSblSmSchedProxyWriteCry2ArmForKernel
Version | NID |
---|---|
0.931-3.60 | 0x15B0E4DF |
Temp name was sceSblSmSchedProxySetStatusCodeF00DRegisterForKernel.
Executes smc 0x136 call.
Used by SceSblAuthMgr.
int sceSblSmSchedProxyWriteCry2ArmForKernel(SceSmSchedRequestId req_id, int mailbox_id, SceUInt32 mailval);
sceSblSmSchedProxyReadCry2ArmForKernel
Version | NID |
---|---|
0.931-3.60 | 0x973A4A7D |
Temp name was sceSblSmSchedProxyGetStatusCodeF00DRegisterForKernel.
Executes smc 0x137 call.
Used by SceSblAuthMgr.
int sceSblSmSchedProxyReadCry2ArmForKernel(SceSmSchedRequestId req_id, int mailbox_id, SceUInt32 *pMailval);
sceSblSmSchedProxyRegisterIntrHandlerForKernel
Version | NID |
---|---|
0.931-3.60 | 0x8B84AC2A |
Temp name was sceSblSmSchedProxyEnableCry2ArmInterruptForKernel.
Executes smc 0x138 call.
Called by SceSblAuthMgr.
typedef int sceSblSmSchedProxyIntrHandler(SceSmSchedRequestId req_id, int mailbox_id, int arg1, int arg2, int arg3);
int sceSblSmSchedProxyRegisterIntrHandlerForKernel(SceSmSchedRequestId req_id, int mailbox_id, sceSblSmSchedProxyIntrHandler *cb, int unk_unused);
sceSblSmSchedProxyReleaseIntrHandlerForKernel
Version | NID |
---|---|
0.931-3.60 | 0x85EDA5FC |
Temp name was sceSblSmSchedProxyDisableCry2ArmInterruptForKernel.
Executes smc 0x139 call.
Called by SceSblAuthMgr.
int sceSblSmSchedProxyReleaseIntrHandlerForKernel(SceSmSchedRequestId req_id, int mailbox_id);
sceSblSmSchedProxyUninitializeForKernel
Version | NID |
---|---|
0.931-3.60 | 0x33A3A1E2 |
Executes smc 0x13B call.
Only executes if cpuId is 0.
int sceSblSmSchedProxyUninitializeForKernel(void);
sceSblSmSchedProxyExecuteSKCommandForKernel
Version | NID |
---|---|
0.931-3.60 | 0x7894B6F0 |
Temp name was sceSblSmSchedProxyExecuteF00DCommandForKernel.
Executes smc 0x13C call.
int sceSblSmSchedProxyExecuteSKCommandForKernel(sk_cmd_index cmd_index, int unused1, int unused2, int unused3);
This function is called by two modules:
SceSblSsMgr just before PSVita entering suspend mode:
sceSblSmSchedProxyExecuteSKCommandForKernel(4, 0, 0, 0);
SceSdif at init (at PSVita boot and maybe called after PSVita resume):
sceSblSmSchedProxyExecuteSKCommandForKernel(3, 0, 0, 0);