2008-12-21 03:57:40 +03:00
/*
* Linux WiMAX
* Debugfs support
*
*
* Copyright ( C ) 2005 - 2006 Intel Corporation < linux - wimax @ intel . com >
* Inaky Perez - Gonzalez < inaky . perez - gonzalez @ intel . com >
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License version
* 2 as published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston , MA
* 02110 - 1301 , USA .
*/
# include <linux/debugfs.h>
# include <linux/wimax.h>
# include "wimax-internal.h"
# define D_SUBMODULE debugfs
# include "debug-levels.h"
# define __debugfs_register(prefix, name, parent) \
do { \
result = d_level_register_debugfs ( prefix , name , parent ) ; \
if ( result < 0 ) \
goto error ; \
} while ( 0 )
int wimax_debugfs_add ( struct wimax_dev * wimax_dev )
{
int result ;
struct net_device * net_dev = wimax_dev - > net_dev ;
struct device * dev = net_dev - > dev . parent ;
struct dentry * dentry ;
char buf [ 128 ] ;
snprintf ( buf , sizeof ( buf ) , " wimax:%s " , net_dev - > name ) ;
dentry = debugfs_create_dir ( buf , NULL ) ;
result = PTR_ERR ( dentry ) ;
if ( IS_ERR ( dentry ) ) {
if ( result = = - ENODEV )
result = 0 ; /* No debugfs support */
else
dev_err ( dev , " Can't create debugfs dentry: %d \n " ,
result ) ;
goto out ;
}
wimax_dev - > debugfs_dentry = dentry ;
__debugfs_register ( " wimax_dl_ " , debugfs , dentry ) ;
__debugfs_register ( " wimax_dl_ " , id_table , dentry ) ;
__debugfs_register ( " wimax_dl_ " , op_msg , dentry ) ;
__debugfs_register ( " wimax_dl_ " , op_reset , dentry ) ;
__debugfs_register ( " wimax_dl_ " , op_rfkill , dentry ) ;
2009-05-13 17:20:29 +04:00
__debugfs_register ( " wimax_dl_ " , op_state_get , dentry ) ;
2008-12-21 03:57:40 +03:00
__debugfs_register ( " wimax_dl_ " , stack , dentry ) ;
result = 0 ;
out :
return result ;
error :
debugfs_remove_recursive ( wimax_dev - > debugfs_dentry ) ;
return result ;
}
void wimax_debugfs_rm ( struct wimax_dev * wimax_dev )
{
debugfs_remove_recursive ( wimax_dev - > debugfs_dentry ) ;
}