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

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

?? uhci.h

?? 超小usb協(xié)議棧
?? H
字號:
#ifndef __LINUX_UHCI_H#define __LINUX_UHCI_H#include <linux/list.h>#include "usb.h"/* * Universal Host Controller Interface data structures and defines *//* Command register */#define USBCMD		0#define   USBCMD_RS		0x0001	/* Run/Stop */#define   USBCMD_HCRESET	0x0002	/* Host reset */#define   USBCMD_GRESET		0x0004	/* Global reset */#define   USBCMD_EGSM		0x0008	/* Global Suspend Mode */#define   USBCMD_FGR		0x0010	/* Force Global Resume */#define   USBCMD_SWDBG		0x0020	/* SW Debug mode */#define   USBCMD_CF		0x0040	/* Config Flag (sw only) */#define   USBCMD_MAXP		0x0080	/* Max Packet (0 = 32, 1 = 64) *//* Status register */#define USBSTS		2#define   USBSTS_USBINT		0x0001	/* Interrupt due to IOC */#define   USBSTS_ERROR		0x0002	/* Interrupt due to error */#define   USBSTS_RD		0x0004	/* Resume Detect */#define   USBSTS_HSE		0x0008	/* Host System Error - basically PCI problems */#define   USBSTS_HCPE		0x0010	/* Host Controller Process Error - the scripts were buggy */#define   USBSTS_HCH		0x0020	/* HC Halted *//* Interrupt enable register */#define USBINTR		4#define   USBINTR_TIMEOUT	0x0001	/* Timeout/CRC error enable */#define   USBINTR_RESUME	0x0002	/* Resume interrupt enable */#define   USBINTR_IOC		0x0004	/* Interrupt On Complete enable */#define   USBINTR_SP		0x0008	/* Short packet interrupt enable */#define USBFRNUM	6#define USBFLBASEADD	8#define USBSOF		12/* USB port status and control registers */#define USBPORTSC1	16#define USBPORTSC2	18#define   USBPORTSC_CCS		0x0001	/* Current Connect Status ("device present") */#define   USBPORTSC_CSC		0x0002	/* Connect Status Change */#define   USBPORTSC_PE		0x0004	/* Port Enable */#define   USBPORTSC_PEC		0x0008	/* Port Enable Change */#define   USBPORTSC_LS		0x0030	/* Line Status */#define   USBPORTSC_RD		0x0040	/* Resume Detect */#define   USBPORTSC_LSDA	0x0100	/* Low Speed Device Attached */#define   USBPORTSC_PR		0x0200	/* Port Reset */#define   USBPORTSC_SUSP	0x1000	/* Suspend */struct uhci_qh {	unsigned int link;	/* Next queue */	unsigned int element;	/* Queue element pointer */	int inuse;		/* Inuse? */	struct uhci_qh *skel;	/* Skeleton head */} __attribute__((aligned(16)));struct uhci_framelist {	unsigned int frame[1024];} __attribute__((aligned(4096)));/* * The documentation says "4 words for hardware, 4 words for software". * * That's silly, the hardware doesn't care. The hardware only cares that * the hardware words are 16-byte aligned, and we can have any amount of * sw space after the TD entry as far as I can tell. * * But let's just go with the documentation, at least for 32-bit machines. * On 64-bit machines we probably want to take advantage of the fact that * hw doesn't really care about the size of the sw-only area. * * Alas, not anymore, we have more than 4 words of software, woops */struct uhci_td {	/* Hardware fields */	__u32 link;	__u32 status;	__u32 info;	__u32 buffer;	/* Software fields */	struct list_head irq_list;	/* Active interrupt list.. */	usb_device_irq completed;	/* Completion handler routine */	unsigned int *backptr;		/* Where to remove this from.. */	void *dev_id;	int inuse;			/* Inuse? */	struct uhci_qh *qh;} __attribute__((aligned(32)));/* * Note the alignment requirements of the entries * * Each UHCI device has pre-allocated QH and TD entries. * You can use more than the pre-allocated ones, but I * don't see you usually needing to. */struct uhci;#define UHCI_MAXTD 32#define UHCI_MAXQH	16/* The usb device part must be first! */struct uhci_device {	struct usb_device	*usb;	struct uhci		*uhci;	struct uhci_qh		qh[UHCI_MAXQH];		/* These are the "common" qh's for each device */	struct uhci_td		td[UHCI_MAXTD];	unsigned long		data[16];};#define uhci_to_usb(uhci)	((uhci)->usb)#define usb_to_uhci(usb)	((struct uhci_device *)(usb)->hcpriv)/* * The root hub pre-allocated QH's and TD's have * some special global uses.. */#define control_td	td		/* Td's 0-30 *//* This is only for the root hub's TD list */#define tick_td		td[31]/* * There are various standard queues. We set up several different * queues for each of the three basic queue types: interrupt, * control, and bulk. * *  - There are various different interrupt latencies: ranging from *    every other USB frame (2 ms apart) to every 256 USB frames (ie *    256 ms apart). Make your choice according to how obnoxious you *    want to be on the wire, vs how critical latency is for you. *  - The control list is done every frame. *  - There are 4 bulk lists, so that up to four devices can have a *    bulk list of their own and when run concurrently all four lists *    will be be serviced. * * This is a bit misleading, there are various interrupt latencies, but they * vary a bit, interrupt2 isn't exactly 2ms, it can vary up to 4ms since the * other queues can "override" it. interrupt4 can vary up to 8ms, etc. Minor * problem * * In the case of the root hub, these QH's are just head's of qh's. Don't * be scared, it kinda makes sense. Look at this wonderful picture care of * Linus: * *  generic-iso-QH  ->  dev1-iso-QH  ->  generic-irq-QH  ->  dev1-irq-QH  -> ... *       |                       |                  |                   | *      End          dev1-iso-TD1          End            dev1-irq-TD1 *                       | *                   dev1-iso-TD2 *                       | *                      .... * * This may vary a bit (the UHCI docs don't explicitly say you can put iso * transfers in QH's and all of their pictures don't have that either) but * other than that, that is what we're doing now * * To keep with Linus' nomenclature, this is called the qh skeleton. These * labels (below) are only signficant to the root hub's qh's */#define skel_iso_qh		qh[0]#define skel_int2_qh		qh[1]#define skel_int4_qh		qh[2]#define skel_int8_qh		qh[3]#define skel_int16_qh		qh[4]#define skel_int32_qh		qh[5]#define skel_int64_qh		qh[6]#define skel_int128_qh		qh[7]#define skel_int256_qh		qh[8]#define skel_control_qh		qh[9]#define skel_bulk0_qh		qh[10]#define skel_bulk1_qh		qh[11]#define skel_bulk2_qh		qh[12]#define skel_bulk3_qh		qh[13]/* * These are significant to the devices allocation of QH's */#if 0#define iso_qh			qh[0]#define int_qh			qh[1]	/* We have 2 "common" interrupt QH's */#define control_qh		qh[3]#define bulk_qh			qh[4]	/* We have 4 "common" bulk QH's */#define extra_qh		qh[8]	/* The rest, anything goes */#endif/* * This describes the full uhci information. * * Note how the "proper" USB information is just * a subset of what the full implementation needs. */struct uhci {	int irq;	unsigned int io_addr;	struct usb_bus *bus;#if 0	/* These are "standard" QH's for the entire bus */	struct uhci_qh qh[UHCI_MAXQH];#endif	struct uhci_device *root_hub;		/* Root hub device descriptor.. */	struct uhci_framelist *fl;		/* Frame list */	struct list_head interrupt_list;	/* List of interrupt-active TD's for this uhci */};/* needed for the debugging code */struct uhci_td *uhci_link_to_td(unsigned int element);/* Debugging code */void show_td(struct uhci_td * td);void show_status(struct uhci *uhci);void show_queues(struct uhci *uhci);#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区三| 亚洲国产精品欧美一二99| 亚洲男人都懂的| 蜜臀精品一区二区三区在线观看 | 亚洲成在人线在线播放| 日本中文在线一区| av中文字幕在线不卡| 精品视频在线免费看| 久久先锋影音av鲁色资源| 欧美日韩的一区二区| 日韩精品一区二区三区swag| 国产精品美女久久久久久久久久久 | 欧美性生交片4| 337p日本欧洲亚洲大胆精品| 亚洲一区二区av电影| 99热国产精品| 国产精品丝袜在线| 国产91对白在线观看九色| 日韩视频一区二区三区在线播放 | 蜜臀av性久久久久蜜臀aⅴ| 91久久免费观看| 国产精品麻豆99久久久久久| 国产传媒一区在线| 国产日韩视频一区二区三区| 激情丁香综合五月| 26uuu亚洲| 经典三级在线一区| 欧美精品一区二区三区蜜臀| 久99久精品视频免费观看| 日韩欧美国产三级| 精品在线播放午夜| 精品国产乱码久久久久久牛牛| 免费欧美在线视频| 欧美成人三级电影在线| 奇米色一区二区三区四区| 91精品在线一区二区| 日本欧美久久久久免费播放网| 69精品人人人人| 精品一区二区三区视频| 国产无遮挡一区二区三区毛片日本| 国产一区二区三区免费看| 久久久久一区二区三区四区| 国产suv精品一区二区883| 中文字幕免费在线观看视频一区| 国产99久久久国产精品潘金网站| 亚洲国产成人在线| 91蝌蚪porny九色| 亚洲444eee在线观看| 91精品国产美女浴室洗澡无遮挡| 久久精品国产亚洲5555| 久久亚洲私人国产精品va媚药| 国产v综合v亚洲欧| 亚洲色图在线看| 欧美日韩国产免费一区二区| 久久精品国产免费| 国产精品剧情在线亚洲| 欧美色手机在线观看| 免费成人美女在线观看| 国产欧美一区二区三区在线看蜜臀 | 欧美性受极品xxxx喷水| 日本vs亚洲vs韩国一区三区二区| 精品福利视频一区二区三区| 不卡视频在线观看| 日韩中文字幕一区二区三区| 精品久久国产97色综合| 99精品热视频| 日本最新不卡在线| 中文字幕国产一区| 欧美日本不卡视频| www.日本不卡| 欧美aaaaa成人免费观看视频| 亚洲国产精品高清| 日韩一区二区在线免费观看| 成人黄色a**站在线观看| 视频在线观看国产精品| 国产精品免费视频网站| 日韩欧美国产精品| 色94色欧美sute亚洲13| 国产精品一二三四五| 天堂成人免费av电影一区| 国产精品久久网站| 欧美一区二区视频观看视频| 97久久精品人人做人人爽| 久久丁香综合五月国产三级网站| 亚洲免费观看高清完整版在线观看| 欧美白人最猛性xxxxx69交| 在线免费精品视频| 不卡一二三区首页| 大桥未久av一区二区三区中文| 日韩精品国产精品| √…a在线天堂一区| 久久久国产一区二区三区四区小说 | 欧美群妇大交群中文字幕| 成人一区在线观看| 精品一区二区三区欧美| 日韩一区欧美二区| 亚洲高清免费观看| 亚洲女女做受ⅹxx高潮| 国产欧美精品区一区二区三区| 91精品免费观看| 欧美日韩在线播| 91小宝寻花一区二区三区| 国产高清一区日本| 国产精品一区免费视频| 久草中文综合在线| 狠狠色综合色综合网络| 美女视频黄 久久| 免费观看久久久4p| 日韩电影在线免费| 蜜臀a∨国产成人精品| 免费av成人在线| 蜜臀久久99精品久久久久久9| 人人爽香蕉精品| 奇米888四色在线精品| 久久精品国产亚洲a| 久久精品免费观看| 国产69精品久久久久毛片| 岛国精品在线播放| 91免费国产在线观看| 色综合婷婷久久| 欧美日韩综合在线| 欧美一区二区三区在线视频| 日韩免费成人网| 国产欧美日韩三区| 亚洲日穴在线视频| 亚洲影院在线观看| 日本欧美一区二区| 国产精品一级在线| 色婷婷久久综合| 欧美日韩高清在线播放| 欧美mv日韩mv国产网站app| 久久久精品黄色| 亚洲女同女同女同女同女同69| 亚洲福利一区二区三区| 蜜臀av一区二区在线观看| 国产精品一区二区果冻传媒| 成人av在线资源网| 欧美日韩日本视频| 精品国产污污免费网站入口| 国产视频一区在线观看| 亚洲欧美日韩电影| 奇米影视一区二区三区小说| 懂色av一区二区夜夜嗨| 在线免费不卡电影| 日韩久久精品一区| 亚洲精品日韩综合观看成人91| 性欧美疯狂xxxxbbbb| 国产成人精品亚洲日本在线桃色| 色一情一伦一子一伦一区| 91精品国产综合久久蜜臀| 久久久久99精品国产片| 一区二区三区四区视频精品免费 | 一区二区三区精品久久久| 久热成人在线视频| 色悠久久久久综合欧美99| 日韩欧美视频一区| 中文字幕一区二区三区精华液| 亚洲成在人线在线播放| 国产成人av电影| 91精品国产色综合久久不卡电影| 国产精品免费人成网站| 美国十次综合导航| 在线免费亚洲电影| 国产欧美日韩另类视频免费观看| 亚洲成人黄色影院| 不卡av在线免费观看| 欧美tickling网站挠脚心| 亚洲一区在线观看网站| 成人性生交大片免费| 欧美一区二区三区播放老司机| 国产精品超碰97尤物18| 国产一区二区三区高清播放| 欧美日韩精品久久久| 日韩久久一区二区| 国产老妇另类xxxxx| 欧美一区二区三区四区视频| 亚洲黄色在线视频| jizzjizzjizz欧美| 欧美精品一区男女天堂| 视频一区二区国产| 色噜噜狠狠成人中文综合| 欧美极品aⅴ影院| 另类小说色综合网站| 欧美日本在线视频| 亚洲一区二区3| 欧美性受xxxx黑人xyx| 亚洲久本草在线中文字幕| 成人黄页毛片网站| 中文字幕 久热精品 视频在线| 国产在线播放一区三区四| 4438x亚洲最大成人网| 亚洲h精品动漫在线观看| 91成人在线精品| 亚洲综合久久久久| 日本高清无吗v一区| 日韩美女啊v在线免费观看| www.综合网.com| 中文字幕在线一区| 成人动漫在线一区| 日韩一区有码在线|