1/* 2 * include/linux/sw_sync.h 3 * 4 * Copyright (C) 2012 Google, Inc. 5 * 6 * This software is licensed under the terms of the GNU General Public 7 * License version 2, as published by the Free Software Foundation, and 8 * may be copied, distributed, and modified under those terms. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 */ 16 17#ifndef _LINUX_SW_SYNC_H 18#define _LINUX_SW_SYNC_H 19 20#include <linux/types.h> 21 22#ifdef __KERNEL__ 23 24#include <linux/sync.h> 25 26struct sw_sync_timeline { 27 struct sync_timeline obj; 28 29 u32 value; 30}; 31 32struct sw_sync_pt { 33 struct sync_pt pt; 34 35 u32 value; 36}; 37 38struct sw_sync_timeline *sw_sync_timeline_create(const char *name); 39void sw_sync_timeline_inc(struct sw_sync_timeline *obj, u32 inc); 40 41struct sync_pt *sw_sync_pt_create(struct sw_sync_timeline *obj, u32 value); 42 43#endif /* __KERNEL __ */ 44 45struct sw_sync_create_fence_data { 46 __u32 value; 47 char name[32]; 48 __s32 fence; /* fd of new fence */ 49}; 50 51#define SW_SYNC_IOC_MAGIC 'W' 52 53#define SW_SYNC_IOC_CREATE_FENCE _IOWR(SW_SYNC_IOC_MAGIC, 0,\ 54 struct sw_sync_create_fence_data) 55#define SW_SYNC_IOC_INC _IOW(SW_SYNC_IOC_MAGIC, 1, __u32) 56 57 58#endif /* _LINUX_SW_SYNC_H */ 59