Changeset 8820544 in mainline for uspace/srv/hid/input
- Timestamp:
- 2014-08-16T00:02:04Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 35b8bfe, 8cd680c
- Parents:
- 83f29e0
- Location:
- uspace/srv/hid/input
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/input/input.c
r83f29e0 r8820544 54 54 #include <io/keycode.h> 55 55 #include <loc.h> 56 #include <event.h>57 56 #include <str_error.h> 58 57 #include "layout.h" … … 358 357 } 359 358 360 static void kconsole_event_received(ipc_callid_t callid, ipc_call_t *call) 359 static void kconsole_event_handler(ipc_callid_t callid, ipc_call_t *call, 360 void *arg) 361 361 { 362 362 if (IPC_GET_ARG1(*call)) { … … 772 772 773 773 /* Receive kernel notifications */ 774 async_set_interrupt_received(kconsole_event_received); 775 rc = event_subscribe(EVENT_KCONSOLE, 0); 774 rc = async_event_subscribe(EVENT_KCONSOLE, kconsole_event_handler, NULL); 776 775 if (rc != EOK) 777 776 printf("%s: Failed to register kconsole notifications (%s)\n", -
uspace/srv/hid/input/port/msim.c
r83f29e0 r8820544 78 78 }; 79 79 80 static void msim_irq_handler(ipc_callid_t iid, ipc_call_t *call); 80 static void msim_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg) 81 { 82 kbd_push_data(kbd_dev, IPC_GET_ARG2(*call)); 83 } 81 84 82 85 static int msim_port_init(kbd_dev_t *kdev) … … 94 97 msim_ranges[0].base = paddr; 95 98 msim_cmds[0].addr = (void *) paddr; 96 async_ set_interrupt_received(msim_irq_handler);97 irq_register(inr, device_assign_devno(), 0,&msim_kbd);99 async_irq_subscribe(inr, device_assign_devno(), msim_irq_handler, NULL, 100 &msim_kbd); 98 101 99 102 return 0; … … 105 108 } 106 109 107 static void msim_irq_handler(ipc_callid_t iid, ipc_call_t *call)108 {109 kbd_push_data(kbd_dev, IPC_GET_ARG2(*call));110 }111 112 110 /** @} 113 111 */ -
uspace/srv/hid/input/port/ns16550.c
r83f29e0 r8820544 107 107 }; 108 108 109 static void ns16550_irq_handler(ipc_callid_t iid, ipc_call_t *call); 109 static uintptr_t ns16550_physical; 110 static kbd_dev_t *kbd_dev; 111 static sysarg_t inr; 110 112 111 static uintptr_t ns16550_physical; 112 113 static kbd_dev_t *kbd_dev; 113 static void ns16550_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg) 114 { 115 kbd_push_data(kbd_dev, IPC_GET_ARG2(*call)); 116 117 if (irc_service) { 118 async_exch_t *exch = async_exchange_begin(irc_sess); 119 async_msg_1(exch, IRC_CLEAR_INTERRUPT, inr); 120 async_exchange_end(exch); 121 } 122 } 114 123 115 124 static int ns16550_port_init(kbd_dev_t *kdev) 116 125 { 117 void *vaddr;118 119 126 kbd_dev = kdev; 120 127 … … 128 135 return -1; 129 136 130 sysarg_t inr;131 137 if (sysinfo_get_value("kbd.inr", &inr) != EOK) 132 138 return -1; … … 136 142 ns16550_kbd.cmds[3].addr = (void *) (ns16550_physical + RBR_REG); 137 143 138 async_ set_interrupt_received(ns16550_irq_handler);139 irq_register(inr, device_assign_devno(), inr,&ns16550_kbd);144 async_irq_subscribe(inr, device_assign_devno(), ns16550_irq_handler, NULL, 145 &ns16550_kbd); 140 146 147 void *vaddr; 141 148 return pio_enable((void *) ns16550_physical, 8, &vaddr); 142 149 } … … 147 154 } 148 155 149 static void ns16550_irq_handler(ipc_callid_t iid, ipc_call_t *call)150 {151 kbd_push_data(kbd_dev, IPC_GET_ARG2(*call));152 153 if (irc_service) {154 async_exch_t *exch = async_exchange_begin(irc_sess);155 async_msg_1(exch, IRC_CLEAR_INTERRUPT, IPC_GET_IMETHOD(*call));156 async_exchange_end(exch);157 }158 }159 160 156 /** 161 157 * @} -
uspace/srv/hid/input/port/pl050.c
r83f29e0 r8820544 101 101 }; 102 102 103 static void pl050_irq_handler(ipc_callid_t iid, ipc_call_t *call); 103 static void pl050_irq_handler(ipc_callid_t iid, ipc_call_t *call, void *arg) 104 { 105 kbd_push_data(kbd_dev, IPC_GET_ARG2(*call)); 106 } 104 107 105 108 static int pl050_port_init(kbd_dev_t *kdev) … … 119 122 return -1; 120 123 121 async_ set_interrupt_received(pl050_irq_handler);122 irq_register(inr, device_assign_devno(), 0,&pl050_kbd);124 async_irq_subscribe(inr, device_assign_devno(), pl050_irq_handler, NULL, 125 &pl050_kbd); 123 126 124 127 return 0; … … 130 133 } 131 134 132 static void pl050_irq_handler(ipc_callid_t iid, ipc_call_t *call)133 {134 kbd_push_data(kbd_dev, IPC_GET_ARG2(*call));135 }136 137 135 /** 138 136 * @}
Note:
See TracChangeset
for help on using the changeset viewer.