drivers/misc/ocxl/trace.h

Source file repositories/reference/linux-study-clean/drivers/misc/ocxl/trace.h

File Facts

System
Linux kernel
Corpus path
drivers/misc/ocxl/trace.h
Extension
.h
Size
4577 bytes
Lines
243
Domain
Driver Families
Bucket
drivers/misc
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

// Copyright 2017 IBM Corp.
#undef TRACE_SYSTEM
#define TRACE_SYSTEM ocxl

#if !defined(_TRACE_OCXL_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_OCXL_H

#include <linux/tracepoint.h>


TRACE_EVENT(ocxl_mmu_notifier_range,
	TP_PROTO(unsigned long start, unsigned long end, unsigned long pidr),
	TP_ARGS(start, end, pidr),

	TP_STRUCT__entry(
		__field(unsigned long, start)
		__field(unsigned long, end)
		__field(unsigned long, pidr)
	),

	TP_fast_assign(
		__entry->start = start;
		__entry->end = end;
		__entry->pidr = pidr;
	),

	TP_printk("start=0x%lx end=0x%lx pidr=0x%lx",
		__entry->start,
		__entry->end,
		__entry->pidr
	)
);

TRACE_EVENT(ocxl_init_mmu_notifier,
	TP_PROTO(int pasid, unsigned long pidr),
	TP_ARGS(pasid, pidr),

	TP_STRUCT__entry(
		__field(int, pasid)
		__field(unsigned long, pidr)
	),

	TP_fast_assign(
		__entry->pasid = pasid;
		__entry->pidr = pidr;
	),

	TP_printk("pasid=%d, pidr=0x%lx",
		__entry->pasid,
		__entry->pidr
	)
);

TRACE_EVENT(ocxl_release_mmu_notifier,
	TP_PROTO(int pasid, unsigned long pidr),
	TP_ARGS(pasid, pidr),

	TP_STRUCT__entry(
		__field(int, pasid)
		__field(unsigned long, pidr)
	),

	TP_fast_assign(
		__entry->pasid = pasid;
		__entry->pidr = pidr;
	),

	TP_printk("pasid=%d, pidr=0x%lx",
		__entry->pasid,
		__entry->pidr
	)
);

DECLARE_EVENT_CLASS(ocxl_context,
	TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr),
	TP_ARGS(pid, spa, pasid, pidr, tidr),

	TP_STRUCT__entry(
		__field(pid_t, pid)
		__field(void*, spa)
		__field(int, pasid)
		__field(u32, pidr)
		__field(u32, tidr)
	),

	TP_fast_assign(
		__entry->pid = pid;
		__entry->spa = spa;
		__entry->pasid = pasid;
		__entry->pidr = pidr;

Annotation

Implementation Notes