summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_ethersubr.c
diff options
context:
space:
mode:
authoralfred <alfred@FreeBSD.org>2007-01-08 23:21:06 +0000
committeralfred <alfred@FreeBSD.org>2007-01-08 23:21:06 +0000
commitf11c252b707388cec46312e0bb40357915f70a68 (patch)
treeeed129bbc6039fa6114f81248214f3e07b79c5ba /sys/dev/usb/usb_ethersubr.c
parentbc556da94cf284f459efee9aee092835f991554c (diff)
downloadFreeBSD-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.c30
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 */
+
+}
OpenPOWER on IntegriCloud