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

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

?? myqueue.h

?? ser作為一個高效、高度可配置的simple服務器
?? H
?? 第 1 頁 / 共 2 頁
字號:
	(STAILQ_EMPTY((head)) ?						\		NULL :							\	        ((struct type *)					\		((char *)((head)->stqh_last) - __offsetof(struct type, field))))#define	STAILQ_NEXT(elm, field)	((elm)->field.stqe_next)#define	STAILQ_REMOVE(head, elm, type, field) do {			\	if (STAILQ_FIRST((head)) == (elm)) {				\		STAILQ_REMOVE_HEAD((head), field);			\	}								\	else {								\		struct type *curelm = STAILQ_FIRST((head));		\		while (STAILQ_NEXT(curelm, field) != (elm))		\			curelm = STAILQ_NEXT(curelm, field);		\		if ((STAILQ_NEXT(curelm, field) =			\		     STAILQ_NEXT(STAILQ_NEXT(curelm, field), field)) == NULL)\			(head)->stqh_last = &STAILQ_NEXT((curelm), field);\	}								\} while (0)#define	STAILQ_REMOVE_HEAD(head, field) do {				\	if ((STAILQ_FIRST((head)) =					\	     STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL)		\		(head)->stqh_last = &STAILQ_FIRST((head));		\} while (0)#define	STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do {			\	if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL)	\		(head)->stqh_last = &STAILQ_FIRST((head));		\} while (0)/* * List declarations. */#define	LIST_HEAD(name, type)						\struct name {								\	struct type *lh_first;	/* first element */			\}#define	LIST_HEAD_INITIALIZER(head)					\	{ NULL }#define	LIST_ENTRY(type)						\struct {								\	struct type *le_next;	/* next element */			\	struct type **le_prev;	/* address of previous next element */	\}/* * List functions. */#define	LIST_EMPTY(head)	((head)->lh_first == NULL)#define	LIST_FIRST(head)	((head)->lh_first)#define	LIST_FOREACH(var, head, field)					\	for ((var) = LIST_FIRST((head));				\	    (var);							\	    (var) = LIST_NEXT((var), field))#define	LIST_INIT(head) do {						\	LIST_FIRST((head)) = NULL;					\} while (0)#define	LIST_INSERT_AFTER(listelm, elm, field) do {			\	if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\		LIST_NEXT((listelm), field)->field.le_prev =		\		    &LIST_NEXT((elm), field);				\	LIST_NEXT((listelm), field) = (elm);				\	(elm)->field.le_prev = &LIST_NEXT((listelm), field);		\} while (0)#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\	(elm)->field.le_prev = (listelm)->field.le_prev;		\	LIST_NEXT((elm), field) = (listelm);				\	*(listelm)->field.le_prev = (elm);				\	(listelm)->field.le_prev = &LIST_NEXT((elm), field);		\} while (0)#define	LIST_INSERT_HEAD(head, elm, field) do {				\	if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL)	\		LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\	LIST_FIRST((head)) = (elm);					\	(elm)->field.le_prev = &LIST_FIRST((head));			\} while (0)#define	LIST_NEXT(elm, field)	((elm)->field.le_next)#define	LIST_REMOVE(elm, field) do {					\	if (LIST_NEXT((elm), field) != NULL)				\		LIST_NEXT((elm), field)->field.le_prev = 		\		    (elm)->field.le_prev;				\	*(elm)->field.le_prev = LIST_NEXT((elm), field);		\} while (0)/* * Tail queue declarations. */#define	TAILQ_HEAD(name, type)						\struct name {								\	struct type *tqh_first;	/* first element */			\	struct type **tqh_last;	/* addr of last next element */		\	TRACEBUF							\}#define	TAILQ_HEAD_INITIALIZER(head)					\	{ NULL, &(head).tqh_first }#define	TAILQ_ENTRY(type)						\struct {								\	struct type *tqe_next;	/* next element */			\	struct type **tqe_prev;	/* address of previous next element */	\	TRACEBUF							\}/* * Tail queue functions. */#define	TAILQ_CONCAT(head1, head2, field) do {				\	if (!TAILQ_EMPTY(head2)) {					\		*(head1)->tqh_last = (head2)->tqh_first;		\		(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last;	\		(head1)->tqh_last = (head2)->tqh_last;			\		TAILQ_INIT((head2));					\		QMD_TRACE_HEAD(head);					\		QMD_TRACE_HEAD(head2);					\	}								\} while (0)#define	TAILQ_EMPTY(head)	((head)->tqh_first == NULL)#define	TAILQ_FIRST(head)	((head)->tqh_first)#define	TAILQ_FOREACH(var, head, field)					\	for ((var) = TAILQ_FIRST((head));				\	    (var);							\	    (var) = TAILQ_NEXT((var), field))#define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\	for ((var) = TAILQ_LAST((head), headname);			\	    (var);							\	    (var) = TAILQ_PREV((var), headname, field))#define	TAILQ_INIT(head) do {						\	TAILQ_FIRST((head)) = NULL;					\	(head)->tqh_last = &TAILQ_FIRST((head));			\	QMD_TRACE_HEAD(head);						\} while (0)#define	TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\	if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\		TAILQ_NEXT((elm), field)->field.tqe_prev = 		\		    &TAILQ_NEXT((elm), field);				\	else {								\		(head)->tqh_last = &TAILQ_NEXT((elm), field);		\		QMD_TRACE_HEAD(head);					\	}								\	TAILQ_NEXT((listelm), field) = (elm);				\	(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);		\	QMD_TRACE_ELEM(&(elm)->field);					\	QMD_TRACE_ELEM(&listelm->field);				\} while (0)#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\	(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\	TAILQ_NEXT((elm), field) = (listelm);				\	*(listelm)->field.tqe_prev = (elm);				\	(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field);		\	QMD_TRACE_ELEM(&(elm)->field);					\	QMD_TRACE_ELEM(&listelm->field);				\} while (0)#define	TAILQ_INSERT_HEAD(head, elm, field) do {			\	if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)	\		TAILQ_FIRST((head))->field.tqe_prev =			\		    &TAILQ_NEXT((elm), field);				\	else								\		(head)->tqh_last = &TAILQ_NEXT((elm), field);		\	TAILQ_FIRST((head)) = (elm);					\	(elm)->field.tqe_prev = &TAILQ_FIRST((head));			\	QMD_TRACE_HEAD(head);						\	QMD_TRACE_ELEM(&(elm)->field);					\} while (0)#define	TAILQ_INSERT_TAIL(head, elm, field) do {			\	TAILQ_NEXT((elm), field) = NULL;				\	(elm)->field.tqe_prev = (head)->tqh_last;			\	*(head)->tqh_last = (elm);					\	(head)->tqh_last = &TAILQ_NEXT((elm), field);			\	QMD_TRACE_HEAD(head);						\	QMD_TRACE_ELEM(&(elm)->field);					\} while (0)#define	TAILQ_LAST(head, headname)					\	(*(((struct headname *)((head)->tqh_last))->tqh_last))#define	TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)#define	TAILQ_PREV(elm, headname, field)				\	(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))#define	TAILQ_REMOVE(head, elm, field) do {				\	if ((TAILQ_NEXT((elm), field)) != NULL)				\		TAILQ_NEXT((elm), field)->field.tqe_prev = 		\		    (elm)->field.tqe_prev;				\	else {								\		(head)->tqh_last = (elm)->field.tqe_prev;		\		QMD_TRACE_HEAD(head);					\	}								\	*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field);		\	TRASHIT((elm)->field.tqe_next);					\	TRASHIT((elm)->field.tqe_prev);					\	QMD_TRACE_ELEM(&(elm)->field);					\} 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 = (struct quehead *)a,		 *head = (struct quehead *)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 = (struct quehead *)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(void *a, void *b);void	remque(void *a);#endif /* __GNUC__ */#endif /* _KERNEL */#endif /* !_SYS_QUEUE_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影免费在线| 《视频一区视频二区| 日本成人中文字幕在线视频| 欧美日韩精品一区视频| 免费一级片91| 久久精子c满五个校花| 粉嫩高潮美女一区二区三区| 亚洲视频中文字幕| 欧美性猛片xxxx免费看久爱| 日韩av电影一区| 久久婷婷国产综合精品青草| www.日韩精品| 亚洲成人黄色小说| 久久女同精品一区二区| 99精品视频一区| 日韩av午夜在线观看| 亚洲国产精品高清| 欧美天堂一区二区三区| 精品亚洲成av人在线观看| ㊣最新国产の精品bt伙计久久| 91黄色小视频| 国产精品自拍在线| 亚洲国产综合91精品麻豆| 日韩精品一区国产麻豆| 色婷婷香蕉在线一区二区| 久久国产夜色精品鲁鲁99| 中文字幕亚洲欧美在线不卡| 欧美一区三区二区| 成人av电影免费观看| 日本不卡123| 亚洲欧美日本韩国| 久久久www免费人成精品| 欧美少妇xxx| hitomi一区二区三区精品| 美女www一区二区| 亚洲男人电影天堂| 国产视频一区在线观看| 欧美日韩视频在线第一区| 国产精品一区二区你懂的| 亚洲3atv精品一区二区三区| 国产精品乱码人人做人人爱 | 亚洲女人的天堂| 日韩免费视频一区二区| 日本伦理一区二区| 国产成人在线网站| 精品无人码麻豆乱码1区2区| 亚洲6080在线| 亚洲一区免费在线观看| 国产精品久久久一本精品| 2023国产精华国产精品| 91精品国产综合久久久久久漫画| k8久久久一区二区三区| 国产老肥熟一区二区三区| 日韩高清在线电影| 亚洲电影在线免费观看| 1区2区3区国产精品| 国产精品视频在线看| 久久这里都是精品| 欧美一激情一区二区三区| 欧美日韩一区二区三区在线| 一本色道久久综合亚洲91| 99精品国产热久久91蜜凸| 国产91对白在线观看九色| 国产一区中文字幕| 国产一区二区三区高清播放| 日韩中文欧美在线| 天涯成人国产亚洲精品一区av| 一区二区三区日韩精品视频| 亚洲视频网在线直播| 亚洲色图另类专区| 一区二区三区四区在线播放| 中文字幕一区不卡| 中文字幕在线不卡| 亚洲免费av观看| 亚洲曰韩产成在线| 日日摸夜夜添夜夜添亚洲女人| 亚洲风情在线资源站| 天天色图综合网| 婷婷国产在线综合| 美国毛片一区二区| 国内精品写真在线观看| 国产xxx精品视频大全| 高清不卡在线观看av| av一二三不卡影片| 日本久久电影网| 欧美日韩激情在线| 3d成人动漫网站| 26uuu精品一区二区三区四区在线| 久久久久久久综合色一本| 欧美激情一区二区在线| 亚洲乱码国产乱码精品精的特点 | 欧美mv和日韩mv的网站| 精品国内二区三区| 国产精品久久久久久久久搜平片| 成人免费在线观看入口| 亚洲制服丝袜在线| 九九精品一区二区| www.99精品| 7777精品伊人久久久大香线蕉| 免费人成在线不卡| 青青草精品视频| 久久久久久久久久看片| 日韩一区二区麻豆国产| 欧美一区二区三区思思人| 精品国产三级电影在线观看| 久久久精品2019中文字幕之3| 亚洲天堂免费在线观看视频| 婷婷中文字幕综合| 国产成人在线观看| 91成人看片片| 亚洲精品一区二区三区影院| 亚洲视频一区二区在线观看| 日本亚洲最大的色成网站www| 国产激情一区二区三区| 日本精品视频一区二区三区| 精品理论电影在线| 夜夜嗨av一区二区三区网页| 蜜桃av一区二区三区| 91原创在线视频| 欧美一区二区三区播放老司机| 欧美国产综合色视频| 日韩专区欧美专区| 91丨porny丨户外露出| 日韩欧美国产不卡| 一区二区日韩av| 国产精品996| 91麻豆精品国产91久久久使用方法| 国产欧美日韩另类一区| 热久久久久久久| 欧美亚洲国产一区在线观看网站| 久久久亚洲精华液精华液精华液| 亚洲成a人在线观看| 99久久久精品| 国产色产综合色产在线视频| 日本在线观看不卡视频| 日本韩国精品在线| 国产精品萝li| 国产69精品一区二区亚洲孕妇| 欧美一区二区女人| 亚洲第一狼人社区| 91在线观看一区二区| 国产亚洲一区字幕| 久久av老司机精品网站导航| 欧美色网一区二区| 一区二区视频免费在线观看| 99久久综合99久久综合网站| 久久久久久久久97黄色工厂| 久久9热精品视频| 欧美精品久久久久久久久老牛影院| 成人免费一区二区三区在线观看| 国产精品996| 久久毛片高清国产| 国产一区二区三区在线观看免费| 日韩一区二区三区视频| 日本一不卡视频| 日韩午夜在线影院| 奇米精品一区二区三区在线观看一| 欧美视频在线观看一区二区| 亚洲精品伦理在线| 色综合中文字幕国产| 国产欧美日韩综合精品一区二区| 国产伦精一区二区三区| 国产婷婷色一区二区三区在线| 国产一区二区三区精品视频| 久久综合一区二区| 国产高清亚洲一区| 国产精品三级电影| 91亚洲精品久久久蜜桃网站| 国产精品夫妻自拍| 色婷婷久久久久swag精品 | 国产精品午夜久久| 99久久精品国产一区二区三区| 国产精品国产三级国产普通话三级| 9久草视频在线视频精品| 亚洲欧洲在线观看av| 色久综合一二码| 视频在线在亚洲| 欧美mv和日韩mv的网站| 国产精品自产自拍| 日韩一区欧美一区| 在线欧美一区二区| 日韩av网站免费在线| 亚洲精品一区二区三区蜜桃下载 | 日韩三级免费观看| 国产呦精品一区二区三区网站| 欧美精彩视频一区二区三区| 91在线小视频| 亚洲h在线观看| 久久久久久久久岛国免费| 99久久精品国产精品久久| 亚洲一区二区在线观看视频| 91精品国产综合久久久久久久久久| 国产在线播精品第三| 亚洲视频在线观看一区| 欧美一区二区三区在线观看| 国产成人亚洲综合a∨婷婷图片| 亚洲视频综合在线| 日韩你懂的在线播放| 99视频一区二区| 理论片日本一区|