diff options
Diffstat (limited to 'Documentation/filesystems/debugfs.txt')
| -rw-r--r-- | Documentation/filesystems/debugfs.txt | 32 | 
1 files changed, 31 insertions, 1 deletions
diff --git a/Documentation/filesystems/debugfs.txt b/Documentation/filesystems/debugfs.txt index 742cc06e138..f04066a37f4 100644 --- a/Documentation/filesystems/debugfs.txt +++ b/Documentation/filesystems/debugfs.txt @@ -97,7 +97,8 @@ A read on the resulting file will yield either Y (for non-zero values) or  N, followed by a newline.  If written to, it will accept either upper- or  lower-case values, or 1 or 0.  Any other input will be silently ignored. -Finally, a block of arbitrary binary data can be exported with: +Another option is exporting a block of arbitrary binary data, with +this structure and function:      struct debugfs_blob_wrapper {  	void *data; @@ -115,6 +116,35 @@ can be used to export binary information, but there does not appear to be  any code which does so in the mainline.  Note that all files created with  debugfs_create_blob() are read-only. +If you want to dump a block of registers (something that happens quite +often during development, even if little such code reaches mainline. +Debugfs offers two functions: one to make a registers-only file, and +another to insert a register block in the middle of another sequential +file. + +    struct debugfs_reg32 { +	char *name; +	unsigned long offset; +    }; + +    struct debugfs_regset32 { +	struct debugfs_reg32 *regs; +	int nregs; +	void __iomem *base; +    }; + +    struct dentry *debugfs_create_regset32(const char *name, mode_t mode, +				     struct dentry *parent, +				     struct debugfs_regset32 *regset); + +    int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, +			 int nregs, void __iomem *base, char *prefix); + +The "base" argument may be 0, but you may want to build the reg32 array +using __stringify, and a number of register names (macros) are actually +byte offsets over a base for the register block. + +  There are a couple of other directory-oriented helper functions:      struct dentry *debugfs_rename(struct dentry *old_dir,   |