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

i915_deps.h (1218B)


      1/* SPDX-License-Identifier: MIT */
      2/*
      3 * Copyright © 2021 Intel Corporation
      4 */
      5
      6#ifndef _I915_DEPS_H_
      7#define _I915_DEPS_H_
      8
      9#include <linux/types.h>
     10
     11struct ttm_operation_ctx;
     12struct dma_fence;
     13struct dma_resv;
     14
     15/**
     16 * struct i915_deps - Collect dependencies into a single dma-fence
     17 * @single: Storage for pointer if the collection is a single fence.
     18 * @fences: Allocated array of fence pointers if more than a single fence;
     19 * otherwise points to the address of @single.
     20 * @num_deps: Current number of dependency fences.
     21 * @fences_size: Size of the @fences array in number of pointers.
     22 * @gfp: Allocation mode.
     23 */
     24struct i915_deps {
     25	struct dma_fence *single;
     26	struct dma_fence **fences;
     27	unsigned int num_deps;
     28	unsigned int fences_size;
     29	gfp_t gfp;
     30};
     31
     32void i915_deps_init(struct i915_deps *deps, gfp_t gfp);
     33
     34void i915_deps_fini(struct i915_deps *deps);
     35
     36int i915_deps_add_dependency(struct i915_deps *deps,
     37			     struct dma_fence *fence,
     38			     const struct ttm_operation_ctx *ctx);
     39
     40int i915_deps_add_resv(struct i915_deps *deps, struct dma_resv *resv,
     41		       const struct ttm_operation_ctx *ctx);
     42
     43int i915_deps_sync(const struct i915_deps *deps,
     44		   const struct ttm_operation_ctx *ctx);
     45#endif