/** * \file * * * \author Andrea Righi * * \brief USB endpoint allocations * * This file defines how the endpoints are allocated among the supported USB * device drivers in BeRTOs. * */ #ifndef USB_ENDPOINT_H #define USB_ENDPOINT_H #include "cfg/cfg_usb.h" #include "cfg/cfg_usbser.h" #include "cfg/cfg_usbkbd.h" #include "cfg/cfg_usbmouse.h" /* Enpoint allocation (according to the compile-time options) */ enum { USB_CTRL_ENDPOINT = 0, /* This must be always allocated */ #if (defined(CONFIG_USBSER) && CONFIG_USBSER) USB_SERIAL_EP_REPORT, USB_SERIAL_EP_OUT, USB_SERIAL_EP_IN, #endif #if (defined(CONFIG_USBKBD) && CONFIG_USBKBD) USB_KBD_EP_REPORT, #endif #if (defined(CONFIG_USBMOUSE) && CONFIG_USBMOUSE) USB_MOUSE_EP_REPORT, #endif /* Number of allocated endpoints */ #if (CONFIG_USB_EP_MAX == 0) USB_EP_MAX, #else USB_EP_MAX = CONFIG_USB_EP_MAX, #endif }; /* * NOTE: a USB inteface requires at least one endpoint. Moreover, there's the * special endpoint 0. In conclusion, the number of endpoints must be always * greater than the number of interfaces. */ STATIC_ASSERT(USB_EP_MAX >= CONFIG_USB_INTERFACE_MAX); #endif /* USB_ENDPOINT_H */