Home | History | Annotate | Download | only in common

Lines Matching refs:ps_list

107 * @param[in] ps_list
116 IH264_ERROR_T ih264_list_lock(list_t *ps_list)
119 retval = ithread_mutex_lock(ps_list->pv_mutex);
136 * @param[in] ps_list
146 IH264_ERROR_T ih264_list_unlock(list_t *ps_list)
149 retval = ithread_mutex_unlock(ps_list->pv_mutex);
170 * @param[in] ps_list
179 IH264_ERROR_T ih264_list_yield(list_t *ps_list)
185 rettmp = ih264_list_unlock(ps_list);
190 if(ps_list->i4_yeild_interval_us > 0)
191 ithread_usleep(ps_list->i4_yeild_interval_us);
193 rettmp = ih264_list_lock(ps_list);
217 IH264_ERROR_T ih264_list_free(list_t *ps_list)
220 ret = ithread_mutex_destroy(ps_list->pv_mutex);
256 list_t *ps_list;
261 ps_list = (list_t *)pu1_buf;
265 ps_list->pv_mutex = pu1_buf;
272 ithread_mutex_init(ps_list->pv_mutex);
280 ps_list->pv_buf_base = pu1_buf;
281 ps_list->i4_terminate = 0;
282 ps_list->i4_entry_size = entry_size;
283 ps_list->i4_buf_rd_idx = 0;
284 ps_list->i4_buf_wr_idx = 0;
285 ps_list->i4_log2_buf_max_idx = 32 - CLZ(num_entries);
286 ps_list->i4_buf_max_idx = num_entries;
287 ps_list->i4_yeild_interval_us = yeild_interval_us;
289 return ps_list;
300 * @param[in] ps_list
309 IH264_ERROR_T ih264_list_reset(list_t *ps_list)
312 ret = ih264_list_lock(ps_list);
315 ps_list->i4_terminate = 0;
316 ps_list->i4_buf_rd_idx = 0;
317 ps_list->i4_buf_wr_idx = 0;
319 ret = ih264_list_unlock(ps_list);
335 * @param[in] ps_list
344 IH264_ERROR_T ih264_list_deinit(list_t *ps_list)
349 ret = ih264_list_reset(ps_list);
352 retval = ithread_mutex_destroy(ps_list->pv_mutex);
371 * @param[in] ps_list
381 IH264_ERROR_T ih264_list_terminate(list_t *ps_list)
384 ret = ih264_list_lock(ps_list);
387 ps_list->i4_terminate = 1;
389 ret = ih264_list_unlock(ps_list);
405 * @param[in] ps_list
425 IH264_ERROR_T ih264_list_queue(list_t *ps_list, void *pv_buf, WORD32 blocking)
434 WORD32 buf_size = ps_list->i4_entry_size;
437 rettmp = ih264_list_lock(ps_list);
446 pi4_wr_idx = &ps_list->i4_buf_wr_idx;
447 pi4_rd_idx = &ps_list->i4_buf_rd_idx;
450 if(diff < ps_list->i4_buf_max_idx)
453 wr_idx = ps_list->i4_buf_wr_idx & (ps_list->i4_buf_max_idx - 1);
454 pv_buf_wr = (UWORD8 *)ps_list->pv_buf_base + wr_idx * buf_size;
457 ps_list->i4_buf_wr_idx++;
465 ih264_list_yield(ps_list);
475 ps_list->i4_terminate = 0;
477 rettmp = ih264_list_unlock(ps_list);
494 * @param[in] ps_list
514 IH264_ERROR_T ih264_list_dequeue(list_t *ps_list, void *pv_buf, WORD32 blocking)
518 WORD32 buf_size = ps_list->i4_entry_size;
524 rettmp = ih264_list_lock(ps_list);
532 pi4_wr_idx = &ps_list->i4_buf_wr_idx;
533 pi4_rd_idx = &ps_list->i4_buf_rd_idx;
540 rd_idx = ps_list->i4_buf_rd_idx & (ps_list->i4_buf_max_idx - 1);
541 pv_buf_rd = (UWORD8 *)ps_list->pv_buf_base + rd_idx * buf_size;
544 ps_list->i4_buf_rd_idx++;
550 if(ps_list->i4_terminate)
558 ih264_list_yield(ps_list);
570 rettmp = ih264_list_unlock(ps_list);