1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef INT_BLK_MQ_DEBUGFS_H |
3 | #define INT_BLK_MQ_DEBUGFS_H |
4 | |
5 | #ifdef CONFIG_BLK_DEBUG_FS |
6 | |
7 | #include <linux/seq_file.h> |
8 | |
9 | struct blk_mq_hw_ctx; |
10 | |
11 | struct blk_mq_debugfs_attr { |
12 | const char *name; |
13 | umode_t mode; |
14 | int (*show)(void *, struct seq_file *); |
15 | ssize_t (*write)(void *, const char __user *, size_t, loff_t *); |
16 | /* Set either .show or .seq_ops. */ |
17 | const struct seq_operations *seq_ops; |
18 | }; |
19 | |
20 | int __blk_mq_debugfs_rq_show(struct seq_file *m, struct request *rq); |
21 | int blk_mq_debugfs_rq_show(struct seq_file *m, void *v); |
22 | |
23 | void blk_mq_debugfs_register(struct request_queue *q); |
24 | void blk_mq_debugfs_register_hctx(struct request_queue *q, |
25 | struct blk_mq_hw_ctx *hctx); |
26 | void blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx *hctx); |
27 | void blk_mq_debugfs_register_hctxs(struct request_queue *q); |
28 | void blk_mq_debugfs_unregister_hctxs(struct request_queue *q); |
29 | |
30 | void blk_mq_debugfs_register_sched(struct request_queue *q); |
31 | void blk_mq_debugfs_unregister_sched(struct request_queue *q); |
32 | void blk_mq_debugfs_register_sched_hctx(struct request_queue *q, |
33 | struct blk_mq_hw_ctx *hctx); |
34 | void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hctx); |
35 | |
36 | void blk_mq_debugfs_register_rqos(struct rq_qos *rqos); |
37 | void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos); |
38 | #else |
39 | static inline void blk_mq_debugfs_register(struct request_queue *q) |
40 | { |
41 | } |
42 | |
43 | static inline void blk_mq_debugfs_register_hctx(struct request_queue *q, |
44 | struct blk_mq_hw_ctx *hctx) |
45 | { |
46 | } |
47 | |
48 | static inline void blk_mq_debugfs_unregister_hctx(struct blk_mq_hw_ctx *hctx) |
49 | { |
50 | } |
51 | |
52 | static inline void blk_mq_debugfs_register_hctxs(struct request_queue *q) |
53 | { |
54 | } |
55 | |
56 | static inline void blk_mq_debugfs_unregister_hctxs(struct request_queue *q) |
57 | { |
58 | } |
59 | |
60 | static inline void blk_mq_debugfs_register_sched(struct request_queue *q) |
61 | { |
62 | } |
63 | |
64 | static inline void blk_mq_debugfs_unregister_sched(struct request_queue *q) |
65 | { |
66 | } |
67 | |
68 | static inline void blk_mq_debugfs_register_sched_hctx(struct request_queue *q, |
69 | struct blk_mq_hw_ctx *hctx) |
70 | { |
71 | } |
72 | |
73 | static inline void blk_mq_debugfs_unregister_sched_hctx(struct blk_mq_hw_ctx *hctx) |
74 | { |
75 | } |
76 | |
77 | static inline void blk_mq_debugfs_register_rqos(struct rq_qos *rqos) |
78 | { |
79 | } |
80 | |
81 | static inline void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos) |
82 | { |
83 | } |
84 | #endif |
85 | |
86 | #ifdef CONFIG_BLK_DEBUG_FS_ZONED |
87 | int queue_zone_wlock_show(void *data, struct seq_file *m); |
88 | #else |
89 | static inline int queue_zone_wlock_show(void *data, struct seq_file *m) |
90 | { |
91 | return 0; |
92 | } |
93 | #endif |
94 | |
95 | #endif |
96 | |