214 #include <config_auto.h>
218 #include "allheaders.h"
241 DLLIST *elem, *next, *head;
244 L_WARNING(
"ptr address is null!\n", __func__);
248 if ((head = *phead) == NULL)
251 for (elem = head; elem; elem = next) {
253 L_WARNING(
"list data ptr is not null\n", __func__);
283 return ERROR_INT(
"&head not defined", __func__, 1);
286 return ERROR_INT(
"data not defined", __func__, 1);
331 DLLIST *cell, *head, *tail;
334 return ERROR_INT(
"&head not defined", __func__, 1);
337 return ERROR_INT(
"&tail not defined", __func__, 1);
339 return ERROR_INT(
"data not defined", __func__, 1);
350 if ((tail = *ptail) == NULL)
393 return ERROR_INT(
"&head not defined", __func__, 1);
396 return ERROR_INT(
"data not defined", __func__, 1);
397 if ((!head && elem) || (head && !elem))
398 return ERROR_INT(
"head and elem not consistent", __func__, 1);
407 }
else if (head == elem) {
413 cell->prev = elem->prev;
415 elem->prev->next = cell;
454 return ERROR_INT(
"&head not defined", __func__, 1);
457 return ERROR_INT(
"data not defined", __func__, 1);
458 if ((!head && elem) || (head && !elem))
459 return ERROR_INT(
"head and elem not consistent", __func__, 1);
468 }
else if (elem->next == NULL) {
474 cell->next = elem->next;
475 elem->next->prev = cell;
505 return (
void *)ERROR_PTR(
"&head not defined", __func__, NULL);
508 return (
void *)ERROR_PTR(
"head not defined", __func__, NULL);
510 return (
void *)ERROR_PTR(
"elem not defined", __func__, NULL);
514 if (head->next == NULL) {
516 return (
void *)ERROR_PTR(
"elem must be head", __func__, NULL);
518 }
else if (head == elem) {
519 elem->next->prev = NULL;
521 }
else if (elem->next == NULL) {
522 elem->prev->next = NULL;
524 elem->next->prev = elem->prev;
525 elem->prev->next = elem->next;
554 return (
void *)ERROR_PTR(
"&head not defined", __func__, NULL);
555 if ((head = *phead) == NULL)
556 return (
void *)ERROR_PTR(
"head not defined", __func__, NULL);
558 if (head->next == NULL) {
561 head->next->prev = NULL;
601 return (
void *)ERROR_PTR(
"&head not defined", __func__, NULL);
602 if ((head = *phead) == NULL)
603 return (
void *)ERROR_PTR(
"head not defined", __func__, NULL);
605 return (
void *)ERROR_PTR(
"&tail not defined", __func__, NULL);
606 if ((tail = *ptail) == NULL)
609 if (head->next == NULL) {
613 tail->prev->next = NULL;
652 return (
DLLIST *)ERROR_PTR(
"head not defined", __func__, NULL);
654 return (
DLLIST *)ERROR_PTR(
"data not defined", __func__, NULL);
656 for (cell = head; cell; cell = cell->next) {
657 if (cell->data == data)
677 return (
DLLIST *)ERROR_PTR(
"head not defined", __func__, NULL);
679 for (cell = head; cell; cell = cell->next) {
680 if (cell->next == NULL)
684 return (
DLLIST *)ERROR_PTR(
"tail not found !!", __func__, NULL);
701 return ERROR_INT(
"head not defined", __func__, 0);
704 for (elem = head; elem; elem = elem->next)
729 return ERROR_INT(
"&head not defined", __func__, 1);
730 if ((head = *phead) == NULL)
731 return ERROR_INT(
"head not defined", __func__, 1);
762 DLLIST *head1, *head2, *tail1;
765 return ERROR_INT(
"&head1 not defined", __func__, 1);
767 return ERROR_INT(
"&head2 not defined", __func__, 1);
770 if ((head2 = *phead2) == NULL)
774 if ((head1 = *phead1) == NULL) {
l_ok listAddToHead(DLLIST **phead, void *data)
listAddToHead()
void * listRemoveFromTail(DLLIST **phead, DLLIST **ptail)
listRemoveFromTail()
l_ok listAddToTail(DLLIST **phead, DLLIST **ptail, void *data)
listAddToTail()
l_ok listInsertAfter(DLLIST **phead, DLLIST *elem, void *data)
listInsertAfter()
void * listRemoveFromHead(DLLIST **phead)
listRemoveFromHead()
l_ok listJoin(DLLIST **phead1, DLLIST **phead2)
listJoin()
void * listRemoveElement(DLLIST **phead, DLLIST *elem)
listRemoveElement()
DLLIST * listFindTail(DLLIST *head)
listFindTail()
l_ok listReverse(DLLIST **phead)
listReverse()
l_ok listInsertBefore(DLLIST **phead, DLLIST *elem, void *data)
listInsertBefore()
DLLIST * listFindElement(DLLIST *head, void *data)
listFindElement()
l_int32 listGetCount(DLLIST *head)
listGetCount()
void listDestroy(DLLIST **phead)
listDestroy()