13#ifndef __LINUX_DMA_FENCE_H
14#define __LINUX_DMA_FENCE_H
146 const char * (*get_driver_name)(
struct dma_fence *fence);
158 const char * (*get_timeline_name)(
struct dma_fence *fence);
235 bool intr,
signed long timeout);
293static inline bool dma_fence_was_initialized(
struct dma_fence *fence)
302static inline void dma_fence_put(
struct dma_fence *fence)
330 if (kref_get_unless_zero(&fence->
refcount))
362 if (!dma_fence_get_rcu(fence))
382 dma_fence_put(fence);
405#define dma_fence_lock_irqsave(fence, flags) \
406 spin_lock_irqsave(dma_fence_spinlock(fence), flags)
415#define dma_fence_unlock_irqrestore(fence, flags) \
416 spin_unlock_irqrestore(dma_fence_spinlock(fence), flags)
422#define dma_fence_assert_held(fence) \
423 lockdep_assert_held(dma_fence_spinlock(fence));
426bool dma_fence_begin_signalling(
void);
427void dma_fence_end_signalling(
bool cookie);
428void __dma_fence_might_wait(
void);
430static inline bool dma_fence_begin_signalling(
void)
434static inline void dma_fence_end_signalling(
bool cookie) {}
435static inline void __dma_fence_might_wait(
void) {}
445 bool intr,
signed long timeout);
491dma_fence_test_signaled_flag(
struct dma_fence *fence)
511dma_fence_is_signaled_locked(
struct dma_fence *fence)
515 if (dma_fence_test_signaled_flag(fence))
547dma_fence_is_signaled(
struct dma_fence *fence)
551 if (dma_fence_test_signaled_flag(fence))
595static inline bool dma_fence_is_later(
struct dma_fence *f1,
601 return __dma_fence_is_later(f1, f1->
seqno,
f2->seqno);
613static inline bool dma_fence_is_later_or_same(
struct dma_fence *f1,
616 return f1 ==
f2 || dma_fence_is_later(f1,
f2);
639 if (dma_fence_is_later(f1,
f2))
640 return dma_fence_is_signaled(f1) ?
NULL : f1;
642 return dma_fence_is_signaled(
f2) ?
NULL :
f2;
659static inline int dma_fence_get_status_locked(
struct dma_fence *fence)
661 if (dma_fence_is_signaled_locked(fence))
662 return fence->
error ?: 1;
686static inline void dma_fence_set_error(
struct dma_fence *fence,
715 bool intr,
signed long timeout);
718 bool intr,
signed long timeout,
736static inline signed long dma_fence_wait(
struct dma_fence *fence,
bool intr)
746 return ret < 0 ? ret : 0;
764static inline bool dma_fence_is_array(
struct dma_fence *fence)
775static inline bool dma_fence_is_chain(
struct dma_fence *fence)
788static inline bool dma_fence_is_container(
struct dma_fence *fence)
790 return dma_fence_is_array(fence) || dma_fence_is_chain(fence);
#define bool
Definition stdbool.h:35
ChFont * f2
DeodhaiXR – The Graphics compositing pipeline Supports three types of input – (1) Mouse (2) Keyboard ...
Definition main.cpp:358
unsigned int uint32_t
Definition acefiex.h:163
#define NULL
Definition actypes.h:561
#define test_bit(nr, addr)
Definition bitops.h:124
#define __rcu
Definition compiler_types.h:72
const struct dma_fence_ops dma_fence_chain_ops
struct dma_fence * dma_fence_allocate_private_stub(ktime_t timestamp)
bool dma_fence_check_and_signal_locked(struct dma_fence *fence)
void dma_fence_describe(struct dma_fence *fence, struct seq_file *seq)
signed long dma_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count, bool intr, signed long timeout, uint32_t *idx)
struct dma_fence * dma_fence_get_stub(void)
void dma_fence_signal(struct dma_fence *fence)
const char __rcu * dma_fence_driver_name(struct dma_fence *fence)
void dma_fence_signal_locked(struct dma_fence *fence)
void dma_fence_signal_timestamp_locked(struct dma_fence *fence, ktime_t timestamp)
bool dma_fence_remove_callback(struct dma_fence *fence, struct dma_fence_cb *cb)
bool dma_fence_check_and_signal(struct dma_fence *fence)
dma_fence_flag_bits
Definition dma-fence.h:106
@ DMA_FENCE_FLAG_SEQNO64_BIT
Definition dma-fence.h:109
@ DMA_FENCE_FLAG_INITIALIZED_BIT
Definition dma-fence.h:107
@ DMA_FENCE_FLAG_SIGNALED_BIT
Definition dma-fence.h:110
@ DMA_FENCE_FLAG_USER_BITS
Definition dma-fence.h:113
@ DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT
Definition dma-fence.h:112
@ DMA_FENCE_FLAG_INLINE_LOCK_BIT
Definition dma-fence.h:108
@ DMA_FENCE_FLAG_TIMESTAMP_BIT
Definition dma-fence.h:111
void dma_fence_set_deadline(struct dma_fence *fence, ktime_t deadline)
void(* dma_fence_func_t)(struct dma_fence *fence, struct dma_fence_cb *cb)
Definition dma-fence.h:116
int dma_fence_get_status(struct dma_fence *fence)
signed long dma_fence_default_wait(struct dma_fence *fence, bool intr, signed long timeout)
signed long dma_fence_wait_timeout(struct dma_fence *, bool intr, signed long timeout)
const char __rcu * dma_fence_timeline_name(struct dma_fence *fence)
void dma_fence_release(struct kref *kref)
void dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops, spinlock_t *lock, u64 context, u64 seqno)
void dma_fence_enable_sw_signaling(struct dma_fence *fence)
u64 dma_fence_context_alloc(unsigned num)
void dma_fence_free(struct dma_fence *fence)
void dma_fence_signal_timestamp(struct dma_fence *fence, ktime_t timestamp)
const struct dma_fence_ops dma_fence_array_ops
void dma_fence_init64(struct dma_fence *fence, const struct dma_fence_ops *ops, spinlock_t *lock, u64 context, u64 seqno)
int dma_fence_add_callback(struct dma_fence *fence, struct dma_fence_cb *cb, dma_fence_func_t func)
#define lower_32_bits(n)
Definition kernel.h:581
uint64_t u64
Definition kernel.h:17
int64_t ktime_t
Definition kernel.h:404
#define MAX_ERRNO
Definition kernel.h:304
int spinlock_t
Definition kernel.h:44
#define MAX_SCHEDULE_TIMEOUT
Definition sched.h:93
#define cpu_relax()
Definition processor.h:9
#define rcu_dereference(p)
Definition rcupdate.h:41
#define rcu_read_unlock()
Definition rcupdate.h:33
#define rcu_access_pointer(p)
Definition rcupdate.h:47
#define rcu_read_lock()
Definition rcupdate.h:32
#define rcu_pointer_handoff(p)
Definition rcupdate.h:82
Definition dma-fence.h:127
dma_fence_func_t func
Definition dma-fence.h:129
struct list_head node
Definition dma-fence.h:128
Definition dma-fence.h:136
bool(* signaled)(struct dma_fence *fence)
Definition dma-fence.h:212
signed long(* wait)(struct dma_fence *fence, bool intr, signed long timeout)
Definition dma-fence.h:234
void(* set_deadline)(struct dma_fence *fence, ktime_t deadline)
Definition dma-fence.h:272
void(* release)(struct dma_fence *fence)
Definition dma-fence.h:252
bool(* enable_signaling)(struct dma_fence *fence)
Definition dma-fence.h:195
Definition dma-fence.h:70
spinlock_t * extern_lock
Definition dma-fence.h:72
spinlock_t inline_lock
Definition dma-fence.h:73
struct kref refcount
Definition dma-fence.h:102
int error
Definition dma-fence.h:103
unsigned long flags
Definition dma-fence.h:101
const struct dma_fence_ops __rcu * ops
Definition dma-fence.h:75
ktime_t timestamp
Definition dma-fence.h:95
u64 context
Definition dma-fence.h:99
u64 seqno
Definition dma-fence.h:100