brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 28a0d7c Raw
44 lines · c
1/* SPDX-License-Identifier: MIT */2/*3 * Copyright © 2023 Intel Corporation4 */5 6#ifndef _XE_ENGINE_CLASS_SYSFS_H_7#define _XE_ENGINE_CLASS_SYSFS_H_8 9#include <linux/kobject.h>10 11struct xe_gt;12struct xe_hw_engine_class_intf;13 14int xe_hw_engine_class_sysfs_init(struct xe_gt *gt);15bool xe_hw_engine_timeout_in_range(u64 timeout, u64 min, u64 max);16 17/**18 * struct kobj_eclass - A eclass's kobject struct that connects the kobject and the19 * eclass.20 *21 * When dealing with multiple eclass, this struct helps to understand which eclass22 * needs to be addressed on a given sysfs call.23 */24struct kobj_eclass {25	/** @base: The actual kobject */26	struct kobject base;27	/** @eclass: A pointer to the hw engine class interface */28	struct xe_hw_engine_class_intf *eclass;29	/** @xe: A pointer to the xe device */30	struct xe_device *xe;31};32 33static inline struct xe_hw_engine_class_intf *kobj_to_eclass(struct kobject *kobj)34{35	return container_of(kobj, struct kobj_eclass, base)->eclass;36}37 38static inline struct xe_device *kobj_to_xe(struct kobject *kobj)39{40	return container_of(kobj, struct kobj_eclass, base)->xe;41}42 43#endif44