Lines Matching refs:buffer

139 static int32_t InitBufferHandle(PriBufferHandle* buffer, const AllocInfo* info)
146 HDF_LOGE("can not get format information : %d", buffer->hdl.format);
153 buffer->hdl.width = info->width;
154 buffer->hdl.stride = stride;
155 buffer->hdl.height = info->height;
156 buffer->hdl.size = size;
157 buffer->hdl.usage = info->usage;
158 buffer->hdl.fd = -1;
159 buffer->shmid = INVALID_SHMID;
160 buffer->hdl.format = info->format;
161 buffer->hdl.reserveInts = (sizeof(PriBufferHandle) - sizeof(BufferHandle) -
162 buffer->hdl.reserveFds * sizeof(uint32_t)) / sizeof(uint32_t);
166 static int32_t AllocShm(BufferHandle *buffer)
171 while ((shmid = shmget(key, buffer->size, IPC_CREAT | IPC_EXCL | DEFAULT_READ_WRITE_PERMISSIONS)) < 0) {
189 buffer->virAddr = pBase;
190 buffer->fd = key;
191 ((PriBufferHandle*)buffer)->shmid = shmid;
193 if (memset_s(pBase, buffer->size, 0x0, buffer->size) != EOK) {
206 static int32_t AllocMem(const AllocInfo* info, BufferHandle **buffer)
209 DISPLAY_CHK_RETURN((buffer == NULL), DISPLAY_NULL_PTR, HDF_LOGE("%s: in buffer is null", __func__));
234 *buffer = bufferHdl;
239 static void FreeShm(BufferHandle *buffer)
241 CHECK_NULLPOINTER_RETURN(buffer->virAddr);
242 if (shmdt(buffer->virAddr) == -1) {
245 if (shmctl(((PriBufferHandle*)buffer)->shmid, IPC_RMID, 0) == -1) {
250 static void FreeMem(BufferHandle *buffer)
252 CHECK_NULLPOINTER_RETURN(buffer);
253 if ((buffer->size > MAX_MALLOC_SIZE) || (buffer->size == 0)) {
254 HDF_LOGE("%s: size is invalid, buffer->size = %d", __func__, buffer->size);
259 if (buffer->usage == HBM_USE_MEM_SHARE) {
260 FreeShm(buffer);
262 HDF_LOGE("%s: not support memory usage: 0x%" PRIx64 "", __func__, buffer->usage);
267 static void *MmapShm(BufferHandle *buffer)
271 shmid = shmget(buffer->fd, buffer->size, IPC_EXCL | DEFAULT_READ_WRITE_PERMISSIONS);
281 ((PriBufferHandle*)buffer)->shmid = shmid;
286 static void *Mmap(BufferHandle *buffer)
290 CHECK_NULLPOINTER_RETURN_VALUE(buffer, NULL);
291 if ((buffer->size > MAX_MALLOC_SIZE) || (buffer->size == 0)) {
292 HDF_LOGE("%s: size is invalid, buffer->size = %d", __func__, buffer->size);
297 if (buffer->usage == HBM_USE_MEM_SHARE) {
298 temp = MmapShm(buffer);
300 HDF_LOGE("%s: not support memory usage: 0x%" PRIx64 "", __func__, buffer->usage);
306 static int32_t UnmapShm(BufferHandle *buffer)
308 if (shmdt(buffer->virAddr) == -1) {
312 int32_t shmid = ((PriBufferHandle*)buffer)->shmid;
319 static int32_t Unmap(BufferHandle *buffer)
323 CHECK_NULLPOINTER_RETURN_VALUE(buffer, DISPLAY_NULL_PTR);
324 CHECK_NULLPOINTER_RETURN_VALUE(buffer->virAddr, DISPLAY_NULL_PTR);
325 if ((buffer->size > MAX_MALLOC_SIZE) || (buffer->size == 0)) {
326 HDF_LOGE("%s: size is invalid, buffer->size = %d", __func__, buffer->size);
330 if (buffer->usage == HBM_USE_MEM_SHARE) {
331 ret = UnmapShm(buffer);
333 HDF_LOGE("%s: not support memory usage: 0x%" PRIx64 "", __func__, buffer->usage);