/** * struct dma_fence_array_cb - callback helper for fence array * @cb: fence callback structure for signaling * @array: reference to the parent fence array object
*/ struct dma_fence_array_cb { struct dma_fence_cb cb; struct dma_fence_array *array;
};
/** * struct dma_fence_array - fence to represent an array of fences * @base: fence base class * @lock: spinlock for fence handling * @num_fences: number of fences in the array * @num_pending: fences in the array still pending * @fences: array of the fences * @work: internal irq_work function * @callbacks: array of callback helpers
*/ struct dma_fence_array { struct dma_fence base;
/** * to_dma_fence_array - cast a fence to a dma_fence_array * @fence: fence to cast to a dma_fence_array * * Returns NULL if the fence is not a dma_fence_array, * or the dma_fence_array otherwise.
*/ staticinlinestruct dma_fence_array *
to_dma_fence_array(struct dma_fence *fence)
{ if (!fence || !dma_fence_is_array(fence)) return NULL;
/** * dma_fence_array_for_each - iterate over all fences in array * @fence: current fence * @index: index into the array * @head: potential dma_fence_array object * * Test if @array is a dma_fence_array object and if yes iterate over all fences * in the array. If not just iterate over the fence in @array itself. * * For a deep dive iterator see dma_fence_unwrap_for_each().
*/ #define dma_fence_array_for_each(fence, index, head) \ for (index = 0, fence = dma_fence_array_first(head); fence; \
++(index), fence = dma_fence_array_next(head, index))
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.