BeRTOS
usb_endpoint.h
Go to the documentation of this file.
00001 
00042 #ifndef USB_ENDPOINT_H
00043 #define USB_ENDPOINT_H
00044 
00045 #include "cfg/cfg_usb.h"
00046 #include "cfg/cfg_usbser.h"
00047 #include "cfg/cfg_usbkbd.h"
00048 #include "cfg/cfg_usbmouse.h"
00049 
00050 /* Enpoint allocation (according to the compile-time options) */
00051 enum {
00052     USB_CTRL_ENDPOINT = 0, /* This must be always allocated */
00053 #if (defined(CONFIG_USBSER) && CONFIG_USBSER)
00054     USB_SERIAL_EP_REPORT,
00055     USB_SERIAL_EP_OUT,
00056     USB_SERIAL_EP_IN,
00057 #endif
00058 #if (defined(CONFIG_USBKBD) && CONFIG_USBKBD)
00059     USB_KBD_EP_REPORT,
00060 #endif
00061 #if (defined(CONFIG_USBMOUSE) && CONFIG_USBMOUSE)
00062     USB_MOUSE_EP_REPORT,
00063 #endif
00064  /* Number of allocated endpoints */
00065 #if (CONFIG_USB_EP_MAX == 0)
00066     USB_EP_MAX,
00067 #else
00068     USB_EP_MAX = CONFIG_USB_EP_MAX,
00069 #endif
00070 };
00071 
00072 /*
00073  * NOTE: a USB inteface requires at least one endpoint. Moreover, there's the
00074  * special endpoint 0. In conclusion, the number of endpoints must be always
00075  * greater than the number of interfaces.
00076  */
00077 STATIC_ASSERT(USB_EP_MAX >= CONFIG_USB_INTERFACE_MAX);
00078 
00079 #endif /* USB_ENDPOINT_H */