13d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh#ifndef _FS_CEPH_DEBUGFS_H 23d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh#define _FS_CEPH_DEBUGFS_H 33d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh 43d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh#include "ceph_debug.h" 53d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh#include "types.h" 63d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh 73d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh#define CEPH_DEFINE_SHOW_FUNC(name) \ 83d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadehstatic int name##_open(struct inode *inode, struct file *file) \ 93d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh{ \ 103d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh struct seq_file *sf; \ 113d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh int ret; \ 123d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh \ 133d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh ret = single_open(file, name, NULL); \ 143d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh sf = file->private_data; \ 153d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh sf->private = inode->i_private; \ 163d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh return ret; \ 173d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh} \ 183d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh \ 193d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadehstatic const struct file_operations name##_fops = { \ 203d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh .open = name##_open, \ 213d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh .read = seq_read, \ 223d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh .llseek = seq_lseek, \ 233d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh .release = single_release, \ 243d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh}; 253d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh 263d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh/* debugfs.c */ 273d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadehextern int ceph_debugfs_init(void); 283d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadehextern void ceph_debugfs_cleanup(void); 293d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadehextern int ceph_debugfs_client_init(struct ceph_client *client); 303d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadehextern void ceph_debugfs_client_cleanup(struct ceph_client *client); 313d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh 323d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh#endif 333d14c5d2b6e15c21d8e5467dc62d33127c23a644Yehuda Sadeh 34