⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 this SRC packet is the headfiles that MIZI vivi bootloader needed when compling
💻 H
字号:
/* *  include/asm-s390/queue.h * *  S390 version *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation *    Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) * *  A little set of queue utilies. */#ifndef __ASM_QUEUE_H#define __ASM_QUEUE_H#include <linux/stddef.h>typedef struct queue{	struct queue *next;	} queue;typedef queue list;typedef struct{	queue *head;	queue *tail;} qheader;static __inline__ void init_queue(qheader *qhead){	memset(qhead,0,sizeof(*qhead));}static __inline__ void enqueue_tail(qheader *qhead,queue *member){		if(member)	{		queue *tail=qhead->tail;		if(tail)			tail->next=member;		else						qhead->head=member;		qhead->tail=member;		member->next=NULL;	}} static __inline__ queue *dequeue_head(qheader *qhead){	queue *head=qhead->head,*next_head;	if(head)	{		next_head=head->next;		qhead->head=next_head;	        if(!next_head)			qhead->tail=NULL;	}	return(head);}static __inline__ void init_list(list **lhead){	*lhead=NULL;}static __inline__ void add_to_list(list **lhead,list *member){	member->next=*lhead;	*lhead=member;}static __inline__ list *remove_listhead(list **lhead){	list *oldhead=*lhead;	if(oldhead)		*lhead=(*lhead)->next;	return(oldhead);}static __inline__ void add_to_list_tail(list **lhead,list *member){	list *curr,*prev;	if(*lhead==NULL)		*lhead=member;	else	{		prev=*lhead;		for(curr=(*lhead)->next;curr!=NULL;curr=curr->next)			prev=curr;		prev->next=member;	}}static __inline__ void add_to_list_tail_null(list **lhead,list *member){	member->next=NULL;	add_to_list_tail_null(lhead,member);}static __inline__ int is_in_list(list *lhead,list *member){	list *curr;	for(curr=lhead;curr!=NULL;curr=curr->next)		if(curr==member)			return(1);	return(0);}static __inline__ int get_prev(list *lhead,list *member,list **prev){	list *curr;	*prev=NULL;	for(curr=lhead;curr!=NULL;curr=curr->next)	{		if(curr==member)			return(1);		*prev=curr;	}	*prev=NULL;	return(0);}static __inline__ int remove_from_list(list **lhead,list *member){	list *prev;	if(get_prev(*lhead,member,&prev))	{		if(prev)			prev->next=member->next;		else			*lhead=member->next;		return(1);	}	return(0);}static __inline__ int remove_from_queue(qheader *qhead,queue *member){	queue *prev;	if(get_prev(qhead->head,(list *)member,(list **)&prev))	{		if(prev)		{			prev->next=member->next;			if(prev->next==NULL)				qhead->tail=prev;		}		else		{			if(qhead->head==qhead->tail)				qhead->tail=NULL;			qhead->head=member->next;		}		return(1);	}	return(0);}#endif /* __ASM_QUEUE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -