11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * debugfs.h - a tiny little debug file system 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Copyright (C) 2004 Greg Kroah-Hartman <[email protected]> 51da177e4SLinus Torvalds * Copyright (C) 2004 IBM Inc. 61da177e4SLinus Torvalds * 71da177e4SLinus Torvalds * This program is free software; you can redistribute it and/or 81da177e4SLinus Torvalds * modify it under the terms of the GNU General Public License version 91da177e4SLinus Torvalds * 2 as published by the Free Software Foundation. 101da177e4SLinus Torvalds * 111da177e4SLinus Torvalds * debugfs is for people to use instead of /proc or /sys. 121da177e4SLinus Torvalds * See Documentation/DocBook/kernel-api for more details. 131da177e4SLinus Torvalds */ 141da177e4SLinus Torvalds 151da177e4SLinus Torvalds #ifndef _DEBUGFS_H_ 161da177e4SLinus Torvalds #define _DEBUGFS_H_ 171da177e4SLinus Torvalds 181da177e4SLinus Torvalds #include <linux/fs.h> 191da177e4SLinus Torvalds 20*a7a76cefSRoland Dreier #include <linux/types.h> 21*a7a76cefSRoland Dreier 22*a7a76cefSRoland Dreier struct file_operations; 23*a7a76cefSRoland Dreier 241da177e4SLinus Torvalds #if defined(CONFIG_DEBUG_FS) 251da177e4SLinus Torvalds struct dentry *debugfs_create_file(const char *name, mode_t mode, 261da177e4SLinus Torvalds struct dentry *parent, void *data, 271da177e4SLinus Torvalds struct file_operations *fops); 281da177e4SLinus Torvalds 291da177e4SLinus Torvalds struct dentry *debugfs_create_dir(const char *name, struct dentry *parent); 301da177e4SLinus Torvalds 311da177e4SLinus Torvalds void debugfs_remove(struct dentry *dentry); 321da177e4SLinus Torvalds 331da177e4SLinus Torvalds struct dentry *debugfs_create_u8(const char *name, mode_t mode, 341da177e4SLinus Torvalds struct dentry *parent, u8 *value); 351da177e4SLinus Torvalds struct dentry *debugfs_create_u16(const char *name, mode_t mode, 361da177e4SLinus Torvalds struct dentry *parent, u16 *value); 371da177e4SLinus Torvalds struct dentry *debugfs_create_u32(const char *name, mode_t mode, 381da177e4SLinus Torvalds struct dentry *parent, u32 *value); 391da177e4SLinus Torvalds struct dentry *debugfs_create_bool(const char *name, mode_t mode, 401da177e4SLinus Torvalds struct dentry *parent, u32 *value); 411da177e4SLinus Torvalds 421da177e4SLinus Torvalds #else 43*a7a76cefSRoland Dreier 44*a7a76cefSRoland Dreier #include <linux/err.h> 45*a7a76cefSRoland Dreier 461da177e4SLinus Torvalds /* 471da177e4SLinus Torvalds * We do not return NULL from these functions if CONFIG_DEBUG_FS is not enabled 481da177e4SLinus Torvalds * so users have a chance to detect if there was a real error or not. We don't 491da177e4SLinus Torvalds * want to duplicate the design decision mistakes of procfs and devfs again. 501da177e4SLinus Torvalds */ 511da177e4SLinus Torvalds 521da177e4SLinus Torvalds static inline struct dentry *debugfs_create_file(const char *name, mode_t mode, 531da177e4SLinus Torvalds struct dentry *parent, 541da177e4SLinus Torvalds void *data, 551da177e4SLinus Torvalds struct file_operations *fops) 561da177e4SLinus Torvalds { 571da177e4SLinus Torvalds return ERR_PTR(-ENODEV); 581da177e4SLinus Torvalds } 591da177e4SLinus Torvalds 601da177e4SLinus Torvalds static inline struct dentry *debugfs_create_dir(const char *name, 611da177e4SLinus Torvalds struct dentry *parent) 621da177e4SLinus Torvalds { 631da177e4SLinus Torvalds return ERR_PTR(-ENODEV); 641da177e4SLinus Torvalds } 651da177e4SLinus Torvalds 661da177e4SLinus Torvalds static inline void debugfs_remove(struct dentry *dentry) 671da177e4SLinus Torvalds { } 681da177e4SLinus Torvalds 691da177e4SLinus Torvalds static inline struct dentry *debugfs_create_u8(const char *name, mode_t mode, 701da177e4SLinus Torvalds struct dentry *parent, 711da177e4SLinus Torvalds u8 *value) 721da177e4SLinus Torvalds { 731da177e4SLinus Torvalds return ERR_PTR(-ENODEV); 741da177e4SLinus Torvalds } 751da177e4SLinus Torvalds 761da177e4SLinus Torvalds static inline struct dentry *debugfs_create_u16(const char *name, mode_t mode, 771da177e4SLinus Torvalds struct dentry *parent, 781da177e4SLinus Torvalds u8 *value) 791da177e4SLinus Torvalds { 801da177e4SLinus Torvalds return ERR_PTR(-ENODEV); 811da177e4SLinus Torvalds } 821da177e4SLinus Torvalds 831da177e4SLinus Torvalds static inline struct dentry *debugfs_create_u32(const char *name, mode_t mode, 841da177e4SLinus Torvalds struct dentry *parent, 851da177e4SLinus Torvalds u8 *value) 861da177e4SLinus Torvalds { 871da177e4SLinus Torvalds return ERR_PTR(-ENODEV); 881da177e4SLinus Torvalds } 891da177e4SLinus Torvalds 901da177e4SLinus Torvalds static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, 911da177e4SLinus Torvalds struct dentry *parent, 921da177e4SLinus Torvalds u8 *value) 931da177e4SLinus Torvalds { 941da177e4SLinus Torvalds return ERR_PTR(-ENODEV); 951da177e4SLinus Torvalds } 961da177e4SLinus Torvalds 971da177e4SLinus Torvalds #endif 981da177e4SLinus Torvalds 991da177e4SLinus Torvalds #endif 100