From fce182f5e22ef18b81a96b79f741cc54ac92192a Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 16 Sep 2011 11:17:18 +0200 Subject: [PATCH 1/9] usb-linux: add get_endp() RH-Author: Gerd Hoffmann Message-id: <1316171846-30450-2-git-send-email-kraxel@redhat.com> Patchwork-id: 32848 O-Subject: [RHEL-6.2 kvm PATCH 1/9] usb-linux: add get_endp() Bugzilla: 733272 RH-Acked-by: Hans de Goede RH-Acked-by: Alex Williamson RH-Acked-by: Paul Moore Add a helper function to get the endpoint data structure and put it into use. Signed-off-by: Gerd Hoffmann (cherry picked from commit ca3a36cf2b86a752fde4b1c545bd2a5a6c811f44) Conflicts: usb-linux.c --- usb-linux.c | 41 ++++++++++++++++++++++------------------- 1 files changed, 22 insertions(+), 19 deletions(-) Signed-off-by: Michal Novotny --- usb-linux.c | 41 ++++++++++++++++++++++------------------- 1 files changed, 22 insertions(+), 19 deletions(-) diff --git a/usb-linux.c b/usb-linux.c index 0c8147c..868360d 100644 --- a/usb-linux.c +++ b/usb-linux.c @@ -144,44 +144,49 @@ static void usb_host_auto_check(void *unused); static int usb_host_read_file(char *line, size_t line_size, const char *device_file, const char *device_name); +static struct endp_data *get_endp(USBHostDevice *s, int ep) +{ + return s->endp_table + ep - 1; +} + static int is_isoc(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].type == USBDEVFS_URB_TYPE_ISO; + return get_endp(s, ep)->type == USBDEVFS_URB_TYPE_ISO; } static int is_valid(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].type != INVALID_EP_TYPE; + return get_endp(s, ep)->type != INVALID_EP_TYPE; } static int is_halted(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].halted; + return get_endp(s, ep)->halted; } static void clear_halt(USBHostDevice *s, int ep) { - s->endp_table[ep - 1].halted = 0; + get_endp(s, ep)->halted = 0; } static void set_halt(USBHostDevice *s, int ep) { - s->endp_table[ep - 1].halted = 1; + get_endp(s, ep)->halted = 1; } static int is_iso_started(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].iso_started; + return get_endp(s, ep)->iso_started; } static void clear_iso_started(USBHostDevice *s, int ep) { - s->endp_table[ep - 1].iso_started = 0; + get_endp(s, ep)->iso_started = 0; } static void set_iso_started(USBHostDevice *s, int ep) { - struct endp_data *e = &s->endp_table[ep - 1]; + struct endp_data *e = get_endp(s, ep); if (!e->iso_started) { e->iso_started = 1; e->inflight = 0; @@ -190,7 +195,7 @@ static void set_iso_started(USBHostDevice *s, int ep) static int change_iso_inflight(USBHostDevice *s, int ep, int value) { - struct endp_data *e = &s->endp_table[ep - 1]; + struct endp_data *e = get_endp(s, ep); e->inflight += value; return e->inflight; @@ -198,32 +203,32 @@ static int change_iso_inflight(USBHostDevice *s, int ep, int value) static void set_iso_urb(USBHostDevice *s, int ep, AsyncURB *iso_urb) { - s->endp_table[ep - 1].iso_urb = iso_urb; + get_endp(s, ep)->iso_urb = iso_urb; } static AsyncURB *get_iso_urb(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].iso_urb; + return get_endp(s, ep)->iso_urb; } static void set_iso_urb_idx(USBHostDevice *s, int ep, int i) { - s->endp_table[ep - 1].iso_urb_idx = i; + get_endp(s, ep)->iso_urb_idx = i; } static int get_iso_urb_idx(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].iso_urb_idx; + return get_endp(s, ep)->iso_urb_idx; } static void set_iso_buffer_used(USBHostDevice *s, int ep, int i) { - s->endp_table[ep - 1].iso_buffer_used = i; + get_endp(s, ep)->iso_buffer_used = i; } static int get_iso_buffer_used(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].iso_buffer_used; + return get_endp(s, ep)->iso_buffer_used; } static void set_max_packet_size(USBHostDevice *s, int ep, uint8_t *descriptor) @@ -237,14 +242,12 @@ static void set_max_packet_size(USBHostDevice *s, int ep, uint8_t *descriptor) case 2: microframes = 3; break; default: microframes = 1; break; } - DPRINTF("husb: max packet size: 0x%x -> %d x %d\n", - raw, microframes, size); - s->endp_table[ep - 1].max_packet_size = size * microframes; + get_endp(s, ep)->max_packet_size = size * microframes; } static int get_max_packet_size(USBHostDevice *s, int ep) { - return s->endp_table[ep - 1].max_packet_size; + return get_endp(s, ep)->max_packet_size; } /* -- 1.7.4.4