linux/net/unix/sysctl_net_unix.c
<<
>>
Prefs
   1/*
   2 * NET4:        Sysctl interface to net af_unix subsystem.
   3 *
   4 * Authors:     Mike Shaver.
   5 *
   6 *              This program is free software; you can redistribute it and/or
   7 *              modify it under the terms of the GNU General Public License
   8 *              as published by the Free Software Foundation; either version
   9 *              2 of the License, or (at your option) any later version.
  10 */
  11
  12#include <linux/mm.h>
  13#include <linux/slab.h>
  14#include <linux/sysctl.h>
  15
  16#include <net/af_unix.h>
  17
  18static ctl_table unix_table[] = {
  19        {
  20                .procname       = "max_dgram_qlen",
  21                .data           = &init_net.unx.sysctl_max_dgram_qlen,
  22                .maxlen         = sizeof(int),
  23                .mode           = 0644,
  24                .proc_handler   = proc_dointvec
  25        },
  26        { }
  27};
  28
  29int __net_init unix_sysctl_register(struct net *net)
  30{
  31        struct ctl_table *table;
  32
  33        table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
  34        if (table == NULL)
  35                goto err_alloc;
  36
  37        table[0].data = &net->unx.sysctl_max_dgram_qlen;
  38        net->unx.ctl = register_net_sysctl(net, "net/unix", table);
  39        if (net->unx.ctl == NULL)
  40                goto err_reg;
  41
  42        return 0;
  43
  44err_reg:
  45        kfree(table);
  46err_alloc:
  47        return -ENOMEM;
  48}
  49
  50void unix_sysctl_unregister(struct net *net)
  51{
  52        struct ctl_table *table;
  53
  54        table = net->unx.ctl->ctl_table_arg;
  55        unregister_net_sysctl_table(net->unx.ctl);
  56        kfree(table);
  57}
  58
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.