#include "qemu-timer.h"
#include "console.h"
-#if defined(__linux__)
#include <dirent.h>
#include <sys/ioctl.h>
#include <signal.h>
int ret;
aurb = async_alloc();
- if (!aurb) {
- dprintf("husb: async malloc failed\n");
- return USB_RET_NAK;
- }
aurb->hdev = s;
aurb->packet = p;
/* The rest are asynchronous */
aurb = async_alloc();
- if (!aurb) {
- dprintf("husb: async malloc failed\n");
- return USB_RET_NAK;
- }
aurb->hdev = s;
aurb->packet = p;
char buf[1024];
dev = qemu_mallocz(sizeof(USBHostDevice));
- if (!dev)
- goto fail;
dev->bus_num = bus_num;
dev->addr = addr;
if (!p)
return -1;
p += strlen(tag);
- while (isspace(*p))
+ while (qemu_isspace(*p))
p++;
q = buf;
while (*p != '\0' && !strchr(stopchars, *p)) {
int ret = 0;
char filename[PATH_MAX];
- snprintf(filename, PATH_MAX, device_file, device_name);
+ snprintf(filename, PATH_MAX, USBSYSBUS_PATH "/devices/%s/%s", device_name,
+ device_file);
f = fopen(filename, "r");
if (f) {
fgets(line, line_size, f);
tmpstr += 3;
bus_num = atoi(tmpstr);
- if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/devnum", de->d_name))
+ if (!usb_host_read_file(line, sizeof(line), "devnum", de->d_name))
goto the_end;
if (sscanf(line, "%d", &addr) != 1)
goto the_end;
- if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/bDeviceClass", de->d_name))
+ if (!usb_host_read_file(line, sizeof(line), "bDeviceClass",
+ de->d_name))
goto the_end;
if (sscanf(line, "%x", &class_id) != 1)
goto the_end;
- if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/idVendor", de->d_name))
+ if (!usb_host_read_file(line, sizeof(line), "idVendor", de->d_name))
goto the_end;
if (sscanf(line, "%x", &vendor_id) != 1)
goto the_end;
- if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/idProduct", de->d_name))
+ if (!usb_host_read_file(line, sizeof(line), "idProduct",
+ de->d_name))
goto the_end;
if (sscanf(line, "%x", &product_id) != 1)
goto the_end;
- if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/product", de->d_name)) {
+ if (!usb_host_read_file(line, sizeof(line), "product",
+ de->d_name)) {
*product_name = 0;
} else {
if (strlen(line) > 0)
pstrcpy(product_name, sizeof(product_name), line);
}
- if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/speed", de->d_name))
+ if (!usb_host_read_file(line, sizeof(line), "speed", de->d_name))
goto the_end;
if (!strcmp(line, "480\n"))
speed = USB_SPEED_HIGH;
/* the module setting (used later for opening devices) */
usb_host_device_path = qemu_mallocz(strlen(devpath)+1);
- if (usb_host_device_path) {
- strcpy(usb_host_device_path, devpath);
- term_printf("husb: using %s file-system with %s\n", fs_type[usb_fs_type], usb_host_device_path);
- } else {
- /* out of memory? */
- perror("husb: unable to allocate memory for device path");
- return -ENOMEM;
- }
+ strcpy(usb_host_device_path, devpath);
+ term_printf("husb: using %s file-system with %s\n", fs_type[usb_fs_type], usb_host_device_path);
}
switch (usb_fs_type) {
return -1;
f = qemu_mallocz(sizeof(*f));
- if (!f) {
- fprintf(stderr, "husb: failed to allocate auto filter\n");
- return -1;
- }
*f = filter;
term_printf(" Device %s.%s ID %s:%s\n", bus, addr, vid, pid);
}
}
-
-#else
-
-#include "hw/usb.h"
-
-void usb_host_info(void)
-{
- term_printf("USB host devices not supported\n");
-}
-
-/* XXX: modify configure to compile the right host driver */
-USBDevice *usb_host_device_open(const char *devname)
-{
- return NULL;
-}
-
-int usb_host_device_close(const char *devname)
-{
- return 0;
-}
-
-#endif