X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=wrapper%2Fwriteback.h;h=6601e0f70963b501021b4dbdd9953ed511e0f7e9;hb=2d0428212cbfa3f8428feee160b095f48c2ac974;hp=22b2c1608a5e5df3495fbdcc863859364813cf76;hpb=6284ae7ced3a8c6a4bee55b071d4de74d7400cad;p=lttng-modules.git diff --git a/wrapper/writeback.h b/wrapper/writeback.h index 22b2c160..6601e0f7 100644 --- a/wrapper/writeback.h +++ b/wrapper/writeback.h @@ -1,7 +1,5 @@ -#ifndef _LTTNG_WRAPPER_WRITEBACK_H -#define _LTTNG_WRAPPER_WRITEBACK_H - -/* +/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1) + * * wrapper/writeback.h * * wrapper around global_dirty_limit read. Using KALLSYMS with KALLSYMS_ALL @@ -9,22 +7,11 @@ * exports this variable to GPL modules. * * Copyright (C) 2013 Mentor Graphics Corp. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; only - * version 2.1 of the License. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef _LTTNG_WRAPPER_WRITEBACK_H +#define _LTTNG_WRAPPER_WRITEBACK_H + #include #ifdef CONFIG_KALLSYMS_ALL @@ -33,7 +20,7 @@ -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) +#if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0) static struct wb_domain *global_wb_domain_sym; @@ -50,7 +37,21 @@ unsigned long wrapper_global_dirty_limit(void) return 0; } } -#else + +/* + * Canary function to check for 'global_wb_domain' at compile time. + * + * From 'include/linux/writeback.h': + * + * extern struct wb_domain global_wb_domain; + */ +static inline +unsigned long __canary__global_wb_domain(void) +{ + return global_wb_domain.dirty_limit; +} + +#elif LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) static unsigned long *global_dirty_limit_sym; @@ -67,17 +68,33 @@ unsigned long wrapper_global_dirty_limit(void) return 0; } } + +/* + * Canary function to check for 'global_dirty_limit' at compile time. + * + * From 'include/linux/writeback.h': + * + * extern unsigned long global_dirty_limit; + */ +static inline +unsigned long __canary__global_dirty_limit(void) +{ + return global_dirty_limit; +} + #endif #else /* CONFIG_KALLSYMS_ALL */ #include +#if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0) static inline unsigned long wrapper_global_dirty_limit(void) { return global_dirty_limit; } +#endif #endif