summaryrefslogtreecommitdiff
path: root/asm/pit.h
blob: 0bec3c42c212e52f8cd782fd9ec828e68e044254 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 pit_init();

/** install this interrupt handler to your Interrupt Vector Table */
void pit_interrupt_handler();

/** get number of ticks */
uint32_t pit_get_ticks();