X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fusb_endpoint.h;h=63c49bd5ff80033578add0498615d863fa2844aa;hb=024bf80e5f29e4de00d0813d23a4d3b67245ead7;hp=7af79c067316c4c570925ce51947f645c9adf197;hpb=46a1dfc5b039beb4495945e534c746bcce91edae;p=bertos.git diff --git a/bertos/drv/usb_endpoint.h b/bertos/drv/usb_endpoint.h index 7af79c06..63c49bd5 100644 --- a/bertos/drv/usb_endpoint.h +++ b/bertos/drv/usb_endpoint.h @@ -42,6 +42,11 @@ #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 */ @@ -56,7 +61,19 @@ enum { #if (defined(CONFIG_USBMOUSE) && CONFIG_USBMOUSE) USB_MOUSE_EP_REPORT, #endif - USB_EP_MAX, /* Number of allocated endpoints */ + /* 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 */