Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4343 → Rev 4342

/branches/dynload/kernel/arch/ia64/src/ia64.c
148,13 → 148,36
{
}
 
 
#ifdef I460GX
#define POLL_INTERVAL 50000 /* 50 ms */
/** Kernel thread for polling keyboard. */
static void i8042_kkbdpoll(void *arg)
{
while (1) {
#ifdef CONFIG_NS16550
#ifndef CONFIG_NS16550_INTERRUPT_DRIVEN
ns16550_poll();
#endif
#else
#ifndef CONFIG_I8042_INTERRUPT_DRIVEN
i8042_poll();
#endif
#endif
thread_usleep(POLL_INTERVAL);
}
}
#endif
 
void arch_post_smp_init(void)
{
thread_t *t;
 
/*
* Create thread that polls keyboard.
*/
#ifdef SKI
thread_t *t = thread_create(kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
t = thread_create(kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
if (!t)
panic("Cannot create kkbdpoll.");
thread_ready(t);
169,6 → 192,10
devno_t mouse = device_assign_devno();
i8042_init(kbd, IRQ_KBD, mouse, IRQ_MOUSE);
#endif
t = thread_create(i8042_kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
if (!t)
panic("Cannot create kkbdpoll.");
thread_ready(t);
#endif
 
sysinfo_set_item_val("ia64_iospace", NULL, true);
249,7 → 276,7
 
void arch_reboot(void)
{
pio_write_8(0x64, 0xfe);
outb(0x64, 0xfe);
while (1)
;
}
/branches/dynload/kernel/arch/ia64/src/ski/ski.c
186,7 → 186,7
*
* @return Always IRQ_DECLINE.
*/
static irq_ownership_t ski_kbd_claim(void *instance)
static irq_ownership_t ski_kbd_claim(void)
{
return IRQ_DECLINE;
}
/branches/dynload/kernel/arch/ia64/src/interrupt.c
266,7 → 266,7
case INTERRUPT_TIMER:
irq = irq_dispatch_and_lock(ivr.vector);
if (irq) {
irq->handler(irq);
irq->handler(irq, irq->arg);
spinlock_unlock(&irq->lock);
} else {
panic("Unhandled Internal Timer Interrupt (%d).",
283,7 → 283,7
/* Send EOI before processing the interrupt */
end_of_local_irq();
}
irq->handler(irq);
irq->handler(irq, irq->arg);
if (!irq->preack)
end_of_local_irq();
spinlock_unlock(&irq->lock);
/branches/dynload/kernel/arch/ia64/src/mm/frame.c
51,7 → 51,6
#define MINCONF 1
 
uintptr_t last_frame = 0;
uintptr_t end_frame = 0;
 
void frame_arch_init(void)
{
/branches/dynload/kernel/arch/ia64/src/mm/page.c
274,11 → 274,5
return PA2KA(physaddr);
}
 
void hw_area(uintptr_t *physaddr, pfn_t *frames)
{
*physaddr = end_frame;
*frames = ADDR2PFN(0x7fffffffffffffffUL - end_frame);
}
 
/** @}
*/
/branches/dynload/kernel/arch/ia64/src/drivers/it.c
56,8 → 56,8
 
static irq_t it_irq;
 
static irq_ownership_t it_claim(void *);
static void it_interrupt(irq_t *irq);
static irq_ownership_t it_claim(void);
static void it_interrupt(irq_t *irq, void *arg, ...);
 
/** Initialize Interval Timer. */
void it_init(void)
104,13 → 104,13
*
* @return Always IRQ_ACCEPT.
*/
irq_ownership_t it_claim(void *instance)
irq_ownership_t it_claim(void)
{
return IRQ_ACCEPT;
}
 
/** Process Interval Timer interrupt. */
void it_interrupt(irq_t *irq)
void it_interrupt(irq_t *irq, void *arg, ...)
{
int64_t c;
int64_t m;