42 lines
1.0 KiB
C
42 lines
1.0 KiB
C
#ifndef _FB_QUEUE_H_
|
|
#define _FB_QUEUE_H_
|
|
|
|
#if defined (__cplusplus)
|
|
extern "C"{
|
|
#endif
|
|
|
|
typedef struct _queue_s {
|
|
struct _queue_s *prev;
|
|
struct _queue_s *next;
|
|
} queue_s;
|
|
|
|
typedef struct _fb_queue_s {
|
|
void *prev;
|
|
void *next;
|
|
unsigned int fb_base;
|
|
} fb_queue_s;
|
|
|
|
/* queue toolbox procedure */
|
|
void queue_initialize (queue_s *queue);
|
|
void queue_insert (queue_s *entry, queue_s *queue);
|
|
void queue_delete (queue_s *entry);
|
|
queue_s * queue_delete_next (queue_s *queue);
|
|
int queue_empty (queue_s *queue);
|
|
queue_s * queue_head (queue_s *queue);
|
|
queue_s * queue_tail (queue_s *queue);
|
|
queue_s * queue_next (queue_s *queue);
|
|
queue_s * queue_prev (queue_s *queue);
|
|
|
|
void fb_queue_init (void);
|
|
void fb_queue_exit (void);
|
|
fb_queue_s *fb_queue_get_free_unit(void);
|
|
void fb_queue_set_free (fb_queue_s *unit);
|
|
void fb_queue_set_ready (fb_queue_s *unit);
|
|
fb_queue_s *fb_queue_get_ready_unit(void);
|
|
fb_queue_s *fb_queue_get_unit_from_base(unsigned int base);
|
|
|
|
#if defined (__cplusplus)
|
|
}
|
|
#endif /* end of __cplusplus */
|
|
|
|
#endif //_FB_QUEUE_H_
|