Changeset 92574f4 in mainline for uspace/lib/drv/generic/remote_usb.c
- Timestamp:
- 2011-02-24T12:03:27Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e7b7ebd5
- Parents:
- 4837092 (diff), a80849c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/generic/remote_usb.c
r4837092 r92574f4 33 33 */ 34 34 35 #include <ipc/ipc.h>36 35 #include <async.h> 37 36 #include <errno.h> 38 37 39 38 #include "usb_iface.h" 40 #include "d river.h"39 #include "ddf/driver.h" 41 40 42 41 43 static void remote_usb_get_hc_handle(device_t *, void *, ipc_callid_t, ipc_call_t *); 42 static void remote_usb_get_address(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 43 static void remote_usb_get_interface(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 44 static void remote_usb_get_hc_handle(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *); 44 45 //static void remote_usb(device_t *, void *, ipc_callid_t, ipc_call_t *); 45 46 46 47 /** Remote USB interface operations. */ 47 48 static remote_iface_func_ptr_t remote_usb_iface_ops [] = { 49 remote_usb_get_address, 50 remote_usb_get_interface, 48 51 remote_usb_get_hc_handle 49 52 }; … … 58 61 59 62 60 void remote_usb_get_hc_handle(device_t *device, void *iface, 63 void remote_usb_get_address(ddf_fun_t *fun, void *iface, 64 ipc_callid_t callid, ipc_call_t *call) 65 { 66 usb_iface_t *usb_iface = (usb_iface_t *) iface; 67 68 if (usb_iface->get_address == NULL) { 69 async_answer_0(callid, ENOTSUP); 70 return; 71 } 72 73 devman_handle_t handle = DEV_IPC_GET_ARG1(*call); 74 75 usb_address_t address; 76 int rc = usb_iface->get_address(fun, handle, &address); 77 if (rc != EOK) { 78 async_answer_0(callid, rc); 79 } else { 80 async_answer_1(callid, EOK, address); 81 } 82 } 83 84 void remote_usb_get_interface(ddf_fun_t *fun, void *iface, 85 ipc_callid_t callid, ipc_call_t *call) 86 { 87 usb_iface_t *usb_iface = (usb_iface_t *) iface; 88 89 if (usb_iface->get_interface == NULL) { 90 async_answer_0(callid, ENOTSUP); 91 return; 92 } 93 94 devman_handle_t handle = DEV_IPC_GET_ARG1(*call); 95 96 int iface_no; 97 int rc = usb_iface->get_interface(fun, handle, &iface_no); 98 if (rc != EOK) { 99 async_answer_0(callid, rc); 100 } else { 101 async_answer_1(callid, EOK, iface_no); 102 } 103 } 104 105 void remote_usb_get_hc_handle(ddf_fun_t *fun, void *iface, 61 106 ipc_callid_t callid, ipc_call_t *call) 62 107 { … … 64 109 65 110 if (usb_iface->get_hc_handle == NULL) { 66 ipc_answer_0(callid, ENOTSUP);111 async_answer_0(callid, ENOTSUP); 67 112 return; 68 113 } 69 114 70 115 devman_handle_t handle; 71 int rc = usb_iface->get_hc_handle( device, &handle);116 int rc = usb_iface->get_hc_handle(fun, &handle); 72 117 if (rc != EOK) { 73 ipc_answer_0(callid, rc);118 async_answer_0(callid, rc); 74 119 } 75 120 76 ipc_answer_1(callid, EOK, (sysarg_t) handle);121 async_answer_1(callid, EOK, (sysarg_t) handle); 77 122 } 78 123
Note:
See TracChangeset
for help on using the changeset viewer.