uOFW
Reverse engineered PSP kernel 6.60.
ctrl.h
1 
5 #include "common_header.h"
6 
12 #ifndef CTRL_H
13 #define CTRL_H
14 
16 typedef void (*SceKernelButtonCallbackFunction)(u32 curButtons, u32 lastButtons, void *opt);
17 
22 typedef struct {
27  u32 timeStamp;
29  u32 buttons;
31  u8 aX;
33  u8 aY;
35  u8 rX;
37  u8 rY;
39  u8 rsrv[4];
40 } SceCtrlData;
41 
48 typedef struct {
53  u32 timeStamp;
55  u32 buttons;
57  u8 aX;
59  u8 aY;
61  u8 rX;
63  u8 rY;
65  u8 rsrv[4];
97  s32 TiltA;
99  s32 TiltB;
100 } SceCtrlData2;
101 
133 typedef struct {
142 } SceCtrlLatch;
143 
147 typedef struct {
149  s32 unk1;
154  s32 (*copyInputData)(void *pSrc, SceCtrlData2 *pDst);
156 
165  SCE_CTRL_SELECT = 0x00000001,
167  SCE_CTRL_L3 = 0x00000002,
169  SCE_CTRL_R3 = 0x00000004,
171  SCE_CTRL_START = 0x00000008,
173  SCE_CTRL_UP = 0x00000010,
175  SCE_CTRL_RIGHT = 0x00000020,
177  SCE_CTRL_DOWN = 0x00000040,
179  SCE_CTRL_LEFT = 0x00000080,
181  SCE_CTRL_LTRIGGER = 0x00000100,
183  SCE_CTRL_RTRIGGER = 0x00000200,
185  SCE_CTRL_L1TRIGGER = 0x00000400,
187  SCE_CTRL_R1TRIGGER = 0x00000800,
189  SCE_CTRL_TRIANGLE = 0x00001000,
191  SCE_CTRL_CIRCLE = 0x00002000,
193  SCE_CTRL_CROSS = 0x00004000,
195  SCE_CTRL_SQUARE = 0x00008000,
201  SCE_CTRL_INTERCEPTED = 0x00010000,
203  SCE_CTRL_HOLD = 0x00020000,
205  SCE_CTRL_WLAN_UP = 0x00040000,
207  SCE_CTRL_REMOTE = 0x00080000,
209  SCE_CTRL_VOLUP = 0x00100000,
211  SCE_CTRL_VOLDOWN = 0x00200000,
213  SCE_CTRL_SCREEN = 0x00400000,
215  SCE_CTRL_NOTE = 0x00800000,
217  SCE_CTRL_DISC = 0x01000000,
219  SCE_CTRL_MS = 0x02000000,
220  SCE_CTRL_UNK_10000000 = 0x10000000,
221  SCE_CTRL_UNK_20000000 = 0x20000000,
222 };
223 
230 };
231 
238 };
239 
242  /* Input is only obtained from the PSP. */
243  SCE_CRTL_PORT_PSP = 0,
244  /* Input is obtained from the PSP and a connected DualShock3 controller. */
245  SCE_CTRL_PORT_DS3 = 1,
246  /* Input is obtained from the PSP and an unknown connected external device. */
247  SCE_CTRL_PORT_UNKNOWN_2 = 2
248 };
249 
265 };
266 
267 /* The center position of the analog stick on both axes. */
268 #define SCE_CTRL_ANALOG_PAD_CENTER_VALUE 0x80
269 
275 s32 sceCtrlInit(void);
276 
282 s32 sceCtrlEnd(void);
283 
289 s32 sceCtrlSuspend(void);
290 
296 s32 sceCtrlResume(void);
297 
306 u32 sceCtrlSetPollingMode(u8 pollMode);
307 
315 u32 sceCtrlGetSamplingMode(u8 *pMode);
316 
325 
333 u32 sceCtrlGetSamplingCycle(u32 *pCycle);
334 
347 s32 sceCtrlSetSamplingCycle(u32 cycle);
348 
363 u32 sceCtrlGetIdleCancelKey(u32 *pResetButtonsMake, u32 *pResetButtonsPress, u32 *pResetButtonsMakeHoldMode,
364  u32 *pResetButtonsPressHoldMode);
365 
396 u32 sceCtrlSetIdleCancelKey(u32 resetButtonsMake, u32 resetButtonsPress, u32 resetButtonsMakeHoldMode,
397  u32 resetButtonsPressHoldMode);
398 
399 /* This constant defines that analog stick movement does not cancel the idle timer. */
400 #define SCE_CTRL_IDLE_CANCEL_TRESHOLD_NO_CANCELLATION (-1)
401 
410 s32 sceCtrlGetIdleCancelThreshold(s32 *pUnHoldThreshold, s32 *pHoldThreshold);
411 
428 s32 sceCtrlSetIdleCancelThreshold(s32 unHoldThreshold, s32 holdThreshold);
429 
436 
444 s32 sceCtrlSetSuspendingExtraSamples(s16 suspendSamples);
445 
460 s32 sceCtrl_driver_E467BEC8(u8 externalPort, SceCtrlInputDataTransferHandler *transferHandler, void *inputSource);
461 
483 
541 
574 
606 
622 
638 
656 s32 sceCtrlPeekBufferPositive2(u32 port, SceCtrlData2 *pData, u8 nBufs);
657 
675 s32 sceCtrlPeekBufferNegative2(u32 port, SceCtrlData2 *pData, u8 nBufs);
676 
694 s32 sceCtrlReadBufferPositive2(u32 port, SceCtrlData2 *pData, u8 nBufs);
695 
713 s32 sceCtrlReadBufferNegative2(u32 port, SceCtrlData2 *pData, u8 nBufs);
714 
723 
763 s32 sceCtrlSetRapidFire(u8 slot, u32 uiMask, u32 uiTrigger, u32 uiTarget, u8 uiDelay,
764  u8 uiMake, u8 uiBreak);
765 
777 s32 sceCtrlSetAnalogEmulation(u8 slot, u8 aX, u8 aY, u32 uiMake);
778 
794 s32 sceCtrlSetButtonEmulation(u8 slot, u32 userButtons, u32 kernelButtons, u32 uiMake);
795 
803 u32 sceCtrlGetButtonIntercept(u32 buttons);
804 
825 u32 sceCtrlSetButtonIntercept(u32 buttons, u32 buttonMaskMode);
826 
838 s32 sceCtrlSetSpecialButtonCallback(u32 slot, u32 buttonMask, SceKernelButtonCallbackFunction callback, void *opt);
839 
848 
857 
864 
865 #endif /* CTRL_H */
866 
u32 sceCtrl_driver_5886194C(s8 arg1)
SceCtrlPadPollMode
Definition: ctrl.h:233
SceCtrlPort
Definition: ctrl.h:241
void(* SceKernelButtonCallbackFunction)(u32 curButtons, u32 lastButtons, void *opt)
Definition: ctrl.h:16
s32 sceCtrlPeekBufferNegative2(u32 port, SceCtrlData2 *pData, u8 nBufs)
Retrieves controller state data by polling (negative logic) with support for wireless controllers.
u32 sceCtrl_driver_6C86AF22(s32 arg1)
s32 sceCtrlPeekLatch(SceCtrlLatch *pLatch)
Gets the latch data.
s32 sceCtrlReadLatch(SceCtrlLatch *pLatch)
Gets the latch data.
s32 sceCtrlPeekBufferPositive2(u32 port, SceCtrlData2 *pData, u8 nBufs)
Retrieves controller state data by polling (positive logic) with support for wireless controllers.
u32 sceCtrlSetIdleCancelKey(u32 resetButtonsMake, u32 resetButtonsPress, u32 resetButtonsMakeHoldMode, u32 resetButtonsPressHoldMode)
Specifies the buttons which, when being pressed, reset the idle timer.
u32 sceCtrlSetPollingMode(u8 pollMode)
s32 sceCtrlSetSpecialButtonCallback(u32 slot, u32 buttonMask, SceKernelButtonCallbackFunction callback, void *opt)
s32 sceCtrlPeekBufferPositive(SceCtrlData *pData, u8 nBufs)
Retrieves controller state data by polling (positive logic).
s32 sceCtrlInit(void)
s32 sceCtrlSetRapidFire(u8 slot, u32 uiMask, u32 uiTrigger, u32 uiTarget, u8 uiDelay, u8 uiMake, u8 uiBreak)
s32 sceCtrlReadBufferPositive2(u32 port, SceCtrlData2 *pData, u8 nBufs)
Retrieves controller state data by blocking (positive logic) with support for wireless controllers.
s32 sceCtrlResume(void)
SceCtrlPadButtons
Definition: ctrl.h:163
SceCtrlPadInputMode
Definition: ctrl.h:225
u32 sceCtrlGetSamplingMode(u8 *pMode)
s32 sceCtrlSetSamplingCycle(u32 cycle)
u32 sceCtrlSetButtonIntercept(u32 buttons, u32 buttonMaskMode)
s32 sceCtrlReadBufferNegative(SceCtrlData *pData, u8 nBufs)
Retrieves controller state data by blocking (negative logic).
u32 sceCtrlGetSamplingCycle(u32 *pCycle)
SceCtrlPadButtonMaskMode
Definition: ctrl.h:251
s32 sceCtrlSuspend(void)
s32 sceCtrlSetButtonEmulation(u8 slot, u32 userButtons, u32 kernelButtons, u32 uiMake)
s32 sceCtrl_driver_E467BEC8(u8 externalPort, SceCtrlInputDataTransferHandler *transferHandler, void *inputSource)
s32 sceCtrlReadBufferNegative2(u32 port, SceCtrlData2 *pData, u8 nBufs)
Retrieves controller state data by blocking (negative logic) with support for wireless controllers.
s32 sceCtrlSetIdleCancelThreshold(s32 unHoldThreshold, s32 holdThreshold)
s32 sceCtrlPeekBufferNegative(SceCtrlData *pData, u8 nBufs)
Retrieves controller state data by polling (negative logic).
u32 sceCtrlGetButtonIntercept(u32 buttons)
u32 sceCtrlGetIdleCancelKey(u32 *pResetButtonsMake, u32 *pResetButtonsPress, u32 *pResetButtonsMakeHoldMode, u32 *pResetButtonsPressHoldMode)
s32 sceCtrlSetSuspendingExtraSamples(s16 suspendSamples)
s32 sceCtrlEnd(void)
s16 sceCtrlGetSuspendingExtraSamples(void)
u32 sceCtrlUpdateCableTypeReq(void)
s32 sceCtrlClearRapidFire(u8 slot)
s32 sceCtrlGetIdleCancelThreshold(s32 *pUnHoldThreshold, s32 *pHoldThreshold)
s32 sceCtrlSetSamplingMode(u8 mode)
s32 sceCtrlSetAnalogEmulation(u8 slot, u8 aX, u8 aY, u32 uiMake)
s32 sceCtrlReadBufferPositive(SceCtrlData *pData, u8 nBufs)
Retrieves controller state data by blocking (positive logic).
@ SCE_CTRL_POLL_INACTIVE
Definition: ctrl.h:235
@ SCE_CTRL_POLL_ACTIVE
Definition: ctrl.h:237
@ SCE_CTRL_LTRIGGER
Definition: ctrl.h:181
@ SCE_CTRL_REMOTE
Definition: ctrl.h:207
@ SCE_CTRL_INTERCEPTED
Definition: ctrl.h:201
@ SCE_CTRL_DOWN
Definition: ctrl.h:177
@ SCE_CTRL_R1TRIGGER
Definition: ctrl.h:187
@ SCE_CTRL_L3
Definition: ctrl.h:167
@ SCE_CTRL_HOLD
Definition: ctrl.h:203
@ SCE_CTRL_LEFT
Definition: ctrl.h:179
@ SCE_CTRL_R3
Definition: ctrl.h:169
@ SCE_CTRL_UP
Definition: ctrl.h:173
@ SCE_CTRL_VOLUP
Definition: ctrl.h:209
@ SCE_CTRL_WLAN_UP
Definition: ctrl.h:205
@ SCE_CTRL_CROSS
Definition: ctrl.h:193
@ SCE_CTRL_SCREEN
Definition: ctrl.h:213
@ SCE_CTRL_DISC
Definition: ctrl.h:217
@ SCE_CTRL_RIGHT
Definition: ctrl.h:175
@ SCE_CTRL_START
Definition: ctrl.h:171
@ SCE_CTRL_RTRIGGER
Definition: ctrl.h:183
@ SCE_CTRL_L1TRIGGER
Definition: ctrl.h:185
@ SCE_CTRL_TRIANGLE
Definition: ctrl.h:189
@ SCE_CTRL_CIRCLE
Definition: ctrl.h:191
@ SCE_CTRL_MS
Definition: ctrl.h:219
@ SCE_CTRL_SELECT
Definition: ctrl.h:165
@ SCE_CTRL_NOTE
Definition: ctrl.h:215
@ SCE_CTRL_VOLDOWN
Definition: ctrl.h:211
@ SCE_CTRL_SQUARE
Definition: ctrl.h:195
@ SCE_CTRL_INPUT_DIGITAL_ANALOG
Definition: ctrl.h:229
@ SCE_CTRL_INPUT_DIGITAL_ONLY
Definition: ctrl.h:227
@ SCE_CTRL_MASK_APPLY_BUTTONS
Definition: ctrl.h:264
@ SCE_CTRL_MASK_NO_MASK
Definition: ctrl.h:253
@ SCE_CTRL_MASK_IGNORE_BUTTONS
Definition: ctrl.h:259
Definition: ctrl.h:48
s32 GPadSenseB
Definition: ctrl.h:85
s32 AxisSenseA
Definition: ctrl.h:90
s32 TiltB
Definition: ctrl.h:99
u8 rX
Definition: ctrl.h:61
u8 aX
Definition: ctrl.h:57
s32 AxisSenseB
Definition: ctrl.h:95
u32 timeStamp
Definition: ctrl.h:53
s32 DPadSenseB
Definition: ctrl.h:75
u32 buttons
Definition: ctrl.h:55
u8 rY
Definition: ctrl.h:63
u8 aY
Definition: ctrl.h:59
s32 DPadSenseA
Definition: ctrl.h:70
s32 TiltA
Definition: ctrl.h:97
s32 GPadSenseA
Definition: ctrl.h:80
Definition: ctrl.h:22
u8 rY
Definition: ctrl.h:37
u32 timeStamp
Definition: ctrl.h:27
u8 aX
Definition: ctrl.h:31
u8 rX
Definition: ctrl.h:35
u32 buttons
Definition: ctrl.h:29
u8 aY
Definition: ctrl.h:33
Definition: ctrl.h:147
s32 unk1
Definition: ctrl.h:149
Definition: ctrl.h:133
u32 buttonRelease
Definition: ctrl.h:141
u32 buttonMake
Definition: ctrl.h:135
u32 buttonPress
Definition: ctrl.h:139
u32 buttonBreak
Definition: ctrl.h:137