RetroArch
Classes | Macros | Typedefs | Functions | Variables
exception_handler.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <wiiu/os.h>
#include "wiiu_dbg.h"
#include "exception_handler.h"
#include "version.h"
Include dependency graph for exception_handler.c:

Classes

struct  _framerec
 

Macros

#define NUM_STACK_TRACE_LINES   5
 
#define TEXT_START   (unsigned int)&__code_start
 
#define TEXT_END   (unsigned int)&__code_end
 
#define dsisr   __unknown[0]
 
#define dar   __unknown[1]
 
#define DSISR_TRANSLATION_MISS   0x40000000
 
#define DSISR_TRANSLATION_PROT   0x8000000
 
#define DSISR_BAD_CACHING   0x4000000
 
#define DSISR_WRITE_ATTEMPTED   0x2000000
 
#define DSISR_DABR_MATCH   0x400000
 
#define SRR1_ISI_TRANSLATION_MISS   0x40000000
 
#define SRR1_ISI_TRANSLATION_PROT   0x8000000
 
#define SRR1_PROG_IEEE_FLOAT   0x100000
 
#define SRR1_PROG_BAD_INSTR   0x80000
 
#define SRR1_PROG_PRIV_INSTR   0x40000
 
#define SRR1_PROG_TRAP   0x20000
 
#define SRR1_PROG_SRR0_INACCURATE   0x10000
 
#define buf_add(...)   wiiu_exception_handler_pos += sprintf(exception_msgbuf + wiiu_exception_handler_pos, __VA_ARGS__)
 

Typedefs

typedef struct _framerec frame_rec
 
typedef struct _framerecframe_rec_t
 

Functions

void test_os_exceptions (void)
 
void exception_print_symbol (uint32_t addr)
 
void __attribute__ ((__noreturn__))
 
void setup_os_exceptions (void)
 

Variables

unsigned int __code_start
 
unsigned int __code_end
 
size_t wiiu_exception_handler_pos = 0
 
char * exception_msgbuf
 

Macro Definition Documentation

◆ buf_add

#define buf_add (   ...)    wiiu_exception_handler_pos += sprintf(exception_msgbuf + wiiu_exception_handler_pos, __VA_ARGS__)

◆ dar

#define dar   __unknown[1]

◆ dsisr

#define dsisr   __unknown[0]

◆ DSISR_BAD_CACHING

#define DSISR_BAD_CACHING   0x4000000

◆ DSISR_DABR_MATCH

#define DSISR_DABR_MATCH   0x400000

◆ DSISR_TRANSLATION_MISS

#define DSISR_TRANSLATION_MISS   0x40000000

◆ DSISR_TRANSLATION_PROT

#define DSISR_TRANSLATION_PROT   0x8000000

◆ DSISR_WRITE_ATTEMPTED

#define DSISR_WRITE_ATTEMPTED   0x2000000

◆ NUM_STACK_TRACE_LINES

#define NUM_STACK_TRACE_LINES   5

◆ SRR1_ISI_TRANSLATION_MISS

#define SRR1_ISI_TRANSLATION_MISS   0x40000000

◆ SRR1_ISI_TRANSLATION_PROT

#define SRR1_ISI_TRANSLATION_PROT   0x8000000

◆ SRR1_PROG_BAD_INSTR

#define SRR1_PROG_BAD_INSTR   0x80000

◆ SRR1_PROG_IEEE_FLOAT

#define SRR1_PROG_IEEE_FLOAT   0x100000

◆ SRR1_PROG_PRIV_INSTR

#define SRR1_PROG_PRIV_INSTR   0x40000

◆ SRR1_PROG_SRR0_INACCURATE

#define SRR1_PROG_SRR0_INACCURATE   0x10000

◆ SRR1_PROG_TRAP

#define SRR1_PROG_TRAP   0x20000

◆ TEXT_END

#define TEXT_END   (unsigned int)&__code_end

◆ TEXT_START

#define TEXT_START   (unsigned int)&__code_start

Typedef Documentation

◆ frame_rec

typedef struct _framerec frame_rec

◆ frame_rec_t

typedef struct _framerec * frame_rec_t

Function Documentation

◆ __attribute__()

void __attribute__ ( (__noreturn__)  )
Here is the call graph for this function:

◆ exception_print_symbol()

void exception_print_symbol ( uint32_t  addr)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_os_exceptions()

void setup_os_exceptions ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_os_exceptions()

void test_os_exceptions ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ __code_end

unsigned int __code_end

◆ __code_start

unsigned int __code_start

◆ exception_msgbuf

char* exception_msgbuf

◆ wiiu_exception_handler_pos

size_t wiiu_exception_handler_pos = 0