/* usb/device.h
 *
 * (c) 2002 Simtec Electronics
 *
 * Ben Dooks
 *
 * definition for usb_device_t
 *
 * $Id: device.h,v 1.7 2003/10/20 22:00:17 ben Exp $
 *
 * This Library file is part of the Simtec Electronics USB stack development
 *   suite.
 * Specific licence is granted to use this file by third parties for the
 *   development of USB device drivers.
*/

#ifndef __USB_DEVICE_H
#define __USB_DEVICE_H "$Id: device.h,v 1.7 2003/10/20 22:00:17 ben Exp $"

#ifndef __USB_DEVICE_T
#define __USB_DEVICE_T __FILE__

/* usb_device_s will be replaced with usb_device_s in the near future */
/* this is defined here in case the user needs to get at the real bits of
 * the device structure...
*/
struct usb_device_s;

typedef struct usb_device_s * usb_device_t;
#endif /* __USB_DEVICE_T */


extern unsigned long usb_manage_device_addresses(struct usb_hc_s *hc,
                                                 struct usb_device_s *dev,
                                                 unsigned long number,
                                                 unsigned long behaviour,
                                                 int *result);


extern usb_device_t usb_device_register(struct usb_hc_s *hc,
					unsigned long *unique_number,
					unsigned long speed,
					int *result);
 
extern int usb_device_deregister(usb_device_t);


#endif /* __USB_DEVICE_H */

