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-heap.h (1616B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * DMABUF Heaps Allocation Infrastructure
      4 *
      5 * Copyright (C) 2011 Google, Inc.
      6 * Copyright (C) 2019 Linaro Ltd.
      7 */
      8
      9#ifndef _DMA_HEAPS_H
     10#define _DMA_HEAPS_H
     11
     12#include <linux/cdev.h>
     13#include <linux/types.h>
     14
     15struct dma_heap;
     16
     17/**
     18 * struct dma_heap_ops - ops to operate on a given heap
     19 * @allocate:		allocate dmabuf and return struct dma_buf ptr
     20 *
     21 * allocate returns dmabuf on success, ERR_PTR(-errno) on error.
     22 */
     23struct dma_heap_ops {
     24	struct dma_buf *(*allocate)(struct dma_heap *heap,
     25				    unsigned long len,
     26				    unsigned long fd_flags,
     27				    unsigned long heap_flags);
     28};
     29
     30/**
     31 * struct dma_heap_export_info - information needed to export a new dmabuf heap
     32 * @name:	used for debugging/device-node name
     33 * @ops:	ops struct for this heap
     34 * @priv:	heap exporter private data
     35 *
     36 * Information needed to export a new dmabuf heap.
     37 */
     38struct dma_heap_export_info {
     39	const char *name;
     40	const struct dma_heap_ops *ops;
     41	void *priv;
     42};
     43
     44/**
     45 * dma_heap_get_drvdata() - get per-heap driver data
     46 * @heap: DMA-Heap to retrieve private data for
     47 *
     48 * Returns:
     49 * The per-heap data for the heap.
     50 */
     51void *dma_heap_get_drvdata(struct dma_heap *heap);
     52
     53/**
     54 * dma_heap_get_name() - get heap name
     55 * @heap: DMA-Heap to retrieve private data for
     56 *
     57 * Returns:
     58 * The char* for the heap name.
     59 */
     60const char *dma_heap_get_name(struct dma_heap *heap);
     61
     62/**
     63 * dma_heap_add - adds a heap to dmabuf heaps
     64 * @exp_info:		information needed to register this heap
     65 */
     66struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info);
     67
     68#endif /* _DMA_HEAPS_H */