linux/include/trace/events/intel_iommu.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Intel IOMMU trace support
   4 *
   5 * Copyright (C) 2019 Intel Corporation
   6 *
   7 * Author: Lu Baolu <baolu.lu@linux.intel.com>
   8 */
   9#ifdef CONFIG_INTEL_IOMMU
  10#undef TRACE_SYSTEM
  11#define TRACE_SYSTEM intel_iommu
  12
  13#if !defined(_TRACE_INTEL_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ)
  14#define _TRACE_INTEL_IOMMU_H
  15
  16#include <linux/tracepoint.h>
  17#include <linux/intel-iommu.h>
  18
  19DECLARE_EVENT_CLASS(dma_map,
  20        TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
  21                 size_t size),
  22
  23        TP_ARGS(dev, dev_addr, phys_addr, size),
  24
  25        TP_STRUCT__entry(
  26                __string(dev_name, dev_name(dev))
  27                __field(dma_addr_t, dev_addr)
  28                __field(phys_addr_t, phys_addr)
  29                __field(size_t, size)
  30        ),
  31
  32        TP_fast_assign(
  33                __assign_str(dev_name, dev_name(dev));
  34                __entry->dev_addr = dev_addr;
  35                __entry->phys_addr = phys_addr;
  36                __entry->size = size;
  37        ),
  38
  39        TP_printk("dev=%s dev_addr=0x%llx phys_addr=0x%llx size=%zu",
  40                  __get_str(dev_name),
  41                  (unsigned long long)__entry->dev_addr,
  42                  (unsigned long long)__entry->phys_addr,
  43                  __entry->size)
  44);
  45
  46DEFINE_EVENT(dma_map, map_single,
  47        TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
  48                 size_t size),
  49        TP_ARGS(dev, dev_addr, phys_addr, size)
  50);
  51
  52DEFINE_EVENT(dma_map, map_sg,
  53        TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
  54                 size_t size),
  55        TP_ARGS(dev, dev_addr, phys_addr, size)
  56);
  57
  58DEFINE_EVENT(dma_map, bounce_map_single,
  59        TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
  60                 size_t size),
  61        TP_ARGS(dev, dev_addr, phys_addr, size)
  62);
  63
  64DECLARE_EVENT_CLASS(dma_unmap,
  65        TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
  66
  67        TP_ARGS(dev, dev_addr, size),
  68
  69        TP_STRUCT__entry(
  70                __string(dev_name, dev_name(dev))
  71                __field(dma_addr_t, dev_addr)
  72                __field(size_t, size)
  73        ),
  74
  75        TP_fast_assign(
  76                __assign_str(dev_name, dev_name(dev));
  77                __entry->dev_addr = dev_addr;
  78                __entry->size = size;
  79        ),
  80
  81        TP_printk("dev=%s dev_addr=0x%llx size=%zu",
  82                  __get_str(dev_name),
  83                  (unsigned long long)__entry->dev_addr,
  84                  __entry->size)
  85);
  86
  87DEFINE_EVENT(dma_unmap, unmap_single,
  88        TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
  89        TP_ARGS(dev, dev_addr, size)
  90);
  91
  92DEFINE_EVENT(dma_unmap, unmap_sg,
  93        TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
  94        TP_ARGS(dev, dev_addr, size)
  95);
  96
  97DEFINE_EVENT(dma_unmap, bounce_unmap_single,
  98        TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
  99        TP_ARGS(dev, dev_addr, size)
 100);
 101
 102#endif /* _TRACE_INTEL_IOMMU_H */
 103
 104/* This part must be outside protection */
 105#include <trace/define_trace.h>
 106#endif /* CONFIG_INTEL_IOMMU */
 107