queue.h revision 30bd6062e4b295f5f7bcaeb98165065310d29269
13597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu/* 230bd6062e4b295f5f7bcaeb98165065310d29269Ho-Eun Ryu * Copyright (c) 2009 Wind River Systems, Inc. 330bd6062e4b295f5f7bcaeb98165065310d29269Ho-Eun Ryu * 430bd6062e4b295f5f7bcaeb98165065310d29269Ho-Eun Ryu * The right to copy, distribute, modify, or otherwise make use 530bd6062e4b295f5f7bcaeb98165065310d29269Ho-Eun Ryu * of this software may be licensed only pursuant to the terms 630bd6062e4b295f5f7bcaeb98165065310d29269Ho-Eun Ryu * of an applicable Wind River license agreement. 73597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu */ 83597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 93597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#ifndef __QUEUE_H 103597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#define __QUEUE_H 113597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 123597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#include "list.h" 133597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 143597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#ifdef __cplusplus 153597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuextern "C" { 163597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#endif 173597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 183597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryustruct queue { 193597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu struct list *head; 203597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu struct list *tail; 213597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu int length; 223597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu}; 233597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 243597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuvoid __queue_init(struct queue *queue); 253597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryustruct queue *queue_alloc(void); 263597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu/* FIXME */ 273597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuinline void __queue_free(struct queue *queue); 283597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu/* FIXME */ 293597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuvoid queue_free_all(struct queue *queue); 303597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 313597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuvoid __queue_push_head(struct queue *queue, struct list *entry); 323597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuint queue_push_head(struct queue *queue, void *data); 333597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuvoid __queue_push_tail(struct queue *queue, struct list *entry); 343597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuint queue_push_tail(struct queue *queue, void *data); 353597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 363597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryustruct list *__queue_pop_head(struct queue *queue); 373597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuvoid *queue_pop_head(struct queue *queue); 383597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryustruct list *__queue_pop_tail(struct queue *queue); 393597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuvoid *queue_pop_tail(struct queue *queue); 403597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 413597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuinline struct list *__queue_peek_head(struct queue *queue); 423597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuinline struct list *__queue_peek_tail(struct queue *queue); 433597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuinline void *queue_peek_head(struct queue *queue); 443597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuinline void *queue_peek_tail(struct queue *queue); 453597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 463597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryuint queue_length(struct queue *queue); 473597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 483597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#ifdef __cplusplus 493597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu} /* extern "C" */ 503597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#endif 513597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu 523597788ce7c666b2e86df3932968f0745f4b7bd1Ho-Eun Ryu#endif /* __QUEUE_H */ 53