1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FRAMEWORKS_FENCE_INCLUDE_FENCE_H 17 #define FRAMEWORKS_FENCE_INCLUDE_FENCE_H 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 enum FenceStatus { 24 ERROR, ACTIVE, SIGNALED 25 }; 26 27 bool IsSupportSwSync(void); 28 int CreateTimeline(void); 29 int CreateFenceFromTimeline(int timeline, const char* name, unsigned int totalSteps); 30 int FenceHold(int fd, int timeout); 31 int TimelineActivate(int timeline, unsigned int step); 32 enum FenceStatus FenceGetStatus(int fd); 33 int FenceMerge(const char* name, int fd1, int fd2); 34 35 #ifdef __cplusplus 36 } 37 38 #endif 39 #endif // FRAMEWORKS_FENCE_INCLUDE_FENCE_H 40