12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (c) 2020-2021,, The Linux Foundation. All rights reserved.
- */
- #ifndef _MSM_VIDC_MEMORY_H_
- #define _MSM_VIDC_MEMORY_H_
- #include "msm_vidc_internal.h"
- struct msm_vidc_core;
- struct msm_vidc_inst;
- enum msm_memory_pool_type {
- MSM_MEM_POOL_BUFFER = 0,
- MSM_MEM_POOL_MAP,
- MSM_MEM_POOL_ALLOC,
- MSM_MEM_POOL_TIMESTAMP,
- MSM_MEM_POOL_MAX,
- };
- struct msm_memory_alloc_header {
- struct list_head list;
- void *buf;
- };
- struct msm_memory_pool {
- u32 type;
- u32 size;
- char *name;
- struct list_head free_pool; /* list of struct msm_memory_alloc_header */
- struct list_head busy_pool; /* list of struct msm_memory_alloc_header */
- };
- int msm_vidc_memory_alloc(struct msm_vidc_core *core,
- struct msm_vidc_alloc *alloc);
- int msm_vidc_memory_free(struct msm_vidc_core *core,
- struct msm_vidc_alloc *alloc);
- int msm_vidc_memory_map(struct msm_vidc_core *core,
- struct msm_vidc_map *map);
- int msm_vidc_memory_unmap(struct msm_vidc_core *core,
- struct msm_vidc_map *map);
- struct dma_buf *msm_vidc_memory_get_dmabuf(int fd);
- void msm_vidc_memory_put_dmabuf(void *dmabuf);
- int msm_memory_pools_init(struct msm_vidc_inst *inst);
- void msm_memory_pools_deinit(struct msm_vidc_inst *inst);
- void *msm_memory_alloc(struct msm_vidc_inst *inst,
- enum msm_memory_pool_type type);
- void msm_memory_free(struct msm_vidc_inst *inst,
- enum msm_memory_pool_type type, void *vidc_buf);
- #endif // _MSM_VIDC_MEMORY_H_
|