usb4bsd: Remove some porting gunk
authorMarkus Pfeiffer <markus.pfeiffer@morphism.de>
Thu, 8 Jan 2015 21:51:43 +0000 (21:51 +0000)
committerMarkus Pfeiffer <markus.pfeiffer@morphism.de>
Fri, 9 Jan 2015 11:42:07 +0000 (11:42 +0000)
* I wrapped the callout structure in a layer of indirection to
  simulate FreeBSD's callout that acquires a lock before calling
  into the callout function. This functionality is now available
  in DragonFly directly, so use it.

sys/bus/u4b/usb_util.c
sys/bus/u4b/usbdi.h

index a3dab86..ff07d04 100644 (file)
@@ -247,43 +247,3 @@ usb_make_str_desc(void *ptr, uint16_t max_len, const char *s)
        }
        return (totlen);
 }
-
-void 
-usb_callout_timeout_wrapper(void *arg)
-{
-       struct usb_callout *uco = (struct usb_callout *)arg;
-
-       KKASSERT(uco != NULL);
-
-       /*
-        * Simulate FreeBSD's callout behaviour which allows
-        * a lock to be acquired before the function is called.
-        *
-        * (is now implemented directly by DragonFly).
-        */
-
-       /*lockmgr(uco->uco_lock, LK_EXCLUSIVE); -- already locked by callout */
-       uco->uco_func(uco->uco_arg);
-       /*lockmgr(uco->uco_lock, LK_RELEASE);*/
-       /* XXX Have to introduce flags and release lock? */
-}
-
-void 
-usb_callout_init_mtx_dfly(struct usb_callout *uco, struct lock *lock,
-    int flags)
-{
-       callout_init_lk(&uco->co, lock);
-       uco->uco_lock = lock;
-       uco->uco_flags = flags;    
-}
-
-void
-usb_callout_reset_dfly(struct usb_callout *uco, int ticks, timeout_t *func,
-    void *arg)
-{
-       KKASSERT(uco != NULL);
-       uco->uco_func = func;
-       uco->uco_arg = arg;
-
-       callout_reset(&uco->co, ticks, &usb_callout_timeout_wrapper, uco);
-}
index c259d23..f9e03a2 100644 (file)
@@ -403,20 +403,10 @@ struct usb_attach_arg {
  */
 struct usb_callout {
        struct callout co;
-       struct lock *uco_lock;
-       void (*uco_func)(void *);
-       void *uco_arg;
-       int uco_flags;
 };
 
-void usb_callout_timeout_wrapper(void *arg);
-void usb_callout_init_mtx_dfly(struct usb_callout *uco, struct lock *lock,
-        int flags); 
-void usb_callout_reset_dfly(struct usb_callout *uco, int ticks,
-        timeout_t *func, void *arg);    
-
-#define        usb_callout_init_mtx(c,m,f) usb_callout_init_mtx_dfly(c, m, f) 
-#define        usb_callout_reset(c,t,f,d) usb_callout_reset_dfly(c, t, f, d)
+#define        usb_callout_init_mtx(c,m,f) callout_init_lk(&(c)->co, m) 
+#define        usb_callout_reset(c,t,f,d)  callout_reset(&(c)->co, t, f, d)
 #define        usb_callout_stop(c) callout_stop(&(c)->co)
 #define        usb_callout_drain(c) callout_stop_sync(&(c)->co)
 #define        usb_callout_pending(c) callout_pending(&(c)->co)