ib_status_t ib_stream_push_sdata(ib_stream_t *s, ib_sdata_t *sdata) { IB_FTRACE_INIT(); s->slen += sdata->dlen; if (IB_LIST_ELEMENTS(s) == 0) { IB_LIST_NODE_INSERT_INITIAL(s, sdata); IB_FTRACE_RET_STATUS(IB_OK); } IB_LIST_NODE_INSERT_LAST(s, sdata, ib_sdata_t); IB_FTRACE_RET_STATUS(IB_OK); }
ib_status_t ib_list_unshift(ib_list_t *list, void *data) { IB_FTRACE_INIT(ib_list_unshift); ib_list_node_t *node = (ib_list_node_t *)ib_mpool_calloc(list->mp, 1, sizeof(*node)); if (node == NULL) { IB_FTRACE_RET_STATUS(IB_EALLOC); } node->data = data; if (list->nelts == 0) { IB_LIST_NODE_INSERT_INITIAL(list, node); IB_FTRACE_RET_STATUS(IB_OK); } IB_LIST_NODE_INSERT_FIRST(list, node, ib_list_node_t); IB_FTRACE_RET_STATUS(IB_OK); }