cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sysctl.c (1542B)


      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 */