
#ifndef __USBUSER_H__
#define __USBUSER_H__


/* USB Device Events Callback Functions */
extern void USB_Power_Event(UNS_32  power);
extern void USB_Reset_Event(void);
extern void USB_Suspend_Event(void);
extern void USB_Resume_Event(void);
extern void USB_WakeUp_Event(void);
extern void USB_SOF_Event(void);
extern void USB_Error_Event(UNS_32 error);

/* USB Endpoint Callback Events */
#define USB_EVT_SETUP       1   /* Setup Packet */
#define USB_EVT_OUT         2   /* OUT Packet */
#define USB_EVT_IN          3   /*  IN Packet */
#define USB_EVT_OUT_NAK     4   /* OUT Packet - Not Acknowledged */
#define USB_EVT_IN_NAK      5   /*  IN Packet - Not Acknowledged */
#define USB_EVT_OUT_STALL   6   /* OUT Packet - Stalled */
#define USB_EVT_IN_STALL    7   /*  IN Packet - Stalled */

/* USB Endpoint Events Callback Pointers */
extern void (* const USB_P_EP[4])(UNS_32 event);

/* USB Endpoint Events Callback Functions */
extern void USB_EndPoint0(UNS_32 event);
extern void USB_EndPoint1(UNS_32 event);
extern void USB_EndPoint2(UNS_32 event);
extern void USB_EndPoint3(UNS_32 event);

/* USB Core Events Callback Functions */
extern void USB_Configure_Event(void);
extern void USB_Interface_Event(void);
extern void USB_Feature_Event(void);


#endif  /* __USBUSER_H__ */
