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>