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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ftqueue.h

?? netflow,抓包
?? H
?? 第 1 頁 / 共 2 頁
字號:
#define FT_LIST_FOREACH(var, head, field)				\	for((var) = (head)->lh_first; (var); (var) = (var)->field.le_next)#define	FT_LIST_INIT(head) do {						\	(head)->lh_first = NULL;					\} while (0)#define FT_LIST_INSERT_AFTER(listelm, elm, field) do {			\	if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)	\		(listelm)->field.le_next->field.le_prev =		\		    &(elm)->field.le_next;				\	(listelm)->field.le_next = (elm);				\	(elm)->field.le_prev = &(listelm)->field.le_next;		\} while (0)#define FT_LIST_INSERT_BEFORE(listelm, elm, field) do {			\	(elm)->field.le_prev = (listelm)->field.le_prev;		\	(elm)->field.le_next = (listelm);				\	*(listelm)->field.le_prev = (elm);				\	(listelm)->field.le_prev = &(elm)->field.le_next;		\} while (0)#define FT_LIST_INSERT_HEAD(head, elm, field) do {			\	if (((elm)->field.le_next = (head)->lh_first) != NULL)		\		(head)->lh_first->field.le_prev = &(elm)->field.le_next;\	(head)->lh_first = (elm);					\	(elm)->field.le_prev = &(head)->lh_first;			\} while (0)#define FT_LIST_NEXT(elm, field)	((elm)->field.le_next)#define FT_LIST_REMOVE(elm, field) do {					\	if ((elm)->field.le_next != NULL)				\		(elm)->field.le_next->field.le_prev = 			\		    (elm)->field.le_prev;				\	*(elm)->field.le_prev = (elm)->field.le_next;			\} while (0)/* * Tail queue definitions. */#define FT_TAILQ_HEAD(name, type)					\struct name {								\	struct type *tqh_first;	/* first element */			\	struct type **tqh_last;	/* addr of last next element */		\}#define FT_TAILQ_HEAD_INITIALIZER(head)					\	{ NULL, &(head).tqh_first }#define FT_TAILQ_ENTRY(type)						\struct {								\	struct type *tqe_next;	/* next element */			\	struct type **tqe_prev;	/* address of previous next element */	\}/* * Tail queue functions. */#define	FT_TAILQ_EMPTY(head) ((head)->tqh_first == NULL)#define FT_TAILQ_FOREACH(var, head, field)				\	for (var = FT_TAILQ_FIRST(head); var; var = FT_TAILQ_NEXT(var, field))#define	FT_TAILQ_FIRST(head) ((head)->tqh_first)#define	FT_TAILQ_LAST(head, headname) \	(*(((struct headname *)((head)->tqh_last))->tqh_last))#define	FT_TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)#define FT_TAILQ_PREV(elm, headname, field) \	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))#define	FT_TAILQ_INIT(head) do {					\	(head)->tqh_first = NULL;					\	(head)->tqh_last = &(head)->tqh_first;				\} while (0)#define FT_TAILQ_INSERT_HEAD(head, elm, field) do {			\	if (((elm)->field.tqe_next = (head)->tqh_first) != NULL)	\		(head)->tqh_first->field.tqe_prev =			\		    &(elm)->field.tqe_next;				\	else								\		(head)->tqh_last = &(elm)->field.tqe_next;		\	(head)->tqh_first = (elm);					\	(elm)->field.tqe_prev = &(head)->tqh_first;			\} while (0)#define FT_TAILQ_INSERT_TAIL(head, elm, field) do {			\	(elm)->field.tqe_next = NULL;					\	(elm)->field.tqe_prev = (head)->tqh_last;			\	*(head)->tqh_last = (elm);					\	(head)->tqh_last = &(elm)->field.tqe_next;			\} while (0)#define FT_TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\	if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\		(elm)->field.tqe_next->field.tqe_prev = 		\		    &(elm)->field.tqe_next;				\	else								\		(head)->tqh_last = &(elm)->field.tqe_next;		\	(listelm)->field.tqe_next = (elm);				\	(elm)->field.tqe_prev = &(listelm)->field.tqe_next;		\} while (0)#define FT_TAILQ_INSERT_BEFORE(listelm, elm, field) do {		\	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\	(elm)->field.tqe_next = (listelm);				\	*(listelm)->field.tqe_prev = (elm);				\	(listelm)->field.tqe_prev = &(elm)->field.tqe_next;		\} while (0)#define FT_TAILQ_REMOVE(head, elm, field) do {				\	if (((elm)->field.tqe_next) != NULL)				\		(elm)->field.tqe_next->field.tqe_prev = 		\		    (elm)->field.tqe_prev;				\	else								\		(head)->tqh_last = (elm)->field.tqe_prev;		\	*(elm)->field.tqe_prev = (elm)->field.tqe_next;			\} while (0)/* * Circular queue definitions. */#define FT_CIRCLEQ_HEAD(name, type)					\struct name {								\	struct type *cqh_first;		/* first element */		\	struct type *cqh_last;		/* last element */		\}#define FT_CIRCLEQ_ENTRY(type)						\struct {								\	struct type *cqe_next;		/* next element */		\	struct type *cqe_prev;		/* previous element */		\}/* * Circular queue functions. */#define FT_CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))#define FT_CIRCLEQ_FIRST(head) ((head)->cqh_first)#define FT_CIRCLEQ_FOREACH(var, head, field)				\	for((var) = (head)->cqh_first;					\	    (var) != (void *)(head);					\	    (var) = (var)->field.cqe_next)#define	FT_CIRCLEQ_INIT(head) do {					\	(head)->cqh_first = (void *)(head);				\	(head)->cqh_last = (void *)(head);				\} while (0)#define FT_CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do {		\	(elm)->field.cqe_next = (listelm)->field.cqe_next;		\	(elm)->field.cqe_prev = (listelm);				\	if ((listelm)->field.cqe_next == (void *)(head))		\		(head)->cqh_last = (elm);				\	else								\		(listelm)->field.cqe_next->field.cqe_prev = (elm);	\	(listelm)->field.cqe_next = (elm);				\} while (0)#define FT_CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do {	\	(elm)->field.cqe_next = (listelm);				\	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;		\	if ((listelm)->field.cqe_prev == (void *)(head))		\		(head)->cqh_first = (elm);				\	else								\		(listelm)->field.cqe_prev->field.cqe_next = (elm);	\	(listelm)->field.cqe_prev = (elm);				\} while (0)#define FT_CIRCLEQ_INSERT_HEAD(head, elm, field) do {			\	(elm)->field.cqe_next = (head)->cqh_first;			\	(elm)->field.cqe_prev = (void *)(head);				\	if ((head)->cqh_last == (void *)(head))				\		(head)->cqh_last = (elm);				\	else								\		(head)->cqh_first->field.cqe_prev = (elm);		\	(head)->cqh_first = (elm);					\} while (0)#define FT_CIRCLEQ_INSERT_TAIL(head, elm, field) do {			\	(elm)->field.cqe_next = (void *)(head);				\	(elm)->field.cqe_prev = (head)->cqh_last;			\	if ((head)->cqh_first == (void *)(head))			\		(head)->cqh_first = (elm);				\	else								\		(head)->cqh_last->field.cqe_next = (elm);		\	(head)->cqh_last = (elm);					\} while (0)#define FT_CIRCLEQ_LAST(head) ((head)->cqh_last)#define FT_CIRCLEQ_NEXT(elm,field) ((elm)->field.cqe_next)#define FT_CIRCLEQ_PREV(elm,field) ((elm)->field.cqe_prev)#define	FT_CIRCLEQ_REMOVE(head, elm, field) do {			\	if ((elm)->field.cqe_next == (void *)(head))			\		(head)->cqh_last = (elm)->field.cqe_prev;		\	else								\		(elm)->field.cqe_next->field.cqe_prev =			\		    (elm)->field.cqe_prev;				\	if ((elm)->field.cqe_prev == (void *)(head))			\		(head)->cqh_first = (elm)->field.cqe_next;		\	else								\		(elm)->field.cqe_prev->field.cqe_next =			\		    (elm)->field.cqe_next;				\} while (0)#ifdef KERNEL/* * XXX insque() and remque() are an old way of handling certain queues. * They bogusly assumes that all queue heads look alike. */struct quehead {	struct quehead *qh_link;	struct quehead *qh_rlink;};#ifdef	__GNUC__static __inline voidinsque(void *a, void *b){	struct quehead *element = a, *head = b;	element->qh_link = head->qh_link;	element->qh_rlink = head;	head->qh_link = element;	element->qh_link->qh_rlink = element;}static __inline voidremque(void *a){	struct quehead *element = a;	element->qh_link->qh_rlink = element->qh_rlink;	element->qh_rlink->qh_link = element->qh_link;	element->qh_rlink = 0;}#else /* !__GNUC__ */void	insque __P((void *a, void *b));void	remque __P((void *a));#endif /* __GNUC__ */#endif /* KERNEL */#endif /* !_FT_QUEUE_H_ */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久久久久| 欧美成人欧美edvon| 欧美精品日韩一本| 欧美一区二区三区在线| 久久免费美女视频| 国产精品成人免费在线| 天天综合色天天综合| 激情文学综合丁香| 91免费国产在线| 欧美一区二区三区在线观看| 欧美激情一区二区三区蜜桃视频| 亚洲男人天堂一区| 久久国产精品99久久久久久老狼| k8久久久一区二区三区| 欧美日韩国产乱码电影| 国产欧美1区2区3区| 亚洲综合视频在线| 国产一区高清在线| 欧美日韩国产一二三| 久久久久久久国产精品影院| 亚洲精品日产精品乱码不卡| 精品写真视频在线观看| 日本精品免费观看高清观看| 精品国产乱码久久久久久闺蜜| 亚洲另类在线一区| 国产精品一区2区| 欧美三日本三级三级在线播放| 国产亚洲福利社区一区| 偷窥少妇高潮呻吟av久久免费| 成人综合日日夜夜| 欧美一区二区三区在线观看视频| 亚洲婷婷综合色高清在线| 久久精品国产一区二区三 | 2欧美一区二区三区在线观看视频| 亚洲欧洲日韩综合一区二区| 久久国产精品露脸对白| 欧美老女人第四色| 亚洲人一二三区| 国产福利91精品一区二区三区| 678五月天丁香亚洲综合网| 综合中文字幕亚洲| 国产成人av福利| 日韩精品一区二区三区在线播放| 亚洲成在人线免费| 色欧美片视频在线观看在线视频| 国产欧美一区二区精品性色超碰| 日韩中文欧美在线| 欧美色偷偷大香| 亚洲天堂福利av| 丁香六月久久综合狠狠色| 精品99一区二区| 日本vs亚洲vs韩国一区三区| 欧美午夜精品久久久久久超碰| 综合在线观看色| 不卡av在线网| 国产精品嫩草99a| 国产高清无密码一区二区三区| 精品久久久久久久人人人人传媒| 日韩电影免费在线看| 欧美日韩亚洲综合一区| 亚洲另类中文字| 色婷婷综合久久久久中文一区二区 | 亚洲国产岛国毛片在线| 国产一区二区三区免费看| 日韩三区在线观看| 久久er99精品| 精品国产免费一区二区三区四区| 久草中文综合在线| 久久先锋影音av| 国产91在线看| 国产精品卡一卡二卡三| 99国产精品一区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美久久一二区| 爽好多水快深点欧美视频| 欧美少妇性性性| 石原莉奈在线亚洲三区| 9191久久久久久久久久久| 天天影视色香欲综合网老头| 91精品国产一区二区| 美女mm1313爽爽久久久蜜臀| 精品美女被调教视频大全网站| 久久成人免费网| 久久久久久久久久久黄色| 成人性生交大片免费看视频在线| 国产精品你懂的在线| 日本丶国产丶欧美色综合| 亚洲一级二级在线| 欧美一区二区三区在| 国产一区二区剧情av在线| 国产精品三级电影| 色综合色狠狠综合色| 亚洲第一综合色| 日韩欧美一二三区| 大白屁股一区二区视频| 亚洲男人的天堂在线观看| 欧美日韩高清一区二区| 精品亚洲成a人| 亚洲欧洲精品一区二区三区 | 亚洲电影在线播放| 正在播放亚洲一区| 国产高清视频一区| 亚洲精品日日夜夜| 日韩精品中文字幕一区 | 国产精品区一区二区三区| 日本韩国精品在线| 麻豆成人91精品二区三区| 欧美国产日韩亚洲一区| 在线精品观看国产| 激情文学综合网| 亚洲欧美日韩在线不卡| 欧美一区二区成人| 99综合电影在线视频| 五月天一区二区| 国产亚洲欧美色| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 免费视频一区二区| 最近日韩中文字幕| 日韩欧美精品在线视频| 91老师国产黑色丝袜在线| 免费精品视频在线| 亚洲欧洲日产国码二区| 日韩欧美国产综合在线一区二区三区| 国产九色sp调教91| 亚洲一区中文日韩| 国产亚洲一区二区三区| 在线电影一区二区三区| 成人爽a毛片一区二区免费| 午夜视频在线观看一区二区三区| 精品国产91九色蝌蚪| 在线亚洲精品福利网址导航| 国产永久精品大片wwwapp| 亚洲一区二区三区视频在线播放 | 99久久久久久| 久久国产人妖系列| 亚洲一区在线观看视频| 国产人伦精品一区二区| 欧美一级日韩免费不卡| 色综合中文字幕国产| 美国三级日本三级久久99| 一区二区三区在线观看国产| 久久九九国产精品| 91精品国产欧美一区二区| 色综合中文字幕| 国产 欧美在线| 蜜乳av一区二区| 五月天久久比比资源色| 亚洲视频精选在线| 国产女人水真多18毛片18精品视频| 717成人午夜免费福利电影| 色噜噜夜夜夜综合网| 国产成人在线视频免费播放| 日本va欧美va精品| 一区二区成人在线观看| 亚洲视频中文字幕| 国产蜜臀av在线一区二区三区| 欧美videos大乳护士334| 欧美日韩高清一区二区三区| 色婷婷亚洲综合| 成人av在线观| 丁香激情综合五月| 国产精品一品二品| 国产一区二区精品久久| 久久99精品久久久久久国产越南 | 精品国产伦一区二区三区观看体验 | 中文在线资源观看网站视频免费不卡| 欧美一级理论片| 欧美福利电影网| 在线视频国内自拍亚洲视频| 91影院在线观看| 成人精品鲁一区一区二区| 国产不卡视频一区二区三区| 国产一区二区精品久久99| 国产在线精品一区二区三区不卡| 蜜桃视频在线一区| 麻豆久久久久久| 美女一区二区久久| 秋霞成人午夜伦在线观看| 亚洲国产精品久久久久婷婷884| 一区二区三区在线视频播放 | 欧美体内she精视频| 色天使色偷偷av一区二区| 91亚洲精品久久久蜜桃网站 | 一区二区三区欧美日韩| 亚洲欧美日韩中文播放| 亚洲乱码日产精品bd| 亚洲免费观看高清在线观看| 亚洲美女免费视频| 一区二区免费视频| 天天综合日日夜夜精品| 麻豆精品一区二区综合av| 久久99精品久久久久久国产越南 | 国产精品网曝门| 国产精品毛片无遮挡高清| 亚洲天堂2014| 亚洲精品高清在线| 香蕉乱码成人久久天堂爱免费| 午夜欧美2019年伦理| 久久99久久99精品免视看婷婷| 国产乱码字幕精品高清av |