Nugget
Bare-metal libraries and examples for the original PlayStation
Loading...
Searching...
No Matches
Macros | Functions | Variables
gpu-irq.c File Reference
#include "common/hardware/dma.h"
#include "common/hardware/gpu.h"
#include "common/hardware/hwregs.h"
#include "common/hardware/irq.h"
#include "common/syscalls/syscalls.h"
#include "exotic/cester.h"
#include "raster-helpers.h"
#include "irq.c"
Include dependency graph for gpu-irq.c:

Macros

#define CESTER_NO_SIGNAL
 
#define CESTER_NO_TIME
 
#define EXIT_SUCCESS   0
 
#define EXIT_FAILURE   1
 
#define GPUSTAT_IRQ   0x01000000u
 
#define ASSERT_STAT_EQ(expected, mask)
 

Functions

 CESTER_BODY (static int s_interruptsWereEnabled;#define ASSERT_STAT_EQ(expected, mask)) CESTER_BEFORE_ALL(gpu_irq
 
 rasterFullReset ()
 
 ramsyscall_printf ("\n=== gpu-irq: GP0(1Fh)/GP1(02h) IRQ flag in GPUSTAT.24 ===\n")
 
 ramsyscall_printf ("OBS lines carry hardware-truth GPUSTAT values.\n\n")
 

Variables

 s_interruptsWereEnabled = enterCriticalSection()
 
 IMASK = 0
 
 IREG = 0
 

Macro Definition Documentation

◆ ASSERT_STAT_EQ

#define ASSERT_STAT_EQ (   expected,
  mask 
)
Value:
do { \
uint32_t _sm = (uint32_t)(mask); \
uint32_t _sv = GPU_STATUS & _sm; \
ramsyscall_printf("OBS gpustat&0x%08x=0x%08x expect=0x%08x\n", \
(unsigned)_sm, (unsigned)_sv, \
(unsigned)(expected)); \
cester_assert_uint_eq((unsigned)(expected), (unsigned)_sv); \
} while (0)
#define GPU_STATUS
Definition hwregs.h:53

◆ CESTER_NO_SIGNAL

#define CESTER_NO_SIGNAL

◆ CESTER_NO_TIME

#define CESTER_NO_TIME

◆ EXIT_FAILURE

#define EXIT_FAILURE   1

◆ EXIT_SUCCESS

#define EXIT_SUCCESS   0

◆ GPUSTAT_IRQ

#define GPUSTAT_IRQ   0x01000000u

Function Documentation

◆ CESTER_BODY()

CESTER_BODY ( static int s_interruptsWereEnabled;#define   ASSERT_STAT_EQexpected, mask)

◆ ramsyscall_printf() [1/2]

ramsyscall_printf ( )

◆ ramsyscall_printf() [2/2]

ramsyscall_printf ( "OBS lines carry hardware-truth GPUSTAT values.\n\n"  )

◆ rasterFullReset()

rasterFullReset ( )

Variable Documentation

◆ IMASK

IMASK = 0

◆ IREG

IREG = 0

◆ s_interruptsWereEnabled

s_interruptsWereEnabled = enterCriticalSection()