From 1c9a036b870bdbde92ccba456a811163068349cd Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Mon, 13 Feb 2017 17:23:07 +0100 Subject: Add psp2kern/kernel/intrmgr.h --- include/kernel/kernel/intrmgr.h | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 include/kernel/kernel/intrmgr.h (limited to 'include/kernel') diff --git a/include/kernel/kernel/intrmgr.h b/include/kernel/kernel/intrmgr.h new file mode 100644 index 0000000..3c2b2c3 --- /dev/null +++ b/include/kernel/kernel/intrmgr.h @@ -0,0 +1,56 @@ +#ifndef _PSP2_KERNEL_INTRMGR_H_ +#define _PSP2_KERNEL_INTRMGR_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int (*intr_callback)(int code, int arg); + +typedef struct reg_intr_opt2 { + uint32_t size; // 0x28 + uint32_t unk_4; + uint32_t unk_8; + uint32_t unk_C; + intr_callback *fptr0; // function pointer + intr_callback *fptr1; // function pointer + intr_callback *fptr2; // function pointer + uint32_t unk_1C; + uint32_t unk_20; + uint32_t unk_24; +} reg_intr_opt2; + +typedef struct reg_intr_opt { + uint32_t size; // 0x14 + uint32_t num; + reg_intr_opt2 *opt2; + uint32_t unk_C; + uint32_t unk_10; +} reg_intr_opt; + +typedef int (*intr_callback_func)(int unk, void *userCtx); + +int sceKernelRegisterIntrHandler(int intr_code, const char *name, int interrupt_type, + intr_callback_func *func, void *userCtx, int priority, int targetcpu, reg_intr_opt *opt); + +int sceKernelReleaseIntrHandler(int intr_code); + +int sceKernelMaskIntr(int intr_code); +int sceKernelUnmaskIntr(int intr_code); +int sceKernelSetIntrMasked(int intr_code, int masked); +int sceKernelGetIntrMasked(int intr_code, int *masked); +int sceKernelIsIntrPending(int intr_code); +int sceKernelClearIntrPending(int intr_code); +int sceKernelSetIntrPriority(int intr_code, unsigned char priority); +int sceKernelSetIntrTarget(int intr_code, int cpu_target_list); +int sceKernelTriggerSGI(int intr_code, unsigned int target_list_filter, unsigned int cpu_target_list); +int sceKernelIsIntrAllowedInCurrentContext(int intr_code); + +#ifdef __cplusplus +} +#endif + +#endif /* _PSP2_KERNEL_INTRMGR_H_ */ + -- cgit v1.2.3 From 540dfc704449337d1e77cbeabc73dbab99f50090 Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Mon, 13 Feb 2017 17:29:59 +0100 Subject: psp2kern/kernel/intrmgr.h definitions renaming --- include/kernel/kernel/intrmgr.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'include/kernel') diff --git a/include/kernel/kernel/intrmgr.h b/include/kernel/kernel/intrmgr.h index 3c2b2c3..d9600ef 100644 --- a/include/kernel/kernel/intrmgr.h +++ b/include/kernel/kernel/intrmgr.h @@ -7,33 +7,33 @@ extern "C" { #endif -typedef int (*intr_callback)(int code, int arg); +typedef int (*SceKernelIntrOptParam2Callback)(int code, int arg); -typedef struct reg_intr_opt2 { +typedef struct SceKernelIntrOptParam2 { uint32_t size; // 0x28 uint32_t unk_4; uint32_t unk_8; uint32_t unk_C; - intr_callback *fptr0; // function pointer - intr_callback *fptr1; // function pointer - intr_callback *fptr2; // function pointer + SceKernelIntrOptParam2Callback *fptr0; // function pointer + SceKernelIntrOptParam2Callback *fptr1; // function pointer + SceKernelIntrOptParam2Callback *fptr2; // function pointer uint32_t unk_1C; uint32_t unk_20; uint32_t unk_24; -} reg_intr_opt2; +} SceKernelIntrOptParam2; -typedef struct reg_intr_opt { +typedef struct SceKernelIntrOptParam { uint32_t size; // 0x14 uint32_t num; - reg_intr_opt2 *opt2; + SceKernelIntrOptParam2 *opt2; uint32_t unk_C; uint32_t unk_10; -} reg_intr_opt; +} SceKernelIntrOptParam; -typedef int (*intr_callback_func)(int unk, void *userCtx); +typedef int (*SceKernelIntrHandler)(int unk, void *userCtx); int sceKernelRegisterIntrHandler(int intr_code, const char *name, int interrupt_type, - intr_callback_func *func, void *userCtx, int priority, int targetcpu, reg_intr_opt *opt); + SceKernelIntrHandler *func, void *userCtx, int priority, int targetcpu, SceKernelIntrOptParam *opt); int sceKernelReleaseIntrHandler(int intr_code); -- cgit v1.2.3 From 6a8cb878b000f5e5491a28275f890d4df3d29bc4 Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Mon, 13 Feb 2017 20:30:16 +0100 Subject: Add some intrmgr subintr NIDs --- include/kernel/kernel/intrmgr.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'include/kernel') diff --git a/include/kernel/kernel/intrmgr.h b/include/kernel/kernel/intrmgr.h index d9600ef..7f4d82e 100644 --- a/include/kernel/kernel/intrmgr.h +++ b/include/kernel/kernel/intrmgr.h @@ -31,12 +31,11 @@ typedef struct SceKernelIntrOptParam { } SceKernelIntrOptParam; typedef int (*SceKernelIntrHandler)(int unk, void *userCtx); +typedef int (*SceKernelSubIntrHandler)(void *arg, int unk0, int unk1); int sceKernelRegisterIntrHandler(int intr_code, const char *name, int interrupt_type, - SceKernelIntrHandler *func, void *userCtx, int priority, int targetcpu, SceKernelIntrOptParam *opt); - + SceKernelIntrHandler *handler, void *userCtx, int priority, int targetcpu, SceKernelIntrOptParam *opt); int sceKernelReleaseIntrHandler(int intr_code); - int sceKernelMaskIntr(int intr_code); int sceKernelUnmaskIntr(int intr_code); int sceKernelSetIntrMasked(int intr_code, int masked); @@ -47,6 +46,9 @@ int sceKernelSetIntrPriority(int intr_code, unsigned char priority); int sceKernelSetIntrTarget(int intr_code, int cpu_target_list); int sceKernelTriggerSGI(int intr_code, unsigned int target_list_filter, unsigned int cpu_target_list); int sceKernelIsIntrAllowedInCurrentContext(int intr_code); +int sceKernelRegisterSubIntrHandler(int intr_code, int subintr_code, const char *name, + SceKernelSubIntrHandler handler, void *register_arg); +int sceKernelTriggerSubIntr(int intr_code, int subintr_code, void *subintr_arg); #ifdef __cplusplus } -- cgit v1.2.3 From 7d6f35127f6566bb929ae2c84db883e4f6159f82 Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Mon, 13 Feb 2017 20:45:17 +0100 Subject: Add ksceKernelEnableSubIntr NID --- include/kernel/kernel/intrmgr.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include/kernel') diff --git a/include/kernel/kernel/intrmgr.h b/include/kernel/kernel/intrmgr.h index 7f4d82e..3c7f009 100644 --- a/include/kernel/kernel/intrmgr.h +++ b/include/kernel/kernel/intrmgr.h @@ -7,7 +7,7 @@ extern "C" { #endif -typedef int (*SceKernelIntrOptParam2Callback)(int code, int arg); +typedef int (*SceKernelIntrOptParam2Callback)(int intr_code, int subintr_code); typedef struct SceKernelIntrOptParam2 { uint32_t size; // 0x28 @@ -15,7 +15,7 @@ typedef struct SceKernelIntrOptParam2 { uint32_t unk_8; uint32_t unk_C; SceKernelIntrOptParam2Callback *fptr0; // function pointer - SceKernelIntrOptParam2Callback *fptr1; // function pointer + SceKernelIntrOptParam2Callback *enable_subinterrupt_cb; SceKernelIntrOptParam2Callback *fptr2; // function pointer uint32_t unk_1C; uint32_t unk_20; @@ -49,6 +49,7 @@ int sceKernelIsIntrAllowedInCurrentContext(int intr_code); int sceKernelRegisterSubIntrHandler(int intr_code, int subintr_code, const char *name, SceKernelSubIntrHandler handler, void *register_arg); int sceKernelTriggerSubIntr(int intr_code, int subintr_code, void *subintr_arg); +int sceKernelEnableSubIntr(int intr_code, int subintr_code); #ifdef __cplusplus } -- cgit v1.2.3 From 31e7100f5f978067b529ae6206b8de2eb38cbe85 Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Mon, 13 Feb 2017 21:16:13 +0100 Subject: Add ksceKernelDisableSubIntr NID --- include/kernel/kernel/intrmgr.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/kernel') diff --git a/include/kernel/kernel/intrmgr.h b/include/kernel/kernel/intrmgr.h index 3c7f009..ca11136 100644 --- a/include/kernel/kernel/intrmgr.h +++ b/include/kernel/kernel/intrmgr.h @@ -50,6 +50,7 @@ int sceKernelRegisterSubIntrHandler(int intr_code, int subintr_code, const char SceKernelSubIntrHandler handler, void *register_arg); int sceKernelTriggerSubIntr(int intr_code, int subintr_code, void *subintr_arg); int sceKernelEnableSubIntr(int intr_code, int subintr_code); +int sceKernelDisableSubIntr(int intr_code, int subintr_code); #ifdef __cplusplus } -- cgit v1.2.3