From: Jan Kiszka <jan.kiszka@web.de>
To: David Ahern <daahern@cisco.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH] Changes to usb-linux to conform to coding style
Date: Sun, 25 Apr 2010 17:19:30 +0200 [thread overview]
Message-ID: <4BD45D82.1090701@web.de> (raw)
In-Reply-To: <1272126382-20643-1-git-send-email-daahern@cisco.com>
[-- Attachment #1: Type: text/plain, Size: 32248 bytes --]
David Ahern wrote:
> Signed-off-by: David Ahern <daahern@cisco.com>
Looks good. Picked it up for 'ehci', but this patch should already be
considered for upstream as well.
Thanks,
Jan
> ---
> usb-linux.c | 374 +++++++++++++++++++++++++++++++++++------------------------
> 1 files changed, 224 insertions(+), 150 deletions(-)
>
> diff --git a/usb-linux.c b/usb-linux.c
> index d0d7cff..b3d6b28 100644
> --- a/usb-linux.c
> +++ b/usb-linux.c
> @@ -105,9 +105,9 @@ enum {
>
> /*
> * Control transfer state.
> - * Note that 'buffer' _must_ follow 'req' field because
> + * Note that 'buffer' _must_ follow 'req' field because
> * we need contigious buffer when we submit control URB.
> - */
> + */
> struct ctrl_struct {
> uint16_t len;
> uint16_t offset;
> @@ -170,10 +170,10 @@ static void set_halt(USBHostDevice *s, int ep)
> s->endp_table[ep - 1].halted = 1;
> }
>
> -/*
> +/*
> * Async URB state.
> * We always allocate one isoc descriptor even for bulk transfers
> - * to simplify allocation and casts.
> + * to simplify allocation and casts.
> */
> typedef struct AsyncURB
> {
> @@ -220,15 +220,16 @@ static void async_complete(void *opaque)
> AsyncURB *aurb;
>
> while (1) {
> - USBPacket *p;
> + USBPacket *p;
>
> - int r = ioctl(s->fd, USBDEVFS_REAPURBNDELAY, &aurb);
> + int r = ioctl(s->fd, USBDEVFS_REAPURBNDELAY, &aurb);
> if (r < 0) {
> - if (errno == EAGAIN)
> + if (errno == EAGAIN) {
> return;
> -
> + }
> if (errno == ENODEV && !s->closing) {
> - printf("husb: device %d.%d disconnected\n", s->bus_num, s->addr);
> + printf("husb: device %d.%d disconnected\n",
> + s->bus_num, s->addr);
> usb_host_close(s);
> usb_host_auto_check(NULL);
> return;
> @@ -240,21 +241,22 @@ static void async_complete(void *opaque)
>
> p = aurb->packet;
>
> - DPRINTF("husb: async completed. aurb %p status %d alen %d\n",
> + DPRINTF("husb: async completed. aurb %p status %d alen %d\n",
> aurb, aurb->urb.status, aurb->urb.actual_length);
>
> - if (p) {
> + if (p) {
> switch (aurb->urb.status) {
> case 0:
> p->len = aurb->urb.actual_length;
> - if (aurb->urb.type == USBDEVFS_URB_TYPE_CONTROL)
> + if (aurb->urb.type == USBDEVFS_URB_TYPE_CONTROL) {
> async_complete_ctrl(s, p);
> + }
> break;
>
> case -EPIPE:
> set_halt(s, p->devep);
> - p->len = USB_RET_STALL;
> - break;
> + p->len = USB_RET_STALL;
> + break;
>
> default:
> p->len = USB_RET_NAK;
> @@ -262,7 +264,7 @@ static void async_complete(void *opaque)
> }
>
> usb_packet_complete(p);
> - }
> + }
>
> async_free(aurb);
> }
> @@ -297,14 +299,15 @@ static int usb_host_claim_interfaces(USBHostDevice *dev, int configuration)
>
> i = 0;
> dev_descr_len = dev->descr[0];
> - if (dev_descr_len > dev->descr_len)
> + if (dev_descr_len > dev->descr_len) {
> goto fail;
> + }
> nb_configurations = dev->descr[17];
>
> i += dev_descr_len;
> while (i < dev->descr_len) {
> - DPRINTF("husb: i is %d, descr_len is %d, dl %d, dt %d\n", i, dev->descr_len,
> - dev->descr[i], dev->descr[i+1]);
> + DPRINTF("husb: i is %d, descr_len is %d, dl %d, dt %d\n",
> + i, dev->descr_len, dev->descr[i], dev->descr[i+1]);
>
> if (dev->descr[i+1] != USB_DT_CONFIG) {
> i += dev->descr[i];
> @@ -312,7 +315,7 @@ static int usb_host_claim_interfaces(USBHostDevice *dev, int configuration)
> }
> config_descr_len = dev->descr[i];
>
> - printf("husb: config #%d need %d\n", dev->descr[i + 5], configuration);
> + printf("husb: config #%d need %d\n", dev->descr[i + 5], configuration);
>
> if (configuration < 0 || configuration == dev->descr[i + 5]) {
> configuration = dev->descr[i + 5];
> @@ -323,7 +326,8 @@ static int usb_host_claim_interfaces(USBHostDevice *dev, int configuration)
> }
>
> if (i >= dev->descr_len) {
> - fprintf(stderr, "husb: update iface failed. no matching configuration\n");
> + fprintf(stderr,
> + "husb: update iface failed. no matching configuration\n");
> goto fail;
> }
> nb_interfaces = dev->descr[i + 4];
> @@ -416,15 +420,16 @@ static int usb_host_handle_data(USBHostDevice *s, USBPacket *p)
>
> urb = &aurb->urb;
>
> - if (p->pid == USB_TOKEN_IN)
> - urb->endpoint = p->devep | 0x80;
> - else
> - urb->endpoint = p->devep;
> + if (p->pid == USB_TOKEN_IN) {
> + urb->endpoint = p->devep | 0x80;
> + } else {
> + urb->endpoint = p->devep;
> + }
>
> if (is_halted(s, p->devep)) {
> - ret = ioctl(s->fd, USBDEVFS_CLEAR_HALT, &urb->endpoint);
> + ret = ioctl(s->fd, USBDEVFS_CLEAR_HALT, &urb->endpoint);
> if (ret < 0) {
> - DPRINTF("husb: failed to clear halt. ep 0x%x errno %d\n",
> + DPRINTF("husb: failed to clear halt. ep 0x%x errno %d\n",
> urb->endpoint, errno);
> return USB_RET_NAK;
> }
> @@ -449,7 +454,8 @@ static int usb_host_handle_data(USBHostDevice *s, USBPacket *p)
>
> ret = ioctl(s->fd, USBDEVFS_SUBMITURB, urb);
>
> - DPRINTF("husb: data submit. ep 0x%x len %u aurb %p\n", urb->endpoint, p->len, aurb);
> + DPRINTF("husb: data submit. ep 0x%x len %u aurb %p\n",
> + urb->endpoint, p->len, aurb);
>
> if (ret < 0) {
> DPRINTF("husb: submit failed. errno %d\n", errno);
> @@ -470,10 +476,11 @@ static int usb_host_handle_data(USBHostDevice *s, USBPacket *p)
>
> static int ctrl_error(void)
> {
> - if (errno == ETIMEDOUT)
> + if (errno == ETIMEDOUT) {
> return USB_RET_NAK;
> - else
> + } else {
> return USB_RET_STALL;
> + }
> }
>
> static int usb_host_set_address(USBHostDevice *s, int addr)
> @@ -488,12 +495,12 @@ static int usb_host_set_config(USBHostDevice *s, int config)
> usb_host_release_interfaces(s);
>
> int ret = ioctl(s->fd, USBDEVFS_SETCONFIGURATION, &config);
> -
> +
> DPRINTF("husb: ctrl set config %d ret %d errno %d\n", config, ret, errno);
> -
> - if (ret < 0)
> +
> + if (ret < 0) {
> return ctrl_error();
> -
> + }
> usb_host_claim_interfaces(s, config);
> return 0;
> }
> @@ -506,13 +513,13 @@ static int usb_host_set_interface(USBHostDevice *s, int iface, int alt)
> si.interface = iface;
> si.altsetting = alt;
> ret = ioctl(s->fd, USBDEVFS_SETINTERFACE, &si);
> -
> - DPRINTF("husb: ctrl set iface %d altset %d ret %d errno %d\n",
> - iface, alt, ret, errno);
> -
> - if (ret < 0)
> - return ctrl_error();
>
> + DPRINTF("husb: ctrl set iface %d altset %d ret %d errno %d\n",
> + iface, alt, ret, errno);
> +
> + if (ret < 0) {
> + return ctrl_error();
> + }
> usb_linux_update_endp_table(s);
> return 0;
> }
> @@ -524,7 +531,7 @@ static int usb_host_handle_control(USBHostDevice *s, USBPacket *p)
> int ret, value, index;
> int buffer_len;
>
> - /*
> + /*
> * Process certain standard device requests.
> * These are infrequent and are processed synchronously.
> */
> @@ -532,8 +539,8 @@ static int usb_host_handle_control(USBHostDevice *s, USBPacket *p)
> index = le16_to_cpu(s->ctrl.req.wIndex);
>
> DPRINTF("husb: ctrl type 0x%x req 0x%x val 0x%x index %u len %u\n",
> - s->ctrl.req.bRequestType, s->ctrl.req.bRequest, value, index,
> - s->ctrl.len);
> + s->ctrl.req.bRequestType, s->ctrl.req.bRequest, value, index,
> + s->ctrl.len);
>
> if (s->ctrl.req.bRequestType == 0) {
> switch (s->ctrl.req.bRequest) {
> @@ -546,8 +553,9 @@ static int usb_host_handle_control(USBHostDevice *s, USBPacket *p)
> }
>
> if (s->ctrl.req.bRequestType == 1 &&
> - s->ctrl.req.bRequest == USB_REQ_SET_INTERFACE)
> + s->ctrl.req.bRequest == USB_REQ_SET_INTERFACE) {
> return usb_host_set_interface(s, index, value);
> + }
>
> /* The rest are asynchronous */
>
> @@ -562,12 +570,12 @@ static int usb_host_handle_control(USBHostDevice *s, USBPacket *p)
> aurb->hdev = s;
> aurb->packet = p;
>
> - /*
> + /*
> * Setup ctrl transfer.
> *
> * s->ctrl is layed out such that data buffer immediately follows
> * 'req' struct which is exactly what usbdevfs expects.
> - */
> + */
> urb = &aurb->urb;
>
> urb->type = USBDEVFS_URB_TYPE_CONTROL;
> @@ -604,9 +612,10 @@ static int do_token_setup(USBDevice *dev, USBPacket *p)
> USBHostDevice *s = (USBHostDevice *) dev;
> int ret = 0;
>
> - if (p->len != 8)
> + if (p->len != 8) {
> return USB_RET_STALL;
> -
> + }
> +
> memcpy(&s->ctrl.req, p->data, 8);
> s->ctrl.len = le16_to_cpu(s->ctrl.req.wLength);
> s->ctrl.offset = 0;
> @@ -614,17 +623,20 @@ static int do_token_setup(USBDevice *dev, USBPacket *p)
>
> if (s->ctrl.req.bRequestType & USB_DIR_IN) {
> ret = usb_host_handle_control(s, p);
> - if (ret < 0)
> + if (ret < 0) {
> return ret;
> + }
>
> - if (ret < s->ctrl.len)
> + if (ret < s->ctrl.len) {
> s->ctrl.len = ret;
> + }
> s->ctrl.state = CTRL_STATE_DATA;
> } else {
> - if (s->ctrl.len == 0)
> + if (s->ctrl.len == 0) {
> s->ctrl.state = CTRL_STATE_ACK;
> - else
> + } else {
> s->ctrl.state = CTRL_STATE_DATA;
> + }
> }
>
> return ret;
> @@ -635,16 +647,17 @@ static int do_token_in(USBDevice *dev, USBPacket *p)
> USBHostDevice *s = (USBHostDevice *) dev;
> int ret = 0;
>
> - if (p->devep != 0)
> + if (p->devep != 0) {
> return usb_host_handle_data(s, p);
> + }
>
> switch(s->ctrl.state) {
> case CTRL_STATE_ACK:
> if (!(s->ctrl.req.bRequestType & USB_DIR_IN)) {
> ret = usb_host_handle_control(s, p);
> - if (ret == USB_RET_ASYNC)
> + if (ret == USB_RET_ASYNC) {
> return USB_RET_ASYNC;
> -
> + }
> s->ctrl.state = CTRL_STATE_IDLE;
> return ret > 0 ? 0 : ret;
> }
> @@ -654,12 +667,14 @@ static int do_token_in(USBDevice *dev, USBPacket *p)
> case CTRL_STATE_DATA:
> if (s->ctrl.req.bRequestType & USB_DIR_IN) {
> int len = s->ctrl.len - s->ctrl.offset;
> - if (len > p->len)
> + if (len > p->len) {
> len = p->len;
> + }
> memcpy(p->data, s->ctrl.buffer + s->ctrl.offset, len);
> s->ctrl.offset += len;
> - if (s->ctrl.offset >= s->ctrl.len)
> + if (s->ctrl.offset >= s->ctrl.len) {
> s->ctrl.state = CTRL_STATE_ACK;
> + }
> return len;
> }
>
> @@ -675,8 +690,9 @@ static int do_token_out(USBDevice *dev, USBPacket *p)
> {
> USBHostDevice *s = (USBHostDevice *) dev;
>
> - if (p->devep != 0)
> + if (p->devep != 0) {
> return usb_host_handle_data(s, p);
> + }
>
> switch(s->ctrl.state) {
> case CTRL_STATE_ACK:
> @@ -691,12 +707,14 @@ static int do_token_out(USBDevice *dev, USBPacket *p)
> case CTRL_STATE_DATA:
> if (!(s->ctrl.req.bRequestType & USB_DIR_IN)) {
> int len = s->ctrl.len - s->ctrl.offset;
> - if (len > p->len)
> + if (len > p->len) {
> len = p->len;
> + }
> memcpy(s->ctrl.buffer + s->ctrl.offset, p->data, len);
> s->ctrl.offset += len;
> - if (s->ctrl.offset >= s->ctrl.len)
> + if (s->ctrl.offset >= s->ctrl.len) {
> s->ctrl.state = CTRL_STATE_ACK;
> + }
> return len;
> }
>
> @@ -734,8 +752,9 @@ static int usb_host_handle_packet(USBDevice *s, USBPacket *p)
> }
>
> /* Rest of the PIDs must match our address */
> - if (s->state < USB_STATE_DEFAULT || p->devaddr != s->addr)
> + if (s->state < USB_STATE_DEFAULT || p->devaddr != s->addr) {
> return USB_RET_NODEV;
> + }
>
> switch (p->pid) {
> case USB_TOKEN_SETUP:
> @@ -746,7 +765,7 @@ static int usb_host_handle_packet(USBDevice *s, USBPacket *p)
>
> case USB_TOKEN_OUT:
> return do_token_out(s, p);
> -
> +
> default:
> return USB_RET_STALL;
> }
> @@ -775,8 +794,9 @@ static int usb_linux_update_endp_table(USBHostDevice *s)
> }
>
> /* in address state */
> - if (configuration == 0)
> + if (configuration == 0) {
> return 1;
> + }
>
> /* get the desired configuration, interface, and endpoint descriptors
> * from device description */
> @@ -822,15 +842,17 @@ static int usb_linux_update_endp_table(USBHostDevice *s)
> }
>
> /* advance to the endpoints */
> - while (i < length && descriptors[i +1] != USB_DT_ENDPOINT)
> + while (i < length && descriptors[i +1] != USB_DT_ENDPOINT) {
> i += descriptors[i];
> + }
>
> if (i >= length)
> break;
>
> while (i < length) {
> - if (descriptors[i + 1] != USB_DT_ENDPOINT)
> + if (descriptors[i + 1] != USB_DT_ENDPOINT) {
> break;
> + }
>
> devep = descriptors[i + 2];
> switch (descriptors[i + 3] & 0x3) {
> @@ -866,9 +888,9 @@ static int usb_host_open(USBHostDevice *dev, int bus_num,
> struct usbdevfs_connectinfo ci;
> char buf[1024];
>
> - if (dev->fd != -1)
> + if (dev->fd != -1) {
> goto fail;
> -
> + }
> printf("husb: open device %d.%d\n", bus_num, addr);
>
> if (!usb_host_device_path) {
> @@ -899,21 +921,23 @@ static int usb_host_open(USBHostDevice *dev, int bus_num,
> {
> int x;
> printf("=== begin dumping device descriptor data ===\n");
> - for (x = 0; x < dev->descr_len; x++)
> + for (x = 0; x < dev->descr_len; x++) {
> printf("%02x ", dev->descr[x]);
> + }
> printf("\n=== end dumping device descriptor data ===\n");
> }
> #endif
>
>
> - /*
> - * Initial configuration is -1 which makes us claim first
> + /*
> + * Initial configuration is -1 which makes us claim first
> * available config. We used to start with 1, which does not
> - * always work. I've seen devices where first config starts
> + * always work. I've seen devices where first config starts
> * with 2.
> */
> - if (!usb_host_claim_interfaces(dev, -1))
> + if (!usb_host_claim_interfaces(dev, -1)) {
> goto fail;
> + }
>
> ret = ioctl(fd, USBDEVFS_CONNECTINFO, &ci);
> if (ret < 0) {
> @@ -924,20 +948,23 @@ static int usb_host_open(USBHostDevice *dev, int bus_num,
> printf("husb: grabbed usb device %d.%d\n", bus_num, addr);
>
> ret = usb_linux_update_endp_table(dev);
> - if (ret)
> + if (ret) {
> goto fail;
> + }
>
> - if (ci.slow)
> + if (ci.slow) {
> dev->dev.speed = USB_SPEED_LOW;
> - else
> + } else {
> dev->dev.speed = USB_SPEED_HIGH;
> + }
>
> - if (!prod_name || prod_name[0] == '\0')
> + if (!prod_name || prod_name[0] == '\0') {
> snprintf(dev->dev.product_desc, sizeof(dev->dev.product_desc),
> "host:%d.%d", bus_num, addr);
> - else
> + } else {
> pstrcpy(dev->dev.product_desc, sizeof(dev->dev.product_desc),
> prod_name);
> + }
>
> /* USB devio uses 'write' flag to check for async completions */
> qemu_set_fd_handler(dev->fd, NULL, async_complete, dev);
> @@ -947,15 +974,17 @@ static int usb_host_open(USBHostDevice *dev, int bus_num,
>
> fail:
> dev->fd = -1;
> - if (fd != -1)
> + if (fd != -1) {
> close(fd);
> + }
> return -1;
> }
>
> static int usb_host_close(USBHostDevice *dev)
> {
> - if (dev->fd == -1)
> + if (dev->fd == -1) {
> return -1;
> + }
>
> qemu_set_fd_handler(dev->fd, NULL, NULL, NULL);
> dev->closing = 1;
> @@ -1012,8 +1041,9 @@ USBDevice *usb_host_device_open(const char *devname)
> dev = usb_create(NULL /* FIXME */, "usb-host");
>
> if (strstr(devname, "auto:")) {
> - if (parse_filter(devname, &filter) < 0)
> + if (parse_filter(devname, &filter) < 0) {
> goto fail;
> + }
> } else {
> if ((p = strchr(devname, '.'))) {
> filter.bus_num = strtoul(devname, NULL, 0);
> @@ -1049,13 +1079,13 @@ int usb_host_device_close(const char *devname)
> int bus_num, addr;
> USBHostDevice *s;
>
> - if (strstr(devname, "auto:"))
> + if (strstr(devname, "auto:")) {
> return usb_host_auto_del(devname);
> -
> - if (usb_host_find_device(&bus_num, &addr, product_name, sizeof(product_name),
> - devname) < 0)
> + }
> + if (usb_host_find_device(&bus_num, &addr, product_name,
> + sizeof(product_name), devname) < 0) {
> return -1;
> -
> + }
> s = hostdev_find(bus_num, addr);
> if (s) {
> usb_device_delete_addr(s->bus_num, s->dev.addr);
> @@ -1073,15 +1103,18 @@ static int get_tag_value(char *buf, int buf_size,
> const char *p;
> char *q;
> p = strstr(str, tag);
> - if (!p)
> + if (!p) {
> return -1;
> + }
> p += strlen(tag);
> - while (qemu_isspace(*p))
> + while (qemu_isspace(*p)) {
> p++;
> + }
> q = buf;
> while (*p != '\0' && !strchr(stopchars, *p)) {
> - if ((q - buf) < (buf_size - 1))
> + if ((q - buf) < (buf_size - 1)) {
> *q++ = *p;
> + }
> p++;
> }
> *q = '\0';
> @@ -1116,51 +1149,62 @@ static int usb_host_scan_dev(void *opaque, USBScanFunc *func)
> device_count = 0;
> bus_num = addr = speed = class_id = product_id = vendor_id = 0;
> for(;;) {
> - if (fgets(line, sizeof(line), f) == NULL)
> + if (fgets(line, sizeof(line), f) == NULL) {
> break;
> - if (strlen(line) > 0)
> + }
> + if (strlen(line) > 0) {
> line[strlen(line) - 1] = '\0';
> + }
> if (line[0] == 'T' && line[1] == ':') {
> if (device_count && (vendor_id || product_id)) {
> /* New device. Add the previously discovered device. */
> ret = func(opaque, bus_num, addr, class_id, vendor_id,
> product_id, product_name, speed);
> - if (ret)
> + if (ret) {
> goto the_end;
> + }
> }
> - if (get_tag_value(buf, sizeof(buf), line, "Bus=", " ") < 0)
> + if (get_tag_value(buf, sizeof(buf), line, "Bus=", " ") < 0) {
> goto fail;
> + }
> bus_num = atoi(buf);
> - if (get_tag_value(buf, sizeof(buf), line, "Dev#=", " ") < 0)
> + if (get_tag_value(buf, sizeof(buf), line, "Dev#=", " ") < 0) {
> goto fail;
> + }
> addr = atoi(buf);
> - if (get_tag_value(buf, sizeof(buf), line, "Spd=", " ") < 0)
> + if (get_tag_value(buf, sizeof(buf), line, "Spd=", " ") < 0) {
> goto fail;
> - if (!strcmp(buf, "480"))
> + }
> + if (!strcmp(buf, "480")) {
> speed = USB_SPEED_HIGH;
> - else if (!strcmp(buf, "1.5"))
> + } else if (!strcmp(buf, "1.5")) {
> speed = USB_SPEED_LOW;
> - else
> + } else {
> speed = USB_SPEED_FULL;
> + }
> product_name[0] = '\0';
> class_id = 0xff;
> device_count++;
> product_id = 0;
> vendor_id = 0;
> } else if (line[0] == 'P' && line[1] == ':') {
> - if (get_tag_value(buf, sizeof(buf), line, "Vendor=", " ") < 0)
> + if (get_tag_value(buf, sizeof(buf), line, "Vendor=", " ") < 0) {
> goto fail;
> + }
> vendor_id = strtoul(buf, NULL, 16);
> - if (get_tag_value(buf, sizeof(buf), line, "ProdID=", " ") < 0)
> + if (get_tag_value(buf, sizeof(buf), line, "ProdID=", " ") < 0) {
> goto fail;
> + }
> product_id = strtoul(buf, NULL, 16);
> } else if (line[0] == 'S' && line[1] == ':') {
> - if (get_tag_value(buf, sizeof(buf), line, "Product=", "") < 0)
> + if (get_tag_value(buf, sizeof(buf), line, "Product=", "") < 0) {
> goto fail;
> + }
> pstrcpy(product_name, sizeof(product_name), buf);
> } else if (line[0] == 'D' && line[1] == ':') {
> - if (get_tag_value(buf, sizeof(buf), line, "Cls=", " (") < 0)
> + if (get_tag_value(buf, sizeof(buf), line, "Cls=", " (") < 0) {
> goto fail;
> + }
> class_id = strtoul(buf, NULL, 16);
> }
> fail: ;
> @@ -1171,8 +1215,9 @@ static int usb_host_scan_dev(void *opaque, USBScanFunc *func)
> product_id, product_name, speed);
> }
> the_end:
> - if (f)
> + if (f) {
> fclose(f);
> + }
> return ret;
> }
>
> @@ -1186,7 +1231,8 @@ static int usb_host_scan_dev(void *opaque, USBScanFunc *func)
> *
> * @return 0 failed, 1 succeeded ('line' contains data)
> */
> -static int usb_host_read_file(char *line, size_t line_size, const char *device_file, const char *device_name)
> +static int usb_host_read_file(char *line, size_t line_size,
> + const char *device_file, const char *device_name)
> {
> FILE *f;
> int ret = 0;
> @@ -1228,59 +1274,71 @@ static int usb_host_scan_sys(void *opaque, USBScanFunc *func)
> while ((de = readdir(dir))) {
> if (de->d_name[0] != '.' && !strchr(de->d_name, ':')) {
> char *tmpstr = de->d_name;
> - if (!strncmp(de->d_name, "usb", 3))
> + if (!strncmp(de->d_name, "usb", 3)) {
> tmpstr += 3;
> + }
> bus_num = atoi(tmpstr);
>
> - if (!usb_host_read_file(line, sizeof(line), "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)
> + }
> + if (sscanf(line, "%d", &addr) != 1) {
> goto the_end;
> -
> + }
> if (!usb_host_read_file(line, sizeof(line), "bDeviceClass",
> - de->d_name))
> + de->d_name)) {
> goto the_end;
> - if (sscanf(line, "%x", &class_id) != 1)
> + }
> + if (sscanf(line, "%x", &class_id) != 1) {
> goto the_end;
> + }
>
> - if (!usb_host_read_file(line, sizeof(line), "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)
> + }
> + if (sscanf(line, "%x", &vendor_id) != 1) {
> goto the_end;
> -
> + }
> if (!usb_host_read_file(line, sizeof(line), "idProduct",
> - de->d_name))
> + de->d_name)) {
> goto the_end;
> - if (sscanf(line, "%x", &product_id) != 1)
> + }
> + if (sscanf(line, "%x", &product_id) != 1) {
> goto the_end;
> -
> + }
> if (!usb_host_read_file(line, sizeof(line), "product",
> de->d_name)) {
> *product_name = 0;
> } else {
> - if (strlen(line) > 0)
> + if (strlen(line) > 0) {
> line[strlen(line) - 1] = '\0';
> + }
> pstrcpy(product_name, sizeof(product_name), line);
> }
>
> - if (!usb_host_read_file(line, sizeof(line), "speed", de->d_name))
> + if (!usb_host_read_file(line, sizeof(line), "speed", de->d_name)) {
> goto the_end;
> - if (!strcmp(line, "480\n"))
> + }
> + if (!strcmp(line, "480\n")) {
> speed = USB_SPEED_HIGH;
> - else if (!strcmp(line, "1.5\n"))
> + } else if (!strcmp(line, "1.5\n")) {
> speed = USB_SPEED_LOW;
> - else
> + } else {
> speed = USB_SPEED_FULL;
> + }
>
> ret = func(opaque, bus_num, addr, class_id, vendor_id,
> product_id, product_name, speed);
> - if (ret)
> + if (ret) {
> goto the_end;
> + }
> }
> }
> the_end:
> - if (dir)
> + if (dir) {
> closedir(dir);
> + }
> return ret;
> }
>
> @@ -1329,17 +1387,19 @@ static int usb_host_scan(void *opaque, USBScanFunc *func)
> }
> found_devices:
> if (!usb_fs_type) {
> - if (mon)
> + if (mon) {
> monitor_printf(mon, "husb: unable to access USB devices\n");
> + }
> return -ENOENT;
> }
>
> /* the module setting (used later for opening devices) */
> usb_host_device_path = qemu_mallocz(strlen(devpath)+1);
> strcpy(usb_host_device_path, devpath);
> - if (mon)
> + if (mon) {
> monitor_printf(mon, "husb: using %s file-system with %s\n",
> fs_type[usb_fs_type], usb_host_device_path);
> + }
> }
>
> switch (usb_fs_type) {
> @@ -1373,27 +1433,29 @@ static int usb_host_auto_scan(void *opaque, int bus_num, int addr,
> QTAILQ_FOREACH(s, &hostdevs, next) {
> f = &s->match;
>
> - if (f->bus_num > 0 && f->bus_num != bus_num)
> + if (f->bus_num > 0 && f->bus_num != bus_num) {
> continue;
> -
> - if (f->addr > 0 && f->addr != addr)
> + }
> + if (f->addr > 0 && f->addr != addr) {
> continue;
> + }
>
> - if (f->vendor_id > 0 && f->vendor_id != vendor_id)
> + if (f->vendor_id > 0 && f->vendor_id != vendor_id) {
> continue;
> + }
>
> - if (f->product_id > 0 && f->product_id != product_id)
> + if (f->product_id > 0 && f->product_id != product_id) {
> continue;
> -
> + }
> /* We got a match */
>
> /* Already attached ? */
> - if (s->fd != -1)
> + if (s->fd != -1) {
> return 0;
> -
> + }
> DPRINTF("husb: auto open: bus_num %d addr %d\n", bus_num, addr);
>
> - usb_host_open(s, bus_num, addr, product_name);
> + usb_host_open(s, bus_num, addr, product_name);
> }
>
> return 0;
> @@ -1407,21 +1469,24 @@ static void usb_host_auto_check(void *unused)
> usb_host_scan(NULL, usb_host_auto_scan);
>
> QTAILQ_FOREACH(s, &hostdevs, next) {
> - if (s->fd == -1)
> + if (s->fd == -1) {
> unconnected++;
> + }
> }
>
> if (unconnected == 0) {
> /* nothing to watch */
> - if (usb_auto_timer)
> + if (usb_auto_timer) {
> qemu_del_timer(usb_auto_timer);
> + }
> return;
> }
>
> if (!usb_auto_timer) {
> usb_auto_timer = qemu_new_timer(rt_clock, usb_host_auto_check, NULL);
> - if (!usb_auto_timer)
> + if (!usb_auto_timer) {
> return;
> + }
> }
> qemu_mod_timer(usb_auto_timer, qemu_get_clock(rt_clock) + 2000);
> }
> @@ -1451,13 +1516,15 @@ static int parse_filter(const char *spec, struct USBAutoFilter *f)
> f->product_id = 0;
>
> for (i = BUS; i < DONE; i++) {
> - p = strpbrk(p, ":.");
> - if (!p) break;
> + p = strpbrk(p, ":.");
> + if (!p) {
> + break;
> + }
> p++;
> -
> - if (*p == '*')
> - continue;
>
> + if (*p == '*') {
> + continue;
> + }
> switch(i) {
> case BUS: f->bus_num = strtol(p, NULL, 10); break;
> case DEV: f->addr = strtol(p, NULL, 10); break;
> @@ -1503,8 +1570,9 @@ static const char *usb_class_str(uint8_t class)
> {
> const struct usb_class_info *p;
> for(p = usb_class_info; p->class != -1; p++) {
> - if (p->class == class)
> + if (p->class == class) {
> break;
> + }
> }
> return p->class_name;
> }
> @@ -1534,13 +1602,15 @@ static void usb_info_device(Monitor *mon, int bus_num, int addr, int class_id,
> monitor_printf(mon, " Device %d.%d, speed %s Mb/s\n",
> bus_num, addr, speed_str);
> class_str = usb_class_str(class_id);
> - if (class_str)
> + if (class_str) {
> monitor_printf(mon, " %s:", class_str);
> - else
> + } else {
> monitor_printf(mon, " Class %02x:", class_id);
> + }
> monitor_printf(mon, " USB device %04x:%04x", vendor_id, product_id);
> - if (product_name[0] != '\0')
> + if (product_name[0] != '\0') {
> monitor_printf(mon, ", %s", product_name);
> + }
> monitor_printf(mon, "\n");
> }
>
> @@ -1559,18 +1629,20 @@ static int usb_host_info_device(void *opaque, int bus_num, int addr,
>
> static void dec2str(int val, char *str, size_t size)
> {
> - if (val == 0)
> + if (val == 0) {
> snprintf(str, size, "*");
> - else
> - snprintf(str, size, "%d", val);
> + } else {
> + snprintf(str, size, "%d", val);
> + }
> }
>
> static void hex2str(int val, char *str, size_t size)
> {
> - if (val == 0)
> + if (val == 0) {
> snprintf(str, size, "*");
> - else
> + } else {
> snprintf(str, size, "%04x", val);
> + }
> }
>
> void usb_host_info(Monitor *mon)
> @@ -1580,8 +1652,10 @@ void usb_host_info(Monitor *mon)
>
> usb_host_scan(mon, usb_host_info_device);
>
> - if (QTAILQ_EMPTY(&hostdevs))
> + if (QTAILQ_EMPTY(&hostdevs)) {
> return;
> + }
> +
> monitor_printf(mon, " Auto filters:\n");
> QTAILQ_FOREACH(s, &hostdevs, next) {
> char bus[10], addr[10], vid[10], pid[10];
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
next prev parent reply other threads:[~2010-04-25 15:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-24 16:26 [Qemu-devel] [PATCH] Changes to usb-linux to conform to coding style David Ahern
2010-04-25 15:19 ` Jan Kiszka [this message]
2010-05-03 18:05 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BD45D82.1090701@web.de \
--to=jan.kiszka@web.de \
--cc=daahern@cisco.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.