diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2007-11-22 20:51:00 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2007-11-22 20:51:00 +0000 |
| commit | b4e5123e5d78935a3ab961d54ee5902eed37aa32 (patch) | |
| tree | e0818a8c26e4a435188e70820c3aab387b01d842 /firmware/usbstack/core/utils.c | |
| parent | 2e2cbfe4acc22c1c69e38b638280da974630ca7f (diff) | |
| download | rockbox-b4e5123e5d78935a3ab961d54ee5902eed37aa32.zip rockbox-b4e5123e5d78935a3ab961d54ee5902eed37aa32.tar.gz rockbox-b4e5123e5d78935a3ab961d54ee5902eed37aa32.tar.bz2 rockbox-b4e5123e5d78935a3ab961d54ee5902eed37aa32.tar.xz | |
New USB stack
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15758 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usbstack/core/utils.c')
| -rw-r--r-- | firmware/usbstack/core/utils.c | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/firmware/usbstack/core/utils.c b/firmware/usbstack/core/utils.c deleted file mode 100644 index d43bd92..0000000 --- a/firmware/usbstack/core/utils.c +++ /dev/null @@ -1,176 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2007 by Christian Gmeiner - * - * Based on linux/drivers/usb/gadget/usbstring.c - * Copyright (C) 2003 David Brownell - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include <string.h> -#include "usbstack/core.h" - -void into_usb_ctrlrequest(struct usb_ctrlrequest* request) -{ - char* type = ""; - char* req = ""; - char* extra = 0; - - logf("-usb request-"); - /* check if packet is okay */ - if (request->bRequestType == 0 && - request->bRequest == 0 && - request->wValue == 0 && - request->wIndex == 0 && - request->wLength == 0) { - logf(" -> INVALID <-"); - return; - } - - switch (request->bRequestType & USB_TYPE_MASK) { - case USB_TYPE_STANDARD: - type = "standard"; - - switch (request->bRequest) { - case USB_REQ_GET_STATUS: - req = "get status"; - break; - case USB_REQ_CLEAR_FEATURE: - req = "clear feature"; - break; - case USB_REQ_SET_FEATURE: - req = "set feature"; - break; - case USB_REQ_SET_ADDRESS: - req = "set address"; - break; - case USB_REQ_GET_DESCRIPTOR: - req = "get descriptor"; - - switch (request->wValue >> 8) { - case USB_DT_DEVICE: - extra = "get device descriptor"; - break; - case USB_DT_DEVICE_QUALIFIER: - extra = "get device qualifier"; - break; - case USB_DT_OTHER_SPEED_CONFIG: - extra = "get other-speed config descriptor"; - case USB_DT_CONFIG: - extra = "get configuration descriptor"; - break; - case USB_DT_STRING: - extra = "get string descriptor"; - break; - case USB_DT_DEBUG: - extra = "debug"; - break; - } - break; - - break; - case USB_REQ_SET_DESCRIPTOR: - req = "set descriptor"; - break; - case USB_REQ_GET_CONFIGURATION: - req = "get configuration"; - break; - case USB_REQ_SET_CONFIGURATION: - req = "set configuration"; - break; - case USB_REQ_GET_INTERFACE: - req = "get interface"; - break; - case USB_REQ_SET_INTERFACE: - req = "set interface"; - break; - case USB_REQ_SYNCH_FRAME: - req = "sync frame"; - break; - default: - req = "unkown"; - break; - } - - break; - case USB_TYPE_CLASS: - type = "class"; - break; - - case USB_TYPE_VENDOR: - type = "vendor"; - break; - } - - logf(" -b 0x%x", request->bRequestType); - logf(" -b 0x%x", request->bRequest); - logf(" -b 0x%x", request->wValue); - logf(" -b 0x%x", request->wIndex); - logf(" -b 0x%x", request->wLength); - logf(" -> t: %s", type); - logf(" -> r: %s", req); - if (extra != 0) { - logf(" -> e: %s", extra); - } -} - -int usb_stack_get_string(struct usb_string* strings, int id, uint8_t* buf) -{ - struct usb_string* tmp; - char* sp, *dp; - int len; - - /* if id is 0, then we need to send back all supported - * languages. In our case we only support one - * language: en-us (0x0409) */ - if (id == 0) { - buf [0] = 4; - buf [1] = USB_DT_STRING; - buf [2] = (uint8_t) 0x0409; - buf [3] = (uint8_t) (0x0409 >> 8); - return 4; - } - - /* look for string */ - for (tmp = strings; tmp && tmp->s; tmp++) { - if (tmp->id == id) { - break; - } - } - - /* did we found it? */ - if (!tmp || !tmp->s) { - return -EINVAL; - } - - len = MIN ((size_t) 126, strlen (tmp->s)); - memset(buf + 2, 0, 2 * len); - - /* convert to utf-16le */ - sp = (char*)tmp->s; - dp = (char*)&buf[2]; - - while (*sp) { - *dp++ = *sp++; - *dp++ = 0; - } - - /* write len and tag */ - buf [0] = (len + 1) * 2; - buf [1] = USB_DT_STRING; - - return buf[0]; -} |