Subversion Repositories HelenOS

Rev

Rev 2218 | Rev 3906 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2218 Rev 2439
Line 64... Line 64...
64
static irq_ownership_t i8254_claim(void)
64
static irq_ownership_t i8254_claim(void)
65
{
65
{
66
    return IRQ_ACCEPT;
66
    return IRQ_ACCEPT;
67
}
67
}
68
 
68
 
69
static void i8254_irq_handler(irq_t *irq, void *arg, ...)
69
static void i8254_irq_handler(irq_t *irq, void *arg __attribute__((unused)), ...)
70
{
70
{
71
    /*
71
    /*
72
     * This IRQ is responsible for kernel preemption.
72
     * This IRQ is responsible for kernel preemption.
73
     * Nevertheless, we are now holding a spinlock which prevents
73
     * Nevertheless, we are now holding a spinlock which prevents
74
     * preemption. For this particular IRQ, we don't need the
74
     * preemption. For this particular IRQ, we don't need the
Line 119... Line 119...
119
    outb(CLK_PORT1, 0xff);
119
    outb(CLK_PORT1, 0xff);
120
 
120
 
121
    do {
121
    do {
122
        /* will read both status and count */
122
        /* will read both status and count */
123
        outb(CLK_PORT4, 0xc2);
123
        outb(CLK_PORT4, 0xc2);
124
        not_ok = (inb(CLK_PORT1)>>6)&1;
124
        not_ok = (uint8_t) ((inb(CLK_PORT1) >> 6) & 1);
125
        t1 = inb(CLK_PORT1);
125
        t1 = inb(CLK_PORT1);
126
        t1 |= inb(CLK_PORT1) << 8;
126
        t1 |= inb(CLK_PORT1) << 8;
127
    } while (not_ok);
127
    } while (not_ok);
128
 
128
 
129
    asm_delay_loop(LOOPS);
129
    asm_delay_loop(LOOPS);