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

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

?? ehci.h

?? host usb 主設備程序 支持sd卡 mouse keyboard 的最單單的驅動程序 gcc編譯
?? H
?? 第 1 頁 / 共 2 頁
字號:
#define Q_TYPE_ITD	__constant_cpu_to_le32 (0 << 1)#define Q_TYPE_QH	__constant_cpu_to_le32 (1 << 1)#define Q_TYPE_SITD	__constant_cpu_to_le32 (2 << 1)#define Q_TYPE_FSTN	__constant_cpu_to_le32 (3 << 1)/* next async queue entry, or pointer to interrupt/periodic QH */#define	QH_NEXT(dma)	(cpu_to_le32(((u32)dma)&~0x01f)|Q_TYPE_QH)/* for periodic/async schedules and qtd lists, mark end of list */#define	EHCI_LIST_END	__constant_cpu_to_le32(1) /* "null pointer" to hw *//* * Entries in periodic shadow table are pointers to one of four kinds * of data structure.  That's dictated by the hardware; a type tag is * encoded in the low bits of the hardware's periodic schedule.  Use * Q_NEXT_TYPE to get the tag. * * For entries in the async schedule, the type tag always says "qh". */union ehci_shadow {	struct ehci_qh		*qh;		/* Q_TYPE_QH */	struct ehci_itd		*itd;		/* Q_TYPE_ITD */	struct ehci_sitd	*sitd;		/* Q_TYPE_SITD */	struct ehci_fstn	*fstn;		/* Q_TYPE_FSTN */	__le32			*hw_next;	/* (all types) */	void			*ptr;};/*-------------------------------------------------------------------------*//* * EHCI Specification 0.95 Section 3.6 * QH: describes control/bulk/interrupt endpoints * See Fig 3-7 "Queue Head Structure Layout". * * These appear in both the async and (for interrupt) periodic schedules. */struct ehci_qh {	/* first part defined by EHCI spec */	__le32			hw_next;	 /* see EHCI 3.6.1 */	__le32			hw_info1;        /* see EHCI 3.6.2 */#define	QH_HEAD		0x00008000	__le32			hw_info2;        /* see EHCI 3.6.2 */#define	QH_SMASK	0x000000ff#define	QH_CMASK	0x0000ff00#define	QH_HUBADDR	0x007f0000#define	QH_HUBPORT	0x3f800000#define	QH_MULT		0xc0000000	__le32			hw_current;	 /* qtd list - see EHCI 3.6.4 */	/* qtd overlay (hardware parts of a struct ehci_qtd) */	__le32			hw_qtd_next;	__le32			hw_alt_next;	__le32			hw_token;	__le32			hw_buf [5];	__le32			hw_buf_hi [5];	/* the rest is HCD-private */	dma_addr_t		qh_dma;		/* address of qh */	union ehci_shadow	qh_next;	/* ptr to qh; or periodic */	struct list_head	qtd_list;	/* sw qtd list */	struct ehci_qtd		*dummy;	struct ehci_qh		*reclaim;	/* next to reclaim */	struct ehci_hcd		*ehci;	struct kref		kref;	unsigned		stamp;	u8			qh_state;#define	QH_STATE_LINKED		1		/* HC sees this */#define	QH_STATE_UNLINK		2		/* HC may still see this */#define	QH_STATE_IDLE		3		/* HC doesn't see this */#define	QH_STATE_UNLINK_WAIT	4		/* LINKED and on reclaim q */#define	QH_STATE_COMPLETING	5		/* don't touch token.HALT */	/* periodic schedule info */	u8			usecs;		/* intr bandwidth */	u8			gap_uf;		/* uframes split/csplit gap */	u8			c_usecs;	/* ... split completion bw */	u16			tt_usecs;	/* tt downstream bandwidth */	unsigned short		period;		/* polling interval */	unsigned short		start;		/* where polling starts */#define NO_FRAME ((unsigned short)~0)			/* pick new start */	struct usb_device	*dev;		/* access to TT */} __attribute__ ((aligned (32)));/*-------------------------------------------------------------------------*//* description of one iso transaction (up to 3 KB data if highspeed) */struct ehci_iso_packet {	/* These will be copied to iTD when scheduling */	u64			bufp;		/* itd->hw_bufp{,_hi}[pg] |= */	__le32			transaction;	/* itd->hw_transaction[i] |= */	u8			cross;		/* buf crosses pages */	/* for full speed OUT splits */	u32			buf1;};/* temporary schedule data for packets from iso urbs (both speeds) * each packet is one logical usb transaction to the device (not TT), * beginning at stream->next_uframe */struct ehci_iso_sched {	struct list_head	td_list;	unsigned		span;	struct ehci_iso_packet	packet [0];};/* * ehci_iso_stream - groups all (s)itds for this endpoint. * acts like a qh would, if EHCI had them for ISO. */struct ehci_iso_stream {	/* first two fields match QH, but info1 == 0 */	__le32			hw_next;	__le32			hw_info1;	u32			refcount;	u8			bEndpointAddress;	u8			highspeed;	u16			depth;		/* depth in uframes */	struct list_head	td_list;	/* queued itds/sitds */	struct list_head	free_list;	/* list of unused itds/sitds */	struct usb_device	*udev;	struct usb_host_endpoint *ep;	/* output of (re)scheduling */	unsigned long		start;		/* jiffies */	unsigned long		rescheduled;	int			next_uframe;	__le32			splits;	/* the rest is derived from the endpoint descriptor,	 * trusting urb->interval == f(epdesc->bInterval) and	 * including the extra info for hw_bufp[0..2]	 */	u8			interval;	u8			usecs, c_usecs;	u16			tt_usecs;	u16			maxp;	u16			raw_mask;	unsigned		bandwidth;	/* This is used to initialize iTD's hw_bufp fields */	__le32			buf0;	__le32			buf1;	__le32			buf2;	/* this is used to initialize sITD's tt info */	__le32			address;};/*-------------------------------------------------------------------------*//* * EHCI Specification 0.95 Section 3.3 * Fig 3-4 "Isochronous Transaction Descriptor (iTD)" * * Schedule records for high speed iso xfers */struct ehci_itd {	/* first part defined by EHCI spec */	__le32			hw_next;           /* see EHCI 3.3.1 */	__le32			hw_transaction [8]; /* see EHCI 3.3.2 */#define EHCI_ISOC_ACTIVE        (1<<31)        /* activate transfer this slot */#define EHCI_ISOC_BUF_ERR       (1<<30)        /* Data buffer error */#define EHCI_ISOC_BABBLE        (1<<29)        /* babble detected */#define EHCI_ISOC_XACTERR       (1<<28)        /* XactErr - transaction error */#define	EHCI_ITD_LENGTH(tok)	(((tok)>>16) & 0x0fff)#define	EHCI_ITD_IOC		(1 << 15)	/* interrupt on complete */#define ITD_ACTIVE	__constant_cpu_to_le32(EHCI_ISOC_ACTIVE)	__le32			hw_bufp [7];	/* see EHCI 3.3.3 */	__le32			hw_bufp_hi [7];	/* Appendix B */	/* the rest is HCD-private */	dma_addr_t		itd_dma;	/* for this itd */	union ehci_shadow	itd_next;	/* ptr to periodic q entry */	struct urb		*urb;	struct ehci_iso_stream	*stream;	/* endpoint's queue */	struct list_head	itd_list;	/* list of stream's itds */	/* any/all hw_transactions here may be used by that urb */	unsigned		frame;		/* where scheduled */	unsigned		pg;	unsigned		index[8];	/* in urb->iso_frame_desc */	u8			usecs[8];} __attribute__ ((aligned (32)));/*-------------------------------------------------------------------------*//* * EHCI Specification 0.95 Section 3.4 * siTD, aka split-transaction isochronous Transfer Descriptor *       ... describe full speed iso xfers through TT in hubs * see Figure 3-5 "Split-transaction Isochronous Transaction Descriptor (siTD) */struct ehci_sitd {	/* first part defined by EHCI spec */	__le32			hw_next;/* uses bit field macros above - see EHCI 0.95 Table 3-8 */	__le32			hw_fullspeed_ep;	/* EHCI table 3-9 */	__le32			hw_uframe;		/* EHCI table 3-10 */	__le32			hw_results;		/* EHCI table 3-11 */#define	SITD_IOC	(1 << 31)	/* interrupt on completion */#define	SITD_PAGE	(1 << 30)	/* buffer 0/1 */#define	SITD_LENGTH(x)	(0x3ff & ((x)>>16))#define	SITD_STS_ACTIVE	(1 << 7)	/* HC may execute this */#define	SITD_STS_ERR	(1 << 6)	/* error from TT */#define	SITD_STS_DBE	(1 << 5)	/* data buffer error (in HC) */#define	SITD_STS_BABBLE	(1 << 4)	/* device was babbling */#define	SITD_STS_XACT	(1 << 3)	/* illegal IN response */#define	SITD_STS_MMF	(1 << 2)	/* incomplete split transaction */#define	SITD_STS_STS	(1 << 1)	/* split transaction state */#define SITD_ACTIVE	__constant_cpu_to_le32(SITD_STS_ACTIVE)	__le32			hw_buf [2];		/* EHCI table 3-12 */	__le32			hw_backpointer;		/* EHCI table 3-13 */	__le32			hw_buf_hi [2];		/* Appendix B */	/* the rest is HCD-private */	dma_addr_t		sitd_dma;	union ehci_shadow	sitd_next;	/* ptr to periodic q entry */	struct urb		*urb;	struct ehci_iso_stream	*stream;	/* endpoint's queue */	struct list_head	sitd_list;	/* list of stream's sitds */	unsigned		frame;	unsigned		index;} __attribute__ ((aligned (32)));/*-------------------------------------------------------------------------*//* * EHCI Specification 0.96 Section 3.7 * Periodic Frame Span Traversal Node (FSTN) * * Manages split interrupt transactions (using TT) that span frame boundaries * into uframes 0/1; see 4.12.2.2.  In those uframes, a "save place" FSTN * makes the HC jump (back) to a QH to scan for fs/ls QH completions until * it hits a "restore" FSTN; then it returns to finish other uframe 0/1 work. */struct ehci_fstn {	__le32			hw_next;	/* any periodic q entry */	__le32			hw_prev;	/* qh or EHCI_LIST_END */	/* the rest is HCD-private */	dma_addr_t		fstn_dma;	union ehci_shadow	fstn_next;	/* ptr to periodic q entry */} __attribute__ ((aligned (32)));/*-------------------------------------------------------------------------*/#ifdef CONFIG_USB_EHCI_ROOT_HUB_TT/* * Some EHCI controllers have a Transaction Translator built into the * root hub. This is a non-standard feature.  Each controller will need * to add code to the following inline functions, and call them as * needed (mostly in root hub code). */#define	ehci_is_TDI(e)			((e)->is_tdi_rh_tt)/* Returns the speed of a device attached to a port on the root hub. */static inline unsigned intehci_port_speed(struct ehci_hcd *ehci, unsigned int portsc){	if (ehci_is_TDI(ehci)) {		switch ((portsc>>26)&3) {		case 0:			return 0;		case 1:			return (1<<USB_PORT_FEAT_LOWSPEED);		case 2:		default:			return (1<<USB_PORT_FEAT_HIGHSPEED);		}	}	return (1<<USB_PORT_FEAT_HIGHSPEED);}#else#define	ehci_is_TDI(e)			(0)#define	ehci_port_speed(ehci, portsc)	(1<<USB_PORT_FEAT_HIGHSPEED)#endif/*-------------------------------------------------------------------------*/#ifdef CONFIG_PPC_83xx/* Some Freescale processors have an erratum in which the TT * port number in the queue head was 0..N-1 instead of 1..N. */#define	ehci_has_fsl_portno_bug(e)		((e)->has_fsl_port_bug)#else#define	ehci_has_fsl_portno_bug(e)		(0)#endif/* * While most USB host controllers implement their registers in * little-endian format, a minority (celleb companion chip) implement * them in big endian format. * * This attempts to support either format at compile time without a * runtime penalty, or both formats with the additional overhead * of checking a flag bit. */#ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO#define ehci_big_endian_mmio(e)		((e)->big_endian_mmio)#else#define ehci_big_endian_mmio(e)		0#endifstatic inline unsigned int ehci_readl (const struct ehci_hcd *ehci,				       __u32 __iomem * regs){#ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO	return ehci_big_endian_mmio(ehci) ?		readl_be(regs) :		readl(regs);#else	return readl(regs);#endif}static inline void ehci_writel (const struct ehci_hcd *ehci,				const unsigned int val, __u32 __iomem *regs){#ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO	ehci_big_endian_mmio(ehci) ?		writel_be(val, regs) :		writel(val, regs);#else	writel(val, regs);#endif}/*-------------------------------------------------------------------------*/#ifndef DEBUG#define STUB_DEBUG_FILES#endif	/* DEBUG *//*-------------------------------------------------------------------------*/#endif /* __LINUX_EHCI_HCD_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久福利一牛影视 | 国产精品女主播av| 亚洲欧美日韩小说| 国产999精品久久久久久| 91福利视频久久久久| 精品福利一区二区三区| 亚洲地区一二三色| voyeur盗摄精品| 亚洲免费资源在线播放| 伦理电影国产精品| 欧美日韩中文字幕一区| 国产日产欧产精品推荐色| 三级欧美在线一区| 欧美日韩一区精品| 一区二区在线观看视频| 成人少妇影院yyyy| 国产亚洲精品aa| 九色综合国产一区二区三区| 欧美精品视频www在线观看| 亚洲欧洲日产国产综合网| 国产成人啪免费观看软件| 日韩欧美一二三| 青青草视频一区| 欧美日韩国产高清一区二区| 一区二区三区欧美在线观看| 成人av在线网| 国产精品美日韩| 成人18精品视频| 中文av一区特黄| 成人黄色大片在线观看| 久久久久九九视频| 国产美女精品在线| 2021久久国产精品不只是精品| 日本欧美肥老太交大片| 337p亚洲精品色噜噜噜| 男女男精品网站| 日韩欧美一二区| 国产一区二三区好的| 久久久久青草大香线综合精品| 国产在线不卡一卡二卡三卡四卡| 精品剧情v国产在线观看在线| 经典三级视频一区| 日本一区二区三区国色天香| 不卡的av在线| 亚洲一区二区精品久久av| 欧美麻豆精品久久久久久| 日韩中文字幕区一区有砖一区 | 91免费视频大全| 夜夜精品视频一区二区| 欧美猛男超大videosgay| 男男视频亚洲欧美| 国产午夜亚洲精品理论片色戒| 成人激情小说乱人伦| **欧美大码日韩| 欧美日韩国产天堂| 久久99国产精品免费| 中文字幕二三区不卡| 色妞www精品视频| 日韩av一区二| 国产女同互慰高潮91漫画| 在线亚洲精品福利网址导航| 日韩精品每日更新| 欧美激情中文不卡| 欧美日韩和欧美的一区二区| 国内精品免费在线观看| 亚洲品质自拍视频网站| 91精品黄色片免费大全| 成人永久免费视频| 日本三级韩国三级欧美三级| 国产精品欧美一区喷水| 欧美日韩午夜在线| 99视频一区二区| 男女视频一区二区| 亚洲久草在线视频| 精品国产亚洲在线| 欧洲精品一区二区| 国产二区国产一区在线观看| 亚洲国产婷婷综合在线精品| 久久嫩草精品久久久精品| 色8久久精品久久久久久蜜| 国内外成人在线| 亚洲高清免费视频| 国产欧美日韩精品一区| 在线不卡a资源高清| 成人99免费视频| 久久99国产乱子伦精品免费| 亚洲高清免费观看高清完整版在线观看| 精品国产91九色蝌蚪| 欧美日韩综合在线| 91久久一区二区| 成人黄色国产精品网站大全在线免费观看| 日韩主播视频在线| 一个色妞综合视频在线观看| 亚洲国产精品二十页| 日韩精品一区国产麻豆| 欧洲一区二区三区在线| 91影视在线播放| 懂色av一区二区三区免费看| 久久国产福利国产秒拍| 亚洲成人动漫精品| 亚洲一区二区视频| 夜夜嗨av一区二区三区中文字幕 | aaa国产一区| 国产精品一卡二| 精品影视av免费| 日韩va欧美va亚洲va久久| 亚洲国产美女搞黄色| 亚洲另类一区二区| 亚洲情趣在线观看| 亚洲精品网站在线观看| 中文字幕亚洲精品在线观看| 中文无字幕一区二区三区 | 国产剧情一区二区| 国产自产视频一区二区三区| 精品一区二区精品| 老司机精品视频在线| 免费成人av在线播放| 美女国产一区二区三区| 美国十次综合导航| 免费精品99久久国产综合精品| 奇米影视在线99精品| 日本麻豆一区二区三区视频| 日本三级亚洲精品| 精品亚洲国内自在自线福利| 国产精品亚洲一区二区三区妖精| 国产精品一级在线| 99久久99久久精品免费观看| 色狠狠色噜噜噜综合网| 欧美色老头old∨ideo| 欧美电影影音先锋| 久久久青草青青国产亚洲免观| 精品区一区二区| 欧美国产成人精品| 亚洲在线视频网站| 美女mm1313爽爽久久久蜜臀| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美亚州韩日在线看免费版国语版| 色琪琪一区二区三区亚洲区| 欧美日韩中文字幕一区| 日韩欧美一区中文| 国产日韩欧美制服另类| 亚洲青青青在线视频| 日韩专区一卡二卡| 成熟亚洲日本毛茸茸凸凹| 91视频观看免费| 7777精品伊人久久久大香线蕉完整版 | 亚洲人被黑人高潮完整版| 日韩久久一区二区| 香蕉久久一区二区不卡无毒影院 | 久久99这里只有精品| 国产精品99久久不卡二区| 成人av电影在线| 欧美日韩高清一区二区| 久久久久久久久99精品| ...xxx性欧美| 午夜激情一区二区三区| 国产成人精品一区二| 在线观看成人小视频| 欧美xxxxx裸体时装秀| 亚洲色图丝袜美腿| 久久99精品国产91久久来源| 91亚洲国产成人精品一区二区三| 欧美一区二区福利视频| 日韩理论电影院| 国产乱子轮精品视频| 欧美日韩国产影片| 欧美激情资源网| 久久91精品国产91久久小草| 色又黄又爽网站www久久| 久久亚洲欧美国产精品乐播| 亚洲尤物视频在线| 99精品视频一区| 久久精品男人天堂av| 日韩高清不卡一区二区| 色婷婷亚洲一区二区三区| 国产日韩欧美一区二区三区乱码| 日韩国产在线一| 色狠狠综合天天综合综合| 欧美激情一区二区三区不卡| 蜜臀精品一区二区三区在线观看 | 成人av网在线| 欧美精品一区二区高清在线观看| 亚洲电影一级黄| 91丨九色丨蝌蚪丨老版| 久久久久青草大香线综合精品| 日韩av高清在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 日韩欧美国产一区在线观看| 亚洲最大成人综合| 91一区二区在线观看| 国产精品毛片无遮挡高清| 国产老肥熟一区二区三区| 精品乱人伦小说| 精品影院一区二区久久久| 日韩欧美国产一区二区三区| 日韩精品成人一区二区在线| 欧美精品精品一区| 天天av天天翘天天综合网色鬼国产| 在线观看区一区二| 亚洲图片欧美一区|