Changeset 0255d36 in mainline
- Timestamp:
- 2011-11-28T17:07:51Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 69b9740
- Parents:
- d085fbbe
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/altiface.c
rd085fbbe r0255d36 65 65 size_t alternate_count = 0; 66 66 67 const uint8_t *iface_ptr = usb_dp_get_nested_descriptor(&dp_parser,68 &dp_data, config_descr);67 const void *iface_ptr = 68 usb_dp_get_nested_descriptor(&dp_parser, &dp_data, config_descr); 69 69 while (iface_ptr != NULL) { 70 usb_standard_interface_descriptor_t *iface 71 = (usb_standard_interface_descriptor_t *) iface_ptr; 72 if (iface->descriptor_type == USB_DESCTYPE_INTERFACE) { 73 if (iface->interface_number == interface_no) { 74 alternate_count++; 75 } 70 const usb_standard_interface_descriptor_t *iface = iface_ptr; 71 if (iface->descriptor_type == USB_DESCTYPE_INTERFACE 72 && iface->interface_number == interface_no) { 73 ++alternate_count; 76 74 } 77 75 iface_ptr = usb_dp_get_sibling_descriptor(&dp_parser, &dp_data, … … 82 80 } 83 81 84 /** Create alternate interface representation structure.82 /** Initialize alternate interface representation structure. 85 83 * 84 * @param[in] alternates Pointer to allocated structure. 86 85 * @param[in] config_descr Configuration descriptor. 87 86 * @param[in] config_descr_size Size of configuration descriptor. 88 87 * @param[in] interface_number Interface number. 89 * @param[out] alternates_ptr Where to store pointer to allocated structure.90 88 * @return Error code. 91 89 */ … … 101 99 alternates->current = 0; 102 100 101 /* No interfaces. */ 103 102 if (interface_number < 0) { 104 103 return EOK; … … 107 106 alternates->alternative_count 108 107 = usb_interface_count_alternates(config_descr, config_descr_size, 109 interface_number);108 interface_number); 110 109 111 110 if (alternates->alternative_count == 0) { … … 131 130 = &alternates->alternatives[0]; 132 131 133 const uint8_t *iface_ptr = usb_dp_get_nested_descriptor(&dp_parser, 134 &dp_data, dp_data.data); 132 const void *iface_ptr = 133 usb_dp_get_nested_descriptor(&dp_parser, &dp_data, dp_data.data); 134 135 135 while (iface_ptr != NULL) { 136 usb_standard_interface_descriptor_t *iface137 = (usb_standard_interface_descriptor_t *) iface_ptr; 136 const usb_standard_interface_descriptor_t *iface = iface_ptr; 137 138 138 if ((iface->descriptor_type != USB_DESCTYPE_INTERFACE) 139 139 || (iface->interface_number != interface_number)) { 140 /* This is not a valid alternate interface descriptor 141 * for interface with number == interface_number. */ 140 142 iface_ptr = usb_dp_get_sibling_descriptor(&dp_parser, 141 143 &dp_data, dp_data.data, iface_ptr); … … 149 151 iface_ptr = usb_dp_get_sibling_descriptor(&dp_parser, &dp_data, 150 152 dp_data.data, iface_ptr); 151 if (iface_ptr == NULL) {152 const uint8_t *next = dp_data.data + dp_data.size;153 cur_alt_iface->nested_descriptors_size154 = next - cur_alt_iface->nested_descriptors;155 } else {156 cur_alt_iface->nested_descriptors_size157 = iface_ptr - cur_alt_iface->nested_descriptors;158 }159 153 160 cur_alt_iface++; 154 const uint8_t *next = (iface_ptr == NULL) ? 155 dp_data.data + dp_data.size : iface_ptr; 156 157 cur_alt_iface->nested_descriptors_size 158 = next - cur_alt_iface->nested_descriptors; 159 160 ++cur_alt_iface; 161 161 } 162 162
Note:
See TracChangeset
for help on using the changeset viewer.