diff options
author | alfred <alfred@FreeBSD.org> | 2007-01-08 23:21:06 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2007-01-08 23:21:06 +0000 |
commit | f11c252b707388cec46312e0bb40357915f70a68 (patch) | |
tree | eed129bbc6039fa6114f81248214f3e07b79c5ba /sys/dev/usb/usb_ethersubr.c | |
parent | bc556da94cf284f459efee9aee092835f991554c (diff) | |
download | FreeBSD-src-f11c252b707388cec46312e0bb40357915f70a68.zip FreeBSD-src-f11c252b707388cec46312e0bb40357915f70a68.tar.gz |
Add the following functions to abstract away the creation of task threads
for usb. I hope that this will eventually be used for generic devices
that need full fledged blocking threads for event processing.
Create a taskqueue:
void usb_ether_task_init(device_t, int, struct usb_taskqueue *);
Enqueue a task:
void usb_ether_task_enqueue(struct usb_taskqueue *, struct task *);
Wait for all tasks queued to complete:
void usb_ether_task_drain(struct usb_taskqueue *, struct task *);
Destroy the taskqueue:
void usb_ether_task_destroy(struct usb_taskqueue *);
Diffstat (limited to 'sys/dev/usb/usb_ethersubr.c')
-rw-r--r-- | sys/dev/usb/usb_ethersubr.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/sys/dev/usb/usb_ethersubr.c b/sys/dev/usb/usb_ethersubr.c index ef43cdb..2cb5fa6 100644 --- a/sys/dev/usb/usb_ethersubr.c +++ b/sys/dev/usb/usb_ethersubr.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include <sys/mbuf.h> #include <sys/malloc.h> #include <sys/socket.h> +#include <sys/taskqueue.h> #include <net/if.h> #include <net/if_types.h> @@ -246,3 +247,32 @@ usb_ether_tx_list_free(struct ue_cdata *cd) } } } + +void +usb_ether_task_init(device_t dev, int flags, struct usb_taskqueue *tq) +{ + + /* nothing for now. */ +} + +void +usb_ether_task_enqueue(struct usb_taskqueue *tq, struct task *task) +{ + + taskqueue_enqueue(taskqueue_thread, task); +} + +void +usb_ether_task_drain(struct usb_taskqueue *tq, struct task *task) +{ + + taskqueue_drain(taskqueue_thread, task); +} + +void +usb_ether_task_destroy(struct usb_taskqueue *tq) +{ + + /* nothing for now */ + +} |