Changeset 88be3a0b in mainline for uspace/drv
- Timestamp:
- 2011-05-17T18:44:43Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6bfaab5
- Parents:
- d83bf51 (diff), 2586860 (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/drv
- Files:
-
- 42 edited
-
ohci/root_hub.c (modified) (1 diff)
-
ohci/root_hub.h (modified) (1 diff)
-
uhci-rhd/port.c (modified) (1 diff)
-
uhci-rhd/port.h (modified) (1 diff)
-
usbflbk/main.c (modified) (1 diff)
-
usbhid/generic/hiddev.h (modified) (1 diff)
-
usbhid/kbd/kbddev.c (modified) (1 diff)
-
usbhid/kbd/kbddev.h (modified) (1 diff)
-
usbhid/kbd/main.c (modified) (1 diff)
-
usbhid/lgtch-ultrax/lgtch-ultrax.c (modified) (1 diff)
-
usbhid/lgtch-ultrax/lgtch-ultrax.h (modified) (1 diff)
-
usbhid/main.c (modified) (2 diffs)
-
usbhid/mouse/mousedev.c (modified) (1 diff)
-
usbhid/mouse/mousedev.h (modified) (1 diff)
-
usbhid/subdrivers.c (modified) (1 diff)
-
usbhid/usbhid.c (modified) (1 diff)
-
usbhid/usbhid.h (modified) (1 diff)
-
usbhub/main.c (modified) (1 diff)
-
usbhub/port_status.h (modified) (1 diff)
-
usbhub/ports.h (modified) (1 diff)
-
usbhub/usbhub.c (modified) (2 diffs)
-
usbhub/usbhub.h (modified) (1 diff)
-
usbhub/usbhub_private.h (modified) (1 diff)
-
usbkbd/kbddev.c (modified) (1 diff)
-
usbkbd/kbddev.h (modified) (1 diff)
-
usbkbd/main.c (modified) (1 diff)
-
usbmast/inquiry.c (modified) (1 diff)
-
usbmast/main.c (modified) (1 diff)
-
usbmast/mast.c (modified) (1 diff)
-
usbmast/mast.h (modified) (1 diff)
-
usbmid/dump.c (modified) (1 diff)
-
usbmid/explore.c (modified) (1 diff)
-
usbmid/main.c (modified) (1 diff)
-
usbmid/usbmid.c (modified) (1 diff)
-
usbmid/usbmid.h (modified) (1 diff)
-
usbmouse/init.c (modified) (1 diff)
-
usbmouse/main.c (modified) (1 diff)
-
usbmouse/mouse.h (modified) (1 diff)
-
vhc/conndev.c (modified) (3 diffs)
-
vhc/connhost.c (modified) (1 diff)
-
vhc/hub.c (modified) (1 diff)
-
vhc/transfer.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/root_hub.c
rd83bf51 r88be3a0b 39 39 40 40 #include "root_hub.h" 41 #include "usb/classes/classes.h"42 #include "usb/devdrv.h"41 #include <usb/classes/classes.h> 42 #include <usb/dev/driver.h> 43 43 #include "ohci_regs.h" 44 44 45 #include <usb/ request.h>45 #include <usb/dev/request.h> 46 46 #include <usb/classes/hub.h> 47 47 -
uspace/drv/ohci/root_hub.h
rd83bf51 r88be3a0b 36 36 37 37 #include <usb/usb.h> 38 #include <usb/dev drv.h>38 #include <usb/dev/driver.h> 39 39 40 40 #include "ohci_regs.h" -
uspace/drv/uhci-rhd/port.c
rd83bf51 r88be3a0b 37 37 #include <str_error.h> 38 38 #include <time.h> 39 #include <async.h> 39 40 40 41 #include <usb/usb.h> /* usb_address_t */ 41 #include <usb/ hub.h> /* usb_hc_new_device_wrapper */42 #include <usb/dev/hub.h> /* usb_hc_new_device_wrapper */ 42 43 #include <usb/debug.h> 43 44 -
uspace/drv/uhci-rhd/port.h
rd83bf51 r88be3a0b 38 38 #include <fibril.h> 39 39 #include <ddf/driver.h> 40 #include <usb/ usbdevice.h> /* usb_hc_connection_t */40 #include <usb/dev/hc.h> /* usb_hc_connection_t */ 41 41 42 42 typedef uint16_t port_status_t; -
uspace/drv/usbflbk/main.c
rd83bf51 r88be3a0b 34 34 * Main routines of USB fallback driver. 35 35 */ 36 #include <usb/dev drv.h>36 #include <usb/dev/driver.h> 37 37 #include <usb/debug.h> 38 38 #include <errno.h> -
uspace/drv/usbhid/generic/hiddev.h
rd83bf51 r88be3a0b 37 37 #define USB_HID_HIDDDEV_H_ 38 38 39 #include <usb/dev drv.h>39 #include <usb/dev/driver.h> 40 40 41 41 struct usb_hid_dev; -
uspace/drv/usbhid/kbd/kbddev.c
rd83bf51 r88be3a0b 46 46 47 47 #include <usb/usb.h> 48 #include <usb/d p.h>49 #include <usb/ request.h>50 #include <usb/ classes/hid.h>51 #include <usb/ pipes.h>48 #include <usb/dev/dp.h> 49 #include <usb/dev/request.h> 50 #include <usb/hid/hid.h> 51 #include <usb/dev/pipes.h> 52 52 #include <usb/debug.h> 53 #include <usb/ classes/hidparser.h>53 #include <usb/hid/hidparser.h> 54 54 #include <usb/classes/classes.h> 55 #include <usb/ classes/hidut.h>56 #include <usb/ classes/hidreq.h>57 #include <usb/ classes/hidreport.h>58 #include <usb/ classes/hid/utled.h>59 60 #include <usb/dev drv.h>55 #include <usb/hid/usages/core.h> 56 #include <usb/hid/request.h> 57 #include <usb/hid/hidreport.h> 58 #include <usb/hid/usages/led.h> 59 60 #include <usb/dev/driver.h> 61 61 62 62 #include "kbddev.h" -
uspace/drv/usbhid/kbd/kbddev.h
rd83bf51 r88be3a0b 41 41 #include <fibril_synch.h> 42 42 43 #include <usb/ classes/hid.h>44 #include <usb/ classes/hidparser.h>43 #include <usb/hid/hid.h> 44 #include <usb/hid/hidparser.h> 45 45 #include <ddf/driver.h> 46 #include <usb/ pipes.h>47 #include <usb/dev drv.h>46 #include <usb/dev/pipes.h> 47 #include <usb/dev/driver.h> 48 48 49 49 #include "kbdrepeat.h" -
uspace/drv/usbhid/kbd/main.c
rd83bf51 r88be3a0b 41 41 #include <str_error.h> 42 42 43 #include <usb/dev drv.h>43 #include <usb/dev/driver.h> 44 44 45 45 #include "kbddev.h" -
uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c
rd83bf51 r88be3a0b 40 40 #include "keymap.h" 41 41 42 #include <usb/ classes/hidparser.h>42 #include <usb/hid/hidparser.h> 43 43 #include <usb/debug.h> 44 #include <usb/ classes/hidut.h>44 #include <usb/hid/usages/core.h> 45 45 46 46 #include <errno.h> -
uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.h
rd83bf51 r88be3a0b 37 37 #define USB_HID_LGTCH_ULTRAX_H_ 38 38 39 #include <usb/dev drv.h>39 #include <usb/dev/driver.h> 40 40 41 41 struct usb_hid_dev; -
uspace/drv/usbhid/main.c
rd83bf51 r88be3a0b 41 41 #include <str_error.h> 42 42 43 #include <usb/dev drv.h>44 #include <usb/dev poll.h>43 #include <usb/dev/driver.h> 44 #include <usb/dev/poll.h> 45 45 46 46 #include "usbhid.h" … … 202 202 printf(NAME ": HelenOS USB HID driver.\n"); 203 203 204 usb_log_enable(USB_LOG_LEVEL_DE BUG, NAME);204 usb_log_enable(USB_LOG_LEVEL_DEFAULT, NAME); 205 205 206 206 return usb_driver_main(&usb_hid_driver); -
uspace/drv/usbhid/mouse/mousedev.c
rd83bf51 r88be3a0b 37 37 #include <usb/debug.h> 38 38 #include <usb/classes/classes.h> 39 #include <usb/ classes/hid.h>40 #include <usb/ classes/hidreq.h>41 #include <usb/ classes/hidut.h>39 #include <usb/hid/hid.h> 40 #include <usb/hid/request.h> 41 #include <usb/hid/usages/core.h> 42 42 #include <errno.h> 43 43 #include <str_error.h> -
uspace/drv/usbhid/mouse/mousedev.h
rd83bf51 r88be3a0b 37 37 #define USB_HID_MOUSEDEV_H_ 38 38 39 #include <usb/dev drv.h>39 #include <usb/dev/driver.h> 40 40 41 41 struct usb_hid_dev; -
uspace/drv/usbhid/subdrivers.c
rd83bf51 r88be3a0b 35 35 36 36 #include "subdrivers.h" 37 #include "usb/classes/hidut.h"38 #include "usb/classes/hidpath.h"37 #include <usb/hid/usages/core.h> 38 #include <usb/hid/hidpath.h> 39 39 40 40 #include "lgtch-ultrax/lgtch-ultrax.h" -
uspace/drv/usbhid/usbhid.c
rd83bf51 r88be3a0b 37 37 #include <usb/debug.h> 38 38 #include <usb/classes/classes.h> 39 #include <usb/ classes/hid.h>40 #include <usb/ classes/hidparser.h>41 #include <usb/ classes/hidreport.h>42 #include <usb/ classes/hidreq.h>39 #include <usb/hid/hid.h> 40 #include <usb/hid/hidparser.h> 41 #include <usb/hid/hidreport.h> 42 #include <usb/hid/request.h> 43 43 #include <errno.h> 44 44 #include <str_error.h> -
uspace/drv/usbhid/usbhid.h
rd83bf51 r88be3a0b 39 39 #include <stdint.h> 40 40 41 #include <usb/ classes/hidparser.h>41 #include <usb/hid/hidparser.h> 42 42 #include <ddf/driver.h> 43 #include <usb/ pipes.h>44 #include <usb/dev drv.h>45 #include <usb/ classes/hid.h>43 #include <usb/dev/pipes.h> 44 #include <usb/dev/driver.h> 45 #include <usb/hid/hid.h> 46 46 #include <bool.h> 47 47 -
uspace/drv/usbhub/main.c
rd83bf51 r88be3a0b 36 36 #include <stdio.h> 37 37 38 #include <usb/dev drv.h>38 #include <usb/dev/driver.h> 39 39 #include <usb/classes/classes.h> 40 40 -
uspace/drv/usbhub/port_status.h
rd83bf51 r88be3a0b 35 35 #include <bool.h> 36 36 #include <sys/types.h> 37 #include <usb/ request.h>37 #include <usb/dev/request.h> 38 38 #include "usbhub_private.h" 39 39 -
uspace/drv/usbhub/ports.h
rd83bf51 r88be3a0b 36 36 #define DRV_USBHUB_PORTS_H 37 37 38 #include <usb/dev drv.h>39 #include <usb/ hub.h>38 #include <usb/dev/driver.h> 39 #include <usb/dev/hub.h> 40 40 41 41 typedef struct usb_hub_info_t usb_hub_info_t; -
uspace/drv/usbhub/usbhub.c
rd83bf51 r88be3a0b 42 42 #include <usb/ddfiface.h> 43 43 #include <usb/descriptor.h> 44 #include <usb/ recognise.h>45 #include <usb/ request.h>44 #include <usb/dev/recognise.h> 45 #include <usb/dev/request.h> 46 46 #include <usb/classes/hub.h> 47 #include <usb/dev poll.h>47 #include <usb/dev/poll.h> 48 48 #include <stdio.h> 49 49 … … 51 51 #include "usbhub_private.h" 52 52 #include "port_status.h" 53 #include "usb/usb.h"54 #include "usb/pipes.h"55 #include "usb/classes/classes.h"53 #include <usb/usb.h> 54 #include <usb/dev/pipes.h> 55 #include <usb/classes/classes.h> 56 56 57 57 -
uspace/drv/usbhub/usbhub.h
rd83bf51 r88be3a0b 39 39 #include <ddf/driver.h> 40 40 41 #include <usb/ hub.h>41 #include <usb/dev/hub.h> 42 42 #include <usb/classes/hub.h> 43 43 44 #include <usb/ pipes.h>45 #include <usb/dev drv.h>44 #include <usb/dev/pipes.h> 45 #include <usb/dev/driver.h> 46 46 47 47 #include <fibril_synch.h> -
uspace/drv/usbhub/usbhub_private.h
rd83bf51 r88be3a0b 47 47 #include <usb/usb.h> 48 48 #include <usb/debug.h> 49 #include <usb/ request.h>49 #include <usb/dev/request.h> 50 50 51 51 //************ -
uspace/drv/usbkbd/kbddev.c
rd83bf51 r88be3a0b 46 46 47 47 #include <usb/usb.h> 48 #include <usb/d p.h>49 #include <usb/ request.h>50 #include <usb/ classes/hid.h>51 #include <usb/ pipes.h>48 #include <usb/dev/dp.h> 49 #include <usb/dev/request.h> 50 #include <usb/hid/hid.h> 51 #include <usb/dev/pipes.h> 52 52 #include <usb/debug.h> 53 #include <usb/ classes/hidparser.h>53 #include <usb/hid/hidparser.h> 54 54 #include <usb/classes/classes.h> 55 #include <usb/ classes/hidut.h>56 #include <usb/ classes/hidreq.h>57 #include <usb/ classes/hidreport.h>58 #include <usb/ classes/hid/utled.h>59 60 #include <usb/dev drv.h>55 #include <usb/hid/usages/core.h> 56 #include <usb/hid/request.h> 57 #include <usb/hid/hidreport.h> 58 #include <usb/hid/usages/led.h> 59 60 #include <usb/dev/driver.h> 61 61 62 62 #include "kbddev.h" -
uspace/drv/usbkbd/kbddev.h
rd83bf51 r88be3a0b 41 41 #include <fibril_synch.h> 42 42 43 #include <usb/ classes/hid.h>44 #include <usb/ classes/hidparser.h>43 #include <usb/hid/hid.h> 44 #include <usb/hid/hidparser.h> 45 45 #include <ddf/driver.h> 46 #include <usb/ pipes.h>47 #include <usb/dev drv.h>46 #include <usb/dev/pipes.h> 47 #include <usb/dev/driver.h> 48 48 49 49 #include "kbdrepeat.h" -
uspace/drv/usbkbd/main.c
rd83bf51 r88be3a0b 41 41 #include <str_error.h> 42 42 43 #include <usb/dev drv.h>44 #include <usb/dev poll.h>43 #include <usb/dev/driver.h> 44 #include <usb/dev/poll.h> 45 45 46 46 #include "kbddev.h" -
uspace/drv/usbmast/inquiry.c
rd83bf51 r88be3a0b 34 34 * Main routines of USB mass storage driver. 35 35 */ 36 #include <usb/dev drv.h>36 #include <usb/dev/driver.h> 37 37 #include <usb/debug.h> 38 38 #include <usb/classes/classes.h> -
uspace/drv/usbmast/main.c
rd83bf51 r88be3a0b 34 34 * Main routines of USB mass storage driver. 35 35 */ 36 #include <usb/dev drv.h>36 #include <usb/dev/driver.h> 37 37 #include <usb/debug.h> 38 38 #include <usb/classes/classes.h> -
uspace/drv/usbmast/mast.c
rd83bf51 r88be3a0b 40 40 #include <str_error.h> 41 41 #include <usb/debug.h> 42 #include <usb/ request.h>42 #include <usb/dev/request.h> 43 43 44 44 bool usb_mast_verbose = true; -
uspace/drv/usbmast/mast.h
rd83bf51 r88be3a0b 39 39 #include <sys/types.h> 40 40 #include <usb/usb.h> 41 #include <usb/ pipes.h>42 #include <usb/dev drv.h>41 #include <usb/dev/pipes.h> 42 #include <usb/dev/driver.h> 43 43 44 44 /** Result of SCSI INQUIRY command. -
uspace/drv/usbmid/dump.c
rd83bf51 r88be3a0b 37 37 #include <str_error.h> 38 38 #include <stdlib.h> 39 #include <usb/ pipes.h>40 #include <usb/d p.h>39 #include <usb/dev/pipes.h> 40 #include <usb/dev/dp.h> 41 41 #include <usb/classes/classes.h> 42 42 #include "usbmid.h" -
uspace/drv/usbmid/explore.c
rd83bf51 r88be3a0b 38 38 #include <stdlib.h> 39 39 #include <usb/classes/classes.h> 40 #include <usb/ request.h>41 #include <usb/d p.h>40 #include <usb/dev/request.h> 41 #include <usb/dev/dp.h> 42 42 #include <usb/ddfiface.h> 43 43 #include "usbmid.h" -
uspace/drv/usbmid/main.c
rd83bf51 r88be3a0b 38 38 #include <usb/debug.h> 39 39 #include <usb/classes/classes.h> 40 #include <usb/ request.h>40 #include <usb/dev/request.h> 41 41 #include <usb/descriptor.h> 42 #include <usb/ pipes.h>42 #include <usb/dev/pipes.h> 43 43 44 44 #include "usbmid.h" -
uspace/drv/usbmid/usbmid.c
rd83bf51 r88be3a0b 39 39 #include <usb_iface.h> 40 40 #include <usb/ddfiface.h> 41 #include <usb/ pipes.h>41 #include <usb/dev/pipes.h> 42 42 #include <usb/classes/classes.h> 43 #include <usb/ recognise.h>43 #include <usb/dev/recognise.h> 44 44 #include "usbmid.h" 45 45 -
uspace/drv/usbmid/usbmid.h
rd83bf51 r88be3a0b 40 40 #include <ddf/driver.h> 41 41 #include <usb/usb.h> 42 #include <usb/ pipes.h>42 #include <usb/dev/pipes.h> 43 43 #include <usb/debug.h> 44 #include <usb/dev drv.h>44 #include <usb/dev/driver.h> 45 45 46 46 #define NAME "usbmid" -
uspace/drv/usbmouse/init.c
rd83bf51 r88be3a0b 37 37 #include <usb/debug.h> 38 38 #include <usb/classes/classes.h> 39 #include <usb/ classes/hid.h>40 #include <usb/ request.h>39 #include <usb/hid/hid.h> 40 #include <usb/dev/request.h> 41 41 #include <errno.h> 42 42 -
uspace/drv/usbmouse/main.c
rd83bf51 r88be3a0b 36 36 #include "mouse.h" 37 37 #include <usb/debug.h> 38 #include <usb/dev poll.h>38 #include <usb/dev/poll.h> 39 39 #include <errno.h> 40 40 #include <str_error.h> -
uspace/drv/usbmouse/mouse.h
rd83bf51 r88be3a0b 37 37 #define USBMOUSE_MOUSE_H_ 38 38 39 #include <usb/dev drv.h>40 #include <usb/ pipes.h>39 #include <usb/dev/driver.h> 40 #include <usb/dev/pipes.h> 41 41 #include <time.h> 42 42 -
uspace/drv/vhc/conndev.c
rd83bf51 r88be3a0b 37 37 #include <errno.h> 38 38 #include <ddf/driver.h> 39 #include <usbvirt/ipc.h> 39 40 #include "conn.h" 40 41 41 42 static fibril_local uintptr_t plugged_device_handle = 0; 43 #define PLUGGED_DEVICE_NAME_MAXLEN 256 44 static fibril_local char plugged_device_name[PLUGGED_DEVICE_NAME_MAXLEN + 1] = "<unknown>"; 45 46 /** Receive device name. 47 * 48 * @warning Errors are silently ignored. 49 * 50 * @param phone Phone to the virtual device. 51 */ 52 static void receive_device_name(int phone) 53 { 54 aid_t opening_request = async_send_0(phone, IPC_M_USBVIRT_GET_NAME, NULL); 55 if (opening_request == 0) { 56 return; 57 } 58 59 60 ipc_call_t data_request_call; 61 aid_t data_request = async_data_read(phone, 62 plugged_device_name, PLUGGED_DEVICE_NAME_MAXLEN, 63 &data_request_call); 64 65 if (data_request == 0) { 66 async_wait_for(opening_request, NULL); 67 return; 68 } 69 70 sysarg_t data_request_rc; 71 sysarg_t opening_request_rc; 72 async_wait_for(data_request, &data_request_rc); 73 async_wait_for(opening_request, &opening_request_rc); 74 75 if ((data_request_rc != EOK) || (opening_request_rc != EOK)) { 76 return; 77 } 78 79 size_t len = IPC_GET_ARG2(data_request_call); 80 plugged_device_name[len] = 0; 81 } 42 82 43 83 /** Default handler for IPC methods not handled by DDF. … … 65 105 async_answer_0(icallid, EOK); 66 106 67 usb_log_info("New virtual device `%s' (id = %" PRIxn ").\n", 68 rc == EOK ? "XXX" : "<unknown>", plugged_device_handle); 107 receive_device_name(callback); 108 109 usb_log_info("New virtual device `%s' (id: %" PRIxn ").\n", 110 plugged_device_name, plugged_device_handle); 69 111 70 112 return; … … 85 127 86 128 if (plugged_device_handle != 0) { 87 usb_log_info("Virtual device disconnected (id =%" PRIxn ").\n",88 plugged_device_ handle);129 usb_log_info("Virtual device `%s' disconnected (id: %" PRIxn ").\n", 130 plugged_device_name, plugged_device_handle); 89 131 vhc_virtdev_unplug(vhc, plugged_device_handle); 90 132 } -
uspace/drv/vhc/connhost.c
rd83bf51 r88be3a0b 36 36 #include <errno.h> 37 37 #include <usb/usb.h> 38 #include <usb/addrkeep.h>39 38 #include <usb/ddfiface.h> 40 39 #include <usb/debug.h> -
uspace/drv/vhc/hub.c
rd83bf51 r88be3a0b 40 40 #include <ddf/driver.h> 41 41 #include <devman.h> 42 #include <usb/ hub.h>43 #include <usb/ recognise.h>42 #include <usb/dev/hub.h> 43 #include <usb/dev/recognise.h> 44 44 45 45 #include "hub.h" -
uspace/drv/vhc/transfer.c
rd83bf51 r88be3a0b 4 4 #include <usbvirt/ipc.h> 5 5 #include "vhcd.h" 6 7 #define list_foreach(pos, head) \8 for (pos = (head)->next; pos != (head); \9 pos = pos->next)10 6 11 7 vhc_transfer_t *vhc_transfer_create(usb_address_t address, usb_endpoint_t ep, … … 67 63 fibril_mutex_lock(&vhc->guard); 68 64 69 link_t *pos;70 65 bool target_found = false; 71 list_foreach( pos, &vhc->devices) {66 list_foreach(vhc->devices, pos) { 72 67 vhc_virtdev_t *dev = list_get_instance(pos, vhc_virtdev_t, link); 73 68 fibril_mutex_lock(&dev->guard); … … 161 156 } 162 157 158 static vhc_transfer_t *dequeue_first_transfer(vhc_virtdev_t *dev) 159 { 160 assert(fibril_mutex_is_locked(&dev->guard)); 161 assert(!list_empty(&dev->transfer_queue)); 162 163 vhc_transfer_t *transfer = list_get_instance(dev->transfer_queue.next, 164 vhc_transfer_t, link); 165 list_remove(&transfer->link); 166 167 return transfer; 168 } 169 170 171 static void execute_transfer_callback_and_free(vhc_transfer_t *transfer, 172 size_t data_transfer_size, int outcome) 173 { 174 assert(outcome != ENAK); 175 176 usb_log_debug2("Transfer %p ended: %s.\n", 177 transfer, str_error(outcome)); 178 179 if (transfer->direction == USB_DIRECTION_IN) { 180 transfer->callback_in(transfer->ddf_fun, outcome, 181 data_transfer_size, transfer->callback_arg); 182 } else { 183 assert(transfer->direction == USB_DIRECTION_OUT); 184 transfer->callback_out(transfer->ddf_fun, outcome, 185 transfer->callback_arg); 186 } 187 188 free(transfer); 189 } 163 190 164 191 int vhc_transfer_queue_processor(void *arg) … … 174 201 } 175 202 176 vhc_transfer_t *transfer = list_get_instance(dev->transfer_queue.next, 177 vhc_transfer_t, link); 178 list_remove(&transfer->link); 203 vhc_transfer_t *transfer = dequeue_first_transfer(dev); 179 204 fibril_mutex_unlock(&dev->guard); 180 205 … … 214 239 215 240 if (rc != ENAK) { 216 usb_log_debug2("Transfer %p ended: %s.\n", 217 transfer, str_error(rc)); 218 if (transfer->direction == USB_DIRECTION_IN) { 219 transfer->callback_in(transfer->ddf_fun, rc, 220 data_transfer_size, transfer->callback_arg); 221 } else { 222 assert(transfer->direction == USB_DIRECTION_OUT); 223 transfer->callback_out(transfer->ddf_fun, rc, 224 transfer->callback_arg); 225 } 226 free(transfer); 241 execute_transfer_callback_and_free(transfer, 242 data_transfer_size, rc); 227 243 } 228 244 … … 231 247 } 232 248 249 /* Immediately fail all remaining transfers. */ 250 while (!list_empty(&dev->transfer_queue)) { 251 vhc_transfer_t *transfer = dequeue_first_transfer(dev); 252 execute_transfer_callback_and_free(transfer, 0, EBADCHECKSUM); 253 } 254 233 255 fibril_mutex_unlock(&dev->guard); 234 256 235 // TODO - destroy pending transfers236 237 257 return EOK; 238 258 }
Note:
See TracChangeset
for help on using the changeset viewer.
