1# type_def.h 2 3<!--Kit: Function Flow Runtime Kit--> 4<!--Subsystem: Resourceschedule--> 5<!--Owner: @chuchihtung; @yanleo--> 6<!--Designer: @geoffrey_guo; @huangyouzhong--> 7<!--Tester: @lotsof; @sunxuhao--> 8<!--Adviser: @foryourself--> 9 10## 概述 11 12定义通用类型。 13 14**引用文件:** <ffrt/type_def.h> 15 16**库:** libffrt.z.so 17 18**系统能力:** SystemCapability.Resourceschedule.Ffrt.Core 19 20**起始版本:** 10 21 22**相关模块:** [FFRT](capi-ffrt.md) 23 24## 汇总 25 26### 变量 27 28| 名称 | typedef关键字 | 描述 | 29|-----|------------|------------------------| 30| int | ffrt_timer_t | 定时器句柄。 | 31| int | ffrt_qos_t | QoS类型。 | 32| using qos = int | - | QoS类型。<br>**起始版本:** 10 | 33 34### 结构体 35 36| 名称 | typedef关键字 | 描述 | 37| -- | -- | -- | 38| [ffrt_function_header_t](capi-ffrt-ffrt-function-header-t.md) | ffrt_function_header_t | 任务执行体。 | 39| [ffrt_dependence_t](capi-ffrt-ffrt-dependence-t.md) | ffrt_dependence_t | 依赖数据结构。 | 40| [ffrt_deps_t](capi-ffrt-ffrt-deps-t.md) | ffrt_deps_t | 依赖结构定义。 | 41| [ffrt_task_attr_t](capi-ffrt-ffrt-task-attr-t.md) | ffrt_task_attr_t | 并行任务属性结构。 | 42| [ffrt_queue_attr_t](capi-ffrt-ffrt-queue-attr-t.md) | ffrt_queue_attr_t | 串行队列属性结构。 | 43| [ffrt_condattr_t](capi-ffrt-ffrt-condattr-t.md) | ffrt_condattr_t | FFRT条件变量属性结构。 | 44| [ffrt_mutexattr_t](capi-ffrt-ffrt-mutexattr-t.md) | ffrt_mutexattr_t | FFRT锁属性结构。 | 45| [ffrt_rwlockattr_t](capi-ffrt-ffrt-rwlockattr-t.md) | ffrt_rwlockattr_t | FFRT读写锁属性结构。 | 46| [ffrt_mutex_t](capi-ffrt-ffrt-mutex-t.md) | ffrt_mutex_t | FFRT互斥锁结构。 | 47| [ffrt_rwlock_t](capi-ffrt-ffrt-rwlock-t.md) | ffrt_rwlock_t | FFRT读写锁结构。 | 48| [ffrt_cond_t](capi-ffrt-ffrt-cond-t.md) | ffrt_cond_t | FFRT条件变量结构。 | 49| void* | [ffrt_task_handle_t](capi-ffrt-ffrt-task-handle-t.md) | 并行任务句柄。 | 50| [ffrt_fiber_t](capi-ffrt-ffrt-fiber-t.md) | ffrt_fiber_t | 纤程结构。 | 51 52### 枚举 53 54| 名称 | typedef关键字 | 描述 | 55| -- | -- | -- | 56| [ffrt_queue_priority_t](#ffrt_queue_priority_t) | ffrt_queue_priority_t | 任务的优先级类型。 | 57| [ffrt_qos_default_t](#ffrt_qos_default_t) | ffrt_qos_default_t | 任务的QoS类型。 | 58| [ffrt_storage_size_t](#ffrt_storage_size_t) | ffrt_storage_size_t | 多种类型数据结构分配大小定义。 | 59| [ffrt_function_kind_t](#ffrt_function_kind_t) | ffrt_function_kind_t | 任务类型。 | 60| [ffrt_dependence_type_t](#ffrt_dependence_type_t) | ffrt_dependence_type_t | 依赖类型。 | 61| [ffrt_error_t](#ffrt_error_t) | ffrt_error_t | FFRT错误码。 | 62| [ffrt_mutex_type](#ffrt_mutex_type) | ffrt_mutex_type | 互斥锁类型枚举。描述互斥类型,ffrt_mutex_normal是普通互斥锁;ffrt_mutex_recursive是递归互斥锁,ffrt_mutex_default是普通互斥锁。 | 63| [qos_default](#qos_default) | - | 任务QoS类型枚举。 | 64 65### 函数 66 67| 名称 | typedef关键字 | 描述 | 68| -- | -- | -- | 69| [typedef void(\*ffrt_function_t)(void*)](#ffrt_function_t) | ffrt_function_t | 任务执行函数指针类型。 | 70| [typedef void (\*ffrt_poller_cb)(void* data, uint32_t event)](#ffrt_poller_cb) | ffrt_poller_cb | poller回调函数定义。 | 71| [typedef void (\*ffrt_timer_cb)(void* data)](#ffrt_timer_cb) | ffrt_timer_cb | timer回调函数定义。 | 72 73## 枚举类型说明 74 75### ffrt_queue_priority_t 76 77``` 78enum ffrt_queue_priority_t 79``` 80 81**描述** 82 83任务的优先级类型。 84 85**起始版本:** 12 86 87| 枚举项 | 描述 | 88| -- | -- | 89| ffrt_queue_priority_immediate = 0 | immediate 优先级 | 90| ffrt_queue_priority_high | high 优先级 | 91| ffrt_queue_priority_low | low 优先级 | 92| ffrt_queue_priority_idle | lowest 优先级 | 93 94### ffrt_qos_default_t 95 96``` 97enum ffrt_qos_default_t 98``` 99 100**描述** 101 102任务的QoS类型。 103 104**起始版本:** 10 105 106| 枚举项 | 描述 | 107| -- | -- | 108| ffrt_qos_inherit = -1 | 继承当前任务QoS属性 | 109| ffrt_qos_background | 后台任务 | 110| ffrt_qos_utility | 实时工具 | 111| ffrt_qos_default | 默认类型 | 112| ffrt_qos_user_initiated | 用户期望 | 113 114### ffrt_storage_size_t 115 116``` 117enum ffrt_storage_size_t 118``` 119 120**描述** 121 122多种类型数据结构分配大小定义。 123 124**起始版本:** 10 125 126| 枚举项 | 描述 | 127| -- | -- | 128| ffrt_task_attr_storage_size = 128 | 任务属性 | 129| ffrt_auto_managed_function_storage_size = 64 + sizeof(ffrt_function_header_t) | 任务执行体 | 130| ffrt_mutex_storage_size = 64 | 互斥锁 | 131| ffrt_cond_storage_size = 64 | 条件变量 | 132| ffrt_queue_attr_storage_size = 128 | 队列属性 | 133| ffrt_rwlock_storage_size = 64 | 读写锁<br>**起始版本:** 18 | 134| ffrt_fiber_storage_size| 纤程在不同平台所占大小,单位:Byte。(平台相关)aarch64架构:22字节;arm架构:64字节;x86_64架构:8字节;其他平台:不支持。<br>**起始版本:** 20 | 135 136### ffrt_function_kind_t 137 138``` 139enum ffrt_function_kind_t 140``` 141 142**描述** 143 144任务类型。 145 146**起始版本:** 10 147 148| 枚举项 | 描述 | 149| -- | -- | 150| ffrt_function_kind_general | 通用任务类型 | 151| ffrt_function_kind_queue | 队列任务类型 | 152 153### ffrt_dependence_type_t 154 155``` 156enum ffrt_dependence_type_t 157``` 158 159**描述** 160 161依赖类型。 162 163**起始版本:** 10 164 165| 枚举项 | 描述 | 166| -- | -- | 167| ffrt_dependence_data | 数据依赖类型 | 168| ffrt_dependence_task | 任务依赖类型 | 169 170### ffrt_error_t 171 172``` 173enum ffrt_error_t 174``` 175 176**描述** 177 178FFRT错误码。 179 180**起始版本:** 10 181 182| 枚举项 | 描述 | 183| -- | -- | 184| ffrt_error = -1 | 失败 | 185| ffrt_success = 0 | 成功 | 186| ffrt_error_nomem = ENOMEM | 内存不足 | 187| ffrt_error_timedout = ETIMEDOUT | 超时 | 188| ffrt_error_busy = EBUSY | 重新尝试 | 189| ffrt_error_inval = EINVAL | 值无效 | 190 191### ffrt_mutex_type 192 193``` 194enum ffrt_mutex_type 195``` 196 197**描述** 198 199互斥锁类型枚举。描述互斥类型,ffrt_mutex_normal是普通互斥锁;ffrt_mutex_recursive是递归互斥锁,ffrt_mutex_default是普通互斥锁。 200 201**起始版本:** 12 202 203| 枚举项 | 描述 | 204| -- | -- | 205| ffrt_mutex_normal = 0 | 普通互斥锁 | 206| ffrt_mutex_recursive = 2 | 递归互斥锁 | 207| ffrt_mutex_default = ffrt_mutex_normal | 默认互斥锁 | 208 209### qos_default 210 211``` 212enum qos_default 213``` 214 215**描述** 216 217任务QoS类型枚举。 218 219**起始版本:** 10 220 221| 枚举项 | 描述 | 222| -- | -- | 223| qos_inherit = ffrt_qos_inherit | 继承当前任务的QoS类型 | 224| qos_background = ffrt_qos_background | 后台任务 | 225| qos_utility = ffrt_qos_utility | 实时工具 | 226| qos_default = ffrt_qos_default | 默认类型 | 227| qos_user_initiated = ffrt_qos_user_initiated | 用户期望 | 228 229 230## 函数说明 231 232### ffrt_function_t() 233 234``` 235typedef void(*ffrt_function_t)(void*) 236``` 237 238**描述** 239 240任务执行函数指针类型。 241 242**起始版本:** 10 243 244### ffrt_poller_cb() 245 246``` 247typedef void (*ffrt_poller_cb)(void* data, uint32_t event) 248``` 249 250**描述** 251 252poller回调函数定义。 253 254**起始版本:** 12 255 256### ffrt_timer_cb() 257 258``` 259typedef void (*ffrt_timer_cb)(void* data) 260``` 261 262**描述** 263 264timer回调函数定义。 265 266**起始版本:** 12 267 268 269