亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usb_uhci.c

?? ppcboot2.0 華恒光盤里帶的BOOTLOADER
?? C
?? 第 1 頁 / 共 3 頁
字號:
	unsigned short bmRType_bReq;	unsigned short wValue;	unsigned short wIndex;	unsigned short wLength;	if ((pipe & PIPE_INTERRUPT) == PIPE_INTERRUPT) {		printf("Root-Hub submit IRQ: NOT implemented\n");#if 0		uhci->rh.urb = urb;		uhci->rh.send = 1;		uhci->rh.interval = urb->interval;		rh_init_int_timer (urb);#endif		return 0;	}	bmRType_bReq = cmd->requesttype | cmd->request << 8;	wValue = swap_16(cmd->value);	wIndex = swap_16(cmd->index);	wLength = swap_16(cmd->length);	usb_display_Req(bmRType_bReq);	for (i = 0; i < 8; i++)		rh.c_p_r[i] = 0;	USB_RH_PRINTF("Root-Hub: adr: %2x cmd(%1x): %02x%02x %04x %04x %04x\n",	     dev->devnum, 8, cmd->requesttype,cmd->request, wValue, wIndex, wLength);	switch (bmRType_bReq) {		/* Request Destination:		   without flags: Device,		   RH_INTERFACE: interface,		   RH_ENDPOINT: endpoint,		   RH_CLASS means HUB here,		   RH_OTHER | RH_CLASS  almost ever means HUB_PORT here		 */	case RH_GET_STATUS:		*(unsigned short *) data = swap_16(1);		len=2;		break;	case RH_GET_STATUS | RH_INTERFACE:		*(unsigned short *) data = swap_16(0);		len=2;		break;	case RH_GET_STATUS | RH_ENDPOINT:		*(unsigned short *) data = swap_16(0);		len=2;		break;	case RH_GET_STATUS | RH_CLASS:		*(unsigned long *) data = swap_32(0);		len=4;		break;	/* hub power ** */	case RH_GET_STATUS | RH_OTHER | RH_CLASS:		status = in16r(usb_base_addr + USBPORTSC1 + 2 * (wIndex - 1));		cstatus = ((status & USBPORTSC_CSC) >> (1 - 0)) |			((status & USBPORTSC_PEC) >> (3 - 1)) |			(rh.c_p_r[wIndex - 1] << (0 + 4));		status = (status & USBPORTSC_CCS) |			((status & USBPORTSC_PE) >> (2 - 1)) |			((status & USBPORTSC_SUSP) >> (12 - 2)) |			((status & USBPORTSC_PR) >> (9 - 4)) |			(1 << 8) |	/* power on ** */			((status & USBPORTSC_LSDA) << (-8 + 9));		*(unsigned short *) data = swap_16(status);		*(unsigned short *) (data + 2) = swap_16(cstatus);		len=4;		break;	case RH_CLEAR_FEATURE | RH_ENDPOINT:		switch (wValue) {		case (RH_ENDPOINT_STALL):			len=0;			break;		}		break;	case RH_CLEAR_FEATURE | RH_CLASS:		switch (wValue) {		case (RH_C_HUB_OVER_CURRENT):			len=0;	/* hub power over current ** */			break;		}		break;	case RH_CLEAR_FEATURE | RH_OTHER | RH_CLASS:		usb_display_wValue(wValue,wIndex);		switch (wValue) {		case (RH_PORT_ENABLE):			status = in16r(usb_base_addr+USBPORTSC1+2*(wIndex-1));			status = (status & 0xfff5) & ~USBPORTSC_PE;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			len=0;			break;		case (RH_PORT_SUSPEND):			status = in16r(usb_base_addr+USBPORTSC1+2*(wIndex-1));			status = (status & 0xfff5) & ~USBPORTSC_SUSP;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			len=0;			break;		case (RH_PORT_POWER):			len=0;	/* port power ** */			break;		case (RH_C_PORT_CONNECTION):			status = in16r(usb_base_addr+USBPORTSC1+2*(wIndex-1));			status = (status & 0xfff5) | USBPORTSC_CSC;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			len=0;			break;		case (RH_C_PORT_ENABLE):			status = in16r(usb_base_addr+USBPORTSC1+2*(wIndex-1));			status = (status & 0xfff5) | USBPORTSC_PEC;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			len=0;			break;		case (RH_C_PORT_SUSPEND):/*** WR_RH_PORTSTAT(RH_PS_PSSC); */			len=0;			break;		case (RH_C_PORT_OVER_CURRENT):			len=0;			break;		case (RH_C_PORT_RESET):			rh.c_p_r[wIndex - 1] = 0;			len=0;			break;		}		break;	case RH_SET_FEATURE | RH_OTHER | RH_CLASS:		usb_display_wValue(wValue,wIndex);		switch (wValue) {		case (RH_PORT_SUSPEND):			status = in16r(usb_base_addr+USBPORTSC1+2*(wIndex-1));			status = (status & 0xfff5) | USBPORTSC_SUSP;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			len=0;			break;		case (RH_PORT_RESET):			status = in16r(usb_base_addr+USBPORTSC1+2*(wIndex-1));			status = (status & 0xfff5) | USBPORTSC_PR;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			wait_ms(10);			status = (status & 0xfff5) & ~USBPORTSC_PR;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			udelay(10);			status = (status & 0xfff5) | USBPORTSC_PE;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			wait_ms(10);			status = (status & 0xfff5) | 0xa;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			len=0;			break;		case (RH_PORT_POWER):			len=0;	/* port power ** */			break;		case (RH_PORT_ENABLE):			status = in16r(usb_base_addr+USBPORTSC1+2*(wIndex-1));			status = (status & 0xfff5) | USBPORTSC_PE;			out16r(usb_base_addr+USBPORTSC1+2*(wIndex-1),status);			len=0;			break;		}		break;	case RH_SET_ADDRESS:		rh.devnum = wValue;		len=0;		break;	case RH_GET_DESCRIPTOR:		switch ((wValue & 0xff00) >> 8) {		case (0x01):	/* device descriptor */			i=sizeof(root_hub_config_des);			status=i > wLength ? wLength : i;			len = leni > status ? status : leni;			memcpy (data, root_hub_dev_des, len);			break;		case (0x02):	/* configuration descriptor */			i=sizeof(root_hub_config_des);			status=i > wLength ? wLength : i;			len = leni > status ? status : leni;			memcpy (data, root_hub_config_des, len);			break;		case (0x03):	/*string descriptors */			if(wValue==0x0300) {				i=sizeof(root_hub_str_index0);				status = i > wLength ? wLength : i;				len = leni > status ? status : leni;				memcpy (data, root_hub_str_index0, len);				break;			}			if(wValue==0x0301) {				i=sizeof(root_hub_str_index1);				status = i > wLength ? wLength : i;				len = leni > status ? status : leni;				memcpy (data, root_hub_str_index1, len);				break;			}			stat = USB_ST_STALLED;		}		break;	case RH_GET_DESCRIPTOR | RH_CLASS:		root_hub_hub_des[2] = 2;		i=sizeof(root_hub_hub_des);		status= i > wLength ? wLength : i;		len = leni > status ? status : leni;		memcpy (data, root_hub_hub_des, len);		break;	case RH_GET_CONFIGURATION:		*(unsigned char *) data = 0x01;		len = 1;		break;	case RH_SET_CONFIGURATION:		len=0;		break;	default:		stat = USB_ST_STALLED;	}	USB_RH_PRINTF("Root-Hub stat %lx port1: %x port2: %x\n\n",stat,	     in16r(usb_base_addr + USBPORTSC1), in16r(usb_base_addr + USBPORTSC2));	dev->act_len=len;	dev->status=stat;	return stat;}/******************************************************************************** * Some Debug Routines */#ifdef	USB_RH_DEBUGstatic void usb_display_Req(unsigned short req){	USB_RH_PRINTF("- Root-Hub Request: ");	switch (req) {	case RH_GET_STATUS:		USB_RH_PRINTF("Get Status ");		break;	case RH_GET_STATUS | RH_INTERFACE:		USB_RH_PRINTF("Get Status Interface ");		break;	case RH_GET_STATUS | RH_ENDPOINT:		USB_RH_PRINTF("Get Status Endpoint ");		break;	case RH_GET_STATUS | RH_CLASS:		USB_RH_PRINTF("Get Status Class");		break;	/* hub power ** */	case RH_GET_STATUS | RH_OTHER | RH_CLASS:		USB_RH_PRINTF("Get Status Class Others");		break;	case RH_CLEAR_FEATURE | RH_ENDPOINT:		USB_RH_PRINTF("Clear Feature Endpoint ");		break;	case RH_CLEAR_FEATURE | RH_CLASS:		USB_RH_PRINTF("Clear Feature Class ");		break;	case RH_CLEAR_FEATURE | RH_OTHER | RH_CLASS:		USB_RH_PRINTF("Clear Feature Other Class ");		break;	case RH_SET_FEATURE | RH_OTHER | RH_CLASS:		USB_RH_PRINTF("Set Feature Other Class ");		break;	case RH_SET_ADDRESS:		USB_RH_PRINTF("Set Address ");		break;	case RH_GET_DESCRIPTOR:		USB_RH_PRINTF("Get Descriptor ");		break;	case RH_GET_DESCRIPTOR | RH_CLASS:		USB_RH_PRINTF("Get Descriptor Class ");		break;	case RH_GET_CONFIGURATION:		USB_RH_PRINTF("Get Configuration ");		break;	case RH_SET_CONFIGURATION:		USB_RH_PRINTF("Get Configuration ");		break;	default:		USB_RH_PRINTF("****UNKNOWN**** 0x%04X ",req);	}	USB_RH_PRINTF("\n");}static void usb_display_wValue(unsigned short wValue,unsigned short wIndex){	switch (wValue) {		case (RH_PORT_ENABLE):			USB_RH_PRINTF("Root-Hub: Enable Port %d\n",wIndex);			break;		case (RH_PORT_SUSPEND):			USB_RH_PRINTF("Root-Hub: Suspend Port %d\n",wIndex);			break;		case (RH_PORT_POWER):			USB_RH_PRINTF("Root-Hub: Port Power %d\n",wIndex);			break;		case (RH_C_PORT_CONNECTION):			USB_RH_PRINTF("Root-Hub: C Port Connection Port %d\n",wIndex);			break;		case (RH_C_PORT_ENABLE):			USB_RH_PRINTF("Root-Hub: C Port Enable Port %d\n",wIndex);			break;		case (RH_C_PORT_SUSPEND):			USB_RH_PRINTF("Root-Hub: C Port Suspend Port %d\n",wIndex);			break;		case (RH_C_PORT_OVER_CURRENT):			USB_RH_PRINTF("Root-Hub: C Port Over Current Port %d\n",wIndex);			break;		case (RH_C_PORT_RESET):			USB_RH_PRINTF("Root-Hub: C Port reset Port %d\n",wIndex);			break;		default:			USB_RH_PRINTF("Root-Hub: unknown %x %x\n",wValue,wIndex);			break;	}}#endif#ifdef	USB_UHCI_DEBUGstatic int usb_display_td(uhci_td_t *td){	unsigned long tmp;	int valid;	printf("TD at %p:\n",td);	tmp=swap_32(td->link);	printf("Link points to 0x%08lX, %s first, %s, %s\n",tmp&0xfffffff0,		((tmp & 0x4)==0x4) ? "Depth" : "Breath",		((tmp & 0x2)==0x2) ? "QH" : "TD",		((tmp & 0x1)==0x1) ? "invalid" : "valid");	valid=((tmp & 0x1)==0x0);	tmp=swap_32(td->status);	printf("     %s %ld Errors %s %s %s \n     %s %s %s %s %s %s\n     Len 0x%lX\n",		(((tmp>>29)&0x1)==0x1) ? "SPD Enable" : "SPD Disable",		((tmp>>28)&0x3),		(((tmp>>26)&0x1)==0x1) ? "Low Speed" : "Full Speed",		(((tmp>>25)&0x1)==0x1) ? "ISO " : "",		(((tmp>>24)&0x1)==0x1) ? "IOC " : "",		(((tmp>>23)&0x1)==0x1) ? "Active " : "Inactive ",		(((tmp>>22)&0x1)==0x1) ? "Stalled" : "",		(((tmp>>21)&0x1)==0x1) ? "Data Buffer Error" : "",		(((tmp>>20)&0x1)==0x1) ? "Babble" : "",		(((tmp>>19)&0x1)==0x1) ? "NAK" : "",		(((tmp>>18)&0x1)==0x1) ? "Bitstuff Error" : "",		(tmp&0x7ff));	tmp=swap_32(td->info);	printf("     MaxLen 0x%lX\n",((tmp>>21)&0x7FF));	printf("     %s Endpoint 0x%lX Dev Addr 0x%lX PID 0x%lX\n",((tmp>>19)&0x1)==0x1 ? "TOGGLE" : "",		((tmp>>15)&0xF),((tmp>>8)&0x7F),tmp&0xFF);	tmp=swap_32(td->buffer);	printf("     Buffer 0x%08lX\n",tmp);	printf("     DEV %08lX\n",td->dev_ptr);	return valid;}void usb_show_td(int max){	int i;	if(max>0) {		for(i=0;i<max;i++) {			usb_display_td(&tmp_td[i]);		}	}	else {		i=0;		do {			printf("tmp_td[%d]\n",i);		}while(usb_display_td(&tmp_td[i++]));	}}#endif#endif /* CONFIG_USB_UHCI *//* EOF */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久先锋影音av| 91精品国产综合久久久久久久久久| 青草国产精品久久久久久| 亚洲一区二区三区激情| 一区二区三区四区在线| 亚洲国产日韩综合久久精品| 一区二区欧美在线观看| 亚洲精品高清在线| 亚洲资源中文字幕| 五月婷婷综合激情| 日韩精品电影在线观看| 久久精品久久久精品美女| 久久国产免费看| 国产精品亚洲视频| av一区二区三区在线| 91浏览器在线视频| 精品视频在线免费看| 欧美成人a∨高清免费观看| 26uuu国产日韩综合| 亚洲欧美中日韩| 亚洲小少妇裸体bbw| 日韩不卡一区二区三区 | 男女男精品视频| 国产一区二区毛片| 日本丶国产丶欧美色综合| 欧美理论电影在线| 精品国产免费一区二区三区四区| 中文一区在线播放| 午夜不卡av免费| 国产91精品入口| 欧美性做爰猛烈叫床潮| 欧美一区二区三区人| 久久噜噜亚洲综合| 一区二区视频在线看| 久久精品国产一区二区三| 成人av网站在线观看免费| 欧美日韩综合色| 国产视频在线观看一区二区三区| 亚洲精品国产视频| 国产一区二区三区观看| 91福利国产精品| 日韩一二在线观看| 亚洲精品免费在线| 国产成人免费在线| 6080国产精品一区二区| 亚洲欧洲美洲综合色网| 亚洲一区二区视频在线| 丁香啪啪综合成人亚洲小说| 欧美一区二区三区免费大片| 亚洲色图制服丝袜| 国产成人av一区二区三区在线 | 麻豆久久一区二区| 色婷婷av一区二区三区gif| 欧美精品一区视频| 日本欧美大码aⅴ在线播放| 99久久精品免费看国产免费软件| 精品国产第一区二区三区观看体验| 亚洲资源中文字幕| 日本道精品一区二区三区 | 一本大道久久精品懂色aⅴ | 国产亚洲美州欧州综合国| 午夜精品福利一区二区蜜股av| 99久久久久久| 一区在线中文字幕| 成人a区在线观看| 国产视频911| 国产乱码字幕精品高清av | 91九色最新地址| 亚洲欧洲日韩在线| 99国内精品久久| 国产精品蜜臀av| 99久久伊人久久99| 国产精品你懂的| 92国产精品观看| 国产精品国产三级国产| 成人免费看黄yyy456| 国产精品久久久久久久岛一牛影视 | 亚洲成人7777| 3751色影院一区二区三区| 日韩国产在线一| 欧美v日韩v国产v| 国产一区二区三区视频在线播放| 久久综合色一综合色88| 国产一区欧美一区| 国产欧美一区视频| 97精品久久久久中文字幕| 亚洲精品亚洲人成人网在线播放| 色婷婷激情一区二区三区| 午夜精品久久久久久久久| 日韩三级精品电影久久久| 精品影院一区二区久久久| 亚洲精品一区二区三区四区高清| 成人亚洲精品久久久久软件| 亚洲女子a中天字幕| 欧美日韩高清一区二区不卡| 日本aⅴ亚洲精品中文乱码| 欧美成人女星排名| www.欧美日韩| 亚洲超碰97人人做人人爱| 精品免费视频一区二区| 成人精品在线视频观看| 一区二区三区四区精品在线视频| 欧美精品色一区二区三区| 国产又黄又大久久| 亚洲精品日日夜夜| 欧美tickling网站挠脚心| 国产aⅴ精品一区二区三区色成熟| 国产精品入口麻豆原神| 欧美视频日韩视频在线观看| 九九视频精品免费| 亚洲精选视频在线| 久久日韩精品一区二区五区| 91视频你懂的| 国产乱码精品一区二区三区忘忧草| ...xxx性欧美| 91超碰这里只有精品国产| 国产精品亚洲第一区在线暖暖韩国| 一区二区激情视频| 久久亚洲综合色一区二区三区| 欧美性感一类影片在线播放| 国产成人午夜精品影院观看视频| 日韩黄色一级片| 亚洲精品国产高清久久伦理二区| 久久久久久一二三区| 欧美妇女性影城| 91在线精品一区二区| 极品少妇一区二区| 亚洲国产cao| 1024精品合集| 国产色一区二区| 欧美tk丨vk视频| 91精品国产综合久久精品性色| 在线视频综合导航| 成人天堂资源www在线| 麻豆久久久久久| 日韩精品乱码免费| 亚洲成人中文在线| 亚洲已满18点击进入久久| 欧美国产禁国产网站cc| 久久一二三国产| 日韩三区在线观看| 日韩一级片网站| 欧美一卡二卡在线观看| 在线观看91av| 欧美精三区欧美精三区| 欧美午夜电影在线播放| 91久久香蕉国产日韩欧美9色| av电影在线观看完整版一区二区| 国产激情偷乱视频一区二区三区| 国产一区二区三区免费播放| 国产一区二区三区在线观看精品| 日本不卡的三区四区五区| 午夜欧美一区二区三区在线播放| 亚洲午夜一二三区视频| 午夜婷婷国产麻豆精品| 日韩精品每日更新| 蜜桃久久久久久久| 麻豆精品视频在线观看视频| 蜜乳av一区二区三区| 激情久久五月天| 成人性色生活片免费看爆迷你毛片| 国产福利一区在线| 99久久精品国产毛片| 91丨九色丨黑人外教| 欧洲一区二区三区在线| 91精品欧美一区二区三区综合在| 日韩色在线观看| 欧美激情一区二区三区全黄| 国产精品乱码人人做人人爱 | 欧美高清一级片在线观看| 国产精品天天看| 一个色综合av| 日韩中文字幕区一区有砖一区 | 亚洲日本护士毛茸茸| 亚洲最快最全在线视频| 日韩不卡免费视频| 国产激情一区二区三区| 色婷婷综合中文久久一本| 欧美日韩色一区| 久久精品视频免费| 一区二区三区91| 精品一区二区免费视频| 99麻豆久久久国产精品免费 | 美腿丝袜在线亚洲一区| 国产精品中文有码| 91国产丝袜在线播放| 欧美不卡一区二区三区四区| 国产精品久久网站| 首页国产欧美日韩丝袜| 国产91精品欧美| 欧美一区在线视频| 成人欧美一区二区三区| 日韩av中文在线观看| 成人黄页毛片网站| 欧美精品色综合| 亚洲欧美偷拍卡通变态| 激情另类小说区图片区视频区| 在线视频欧美区| 国产日韩欧美激情| 日韩av成人高清|