Changeset 6df14c5 in mainline for uspace/lib/usb/include/usb/hc.h
- Timestamp:
- 2011-12-11T13:34:48Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a045ab1
- Parents:
- 266976f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usb/include/usb/hc.h
r266976f r6df14c5 42 42 #include <bool.h> 43 43 #include <async.h> 44 #include <fibril_synch.h> 44 45 #include <usb/usb.h> 45 46 … … 50 51 /** Session to the host controller. */ 51 52 async_sess_t *hc_sess; 53 /** Session guard. */ 54 fibril_mutex_t guard; 55 /** Use counter. */ 56 unsigned ref_count; 52 57 } usb_hc_connection_t; 58 59 /** Initialize connection to USB host controller. 60 * 61 * @param connection Connection to be initialized. 62 * @param hc_handle Devman handle of the host controller. 63 * @return Error code. 64 */ 65 static inline void usb_hc_connection_initialize(usb_hc_connection_t *connection, 66 devman_handle_t hc_handle) 67 { 68 assert(connection); 69 connection->hc_handle = hc_handle; 70 connection->hc_sess = NULL; 71 connection->ref_count = 0; 72 fibril_mutex_initialize(&connection->guard); 73 74 } 53 75 54 76 int usb_hc_connection_initialize_from_device(usb_hc_connection_t *, 55 77 const ddf_dev_t *); 56 int usb_hc_connection_initialize(usb_hc_connection_t *, devman_handle_t);57 78 58 79 int usb_hc_connection_open(usb_hc_connection_t *); 59 bool usb_hc_connection_is_open ed(const usb_hc_connection_t *);80 bool usb_hc_connection_is_open(const usb_hc_connection_t *); 60 81 int usb_hc_connection_close(usb_hc_connection_t *); 82 83 usb_address_t usb_hc_request_address(usb_hc_connection_t *, usb_address_t, bool, 84 usb_speed_t); 85 int usb_hc_bind_address(usb_hc_connection_t *, usb_address_t, devman_handle_t); 61 86 int usb_hc_get_handle_by_address(usb_hc_connection_t *, usb_address_t, 62 87 devman_handle_t *); 88 int usb_hc_release_address(usb_hc_connection_t *, usb_address_t); 89 90 int usb_hc_register_endpoint(usb_hc_connection_t *, usb_address_t, 91 usb_endpoint_t, usb_transfer_type_t, usb_direction_t, size_t, unsigned int); 92 int usb_hc_unregister_endpoint(usb_hc_connection_t *, usb_address_t, 93 usb_endpoint_t, usb_direction_t); 94 95 int usb_hc_control_read(usb_hc_connection_t *, usb_address_t, usb_endpoint_t, 96 uint64_t, void *, size_t, size_t *); 97 int usb_hc_control_write(usb_hc_connection_t *, usb_address_t, usb_endpoint_t, 98 uint64_t, const void *, size_t); 99 100 static inline int usb_hc_read(usb_hc_connection_t *connection, 101 usb_address_t address, usb_endpoint_t endpoint, void *data, size_t size, 102 size_t *real_size) 103 { 104 return usb_hc_control_read( 105 connection, address, endpoint, 0, data, size, real_size); 106 } 107 108 static inline int usb_hc_write(usb_hc_connection_t *connection, 109 usb_address_t address, usb_endpoint_t endpoint, const void *data, 110 size_t size) 111 { 112 return usb_hc_control_write( 113 connection, address, endpoint, 0, data, size); 114 } 63 115 64 116 usb_address_t usb_get_address_by_handle(devman_handle_t); 65 117 66 int usb_ hc_find(devman_handle_t, devman_handle_t *);118 int usb_find_hc(devman_handle_t, devman_handle_t *); 67 119 68 120 int usb_resolve_device_handle(const char *, devman_handle_t *, usb_address_t *, … … 71 123 int usb_ddf_get_hc_handle_by_sid(service_id_t, devman_handle_t *); 72 124 73 74 125 #endif 75 126 /**
Note:
See TracChangeset
for help on using the changeset viewer.