Changeset 28eee11c in mainline for uspace/lib/usb/include
- Timestamp:
- 2011-03-21T15:12:04Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5287502
- Parents:
- 5971dd3 (diff), 7102aa5 (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/lib/usb/include/usb
- Files:
-
- 6 edited
-
devdrv.h (modified) (1 diff)
-
host/batch.h (modified) (4 diffs)
-
host/device_keeper.h (modified) (3 diffs)
-
pipes.h (modified) (3 diffs)
-
recognise.h (modified) (1 diff)
-
request.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usb/include/usb/devdrv.h
r5971dd3 r28eee11c 41 41 typedef struct { 42 42 /** The default control pipe. */ 43 usb_ endpoint_pipe_t ctrl_pipe;43 usb_pipe_t ctrl_pipe; 44 44 /** Other endpoint pipes. 45 45 * This is an array of other endpoint pipes in the same order as -
uspace/lib/usb/include/usb/host/batch.h
r5971dd3 r28eee11c 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 /** @addtogroup drvusbuhcihc28 /** @addtogroup libusb 29 29 * @{ 30 30 */ 31 31 /** @file 32 * @brief UHCI driver USB transaction structure32 * USB transfer transaction structures. 33 33 */ 34 34 #ifndef LIBUSB_HOST_BATCH_H … … 40 40 #include <usb/usb.h> 41 41 42 typedef struct batch43 {42 typedef struct usb_transfer_batch usb_transfer_batch_t; 43 struct usb_transfer_batch { 44 44 link_t link; 45 45 usb_target_t target; … … 56 56 size_t max_packet_size; 57 57 size_t transfered_size; 58 void (*next_step)( struct batch*);58 void (*next_step)(usb_transfer_batch_t *); 59 59 int error; 60 60 ddf_fun_t *fun; 61 61 void *arg; 62 62 void *private_data; 63 } batch_t;63 }; 64 64 65 void batch_init(66 batch_t *instance,65 void usb_transfer_batch_init( 66 usb_transfer_batch_t *instance, 67 67 usb_target_t target, 68 68 usb_transfer_type_t transfer_type, … … 81 81 ); 82 82 83 static inline batch_t *batch_from_link(link_t *link_ptr)83 static inline usb_transfer_batch_t *usb_transfer_batch_from_link(link_t *l) 84 84 { 85 assert(l ink_ptr);86 return list_get_instance(l ink_ptr,batch_t, link);85 assert(l); 86 return list_get_instance(l, usb_transfer_batch_t, link); 87 87 } 88 88 89 void batch_call_in(batch_t *instance); 90 void batch_call_out(batch_t *instance); 91 void batch_finish(batch_t *instance, int error); 89 void usb_transfer_batch_call_in(usb_transfer_batch_t *instance); 90 void usb_transfer_batch_call_out(usb_transfer_batch_t *instance); 91 void usb_transfer_batch_finish(usb_transfer_batch_t *instance, int error); 92 92 93 #endif 93 94 /** -
uspace/lib/usb/include/usb/host/device_keeper.h
r5971dd3 r28eee11c 31 31 */ 32 32 /** @file 33 * @brief UHCI driver 33 * Device keeper structure and functions. 34 * 35 * Typical USB host controller needs to keep track of various settings for 36 * each device that is connected to it. 37 * State of toggle bit, device speed etc. etc. 38 * This structure shall simplify the management. 34 39 */ 35 40 #ifndef LIBUSB_HOST_DEVICE_KEEPER_H … … 39 44 #include <usb/usb.h> 40 45 46 /** Number of USB address for array dimensions. */ 41 47 #define USB_ADDRESS_COUNT (USB11_ADDRESS_MAX + 1) 42 48 49 /** Information about attached USB device. */ 43 50 struct usb_device_info { 44 51 usb_speed_t speed; … … 48 55 }; 49 56 50 typedef struct device_keeper { 57 /** Host controller device keeper. 58 * You shall not access members directly but only using functions below. 59 */ 60 typedef struct { 51 61 struct usb_device_info devices[USB_ADDRESS_COUNT]; 52 62 fibril_mutex_t guard; 53 63 fibril_condvar_t default_address_occupied; 54 64 usb_address_t last_address; 55 } device_keeper_t;65 } usb_device_keeper_t; 56 66 57 void device_keeper_init(device_keeper_t *instance);67 void usb_device_keeper_init(usb_device_keeper_t *instance); 58 68 59 void device_keeper_reserve_default(60 device_keeper_t *instance,usb_speed_t speed);69 void usb_device_keeper_reserve_default_address(usb_device_keeper_t *instance, 70 usb_speed_t speed); 61 71 62 void device_keeper_release_default(device_keeper_t *instance);72 void usb_device_keeper_release_default_address(usb_device_keeper_t *instance); 63 73 64 void device_keeper_reset_if_need(65 device_keeper_t *instance,usb_target_t target,66 const u nsigned char*setup_data);74 void usb_device_keeper_reset_if_need(usb_device_keeper_t *instance, 75 usb_target_t target, 76 const uint8_t *setup_data); 67 77 68 int device_keeper_get_toggle(69 device_keeper_t *instance,usb_target_t target, usb_direction_t direction);78 int usb_device_keeper_get_toggle(usb_device_keeper_t *instance, 79 usb_target_t target, usb_direction_t direction); 70 80 71 int device_keeper_set_toggle(device_keeper_t *instance,81 int usb_device_keeper_set_toggle(usb_device_keeper_t *instance, 72 82 usb_target_t target, usb_direction_t direction, bool toggle); 73 83 74 usb_address_t device_keeper_ request(75 device_keeper_t *instance,usb_speed_t speed);84 usb_address_t device_keeper_get_free_address(usb_device_keeper_t *instance, 85 usb_speed_t speed); 76 86 77 void device_keeper_bind(78 device_keeper_t *instance,usb_address_t address, devman_handle_t handle);87 void usb_device_keeper_bind(usb_device_keeper_t *instance, 88 usb_address_t address, devman_handle_t handle); 79 89 80 void device_keeper_release(device_keeper_t *instance, usb_address_t address); 90 void usb_device_keeper_release(usb_device_keeper_t *instance, 91 usb_address_t address); 81 92 82 usb_address_t device_keeper_find(83 dev ice_keeper_t *instance, devman_handle_t handle);93 usb_address_t usb_device_keeper_find(usb_device_keeper_t *instance, 94 devman_handle_t handle); 84 95 85 usb_speed_t device_keeper_speed( 86 device_keeper_t *instance, usb_address_t address); 96 usb_speed_t usb_device_keeper_get_speed(usb_device_keeper_t *instance, 97 usb_address_t address); 98 87 99 #endif 88 100 /** -
uspace/lib/usb/include/usb/pipes.h
r5971dd3 r28eee11c 80 80 */ 81 81 int hc_phone; 82 } usb_ endpoint_pipe_t;82 } usb_pipe_t; 83 83 84 84 … … 102 102 typedef struct { 103 103 /** Endpoint pipe. */ 104 usb_ endpoint_pipe_t *pipe;104 usb_pipe_t *pipe; 105 105 /** Endpoint description. */ 106 106 const usb_endpoint_description_t *description; … … 125 125 usb_address_t usb_device_get_assigned_address(devman_handle_t); 126 126 127 int usb_endpoint_pipe_initialize(usb_endpoint_pipe_t *, 128 usb_device_connection_t *, 127 int usb_pipe_initialize(usb_pipe_t *, usb_device_connection_t *, 129 128 usb_endpoint_t, usb_transfer_type_t, size_t, usb_direction_t); 130 int usb_ endpoint_pipe_initialize_default_control(usb_endpoint_pipe_t *,129 int usb_pipe_initialize_default_control(usb_pipe_t *, 131 130 usb_device_connection_t *); 132 int usb_ endpoint_pipe_probe_default_control(usb_endpoint_pipe_t *);133 int usb_ endpoint_pipe_initialize_from_configuration(usb_endpoint_mapping_t *,131 int usb_pipe_probe_default_control(usb_pipe_t *); 132 int usb_pipe_initialize_from_configuration(usb_endpoint_mapping_t *, 134 133 size_t, uint8_t *, size_t, usb_device_connection_t *); 135 int usb_endpoint_pipe_register(usb_endpoint_pipe_t *, unsigned int, 136 usb_hc_connection_t *); 137 int usb_endpoint_pipe_unregister(usb_endpoint_pipe_t *, usb_hc_connection_t *); 134 int usb_pipe_register(usb_pipe_t *, unsigned int, usb_hc_connection_t *); 135 int usb_pipe_unregister(usb_pipe_t *, usb_hc_connection_t *); 138 136 139 int usb_ endpoint_pipe_start_session(usb_endpoint_pipe_t *);140 int usb_ endpoint_pipe_end_session(usb_endpoint_pipe_t *);141 bool usb_ endpoint_pipe_is_session_started(usb_endpoint_pipe_t *);137 int usb_pipe_start_session(usb_pipe_t *); 138 int usb_pipe_end_session(usb_pipe_t *); 139 bool usb_pipe_is_session_started(usb_pipe_t *); 142 140 143 int usb_ endpoint_pipe_read(usb_endpoint_pipe_t *, void *, size_t, size_t *);144 int usb_ endpoint_pipe_write(usb_endpoint_pipe_t *, void *, size_t);141 int usb_pipe_read(usb_pipe_t *, void *, size_t, size_t *); 142 int usb_pipe_write(usb_pipe_t *, void *, size_t); 145 143 146 int usb_ endpoint_pipe_control_read(usb_endpoint_pipe_t *, void *, size_t,144 int usb_pipe_control_read(usb_pipe_t *, void *, size_t, 147 145 void *, size_t, size_t *); 148 int usb_ endpoint_pipe_control_write(usb_endpoint_pipe_t *, void *, size_t,146 int usb_pipe_control_write(usb_pipe_t *, void *, size_t, 149 147 void *, size_t); 150 148 -
uspace/lib/usb/include/usb/recognise.h
r5971dd3 r28eee11c 48 48 const usb_standard_interface_descriptor_t *, match_id_list_t *); 49 49 50 int usb_device_create_match_ids(usb_ endpoint_pipe_t *, match_id_list_t *);50 int usb_device_create_match_ids(usb_pipe_t *, match_id_list_t *); 51 51 52 52 int usb_device_register_child_in_devman(usb_address_t, devman_handle_t, -
uspace/lib/usb/include/usb/request.h
r5971dd3 r28eee11c 86 86 } __attribute__ ((packed)) usb_device_request_setup_packet_t; 87 87 88 int usb_control_request_set(usb_ endpoint_pipe_t *,88 int usb_control_request_set(usb_pipe_t *, 89 89 usb_request_type_t, usb_request_recipient_t, uint8_t, 90 90 uint16_t, uint16_t, void *, size_t); 91 91 92 int usb_control_request_get(usb_ endpoint_pipe_t *,92 int usb_control_request_get(usb_pipe_t *, 93 93 usb_request_type_t, usb_request_recipient_t, uint8_t, 94 94 uint16_t, uint16_t, void *, size_t, size_t *); 95 95 96 int usb_request_get_status(usb_ endpoint_pipe_t *, usb_request_recipient_t,96 int usb_request_get_status(usb_pipe_t *, usb_request_recipient_t, 97 97 uint16_t, uint16_t *); 98 int usb_request_clear_feature(usb_ endpoint_pipe_t *, usb_request_type_t,98 int usb_request_clear_feature(usb_pipe_t *, usb_request_type_t, 99 99 usb_request_recipient_t, uint16_t, uint16_t); 100 int usb_request_set_feature(usb_ endpoint_pipe_t *, usb_request_type_t,100 int usb_request_set_feature(usb_pipe_t *, usb_request_type_t, 101 101 usb_request_recipient_t, uint16_t, uint16_t); 102 int usb_request_set_address(usb_ endpoint_pipe_t *, usb_address_t);103 int usb_request_get_descriptor(usb_ endpoint_pipe_t *, usb_request_type_t,102 int usb_request_set_address(usb_pipe_t *, usb_address_t); 103 int usb_request_get_descriptor(usb_pipe_t *, usb_request_type_t, 104 104 usb_request_recipient_t, uint8_t, uint8_t, uint16_t, void *, size_t, 105 105 size_t *); 106 int usb_request_get_descriptor_alloc(usb_ endpoint_pipe_t *, usb_request_type_t,106 int usb_request_get_descriptor_alloc(usb_pipe_t *, usb_request_type_t, 107 107 usb_request_recipient_t, uint8_t, uint8_t, uint16_t, void **, size_t *); 108 int usb_request_get_device_descriptor(usb_ endpoint_pipe_t *,108 int usb_request_get_device_descriptor(usb_pipe_t *, 109 109 usb_standard_device_descriptor_t *); 110 int usb_request_get_bare_configuration_descriptor(usb_ endpoint_pipe_t *, int,110 int usb_request_get_bare_configuration_descriptor(usb_pipe_t *, int, 111 111 usb_standard_configuration_descriptor_t *); 112 int usb_request_get_full_configuration_descriptor(usb_ endpoint_pipe_t *, int,112 int usb_request_get_full_configuration_descriptor(usb_pipe_t *, int, 113 113 void *, size_t, size_t *); 114 int usb_request_get_full_configuration_descriptor_alloc(usb_ endpoint_pipe_t *,114 int usb_request_get_full_configuration_descriptor_alloc(usb_pipe_t *, 115 115 int, void **, size_t *); 116 int usb_request_set_descriptor(usb_ endpoint_pipe_t *, usb_request_type_t,116 int usb_request_set_descriptor(usb_pipe_t *, usb_request_type_t, 117 117 usb_request_recipient_t, uint8_t, uint8_t, uint16_t, void *, size_t); 118 int usb_request_get_configuration(usb_ endpoint_pipe_t *, uint8_t *);119 int usb_request_set_configuration(usb_ endpoint_pipe_t *, uint8_t);120 int usb_request_get_interface(usb_ endpoint_pipe_t *, uint8_t, uint8_t *);121 int usb_request_set_interface(usb_ endpoint_pipe_t *, uint8_t, uint8_t);118 int usb_request_get_configuration(usb_pipe_t *, uint8_t *); 119 int usb_request_set_configuration(usb_pipe_t *, uint8_t); 120 int usb_request_get_interface(usb_pipe_t *, uint8_t, uint8_t *); 121 int usb_request_set_interface(usb_pipe_t *, uint8_t, uint8_t); 122 122 123 int usb_request_get_supported_languages(usb_ endpoint_pipe_t *,123 int usb_request_get_supported_languages(usb_pipe_t *, 124 124 l18_win_locales_t **, size_t *); 125 int usb_request_get_string(usb_ endpoint_pipe_t *, size_t, l18_win_locales_t,125 int usb_request_get_string(usb_pipe_t *, size_t, l18_win_locales_t, 126 126 char **); 127 127
Note:
See TracChangeset
for help on using the changeset viewer.
