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 37... Line 37...
37
#include <genarch/drivers/z8530/z8530.h>
37
#include <genarch/drivers/z8530/z8530.h>
38
#include <console/chardev.h>
38
#include <console/chardev.h>
39
#include <ddi/irq.h>
39
#include <ddi/irq.h>
40
#include <arch/asm.h>
40
#include <arch/asm.h>
41
#include <mm/slab.h>
41
#include <mm/slab.h>
-
 
42
#include <ddi/device.h>
42
 
43
 
43
static indev_operations_t kbrdin_ops = {
44
static indev_operations_t kbrdin_ops = {
44
    .poll = NULL
45
    .poll = NULL
45
};
46
};
46
 
47
 
Line 85... Line 86...
85
        indev_push_character(&instance->kbrdin, x);
86
        indev_push_character(&instance->kbrdin, x);
86
    }
87
    }
87
}
88
}
88
 
89
 
89
/** Initialize z8530. */
90
/** Initialize z8530. */
90
indev_t *z8530_init(z8530_t *dev, devno_t devno, inr_t inr, cir_t cir, void *cir_arg)
91
indev_t *z8530_init(z8530_t *dev, inr_t inr, cir_t cir, void *cir_arg)
91
{
92
{
92
    z8530_instance_t *instance
93
    z8530_instance_t *instance
93
        = malloc(sizeof(z8530_instance_t), FRAME_ATOMIC);
94
        = malloc(sizeof(z8530_instance_t), FRAME_ATOMIC);
94
    if (!instance)
95
    if (!instance)
95
        return false;
96
        return false;
96
   
97
   
97
    indev_initialize("z8530", &instance->kbrdin, &kbrdin_ops);
98
    indev_initialize("z8530", &instance->kbrdin, &kbrdin_ops);
98
   
99
   
99
    instance->devno = devno;
-
 
100
    instance->z8530 = dev;
100
    instance->z8530 = dev;
101
   
101
   
102
    irq_initialize(&instance->irq);
102
    irq_initialize(&instance->irq);
103
    instance->irq.devno = devno;
103
    instance->irq.devno = device_assign_devno();
104
    instance->irq.inr = inr;
104
    instance->irq.inr = inr;
105
    instance->irq.claim = z8530_claim;
105
    instance->irq.claim = z8530_claim;
106
    instance->irq.handler = z8530_irq_handler;
106
    instance->irq.handler = z8530_irq_handler;
107
    instance->irq.instance = instance;
107
    instance->irq.instance = instance;
108
    instance->irq.cir = cir;
108
    instance->irq.cir = cir;