drivers/gpu/drm/amd/amdkfd/kfd_events.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/amdkfd/kfd_events.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/amdkfd/kfd_events.h
Extension
.h
Size
2924 bytes
Lines
92
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct kfd_event {
	u32 event_id;
	u64 event_age;

	bool signaled;
	bool auto_reset;

	int type;

	spinlock_t lock;
	wait_queue_head_t wq; /* List of event waiters. */

	/* Only for signal events. */
	uint64_t __user *user_signal_address;

	/* type specific data */
	union {
		struct kfd_hsa_memory_exception_data memory_exception_data;
		struct kfd_hsa_hw_exception_data hw_exception_data;
	};

	struct rcu_head rcu; /* for asynchronous kfree_rcu */
};

#define KFD_EVENT_TIMEOUT_IMMEDIATE 0
#define KFD_EVENT_TIMEOUT_INFINITE 0xFFFFFFFFu

/* Matching HSA_EVENTTYPE */
#define KFD_EVENT_TYPE_SIGNAL 0
#define KFD_EVENT_TYPE_HW_EXCEPTION 3
#define KFD_EVENT_TYPE_DEBUG 5
#define KFD_EVENT_TYPE_MEMORY 8

extern void kfd_signal_event_interrupt(u32 pasid, uint32_t partial_id,
				       uint32_t valid_id_bits,
				       bool signal_mailbox_updated);

#endif

Annotation

Implementation Notes