Lines Matching refs:impl

56 static HalBuf *hal_bufs_pos(HalBufsImpl *impl, RK_S32 idx)  in hal_bufs_pos()  argument
58 RK_S32 elem_size = impl->elem_size; in hal_bufs_pos()
60 return (HalBuf *)(impl->bufs + idx * elem_size); in hal_bufs_pos()
63 static MPP_RET hal_bufs_clear(HalBufsImpl *impl) in hal_bufs_clear() argument
67 if (impl->valid && impl->size_sum) { in hal_bufs_clear()
70 for (i = 0; i < impl->max_cnt; i++) { in hal_bufs_clear()
73 if (impl->valid & mask) { in hal_bufs_clear()
74 HalBuf *buf = hal_bufs_pos(impl, i); in hal_bufs_clear()
77 for (j = 0; j < impl->size_cnt; j++) { in hal_bufs_clear()
79 impl->size_sum -= impl->sizes[j]; in hal_bufs_clear()
84 impl->valid &= ~mask; in hal_bufs_clear()
88 mpp_assert(impl->valid == 0); in hal_bufs_clear()
89 mpp_assert(impl->size_sum == 0); in hal_bufs_clear()
92 impl->max_cnt = 0; in hal_bufs_clear()
93 impl->size_cnt = 0; in hal_bufs_clear()
94 impl->size_sum = 0; in hal_bufs_clear()
95 impl->slot_sum = 0; in hal_bufs_clear()
96 impl->valid = 0; in hal_bufs_clear()
97 memset(impl->sizes, 0, sizeof(impl->sizes)); in hal_bufs_clear()
98 MPP_FREE(impl->bufs); in hal_bufs_clear()
116 HalBufsImpl *impl = mpp_calloc(HalBufsImpl, 1); in hal_bufs_init() local
117 if (impl) { in hal_bufs_init()
118 ret = mpp_buffer_group_get_internal(&impl->group, MPP_BUFFER_TYPE_ION); in hal_bufs_init()
124 *bufs = impl; in hal_bufs_init()
133 HalBufsImpl *impl = (HalBufsImpl *)bufs; in hal_bufs_deinit() local
143 ret = hal_bufs_clear(impl); in hal_bufs_deinit()
145 if (impl->group) { in hal_bufs_deinit()
146 ret |= mpp_buffer_group_put(impl->group); in hal_bufs_deinit()
147 impl->group = NULL; in hal_bufs_deinit()
150 memset(impl, 0, sizeof(*impl)); in hal_bufs_deinit()
151 MPP_FREE(impl); in hal_bufs_deinit()
160 HalBufsImpl *impl = (HalBufsImpl *)bufs; in hal_bufs_setup() local
178 hal_bufs_clear(impl); in hal_bufs_setup()
180 if (impl->group) in hal_bufs_setup()
181 ret = mpp_buffer_group_clear(impl->group); in hal_bufs_setup()
183 ret = mpp_buffer_group_get_internal(&impl->group, MPP_BUFFER_TYPE_ION); in hal_bufs_setup()
185 mpp_assert(impl->group); in hal_bufs_setup()
190 impl->elem_size = elem_size; in hal_bufs_setup()
191 impl->bufs = mpp_calloc_size(void, impl_size); in hal_bufs_setup()
192 if (impl->bufs) { in hal_bufs_setup()
198 impl->sizes[i] = sizes[i]; in hal_bufs_setup()
201 impl->slot_sum = slot_sum; in hal_bufs_setup()
204 HalBuf *buf = hal_bufs_pos(impl, i); in hal_bufs_setup()
210 impl->max_cnt = max_cnt; in hal_bufs_setup()
211 impl->size_cnt = size_cnt; in hal_bufs_setup()
224 HalBufsImpl *impl = (HalBufsImpl *)bufs; in hal_bufs_get_buf() local
227 if (NULL == impl || buf_idx < 0 || buf_idx >= impl->max_cnt) { in hal_bufs_get_buf()
228 mpp_err_f("invalid input impl %p buf_idx %d max_cnt %d\n", impl, buf_idx, impl->max_cnt); in hal_bufs_get_buf()
234 HalBuf *hal_buf = hal_bufs_pos(impl, buf_idx); in hal_bufs_get_buf()
237 if (!(impl->valid & mask)) { in hal_bufs_get_buf()
238 MppBufferGroup group = impl->group; in hal_bufs_get_buf()
240 for (i = 0; i < impl->size_cnt; i++) { in hal_bufs_get_buf()
241 size_t size = impl->sizes[i]; in hal_bufs_get_buf()
248 impl->size_sum += size; in hal_bufs_get_buf()
255 impl->valid |= mask; in hal_bufs_get_buf()
263 for (i = 0; i < impl->size_cnt; i++) { in hal_bufs_get_buf()