Changeset 1dcc0b9 in mainline for uspace/drv/nic/ar9271/wmi.c
- Timestamp:
- 2015-04-06T10:47:51Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d7dadcb4
- Parents:
- 59fa7ab
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/nic/ar9271/wmi.c
r59fa7ab r1dcc0b9 231 231 size_t buffer_size = header_size + command_length; 232 232 void *buffer = malloc(buffer_size); 233 memcpy(buffer+header_size, command_buffer, command_length); 233 234 if(command_buffer != NULL) { 235 memcpy(buffer+header_size, command_buffer, command_length); 236 } 234 237 235 238 /* Set up WMI header */ … … 261 264 262 265 /* Read response. */ 263 rc = htc_read_control_message(htc_device, response_buffer, 264 response_buffer_size, NULL); 265 if(rc != EOK) { 266 free(buffer); 267 usb_log_error("Failed to receive WMI message response. " 268 "Error: %d\n", rc); 269 return rc; 270 } 266 /* TODO: Ignoring WMI management RX messages ~ TX statuses etc. */ 267 uint16_t cmd_id; 268 do { 269 rc = htc_read_control_message(htc_device, response_buffer, 270 response_buffer_size, NULL); 271 if(rc != EOK) { 272 free(buffer); 273 usb_log_error("Failed to receive WMI message response. " 274 "Error: %d\n", rc); 275 return rc; 276 } 277 278 if(response_buffer_size < sizeof(htc_frame_header_t) + 279 sizeof(wmi_command_header_t)) { 280 free(buffer); 281 usb_log_error("Corrupted response received.\n"); 282 return EINVAL; 283 } 284 285 wmi_command_header_t *wmi_hdr = (wmi_command_header_t *) 286 ((void*) response_buffer + sizeof(htc_frame_header_t)); 287 cmd_id = uint16_t_be2host(wmi_hdr->command_id); 288 } while(cmd_id & WMI_MGMT_CMD_MASK); 271 289 272 290 if(clean_resp_buffer) {
Note:
See TracChangeset
for help on using the changeset viewer.