Changeset 6f04905 in mainline for uspace/lib/drv/generic/remote_usbhc.c
- Timestamp:
- 2010-12-04T16:58:31Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ad104e0
- Parents:
- 36c410e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/generic/remote_usbhc.c
r36c410e r6f04905 52 52 static void remote_usbhc_control_read_data(device_t *, void *, ipc_callid_t, ipc_call_t *); 53 53 static void remote_usbhc_control_read_status(device_t *, void *, ipc_callid_t, ipc_call_t *); 54 static void remote_usbhc_reserve_default_address(device_t *, void *, ipc_callid_t, ipc_call_t *); 55 static void remote_usbhc_release_default_address(device_t *, void *, ipc_callid_t, ipc_call_t *); 56 static void remote_usbhc_request_address(device_t *, void *, ipc_callid_t, ipc_call_t *); 57 static void remote_usbhc_release_address(device_t *, void *, ipc_callid_t, ipc_call_t *); 54 58 //static void remote_usbhc(device_t *, void *, ipc_callid_t, ipc_call_t *); 55 59 … … 57 61 static remote_iface_func_ptr_t remote_usbhc_iface_ops [] = { 58 62 remote_usbhc_get_address, 63 59 64 remote_usbhc_get_buffer, 65 66 remote_usbhc_reserve_default_address, 67 remote_usbhc_release_default_address, 68 69 remote_usbhc_request_address, 70 remote_usbhc_release_address, 71 60 72 remote_usbhc_interrupt_out, 61 73 remote_usbhc_interrupt_in, 74 62 75 remote_usbhc_control_write_setup, 63 76 remote_usbhc_control_write_data, 64 77 remote_usbhc_control_write_status, 78 65 79 remote_usbhc_control_read_setup, 66 80 remote_usbhc_control_read_data, … … 134 148 free(trans->buffer); 135 149 free(trans); 150 } 151 152 void remote_usbhc_reserve_default_address(device_t *device, void *iface, 153 ipc_callid_t callid, ipc_call_t *call) 154 { 155 usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface; 156 157 if (!usb_iface->reserve_default_address) { 158 ipc_answer_0(callid, ENOTSUP); 159 return; 160 } 161 162 int rc = usb_iface->reserve_default_address(device); 163 164 ipc_answer_0(callid, rc); 165 } 166 167 void remote_usbhc_release_default_address(device_t *device, void *iface, 168 ipc_callid_t callid, ipc_call_t *call) 169 { 170 usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface; 171 172 if (!usb_iface->release_default_address) { 173 ipc_answer_0(callid, ENOTSUP); 174 return; 175 } 176 177 int rc = usb_iface->release_default_address(device); 178 179 ipc_answer_0(callid, rc); 180 } 181 182 void remote_usbhc_request_address(device_t *device, void *iface, 183 ipc_callid_t callid, ipc_call_t *call) 184 { 185 usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface; 186 187 if (!usb_iface->request_address) { 188 ipc_answer_0(callid, ENOTSUP); 189 return; 190 } 191 192 usb_address_t address; 193 int rc = usb_iface->request_address(device, &address); 194 if (rc != EOK) { 195 ipc_answer_0(callid, rc); 196 } else { 197 ipc_answer_1(callid, EOK, (ipcarg_t) address); 198 } 199 } 200 201 void remote_usbhc_release_address(device_t *device, void *iface, 202 ipc_callid_t callid, ipc_call_t *call) 203 { 204 usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface; 205 206 if (!usb_iface->release_address) { 207 ipc_answer_0(callid, ENOTSUP); 208 return; 209 } 210 211 usb_address_t address = (usb_address_t) IPC_GET_ARG1(*call); 212 213 int rc = usb_iface->release_address(device, address); 214 215 ipc_answer_0(callid, rc); 136 216 } 137 217
Note:
See TracChangeset
for help on using the changeset viewer.