summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRyan Moeller <[email protected]>2020-04-07 13:06:22 -0400
committerGitHub <[email protected]>2020-04-07 10:06:22 -0700
commit7e3df9db128722143734a9459771365ea19c1c40 (patch)
tree6010642540ab0b9d8eb6dd819a8b2ca7137b981c /include
parent2a15c6aab40e854808f2d910ee998cd405769dfa (diff)
Finish refactoring for ZFS_MODULE_PARAM_CALL
Linux and FreeBSD have different parameters for tunable proc handler. This has prevented FreeBSD from implementing the ZFS_MODULE_PARAM_CALL macro. To complete the sharing of ZFS_MODULE_PARAM_CALL declarations, create per-platform definitions of the parameter list, ZFS_MODULE_PARAM_ARGS. With the declarations wired up we discovered an incorrect scope prefix for spa_slop_shift, so this is now fixed. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #10179
Diffstat (limited to 'include')
-rw-r--r--include/os/linux/kernel/linux/mod_compat.h4
-rw-r--r--include/sys/arc_impl.h4
-rw-r--r--include/sys/spa.h8
-rw-r--r--include/sys/zfs_context.h1
4 files changed, 10 insertions, 7 deletions
diff --git a/include/os/linux/kernel/linux/mod_compat.h b/include/os/linux/kernel/linux/mod_compat.h
index a0f618d14..1a53c66e5 100644
--- a/include/os/linux/kernel/linux/mod_compat.h
+++ b/include/os/linux/kernel/linux/mod_compat.h
@@ -134,12 +134,14 @@ enum scope_prefix_types {
* spa_slop_shift
*/
/* BEGIN CSTYLED */
-#define ZFS_MODULE_PARAM_CALL(scope_prefix, name_prefix, name, setfunc, getfunc, perm, desc) \
+#define ZFS_MODULE_PARAM_CALL(scope_prefix, name_prefix, name, setfunc, getfunc, perm, desc) \
CTASSERT_GLOBAL((sizeof (scope_prefix) == sizeof (enum scope_prefix_types))); \
module_param_call(name_prefix ## name, setfunc, getfunc, &name_prefix ## name, perm); \
MODULE_PARM_DESC(name_prefix ## name, desc)
/* END CSTYLED */
+#define ZFS_MODULE_PARAM_ARGS const char *buf, zfs_kernel_param_t *kp
+
#define ZFS_MODULE_DESCRIPTION(s) MODULE_DESCRIPTION(s)
#define ZFS_MODULE_AUTHOR(s) MODULE_AUTHOR(s)
#define ZFS_MODULE_LICENSE(s) MODULE_LICENSE(s)
diff --git a/include/sys/arc_impl.h b/include/sys/arc_impl.h
index c55640f8b..d4167945f 100644
--- a/include/sys/arc_impl.h
+++ b/include/sys/arc_impl.h
@@ -614,8 +614,8 @@ extern uint64_t arc_free_memory(void);
extern int64_t arc_available_memory(void);
extern void arc_tuning_update(void);
-extern int param_set_arc_long(const char *buf, zfs_kernel_param_t *kp);
-extern int param_set_arc_int(const char *buf, zfs_kernel_param_t *kp);
+extern int param_set_arc_long(ZFS_MODULE_PARAM_ARGS);
+extern int param_set_arc_int(ZFS_MODULE_PARAM_ARGS);
#ifdef __cplusplus
}
diff --git a/include/sys/spa.h b/include/sys/spa.h
index 780119e9a..e1fab3c69 100644
--- a/include/sys/spa.h
+++ b/include/sys/spa.h
@@ -1179,10 +1179,10 @@ extern void spa_notify_waiters(spa_t *spa);
extern void spa_wake_waiters(spa_t *spa);
/* module param call functions */
-int param_set_deadman_ziotime(const char *val, zfs_kernel_param_t *kp);
-int param_set_deadman_synctime(const char *val, zfs_kernel_param_t *kp);
-int param_set_slop_shift(const char *buf, zfs_kernel_param_t *kp);
-int param_set_deadman_failmode(const char *val, zfs_kernel_param_t *kp);
+int param_set_deadman_ziotime(ZFS_MODULE_PARAM_ARGS);
+int param_set_deadman_synctime(ZFS_MODULE_PARAM_ARGS);
+int param_set_slop_shift(ZFS_MODULE_PARAM_ARGS);
+int param_set_deadman_failmode(ZFS_MODULE_PARAM_ARGS);
#ifdef ZFS_DEBUG
#define dprintf_bp(bp, fmt, ...) do { \
diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h
index 39c778b1e..00642175d 100644
--- a/include/sys/zfs_context.h
+++ b/include/sys/zfs_context.h
@@ -198,6 +198,7 @@ typedef struct zfs_kernel_param {
} zfs_kernel_param_t;
#define ZFS_MODULE_PARAM(scope_prefix, name_prefix, name, type, perm, desc)
+#define ZFS_MODULE_PARAM_ARGS void
#define ZFS_MODULE_PARAM_CALL(scope_prefix, name_prefix, name, setfunc, \
getfunc, perm, desc)