about summary refs log tree commit diff stats
path: root/031transforms.cc
blob: 5f13b69738ccd9a6dbf26a8da341461e8cd38826 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
:(before "End Types")
typedef void (*transform_fn)(program&);
:(before "End Globals")
vector<transform_fn> Transform;

:(before "End transform(program& p)")
for (int t = 0;  t < SIZE(Transform);  ++t)
  (*Transform.at(t))(p);

:(before "End One-time Setup")
// Begin Transforms
// End Transforms
lass="o">= 0; BOOL gSchedulerEnabled = FALSE; //called from assembly void handleTimerIRQ(TimerInt_Registers registers) { gSystemTickCount++; if (/*gSystemTickCount % 10 == 0 &&*/ gSchedulerEnabled == TRUE) { schedule(&registers); } } uint32 getSystemTickCount() { return gSystemTickCount; } uint32 getUptimeSeconds() { return gSystemTickCount / TIMER_FREQ; } uint32 getUptimeMilliseconds() { return gSystemTickCount; } void enableScheduler() { gSchedulerEnabled = TRUE; } void disableScheduler() { gSchedulerEnabled = FALSE; } static void initTimer(uint32 frequency) { uint32 divisor = 1193180 / frequency; outb(0x43, 0x36); uint8 l = (uint8)(divisor & 0xFF); uint8 h = (uint8)( (divisor>>8) & 0xFF ); outb(0x40, l); outb(0x40, h); } void initializeTimer() { initTimer(TIMER_FREQ); }