XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Functions
dma-fence-chain.h File Reference
#include <linux/dma-fence.h>
#include <linux/irq_work.h>
#include <linux/slab.h>
Include dependency graph for dma-fence-chain.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dma_fence_chain
 

Macros

#define dma_fence_chain_alloc()    kmalloc_obj(struct dma_fence_chain)
 
#define dma_fence_chain_for_each(iter, head)
 

Functions

struct dma_fence * dma_fence_chain_walk (struct dma_fence *fence)
 
int dma_fence_chain_find_seqno (struct dma_fence **pfence, uint64_t seqno)
 
void dma_fence_chain_init (struct dma_fence_chain *chain, struct dma_fence *prev, struct dma_fence *fence, uint64_t seqno)
 

Macro Definition Documentation

◆ dma_fence_chain_alloc

#define dma_fence_chain_alloc ( )     kmalloc_obj(struct dma_fence_chain)

dma_fence_chain_alloc

Returns a new struct dma_fence_chain object or NULL on failure.

This specialized allocator has to be a macro for its allocations to be accounted separately (to have a separate alloc_tag). The typecast is intentional to enforce typesafety.

◆ dma_fence_chain_for_each

#define dma_fence_chain_for_each (   iter,
  head 
)
Value:
for (iter = dma_fence_get(head); iter; \
iter = dma_fence_chain_walk(iter))
struct dma_fence * dma_fence_chain_walk(struct dma_fence *fence)
int const struct list_head const struct list_head struct list_head * head
Definition list_sort.h:13

dma_fence_chain_for_each - iterate over all fences in chain @iter: current fence @head: starting point

Iterate over all fences in the chain. We keep a reference to the current fence while inside the loop which must be dropped when breaking out.

For a deep dive iterator see dma_fence_unwrap_for_each().

Function Documentation

◆ dma_fence_chain_find_seqno()

int dma_fence_chain_find_seqno ( struct dma_fence **  pfence,
uint64_t  seqno 
)

◆ dma_fence_chain_init()

void dma_fence_chain_init ( struct dma_fence_chain *  chain,
struct dma_fence *  prev,
struct dma_fence *  fence,
uint64_t  seqno 
)

◆ dma_fence_chain_walk()

struct dma_fence * dma_fence_chain_walk ( struct dma_fence *  fence)