Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Jun 2018 15:20:20 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r334658 - head/sys/compat/linuxkpi/common/include/linux
Message-ID:  <201806051520.w55FKKPh028712@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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);					\



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806051520.w55FKKPh028712>