svn commit: r334658 - head/sys/compat/linuxkpi/common/include/linux

Hans Petter Selasky hselasky at FreeBSD.org
Tue Jun 5 15:20:21 UTC 2018


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 <johalun0 at 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);					\


More information about the svn-src-head mailing list