cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dma-iommu.h (908B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef ASMARM_DMA_IOMMU_H
      3#define ASMARM_DMA_IOMMU_H
      4
      5#ifdef __KERNEL__
      6
      7#include <linux/mm_types.h>
      8#include <linux/scatterlist.h>
      9#include <linux/kref.h>
     10
     11struct dma_iommu_mapping {
     12	/* iommu specific data */
     13	struct iommu_domain	*domain;
     14
     15	unsigned long		**bitmaps;	/* array of bitmaps */
     16	unsigned int		nr_bitmaps;	/* nr of elements in array */
     17	unsigned int		extensions;
     18	size_t			bitmap_size;	/* size of a single bitmap */
     19	size_t			bits;		/* per bitmap */
     20	dma_addr_t		base;
     21
     22	spinlock_t		lock;
     23	struct kref		kref;
     24};
     25
     26struct dma_iommu_mapping *
     27arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, u64 size);
     28
     29void arm_iommu_release_mapping(struct dma_iommu_mapping *mapping);
     30
     31int arm_iommu_attach_device(struct device *dev,
     32					struct dma_iommu_mapping *mapping);
     33void arm_iommu_detach_device(struct device *dev);
     34
     35#endif /* __KERNEL__ */
     36#endif