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