Rev 3646 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3646 | Rev 3655 | ||
---|---|---|---|
Line 106... | Line 106... | ||
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); |