/*********************************************************************1*2* Filename: irproc.c3* Version: 1.04* Description: Various entries in the /proc file system5* Status: Experimental.6* Author: Thomas Davis, <[email protected]>7* Created at: Sat Feb 21 21:33:24 19988* Modified at: Sun Nov 14 08:54:54 19999* Modified by: Dag Brattli <[email protected]>10*11* Copyright (c) 1998-1999, Dag Brattli <[email protected]>12* Copyright (c) 1998, Thomas Davis, <[email protected]>,13* All Rights Reserved.14*15* This program is free software; you can redistribute it and/or16* modify it under the terms of the GNU General Public License as17* published by the Free Software Foundation; either version 2 of18* the License, or (at your option) any later version.19*20* I, Thomas Davis, provide no warranty for any of this software.21* This material is provided "AS-IS" and at no charge.22*23********************************************************************/2425#include <linux/miscdevice.h>26#include <linux/proc_fs.h>27#include <linux/seq_file.h>28#include <linux/module.h>29#include <linux/init.h>30#include <net/net_namespace.h>3132#include <net/irda/irda.h>33#include <net/irda/irlap.h>34#include <net/irda/irlmp.h>3536extern const struct file_operations discovery_seq_fops;37extern const struct file_operations irlap_seq_fops;38extern const struct file_operations irlmp_seq_fops;39extern const struct file_operations irttp_seq_fops;40extern const struct file_operations irias_seq_fops;4142struct irda_entry {43const char *name;44const struct file_operations *fops;45};4647struct proc_dir_entry *proc_irda;48EXPORT_SYMBOL(proc_irda);4950static const struct irda_entry irda_dirs[] = {51{"discovery", &discovery_seq_fops},52{"irttp", &irttp_seq_fops},53{"irlmp", &irlmp_seq_fops},54{"irlap", &irlap_seq_fops},55{"irias", &irias_seq_fops},56};5758/*59* Function irda_proc_register (void)60*61* Register irda entry in /proc file system62*63*/64void __init irda_proc_register(void)65{66int i;6768proc_irda = proc_mkdir("irda", init_net.proc_net);69if (proc_irda == NULL)70return;7172for (i = 0; i < ARRAY_SIZE(irda_dirs); i++)73(void) proc_create(irda_dirs[i].name, 0, proc_irda,74irda_dirs[i].fops);75}7677/*78* Function irda_proc_unregister (void)79*80* Unregister irda entry in /proc file system81*82*/83void irda_proc_unregister(void)84{85int i;8687if (proc_irda) {88for (i=0; i<ARRAY_SIZE(irda_dirs); i++)89remove_proc_entry(irda_dirs[i].name, proc_irda);9091remove_proc_entry("irda", init_net.proc_net);92proc_irda = NULL;93}94}9596979899