1# native_fence.h 2<!--Kit: ArkGraphics 2D--> 3<!--Subsystem: Graphics--> 4<!--Owner: @Flix-fangyang; @li_hui180; @ding-panyun--> 5<!--Designer: @conan13234--> 6<!--Tester: @nobuggers--> 7<!--Adviser: @ge-yafang--> 8## 概述 9 10定义获取和使用NativeFence的相关函数。 11 12**引用文件:** <native_fence/native_fence.h> 13 14**库:** libnative_fence.so 15 16**系统能力:** SystemCapability.Graphic.Graphic2D.NativeFence 17 18**起始版本:** 20 19 20**相关模块:** [NativeFence](capi-nativefence.md) 21 22## 汇总 23 24### 函数 25 26| 名称 | 描述 | 27| ------------------------------------------------------------ | ------------------------------------------------------------ | 28| [bool OH_NativeFence_IsValid(int fenceFd)](#oh_nativefence_isvalid) | 检查fenceFd是否有效。 | 29| [bool OH_NativeFence_Wait(int fenceFd, uint32_t timeout)](#oh_nativefence_wait) | 阻塞传入的fenceFd。最大阻塞时间由超时参数决定。传入的fenceFd需要用户自己关闭。 | 30| [bool OH_NativeFence_WaitForever(int fenceFd)](#oh_nativefence_waitforever) | 永久阻塞传入的fenceFd。传入的fenceFd需要用户自己关闭。 | 31| [void OH_NativeFence_Close(int fenceFd)](#oh_nativefence_close) | 关闭fenceFd。 | 32 33## 函数说明 34 35### OH_NativeFence_IsValid() 36 37``` 38bool OH_NativeFence_IsValid(int fenceFd) 39``` 40 41**描述** 42 43检查fenceFd是否有效。 44 45**系统能力:** SystemCapability.Graphic.Graphic2D.NativeFence 46 47**起始版本:** 20 48 49 50**参数:** 51 52| 参数项 | 描述 | 53| ----------- | ---------------------------------- | 54| int fenceFd | 表示一个文件描述符,用于定时同步。 | 55 56**返回:** 57 58| 类型 | 说明 | 59| ---- | -------------------------------------------------------- | 60| bool | 返回true表示fenceFd有效,返回false表示该值是一个负整数。 | 61 62### OH_NativeFence_Wait() 63 64``` 65bool OH_NativeFence_Wait(int fenceFd, uint32_t timeout) 66``` 67 68**描述** 69 70阻塞传入的fenceFd。最大阻塞时间由超时参数决定。传入的fenceFd需要用户自己关闭。 71 72**系统能力:** SystemCapability.Graphic.Graphic2D.NativeFence 73 74**起始版本:** 20 75 76 77**参数:** 78 79| 参数项 | 描述 | 80| ---------------- | ------------------------------------------------------------ | 81| int fenceFd | 表示一个文件描述符,用于定时同步。 | 82| uint32_t timeout | 表示等待时间。单位为毫秒,-1表示永久等待,0表示接口立即返回。 | 83 84**返回:** 85 86| 类型 | 说明 | 87| ---- | ------------------------------------------------------------ | 88| bool | 返回true表示对应的fenceFd有信号触发;<br>在以下情况会返回false:<br>1.传入的fenceFd为负整数。<br>2.在指定的超时时间内无信号触发。<br>3.调用底层poll接口失败。<br>4.超时时间设置为0。<br>5.接口中复制文件描述符执行失败。 | 89 90### OH_NativeFence_WaitForever() 91 92``` 93bool OH_NativeFence_WaitForever(int fenceFd) 94``` 95 96**描述** 97 98永久阻塞传入的fenceFd。传入的fenceFd需要用户自己关闭。 99 100**系统能力:** SystemCapability.Graphic.Graphic2D.NativeFence 101 102**起始版本:** 20 103 104 105**参数:** 106 107| 参数项 | 描述 | 108| ----------- | ---------------------------------- | 109| int fenceFd | 表示一个文件描述符,用于定时同步。 | 110 111**返回:** 112 113| 类型 | 说明 | 114| ---- | ------------------------------------------------------------ | 115| bool | 返回true表示对应的fenceFd有信号触发;<br>在以下情况会返回false:<br>1.传入的fenceFd为负整数。<br>2.在指定的超时时间内无信号触发,永久等待。<br>3.接口中复制文件描述符执行失败。 | 116 117### OH_NativeFence_Close() 118 119``` 120void OH_NativeFence_Close(int fenceFd) 121``` 122 123**描述** 124 125关闭fenceFd。 126 127**系统能力:** SystemCapability.Graphic.Graphic2D.NativeFence 128 129**起始版本:** 20 130 131 132**参数:** 133 134| 参数项 | 描述 | 135| ----------- | ------------------------------------------------------ | 136| int fenceFd | 表示一个文件描述符,用于定时同步。该值是一个非负整数。 | 137 138