rem_ioctl_t * remote_CDC_rx_hdr(void *remote, int debug) { #ifdef RWL_SOCKET int ret; #endif /* RWL_SOCKET */ uint numread = 0; rem_ioctl_t *rem_ptr = &rem_cdc; memset(rem_ptr, 0, sizeof(rem_ioctl_t)); #ifdef RWL_WIFI UNUSED_PARAMETER(remote); UNUSED_PARAMETER(numread); #endif /* RWL_WIFI */ UNUSED_PARAMETER(debug); switch (remote_type) { #if defined(RWL_SERIAL) || defined(RWL_DONGLE) case REMOTE_SERIAL: case REMOTE_DONGLE: if (rwl_read_serial_port(remote, (char *)rem_ptr, sizeof(rem_ioctl_t), &numread) < 0) { DPRINT_ERR(ERR, "remote_CDC_rx_hdr: Header Read failed \n"); return (NULL); } break; #endif /* RWL_SERIAL | RWL_DONGLE */ #ifdef RWL_SOCKET case REMOTE_SOCKET: ret = rwl_receive_from_streamsocket(*(int*)remote, (char *)rem_ptr, sizeof(rem_ioctl_t), 0); numread = ret; if (ret == -1) { DPRINT_ERR(ERR, "remote_CDC_rx_hdr: numread:%d", numread); return (NULL); } if (numread == 0) { DPRINT_DBG(OUTPUT, "\n remote_CDC_rx_hdr:No data to receive\n"); return NULL; } break; #endif default: DPRINT_ERR(ERR, "\n Unknown Transport Type\n"); break; } return (rem_ptr); }
/* Return a CDC type buffer */ int remote_CDC_rx(void *wl, rem_ioctl_t *rem_ptr, uchar *readbuf, uint buflen, int debug) { uint numread = 0; #ifdef RWL_SOCKET int ret; #endif #ifdef RWL_WIFI UNUSED_PARAMETER(wl); UNUSED_PARAMETER(readbuf); UNUSED_PARAMETER(numread); #endif /* RWL_WIFI */ UNUSED_PARAMETER(buflen); UNUSED_PARAMETER(debug); UNUSED_PARAMETER(numread); if (rem_ptr->data_len > rem_ptr->msg.len) { DPRINT_ERR(ERR, "remote_CDC_rx: remote data len (%d) > msg len (%d)\n", rem_ptr->data_len, rem_ptr->msg.len); return (FAIL); } #if defined(RWL_DONGLE) || defined(RWL_SERIAL) if ((remote_type == REMOTE_DONGLE) || (remote_type == REMOTE_SERIAL)) { if (rwl_read_serial_port(wl, (char*)readbuf, rem_ptr->data_len, &numread) < 0) { DPRINT_ERR(ERR, "remote_CDC_rx_hdr: Data Receivefailed \n"); return (FAIL); } } #endif /* RWL_DONGLE || RWL_SERIAL */ #ifdef RWL_SOCKET if (remote_type == REMOTE_SOCKET) { if (((ret = rwl_receive_from_streamsocket(*(int*)wl, (char*)readbuf, rem_ptr->data_len, 0)) == -1)) { DPRINT_ERR(ERR, "remote_CDC_rx:Data Receive failed\n"); return (FAIL); } } #endif /* RWL_SOCKET */ return (SUCCESS); }