This commit is contained in:
Lectem 2015-06-27 13:04:34 +00:00
commit 542e805403

View File

@ -4,6 +4,8 @@
#pragma once #pragma once
#include "types.h"
typedef enum { typedef enum {
MEMOP_FREE =1, // Free heap MEMOP_FREE =1, // Free heap
MEMOP_ALLOC=3, // Allocate heap MEMOP_ALLOC=3, // Allocate heap
@ -26,7 +28,8 @@ typedef enum {
MEMSTATE_ALIASED = 8, MEMSTATE_ALIASED = 8,
MEMSTATE_ALIAS = 9, MEMSTATE_ALIAS = 9,
MEMSTATE_ALIASCODE = 10, MEMSTATE_ALIASCODE = 10,
MEMSTATE_LOCKED = 11 MEMSTATE_LOCKED = 11,
MEMSTATE_MAX = 0xFFFFFFFF // force 4-byte
} MemState; } MemState;
typedef enum { typedef enum {
@ -40,8 +43,8 @@ typedef enum {
typedef struct { typedef struct {
u32 base_addr; u32 base_addr;
u32 size; u32 size;
u32 perm; MemPerm perm : 32;
u32 state; MemState state : 32;
} MemInfo; } MemInfo;
typedef struct { typedef struct {
@ -56,34 +59,30 @@ typedef enum {
ARBITER_KERNEL4 =4, ARBITER_KERNEL4 =4,
} ArbitrationType; } ArbitrationType;
typedef enum {
DBG_EVENT_PROCESS = 0,
DBG_EVENT_CREATE_THREAD = 1,
DBG_EVENT_EXIT_THREAD = 2,
DBG_EVENT_EXIT_PROCESS = 3,
DBG_EVENT_EXCEPTION = 4,
DBG_EVENT_DLL_LOAD = 5,
DBG_EVENT_DLL_UNLOAD = 6,
DBG_EVENT_SCHEDULE_IN = 7,
DBG_EVENT_SCHEDULE_OUT = 8,
DBG_EVENT_SYSCALL_IN = 9,
DBG_EVENT_SYSCALL_OUT = 10,
DBG_EVENT_OUTPUT_STRING = 11,
DBG_EVENT_MAP = 12
} DebugEventType;
typedef enum { typedef enum {
REASON_CREATE = 1, REASON_CREATE = 1,
REASON_ATTACH = 2 REASON_ATTACH = 2,
REASON_MAX = 0xFFFFFFFF // force 4-byte
} ProcessEventReason; } ProcessEventReason;
typedef struct { typedef struct {
u64 program_id; u64 program_id;
u8 process_name[8]; u8 process_name[8];
u32 process_id; u32 process_id;
u32 reason; ProcessEventReason reason : 32;
} ProcessEvent; } ProcessEvent;
typedef enum {
EXITPROCESS_EVENT_NONE = 0,
EXITPROCESS_EVENT_TERMINATE = 1,
EXITPROCESS_EVENT_UNHANDLED_EXCEPTION = 2,
EXITPROCESS_EVENT_MAX = 0xFFFFFFFF
} ExitProcessEventReason;
typedef struct {
ExitProcessEventReason reason : 32;
} ExitProcessEvent;
typedef struct { typedef struct {
u32 creator_thread_id; u32 creator_thread_id;
u32 base_addr; u32 base_addr;
@ -94,29 +93,14 @@ typedef enum {
EXITTHREAD_EVENT_NONE = 0, EXITTHREAD_EVENT_NONE = 0,
EXITTHREAD_EVENT_TERMINATE = 1, EXITTHREAD_EVENT_TERMINATE = 1,
EXITTHREAD_EVENT_UNHANDLED_EXC = 2, EXITTHREAD_EVENT_UNHANDLED_EXC = 2,
EXITTHREAD_EVENT_TERMINATE_PROCESS = 3 EXITTHREAD_EVENT_TERMINATE_PROCESS = 3,
EXITTHREAD_EVENT_MAX = 0xFFFFFFFF
} ExitThreadEventReason; } ExitThreadEventReason;
typedef enum {
EXITPROCESS_EVENT_NONE = 0,
EXITPROCESS_EVENT_TERMINATE = 1,
EXITPROCESS_EVENT_UNHANDLED_EXCEPTION = 2
} ExitProcessEventReason;
typedef struct { typedef struct {
u32 reason; ExitThreadEventReason reason : 32;
} ExitProcessEvent;
typedef struct {
u32 reason;
} ExitThreadEvent; } ExitThreadEvent;
typedef struct {
u32 type;
u32 address;
u32 argument;
} ExceptionEvent;
typedef enum { typedef enum {
EXC_EVENT_UNDEFINED_INSTRUCTION = 0, // arg: (None) EXC_EVENT_UNDEFINED_INSTRUCTION = 0, // arg: (None)
EXC_EVENT_UNKNOWN1 = 1, // arg: (None) EXC_EVENT_UNKNOWN1 = 1, // arg: (None)
@ -126,7 +110,8 @@ typedef enum {
EXC_EVENT_BREAKPOINT = 5, // arg: (None) EXC_EVENT_BREAKPOINT = 5, // arg: (None)
EXC_EVENT_USER_BREAK = 6, // arg: user break type EXC_EVENT_USER_BREAK = 6, // arg: user break type
EXC_EVENT_DEBUGGER_BREAK = 7, // arg: (None) EXC_EVENT_DEBUGGER_BREAK = 7, // arg: (None)
EXC_EVENT_UNDEFINED_SYSCALL = 8 // arg: attempted syscall EXC_EVENT_UNDEFINED_SYSCALL = 8, // arg: attempted syscall
EXC_EVENT_MAX = 0xFFFFFFFF // force 4-bytes
} ExceptionEventType; } ExceptionEventType;
typedef enum { typedef enum {
@ -135,6 +120,12 @@ typedef enum {
USERBREAK_USER = 2 USERBREAK_USER = 2
} UserBreakType; } UserBreakType;
typedef struct {
ExceptionEventType type : 32;
u32 address;
u32 argument;
} ExceptionEvent;
/** /**
* Type of the query for svcGetThreadInfo * Type of the query for svcGetThreadInfo
*/ */
@ -159,12 +150,29 @@ typedef struct {
typedef struct { typedef struct {
u32 mapped_addr; u32 mapped_addr;
u32 mapped_size; u32 mapped_size;
u32 memperm; MemPerm memperm : 32;
u32 memstate; MemState memstate : 32;
} MapEvent; } MapEvent;
typedef enum {
DBG_EVENT_PROCESS = 0,
DBG_EVENT_CREATE_THREAD = 1,
DBG_EVENT_EXIT_THREAD = 2,
DBG_EVENT_EXIT_PROCESS = 3,
DBG_EVENT_EXCEPTION = 4,
DBG_EVENT_DLL_LOAD = 5,
DBG_EVENT_DLL_UNLOAD = 6,
DBG_EVENT_SCHEDULE_IN = 7,
DBG_EVENT_SCHEDULE_OUT = 8,
DBG_EVENT_SYSCALL_IN = 9,
DBG_EVENT_SYSCALL_OUT = 10,
DBG_EVENT_OUTPUT_STRING = 11,
DBG_EVENT_MAP = 12,
BDG_MAX = 0xFFFFFFFF // force 4-byte
} DebugEventType;
typedef struct { typedef struct {
u32 type; DebugEventType type : 32;
u32 thread_id; u32 thread_id;
u32 unknown[2]; u32 unknown[2];
union { union {