History

debugfs: helper for decimal challenged

Allows debugfs helper functions to have a hex output, rather than just decimal

Robin Getz committed 19 years ago

Commit 2ebefc51 parent d7165512 files · +63 −0Browse files

Unified · Split

2 files
  1. fs/debugfs/file.c +36 −0
  2. include/linux/debugfs.h +27 −0
fs/debugfs/file.c+36−0
@@ -221,6 +221,42 @@ struct dentry *debugfs_create_u64(const char *name, mode_t mode, · 220 unmodified lines
221221 }
222222 EXPORT_SYMBOL_GPL(debugfs_create_u64);
223223
224+DEFINE_SIMPLE_ATTRIBUTE(fops_x8, debugfs_u8_get, debugfs_u8_set, "0x%02llx\n");
225+
226+DEFINE_SIMPLE_ATTRIBUTE(fops_x16, debugfs_u16_get, debugfs_u16_set, "0x%04llx\n");
227+
228+DEFINE_SIMPLE_ATTRIBUTE(fops_x32, debugfs_u32_get, debugfs_u32_set, "0x%08llx\n");
229+
230+/**
231+ * debugfs_create_x8 - create a debugfs file that is used to read and write an unsigned 8-bit value
232+ * debugfs_create_x16 - create a debugfs file that is used to read and write an unsigned 16-bit value
233+ * debugfs_create_x32 - create a debugfs file that is used to read and write an unsigned 32-bit value
234+ *
235+ * These functions are exactly the same as the above functions, (but use a hex
236+ * output for the decimal challenged) for details look at the above unsigned
237+ * decimal functions.
238+ */
239+struct dentry *debugfs_create_x8(const char *name, mode_t mode,
240+ struct dentry *parent, u8 *value)
241+{
242+ return debugfs_create_file(name, mode, parent, value, &fops_x8);
243+}
244+EXPORT_SYMBOL_GPL(debugfs_create_x8);
245+
246+struct dentry *debugfs_create_x16(const char *name, mode_t mode,
247+ struct dentry *parent, u16 *value)
248+{
249+ return debugfs_create_file(name, mode, parent, value, &fops_x16);
250+}
251+EXPORT_SYMBOL_GPL(debugfs_create_x16);
252+
253+struct dentry *debugfs_create_x32(const char *name, mode_t mode,
254+ struct dentry *parent, u32 *value)
255+{
256+ return debugfs_create_file(name, mode, parent, value, &fops_x32);
257+}
258+EXPORT_SYMBOL_GPL(debugfs_create_x32);
259+
224260 static ssize_t read_file_bool(struct file *file, char __user *user_buf,
225261 size_t count, loff_t *ppos)
226262 {
include/linux/debugfs.h+27−0
@@ -49,6 +49,12 @@ struct dentry *debugfs_create_u32(const char *name, mode_t mode, · 48 unmodified lines
4949 struct dentry *parent, u32 *value);
5050 struct dentry *debugfs_create_u64(const char *name, mode_t mode,
5151 struct dentry *parent, u64 *value);
52+struct dentry *debugfs_create_x8(const char *name, mode_t mode,
53+ struct dentry *parent, u8 *value);
54+struct dentry *debugfs_create_x16(const char *name, mode_t mode,
55+ struct dentry *parent, u16 *value);
56+struct dentry *debugfs_create_x32(const char *name, mode_t mode,
57+ struct dentry *parent, u32 *value);
5258 struct dentry *debugfs_create_bool(const char *name, mode_t mode,
5359 struct dentry *parent, u32 *value);
5460
@@ -122,6 +128,27 @@ static inline struct dentry *debugfs_create_u64(const char *name, mode_t mode, · 67 unmodified lines
122128 return ERR_PTR(-ENODEV);
123129 }
124130
131+static inline struct dentry *debugfs_create_x8(const char *name, mode_t mode,
132+ struct dentry *parent,
133+ u8 *value)
134+{
135+ return ERR_PTR(-ENODEV);
136+}
137+
138+static inline struct dentry *debugfs_create_x16(const char *name, mode_t mode,
139+ struct dentry *parent,
140+ u16 *value)
141+{
142+ return ERR_PTR(-ENODEV);
143+}
144+
145+static inline struct dentry *debugfs_create_x32(const char *name, mode_t mode,
146+ struct dentry *parent,
147+ u32 *value)
148+{
149+ return ERR_PTR(-ENODEV);
150+}
151+
125152 static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode,
126153 struct dentry *parent,
127154 u32 *value)