summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2013-04-23 10:42:15 +0000
committerhselasky <hselasky@FreeBSD.org>2013-04-23 10:42:15 +0000
commit17ea3ba57c1c6799a0b013b788d6f81400ce3a67 (patch)
tree0791766ac0417e866aa7a53a7d0416a0dba22de4 /sys
parent59d26c37a6fa32dd97848dfde247008f6847cf68 (diff)
downloadFreeBSD-src-17ea3ba57c1c6799a0b013b788d6f81400ce3a67.zip
FreeBSD-src-17ea3ba57c1c6799a0b013b788d6f81400ce3a67.tar.gz
Add convenience wrapper functions to run callbacks in the context of the
USB explore thread.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/usb/controller/usb_controller.c25
-rw-r--r--sys/dev/usb/usb_process.h6
2 files changed, 31 insertions, 0 deletions
diff --git a/sys/dev/usb/controller/usb_controller.c b/sys/dev/usb/controller/usb_controller.c
index a28d612..0abb42f 100644
--- a/sys/dev/usb/controller/usb_controller.c
+++ b/sys/dev/usb/controller/usb_controller.c
@@ -901,3 +901,28 @@ usb_bus_mem_free_all(struct usb_bus *bus, usb_bus_mem_cb_t *cb)
mtx_destroy(&bus->bus_mtx);
}
+
+/* convenience wrappers */
+void
+usb_proc_explore_mwait(struct usb_device *udev, void *pm1, void *pm2)
+{
+ usb_proc_mwait(USB_BUS_EXPLORE_PROC(udev->bus), pm1, pm2);
+}
+
+void *
+usb_proc_explore_msignal(struct usb_device *udev, void *pm1, void *pm2)
+{
+ return (usb_proc_msignal(USB_BUS_EXPLORE_PROC(udev->bus), pm1, pm2));
+}
+
+void
+usb_proc_explore_lock(struct usb_device *udev)
+{
+ USB_BUS_LOCK(udev->bus);
+}
+
+void
+usb_proc_explore_unlock(struct usb_device *udev)
+{
+ USB_BUS_UNLOCK(udev->bus);
+}
diff --git a/sys/dev/usb/usb_process.h b/sys/dev/usb/usb_process.h
index 923f645..97262c4 100644
--- a/sys/dev/usb/usb_process.h
+++ b/sys/dev/usb/usb_process.h
@@ -44,6 +44,7 @@
/* structure prototypes */
struct usb_proc_msg;
+struct usb_device;
/*
* The following structure defines the USB process.
@@ -81,4 +82,9 @@ void usb_proc_free(struct usb_process *up);
void *usb_proc_msignal(struct usb_process *up, void *pm0, void *pm1);
void usb_proc_rewakeup(struct usb_process *up);
+void usb_proc_explore_mwait(struct usb_device *, void *, void *);
+void *usb_proc_explore_msignal(struct usb_device *, void *, void *);
+void usb_proc_explore_lock(struct usb_device *);
+void usb_proc_explore_unlock(struct usb_device *);
+
#endif /* _USB_PROCESS_H_ */
OpenPOWER on IntegriCloud