/* Invoke all registered request callbacks until request handled.  */
static int32_t usbdc_request_handler(uint8_t ep, struct usb_req *req, enum usb_ctrl_stage stage)
/* Invoke all registered request callbacks until request handled.  */
static int32_t usbdc_request_handler(uint8_t ep, struct usb_req *req, enum usb_ctrl_stage stage)
{
	struct usbdc_req_handler *h = (struct usbdc_req_handler *)usbdc.handlers.req_list.head;
	int32_t                   rc;
	while (h != NULL) {
		if (NULL != h->cb) {
			rc = h->cb(ep, req, stage);
			if (0 == rc) {
				return true;
			} else if (ERR_NOT_FOUND != rc) {
				return -1;
			}
		}
		h = h->next;
	}
	return false;
}