/*
|
* Copyright (C) 2013, 2017 ARM Limited. All rights reserved.
|
*
|
* This program is free software and is provided to you under the terms of the GNU General Public License version 2
|
* as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
|
*
|
* A copy of the licence is included with the program, and can also be obtained from Free Software
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
*/
|
|
/**
|
* @file mali_timeline_sync_fence.h
|
*
|
* This file contains code related to creating sync fences from timeline fences.
|
*/
|
|
#ifndef __MALI_TIMELINE_SYNC_FENCE_H__
|
#define __MALI_TIMELINE_SYNC_FENCE_H__
|
|
#include "mali_timeline.h"
|
|
#if defined(CONFIG_SYNC) || defined(CONFIG_SYNC_FILE)
|
|
/**
|
* Sync fence tracker.
|
*/
|
struct mali_timeline_sync_fence_tracker {
|
struct mali_sync_flag *flag; /**< Sync flag used to connect tracker and sync fence. */
|
struct mali_timeline_tracker tracker; /**< Timeline tracker. */
|
};
|
|
/**
|
* Create a sync fence that will be signaled when @ref fence is signaled.
|
*
|
* @param system Timeline system.
|
* @param fence Fence to create sync fence from.
|
* @return File descriptor for new sync fence, or -1 on error.
|
*/
|
s32 mali_timeline_sync_fence_create(struct mali_timeline_system *system, struct mali_timeline_fence *fence);
|
|
/**
|
* Used by the Timeline system to activate a sync fence tracker.
|
*
|
* @param sync_fence_tracker Sync fence tracker.
|
*
|
*/
|
void mali_timeline_sync_fence_activate(struct mali_timeline_sync_fence_tracker *sync_fence_tracker);
|
|
#endif /* defined(CONFIG_SYNC) || defined(CONFIG_SYNC_FILE) */
|
|
#endif /* __MALI_TIMELINE_SYNC_FENCE_H__ */
|