summaryrefslogtreecommitdiff
path: root/asm/asm_pit.h
diff options
context:
space:
mode:
Diffstat (limited to 'asm/asm_pit.h')
-rw-r--r--asm/asm_pit.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/asm/asm_pit.h b/asm/asm_pit.h
new file mode 100644
index 0000000..d020de1
--- /dev/null
+++ b/asm/asm_pit.h
@@ -0,0 +1,25 @@
+/**
+ * @file
+ *
+ * PIT - Programmable Interval Timer
+ *
+ * config out timer on channel 0 : mode 2 (sys timer)
+ * * http://en.wikipedia.org/wiki/Intel_8253#Control_Word_Register
+ * * http://www.brokenthorn.com/Resources/OSDevPit.html
+ * int0 will be triggered ~25 times a second.
+ *
+ * The most magic is performed in pit_interrupt_handler which calls
+ * the c function responsible for task switching doing vary bad ass
+ * magic...
+ */
+
+#include <stdint.h>
+
+/** Init PIT - 25 times a second*/
+void asm_pit_init();
+
+/** install this interrupt handler to your Interrupt Vector Table */
+void asm_pit_tick();
+
+/** get number of ticks */
+uint32_t asm_pit_get_ticks();