Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jun 2018 06:38:04 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r335414 - stable/11/sys/compat/linuxkpi/common/include/linux
Message-ID:  <201806200638.w5K6c4hn020792@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Wed Jun 20 06:38:03 2018
New Revision: 335414
URL: https://svnweb.freebsd.org/changeset/base/335414

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

Modified:
  stable/11/sys/compat/linuxkpi/common/include/linux/timer.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/linuxkpi/common/include/linux/timer.h
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/include/linux/timer.h	Wed Jun 20 06:37:15 2018	(r335413)
+++ stable/11/sys/compat/linuxkpi/common/include/linux/timer.h	Wed Jun 20 06:38:03 2018	(r335414)
@@ -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?201806200638.w5K6c4hn020792>