diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2010-12-14 16:35:10 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2010-12-14 16:35:10 +0000 |
commit | c50f2a170433a0f85212c81374bbb62806ad3768 (patch) | |
tree | a2a1f5aad769298908aeb89c0634bd8eb2a12680 /nuttx/drivers | |
parent | a27081f6dd44ec2fa6fa02a2c08af2c6730591c8 (diff) | |
download | px4-nuttx-c50f2a170433a0f85212c81374bbb62806ad3768.tar.gz px4-nuttx-c50f2a170433a0f85212c81374bbb62806ad3768.tar.bz2 px4-nuttx-c50f2a170433a0f85212c81374bbb62806ad3768.zip |
Add MS class skeleton
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3174 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/drivers')
-rw-r--r-- | nuttx/drivers/usbhost/usbhost_storage.c | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/nuttx/drivers/usbhost/usbhost_storage.c b/nuttx/drivers/usbhost/usbhost_storage.c new file mode 100644 index 000000000..a26a8b37b --- /dev/null +++ b/nuttx/drivers/usbhost/usbhost_storage.c @@ -0,0 +1,128 @@ +/**************************************************************************** + * drivers/usbhost/usbhost_storage.c + * + * Copyright (C) 2010 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <spudmonkey@racsa.co.cr> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> + +#include <nuttx/usb/usb.h> +#include <nuttx/usb/usbhost.h> + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +static struct usbhost_class_s *usbhost_create(struct usbhost_driver_s *drvr); + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +struct usbhost_registry_s g_storage = +{ + NULL, /* flink */ + usbhost_create, /* create */ + { + USB_CLASS_MASS_STORAGE, /* id.class */ + 0, /* id.vid */ + 0 /* id.pid */ + } +}; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: usbhost_create + * + * Description: + * This function implements the create() method of struct usb_registry_s. + * The create() method is a callback into the class implementation. It is + * used to (1) create a new instance of the USB host class state and to (2) + * bind a USB host driver "session" to the class instance. Use of this + * create() method will support environments where there may be multiple + * USB ports and multiple USB devices simultaneously connected. + * + * Input Parameters: + * drvr - An instance of struct usbhost_driver_s that the class + * implementation will "bind" to its state structure and will + * subsequently use to communicate with the USB host driver. + * + * Returned Values: + * On success, this function will return a non-NULL instance of struct + * usbhost_class_s that can be used by the USB host driver to communicate + * with the USB host class. NULL is returned on failure; this function + * will fail only if the drvr input parameter is NULL or if there are + * insufficient resources to create another USB host class instance. + * + ****************************************************************************/ + +static struct usbhost_class_s *usbhost_create(struct usbhost_driver_s *drvr) +{ +#warning "Not implemented" + return NULL; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: usbhost_storageinit + * + * Description: + * Initialize the USB host storage class. This function should be called + * be platform-specific code in order to initialize and register support + * for the USB host storage class. + * + * Input Parameters: + * None + * + * Returned Values: + * On success this function will return zero (OK); A negated errno value + * will be returned on failure. + * + ****************************************************************************/ + +int usbhost_storageinit(void) +{ + /* Advertise our availability to support mass storage devices */ + + return usbhost_registerclass(&g_storage); +} + |