Nugget
Loading...
Searching...
No Matches
Macros | Functions | Variables
handlers.c File Reference
#include "openbios/handlers/handlers.h"
#include <ctype.h>
#include <memory.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "common/hardware/pcsxhw.h"
#include "common/kernel/openbios.h"
#include "common/psxlibc/setjmp.h"
#include "common/psxlibc/stdio.h"
#include "common/syscalls/syscalls.h"
#include "openbios/card/card.h"
#include "openbios/cdrom/cdrom.h"
#include "openbios/cdrom/filesystem.h"
#include "openbios/cdrom/helpers.h"
#include "openbios/cdrom/statemachine.h"
#include "openbios/charset/sjis.h"
#include "openbios/fileio/fileio.h"
#include "openbios/gpu/gpu.h"
#include "openbios/kernel/alloc.h"
#include "openbios/kernel/events.h"
#include "openbios/kernel/flushcache.h"
#include "openbios/kernel/globals.h"
#include "openbios/kernel/handlers.h"
#include "openbios/kernel/libcmisc.h"
#include "openbios/kernel/misc.h"
#include "openbios/kernel/psxexe.h"
#include "openbios/kernel/setjmp.h"
#include "openbios/kernel/threads.h"
#include "openbios/main/main.h"
#include "openbios/patches/patches.h"
#include "openbios/sio0/card.h"
#include "openbios/sio0/pad.h"
#include "openbios/sio0/sio0.h"
#include "openbios/tty/tty.h"
#include "osdebug.h"
Include dependency graph for handlers.c:

Macros

#define EXCEPTION_STACK_SIZE   0x800
 

Functions

void unimplementedThunk () __attribute__((long_call))
 
void breakVector ()
 
void exceptionVector ()
 
void exceptionHandler ()
 
void A0Vector ()
 
void B0Vector ()
 
void C0Vector ()
 
void OBHandler ()
 
void installKernelHandlers ()
 
void unimplemented (uint32_t table, uint32_t call, uint32_t ra)
 
void copyDataAndInitializeBSS ()
 
void copyA0table ()
 

Variables

voidg_exceptionStackPtr = s_exceptionStack + EXCEPTION_STACK_SIZE
 
struct JmpBufg_exceptionJmpBufPtr = NULL
 
void__ramA0table [0xc0]
 
voidB0table [0x60]
 
voidC0table [0x20]
 
struct BuildId __build_id
 
voidOBtable []
 
uint32_t __data_start
 
uint32_t __rom_data_start
 
uint32_t __data_len
 
uint32_t __bss_start
 
uint32_t __bss_len
 

Macro Definition Documentation

◆ EXCEPTION_STACK_SIZE

#define EXCEPTION_STACK_SIZE   0x800

Function Documentation

◆ A0Vector()

void A0Vector ( )

◆ B0Vector()

void B0Vector ( )

◆ breakVector()

void breakVector ( )

◆ C0Vector()

void C0Vector ( )

◆ copyA0table()

void copyA0table ( )

◆ copyDataAndInitializeBSS()

void copyDataAndInitializeBSS ( )

◆ exceptionHandler()

void exceptionHandler ( )

◆ exceptionVector()

void exceptionVector ( )

◆ installKernelHandlers()

void installKernelHandlers ( )

◆ OBHandler()

void OBHandler ( )

◆ unimplemented()

void unimplemented ( uint32_t  table,
uint32_t  call,
uint32_t  ra 
)

◆ unimplementedThunk()

void unimplementedThunk ( )

Variable Documentation

◆ __bss_len

uint32_t __bss_len
extern

◆ __bss_start

uint32_t __bss_start
extern

◆ __build_id

struct BuildId __build_id
extern

◆ __data_len

uint32_t __data_len
extern

◆ __data_start

uint32_t __data_start
extern

◆ __ramA0table

void* __ramA0table[0xc0]
extern

◆ __rom_data_start

uint32_t __rom_data_start
extern

◆ B0table

void * B0table
Initial value:
= {
stopPad, initPadHighLevel, readPadHighLevel, returnFromException,
setDefaultExceptionJmpBuf, setExceptionJmpBuf, unimplementedThunk, unimplementedThunk,
unimplementedThunk, unimplementedThunk, getC0table, getB0table,
}
int psxwrite(int fd, void *buffer, int size)
Definition stdio.c:167
int psxgetchar()
Definition stdio.c:266
int removeDevice(const char *name)
Definition misc.c:95
int psxread(int fd, void *buffer, int size)
Definition stdio.c:133
struct DirEntry * firstFile(const char *filepath, struct DirEntry *entry)
Definition filesystem.c:34
int addDevice(struct Device *)
Definition misc.c:178
int isFileConsole(int fd)
Definition misc.c:172
int psxrename(const char *oldName, const char *newName)
Definition stdio.c:339
int format(const char *deviceName)
Definition filesystem.c:60
void psxputc(int c, int fd)
Definition stdio.c:246
char * psxgets(char *storage)
Definition stdio.c:277
int psxioctl(int fd, int cmd, int arg)
Definition stdio.c:216
void psxexit(int code)
Definition misc.c:166
void printInstalledDevices()
Definition misc.c:75
void psxputchar(int c)
Definition stdio.c:251
int psxgetc(int fd)
Definition stdio.c:240
int psxlseek(int fd, int offset, int whence)
Definition stdio.c:108
void psxputs(const char *str)
Definition stdio.c:320
struct DirEntry * nextFile(struct DirEntry *entry)
Definition filesystem.c:58
int psxerase(const char *path)
Definition stdio.c:390
int psxclose(int fd)
Definition stdio.c:201
int psxopen(const char *fname, int mode)
Definition stdio.c:70
void unimplementedThunk() __attribute__((long_call))
int closeEvent(uint32_t event)
Definition events.c:111
int testEvent(uint32_t event)
Definition events.c:131
int waitEvent(uint32_t event)
Definition events.c:140
uint32_t openEvent(uint32_t class, uint32_t spec, uint32_t mode, void(*handler)())
Definition events.c:69
int enableEvent(uint32_t event)
Definition events.c:99
int disableEvent(uint32_t event)
Definition events.c:105
int enableTimerIRQ(uint32_t timer)
int restartTimer(uint32_t timer)
int getTimer(uint32_t timer)
int initTimer(uint32_t timer, uint16_t target, uint16_t flags)
int disableTimerIRQ(uint32_t timer)
void kern_free(void *ptr)
void * kern_malloc(size_t size)
void undeliverEvent(uint32_t class, uint32_t spec)
void deliverEvent(uint32_t class, uint32_t spec)
int startPad()
int initPad(uint8_t *pad1Buffer, size_t pad1BufferSize, uint8_t *pad2Buffer, size_t pad2BufferSize)
int initPadHighLevel(uint32_t padType, uint32_t *buffer, int c, int d)
void stopPad()
uint32_t readPadHighLevel()
uint8_t waitCardStatus(int port)
int stopCard()
int mcGetLastDevice()
Definition driver.c:514
int mcWriteSector(int deviceId, int sector, uint8_t *buffer)
Definition driver.c:481
void mcAllowNewCard()
Definition driver.c:462
uint8_t getCardStatus(int port)
int startCard()
int initCard(int padStarted)
int mcReadSector(int deviceId, int sector, uint8_t *buffer)
Definition driver.c:464
int cardInfoInternal(int deviceId)
Definition driver.c:498
int setSIO0AutoAck(int value)
uint16_t Krom2Offset(uint32_t c_)
Definition sjis.c:48
const uint8_t * Krom2RawAdd(uint32_t c)
int openThread(uint32_t pc, uint32_t sp, uint32_t gp)
Definition threads.c:77
int closeThread(int threadId)
Definition threads.c:94
int changeThread(int threadId)
Definition threads.c:100

◆ C0table

void * C0table
Initial value:
= {
getFreeEvCBSlot, getFreeTCBslot, exceptionHandler, installExceptionHandler,
}
void setupFileIO(int installTTY)
Definition misc.c:51
void ioAbortWithMsg(const char *msg1, const char *msg2)
Definition misc.c:119
void installStdIo(int installTTY)
Definition stdio.c:49
void cdevscan()
Definition misc.c:160
int getDeviceStatus()
Definition misc.c:72
void setDeviceStatus(int deviceStatus)
Definition misc.c:73
void reopenStdio()
Definition stdio.c:40
void exceptionHandler()
int getFreeEvCBSlot(void)
Definition events.c:54
int enqueueSyscallHandler(int priority)
struct HandlerInfo * sysDeqIntRP(int priority, struct HandlerInfo *handler)
void setIrqAutoAck(uint32_t irq, int value)
int setTimerAutoAck(uint32_t timer, int value)
int enqueueRCntIrqs(int priority)
int enqueueIrqHandler(int priority)
int sysEnqIntRP(int priority, struct HandlerInfo *handler)
void kern_initheap(void *base, size_t size)
int getFreeTCBslot()
Definition threads.c:66

◆ g_exceptionJmpBufPtr

struct JmpBuf* g_exceptionJmpBufPtr = NULL

◆ g_exceptionStackPtr

void* g_exceptionStackPtr = s_exceptionStack + EXCEPTION_STACK_SIZE

◆ OBtable

void* OBtable[]
Initial value:
= {
getOpenBiosApiVersionImpl,
getOpenBiosBuildIdImpl,
}