brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · 9406c6f Raw
62 lines · c
1/* SPDX-License-Identifier: MIT */2/*3 * Copyright © 2022 Intel Corporation4 */5 6#ifndef _XE_PREEMPT_FENCE_H_7#define _XE_PREEMPT_FENCE_H_8 9#include "xe_preempt_fence_types.h"10 11struct list_head;12 13struct dma_fence *14xe_preempt_fence_create(struct xe_exec_queue *q,15			u64 context, u32 seqno);16 17struct xe_preempt_fence *xe_preempt_fence_alloc(void);18 19void xe_preempt_fence_free(struct xe_preempt_fence *pfence);20 21struct dma_fence *22xe_preempt_fence_arm(struct xe_preempt_fence *pfence, struct xe_exec_queue *q,23		     u64 context, u32 seqno);24 25static inline struct xe_preempt_fence *26to_preempt_fence(struct dma_fence *fence)27{28	return container_of(fence, struct xe_preempt_fence, base);29}30 31/**32 * xe_preempt_fence_link() - Return a link used to keep unarmed preempt33 * fences on a list.34 * @pfence: Pointer to the preempt fence.35 *36 * The link is embedded in the struct xe_preempt_fence. Use37 * link_to_preempt_fence() to convert back to the preempt fence.38 *39 * Return: A pointer to an embedded struct list_head.40 */41static inline struct list_head *42xe_preempt_fence_link(struct xe_preempt_fence *pfence)43{44	return &pfence->link;45}46 47/**48 * to_preempt_fence_from_link() - Convert back to a preempt fence pointer49 * from a link obtained with xe_preempt_fence_link().50 * @link: The struct list_head obtained from xe_preempt_fence_link().51 *52 * Return: A pointer to the embedding struct xe_preempt_fence.53 */54static inline struct xe_preempt_fence *55to_preempt_fence_from_link(struct list_head *link)56{57	return container_of(link, struct xe_preempt_fence, link);58}59 60bool xe_fence_is_xe_preempt(const struct dma_fence *fence);61#endif62