SSBM Decomp
Loading...
Searching...
No Matches
GXFifo.c File Reference
#include <macros.h>
#include <stddef.h>
#include "__gx.h"
#include <dolphin/base/PPCArch.h>
#include <dolphin/gx.h>
#include <dolphin/os.h>

Macros

#define SOME_MACRO1(fifo)
#define SOME_MACRO2(fifo)
#define SET_REG_FIELD2(line, reg, mask, val)

Functions

static void __GXFifoReadEnable (void)
static void __GXFifoReadDisable (void)
static void __GXFifoLink (u8 arg0)
static void __GXWriteFifoIntEnable (u8 arg0, u8 arg1)
static void __GXWriteFifoIntReset (u8 arg0, u8 arg1)
static void GXOverflowHandler (s16 interrupt, OSContext *context)
static void GXUnderflowHandler (s16 interrupt, OSContext *context)
static void GXBreakPointHandler (s16 interrupt, OSContext *context)
static void GXCPInterruptHandler (s16 interrupt, OSContext *context)
void GXInitFifoBase (GXFifoObj *fifo, void *base, u32 size)
void GXInitFifoPtrs (GXFifoObj *fifo, void *readPtr, void *writePtr)
void GXInitFifoLimits (GXFifoObj *fifo, u32 hiWatermark, u32 loWatermark)
void GXSetCPUFifo (GXFifoObj *fifo)
void GXSetGPFifo (GXFifoObj *fifo)
void GXSaveCPUFifo (GXFifoObj *fifo)
void __GXSaveCPUFifoAux (struct __GXFifoObj *realFifo)
void GXSaveGPFifo (GXFifoObj *fifo)
void GXGetGPStatus (GXBool *overhi, GXBool *underlow, GXBool *readIdle, GXBool *cmdIdle, GXBool *brkpt)
void GXGetFifoStatus (GXFifoObj *fifo, GXBool *overhi, GXBool *underflow, u32 *fifoCount, GXBool *cpuWrite, GXBool *gpRead, GXBool *fifowrap)
void GXGetFifoPtrs (GXFifoObj *fifo, void **readPtr, void **writePtr)
void * GXGetFifoBase (GXFifoObj *fifo)
u32 GXGetFifoSize (GXFifoObj *fifo)
void GXGetFifoLimits (GXFifoObj *fifo, u32 *hi, u32 *lo)
GXBreakPtCallback GXSetBreakPtCallback (GXBreakPtCallback cb)
void GXEnableBreakPt (void *break_pt)
void GXDisableBreakPt (void)
void __GXFifoInit (void)
void __GXInsaneWatermark (void)
void __GXCleanGPFifo (void)
OSThreadGXSetCurrentGXThread (void)
OSThreadGXGetCurrentGXThread (void)
GXFifoObjGXGetCPUFifo (void)
GXFifoObjGXGetGPFifo (void)
u32 GXGetOverflowCount (void)
u32 GXResetOverflowCount (void)
volatile void * GXRedirectWriteGatherPipe (void *ptr)
void GXRestoreWriteGatherPipe (void)

Variables

static struct __GXFifoObjCPUFifo
static struct __GXFifoObjGPFifo
static OSThread__GXCurrentThread
static GXBool CPGPLinked
static BOOL GXOverflowSuspendInProgress
static GXBreakPtCallback BreakPointCB
static u32 __GXOverflowCount
void * __GXCurrentBP

Macro Definition Documentation

◆ SOME_MACRO1

#define SOME_MACRO1 ( fifo)
Value:
do { \
u32 temp = __cpReg[29] << 16; \
temp |= __cpReg[28]; \
fifo->rdPtr = OSPhysicalToCached(temp); \
} while (0)
u16 * __cpReg
Definition GXInit.c:15
unsigned int u32
Definition types.h:13
#define OSPhysicalToCached(paddr)
Definition os.h:191

◆ SOME_MACRO2

#define SOME_MACRO2 ( fifo)
Value:
do { \
u32 temp = __cpReg[25] << 16; \
temp |= __cpReg[24]; \
fifo->count = temp; \
} while (0)

◆ SET_REG_FIELD2

#define SET_REG_FIELD2 ( line,
reg,
mask,
val )
Value:
do { \
ASSERTMSGLINE(line, ((val) & ~(mask)) == 0, \
"GX Internal: Register field out of range"); \
(reg) = ((u32) (reg) & ~(mask)) | ((u32) (val)); \
} while (0)
int mask
Definition state.c:130

Function Documentation

◆ __GXFifoReadEnable()

void __GXFifoReadEnable ( void )
static

◆ __GXFifoReadDisable()

void __GXFifoReadDisable ( void )
static

◆ __GXFifoLink()

void __GXFifoLink ( u8 arg0)
static

◆ __GXWriteFifoIntEnable()

void __GXWriteFifoIntEnable ( u8 arg0,
u8 arg1 )
static

◆ __GXWriteFifoIntReset()

void __GXWriteFifoIntReset ( u8 arg0,
u8 arg1 )
static

◆ GXOverflowHandler()

void GXOverflowHandler ( s16 interrupt,
OSContext * context )
static

◆ GXUnderflowHandler()

void GXUnderflowHandler ( s16 interrupt,
OSContext * context )
static

◆ GXBreakPointHandler()

void GXBreakPointHandler ( s16 interrupt,
OSContext * context )
static

◆ GXCPInterruptHandler()

void GXCPInterruptHandler ( s16 interrupt,
OSContext * context )
static

◆ GXInitFifoBase()

void GXInitFifoBase ( GXFifoObj * fifo,
void * base,
u32 size )

◆ GXInitFifoPtrs()

void GXInitFifoPtrs ( GXFifoObj * fifo,
void * readPtr,
void * writePtr )

◆ GXInitFifoLimits()

void GXInitFifoLimits ( GXFifoObj * fifo,
u32 hiWatermark,
u32 loWatermark )

◆ GXSetCPUFifo()

void GXSetCPUFifo ( GXFifoObj * fifo)

◆ GXSetGPFifo()

void GXSetGPFifo ( GXFifoObj * fifo)

◆ GXSaveCPUFifo()

void GXSaveCPUFifo ( GXFifoObj * fifo)

◆ __GXSaveCPUFifoAux()

void __GXSaveCPUFifoAux ( struct __GXFifoObj * realFifo)

◆ GXSaveGPFifo()

void GXSaveGPFifo ( GXFifoObj * fifo)

◆ GXGetGPStatus()

void GXGetGPStatus ( GXBool * overhi,
GXBool * underlow,
GXBool * readIdle,
GXBool * cmdIdle,
GXBool * brkpt )

◆ GXGetFifoStatus()

void GXGetFifoStatus ( GXFifoObj * fifo,
GXBool * overhi,
GXBool * underflow,
u32 * fifoCount,
GXBool * cpuWrite,
GXBool * gpRead,
GXBool * fifowrap )

◆ GXGetFifoPtrs()

void GXGetFifoPtrs ( GXFifoObj * fifo,
void ** readPtr,
void ** writePtr )

◆ GXGetFifoBase()

void * GXGetFifoBase ( GXFifoObj * fifo)

◆ GXGetFifoSize()

u32 GXGetFifoSize ( GXFifoObj * fifo)

◆ GXGetFifoLimits()

void GXGetFifoLimits ( GXFifoObj * fifo,
u32 * hi,
u32 * lo )

◆ GXSetBreakPtCallback()

GXBreakPtCallback GXSetBreakPtCallback ( GXBreakPtCallback cb)

◆ GXEnableBreakPt()

void GXEnableBreakPt ( void * break_pt)

◆ GXDisableBreakPt()

void GXDisableBreakPt ( void )

◆ __GXFifoInit()

void __GXFifoInit ( void )

◆ __GXInsaneWatermark()

void __GXInsaneWatermark ( void )

◆ __GXCleanGPFifo()

void __GXCleanGPFifo ( void )

◆ GXSetCurrentGXThread()

OSThread * GXSetCurrentGXThread ( void )

◆ GXGetCurrentGXThread()

OSThread * GXGetCurrentGXThread ( void )

◆ GXGetCPUFifo()

GXFifoObj * GXGetCPUFifo ( void )

◆ GXGetGPFifo()

GXFifoObj * GXGetGPFifo ( void )

◆ GXGetOverflowCount()

u32 GXGetOverflowCount ( void )

◆ GXResetOverflowCount()

u32 GXResetOverflowCount ( void )

◆ GXRedirectWriteGatherPipe()

volatile void * GXRedirectWriteGatherPipe ( void * ptr)

◆ GXRestoreWriteGatherPipe()

void GXRestoreWriteGatherPipe ( void )

Variable Documentation

◆ CPUFifo

struct __GXFifoObj* CPUFifo
static

◆ GPFifo

struct __GXFifoObj* GPFifo
static

◆ __GXCurrentThread

OSThread* __GXCurrentThread
static

◆ CPGPLinked

GXBool CPGPLinked
static

◆ GXOverflowSuspendInProgress

BOOL GXOverflowSuspendInProgress
static

◆ BreakPointCB

GXBreakPtCallback BreakPointCB
static

◆ __GXOverflowCount

u32 __GXOverflowCount
static

◆ __GXCurrentBP

void * __GXCurrentBP