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

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

?? list.h

?? 移植好的楊創(chuàng)utu2440F ARM9 的uboot1.1.4代碼
?? H
字號(hào):
#ifndef _LINUX_LIST_H#define _LINUX_LIST_H#ifndef ARCH_HAS_PREFETCH#define ARCH_HAS_PREFETCHstatic inline void prefetch(const void *x) {;}#endif/* * Simple doubly linked list implementation. * * Some of the internal functions ("__xxx") are useful when * manipulating whole lists rather than single entries, as * sometimes we already know the next/prev entries and we can * generate better code by using them directly rather than * using the generic single-entry routines. */struct list_head {	struct list_head *next, *prev;};#define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) \	struct list_head name = LIST_HEAD_INIT(name)#define INIT_LIST_HEAD(ptr) do { \	(ptr)->next = (ptr); (ptr)->prev = (ptr); \} while (0)/* * Insert a new entry between two known consecutive entries. * * This is only for internal list manipulation where we know * the prev/next entries already! */static inline void __list_add(struct list_head *new,			      struct list_head *prev,			      struct list_head *next){	next->prev = new;	new->next = next;	new->prev = prev;	prev->next = new;}/** * list_add - add a new entry * @new: new entry to be added * @head: list head to add it after * * Insert a new entry after the specified head. * This is good for implementing stacks. */static inline void list_add(struct list_head *new, struct list_head *head){	__list_add(new, head, head->next);}/** * list_add_tail - add a new entry * @new: new entry to be added * @head: list head to add it before * * Insert a new entry before the specified head. * This is useful for implementing queues. */static inline void list_add_tail(struct list_head *new, struct list_head *head){	__list_add(new, head->prev, head);}/* * Delete a list entry by making the prev/next entries * point to each other. * * This is only for internal list manipulation where we know * the prev/next entries already! */static inline void __list_del(struct list_head *prev, struct list_head *next){	next->prev = prev;	prev->next = next;}/** * list_del - deletes entry from list. * @entry: the element to delete from the list. * Note: list_empty on entry does not return true after this, the entry is in an undefined state. */static inline void list_del(struct list_head *entry){	__list_del(entry->prev, entry->next);	entry->next = (void *) 0;	entry->prev = (void *) 0;}/** * list_del_init - deletes entry from list and reinitialize it. * @entry: the element to delete from the list. */static inline void list_del_init(struct list_head *entry){	__list_del(entry->prev, entry->next);	INIT_LIST_HEAD(entry);}/** * list_move - delete from one list and add as another's head * @list: the entry to move * @head: the head that will precede our entry */static inline void list_move(struct list_head *list, struct list_head *head){	__list_del(list->prev, list->next);	list_add(list, head);}/** * list_move_tail - delete from one list and add as another's tail * @list: the entry to move * @head: the head that will follow our entry */static inline void list_move_tail(struct list_head *list,				  struct list_head *head){	__list_del(list->prev, list->next);	list_add_tail(list, head);}/** * list_empty - tests whether a list is empty * @head: the list to test. */static inline int list_empty(struct list_head *head){	return head->next == head;}static inline void __list_splice(struct list_head *list,				 struct list_head *head){	struct list_head *first = list->next;	struct list_head *last = list->prev;	struct list_head *at = head->next;	first->prev = head;	head->next = first;	last->next = at;	at->prev = last;}/** * list_splice - join two lists * @list: the new list to add. * @head: the place to add it in the first list. */static inline void list_splice(struct list_head *list, struct list_head *head){	if (!list_empty(list))		__list_splice(list, head);}/** * list_splice_init - join two lists and reinitialise the emptied list. * @list: the new list to add. * @head: the place to add it in the first list. * * The list at @list is reinitialised */static inline void list_splice_init(struct list_head *list,				    struct list_head *head){	if (!list_empty(list)) {		__list_splice(list, head);		INIT_LIST_HEAD(list);	}}/** * list_entry - get the struct for this entry * @ptr:	the &struct list_head pointer. * @type:	the type of the struct this is embedded in. * @member:	the name of the list_struct within the struct. */#define list_entry(ptr, type, member) \	((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))/** * list_for_each	-	iterate over a list * @pos:	the &struct list_head to use as a loop counter. * @head:	the head for your list. */#define list_for_each(pos, head) \	for (pos = (head)->next, prefetch(pos->next); pos != (head); \		pos = pos->next, prefetch(pos->next))/** * list_for_each_prev	-	iterate over a list backwards * @pos:	the &struct list_head to use as a loop counter. * @head:	the head for your list. */#define list_for_each_prev(pos, head) \	for (pos = (head)->prev, prefetch(pos->prev); pos != (head); \		pos = pos->prev, prefetch(pos->prev))/** * list_for_each_safe	-	iterate over a list safe against removal of list entry * @pos:	the &struct list_head to use as a loop counter. * @n:		another &struct list_head to use as temporary storage * @head:	the head for your list. */#define list_for_each_safe(pos, n, head) \	for (pos = (head)->next, n = pos->next; pos != (head); \		pos = n, n = pos->next)/** * list_for_each_entry	-	iterate over list of given type * @pos:	the type * to use as a loop counter. * @head:	the head for your list. * @member:	the name of the list_struct within the struct. */#define list_for_each_entry(pos, head, member)				\	for (pos = list_entry((head)->next, typeof(*pos), member),	\		     prefetch(pos->member.next);			\	     &pos->member != (head);					\	     pos = list_entry(pos->member.next, typeof(*pos), member),	\		     prefetch(pos->member.next))/** * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry * @pos:	the type * to use as a loop counter. * @n:		another type * to use as temporary storage * @head:	the head for your list. * @member:	the name of the list_struct within the struct. */#define list_for_each_entry_safe(pos, n, head, member)			\	for (pos = list_entry((head)->next, typeof(*pos), member),	\		n = list_entry(pos->member.next, typeof(*pos), member); \	     &pos->member != (head);					\	     pos = n, n = list_entry(n->member.next, typeof(*n), member))/** * list_for_each_entry_continue -	iterate over list of given type *			continuing after existing point * @pos:	the type * to use as a loop counter. * @head:	the head for your list. * @member:	the name of the list_struct within the struct. */#define list_for_each_entry_continue(pos, head, member)			\	for (pos = list_entry(pos->member.next, typeof(*pos), member),	\		     prefetch(pos->member.next);			\	     &pos->member != (head);					\	     pos = list_entry(pos->member.next, typeof(*pos), member),	\		     prefetch(pos->member.next))#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人影视亚洲图片在线| 欧美精品精品一区| 毛片一区二区三区| 国产精品免费久久| 欧美一区二区三区思思人| www.av亚洲| 久久成人久久鬼色| 亚洲国产视频一区| 国产精品国产自产拍高清av王其| 91精品国产乱| 欧美主播一区二区三区美女| 国产成人av在线影院| 日本三级亚洲精品| 亚洲夂夂婷婷色拍ww47| 国产欧美一区二区精品秋霞影院| 制服丝袜中文字幕一区| 色哟哟国产精品| 高潮精品一区videoshd| 免费在线观看一区二区三区| 一区二区免费看| 国产精品视频观看| 久久久久久久性| 日韩亚洲电影在线| 7777精品伊人久久久大香线蕉的 | 亚洲精品乱码久久久久久| 久久久久久亚洲综合| 日韩一级二级三级| 欧美高清一级片在线| 欧美最猛黑人xxxxx猛交| 99r国产精品| 成人一区二区三区中文字幕| 国产真实精品久久二三区| 美女www一区二区| 奇米综合一区二区三区精品视频| 天涯成人国产亚洲精品一区av| 亚洲女人小视频在线观看| 亚洲欧美日韩综合aⅴ视频| 国产精品国产三级国产aⅴ无密码| 久久综合九色综合久久久精品综合| 欧美一区永久视频免费观看| 欧美日韩高清不卡| 91麻豆精品国产91久久久久| 911精品国产一区二区在线| 欧美日韩高清一区二区三区| 欧美二区三区91| 日韩欧美中文字幕一区| 日韩欧美视频在线| 精品999在线播放| 久久精品一区二区三区不卡牛牛| 2023国产精华国产精品| 国产视频一区在线播放| 国产精品国产a| 亚洲美女区一区| 亚洲午夜影视影院在线观看| 午夜视频一区二区| 久久精品国产秦先生| 国产一区福利在线| 成人性色生活片免费看爆迷你毛片| 国产成人免费视频| 一本大道av伊人久久综合| 欧美精品123区| 久久久精品免费网站| 国产精品美女久久福利网站| 亚洲激情图片一区| 青青草97国产精品免费观看| 国产sm精品调教视频网站| 99re热这里只有精品免费视频| 欧美亚洲图片小说| 日韩精品在线看片z| 国产精品视频麻豆| 婷婷开心激情综合| 国产一区 二区 三区一级| 91色综合久久久久婷婷| 51精品国自产在线| 国产日韩三级在线| 亚洲综合久久久久| 九色综合狠狠综合久久| 99九九99九九九视频精品| 欧美亚洲动漫制服丝袜| 26uuu精品一区二区| 亚洲图片你懂的| 蜜桃在线一区二区三区| 99精品桃花视频在线观看| 91精品国产一区二区三区香蕉| 国产日韩欧美高清| 午夜精品久久久久久久蜜桃app| 国产精品996| 欧美精品少妇一区二区三区| 国产亚洲自拍一区| 日韩电影免费在线看| 国产白丝精品91爽爽久久| 在线不卡中文字幕| 国产精品色婷婷久久58| 奇米777欧美一区二区| 97aⅴ精品视频一二三区| 欧美成人bangbros| 亚洲一区免费在线观看| 精品一区二区三区视频| 欧美私模裸体表演在线观看| 国产精品久久三| 久久爱另类一区二区小说| 欧美三级日韩三级国产三级| 中文久久乱码一区二区| 黄页视频在线91| 777精品伊人久久久久大香线蕉| 国产精品久久久久久一区二区三区 | 2024国产精品视频| 日韩一区欧美二区| 欧美日韩一区成人| 中文字幕在线一区| 韩国一区二区视频| 91精品麻豆日日躁夜夜躁| ●精品国产综合乱码久久久久| 国产一区二区三区四区五区入口| 在线不卡中文字幕播放| 夜夜嗨av一区二区三区网页| 99久久99久久精品免费观看| 国产喂奶挤奶一区二区三区| 久久97超碰色| 欧美一级xxx| 香港成人在线视频| 欧美综合在线视频| 亚洲精品国产一区二区精华液 | 欧美成人性战久久| 五月天亚洲精品| 欧美日韩精品久久久| 一区二区三区成人| 欧美综合天天夜夜久久| 一区二区成人在线| 91黄色小视频| 亚洲精品视频在线| 欧美午夜影院一区| 亚洲超丰满肉感bbw| 欧美自拍偷拍一区| 一区二区在线观看免费| 91精彩视频在线观看| 亚洲色图欧洲色图| 日本丶国产丶欧美色综合| 亚洲欧美另类在线| 欧美三级中文字幕在线观看| 亚洲一区免费在线观看| 欧美男同性恋视频网站| 石原莉奈在线亚洲三区| 欧美一区二区三区在线| 美女脱光内衣内裤视频久久影院| 日韩欧美激情一区| 韩国成人在线视频| 国产蜜臀97一区二区三区| av一区二区三区在线| 亚洲毛片av在线| 在线视频观看一区| 香港成人在线视频| 日韩一区二区免费在线电影| 国产一区激情在线| 中文字幕五月欧美| 欧美日韩一二三区| 免费在线观看不卡| 日韩精品专区在线影院重磅| 国产精品一区二区91| 亚洲免费av在线| 欧美日韩的一区二区| 国产一区二区三区精品视频 | 免费观看91视频大全| 久久综合九色综合97_久久久| 成人性视频免费网站| 亚洲成人资源在线| www久久精品| 一道本成人在线| 久久精品国产第一区二区三区| 精品美女在线观看| jizzjizzjizz欧美| 午夜不卡av免费| 久久九九99视频| 91官网在线免费观看| 韩国精品在线观看| 一区二区三区中文免费| 欧美一级电影网站| 91污片在线观看| 精品在线亚洲视频| 亚洲精品一二三区| 久久嫩草精品久久久久| 91精品1区2区| 国产福利一区二区三区视频 | 成人听书哪个软件好| 亚洲一区二区精品久久av| 精品久久国产字幕高潮| 色呦呦一区二区三区| 国产一区二区三区高清播放| 一区二区三区在线视频观看58| 精品久久久三级丝袜| 色婷婷综合久久久中文字幕| 久久国产夜色精品鲁鲁99| 亚洲美女区一区| 国产欧美视频在线观看| 777a∨成人精品桃花网| 色综合 综合色| 成人在线视频首页| 久久精品国产77777蜜臀| 一区二区三区视频在线看| 五月天中文字幕一区二区|