From: bernie Date: Sun, 18 Jul 2004 22:01:58 +0000 (+0000) Subject: REMHEAD(), REMTAIL(): Move to list.h as inline functions. X-Git-Tag: 1.0.0~1185 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=e694f670930ee36a0c4b0a7da8761d2e063dba22;p=bertos.git REMHEAD(), REMTAIL(): Move to list.h as inline functions. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@56 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/mware/list.c b/mware/list.c deleted file mode 100755 index 19707240..00000000 --- a/mware/list.c +++ /dev/null @@ -1,54 +0,0 @@ -/*! - * \file - * - * - * \version $Id$ - * - * \author Bernardo Innocenti - * - * \brief List handling functions - */ - -/* - * $Log$ - * Revision 1.2 2004/06/03 11:27:09 bernie - * Add dual-license information. - * - * Revision 1.1 2004/05/23 15:43:16 bernie - * Import mware modules. - * - */ - -#include "list.h" - - -Node *_list_rem_head(List *l) -{ - Node *n; - - if (ISLISTEMPTY(l)) - return (Node *)0; - - n = l->head; - l->head = n->succ; - n->succ->pred = (Node *)l; - return n; -} - - -Node *_list_rem_tail(List *l) -{ - Node *n; - - if (ISLISTEMPTY(l)) - return (Node *)0; - - n = l->tail; - l->tail = n->pred; - n->pred->succ = (Node *)&l->null; - return n; -} diff --git a/mware/list.h b/mware/list.h index 2d8e737a..08d45aca 100755 --- a/mware/list.h +++ b/mware/list.h @@ -13,6 +13,9 @@ /* * $Log$ + * Revision 1.3 2004/07/18 22:01:43 bernie + * REMHEAD(), REMTAIL(): Move to list.h as inline functions. + * * Revision 1.2 2004/06/03 11:27:09 bernie * Add dual-license information. * @@ -111,15 +114,38 @@ typedef struct _List /*! Tell whether a list is empty */ #define ISLISTEMPTY(l) ( (l)->head == (Node *)(&(l)->null) ) -/*! \name Extract an element from the head/tail of the list. If the list empty, return NULL. */ -/*\{*/ -#define REMHEAD(l) _list_rem_head(l) -#define REMTAIL(l) _list_rem_tail(l) -/*\}*/ +/*! + * \name Unlink a node from the head of the list \a l. + * \return Pointer to node, or NULL if the list was empty. + */ +INLINE Node *REMHEAD(List *l) +{ + Node *n; + + if (ISLISTEMPTY(l)) + return (Node *)0; + + n = l->head; + l->head = n->succ; + n->succ->pred = (Node *)l; + return n; +} + +/*! + * \name Unlink a node from the tail of the list \a l. + * \return Pointer to node, or NULL if the list was empty. + */ +INLINE Node *REMTAIL(List *l) +{ + Node *n; -/* Prototypes for out-of-line functions */ -Node *_list_rem_head(List *l); -Node *_list_rem_tail(List *l); + if (ISLISTEMPTY(l)) + return (Node *)0; + n = l->tail; + l->tail = n->pred; + n->pred->succ = (Node *)&l->null; + return n; +} #endif /* MWARE_LIST_H */