Subversion Repositories HelenOS

Rev

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

Rev 4346 Rev 4347
Line 38... Line 38...
38
#include <console/chardev.h>
38
#include <console/chardev.h>
39
#include <arch/drivers/pic.h>
39
#include <arch/drivers/pic.h>
40
#include <sysinfo/sysinfo.h>
40
#include <sysinfo/sysinfo.h>
41
#include <interrupt.h>
41
#include <interrupt.h>
42
#include <stdarg.h>
42
#include <stdarg.h>
-
 
43
#include <ddi/device.h>
43
 
44
 
44
#define CUDA_IRQ 10
45
#define CUDA_IRQ 10
45
#define SPECIAL     '?'
46
#define SPECIAL     '?'
46
 
47
 
47
#define PACKET_ADB  0x00
48
#define PACKET_ADB  0x00
Line 239... Line 240...
239
static irq_ownership_t cuda_claim(irq_t *irq)
240
static irq_ownership_t cuda_claim(irq_t *irq)
240
{
241
{
241
    return IRQ_ACCEPT;
242
    return IRQ_ACCEPT;
242
}
243
}
243
 
244
 
244
void cuda_init(devno_t devno, uintptr_t base, size_t size)
245
void cuda_init(uintptr_t base, size_t size)
245
{
246
{
246
    cuda = (uint8_t *) hw_map(base, size);
247
    cuda = (uint8_t *) hw_map(base, size);
247
   
248
   
248
    indev_initialize("cuda_kbd", &kbrd, &ops);
249
    indev_initialize("cuda_kbd", &kbrd, &ops);
249
    stdin = &kbrd;
250
    stdin = &kbrd;
250
   
251
   
251
    irq_initialize(&cuda_irq);
252
    irq_initialize(&cuda_irq);
252
    cuda_irq.devno = devno;
253
    cuda_irq.devno = device_assign_devno();
253
    cuda_irq.inr = CUDA_IRQ;
254
    cuda_irq.inr = CUDA_IRQ;
254
    cuda_irq.claim = cuda_claim;
255
    cuda_irq.claim = cuda_claim;
255
    cuda_irq.handler = cuda_irq_handler;
256
    cuda_irq.handler = cuda_irq_handler;
256
    irq_register(&cuda_irq);
257
    irq_register(&cuda_irq);
257
   
258
   
258
    pic_enable_interrupt(CUDA_IRQ);
259
    pic_enable_interrupt(CUDA_IRQ);
259
   
260
   
260
    sysinfo_set_item_val("kbd", NULL, true);
261
    sysinfo_set_item_val("kbd", NULL, true);
261
    sysinfo_set_item_val("kbd.devno", NULL, devno);
-
 
262
    sysinfo_set_item_val("kbd.inr", NULL, CUDA_IRQ);
262
    sysinfo_set_item_val("kbd.inr", NULL, CUDA_IRQ);
263
    sysinfo_set_item_val("kbd.address.virtual", NULL, base);
263
    sysinfo_set_item_val("kbd.address.virtual", NULL, base);
264
}
264
}
265
 
265
 
266
 
266