14#ifndef INPUT_GP_TASK_H
15#define INPUT_GP_TASK_H
17#include <input/gp_types.h>
20#define GP_TASK_NONE_PRIO 0
22#define GP_TASK_MIN_PRIO 1
23#define GP_TASK_MAX_PRIO 3
26 unsigned int task_cnt;
27 unsigned int min_prio;
28 gp_dlist queues[GP_TASK_MAX_PRIO - GP_TASK_MIN_PRIO + 1];
34 unsigned int queued:1;
36 int (*callback)(gp_task *self);
40void gp_task_queue_dump(gp_task_queue *self);
42void gp_task_queue_ins(gp_task_queue *self, gp_task *task);
44void gp_task_queue_rem(gp_task_queue *self, gp_task *task);
46int gp_task_queue_process(gp_task_queue *self);
48static inline size_t gp_task_queue_tasks(gp_task_queue *self)
50 return self->task_cnt;
53static inline unsigned int gp_task_queue_head_prio(gp_task_queue *self)
55 return self->min_prio;
A linked list implementation.