Subversion Repositories HelenOS

Rev

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

Rev 4342 Rev 4343
Line 146... Line 146...
146
 
146
 
147
void arch_pre_smp_init(void)
147
void arch_pre_smp_init(void)
148
{
148
{
149
}
149
}
150
 
150
 
151
 
-
 
152
#ifdef I460GX
-
 
153
#define POLL_INTERVAL       50000       /* 50 ms */
-
 
154
/** Kernel thread for polling keyboard. */
-
 
155
static void i8042_kkbdpoll(void *arg)
-
 
156
{
-
 
157
    while (1) {
-
 
158
#ifdef CONFIG_NS16550
-
 
159
    #ifndef CONFIG_NS16550_INTERRUPT_DRIVEN
-
 
160
        ns16550_poll();
-
 
161
    #endif  
-
 
162
#else
-
 
163
    #ifndef CONFIG_I8042_INTERRUPT_DRIVEN
-
 
164
        i8042_poll();
-
 
165
    #endif  
-
 
166
#endif
-
 
167
        thread_usleep(POLL_INTERVAL);
-
 
168
    }
-
 
169
}
-
 
170
#endif
-
 
171
 
-
 
172
void arch_post_smp_init(void)
151
void arch_post_smp_init(void)
173
{
152
{
174
    thread_t *t;
-
 
175
 
-
 
176
    /*
153
    /*
177
     * Create thread that polls keyboard.
154
     * Create thread that polls keyboard.
178
     */
155
     */
179
#ifdef SKI
156
#ifdef SKI
180
    t = thread_create(kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
157
    thread_t *t = thread_create(kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
181
    if (!t)
158
    if (!t)
182
        panic("Cannot create kkbdpoll.");
159
        panic("Cannot create kkbdpoll.");
183
    thread_ready(t);
160
    thread_ready(t);
184
#endif      
161
#endif      
185
 
162
 
Line 190... Line 167...
190
    ns16550_init(kbd, NS16550_PORT, NS16550_IRQ, NULL, NULL);
167
    ns16550_init(kbd, NS16550_PORT, NS16550_IRQ, NULL, NULL);
191
#else
168
#else
192
    devno_t mouse = device_assign_devno();
169
    devno_t mouse = device_assign_devno();
193
    i8042_init(kbd, IRQ_KBD, mouse, IRQ_MOUSE);
170
    i8042_init(kbd, IRQ_KBD, mouse, IRQ_MOUSE);
194
#endif
171
#endif
195
    t = thread_create(i8042_kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
-
 
196
    if (!t)
-
 
197
        panic("Cannot create kkbdpoll.");
-
 
198
    thread_ready(t);
-
 
199
#endif
172
#endif
200
 
173
 
201
    sysinfo_set_item_val("ia64_iospace", NULL, true);
174
    sysinfo_set_item_val("ia64_iospace", NULL, true);
202
    sysinfo_set_item_val("ia64_iospace.address", NULL, true);
175
    sysinfo_set_item_val("ia64_iospace.address", NULL, true);
203
    sysinfo_set_item_val("ia64_iospace.address.virtual", NULL, IO_OFFSET);
176
    sysinfo_set_item_val("ia64_iospace.address.virtual", NULL, IO_OFFSET);
Line 274... Line 247...
274
#endif
247
#endif
275
}
248
}
276
 
249
 
277
void arch_reboot(void)
250
void arch_reboot(void)
278
{
251
{
279
    outb(0x64, 0xfe);
252
    pio_write_8(0x64, 0xfe);
280
    while (1)
253
    while (1)
281
        ;
254
        ;
282
}
255
}
283
 
256
 
284
/** Construct function pointer
257
/** Construct function pointer