8#ifndef _PSP2KERN_KERNEL_DEBUG_H_
9#define _PSP2KERN_KERNEL_DEBUG_H_
178#ifndef __PSP2FILEHASH__
179#define __PSP2FILEHASH__ (0)
183#define __PSP2FILE__ __FILE__
187#define SCE_KERNEL_PANIC() do { \
188 static const SceKernelDebugInfo __dbginfo = {.fileHash = __PSP2FILEHASH__, .lineHash = 0, .funcHash = 0, .func = __FUNCTION__, .line = __LINE__, .file = __PSP2FILE__}; \
189 ksceKernelPanic(&__dbginfo, __builtin_return_address(0)); \
192#define SCE_KERNEL_PRINTF_PANIC(__fmt__, ...) do { \
193 static const SceKernelDebugInfo __dbginfo = {.fileHash = __PSP2FILEHASH__, .lineHash = 0, .funcHash = 0, .func = __FUNCTION__, .line = __LINE__, .file = __PSP2FILE__}; \
194 ksceKernelPrintfPanic(&__dbginfo, __builtin_return_address(0), __fmt__, ##__VA_ARGS__); \
197#define SCE_KERNEL_ASSERT(__cond__) do { \
198 static const SceKernelDebugInfo __dbginfo = {.fileHash = __PSP2FILEHASH__, .lineHash = 0, .funcHash = 0, .func = __FUNCTION__, .line = __LINE__, .file = __PSP2FILE__}; \
199 ksceKernelAssert(__cond__, &__dbginfo, __builtin_return_address(0)); \
202#define SCE_KERNEL_ASSERT_LEVEL(__level__, __cond__) do { \
203 static const SceKernelDebugInfo __dbginfo = {.fileHash = __PSP2FILEHASH__, .lineHash = 0, .funcHash = 0, .func = __FUNCTION__, .line = __LINE__, .file = __PSP2FILE__}; \
204 ksceKernelAssertLevel(__level__, __cond__, &__dbginfo, __builtin_return_address(0)); \
207#define SCE_KERNEL_PRINTF_LEVEL(__level__, __fmt__, ...) do { \
208 static const SceKernelDebugInfo __dbginfo = {.fileHash = __PSP2FILEHASH__, .lineHash = 0, .funcHash = 0, .func = __FUNCTION__, .line = __LINE__, .file = __PSP2FILE__}; \
209 ksceKernelPrintfLevelWithInfo(__level__, 0xF, &__dbginfo, __fmt__, ##__VA_ARGS__); \
314#define ksceDebugPrintf ksceKernelPrintf
315#define ksceDebugPrintf2 ksceKernelPrintfWithInfo
316#define ksceDebugPrintKernelPanic ksceKernelPanic
317#define ksceDebugPrintfKernelPanic ksceKernelVprintfPanic
318#define ksceDebugPrintKernelAssertion ksceKernelAssert
319#define ksceDebugPrintfKernelAssertion ksceKernelPrintfAssertLevel
320#define ksceKernelGetMinimumAssertionLevel ksceKernelGetAssertLevel
321#define ksceDebugPutchar ksceKernelDebugPutchar
322#define ksceDebugSetHandlers ksceKernelRegisterKprintfHandler
323#define ksceDebugRegisterPutcharHandler ksceKernelRegisterDebugPutcharHandler
324#define ksceDebugGetPutcharHandler ksceKernelGetDebugPutcharHandler
325#define ksceDebugDisableInfoDump ksceKernelEnableCrashDump
326#define ksceKernelSetMinimumAssertionLevel ksceKernelSetAssertLevel
#define VITASDK_BUILD_ASSERT_EQ(__size__, __name__)
Definition build_utils.h:13
SceUInt32 funcHash
Definition debug.h:25
int data_0x40
Definition debug.h:246
int ksceKernelGetAssertLevel(void)
Get current minimum assertion level.
int ksceKernelEnableCrashDump(SceBool enable)
Set CrashDump enable.
void * ksceKernelGetDebugPutcharHandler(void)
SceKernelDebugEventLog3 type3
Definition debug.h:285
SceUInt32 ksceKernelSetAssertLevel(SceUInt32 level)
Get current assert level.
char ip1[0x10]
Definition debug.h:263
SceKernelAssertLevel
Definition debug.h:55
SceSize item_size
Event data size.
Definition debug.h:281
int data_0x40
0?
Definition debug.h:262
SceUID ppid
Parent process id.
Definition debug.h:276
SceUInt64 time
Time of the event occurred.
Definition debug.h:279
char ip5[0x10]
Definition debug.h:267
SceUID pid
Definition debug.h:247
int data_0x40
0 or 0x80412118?
Definition debug.h:256
const char * file
Definition debug.h:35
int ksceKernelVprintf(const char *fmt, va_list arg)
Kernel Vprintf.
int rsvd[4]
Definition debug.h:278
int ksceKernelRegisterKprintfHandler(int(*handler)(int unk, const char *format, va_list args), void *argp)
int ksceKernelGetTtyInfo(char *buf, SceSize buf_size)
Get tty log info.
SceUInt32 hex_value0_lo
Definition debug.h:29
char ip4[0x10]
Definition debug.h:266
char ip2[0x10]
Definition debug.h:264
char ip3[0x10]
Definition debug.h:265
int data_0x04
0xA, maybe titleid size
Definition debug.h:273
int ksceKernelRegisterDebugPutcharHandler(int(*handler)(void *argp, char c), void *argp)
SceUInt32 line
Definition debug.h:34
int ksceKernelDebugPutchar(int character)
SceUInt32 hex_value0_hi
Definition debug.h:28
SceUInt32 lineHash
Definition debug.h:24
int data_0x4C
0xA
Definition debug.h:249
SceSize size
struct size(variable size)
Definition debug.h:272
__attribute__((__noreturn__)) void ksceKernelPanic(const SceKernelDebugInfo *dbginfo
Kernel Panic.
int ksceKernelPrintfLevelWithInfo(SceUInt32 level, SceUInt32 flags, const SceKernelDebugInfo *dbginfo, const char *fmt,...)
Kernel Printf Level with Info.
SceUInt32 fileHash
Definition debug.h:23
SceKernelDebugEventLog1 type1
Definition debug.h:283
SceKernelDebugInfo SceKernelDebugMessageContext
Definition debug.h:39
void ksceKernelPrintfAssertLevel(SceUInt32 level, SceBool condition, const SceKernelDebugInfo *dbginfo, const void *lr, const char *fmt,...)
Printf Assertion Level.
const char * func
Definition debug.h:33
SceKernelDebugEventLog2 type2
Definition debug.h:284
int budget_type
Definition debug.h:248
const void const char void ksceKernelAssert(SceBool condition, const SceKernelDebugInfo *dbginfo, const void *lr)
Assertion.
int data_0x38
Definition debug.h:280
SceKernelDebugInfoFlags
Definition debug.h:41
char titleid[0xC]
Definition debug.h:250
int flags
Event flags.
Definition debug.h:3
SceKernelDebugLevel
Definition debug.h:49
int flags
Event flags.
Definition debug.h:275
int ksceKernelPrintf(const char *fmt,...)
Print log.
char titleid[0xC]
Title id of the process where the event occurred.
Definition debug.h:274
const void * lr
Definition debug.h:130
SceUID data_0x1C
Thread id?
Definition debug.h:277
void ksceKernelAssertLevel(SceUInt32 level, SceBool condition, const SceKernelDebugInfo *dbginfo, const void *lr)
Printf Assertion Level.
SceUInt32 hex_value1
Definition debug.h:30
int ksceEventLogGetInfo(void *buf, SceSize buf_size, SceSize *read_blocks)
Get event log info.
int ksceKernelVprintfLevel(SceUInt32 level, const char *fmt, va_list arg)
Kernel Vprintf Level.
int ksceKernelPrintfWithInfo(SceUInt32 flags, const SceKernelDebugInfo *dbginfo, const char *fmt,...)
Kernel Printf with Info.
int ksceKernelPrintfLevel(SceUInt32 level, const char *fmt,...)
Kernel Printf.
const void const char * fmt
Definition debug.h:139
@ SCE_KERNEL_ASSERT_LEVEL_2
Definition debug.h:58
@ SCE_KERNEL_ASSERT_LEVEL_1
Definition debug.h:57
@ SCE_KERNEL_ASSERT_LEVEL_0
Definition debug.h:56
@ SCE_KERNEL_DEBUG_INFO_FLAG_NONE
Definition debug.h:42
@ SCE_KERNEL_DEBUG_INFO_FLAG_FUNC
Definition debug.h:44
@ SCE_KERNEL_DEBUG_INFO_FLAG_FILE
Definition debug.h:46
@ SCE_KERNEL_DEBUG_INFO_FLAG_LINE
Definition debug.h:45
@ SCE_KERNEL_DEBUG_INFO_FLAG_CORE
Definition debug.h:43
@ SCE_KERNEL_DEBUG_LEVEL_TRACE
Definition debug.h:52
@ SCE_KERNEL_DEBUG_LEVEL_DEBUG
Definition debug.h:51
@ SCE_KERNEL_DEBUG_LEVEL_ALWAYS
Definition debug.h:50
int SceBool
Definition types.h:59
unsigned int SceSize
Definition types.h:56
int SceUID
UIDs are used to describe many different kernel objects.
Definition types.h:90
uint64_t SceUInt64
Definition types.h:51
uint32_t SceUInt32
Definition types.h:45