Subversion Repositories HelenOS

Rev

Rev 3961 | Rev 4026 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3961 Rev 3969
Line 33... Line 33...
33
/** @file
33
/** @file
34
 * @brief   Z8530 keyboard port driver.
34
 * @brief   Z8530 keyboard port driver.
35
 */
35
 */
36
 
36
 
37
#include <ipc/ipc.h>
37
#include <ipc/ipc.h>
-
 
38
#include <ipc/bus.h>
38
#include <async.h>
39
#include <async.h>
39
#include <sysinfo.h>
40
#include <sysinfo.h>
40
#include <kbd.h>
41
#include <kbd.h>
41
#include <kbd_port.h>
42
#include <kbd_port.h>
42
#include <sys/types.h>
43
#include <sys/types.h>
Line 86... Line 87...
86
    z8530_cmds[0].addr = (void *) sysinfo_value("kbd.address.virtual") +
87
    z8530_cmds[0].addr = (void *) sysinfo_value("kbd.address.virtual") +
87
        CHAN_A_STATUS;
88
        CHAN_A_STATUS;
88
    z8530_cmds[3].addr = (void *) sysinfo_value("kbd.address.virtual") +
89
    z8530_cmds[3].addr = (void *) sysinfo_value("kbd.address.virtual") +
89
        CHAN_A_DATA;
90
        CHAN_A_DATA;
90
    ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"),
91
    ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"),
91
        0, &z8530_kbd);
92
        sysinfo_value("kbd.inr"), &z8530_kbd);
92
    return 0;
93
    return 0;
93
}
94
}
94
 
95
 
95
static void z8530_irq_handler(ipc_callid_t iid, ipc_call_t *call)
96
static void z8530_irq_handler(ipc_callid_t iid, ipc_call_t *call)
96
{
97
{
97
    int scan_code = IPC_GET_ARG2(*call);
98
    int scan_code = IPC_GET_ARG2(*call);
98
    kbd_push_scancode(scan_code);
99
    kbd_push_scancode(scan_code);
-
 
100
   
-
 
101
    if (cir_service)
-
 
102
        async_msg_1(cir_phone, BUS_CLEAR_INTERRUPT,
-
 
103
            IPC_GET_METHOD(*call));
99
}
104
}
100
 
105
 
101
/** @}
106
/** @}
102
 */
107
 */