Home | History | Annotate | Line # | Download | only in gt
      1 /*	$NetBSD: debugfs_gt.h,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
      2 
      3 /* SPDX-License-Identifier: MIT */
      4 /*
      5  * Copyright  2019 Intel Corporation
      6  */
      7 
      8 #ifndef DEBUGFS_GT_H
      9 #define DEBUGFS_GT_H
     10 
     11 #include <linux/file.h>
     12 
     13 struct intel_gt;
     14 
     15 #define DEFINE_GT_DEBUGFS_ATTRIBUTE(__name)				\
     16 	static int __name ## _open(struct inode *inode, struct file *file) \
     17 {									\
     18 	return single_open(file, __name ## _show, inode->i_private);	\
     19 }									\
     20 static const struct file_operations __name ## _fops = {			\
     21 	.owner = THIS_MODULE,						\
     22 	.open = __name ## _open,					\
     23 	.read = seq_read,						\
     24 	.llseek = seq_lseek,						\
     25 	.release = single_release,					\
     26 }
     27 
     28 void debugfs_gt_register(struct intel_gt *gt);
     29 
     30 struct debugfs_gt_file {
     31 	const char *name;
     32 	const struct file_operations *fops;
     33 	bool (*eval)(const struct intel_gt *gt);
     34 };
     35 
     36 void debugfs_gt_register_files(struct intel_gt *gt,
     37 			       struct dentry *root,
     38 			       const struct debugfs_gt_file *files,
     39 			       unsigned long count);
     40 
     41 #endif /* DEBUGFS_GT_H */
     42