blob: a9b853a67c5d4ecef600b737523a2692d3d77f95 [file] [log] [blame]
/* Copyright (c) 2015 Google Inc
* Barret Rhoden <brho@cs.berkeley.edu>
* See LICENSE for details.
*
* Hacked BSD taskqueues. In lieu of actually running a kproc or something that
* sleeps on a queue of tasks, we'll just blast out a kmsg. We can always
* change the implementation if we need more control. */
#ifndef ROS_KERN_TASKQUEUE_H
#define ROS_KERN_TASKQUEUE_H
typedef void (*task_fn_t)(void *context, int pending);
struct taskqueue {};
struct task {
task_fn_t ta_func; /* task handler */
void *ta_context; /* argument for handler */
};
#define taskqueue_drain(x, y)
#define taskqueue_free(x)
#define taskqueue_create(a, b, c, d) ((struct taskqueue*)(0xcafebabe))
#define taskqueue_create_fast taskqueue_create
#define taskqueue_start_threads(a, b, c, d, e) (1)
int taskqueue_enqueue(struct taskqueue *queue, struct task *task);
/* We're already fast, no need for another ufnction! (sic) */
#define taskqueue_enqueue_fast taskqueue_enqueue
#define TASK_INIT(str, dummy, func, arg) \
(str)->ta_func = func; \
(str)->ta_context = (void*)arg;
#endif /* ROS_KERN_TASKQUEUE_H */