/* usb/lib/lib.h
 *
 * (c) 2002 Simtec Electronics
 *
 * Ben Dooks
 *
 * general usb lib includes and definitions of the core functions
 *
 * $Id: lib.h,v 1.4 2003/08/06 15:56:11 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_LIB_LIB_H
#define __USB_LIB_LIB_H "$Id: lib.h,v 1.4 2003/08/06 15:56:11 ben Exp $"

#include "usb/lib/transaction.h"
#include "usb/lib/fast-access.h"
#include "usb/lib/data.h"

/** USB library initialisation
 *
 * @memo USB Library initialisation
 * @param client pointer to the name of the client
 * @param version version of the USB library the client was built for
*/
extern int usblib_init(char *client, int version);

/** USB Library finalisation
 *
 * @memo USB Library finalisation
*/

extern int usblib_stop(void);

/** USB Library core starting notification
 *
 * Informs the library that the core has started.
 *
 * @memo USB Library Core starting notification
*/

extern int usblib_core_start(void);

/** USB Library core stopping notification
 *
 * Informs the USB Library that the USB Core is stopping
 *
 * @memo USB Library core stopping notifications
*/

extern int usblib_core_stop(void);

/** USB Library version information
 *
 * Get the USB version number, multiplied by 100.
 *
 * @memo USB library version information
*/

extern int usblib_get_version(void);

/* system dependant variants, these should not be used, and are here
 * simply to have them defined
*/

extern int usblib_sys_init(void);
extern int usblib_sys_stop(void);
extern int usblib_sys_core_start(void);
extern int usblib_sys_core_stop(void);

#endif /* __USB_LIB_LIB_H */
