Subversion Repositories HelenOS

Rev

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

Rev 3646 Rev 3655
Line 105... Line 105...
105
    interrupts_restore(ipl);
105
    interrupts_restore(ipl);
106
}
106
}
107
 
107
 
108
/** Initialize ns16550.
108
/** Initialize ns16550.
109
 *
109
 *
110
 * @param devno Device number.
110
 * @param devno     Device number.
-
 
111
 * @param port      Virtual/IO address of device's registers.
111
 * @param inr Interrupt number.
112
 * @param inr       Interrupt number.
-
 
113
 * @param cir       Clear interrupt function.
112
 * @param vaddr Virtual address of device's registers.
114
 * @param cir_arg   First argument to cir.
113
 */
115
 */
-
 
116
void
114
void ns16550_init(devno_t devno, inr_t inr, ioport_t port)
117
ns16550_init(devno_t devno, ioport_t port, inr_t inr, cir_t cir, void *cir_arg)
115
{
118
{
116
    chardev_initialize("ns16550_kbd", &kbrd, &ops);
119
    chardev_initialize("ns16550_kbd", &kbrd, &ops);
117
    stdin = &kbrd;
120
    stdin = &kbrd;
118
   
121
   
119
    ns16550.devno = devno;
122
    ns16550.devno = devno;
Line 122... Line 125...
122
    irq_initialize(&ns16550_irq);
125
    irq_initialize(&ns16550_irq);
123
    ns16550_irq.devno = devno;
126
    ns16550_irq.devno = devno;
124
    ns16550_irq.inr = inr;
127
    ns16550_irq.inr = inr;
125
    ns16550_irq.claim = ns16550_claim;
128
    ns16550_irq.claim = ns16550_claim;
126
    ns16550_irq.handler = ns16550_irq_handler;
129
    ns16550_irq.handler = ns16550_irq_handler;
-
 
130
    ns16550_irq.cir = cir;
-
 
131
    ns16550_irq.cir_arg = cir_arg;
127
    irq_register(&ns16550_irq);
132
    irq_register(&ns16550_irq);
128
   
133
   
129
    sysinfo_set_item_val("kbd", NULL, true);
134
    sysinfo_set_item_val("kbd", NULL, true);
130
#ifndef ia64
135
#ifndef ia64
131
    sysinfo_set_item_val("kbd.type", NULL, KBD_NS16550);
136
    sysinfo_set_item_val("kbd.type", NULL, KBD_NS16550);