forked from len0rd/rockbox
Usb Stack: only setup packet handling, and not enabled by default as there is a lot to do.
* settings code is not fully ready -> changing device driver has no effect * clean ups * check copyriths * find a way to detect IN transfers * support for full and highspeed * ... git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14470 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9305c86f5b
commit
8181a0c905
29 changed files with 4585 additions and 72 deletions
125
firmware/usbstack/core/utils.c
Normal file
125
firmware/usbstack/core/utils.c
Normal file
|
@ -0,0 +1,125 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id: $
|
||||
*
|
||||
* Copyright (C) 2007 by Christian Gmeiner
|
||||
*
|
||||
* 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);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue