| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef _API_LIST_H
- #define _API_LIST_H
- typedef struct list_hdr {
- struct list_hdr *next;
- } list_hdr_t;
- typedef struct {
- struct list_hdr *first;
- struct list_hdr *last;
- } list_t;
- /**
- * @brief Initialize a list of free element in target pool.
- * @param list: Pointer to the list.
- * @param pool: Pointer to the free pool.
- * @param elt_size: Size of each element of the free pool.
- * @param elt_cnt: Count of elements in free pool.
- * @retval None.
- */
- void list_pool_init(list_t *list, void *pool, size_t elt_size, uint32_t elt_cnt);
- /**
- * @brief Push an element into target list rear.
- * @param list: Pointer to the list.
- * @param list_hdr: Pointer to the target element.
- * @retval None.
- */
- void list_push_back(list_t *list, list_hdr_t *list_hdr);
- /**
- * @brief Pop first element from target list.
- * @param list: Pointer to the list.
- * @retval List element head pointer.
- */
- list_hdr_t *list_pop_front(list_t *list);
- /**
- * @brief Statistic the element counts in list.
- * @param list: Pointer to the list.
- * @retval Counts of element in list.
- */
- uint16_t list_size(list_t *list);
- #endif // _API_LIST_H
|