#ifndef __USBCORE_H__
#define __USBCORE_H__


/* USB Endpoint Data Structure */
typedef struct _USB_EP_DATA
{
  UNS_8  *pData;
  UNS_16   Count;
} USB_EP_DATA;

/* USB Core Global Variables */
extern UNS_16  USB_DeviceStatus;
extern UNS_8  USB_DeviceAddress;
extern UNS_8  USB_Configuration;
extern UNS_32 USB_EndPointMask;
extern UNS_32 USB_EndPointHalt;
extern UNS_8  USB_AltSetting[USB_IF_NUM];

/* USB Endpoint 0 Buffer */
extern UNS_8  EP0Buf[USB_MAX_PACKET0];

/* USB Endpoint 0 Data Info */
extern USB_EP_DATA EP0Data;

/* USB Setup Packet */
extern USB_SETUP_PACKET SetupPacket;

/* USB Core Functions */
extern void  USB_ResetCore(void);


#endif  /* __USBCORE_H__ */
