From 91c57cf3ca2f713b59c36cf7602a6d6864a1df66 Mon Sep 17 00:00:00 2001 From: Inaky Perez-Gonzalez Date: Sat, 20 Dec 2008 16:57:39 -0800 Subject: [PATCH] --- yaml --- r: 127299 b: refs/heads/master c: 5e07878787ad07361571150230cc3a8d522ae046 h: refs/heads/master i: 127297: dd6c72eca340629d021c6fab5b68804ccb880a78 127295: a8b16c745c28b132459895ca126e5be4b5b10e1e v: v3 --- [refs] | 2 +- trunk/fs/debugfs/file.c | 32 ++++++++++++++++++++++++++++++++ trunk/include/linux/debugfs.h | 2 ++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f1771466c485..84592396984e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 34c65d82e02147331701c7795e3144d511adf4e9 +refs/heads/master: 5e07878787ad07361571150230cc3a8d522ae046 diff --git a/trunk/fs/debugfs/file.c b/trunk/fs/debugfs/file.c index 159a5efd6a8a..33a90120f6ad 100644 --- a/trunk/fs/debugfs/file.c +++ b/trunk/fs/debugfs/file.c @@ -294,6 +294,38 @@ struct dentry *debugfs_create_x32(const char *name, mode_t mode, } EXPORT_SYMBOL_GPL(debugfs_create_x32); + +static int debugfs_size_t_set(void *data, u64 val) +{ + *(size_t *)data = val; + return 0; +} +static int debugfs_size_t_get(void *data, u64 *val) +{ + *val = *(size_t *)data; + return 0; +} +DEFINE_SIMPLE_ATTRIBUTE(fops_size_t, debugfs_size_t_get, debugfs_size_t_set, + "%llu\n"); /* %llu and %zu are more or less the same */ + +/** + * debugfs_create_size_t - create a debugfs file that is used to read and write an size_t value + * @name: a pointer to a string containing the name of the file to create. + * @mode: the permission that the file should have + * @parent: a pointer to the parent dentry for this file. This should be a + * directory dentry if set. If this parameter is %NULL, then the + * file will be created in the root of the debugfs filesystem. + * @value: a pointer to the variable that the file should read to and write + * from. + */ +struct dentry *debugfs_create_size_t(const char *name, mode_t mode, + struct dentry *parent, size_t *value) +{ + return debugfs_create_file(name, mode, parent, value, &fops_size_t); +} +EXPORT_SYMBOL_GPL(debugfs_create_size_t); + + static ssize_t read_file_bool(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) { diff --git a/trunk/include/linux/debugfs.h b/trunk/include/linux/debugfs.h index e1a6c046cea3..23936b16426b 100644 --- a/trunk/include/linux/debugfs.h +++ b/trunk/include/linux/debugfs.h @@ -63,6 +63,8 @@ struct dentry *debugfs_create_x16(const char *name, mode_t mode, struct dentry *parent, u16 *value); struct dentry *debugfs_create_x32(const char *name, mode_t mode, struct dentry *parent, u32 *value); +struct dentry *debugfs_create_size_t(const char *name, mode_t mode, + struct dentry *parent, size_t *value); struct dentry *debugfs_create_bool(const char *name, mode_t mode, struct dentry *parent, u32 *value);