Linux Audio

Check our new training course

Loading...
v5.9
 1// SPDX-License-Identifier: GPL-2.0-or-later
 2/*
 3 * sysctl.c - Code for sysctl handling in NTFS Linux kernel driver. Part of
 4 *	      the Linux-NTFS project. Adapted from the old NTFS driver,
 5 *	      Copyright (C) 1997 Martin von Löwis, Régis Duchesne
 6 *
 7 * Copyright (c) 2002-2005 Anton Altaparmakov
 8 */
 9
10#ifdef DEBUG
11
12#include <linux/module.h>
13
14#ifdef CONFIG_SYSCTL
15
16#include <linux/proc_fs.h>
17#include <linux/sysctl.h>
18
19#include "sysctl.h"
20#include "debug.h"
21
22/* Definition of the ntfs sysctl. */
23static struct ctl_table ntfs_sysctls[] = {
24	{
25		.procname	= "ntfs-debug",
26		.data		= &debug_msgs,		/* Data pointer and size. */
27		.maxlen		= sizeof(debug_msgs),
28		.mode		= 0644,			/* Mode, proc handler. */
29		.proc_handler	= proc_dointvec
30	},
31	{}
32};
33
34/* Define the parent directory /proc/sys/fs. */
35static struct ctl_table sysctls_root[] = {
36	{
37		.procname	= "fs",
38		.mode		= 0555,
39		.child		= ntfs_sysctls
40	},
41	{}
42};
43
44/* Storage for the sysctls header. */
45static struct ctl_table_header *sysctls_root_table;
46
47/**
48 * ntfs_sysctl - add or remove the debug sysctl
49 * @add:	add (1) or remove (0) the sysctl
50 *
51 * Add or remove the debug sysctl. Return 0 on success or -errno on error.
52 */
53int ntfs_sysctl(int add)
54{
55	if (add) {
56		BUG_ON(sysctls_root_table);
57		sysctls_root_table = register_sysctl_table(sysctls_root);
58		if (!sysctls_root_table)
59			return -ENOMEM;
60	} else {
61		BUG_ON(!sysctls_root_table);
62		unregister_sysctl_table(sysctls_root_table);
63		sysctls_root_table = NULL;
64	}
65	return 0;
66}
67
68#endif /* CONFIG_SYSCTL */
69#endif /* DEBUG */
v6.8
 1// SPDX-License-Identifier: GPL-2.0-or-later
 2/*
 3 * sysctl.c - Code for sysctl handling in NTFS Linux kernel driver. Part of
 4 *	      the Linux-NTFS project. Adapted from the old NTFS driver,
 5 *	      Copyright (C) 1997 Martin von Löwis, Régis Duchesne
 6 *
 7 * Copyright (c) 2002-2005 Anton Altaparmakov
 8 */
 9
10#ifdef DEBUG
11
12#include <linux/module.h>
13
14#ifdef CONFIG_SYSCTL
15
16#include <linux/proc_fs.h>
17#include <linux/sysctl.h>
18
19#include "sysctl.h"
20#include "debug.h"
21
22/* Definition of the ntfs sysctl. */
23static struct ctl_table ntfs_sysctls[] = {
24	{
25		.procname	= "ntfs-debug",
26		.data		= &debug_msgs,		/* Data pointer and size. */
27		.maxlen		= sizeof(debug_msgs),
28		.mode		= 0644,			/* Mode, proc handler. */
29		.proc_handler	= proc_dointvec
30	},
 
 
 
 
 
 
 
 
 
 
 
31};
32
33/* Storage for the sysctls header. */
34static struct ctl_table_header *sysctls_root_table;
35
36/**
37 * ntfs_sysctl - add or remove the debug sysctl
38 * @add:	add (1) or remove (0) the sysctl
39 *
40 * Add or remove the debug sysctl. Return 0 on success or -errno on error.
41 */
42int ntfs_sysctl(int add)
43{
44	if (add) {
45		BUG_ON(sysctls_root_table);
46		sysctls_root_table = register_sysctl("fs", ntfs_sysctls);
47		if (!sysctls_root_table)
48			return -ENOMEM;
49	} else {
50		BUG_ON(!sysctls_root_table);
51		unregister_sysctl_table(sysctls_root_table);
52		sysctls_root_table = NULL;
53	}
54	return 0;
55}
56
57#endif /* CONFIG_SYSCTL */
58#endif /* DEBUG */