1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2022 Intel Corporation
4  */
5 
6 #ifndef __SYSFS_GT_H__
7 #define __SYSFS_GT_H__
8 
9 #include <linux/ctype.h>
10 #include <linux/kobject.h>
11 
12 #include "i915_gem.h" /* GEM_BUG_ON() */
13 #include "intel_gt_types.h"
14 
15 struct intel_gt;
16 
17 bool is_object_gt(struct kobject *kobj);
18 
19 struct drm_i915_private *kobj_to_i915(struct kobject *kobj);
20 
21 struct kobject *
22 intel_gt_create_kobj(struct intel_gt *gt,
23 		     struct kobject *dir,
24 		     const char *name);
25 
26 static inline struct intel_gt *kobj_to_gt(struct kobject *kobj)
27 {
28 	return container_of(kobj, struct intel_gt, sysfs_gt);
29 }
30 
31 void intel_gt_sysfs_register(struct intel_gt *gt);
32 void intel_gt_sysfs_unregister(struct intel_gt *gt);
33 struct intel_gt *intel_gt_sysfs_get_drvdata(struct device *dev,
34 					    const char *name);
35 
36 #endif /* SYSFS_GT_H */
37