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#include <linux/kconfig.h> 22#include "sync.h" 23#include "uapi/sw_sync.h" 24 25struct sw_sync_timeline { 26 struct sync_timeline obj; 27 28 u32 value; 29}; 30 31struct sw_sync_pt { 32 struct sync_pt pt; 33 34 u32 value; 35}; 36 37#if IS_ENABLED(CONFIG_SW_SYNC) 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#else 43static inline struct sw_sync_timeline *sw_sync_timeline_create(const char *name) 44{ 45 return NULL; 46} 47 48static inline void sw_sync_timeline_inc(struct sw_sync_timeline *obj, u32 inc) 49{ 50} 51 52static inline struct sync_pt *sw_sync_pt_create(struct sw_sync_timeline *obj, 53 u32 value) 54{ 55 return NULL; 56} 57#endif /* IS_ENABLED(CONFIG_SW_SYNC) */ 58 59#endif /* _LINUX_SW_SYNC_H */ 60