linux/net/irda/irproc.c
<<
>>
Prefs
   1/*********************************************************************
   2 *
   3 * Filename:      irproc.c
   4 * Version:       1.0
   5 * Description:   Various entries in the /proc file system
   6 * Status:        Experimental.
   7 * Author:        Thomas Davis, <ratbert@radiks.net>
   8 * Created at:    Sat Feb 21 21:33:24 1998
   9 * Modified at:   Sun Nov 14 08:54:54 1999
  10 * Modified by:   Dag Brattli <dagb@cs.uit.no>
  11 *
  12 *     Copyright (c) 1998-1999, Dag Brattli <dagb@cs.uit.no>
  13 *     Copyright (c) 1998, Thomas Davis, <ratbert@radiks.net>,
  14 *     All Rights Reserved.
  15 *
  16 *     This program is free software; you can redistribute it and/or
  17 *     modify it under the terms of the GNU General Public License as
  18 *     published by the Free Software Foundation; either version 2 of
  19 *     the License, or (at your option) any later version.
  20 *
  21 *     I, Thomas Davis, provide no warranty for any of this software.
  22 *     This material is provided "AS-IS" and at no charge.
  23 *
  24 ********************************************************************/
  25
  26#include <linux/miscdevice.h>
  27#include <linux/proc_fs.h>
  28#include <linux/seq_file.h>
  29#include <linux/module.h>
  30#include <linux/init.h>
  31#include <net/net_namespace.h>
  32
  33#include <net/irda/irda.h>
  34#include <net/irda/irlap.h>
  35#include <net/irda/irlmp.h>
  36
  37extern struct file_operations discovery_seq_fops;
  38extern struct file_operations irlap_seq_fops;
  39extern struct file_operations irlmp_seq_fops;
  40extern struct file_operations irttp_seq_fops;
  41extern struct file_operations irias_seq_fops;
  42
  43struct irda_entry {
  44        const char *name;
  45        struct file_operations *fops;
  46};
  47
  48struct proc_dir_entry *proc_irda;
  49EXPORT_SYMBOL(proc_irda);
  50
  51static struct irda_entry irda_dirs[] = {
  52        {"discovery",   &discovery_seq_fops},
  53        {"irttp",       &irttp_seq_fops},
  54        {"irlmp",       &irlmp_seq_fops},
  55        {"irlap",       &irlap_seq_fops},
  56        {"irias",       &irias_seq_fops},
  57};
  58
  59/*
  60 * Function irda_proc_register (void)
  61 *
  62 *    Register irda entry in /proc file system
  63 *
  64 */
  65void __init irda_proc_register(void)
  66{
  67        int i;
  68        struct proc_dir_entry *d;
  69
  70        proc_irda = proc_mkdir("irda", init_net.proc_net);
  71        if (proc_irda == NULL)
  72                return;
  73
  74        for (i = 0; i < ARRAY_SIZE(irda_dirs); i++)
  75                d = proc_create(irda_dirs[i].name, 0, proc_irda,
  76                                irda_dirs[i].fops);
  77}
  78
  79/*
  80 * Function irda_proc_unregister (void)
  81 *
  82 *    Unregister irda entry in /proc file system
  83 *
  84 */
  85void irda_proc_unregister(void)
  86{
  87        int i;
  88
  89        if (proc_irda) {
  90                for (i=0; i<ARRAY_SIZE(irda_dirs); i++)
  91                        remove_proc_entry(irda_dirs[i].name, proc_irda);
  92
  93                remove_proc_entry("irda", init_net.proc_net);
  94                proc_irda = NULL;
  95        }
  96}
  97
  98
  99