Home | History | Annotate | Download | only in sync
      1 /*
      2  *  sync.h
      3  *
      4  *   Copyright 2012 Google, Inc
      5  *
      6  *  Licensed under the Apache License, Version 2.0 (the "License");
      7  *  you may not use this file except in compliance with the License.
      8  *  You may obtain a copy of the License at
      9  *
     10  *      http://www.apache.org/licenses/LICENSE-2.0
     11  *
     12  *  Unless required by applicable law or agreed to in writing, software
     13  *  distributed under the License is distributed on an "AS IS" BASIS,
     14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     15  *  See the License for the specific language governing permissions and
     16  *  limitations under the License.
     17  */
     18 
     19 #ifndef __SYS_CORE_SYNC_H
     20 #define __SYS_CORE_SYNC_H
     21 
     22 #include <linux/sync.h>
     23 #include <linux/sw_sync.h>
     24 
     25 __BEGIN_DECLS
     26 
     27 /* timeout in msecs */
     28 int sync_wait(int fd, unsigned int timeout);
     29 int sync_merge(const char *name, int fd1, int fd2);
     30 struct sync_fence_info_data *sync_fence_info(int fd);
     31 struct sync_pt_info *sync_pt_info(struct sync_fence_info_data *info,
     32                                   struct sync_pt_info *itr);
     33 void sync_fence_info_free(struct sync_fence_info_data *info);
     34 
     35 /* sw_sync is mainly inteded for testing and should not be complied into
     36  * production kernels
     37  */
     38 
     39 int sw_sync_timeline_create(void);
     40 int sw_sync_timeline_inc(int fd, unsigned count);
     41 int sw_sync_fence_create(int fd, const char *name, unsigned value);
     42 
     43 __END_DECLS
     44 
     45 #endif /* __SYS_CORE_SYNC_H */
     46