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 (2711B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 *  net/dccp/sysctl.c
      4 *
      5 *  An implementation of the DCCP protocol
      6 *  Arnaldo Carvalho de Melo <acme@mandriva.com>
      7 */
      8
      9#include <linux/mm.h>
     10#include <linux/sysctl.h>
     11#include "dccp.h"
     12#include "feat.h"
     13
     14#ifndef CONFIG_SYSCTL
     15#error This file should not be compiled without CONFIG_SYSCTL defined
     16#endif
     17
     18/* Boundary values */
     19static int		u8_max   = 0xFF;
     20static unsigned long	seqw_min = DCCPF_SEQ_WMIN,
     21			seqw_max = 0xFFFFFFFF;		/* maximum on 32 bit */
     22
     23static struct ctl_table dccp_default_table[] = {
     24	{
     25		.procname	= "seq_window",
     26		.data		= &sysctl_dccp_sequence_window,
     27		.maxlen		= sizeof(sysctl_dccp_sequence_window),
     28		.mode		= 0644,
     29		.proc_handler	= proc_doulongvec_minmax,
     30		.extra1		= &seqw_min,		/* RFC 4340, 7.5.2 */
     31		.extra2		= &seqw_max,
     32	},
     33	{
     34		.procname	= "rx_ccid",
     35		.data		= &sysctl_dccp_rx_ccid,
     36		.maxlen		= sizeof(sysctl_dccp_rx_ccid),
     37		.mode		= 0644,
     38		.proc_handler	= proc_dointvec_minmax,
     39		.extra1		= SYSCTL_ZERO,
     40		.extra2		= &u8_max,		/* RFC 4340, 10. */
     41	},
     42	{
     43		.procname	= "tx_ccid",
     44		.data		= &sysctl_dccp_tx_ccid,
     45		.maxlen		= sizeof(sysctl_dccp_tx_ccid),
     46		.mode		= 0644,
     47		.proc_handler	= proc_dointvec_minmax,
     48		.extra1		= SYSCTL_ZERO,
     49		.extra2		= &u8_max,		/* RFC 4340, 10. */
     50	},
     51	{
     52		.procname	= "request_retries",
     53		.data		= &sysctl_dccp_request_retries,
     54		.maxlen		= sizeof(sysctl_dccp_request_retries),
     55		.mode		= 0644,
     56		.proc_handler	= proc_dointvec_minmax,
     57		.extra1		= SYSCTL_ONE,
     58		.extra2		= &u8_max,
     59	},
     60	{
     61		.procname	= "retries1",
     62		.data		= &sysctl_dccp_retries1,
     63		.maxlen		= sizeof(sysctl_dccp_retries1),
     64		.mode		= 0644,
     65		.proc_handler	= proc_dointvec_minmax,
     66		.extra1		= SYSCTL_ZERO,
     67		.extra2		= &u8_max,
     68	},
     69	{
     70		.procname	= "retries2",
     71		.data		= &sysctl_dccp_retries2,
     72		.maxlen		= sizeof(sysctl_dccp_retries2),
     73		.mode		= 0644,
     74		.proc_handler	= proc_dointvec_minmax,
     75		.extra1		= SYSCTL_ZERO,
     76		.extra2		= &u8_max,
     77	},
     78	{
     79		.procname	= "tx_qlen",
     80		.data		= &sysctl_dccp_tx_qlen,
     81		.maxlen		= sizeof(sysctl_dccp_tx_qlen),
     82		.mode		= 0644,
     83		.proc_handler	= proc_dointvec_minmax,
     84		.extra1		= SYSCTL_ZERO,
     85	},
     86	{
     87		.procname	= "sync_ratelimit",
     88		.data		= &sysctl_dccp_sync_ratelimit,
     89		.maxlen		= sizeof(sysctl_dccp_sync_ratelimit),
     90		.mode		= 0644,
     91		.proc_handler	= proc_dointvec_ms_jiffies,
     92	},
     93
     94	{ }
     95};
     96
     97static struct ctl_table_header *dccp_table_header;
     98
     99int __init dccp_sysctl_init(void)
    100{
    101	dccp_table_header = register_net_sysctl(&init_net, "net/dccp/default",
    102			dccp_default_table);
    103
    104	return dccp_table_header != NULL ? 0 : -ENOMEM;
    105}
    106
    107void dccp_sysctl_exit(void)
    108{
    109	if (dccp_table_header != NULL) {
    110		unregister_net_sysctl_table(dccp_table_header);
    111		dccp_table_header = NULL;
    112	}
    113}