XenevaOS
Loading...
Searching...
No Matches
dma-fence-array.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * fence-array: aggregates fence to be waited together
4 *
5 * Copyright (C) 2016 Collabora Ltd
6 * Copyright (C) 2016 Advanced Micro Devices, Inc.
7 * Authors:
8 * Gustavo Padovan <gustavo@padovan.org>
9 * Christian König <christian.koenig@amd.com>
10 */
11
12#ifndef __LINUX_DMA_FENCE_ARRAY_H
13#define __LINUX_DMA_FENCE_ARRAY_H
14
15#include <linux/dma-fence.h>
16#include <linux/irq_work.h>
17
27
49
57static inline struct dma_fence_array *
58to_dma_fence_array(struct dma_fence *fence)
59{
60 if (!fence || !dma_fence_is_array(fence))
61 return NULL;
62
63 return container_of(fence, struct dma_fence_array, base);
64}
65
77#define dma_fence_array_for_each(fence, index, head) \
78 for (index = 0, fence = dma_fence_array_first(head); fence; \
79 ++(index), fence = dma_fence_array_next(head, index))
80
83 int num_fences, struct dma_fence **fences,
84 u64 context, unsigned seqno);
85
87 struct dma_fence **fences,
88 u64 context, unsigned seqno);
89
90bool dma_fence_match_context(struct dma_fence *fence, u64 context);
91
94 unsigned int index);
95
96#endif /* __LINUX_DMA_FENCE_ARRAY_H */
#define __counted_by(m)
Definition stddef.h:64
#define index(str, chr)
Definition string.h:66
#define NULL
Definition actypes.h:561
#define container_of(ptr, type, member)
Definition container_of.h:19
struct dma_fence * dma_fence_array_next(struct dma_fence *head, unsigned int index)
struct dma_fence_array * dma_fence_array_alloc(int num_fences)
struct dma_fence_array * dma_fence_array_create(int num_fences, struct dma_fence **fences, u64 context, unsigned seqno)
struct dma_fence * dma_fence_array_first(struct dma_fence *head)
void dma_fence_array_init(struct dma_fence_array *array, int num_fences, struct dma_fence **fences, u64 context, unsigned seqno)
bool dma_fence_match_context(struct dma_fence *fence, u64 context)
struct i915_user_extension base
Definition i915_drm.h:0
uint64_t u64
Definition kernel.h:17
int const struct list_head const struct list_head struct list_head * head
Definition list_sort.h:13
Definition atomic.h:31
Definition dma-fence-array.h:23
struct dma_fence_array * array
Definition dma-fence-array.h:25
struct dma_fence_cb cb
Definition dma-fence-array.h:24
Definition dma-fence-array.h:38
unsigned num_fences
Definition dma-fence-array.h:41
struct dma_fence ** fences
Definition dma-fence-array.h:43
struct irq_work work
Definition dma-fence-array.h:45
struct dma_fence base
Definition dma-fence-array.h:39
atomic_t num_pending
Definition dma-fence-array.h:42
Definition dma-fence.h:127
Definition dma-fence.h:70
Definition irq_work.h:15