示例#1
0
/*------------------------------------------------------------------------*
 *	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);
}
示例#2
0
/*===========================================================================*
 *    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;
}
示例#3
0
/*===========================================================================*
 *    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;
}
示例#4
0
文件: usbd.c 项目: Hooman3/minix
/*===========================================================================*
 *    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!");
}