1# GrallocFuncs 2 3 4## **概述** 5 6显示内存驱动接口结构体,定义显示内存驱动接口函数指针。 7 8**相关模块:** 9 10[Display](_display.md) 11 12 13## **汇总** 14 15 16### Public 属性 17 18 | 名称 | 描述 | 19| -------- | -------- | 20| ([AllocMem](#allocmem))(const AllocInfo \*info, BufferHandle \*\*handle) | 显示内存分配。 | 21| ([FreeMem](#freemem))(BufferHandle \*handle) | 显示内存释放。 | 22| ([Mmap](#mmap))(BufferHandle \*handle) | 显示内存映射,将内存映射到对应的进程地址空间中。 | 23| ([MmapYUV](#mmapyuv))(BufferHandle \*handle, YUVDescInfo \*info) | YUV 内存映射。 | 24| ([MmapCache](#mmapcache))(BufferHandle \*handle) | 显示内存映射,将内映射为cache内存到对应的进程地址空间中。 | 25| ([Unmap](#unmap))(BufferHandle \*handle) | 内存反映射,将内存进行反映射。 | 26| ([FlushCache](#flushcache))(BufferHandle \*handle) | 刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 | 27| ([FlushMCache](#flushmcache))(BufferHandle \*handle) | 刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 | 28| ([InvalidateCache](#invalidatecache))(BufferHandle \*handle) | 使cache中的内容无效用以存储更新内存内容。 | 29| ([IsSupportedAlloc](#issupportedalloc))(uint32_t num, const VerifyAllocInfo \*infos, bool \*supporteds) | 检测给定的VerifyAllocInfo数组信息能否申请内存成功。 | 30 31 32## **类成员变量说明** 33 34 35### AllocMem 36 37 38``` 39int32_t(* GrallocFuncs::AllocMem) (const AllocInfo *info, BufferHandle **handle) 40``` 41 42**描述:** 43 44显示内存分配。 45 46根据GUI图形系统传递的参数分配内存,分配的内存根据类型可分为共享内存、cache内存和非cache内存等。 47 48**参数:** 49 50 | 名称 | 描述 | 51| -------- | -------- | 52| info | 输入参数,指示申请内存AllocInfo信息. | 53| handle | 输入参数,指向申请的内存handle指针。 | 54 55**返回:** 56 57DISPLAY_SUCCESS 表示执行成功。 58 59其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 60 61 62### FlushCache 63 64 65``` 66int32_t(* GrallocFuncs::FlushCache) (BufferHandle *handle) 67``` 68 69**描述:** 70 71刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 72 73**参数:** 74 75 | 名称 | 描述 | 76| -------- | -------- | 77| handle | 输出参数,待刷新cache的handle指针。 | 78 79**返回:** 80 81DISPLAY_SUCCESS 表示执行成功。 82 83其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 84 85 86### FlushMCache 87 88 89``` 90int32_t(* GrallocFuncs::FlushMCache) (BufferHandle *handle) 91``` 92 93**描述:** 94 95刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 96 97**参数:** 98 99 | 名称 | 描述 | 100| -------- | -------- | 101| handle | 输出参数,待刷新cache的handle指针。 | 102 103**返回:** 104 105DISPLAY_SUCCESS 表示执行成功。 106 107其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 108 109 110### FreeMem 111 112 113``` 114void(* GrallocFuncs::FreeMem) (BufferHandle *handle) 115``` 116 117**描述:** 118 119显示内存释放。 120 121**参数:** 122 123 | 名称 | 描述 | 124| -------- | -------- | 125| handle | 输入参数,待释放的内存handle指针。 | 126 127**返回:** 128 129成功返回有效地址,失败返回NULL。 130 131 132### InvalidateCache 133 134 135``` 136int32_t(* GrallocFuncs::InvalidateCache) (BufferHandle *handle) 137``` 138 139**描述:** 140 141使cache中的内容无效用以存储更新内存内容。 142 143**参数:** 144 145 | 名称 | 描述 | 146| -------- | -------- | 147| handle | 输出参数,待无效cache的handle指针。 | 148 149**返回:** 150 151DISPLAY_SUCCESS 表示执行成功。 152 153其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 154 155 156### IsSupportedAlloc 157 158 159``` 160int32_t(* GrallocFuncs::IsSupportedAlloc) (uint32_t num, const VerifyAllocInfo *infos, bool *supporteds) 161``` 162 163**描述:** 164 165检测给定的VerifyAllocInfo数组信息能否申请内存成功。 166 167**参数:** 168 169 | 名称 | 描述 | 170| -------- | -------- | 171| num | 输入参数,[VerifyAllocInfo](_verify_alloc_info.md)数组个数。 | 172| infos | 输出参数,[VerifyAllocInfo](_verify_alloc_info.md)数组首地址。 | 173| supporteds | 输出参数,supporteds数组首地址, 表示能否申请成功。 | 174 175**返回:** 176 177DISPLAY_SUCCESS 表示执行成功。 178 179其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 180 181 182### Mmap 183 184 185``` 186void*(* GrallocFuncs::Mmap) (BufferHandle *handle) 187``` 188 189**描述:** 190 191显示内存映射,将内存映射到对应的进程地址空间中。 192 193**参数:** 194 195 | 名称 | 描述 | 196| -------- | -------- | 197| handle | 输入参数,待映射内存handle指针。 | 198 199**返回:** 200 201成功返回有效地址,失败返回NULL。 202 203 204### MmapCache 205 206 207``` 208void*(* GrallocFuncs::MmapCache) (BufferHandle *handle) 209``` 210 211**描述:** 212 213显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 214 215**参数:** 216 217 | 名称 | 描述 | 218| -------- | -------- | 219| handle | 输出参数,待映射内存 handle 指针。 | 220 221**返回:** 222 223成功返回有效地址,失败返回 NULL。 224 225 226### MmapYUV 227 228 229``` 230void*(* GrallocFuncs::MmapYUV) (BufferHandle *handle, YUVDescInfo *info) 231``` 232 233**描述:** 234 235YUV 内存映射。 236 237**参数:** 238 239 | 名称 | 描述 | 240| -------- | -------- | 241| handle | 输出参数,指示内存映射的输出缓存。 | 242| info | 输出参数,指示内存映射的[YUVDescInfo](_yun_desc_info_.md)信息。 | 243 244**返回:** 245 246成功返回有效地址,失败返回 NULL。 247 248 249### Unmap 250 251 252``` 253int32_t(* GrallocFuncs::Unmap) (BufferHandle *handle) 254``` 255 256**描述:** 257 258内存反映射,将内存进行反映射。 259 260**参数:** 261 262 | 名称 | 描述 | 263| -------- | -------- | 264| handle | 输出参数,待反映射内存handle指针。 | 265 266**返回:** 267 268DISPLAY_SUCCESS 表示执行成功。 269 270其他值表示执行失败,具体错误码查看[DispErrCode](_display.md#disperrcode)。 271