Need a way to manipulate vserver file attrs using a file descriptor
[linux-2.6.git] / include / linux / coda_proc.h
1 /*
2  * coda_statis.h
3  * 
4  * CODA operation statistics
5  *
6  * (c) March, 1998
7  * by Michihiro Kuramochi, Zhenyu Xia and Zhanyong Wan
8  * zhanyong.wan@yale.edu
9  *
10  */
11
12 #ifndef _CODA_PROC_H
13 #define _CODA_PROC_H
14
15 void coda_sysctl_init(void);
16 void coda_sysctl_clean(void);
17
18 #include <linux/sysctl.h>
19 #include <linux/coda_fs_i.h>
20 #include <linux/coda.h>
21
22 /* these four files are presented to show the result of the statistics:
23  *
24  *      /proc/fs/coda/vfs_stats
25  *                    cache_inv_stats
26  *
27  * these four files are presented to reset the statistics to 0:
28  *
29  *      /proc/sys/coda/vfs_stats
30  *                     cache_inv_stats
31  */
32
33 /* VFS operation statistics */
34 struct coda_vfs_stats 
35 {
36         /* file operations */
37         int open;
38         int flush;
39         int release;
40         int fsync;
41
42         /* dir operations */
43         int readdir;
44   
45         /* inode operations */
46         int create;
47         int lookup;
48         int link;
49         int unlink;
50         int symlink;
51         int mkdir;
52         int rmdir;
53         int rename;
54         int permission;
55
56         /* symlink operatoins*/
57         int follow_link;
58         int readlink;
59 };
60
61 /* cache invalidation statistics */
62 struct coda_cache_inv_stats
63 {
64         int flush;
65         int purge_user;
66         int zap_dir;
67         int zap_file;
68         int zap_vnode;
69         int purge_fid;
70         int replace;
71 };
72
73 /* these global variables hold the actual statistics data */
74 extern struct coda_vfs_stats            coda_vfs_stat;
75 extern struct coda_cache_inv_stats      coda_cache_inv_stat;
76
77 /* reset statistics to 0 */
78 void reset_coda_vfs_stats( void );
79 void reset_coda_cache_inv_stats( void );
80
81 /* like coda_dointvec, these functions are to be registered in the ctl_table
82  * data structure for /proc/sys/... files 
83  */
84 int do_reset_coda_vfs_stats( ctl_table * table, int write, struct file * filp,
85                              void __user * buffer, size_t * lenp, loff_t * ppos );
86 int do_reset_coda_cache_inv_stats( ctl_table * table, int write, 
87                                    struct file * filp, void __user * buffer, 
88                                    size_t * lenp, loff_t * ppos );
89
90 /* these functions are called to form the content of /proc/fs/coda/... files */
91 int coda_vfs_stats_get_info( char * buffer, char ** start, off_t offset,
92                              int length);
93 int coda_cache_inv_stats_get_info( char * buffer, char ** start, off_t offset,
94                                    int length);
95
96
97 #endif /* _CODA_PROC_H */