Author: hselasky
Date: Tue Jun  5 15:20:20 2018
New Revision: 334658
URL: https://svnweb.freebsd.org/changeset/base/334658

Log:
  Implement timer_setup() and from_timer() function macros in the LinuxKPI.
  
  Submitted by: Johannes Lundberg <johal...@gmail.com>
  MFC after:    1 week
  Sponsored by: Mellanox Technologies
  Sponsored by: Limelight Networks

Modified:
  head/sys/compat/linuxkpi/common/include/linux/timer.h

Modified: head/sys/compat/linuxkpi/common/include/linux/timer.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/timer.h       Tue Jun  5 
15:05:26 2018        (r334657)
+++ head/sys/compat/linuxkpi/common/include/linux/timer.h       Tue Jun  5 
15:20:20 2018        (r334658)
@@ -39,7 +39,10 @@
 
 struct timer_list {
        struct callout callout;
-       void    (*function) (unsigned long);
+       union {
+               void (*function) (unsigned long);       /* < v4.15 */
+               void (*function_415) (struct timer_list *);
+       };
        unsigned long data;
        int expires;
 };
@@ -47,6 +50,16 @@ struct timer_list {
 extern unsigned long linux_timer_hz_mask;
 
 #define        TIMER_IRQSAFE   0x0001
+
+#define        from_timer(var, arg, field)                                     
\
+        container_of(arg, typeof(*(var)), field)
+
+#define        timer_setup(timer, func, flags) do {                            
\
+       CTASSERT(((flags) & ~TIMER_IRQSAFE) == 0);                      \
+       (timer)->function_415 = (func);                                 \
+       (timer)->data = (unsigned long)(timer);                         \
+       callout_init(&(timer)->callout, 1);                             \
+} while (0)
 
 #define        setup_timer(timer, func, dat) do {                              
\
        (timer)->function = (func);                                     \
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to