/*------------------------------------------------------------------------* * usb_dma_tag_find - factored out code *------------------------------------------------------------------------*/ struct usb_dma_tag * usb_dma_tag_find(struct usb_dma_parent_tag *udpt, usb_size_t size, usb_size_t align) { struct usb_dma_tag *udt; uint8_t nudt; USB_ASSERT(align > 0, ("Invalid parameter align = 0\n")); USB_ASSERT(size > 0, ("Invalid parameter size = 0\n")); udt = udpt->utag_first; nudt = udpt->utag_max; while (nudt--) { if (udt->align == 0) { usb_dma_tag_create(udt, size, align); if (udt->tag == NULL) { return (NULL); } udt->align = align; udt->size = size; return (udt); } if ((udt->align == align) && (udt->size == size)) { return (udt); } udt++; } return (NULL); }
/*===========================================================================* * hcd_decode_info * *===========================================================================*/ static void hcd_decode_info(long type, long invalue, hcd_event * event, hcd_reg1 * outvalue) { DEBUG_DUMP; USB_ASSERT((invalue >= 0) && (invalue <= 0xFF), "Illegal USB info value received"); switch ((ddekit_msg_type_t)type) { case DDEKIT_HUB_PORT_LS_CONN: *event = HCD_EVENT_PORT_LS_CONNECTED; break; case DDEKIT_HUB_PORT_FS_CONN: *event = HCD_EVENT_PORT_FS_CONNECTED; break; case DDEKIT_HUB_PORT_HS_CONN: *event = HCD_EVENT_PORT_HS_CONNECTED; break; case DDEKIT_HUB_PORT_DISCONN: *event = HCD_EVENT_PORT_DISCONNECTED; break; default: *event = HCD_EVENT_INVALID; break; } *outvalue = (hcd_reg1)invalue; }
/*===========================================================================* * ddekit_usb_cancle_urb * *===========================================================================*/ int ddekit_usb_cancle_urb(struct ddekit_usb_urb * d_urb) { DEBUG_DUMP; /* TODO: UNUSED for argument won't work */ ((void)d_urb); /* TODO: No driver will require this any time soon */ USB_ASSERT(0, "URB cancellation not supported"); return EXIT_SUCCESS; }
/*===========================================================================* * usbd_signal_handler * *===========================================================================*/ static void usbd_signal_handler(int UNUSED(signo)) { DEBUG_DUMP; USB_MSG("Signal received, exiting USBD..."); /* Try graceful DDEKit exit */ ddekit_shutdown(); /* Unreachable, when ddekit_shutdown works correctly */ USB_ASSERT(0, "Calling ddekit_shutdown failed!"); }