Skip to content

Commit

Permalink
Merge pull request #2912 from Tilka/coretiming
Browse files Browse the repository at this point in the history
CoreTiming: small cleanup
  • Loading branch information
degasus committed Aug 26, 2015
2 parents a36b135 + 6ec4bdf commit 2be69ae
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 68 deletions.
74 changes: 11 additions & 63 deletions Source/Core/Core/CoreTiming.cpp
Expand Up @@ -63,9 +63,6 @@ u64 fakeTBStartTicks;

static int ev_lost;


static void (*advanceCallback)(int cyclesExecuted) = nullptr;

static Event* GetNewEvent()
{
if (!eventPool)
Expand Down Expand Up @@ -303,42 +300,13 @@ void ScheduleEvent(int cyclesIntoFuture, int event_type, u64 userdata)
AddEventToQueue(ne);
}

void RegisterAdvanceCallback(void (*callback)(int cyclesExecuted))
{
advanceCallback = callback;
}

bool IsScheduled(int event_type)
{
if (!first)
return false;
Event *e = first;
while (e)
{
if (e->type == event_type)
return true;
e = e->next;
}
return false;
}

void RemoveEvent(int event_type)
{
if (!first)
return;

while (first)
while (first && first->type == event_type)
{
if (first->type == event_type)
{
Event *next = first->next;
FreeEvent(first);
first = next;
}
else
{
break;
}
Event* next = first->next;
FreeEvent(first);
first = next;
}

if (!first)
Expand Down Expand Up @@ -368,11 +336,6 @@ void RemoveAllEvents(int event_type)
RemoveEvent(event_type);
}

void SetMaximumSlice(int maximumSliceLength)
{
maxSliceLength = maximumSliceLength;
}

void ForceExceptionCheck(int cycles)
{
if (DowncountToCycles(PowerPC::ppcState.downcount) > cycles)
Expand All @@ -382,11 +345,6 @@ void ForceExceptionCheck(int cycles)
}
}

void ResetSliceLength()
{
maxSliceLength = MAX_SLICE_LENGTH;
}


//This raise only the events required while the fifo is processing data
void ProcessFifoWaitEvents()
Expand Down Expand Up @@ -434,21 +392,14 @@ void Advance()
lastOCFactor = SConfig::GetInstance().m_OCEnable ? SConfig::GetInstance().m_OCFactor : 1.0f;
PowerPC::ppcState.downcount = CyclesToDowncount(slicelength);

while (first)
while (first && first->time <= globalTimer)
{
if (first->time <= globalTimer)
{
//LOG(POWERPC, "[Scheduler] %s (%lld, %lld) ",
// event_types[first->type].name ? event_types[first->type].name : "?", (u64)globalTimer, (u64)first->time);
Event* evt = first;
first = first->next;
event_types[evt->type].callback(evt->userdata, (int)(globalTimer - evt->time));
FreeEvent(evt);
}
else
{
break;
}
//LOG(POWERPC, "[Scheduler] %s (%lld, %lld) ",
// event_types[first->type].name ? event_types[first->type].name : "?", (u64)globalTimer, (u64)first->time);
Event* evt = first;
first = first->next;
event_types[evt->type].callback(evt->userdata, (int)(globalTimer - evt->time));
FreeEvent(evt);
}

if (!first)
Expand All @@ -463,9 +414,6 @@ void Advance()
slicelength = maxSliceLength;
PowerPC::ppcState.downcount = CyclesToDowncount(slicelength);
}

if (advanceCallback)
advanceCallback(cyclesExecuted);
}

void LogPendingEvents()
Expand Down
5 changes: 0 additions & 5 deletions Source/Core/Core/CoreTiming.h
Expand Up @@ -52,7 +52,6 @@ void ScheduleEvent_Threadsafe_Immediate(int event_type, u64 userdata = 0);
// We only permit one event of each type in the queue at a time.
void RemoveEvent(int event_type);
void RemoveAllEvents(int event_type);
bool IsScheduled(int event_type);
void Advance();
void MoveEvents();
void ProcessFifoWaitEvents();
Expand All @@ -64,10 +63,6 @@ void Idle();
void ClearPendingEvents();

void LogPendingEvents();
void SetMaximumSlice(int maximumSliceLength);
void ResetSliceLength();

void RegisterAdvanceCallback(void (*callback)(int cyclesExecuted));

std::string GetScheduledEventsSummary();

Expand Down

0 comments on commit 2be69ae

Please sign in to comment.