Subversion Repositories HelenOS

Rev

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

Rev 2131 Rev 2456
Line 36... Line 36...
36
#include <arch/cp0.h>
36
#include <arch/cp0.h>
37
#include <ipc/irq.h>
37
#include <ipc/irq.h>
38
#include <arch/drivers/serial.h>
38
#include <arch/drivers/serial.h>
39
#include <console/chardev.h>
39
#include <console/chardev.h>
40
#include <console/console.h>
40
#include <console/console.h>
-
 
41
#include <synch/rcu.h>
41
 
42
 
42
#define SERIAL_IRQ 2
43
#define SERIAL_IRQ 2
43
 
44
 
44
static irq_t serial_irq;
45
static irq_t serial_irq;
45
static chardev_t console;
46
static chardev_t console;
Line 110... Line 111...
110
}
111
}
111
 
112
 
112
/** Process keyboard interrupt. Does not work in simics? */
113
/** Process keyboard interrupt. Does not work in simics? */
113
static void serial_irq_handler(irq_t *irq, void *arg, ...)
114
static void serial_irq_handler(irq_t *irq, void *arg, ...)
114
{
115
{
115
    if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox))
116
    if ((rcu_dereference_pointer(irq->notif_cfg).notify) && (rcu_dereference_pointer(irq->notif_cfg).answerbox))
116
        ipc_irq_send_notif(irq);
117
        ipc_irq_send_notif(irq);
117
    else
118
    else
118
        serial_handler();
119
        serial_handler();
119
}
120
}
120
 
121