Subversion Repositories freemyipod

Rev

Rev 259 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 259 Rev 265
Line 139... Line 139...
139
    INT_IRQ56,INT_IRQ57,INT_IRQ58,INT_IRQ59,INT_IRQ60,INT_IRQ61,INT_IRQ62,INT_IRQ63
139
    INT_IRQ56,INT_IRQ57,INT_IRQ58,INT_IRQ59,INT_IRQ60,INT_IRQ61,INT_IRQ62,INT_IRQ63
140
};
140
};
141
 
141
 
142
void irqhandler(void)
142
void irqhandler(void)
143
{
143
{
144
    uint32_t dummy = VIC0ADDRESS;
144
    void* dummy = VIC0ADDRESS;
145
    dummy = VIC1ADDRESS;
145
    dummy = VIC1ADDRESS;
146
    uint32_t irqs0 = VIC0IRQSTATUS;
146
    uint32_t irqs0 = VIC0IRQSTATUS;
147
    uint32_t irqs1 = VIC1IRQSTATUS;
147
    uint32_t irqs1 = VIC1IRQSTATUS;
148
    for (current_irq = 0; irqs0; current_irq++, irqs0 >>= 1)
148
    for (current_irq = 0; irqs0; current_irq++, irqs0 >>= 1)
149
        if (irqs0 & 1)
149
        if (irqs0 & 1)
150
            irqvector[current_irq]();
150
            irqvector[current_irq]();
151
    for (current_irq = 32; irqs1; current_irq++, irqs1 >>= 1)
151
    for (current_irq = 32; irqs1; current_irq++, irqs1 >>= 1)
152
        if (irqs1 & 1)
152
        if (irqs1 & 1)
153
            irqvector[current_irq]();
153
            irqvector[current_irq]();
154
    VIC0ADDRESS = 0;
154
    VIC0ADDRESS = NULL;
155
    VIC1ADDRESS = 0;
155
    VIC1ADDRESS = NULL;
156
}
156
}
157
 
157
 
158
void interrupt_enable(int irq, bool state)
158
void interrupt_enable(int irq, bool state)
159
{
159
{
160
    if (state) VICINTENABLE(irq >> 5) = 1 << (irq & 0x1f);
160
    if (state) VICINTENABLE(irq >> 5) = 1 << (irq & 0x1f);