Changeset 6e3c005 in mainline for uspace/lib/usbdev/include/usb/dev/usb_device_connection.h
- Timestamp:
- 2011-12-14T15:29:41Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a0487a2
- Parents:
- 22ecbde
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/include/usb/dev/usb_device_connection.h
r22ecbde r6e3c005 52 52 } usb_device_connection_t; 53 53 54 /** Initialize device connection. Set address and hc connection. 55 * @param instance Structure to initialize. 56 * @param hc_connection. Host controller connection to use. 57 * @param address USB address. 58 * @return Error code. 59 */ 54 60 static inline int usb_device_connection_initialize( 55 usb_device_connection_t * connection, usb_hc_connection_t *hc_connection,61 usb_device_connection_t *instance, usb_hc_connection_t *hc_connection, 56 62 usb_address_t address) 57 63 { 58 assert( connection);64 assert(instance); 59 65 if (hc_connection == NULL) 60 66 return EBADMEM; … … 62 68 return EINVAL; 63 69 64 connection->hc_connection = hc_connection;65 connection->address = address;70 instance->hc_connection = hc_connection; 71 instance->address = address; 66 72 return EOK; 67 73 } 68 74 /*----------------------------------------------------------------------------*/ 69 static inline int usb_device_register_endpoint(usb_device_connection_t *conn, 70 usb_endpoint_t ep, usb_transfer_type_t type, usb_direction_t direction, 75 /** Register endpoint on the device. 76 * @param instance device connection structure to use. 77 * @param ep USB endpoint number. 78 * @param type Communication type of the endpoint. 79 * @param direction Communication direction. 80 * @param packet_size Maximum packet size for the endpoint. 81 * @param interval Preferrred interval between communication. 82 * @return Error code. 83 */ 84 static inline int usb_device_register_endpoint( 85 usb_device_connection_t *instance, usb_endpoint_t ep, 86 usb_transfer_type_t type, usb_direction_t direction, 71 87 size_t packet_size, unsigned interval) 72 88 { 73 assert( conn);74 return usb_hc_register_endpoint( conn->hc_connection,75 conn->address, ep, type, direction, packet_size, interval);89 assert(instance); 90 return usb_hc_register_endpoint(instance->hc_connection, 91 instance->address, ep, type, direction, packet_size, interval); 76 92 } 77 93 /*----------------------------------------------------------------------------*/ 78 static inline int usb_device_unregister_endpoint(usb_device_connection_t *conn, 79 usb_endpoint_t ep, usb_direction_t direction) 94 /** Unregister endpoint on the device. 95 * @param instance device connection structure 96 * @param ep Endpoint number. 97 * @param dir Communication direction. 98 * @return Error code. 99 */ 100 static inline int usb_device_unregister_endpoint( 101 usb_device_connection_t *instance, usb_endpoint_t ep, usb_direction_t dir) 80 102 { 81 assert( conn);82 return usb_hc_unregister_endpoint( conn->hc_connection,83 conn->address, ep, direction);103 assert(instance); 104 return usb_hc_unregister_endpoint(instance->hc_connection, 105 instance->address, ep, dir); 84 106 } 85 107 /*----------------------------------------------------------------------------*/ 86 static inline int usb_device_control_read(usb_device_connection_t *conn, 108 /** Get data from the device. 109 * @param[in] instance device connection structure to use. 110 * @param[in] ep target endpoint's number. 111 * @param[in] setup Setup stage data (control transfers). 112 * @param[in] data data buffer. 113 * @param[in] size size of the data buffer. 114 * @param[out] rsize bytes actually copied to the buffer. 115 * @return Error code. 116 */ 117 static inline int usb_device_control_read(usb_device_connection_t *instance, 87 118 usb_endpoint_t ep, uint64_t setup, void *data, size_t size, size_t *rsize) 88 119 { 89 assert( conn);90 return usb_hc_read( conn->hc_connection,91 conn->address, ep, setup, data, size, rsize);120 assert(instance); 121 return usb_hc_read(instance->hc_connection, 122 instance->address, ep, setup, data, size, rsize); 92 123 } 93 124 /*----------------------------------------------------------------------------*/ 94 static inline int usb_device_control_write(usb_device_connection_t *conn, 125 /** Send data to the device. 126 * @param instance device connection structure to use. 127 * @param ep target endpoint's number. 128 * @param setup Setup stage data (control transfers). 129 * @param data data buffer. 130 * @param size size of the data buffer. 131 * @return Error code. 132 */ 133 static inline int usb_device_control_write(usb_device_connection_t *instance, 95 134 usb_endpoint_t ep, uint64_t setup, const void *data, size_t size) 96 135 { 97 assert( conn);98 return usb_hc_write( conn->hc_connection,99 conn->address, ep, setup, data, size);136 assert(instance); 137 return usb_hc_write(instance->hc_connection, 138 instance->address, ep, setup, data, size); 100 139 } 101 140 /*----------------------------------------------------------------------------*/ 102 141 /** Wrapper for read calls with no setup stage. 103 * @param[in] connection hc connection to use.142 * @param[in] instance device connection structure. 104 143 * @param[in] address USB device address. 105 144 * @param[in] endpoint USB device endpoint. … … 109 148 * @return Error code. 110 149 */ 111 static inline int usb_device_read(usb_device_connection_t * conn,150 static inline int usb_device_read(usb_device_connection_t *instance, 112 151 usb_endpoint_t ep, void *data, size_t size, size_t *real_size) 113 152 { 114 return usb_device_control_read( conn, ep, 0, data, size, real_size);153 return usb_device_control_read(instance, ep, 0, data, size, real_size); 115 154 } 116 155 /*----------------------------------------------------------------------------*/ 117 156 /** Wrapper for write calls with no setup stage. 118 * @param connection hc connection to use.157 * @param instance device connection structure. 119 158 * @param address USB device address. 120 159 * @param endpoint USB device endpoint. … … 123 162 * @return Error code. 124 163 */ 125 static inline int usb_device_write(usb_device_connection_t * conn,164 static inline int usb_device_write(usb_device_connection_t *instance, 126 165 usb_endpoint_t ep, const void *data, size_t size) 127 166 { 128 return usb_device_control_write( conn, ep, 0, data, size);167 return usb_device_control_write(instance, ep, 0, data, size); 129 168 } 130 169 #endif
Note:
See TracChangeset
for help on using the changeset viewer.