vitasdk
Documentation of the vitasdk
intrmgr.h
Go to the documentation of this file.
1
6#ifndef _PSP2KERN_KERNEL_INTRMGR_H_
7#define _PSP2KERN_KERNEL_INTRMGR_H_
8
10#include <psp2kern/types.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef int (*SceKernelIntrHandler)(int unk, void *userCtx);
17typedef int (*SceKernelSubIntrHandler)(void *subintr_arg, void *register_arg, unsigned char intr_priority);
18
28typedef int (*SceKernelIntrHookHandler)(int intr_code, void *user_ctx, int intr_priority);
29
30typedef int (*SceKernelIntrOptHandlersCb1)(int intr_code, int subintr_code);
31typedef int (*SceKernelIntrOptHandlersCb2)(int intr_code, int subintr_code, void *arg);
32typedef int (*SceKernelIntrOptHandlersCb3)(int intr_code, int subintr_code, SceKernelSubIntrHandler handler, void *register_arg);
33
47
48typedef struct SceKernelIntrOptParam {
49 uint32_t size; // 0x14
50 uint32_t num;
52 uint32_t unk_C;
53 uint32_t unk_10;
56
57int ksceKernelRegisterIntrHandler(int intr_code, const char *name, int interrupt_type,
58 SceKernelIntrHandler handler, void *user_ctx, int priority, int target_cpu, SceKernelIntrOptParam *opt);
60
61int ksceKernelEnableIntr(int intr_code);
62int ksceKernelDisableIntr(int intr_code);
63
64int ksceKernelResumeIntr(int intr_code, int enabled);
65int ksceKernelSuspendIntr(int intr_code, int *enabled);
66
67int ksceKernelIsIntrPending(int intr_code);
68int ksceKernelClearIntrPending(int intr_code);
69int ksceKernelSetIntrPriority(int intr_code, int priority);
70int ksceKernelGetIntrPriority(int intr_code, int *priority);
71int ksceKernelSetIntrTarget(int intr_code, int cpu_target_list);
72int ksceKernelGetIntrTarget(int intr_code, int *cpu_target_list);
73int ksceKernelTriggerSGI(int intr_code, unsigned int target_list_filter, unsigned int cpu_target_list);
75int ksceKernelRegisterSubIntrHandler(int intr_code, int subintr_code, const char *name,
76 SceKernelSubIntrHandler handler, void *register_arg);
77int ksceKernelReleaseSubIntrHandler(int intr_code, int subintr_code);
78int ksceKernelTriggerSubIntr(int intr_code, int subintr_code, void *subintr_arg);
79int ksceKernelEnableSubIntr(int intr_code, int subintr_code);
80int ksceKernelDisableSubIntr(int intr_code, int subintr_code);
81
82int ksceKernelQueryIntrHandlerInfo(unsigned int intr_code, unsigned int a2, int a3);
83
84
85/* For backwards compatibility */
86
87#define ksceKernelMaskIntr(intr_code) ksceKernelDisableIntr(intr_code)
88#define ksceKernelSetIntrMasked(intr_code, masked) ksceKernelEnableIntr(intr_code)
89#define ksceKernelUnmaskIntr(intr_code) ksceKernelEnableIntr(intr_code)
90#define ksceKernelGetIntrMasked ksceKernelSuspendIntr
91
106int ksceKernelIsSubInterruptOccurred(int intr_code, int subintr_code);
107
131 SceKernelIntrHookHandler *old_handler);
132
144
160int ksceKernelResumeSubIntr(int intr_code, int subintr_code, int state);
161
179int ksceKernelSuspendSubIntr(int intr_code, int subintr_code, void *arg);
180
181#ifdef __cplusplus
182}
183#endif
184
185#endif /* _PSP2KERN_KERNEL_INTRMGR_H_ */
#define VITASDK_BUILD_ASSERT_EQ(__size__, __name__)
Definition build_utils.h:13
uint32_t unk_C
Definition intrmgr.h:52
int ksceKernelIsIntrPending(int intr_code)
SceKernelIntrOptHandlersCb1 * fptr4
Definition intrmgr.h:43
int(* SceKernelIntrHookHandler)(int intr_code, void *user_ctx, int intr_priority)
Primary interrupt-hook handler installed by ksceKernelRegisterIntrHookHandler.
Definition intrmgr.h:28
int ksceKernelClearIntrPending(int intr_code)
uint32_t size
Definition intrmgr.h:49
int ksceKernelSuspendIntr(int intr_code, int *enabled)
uint32_t size
Definition intrmgr.h:35
int ksceKernelResumeSubIntr(int intr_code, int subintr_code, int state)
Call a subinterrupt controller's resume operation.
SceKernelIntrOptHandlersCb1 * release_subintr_cb
Definition intrmgr.h:38
SceKernelIntrOptHandlersCb3 * pre_register_subintr_cb
Definition intrmgr.h:36
int ksceKernelQueryIntrHandlerInfo(unsigned int intr_code, unsigned int a2, int a3)
int ksceKernelRegisterIntrHookHandler(int intr_code, SceKernelIntrHookHandler new_handler, SceKernelIntrHookHandler *old_handler)
Replace a registered primary interrupt handler with a hook.
int ksceKernelRegisterIntrHandler(int intr_code, const char *name, int interrupt_type, SceKernelIntrHandler handler, void *user_ctx, int priority, int target_cpu, SceKernelIntrOptParam *opt)
int ksceKernelEnableIntr(int intr_code)
int ksceKernelGetIntrPriority(int intr_code, int *priority)
int(* SceKernelIntrOptHandlersCb3)(int intr_code, int subintr_code, SceKernelSubIntrHandler handler, void *register_arg)
Definition intrmgr.h:32
int ksceKernelSetIntrTarget(int intr_code, int cpu_target_list)
SceKernelIntrOptHandlersCb1 * fptr0
Definition intrmgr.h:39
int ksceKernelIsIntrAllowedInCurrentContext(int intr_code)
int(* SceKernelSubIntrHandler)(void *subintr_arg, void *register_arg, unsigned char intr_priority)
Definition intrmgr.h:17
SceKernelIntrOptHandlersCb2 * fptr3
Definition intrmgr.h:42
int ksceKernelRegisterSubIntrHandler(int intr_code, int subintr_code, const char *name, SceKernelSubIntrHandler handler, void *register_arg)
int ksceKernelTriggerSubIntr(int intr_code, int subintr_code, void *subintr_arg)
int(* SceKernelIntrOptHandlersCb2)(int intr_code, int subintr_code, void *arg)
Definition intrmgr.h:31
int ksceKernelReleaseSubIntrHandler(int intr_code, int subintr_code)
int ksceKernelDisableSubIntr(int intr_code, int subintr_code)
int(* SceKernelIntrOptHandlersCb1)(int intr_code, int subintr_code)
Definition intrmgr.h:30
uint32_t unk_10
Definition intrmgr.h:53
SceKernelIntrOptHandlers * handlers
Definition intrmgr.h:51
int ksceKernelDisableIntr(int intr_code)
int(* SceKernelIntrHandler)(int unk, void *userCtx)
Definition intrmgr.h:16
SceKernelIntrOptHandlersCb1 * disable_subintr_cb
Definition intrmgr.h:41
int ksceKernelResumeIntr(int intr_code, int enabled)
int ksceKernelSetIntrPriority(int intr_code, int priority)
int ksceKernelReleaseIntrHookHandler(int intr_code)
Remove an interrupt hook and restore the internally saved primary handler.
SceKernelIntrOptHandlersCb1 * fptr5
Definition intrmgr.h:44
int ksceKernelEnableSubIntr(int intr_code, int subintr_code)
int ksceKernelGetIntrTarget(int intr_code, int *cpu_target_list)
uint32_t num
Definition intrmgr.h:50
int ksceKernelTriggerSGI(int intr_code, unsigned int target_list_filter, unsigned int cpu_target_list)
int ksceKernelReleaseIntrHandler(int intr_code)
int ksceKernelIsSubInterruptOccurred(int intr_code, int subintr_code)
Query a subinterrupt controller's occurrence state.
int ksceKernelSuspendSubIntr(int intr_code, int subintr_code, void *arg)
Call a subinterrupt controller's suspend operation.
SceKernelIntrOptHandlersCb1 * enable_subintr_cb
Definition intrmgr.h:40
SceKernelIntrOptHandlersCb3 * post_register_subintr_cb
Definition intrmgr.h:37
Definition intrmgr.h:34
Definition intrmgr.h:48