MAX_CARLINK_A270S/MXC_A27-PCB4.5-270T/lib/lib_rtos/fb_queue.h

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_