Rev 576 | Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 576 | Rev 958 | ||
---|---|---|---|
Line 51... | Line 51... | ||
51 | 51 | ||
52 | 52 | ||
53 | #define CLK_CONST 1193180 |
53 | #define CLK_CONST 1193180 |
54 | #define MAGIC_NUMBER 1194 |
54 | #define MAGIC_NUMBER 1194 |
55 | 55 | ||
56 | static void i8254_interrupt(int n, void *stack); |
56 | static void i8254_interrupt(int n, istate_t *istate); |
57 | 57 | ||
58 | void i8254_init(void) |
58 | void i8254_init(void) |
59 | { |
59 | { |
60 | i8254_normal_operation(); |
60 | i8254_normal_operation(); |
61 | } |
61 | } |
Line 65... | Line 65... | ||
65 | outb(CLK_PORT4, 0x36); |
65 | outb(CLK_PORT4, 0x36); |
66 | pic_disable_irqs(1<<IRQ_CLK); |
66 | pic_disable_irqs(1<<IRQ_CLK); |
67 | outb(CLK_PORT1, (CLK_CONST/HZ) & 0xf); |
67 | outb(CLK_PORT1, (CLK_CONST/HZ) & 0xf); |
68 | outb(CLK_PORT1, (CLK_CONST/HZ) >> 8); |
68 | outb(CLK_PORT1, (CLK_CONST/HZ) >> 8); |
69 | pic_enable_irqs(1<<IRQ_CLK); |
69 | pic_enable_irqs(1<<IRQ_CLK); |
70 | exc_register(VECTOR_CLK, "i8254_clock", i8254_interrupt); |
70 | exc_register(VECTOR_CLK, "i8254_clock", (iroutine) i8254_interrupt); |
71 | } |
71 | } |
72 | 72 | ||
73 | #define LOOPS 150000 |
73 | #define LOOPS 150000 |
74 | #define SHIFT 11 |
74 | #define SHIFT 11 |
75 | void i8254_calibrate_delay_loop(void) |
75 | void i8254_calibrate_delay_loop(void) |
Line 123... | Line 123... | ||
123 | CPU->frequency_mhz = (clk2-clk1)>>SHIFT; |
123 | CPU->frequency_mhz = (clk2-clk1)>>SHIFT; |
124 | 124 | ||
125 | return; |
125 | return; |
126 | } |
126 | } |
127 | 127 | ||
128 | void i8254_interrupt(int n, void *stack) |
128 | void i8254_interrupt(int n, istate_t *istate) |
129 | { |
129 | { |
130 | trap_virtual_eoi(); |
130 | trap_virtual_eoi(); |
131 | clock(); |
131 | clock(); |
132 | } |
132 | } |