00001
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _RRES_PROC_FS_H_
00031 #define _RRES_PROC_FS_H_
00032
00033 #include <linux/aquosa/rres_config.h>
00034
00035 #ifdef CONFIG_OC_RRES_PROC
00036 #include <linux/proc_fs.h>
00037
00038 #define OC_PROC_ROOT "aquosa"
00039
00040
00041
00048 #define PROC_PRINT_VARS \
00049 off_t pos = 0; \
00050 off_t begin = 0; \
00051 int len = 0
00052
00064 #define PROC_PRINT(fmt,args...) \
00065 do { \
00066 len = scnprintf(page + pos - begin, count - (pos - begin), fmt, ##args); \
00067 pos += len; \
00068 if (pos <= off) \
00069 begin = pos; \
00070 if (pos - begin == count) \
00071 goto done; \
00072 else if (pos - begin > count) { \
00073 qos_log_crit("THIS SHOULD NEVER HAPPEN: pos=%lu, begin=%lu, count=%d", pos, begin, count); \
00074 goto done; \
00075 } \
00076 } while (0)
00077
00079 #define PROC_PRINT_BREAK \
00080 do { \
00081 *eof = 1; \
00082 goto done; \
00083 } while (0)
00084
00092 #define PROC_PRINT_DONE \
00093 do { \
00094 *eof = 1; \
00095 done: \
00096 *start = page + (off - begin); \
00097 } while (0)
00098
00099 #define PROC_PRINT_END do { return pos - off; } while (0)
00100
00101
00102
00103 #endif
00104
00105 int rres_proc_register(void);
00106 void rres_proc_unregister(void);
00107
00109 extern struct proc_dir_entry *qres_proc_root;
00110
00111 #endif // _RRES_PROC_FS_H_
00112