linux/net/llc/sysctl_net_llc.c
<<
>>
Prefs
   1/*
   2 * sysctl_net_llc.c: sysctl interface to LLC net subsystem.
   3 *
   4 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>
   5 */
   6
   7#include <linux/mm.h>
   8#include <linux/init.h>
   9#include <linux/sysctl.h>
  10#include <net/llc.h>
  11
  12#ifndef CONFIG_SYSCTL
  13#error This file should not be compiled without CONFIG_SYSCTL defined
  14#endif
  15
  16static struct ctl_table llc2_timeout_table[] = {
  17        {
  18                .ctl_name       = NET_LLC2_ACK_TIMEOUT,
  19                .procname       = "ack",
  20                .data           = &sysctl_llc2_ack_timeout,
  21                .maxlen         = sizeof(long),
  22                .mode           = 0644,
  23                .proc_handler   = proc_dointvec_jiffies,
  24                .strategy       = sysctl_jiffies,
  25        },
  26        {
  27                .ctl_name       = NET_LLC2_BUSY_TIMEOUT,
  28                .procname       = "busy",
  29                .data           = &sysctl_llc2_busy_timeout,
  30                .maxlen         = sizeof(long),
  31                .mode           = 0644,
  32                .proc_handler   = proc_dointvec_jiffies,
  33                .strategy       = sysctl_jiffies,
  34        },
  35        {
  36                .ctl_name       = NET_LLC2_P_TIMEOUT,
  37                .procname       = "p",
  38                .data           = &sysctl_llc2_p_timeout,
  39                .maxlen         = sizeof(long),
  40                .mode           = 0644,
  41                .proc_handler   = proc_dointvec_jiffies,
  42                .strategy       = sysctl_jiffies,
  43        },
  44        {
  45                .ctl_name       = NET_LLC2_REJ_TIMEOUT,
  46                .procname       = "rej",
  47                .data           = &sysctl_llc2_rej_timeout,
  48                .maxlen         = sizeof(long),
  49                .mode           = 0644,
  50                .proc_handler   = proc_dointvec_jiffies,
  51                .strategy       = sysctl_jiffies,
  52        },
  53        { 0 },
  54};
  55
  56static struct ctl_table llc_station_table[] = {
  57        {
  58                .ctl_name       = NET_LLC_STATION_ACK_TIMEOUT,
  59                .procname       = "ack_timeout",
  60                .data           = &sysctl_llc_station_ack_timeout,
  61                .maxlen         = sizeof(long),
  62                .mode           = 0644,
  63                .proc_handler   = proc_dointvec_jiffies,
  64                .strategy       = sysctl_jiffies,
  65        },
  66        { 0 },
  67};
  68
  69static struct ctl_table llc2_dir_timeout_table[] = {
  70        {
  71                .ctl_name       = NET_LLC2,
  72                .procname       = "timeout",
  73                .mode           = 0555,
  74                .child          = llc2_timeout_table,
  75        },
  76        { 0 },
  77};
  78
  79static struct ctl_table llc_table[] = {
  80        {
  81                .ctl_name       = NET_LLC2,
  82                .procname       = "llc2",
  83                .mode           = 0555,
  84                .child          = llc2_dir_timeout_table,
  85        },
  86        {
  87                .ctl_name       = NET_LLC_STATION,
  88                .procname       = "station",
  89                .mode           = 0555,
  90                .child          = llc_station_table,
  91        },
  92        { 0 },
  93};
  94
  95static struct ctl_path llc_path[] = {
  96        { .procname = "net", .ctl_name = CTL_NET, },
  97        { .procname = "llc", .ctl_name = NET_LLC, },
  98        { }
  99};
 100
 101static struct ctl_table_header *llc_table_header;
 102
 103int __init llc_sysctl_init(void)
 104{
 105        llc_table_header = register_sysctl_paths(llc_path, llc_table);
 106
 107        return llc_table_header ? 0 : -ENOMEM;
 108}
 109
 110void llc_sysctl_exit(void)
 111{
 112        if (llc_table_header) {
 113                unregister_sysctl_table(llc_table_header);
 114                llc_table_header = NULL;
 115        }
 116}
 117