uOFW
Reverse engineered PSP kernel 6.60.
Loading...
Searching...
No Matches
sysmem_sysevent.h
1/* Copyright (C) The uOFW team
2 See the file COPYING for copying permission.
3*/
4
5#include "common_header.h"
6
7enum SceSysEventTypes {
8 SCE_SUSPEND_EVENTS = 0x0000FF00,
9 SCE_RESUME_EVENTS = 0x00FF0000,
10 SCE_SPEED_CHANGE_EVENTS = 0x01000000
11};
12
13/* PSP suspend events */
14
15#define SCE_SYSTEM_SUSPEND_EVENT_QUERY 0x00000100 /* Cancel request can be sent. */
16#define SCE_SYSTEM_SUSPEND_EVENT_CANCELLATION 0x00000101
17#define SCE_SYSTEM_SUSPEND_EVENT_START 0x00000102
18
19/* Different phases can be used to prioritize work/set up data. Phase2_16 is raised first, Phase2_0 last. */
20
21#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_0 0x00000200
22#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_1 0x00000201
23#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_2 0x00000202
24#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_3 0x00000203
25#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_4 0x00000204
26#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_5 0x00000205
27#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_6 0x00000206
28#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_7 0x00000207
29#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_8 0x00000208
30#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_9 0x00000209
31#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_10 0x0000020A
32#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_11 0x0000020B
33#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_12 0x0000020C
34#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_13 0x0000020D
35#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_14 0x0000020E
36#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_15 0x0000020F
37#define SCE_SYSTEM_SUSPEND_EVENT_PHASE2_16 0x00000210
38
39#define SCE_SYSTEM_SUSPEND_EVENT_PHASE1_0 0x00000400
40#define SCE_SYSTEM_SUSPEND_EVENT_PHASE1_1 0x00000401
41#define SCE_SYSTEM_SUSPEND_EVENT_PHASE1_2 0x00000402 /* Cancel request can be sent. */
42
43#define SCE_SYSTEM_SUSPEND_EVENT_FREEZE 0x00001000
44
45/* Different phases can be used to prioritize work/set up data. Phase0_15 is raised first, Phase0_0 last. */
46
47#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_0 0x00004000
48#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_1 0x00004001
49#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_2 0x00004002
50#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_3 0x00004003
51#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_4 0x00004004
52#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_5 0x00004005
53#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_6 0x00004006
54#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_7 0x00004007
55#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_8 0x00004008
56#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_9 0x00004009
57#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_10 0x0000400A
58#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_11 0x0000400B
59#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_12 0x0000400C
60#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_13 0x0000400D
61#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_14 0x0000400E
62#define SCE_SYSTEM_SUSPEND_EVENT_PHASE0_15 0x0000400F
63
64/* PSP resume events */
65
66/* Different phases can be used to prioritize work/set up data. Phase0_0 is raised first, Phase0_15 last. */
67
68#define SCE_SYSTEM_RESUME_EVENT_PHASE0_0 0x00010000
69#define SCE_SYSTEM_RESUME_EVENT_PHASE0_1 0x00010001
70#define SCE_SYSTEM_RESUME_EVENT_PHASE0_2 0x00010002
71#define SCE_SYSTEM_RESUME_EVENT_PHASE0_3 0x00010003
72#define SCE_SYSTEM_RESUME_EVENT_PHASE0_4 0x00010004
73#define SCE_SYSTEM_RESUME_EVENT_PHASE0_5 0x00010005
74#define SCE_SYSTEM_RESUME_EVENT_PHASE0_6 0x00010006
75#define SCE_SYSTEM_RESUME_EVENT_PHASE0_7 0x00010007
76#define SCE_SYSTEM_RESUME_EVENT_PHASE0_8 0x00010008
77#define SCE_SYSTEM_RESUME_EVENT_PHASE0_9 0x00010009
78#define SCE_SYSTEM_RESUME_EVENT_PHASE0_10 0x0001000A
79#define SCE_SYSTEM_RESUME_EVENT_PHASE0_11 0x0001000B
80#define SCE_SYSTEM_RESUME_EVENT_PHASE0_12 0x0001000C
81#define SCE_SYSTEM_RESUME_EVENT_PHASE0_13 0x0001000D
82#define SCE_SYSTEM_RESUME_EVENT_PHASE0_14 0x0001000E
83#define SCE_SYSTEM_RESUME_EVENT_PHASE0_15 0x0001000F
84
85#define SCE_SYSTEM_RESUME_EVENT_MELT 0x00040000
86
87#define SCE_SYSTEM_RESUME_EVENT_PHASE1_0 0x00100000
88#define SCE_SYSTEM_RESUME_EVENT_PHASE1_1 0x00100001
89#define SCE_SYSTEM_RESUME_EVENT_PHASE1_2 0x00100002 /* Cancel request can be sent. */
90
91#define SCE_SYSTEM_RESUME_EVENT_COMPLETED 0x00400000
92typedef struct {
93 SceSize size; // 0
94 u32 isStandbyOrRebootRequested; // 4
95 s64 systemTimePreSuspendOp; // 8
96 u32 *pWakeupCondition; // 16
97 void *pResumeData; // 20
98 u32 unk24; // 24
99 u32 unk28; // 28
100 u32 unk32; // 32
101 u32 unk36; // 36
102 u32 unk40; // 40
103 u32 unk44; // 44
104 u32 unk48; // 48
105 u32 unk52; // 52
106 u32 unk56; // 56
107 u32 unk60; // 60
108} SceSysEventSuspendPayload; // size = 64
109
110typedef struct SceSysEventHandler {
111 s32 size;
112 char *name;
113 s32 typeMask;
114 s32 (*handler)(s32 eventId, char* eventName, void *param, s32 *result);
115 s32 gp;
116 SceBool busy;
117 struct SceSysEventHandler *next;
118 s32 reserved[9];
119} SceSysEventHandler;
120
121s32 sceKernelUnregisterSysEventHandler(SceSysEventHandler *handler);
122s32 sceKernelSysEventDispatch(s32 eventTypeMask, s32 eventId, char *eventName, void *param, s32 *result, s32 break_nonzero,
123 SceSysEventHandler **break_handler);
124s32 sceKernelSysEventInit(void);
125s32 sceKernelIsRegisterSysEventHandler(SceSysEventHandler *handler);
126s32 sceKernelRegisterSysEventHandler(SceSysEventHandler *handler);
127SceSysEventHandler *sceKernelReferSysEventHandler(void);
128