* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
#include <stdio.h>
#include <string.h>
+#include <libusb.h>
#include "versaloon_include.h"
#include "versaloon.h"
struct versaloon_pending_t versaloon_pending[VERSALOON_MAX_PENDING_NUMBER];
uint16_t versaloon_pending_idx;
-usb_dev_handle *versaloon_usb_device_handle;
+libusb_device_handle *versaloon_usb_device_handle;
static uint32_t versaloon_usb_to = VERSALOON_TIMEOUT;
RESULT versaloon_init(void);
{
struct versaloon_want_pos_t *new_pos = NULL;
- new_pos = (struct versaloon_want_pos_t *)malloc(sizeof(*new_pos));
+ new_pos = malloc(sizeof(*new_pos));
if (NULL == new_pos) {
LOG_ERROR(ERRMSG_NOT_ENOUGH_MEMORY);
return ERRCODE_NOT_ENOUGH_MEMORY;
RESULT versaloon_send_command(uint16_t out_len, uint16_t *inlen)
{
int ret;
+ int transferred;
#if PARAM_CHECK
if (NULL == versaloon_buf) {
}
#endif
- ret = usb_bulk_write(versaloon_usb_device_handle,
- versaloon_interface.usb_setting.ep_out, (char *)versaloon_buf,
- out_len, versaloon_usb_to);
- if (ret != out_len) {
- LOG_ERROR(ERRMSG_FAILURE_OPERATION_ERRSTRING, "send usb data",
- usb_strerror());
+ ret = libusb_bulk_transfer(versaloon_usb_device_handle,
+ versaloon_interface.usb_setting.ep_out,
+ versaloon_buf, out_len, &transferred, versaloon_usb_to);
+ if (0 != ret || transferred != out_len) {
+ LOG_ERROR(ERRMSG_FAILURE_OPERATION, "send usb data");
return ERRCODE_FAILURE_OPERATION;
}
if (inlen != NULL) {
- ret = usb_bulk_read(versaloon_usb_device_handle,
- versaloon_interface.usb_setting.ep_in, (char *)versaloon_buf,
- versaloon_interface.usb_setting.buf_size, versaloon_usb_to);
- if (ret > 0) {
- *inlen = (uint16_t)ret;
+ ret = libusb_bulk_transfer(versaloon_usb_device_handle,
+ versaloon_interface.usb_setting.ep_in,
+ versaloon_buf, versaloon_interface.usb_setting.buf_size,
+ &transferred, versaloon_usb_to);
+ if (0 == ret) {
+ *inlen = (uint16_t)transferred;
return ERROR_OK;
} else {
- LOG_ERROR(ERRMSG_FAILURE_OPERATION_ERRSTRING, "receive usb data",
- usb_strerror());
+ LOG_ERROR(ERRMSG_FAILURE_OPERATION, "receive usb data");
return ERROR_FAIL;
}
} else
uint32_t timeout_tmp;
/* malloc temporary buffer */
- versaloon_buf =
- (uint8_t *)malloc(versaloon_interface.usb_setting.buf_size);
+ versaloon_buf = malloc(versaloon_interface.usb_setting.buf_size);
if (NULL == versaloon_buf) {
LOG_ERROR(ERRMSG_NOT_ENOUGH_MEMORY);
return ERRCODE_NOT_ENOUGH_MEMORY;
free(versaloon_buf);
versaloon_buf = NULL;
- versaloon_buf =
- (uint8_t *)malloc(versaloon_interface.usb_setting.buf_size);
+ versaloon_buf = malloc(versaloon_interface.usb_setting.buf_size);
if (NULL == versaloon_buf) {
versaloon_fini();
LOG_ERROR(ERRMSG_NOT_ENOUGH_MEMORY);
return ERRCODE_NOT_ENOUGH_MEMORY;
}
- versaloon_cmd_buf =
- (uint8_t *)malloc(versaloon_interface.usb_setting.buf_size - 3);
+ versaloon_cmd_buf = malloc(versaloon_interface.usb_setting.buf_size - 3);
if (NULL == versaloon_cmd_buf) {
versaloon_fini();
LOG_ERROR(ERRMSG_NOT_ENOUGH_MEMORY);