- Timestamp:
- 2011-01-28T12:41:33Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ba5ab09
- Parents:
- c2020f7 (diff), ea6a824 (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. - Location:
- uspace
- Files:
-
- 2 added
- 89 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/Makefile
rc2020f7 r81c0854f 53 53 app/usbinfo \ 54 54 app/virtusbkbd \ 55 app/virtusbhub \ 55 56 app/netecho \ 56 57 app/nettest1 \ -
uspace/app/tasks/tasks.c
rc2020f7 r81c0854f 66 66 } 67 67 68 printf(" 68 printf(" Task ID Threads Mem uCycles kCycles Name\n"); 69 69 70 70 size_t i; … … 96 96 } 97 97 98 printf(" 98 printf(" ThrID State CPU Prio [k]uCycles [k]kcycles Cycle fault\n"); 99 99 size_t i; 100 100 for (i = 0; i < count; i++) { -
uspace/app/top/screen.c
rc2020f7 r81c0854f 274 274 { 275 275 screen_style_inverted(); 276 printf("[taskid] [threads] [ virtual] [%%virt] [%%user]"277 " [%% kernel] [name");276 printf("[taskid] [threads] [resident] [%%resi] [virtual] [%%virt]" 277 " [%%user] [%%kern] [name"); 278 278 screen_newline(); 279 279 screen_style_normal(); … … 295 295 perc_task_t *perc = data->tasks_perc + data->tasks_map[i]; 296 296 297 uint64_t resmem; 298 char resmem_suffix; 299 order_suffix(task->resmem, &resmem, &resmem_suffix); 300 297 301 uint64_t virtmem; 298 302 char virtmem_suffix; 299 303 order_suffix(task->virtmem, &virtmem, &virtmem_suffix); 300 304 301 printf("%-8" PRIu64 " %9zu %8" PRIu64 "%c ", task->task_id, 302 task->threads, virtmem, virtmem_suffix); 305 printf("%-8" PRIu64 " %9zu %9" PRIu64 "%c ", 306 task->task_id, task->threads, resmem, resmem_suffix); 307 print_percent(perc->resmem, 2); 308 printf(" %8" PRIu64 "%c ", virtmem, virtmem_suffix); 303 309 print_percent(perc->virtmem, 2); 304 310 puts(" "); 305 311 print_percent(perc->ucycles, 2); 306 puts(" 312 puts(" "); 307 313 print_percent(perc->kcycles, 2); 308 314 puts(" "); -
uspace/app/top/top.c
rc2020f7 r81c0854f 195 195 196 196 uint64_t virtmem_total = 0; 197 uint64_t resmem_total = 0; 197 198 uint64_t ucycles_total = 0; 198 199 uint64_t kcycles_total = 0; … … 223 224 224 225 virtmem_total += new_data->tasks[i].virtmem; 226 resmem_total += new_data->tasks[i].resmem; 225 227 ucycles_total += new_data->ucycles_diff[i]; 226 228 kcycles_total += new_data->kcycles_diff[i]; … … 232 234 FRACTION_TO_FLOAT(new_data->tasks_perc[i].virtmem, 233 235 new_data->tasks[i].virtmem * 100, virtmem_total); 236 FRACTION_TO_FLOAT(new_data->tasks_perc[i].resmem, 237 new_data->tasks[i].resmem * 100, resmem_total); 234 238 FRACTION_TO_FLOAT(new_data->tasks_perc[i].ucycles, 235 239 new_data->ucycles_diff[i] * 100, ucycles_total); -
uspace/app/top/top.h
rc2020f7 r81c0854f 77 77 typedef struct { 78 78 fixed_float virtmem; 79 fixed_float resmem; 79 80 fixed_float ucycles; 80 81 fixed_float kcycles; -
uspace/app/trace/syscalls.c
rc2020f7 r81c0854f 77 77 [SYS_SYSINFO_GET_VALUE] = { "sysinfo_get_value", 3, V_ERRNO }, 78 78 [SYS_SYSINFO_GET_DATA_SIZE] = { "sysinfo_get_data_size", 3, V_ERRNO }, 79 [SYS_SYSINFO_GET_DATA] = { "sysinfo_get_data", 4, V_ERRNO },79 [SYS_SYSINFO_GET_DATA] = { "sysinfo_get_data", 5, V_ERRNO }, 80 80 81 81 [SYS_DEBUG_ENABLE_CONSOLE] = { "debug_enable_console", 0, V_ERRNO }, -
uspace/app/virtusbkbd/descriptor.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/items.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/kbdconfig.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/kbdconfig.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/keys.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/keys.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/report.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/stdreq.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/stdreq.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/app/virtusbkbd/virtusbkbd.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb 29 /** @addtogroup usbvirtkbd 30 30 * @{ 31 31 */ -
uspace/doc/doxygroups.h
rc2020f7 r81c0854f 176 176 * @brief Library for creating USB devices drivers. 177 177 */ 178 179 /** 180 * @defgroup usbvirt USB virtualization 181 * @ingroup usb 182 * @brief Support for virtual USB devices. 183 */ 184 185 /** 186 * @defgroup libusbvirt USB virtualization library 187 * @ingroup usbvirt 188 * @brief Library for creating virtual USB devices. 189 */ 190 191 /** 192 * @defgroup drvusbvhc Virtual USB host controller 193 * @ingroup usbvirt 194 * @brief Driver simulating work of USB host controller. 195 */ 196 197 /** 198 * @defgroup usbvirthub Virtual USB hub 199 * @ingroup usbvirt 200 * @brief Extra virtual USB hub for virtual host controller. 201 * @details 202 * Some of the sources are shared with virtual host controller, 203 * see @ref drvusbvhc for the rest of the files. 204 */ 205 206 /** 207 * @defgroup usbvirtkbd Virtual USB keybaord 208 * @ingroup usbvirt 209 * @brief Virtual USB keyboard for virtual host controller. 210 */ 211 212 /** 213 * @defgroup drvusbhub USB hub driver 214 * @ingroup usb 215 * @brief USB hub driver. 216 */ 217 218 /** 219 * @defgroup drvusbhid USB HID driver 220 * @ingroup usb 221 * @brief USB driver for HID devices. 222 */ 223 224 /** 225 * @defgroup drvusbuhci UHCI driver 226 * @ingroup usb 227 * @brief Driver for USB host controller UHCI. 228 */ 229 -
uspace/drv/usbhub/main.c
rc2020f7 r81c0854f 25 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 /** @addtogroup drvusbhub 30 * @{ 27 31 */ 28 32 … … 60 64 int main(int argc, char *argv[]) 61 65 { 62 usb_dprintf_enable(NAME,1); 66 usb_dprintf_enable(NAME, 0); 67 63 68 futex_initialize(&usb_hub_list_lock, 0); 64 69 usb_lst_init(&usb_hub_list); 65 70 futex_up(&usb_hub_list_lock); 71 66 72 fid_t fid = fibril_create(usb_hub_control_loop, NULL); 67 73 if (fid == 0) { 68 dprintf(1, "failed to start fibril for HUB devices");69 //printf("%s: failed to start fibril for HUB devices\n", NAME);74 fprintf(stderr, NAME ": failed to start monitoring fibril," \ 75 " driver aborting.\n"); 70 76 return ENOMEM; 71 77 } … … 74 80 return driver_main(&hub_driver); 75 81 } 82 83 /** 84 * @} 85 */ 86 -
uspace/drv/usbhub/port_status.h
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup drvusbhub 29 * @{ 30 */ 28 31 29 32 #ifndef PORT_STATUS_H … … 302 305 #endif /* PORT_STATUS_H */ 303 306 307 /** 308 * @} 309 */ -
uspace/drv/usbhub/usbhub.c
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup usb hub driver28 /** @addtogroup drvusbhub 29 29 * @{ 30 30 */ … … 76 76 //get some hub info 77 77 usb_address_t addr = usb_drv_get_my_address(hc, device); 78 dprintf(1, "[usb_hub]address of newly created hub = %d", addr);78 dprintf(1, "address of newly created hub = %d", addr); 79 79 /*if(addr<0){ 80 80 //return result; … … 100 100 101 101 if (opResult != EOK) { 102 dprintf(1, "[usb_hub]failed when receiving hub descriptor, badcode = %d",opResult);102 dprintf(1, "failed when receiving hub descriptor, badcode = %d",opResult); 103 103 free(serialized_descriptor); 104 104 return result; … … 107 107 descriptor = usb_deserialize_hub_desriptor(serialized_descriptor); 108 108 if(descriptor==NULL){ 109 dprintf(1, "[usb_hub]could not deserialize descriptor ");109 dprintf(1, "could not deserialize descriptor "); 110 110 result->port_count = 1;///\TODO this code is only for debug!!! 111 111 return result; … … 127 127 //finish 128 128 129 dprintf(1, "[usb_hub]hub info created");129 dprintf(1, "hub info created"); 130 130 131 131 return result; … … 134 134 int usb_add_hub_device(device_t *dev) { 135 135 dprintf(1, "add_hub_device(handle=%d)", (int) dev->handle); 136 dprintf(1, "[usb_hub]hub device");136 dprintf(1, "hub device"); 137 137 138 138 /* … … 162 162 usb_standard_device_descriptor_t std_descriptor; 163 163 opResult = usb_drv_req_get_device_descriptor(hc, target.address, 164 &std_descriptor);164 &std_descriptor); 165 165 if(opResult!=EOK){ 166 dprintf(1, "[usb_hub]could not get device descriptor, %d",opResult);166 dprintf(1, "could not get device descriptor, %d",opResult); 167 167 return opResult; 168 168 } 169 dprintf(1, "[usb_hub]hub has %d configurations",std_descriptor.configuration_count);169 dprintf(1, "hub has %d configurations",std_descriptor.configuration_count); 170 170 if(std_descriptor.configuration_count<1){ 171 dprintf(1, "[usb_hub]THERE ARE NO CONFIGURATIONS AVAILABLE");171 dprintf(1, "THERE ARE NO CONFIGURATIONS AVAILABLE"); 172 172 //shouldn`t I return? 173 173 } … … 178 178 &config_descriptor); 179 179 if(opResult!=EOK){ 180 dprintf(1, "[usb_hub]could not get configuration descriptor, %d",opResult);180 dprintf(1, "could not get configuration descriptor, %d",opResult); 181 181 return opResult; 182 182 } … … 186 186 187 187 if (opResult != EOK) { 188 dprintf(1, "[usb_hub]something went wrong when setting hub`s configuration, %d", opResult);188 dprintf(1, "something went wrong when setting hub`s configuration, %d", opResult); 189 189 } 190 190 … … 193 193 usb_hub_set_power_port_request(&request, port); 194 194 opResult = usb_drv_sync_control_write(hc, target, &request, NULL, 0); 195 dprintf(1, "[usb_hub]powering port %d",port);195 dprintf(1, "powering port %d",port); 196 196 if (opResult != EOK) { 197 dprintf(1, "[usb_hub]something went wrong when setting hub`s %dth port", port);197 dprintf(1, "something went wrong when setting hub`s %dth port", port); 198 198 } 199 199 } … … 207 207 futex_up(&usb_hub_list_lock); 208 208 209 dprintf(1, "[usb_hub]hub info added to list");209 dprintf(1, "hub info added to list"); 210 210 //(void)hub_info; 211 211 usb_hub_check_hub_changes(); … … 213 213 214 214 215 dprintf(1, "[usb_hub]hub dev added");216 dprintf(1, "\taddress %d, has %d ports ",215 dprintf(1, "hub dev added"); 216 dprintf(1, "\taddress %d, has %d ports ", 217 217 hub_info->usb_device->address, 218 218 hub_info->port_count); 219 dprintf(1, "\tused configuration %d",config_descriptor.configuration_number);219 dprintf(1, "\tused configuration %d",config_descriptor.configuration_number); 220 220 221 221 return EOK; … … 238 238 inline static int usb_hub_release_default_address(int hc){ 239 239 int opResult; 240 dprintf(1, "[usb_hub]releasing default address");240 dprintf(1, "releasing default address"); 241 241 opResult = usb_drv_release_default_address(hc); 242 242 if (opResult != EOK) { 243 dprintf(1, "[usb_hub]failed to release default address");243 dprintf(1, "failed to release default address"); 244 244 } 245 245 return opResult; … … 255 255 usb_device_request_setup_packet_t request; 256 256 int opResult; 257 dprintf(1, "[usb_hub]some connection changed");257 dprintf(1, "some connection changed"); 258 258 //get default address 259 259 opResult = usb_drv_reserve_default_address(hc); 260 260 if (opResult != EOK) { 261 dprintf(1, "[usb_hub]cannot assign default address, it is probably used");261 dprintf(1, "cannot assign default address, it is probably used"); 262 262 return; 263 263 } … … 270 270 ); 271 271 if (opResult != EOK) { 272 dprintf(1, "[usb_hub]something went wrong when reseting a port");272 dprintf(1, "something went wrong when reseting a port"); 273 273 usb_hub_release_default_address(hc); 274 274 } … … 285 285 286 286 int opResult; 287 dprintf(1, "[usb_hub]finalizing add device");287 dprintf(1, "finalizing add device"); 288 288 opResult = usb_hub_clear_port_feature(hc, target.address, 289 289 port, USB_HUB_FEATURE_C_PORT_RESET); 290 290 if (opResult != EOK) { 291 dprintf(1, "[usb_hub]failed to clear port reset feature");291 dprintf(1, "failed to clear port reset feature"); 292 292 usb_hub_release_default_address(hc); 293 293 return; … … 297 297 usb_address_t new_device_address = usb_drv_request_address(hc); 298 298 if (new_device_address < 0) { 299 dprintf(1, "[usb_hub]failed to get free USB address");299 dprintf(1, "failed to get free USB address"); 300 300 opResult = new_device_address; 301 301 usb_hub_release_default_address(hc); 302 302 return; 303 303 } 304 dprintf(1, "[usb_hub]setting new address");304 dprintf(1, "setting new address"); 305 305 opResult = usb_drv_req_set_address(hc, USB_ADDRESS_DEFAULT, 306 306 new_device_address); 307 307 308 308 if (opResult != EOK) { 309 dprintf(1, "[usb_hub]could not set address for new device");309 dprintf(1, "could not set address for new device"); 310 310 usb_hub_release_default_address(hc); 311 311 return; … … 322 322 new_device_address, &child_handle); 323 323 if (opResult != EOK) { 324 dprintf(1, "[usb_hub]could not start driver for new device");324 dprintf(1, "could not start driver for new device"); 325 325 return; 326 326 } … … 330 330 opResult = usb_drv_bind_address(hc, new_device_address, child_handle); 331 331 if (opResult != EOK) { 332 dprintf(1, "[usb_hub]could not assign address of device in hcd");333 return; 334 } 335 dprintf(1, "[usb_hub]new device address %d, handle %zu",332 dprintf(1, "could not assign address of device in hcd"); 333 return; 334 } 335 dprintf(1, "new device address %d, handle %zu", 336 336 new_device_address, child_handle); 337 337 … … 358 358 opResult = usb_drv_release_address(hc,hub->attached_devs[port].address); 359 359 if(opResult != EOK) { 360 dprintf(1, 361 "[usb_hub] could not release address of removed device: %d" 362 ,opResult); 360 dprintf(1, "could not release address of " \ 361 "removed device: %d", opResult); 363 362 } 364 363 hub->attached_devs[port].address = 0; 365 364 }else{ 366 dprintf(1, 367 "[usb_hub] this is strange, disconnected device had no address"); 365 dprintf(1, "this is strange, disconnected device had no address"); 368 366 //device was disconnected before it`s port was reset - return default address 369 367 usb_drv_release_default_address(hc); … … 379 377 static void usb_hub_process_interrupt(usb_hub_info_t * hub, int hc, 380 378 uint16_t port, usb_address_t address) { 381 dprintf(1, "[usb_hub]interrupt at port %d", port);379 dprintf(1, "interrupt at port %d", port); 382 380 //determine type of change 383 381 usb_target_t target; … … 397 395 ); 398 396 if (opResult != EOK) { 399 dprintf(1, "[usb_hub]ERROR: could not get port status");397 dprintf(1, "ERROR: could not get port status"); 400 398 return; 401 399 } 402 400 if (rcvd_size != sizeof (usb_port_status_t)) { 403 dprintf(1, "[usb_hub]ERROR: received status has incorrect size");401 dprintf(1, "ERROR: received status has incorrect size"); 404 402 return; 405 403 } … … 410 408 // TODO: check opResult 411 409 if (usb_port_dev_connected(&status)) { 412 dprintf(1, "[usb_hub]some connection changed");410 dprintf(1, "some connection changed"); 413 411 usb_hub_init_add_device(hc, port, target); 414 412 } else { … … 418 416 //port reset 419 417 if (usb_port_reset_completed(&status)) { 420 dprintf(1, "[usb_hub]port reset complete");418 dprintf(1, "port reset complete"); 421 419 if (usb_port_enabled(&status)) { 422 420 usb_hub_finalize_add_device(hub, hc, port, target); 423 421 } else { 424 dprintf(1, "[usb_hub]ERROR: port reset, but port still not enabled");422 dprintf(1, "ERROR: port reset, but port still not enabled"); 425 423 } 426 424 } … … 431 429 usb_port_set_dev_connected(&status, false); 432 430 if (status>>16) { 433 dprintf(1, "[usb_hub]there was some unsupported change on port %d: %X",port,status);431 dprintf(1, "there was some unsupported change on port %d: %X",port,status); 434 432 435 433 } … … 460 458 target.address = hub_info->usb_device->address; 461 459 target.endpoint = 1;/// \TODO get from endpoint descriptor 462 /*dprintf(1,"[usb_hub]checking changes for hub at addr %d",463 target.address); */460 dprintf(1, "checking changes for hub at addr %d", 461 target.address); 464 462 465 463 size_t port_count = hub_info->port_count; … … 490 488 491 489 if (opResult != EOK) { 492 dprintf(1, "[usb_hub]something went wrong while getting status of hub");490 dprintf(1, "something went wrong while getting status of hub"); 493 491 continue; 494 492 } -
uspace/drv/usbhub/usbhub.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbhub 30 30 * @{ 31 31 */ -
uspace/drv/usbhub/usbhub_private.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbhub 30 30 * @{ 31 31 */ -
uspace/drv/usbhub/usblist.c
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup usb hub driver28 /** @addtogroup drvusbhub 29 29 * @{ 30 30 */ -
uspace/drv/usbhub/usblist.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 30 #ifndef USBLIST_H 31 #define USBLIST_H 32 /** @addtogroup usb hub driver 29 /** @addtogroup drvusbhub 33 30 * @{ 34 31 */ … … 40 37 * much simpler and more straight-forward semantics. 41 38 */ 39 #ifndef USBLIST_H 40 #define USBLIST_H 42 41 43 42 /** … … 78 77 } 79 78 80 79 #endif /* USBLIST_H */ 81 80 /** 82 81 * @} 83 82 */ 84 85 86 87 #endif /* USBLIST_H */88 -
uspace/drv/usbhub/utils.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup drvusbhub 30 30 * @{ 31 31 */ -
uspace/drv/usbkbd/descdump.c
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup drvusbhid 29 * @{ 30 */ 31 28 32 #include <usb/classes/hid.h> 29 33 … … 143 147 dump_buffer("", d, size); 144 148 } 149 150 /** 151 * @} 152 */ 153 -
uspace/drv/usbkbd/descdump.h
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup drvusbhid 29 * @{ 30 */ 28 31 #ifndef USBHID_DESCDUMP_H_ 29 32 #define USBHID_DESCDUMP_H_ … … 50 53 51 54 #endif /* USBHID_DESCDUMP_H_ */ 55 56 /** 57 * @} 58 */ -
uspace/drv/usbkbd/descparser.c
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup drvusbhid 29 * @{ 30 */ 31 28 32 #include <errno.h> 29 33 #include <stdint.h> … … 338 342 } 339 343 } 344 345 /** 346 * @} 347 */ -
uspace/drv/usbkbd/descparser.h
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup drvusbhid 29 * @{ 30 */ 31 28 32 #ifndef USBHID_DESCPARSER_H_ 29 33 #define USBHID_DESCPARSER_H_ … … 37 41 38 42 #endif 43 44 /** 45 * @} 46 */ -
uspace/drv/usbkbd/main.c
rc2020f7 r81c0854f 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup drvusbhid 29 * @{ 30 */ 28 31 #include <usb/usbdrv.h> 29 32 #include <driver.h> … … 394 397 return driver_main(&kbd_driver); 395 398 } 399 400 /** 401 * @} 402 */ -
uspace/drv/vhc/conn.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 51 51 52 52 void default_connection_handler(device_t *, ipc_callid_t, ipc_call_t *); 53 void on_client_close(device_t *); 53 54 54 55 -
uspace/drv/vhc/conndev.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 88 88 int callback = IPC_GET_ARG5(*icall); 89 89 virtdev_connection_t *dev 90 = virtdev_add_device(callback );90 = virtdev_add_device(callback, (sysarg_t)fibril_get_id()); 91 91 if (!dev) { 92 92 ipc_answer_0(icallid, EEXISTS); … … 99 99 int rc = get_device_name(callback, devname, DEVICE_NAME_MAXLENGTH); 100 100 101 dprintf(0, "virtual device connected (name: %s)", 102 rc == EOK ? devname : "<unknown>"); 103 104 /* FIXME: destroy the device when the client disconnects. */ 101 dprintf(0, "virtual device connected (name: %s, id: %x)", 102 rc == EOK ? devname : "<unknown>", dev->id); 105 103 106 104 return; … … 110 108 } 111 109 110 /** Callback for DDF when client disconnects. 111 * 112 * @param d Device the client was connected to. 113 */ 114 void on_client_close(device_t *d) 115 { 116 /* 117 * Maybe a virtual device is being unplugged. 118 */ 119 virtdev_connection_t *dev = virtdev_find((sysarg_t)fibril_get_id()); 120 if (dev == NULL) { 121 return; 122 } 123 124 dprintf(0, "virtual device disconnected (id: %x)", dev->id); 125 virtdev_destroy_device(dev); 126 } 127 112 128 113 129 /** -
uspace/drv/vhc/connhost.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/drv/vhc/debug.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/drv/vhc/devices.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 58 58 /** Create virtual device. 59 59 * 60 * @param address USB address.61 60 * @param phone Callback phone. 61 * @param id Device id. 62 62 * @return New device. 63 * @retval NULL Out of memory or address already occupied.64 */ 65 virtdev_connection_t *virtdev_add_device(int phone )63 * @retval NULL Out of memory. 64 */ 65 virtdev_connection_t *virtdev_add_device(int phone, sysarg_t id) 66 66 { 67 67 virtdev_connection_t *dev = (virtdev_connection_t *) 68 68 malloc(sizeof(virtdev_connection_t)); 69 if (dev == NULL) { 70 return NULL; 71 } 72 69 73 dev->phone = phone; 74 dev->id = id; 70 75 list_append(&dev->link, &devices); 71 76 … … 73 78 74 79 return dev; 80 } 81 82 /** Find virtual device by id. 83 * 84 * @param id Device id. 85 * @return Device with given id. 86 * @retval NULL No such device. 87 */ 88 virtdev_connection_t *virtdev_find(sysarg_t id) 89 { 90 link_t *pos; 91 list_foreach(pos, &devices) { 92 virtdev_connection_t *dev 93 = list_get_instance(pos, virtdev_connection_t, link); 94 if (dev->id == id) { 95 return dev; 96 } 97 } 98 99 return NULL; 75 100 } 76 101 … … 90 115 usb_transaction_outcome_t virtdev_send_to_all(transaction_t *transaction) 91 116 { 117 /* For easier debugging. */ 118 switch (transaction->type) { 119 case USBVIRT_TRANSACTION_SETUP: 120 case USBVIRT_TRANSACTION_OUT: 121 transaction->actual_len = transaction->len; 122 break; 123 case USBVIRT_TRANSACTION_IN: 124 transaction->actual_len = 0; 125 break; 126 default: 127 assert(false && "unreachable branch in switch()"); 128 } 129 usb_transaction_outcome_t outcome = USB_OUTCOME_BABBLE; 130 92 131 link_t *pos; 93 132 list_foreach(pos, &devices) { … … 140 179 transaction->actual_len = IPC_GET_ARG1(answer_data); 141 180 rc = (int)answer_rc; 181 } 182 183 /* 184 * If at least one device was able to accept this 185 * transaction and process it, we can announce success. 186 */ 187 if (rc == EOK) { 188 outcome = USB_OUTCOME_OK; 142 189 } 143 190 } … … 165 212 transaction->buffer, transaction->len, 166 213 &tmp); 167 if (tmp < transaction->len) { 168 transaction->len = tmp; 169 } 214 transaction->actual_len = tmp; 170 215 break; 171 216 … … 178 223 } 179 224 dprintf(4, "transaction on hub processed..."); 225 outcome = USB_OUTCOME_OK; 180 226 } 181 227 … … 184 230 * real-life image. 185 231 */ 186 return USB_OUTCOME_OK;232 return outcome; 187 233 } 188 234 -
uspace/drv/vhc/devices.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 45 45 /** Phone used when sending data to device. */ 46 46 int phone; 47 /** Unique identification. */ 48 sysarg_t id; 47 49 /** Linked-list handle. */ 48 50 link_t link; 49 51 } virtdev_connection_t; 50 52 51 virtdev_connection_t *virtdev_add_device(int );52 virtdev_connection_t *virtdev_ get_mine(void);53 virtdev_connection_t *virtdev_add_device(int, sysarg_t); 54 virtdev_connection_t *virtdev_find(sysarg_t); 53 55 void virtdev_destroy_device(virtdev_connection_t *); 54 56 usb_transaction_outcome_t virtdev_send_to_all(transaction_t *); -
uspace/drv/vhc/hc.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/drv/vhc/hc.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/drv/vhc/hcd.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 69 69 .interfaces[USBHC_DEV_IFACE] = &vhc_iface, 70 70 .interfaces[USB_DEV_IFACE] = &hc_usb_iface, 71 .close = on_client_close, 71 72 .default_handler = default_connection_handler 72 73 }; -
uspace/drv/vhc/hub.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/drv/vhc/hub.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/drv/vhc/hub/hub.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 155 155 } 156 156 157 /** Disconnects a device from a hub. 158 * 159 * @param hub Hub the device was connected to. 160 * @param device Device to be disconnected. 161 * @return Error code. 162 */ 163 int hub_disconnect_device(hub_t *hub, void *device) 164 { 165 size_t index = hub_find_device(hub, device); 166 if (index == (size_t) -1) { 167 return ENOENT; 168 } 169 170 hub_port_t *port = &hub->ports[index]; 171 172 port->connected_device = NULL; 173 port->state = HUB_PORT_STATE_DISCONNECTED; 174 set_port_status_change(port, HUB_STATUS_C_PORT_CONNECTION); 175 176 return EOK; 177 } 178 157 179 /** Find port device is connected to. 158 180 * … … 173 195 } 174 196 175 return 0;197 return -1; 176 198 } 177 199 -
uspace/drv/vhc/hub/hub.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 38 38 #include <fibril_synch.h> 39 39 40 #ifndef HUB_PORT_COUNT 40 41 #define HUB_PORT_COUNT 2 42 #endif 41 43 #define BITS2BYTES(bits) (bits ? ((((bits)-1)>>3)+1) : 0) 42 44 … … 94 96 void hub_init(hub_t *); 95 97 size_t hub_connect_device(hub_t *, void *); 98 int hub_disconnect_device(hub_t *, void *); 96 99 size_t hub_find_device(hub_t *, void *); 97 100 void hub_acquire(hub_t *); -
uspace/drv/vhc/hub/virthub.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 164 164 dev->device_data = hub; 165 165 166 usbvirt_connect_local(dev); 167 168 return EOK; 166 int rc; 167 #ifdef STANDALONE_HUB 168 dev->name = "hub"; 169 rc = usbvirt_connect(dev); 170 #else 171 rc = usbvirt_connect_local(dev); 172 #endif 173 174 return rc; 169 175 } 170 176 … … 203 209 204 210 hub_acquire(hub); 205 /* TODO: implement. */211 hub_disconnect_device(hub, conn); 206 212 hub_release(hub); 207 213 -
uspace/drv/vhc/hub/virthub.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ … … 37 37 38 38 #include <usbvirt/device.h> 39 #include "hub.h" 40 41 #ifdef STANDALONE_HUB 42 #define virtdev_connection_t int 43 #else 39 44 #include "../devices.h" 40 # include "hub.h"45 #endif 41 46 42 47 /** Endpoint number for status change pipe. */ -
uspace/drv/vhc/hub/virthubops.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/drv/vhc/vhcd.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup usb29 /** @addtogroup drvusbvhc 30 30 * @{ 31 31 */ -
uspace/lib/c/generic/stats.c
rc2020f7 r81c0854f 36 36 #include <stats.h> 37 37 #include <sysinfo.h> 38 #include <assert.h>39 38 #include <errno.h> 40 39 #include <stdio.h> 41 40 #include <inttypes.h> 41 #include <malloc.h> 42 42 43 43 #define SYSINFO_STATS_MAX_PATH 64 … … 71 71 (stats_cpu_t *) sysinfo_get_data("system.cpus", &size); 72 72 73 assert((size % sizeof(stats_cpu_t)) == 0); 73 if ((size % sizeof(stats_cpu_t)) != 0) { 74 if (stats_cpus != NULL) 75 free(stats_cpus); 76 *count = 0; 77 return NULL; 78 } 74 79 75 80 *count = size / sizeof(stats_cpu_t); … … 91 96 (stats_physmem_t *) sysinfo_get_data("system.physmem", &size); 92 97 93 assert((size == sizeof(stats_physmem_t)) || (size == 0)); 98 if (size != sizeof(stats_physmem_t)) { 99 if (stats_physmem != NULL) 100 free(stats_physmem); 101 return NULL; 102 } 94 103 95 104 return stats_physmem; … … 111 120 (stats_task_t *) sysinfo_get_data("system.tasks", &size); 112 121 113 assert((size % sizeof(stats_task_t)) == 0); 122 if ((size % sizeof(stats_task_t)) != 0) { 123 if (stats_tasks != NULL) 124 free(stats_tasks); 125 *count = 0; 126 return NULL; 127 } 114 128 115 129 *count = size / sizeof(stats_task_t); … … 135 149 (stats_task_t *) sysinfo_get_data(name, &size); 136 150 137 assert((size == sizeof(stats_task_t)) || (size == 0)); 151 if (size != sizeof(stats_task_t)) { 152 if (stats_task != NULL) 153 free(stats_task); 154 return NULL; 155 } 138 156 139 157 return stats_task; … … 155 173 (stats_thread_t *) sysinfo_get_data("system.threads", &size); 156 174 157 assert((size % sizeof(stats_thread_t)) == 0); 175 if ((size % sizeof(stats_thread_t)) != 0) { 176 if (stats_threads != NULL) 177 free(stats_threads); 178 *count = 0; 179 return NULL; 180 } 158 181 159 182 *count = size / sizeof(stats_thread_t); … … 179 202 (stats_thread_t *) sysinfo_get_data(name, &size); 180 203 181 assert((size == sizeof(stats_thread_t)) || (size == 0)); 204 if (size != sizeof(stats_thread_t)) { 205 if (stats_thread != NULL) 206 free(stats_thread); 207 return NULL; 208 } 182 209 183 210 return stats_thread; … … 199 226 (stats_exc_t *) sysinfo_get_data("system.exceptions", &size); 200 227 201 assert((size % sizeof(stats_exc_t)) == 0); 228 if ((size % sizeof(stats_exc_t)) != 0) { 229 if (stats_exceptions != NULL) 230 free(stats_exceptions); 231 *count = 0; 232 return NULL; 233 } 202 234 203 235 *count = size / sizeof(stats_exc_t); … … 217 249 { 218 250 char name[SYSINFO_STATS_MAX_PATH]; 219 snprintf(name, SYSINFO_STATS_MAX_PATH, "system.exceptions s.%u", excn);251 snprintf(name, SYSINFO_STATS_MAX_PATH, "system.exceptions.%u", excn); 220 252 221 253 size_t size = 0; … … 223 255 (stats_exc_t *) sysinfo_get_data(name, &size); 224 256 225 assert((size == sizeof(stats_exc_t)) || (size == 0)); 257 if (size != sizeof(stats_exc_t)) { 258 if (stats_exception != NULL) 259 free(stats_exception); 260 return NULL; 261 } 226 262 227 263 return stats_exception; … … 243 279 (load_t *) sysinfo_get_data("system.load", &size); 244 280 245 assert((size % sizeof(load_t)) == 0); 281 if ((size % sizeof(load_t)) != 0) { 282 if (load != NULL) 283 free(load); 284 *count = 0; 285 return NULL; 286 } 246 287 247 288 *count = size / sizeof(load_t); -
uspace/lib/c/generic/sysinfo.c
rc2020f7 r81c0854f 96 96 void *sysinfo_get_data(const char *path, size_t *size) 97 97 { 98 /* The binary data size might change during time. 99 Unfortunatelly we cannot allocate the buffer 100 and transfer the data as a single atomic operation. 98 /* 99 * The binary data size might change during time. 100 * Unfortunatelly we cannot allocate the buffer 101 * and transfer the data as a single atomic operation. 102 */ 101 103 102 Let's hope that the number of iterations is bounded 103 in common cases. */ 104 105 void *data = NULL; 106 107 while (true) { 108 /* Get the binary data size */ 109 int ret = sysinfo_get_data_size(path, size); 110 if ((ret != EOK) || (size == 0)) { 111 /* Not a binary data item 112 or an empty item */ 113 break; 114 } 115 116 data = realloc(data, *size); 117 if (data == NULL) 118 break; 119 120 /* Get the data */ 121 ret = __SYSCALL4(SYS_SYSINFO_GET_DATA, (sysarg_t) path, 122 (sysarg_t) str_size(path), (sysarg_t) data, (sysarg_t) *size); 123 if (ret == EOK) 124 return data; 125 126 if (ret != ENOMEM) { 127 /* The failure to get the data was not caused 128 by wrong buffer size */ 129 break; 130 } 104 /* Get the binary data size */ 105 int ret = sysinfo_get_data_size(path, size); 106 if ((ret != EOK) || (size == 0)) { 107 /* 108 * Not a binary data item 109 * or an empty item. 110 */ 111 *size = 0; 112 return NULL; 131 113 } 132 114 133 if (data != NULL) 134 free(data); 115 void *data = malloc(*size); 116 if (data == NULL) { 117 *size = 0; 118 return NULL; 119 } 135 120 121 /* Get the data */ 122 size_t sz; 123 ret = __SYSCALL5(SYS_SYSINFO_GET_DATA, (sysarg_t) path, 124 (sysarg_t) str_size(path), (sysarg_t) data, (sysarg_t) *size, 125 (sysarg_t) &sz); 126 if (ret == EOK) { 127 *size = sz; 128 return data; 129 } 130 131 free(data); 136 132 *size = 0; 137 133 return NULL; -
uspace/lib/drv/generic/remote_usbhc.c
rc2020f7 r81c0854f 243 243 244 244 // FIXME - answer according to outcome 245 ipc_answer_0(trans->caller, EOK);245 ipc_answer_0(trans->caller, outcome); 246 246 247 247 free(trans); … … 254 254 255 255 // FIXME - answer according to outcome 256 ipc_answer_1(trans->caller, EOK, (sysarg_t)trans);256 ipc_answer_1(trans->caller, outcome, (sysarg_t)trans); 257 257 258 258 trans->size = actual_size; -
uspace/lib/drv/include/usb_iface.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libdrv usb 29 /** @addtogroup libdrv 30 * @addtogroup usb 30 31 * @{ 31 32 */ -
uspace/lib/drv/include/usbhc_iface.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libdrv usb 29 /** @addtogroup libdrv 30 * @addtogroup usb 30 31 * @{ 31 32 */ -
uspace/lib/usb/include/usb/classes/classes.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/classes/hid.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/classes/hidparser.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/classes/hidut.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/classes/hidutkbd.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/classes/hub.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ … … 68 68 * For more information see Universal Serial Bus Specification Revision 1.1 chapter 11.16.2 69 69 */ 70 typedef struct hub_descriptor_type{70 typedef struct usb_hub_descriptor_type { 71 71 /** Number of bytes in this descriptor, including this byte */ 72 72 //uint8_t bDescLength; -
uspace/lib/usb/include/usb/debug.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ … … 45 45 46 46 #endif 47 /** 48 * @} 49 */ 50 -
uspace/lib/usb/include/usb/descriptor.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/devreq.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/hcd.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ … … 81 81 devman_handle_t); 82 82 83 84 83 #endif 84 /** 85 * @} 86 */ -
uspace/lib/usb/include/usb/hcdhubd.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/usb.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/include/usb/usbdrv.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/addrkeep.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/class.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/debug.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/dp.c
rc2020f7 r81c0854f 45 45 * @param data Parser data. 46 46 * @param ptr Pointer to be verified. 47 * @return Whether @p tr points inside <code>data->data</code> field.47 * @return Whether @p ptr points inside <code>data->data</code> field. 48 48 */ 49 49 static bool is_valid_descriptor_pointer(usb_dp_parser_data_t *data, -
uspace/lib/usb/src/drvpsync.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/hcdhubd.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/hcdhubd_private.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/hcdrv.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/hidparser.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/localdrv.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/recognise.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ … … 39 39 #include <errno.h> 40 40 41 /** Callback for getting host controller handle. 42 * 43 * @param dev Device in question. 44 * @param[out] handle Devman handle of the host controller. 45 * @return Error code. 46 */ 41 47 static int usb_iface_get_hc_handle(device_t *dev, devman_handle_t *handle) 42 48 { … … 237 243 * @param matches Match ids list to add matches to. 238 244 * @param address USB address of the attached device. 245 * @param config_count Number of configurations the device has. 239 246 * @return Error code. 240 247 */ … … 342 349 /** Probe for device kind and register it in devman. 343 350 * 344 * @param hc Open phone to the host controller. 345 * @param parent Parent device. 346 * @param address Address of the (unknown) attached device. 351 * @param[in] hc Open phone to the host controller. 352 * @param[in] parent Parent device. 353 * @param[in] address Address of the (unknown) attached device. 354 * @param[out] child_handle Handle of the child device. 347 355 * @return Error code. 348 356 */ -
uspace/lib/usb/src/remotedrv.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/usb.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/usbdrv.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ -
uspace/lib/usb/src/usbdrvreq.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusb usb29 /** @addtogroup libusb 30 30 * @{ 31 31 */ … … 188 188 * @param[in] phone Open phone to HC driver. 189 189 * @param[in] old_address Current address. 190 * @param[in] address Address to be set.190 * @param[in] new_address Address to be set. 191 191 * @return Error code. 192 192 */ -
uspace/lib/usbvirt/include/usbvirt/device.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ -
uspace/lib/usbvirt/include/usbvirt/hub.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ -
uspace/lib/usbvirt/src/callback.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ -
uspace/lib/usbvirt/src/ctrlpipe.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ -
uspace/lib/usbvirt/src/debug.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ -
uspace/lib/usbvirt/src/main.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ … … 183 183 /** Create necessary phones for communication with virtual HCD. 184 184 * This function wraps following calls: 185 * -# open <code>/dev/devices/\\virt\\usbhc for reading185 * -# open <code>/dev/devices/\\virt\\usbhc</code> for reading 186 186 * -# access phone of file opened in previous step 187 187 * -# create callback through just opened phone -
uspace/lib/usbvirt/src/private.h
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ -
uspace/lib/usbvirt/src/stdreq.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */ -
uspace/lib/usbvirt/src/transaction.c
rc2020f7 r81c0854f 27 27 */ 28 28 29 /** @addtogroup libusbvirt usb29 /** @addtogroup libusbvirt 30 30 * @{ 31 31 */
Note:
See TracChangeset
for help on using the changeset viewer.