ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
internal.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void Intc12Handler (void)
 
void InvokeUserModeCallback (void *dispatcher, void *callback, int id, u32 target, void *common)
 
void ResumeIntrDispatch (void)
 

Function Documentation

◆ Intc12Handler()

void Intc12Handler ( void  )

Definition at line 167 of file alarm.c.

168 {
169  struct alarm alarm;
170  void *gp;
171  int i;
172 
173  for(i = 0; i < AlarmCount; i++)
174  { //Attempt to find another alarm request that has a different target. Update TIM3's comparator.
175  if(alarms[i].target != alarms[0].target)
176  {
177  SetupTIM3(alarms[i].target);
178  break;
179  }
180  }
181 
182  do{
183  alarm = alarms[0];
184  AlarmCount--;
185  for(i = 0; i < AlarmCount; i++)
186  alarms[i] = alarms[i+1];
187 
188  gp = ChangeGP(alarm.gp);
189  AlarmStatus &= ~(1 << alarm.id);
191  SetGP(gp);
192 
193  if(AlarmCount <= 0)
194  break;
195  }while(alarms[0].target == alarm.target);
196 
197  if(AlarmCount <= 0) //If there are no further alarms, disable CMPE.
198  *T3_MODE_W = Tn_MODE(3,0,0,0,0,1,0,0,1,0);
199  else
200  SetupTIM3(alarms[0].target);
201 
202  ExitHandler();
203 }
#define gp
Definition: as_reg_compat.h:84
void InvokeUserModeCallback(void *dispatcher, void *callback, int id, u32 target, void *common)
#define ExitHandler()
Definition: kernel.h:28
void * ChangeGP(void *gp)
void SetGP(void *gp)
#define T3_MODE_W
Definition: alarm.c:21
static int AlarmCount
Definition: alarm.c:24
#define USER_MODE_DISPATCHER
Definition: alarm.c:17
static struct alarm alarms[MAX_ALARMS]
Definition: alarm.c:36
static void SetupTIM3(u16 ticks)
Definition: alarm.c:159
static u64 AlarmStatus
Definition: alarm.c:25
Definition: alarm.c:27
void * callback
Definition: alarm.c:31
int id
Definition: alarm.c:30
u16 target
Definition: alarm.c:28
void * common
Definition: alarm.c:32
void * gp
Definition: alarm.c:33
#define Tn_MODE(CLKS, GATE, GATS, GATM, ZRET, CUE, CMPE, OVFE, EQUF, OVFF)
Definition: timer.h:42

References AlarmCount, alarms, AlarmStatus, alarm::callback, ChangeGP(), alarm::common, ExitHandler, gp, alarm::gp, alarm::id, InvokeUserModeCallback(), SetGP(), SetupTIM3(), T3_MODE_W, alarm::target, Tn_MODE, and USER_MODE_DISPATCHER.

◆ InvokeUserModeCallback()

void InvokeUserModeCallback ( void *  dispatcher,
void *  callback,
int  id,
u32  target,
void *  common 
)

Referenced by Intc12Handler().

◆ ResumeIntrDispatch()

void ResumeIntrDispatch ( void  )