xref: /linux/kernel/irq/debugfs.h (revision 0eaed89c18aeedf0898baf2dbf5ff027c6795152)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _KERNEL_IRQ_DEBUGFS_H
3 #define _KERNEL_IRQ_DEBUGFS_H
4 
5 #ifdef CONFIG_GENERIC_IRQ_DEBUGFS
6 #include <linux/debugfs.h>
7 
8 struct irq_bit_descr {
9 	unsigned int	mask;
10 	char		*name;
11 };
12 
13 #define BIT_MASK_DESCR(m)	{ .mask = m, .name = #m }
14 
15 void irq_debug_show_bits(struct seq_file *m, int ind, unsigned int state,
16 			 const struct irq_bit_descr *sd, int size);
17 
18 void irq_add_debugfs_entry(unsigned int irq, struct irq_desc *desc);
19 static inline void irq_remove_debugfs_entry(struct irq_desc *desc)
20 {
21 	debugfs_remove(desc->debugfs_file);
22 	kfree(desc->dev_name);
23 }
24 void irq_debugfs_copy_devname(int irq, struct device *dev);
25 # ifdef CONFIG_IRQ_DOMAIN
26 void irq_domain_debugfs_init(struct dentry *root);
27 # else
28 static inline void irq_domain_debugfs_init(struct dentry *root)
29 {
30 }
31 # endif
32 #else /* CONFIG_GENERIC_IRQ_DEBUGFS */
33 static inline void irq_add_debugfs_entry(unsigned int irq, struct irq_desc *d)
34 {
35 }
36 static inline void irq_remove_debugfs_entry(struct irq_desc *d)
37 {
38 }
39 static inline void irq_debugfs_copy_devname(int irq, struct device *dev)
40 {
41 }
42 #endif /* CONFIG_GENERIC_IRQ_DEBUGFS */
43 
44 #endif
45