X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0e6d2fea3ba3887101358f2ef4f24192a40de603..60ef872d5e96a7fa7b8ab43162d73517197e1c3c:/src/xbt/fifo.c diff --git a/src/xbt/fifo.c b/src/xbt/fifo.c index bf3e61e6fe..ba7c0b2dfd 100644 --- a/src/xbt/fifo.c +++ b/src/xbt/fifo.c @@ -11,11 +11,11 @@ #include "fifo_private.h" #include "xbt_modinter.h" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_fifo,xbt,"FIFO"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_fifo, xbt, "FIFO"); -static void* fifo_item_mallocator_new_f(void); -static void fifo_item_mallocator_free_f(void* item); -static void fifo_item_mallocator_reset_f(void* item); +static void *fifo_item_mallocator_new_f(void); +static void fifo_item_mallocator_free_f(void *item); +static void fifo_item_mallocator_reset_f(void *item); static xbt_mallocator_t item_mallocator = NULL; @@ -25,13 +25,13 @@ static xbt_mallocator_t item_mallocator = NULL; xbt_fifo_t xbt_fifo_new(void) { xbt_fifo_t fifo; - fifo = xbt_new0(struct xbt_fifo,1); + fifo = xbt_new0(struct xbt_fifo, 1); if (item_mallocator == NULL) { item_mallocator = xbt_mallocator_new(256, - fifo_item_mallocator_new_f, - fifo_item_mallocator_free_f, - fifo_item_mallocator_reset_f); + fifo_item_mallocator_new_f, + fifo_item_mallocator_free_f, + fifo_item_mallocator_reset_f); } return fifo; } @@ -65,7 +65,7 @@ xbt_fifo_item_t xbt_fifo_push(xbt_fifo_t l, void *t) new = xbt_fifo_new_item(); new->content = t; - xbt_fifo_push_item(l,new); + xbt_fifo_push_item(l, new); return new; } @@ -73,7 +73,7 @@ xbt_fifo_item_t xbt_fifo_push(xbt_fifo_t l, void *t) * \param l list * \returns the object stored at the tail of the list. * - * Removes and returns the object stored at the tail of the list. + * Removes and returns the object stored at the tail of the list. * Returns NULL if the list is empty. */ void *xbt_fifo_pop(xbt_fifo_t l) @@ -81,8 +81,10 @@ void *xbt_fifo_pop(xbt_fifo_t l) xbt_fifo_item_t item; void *content; - if(l==NULL) return NULL; - if(!(item = xbt_fifo_pop_item(l))) return NULL; + if (l == NULL) + return NULL; + if (!(item = xbt_fifo_pop_item(l))) + return NULL; content = item->content; xbt_fifo_free_item(item); @@ -102,7 +104,7 @@ xbt_fifo_item_t xbt_fifo_unshift(xbt_fifo_t l, void *t) new = xbt_fifo_new_item(); new->content = t; - xbt_fifo_unshift_item(l,new); + xbt_fifo_unshift_item(l, new); return new; } @@ -110,7 +112,7 @@ xbt_fifo_item_t xbt_fifo_unshift(xbt_fifo_t l, void *t) * \param l list * \returns the object stored at the head of the list. * - * Removes and returns the object stored at the head of the list. + * Removes and returns the object stored at the head of the list. * Returns NULL if the list is empty. */ void *xbt_fifo_shift(xbt_fifo_t l) @@ -118,9 +120,11 @@ void *xbt_fifo_shift(xbt_fifo_t l) xbt_fifo_item_t item; void *content; - if(l==NULL) return NULL; - if(!(item = xbt_fifo_shift_item(l))) return NULL; - + if (l == NULL) + return NULL; + if (!(item = xbt_fifo_shift_item(l))) + return NULL; + content = item->content; xbt_fifo_free_item(item); return content; @@ -134,7 +138,7 @@ void *xbt_fifo_shift(xbt_fifo_t l) */ void xbt_fifo_push_item(xbt_fifo_t l, xbt_fifo_item_t new) { - xbt_assert0((new->next == NULL)&&(new->prev == NULL),"Invalid item!"); + xbt_assert0((new->next == NULL) && (new->prev == NULL), "Invalid item!"); (l->count)++; if (l->head == NULL) { l->head = new; @@ -160,7 +164,7 @@ xbt_fifo_item_t xbt_fifo_pop_item(xbt_fifo_t l) return NULL; item = l->tail; - + l->tail = item->prev; if (l->tail == NULL) l->head = NULL; @@ -182,7 +186,7 @@ xbt_fifo_item_t xbt_fifo_pop_item(xbt_fifo_t l) */ void xbt_fifo_unshift_item(xbt_fifo_t l, xbt_fifo_item_t new) { - xbt_assert0((new->next == NULL)&&(new->prev == NULL),"Invalid item!"); + xbt_assert0((new->next == NULL) && (new->prev == NULL), "Invalid item!"); (l->count)++; if (l->head == NULL) { l->head = new; @@ -224,14 +228,14 @@ xbt_fifo_item_t xbt_fifo_shift_item(xbt_fifo_t l) } /** - * \param l + * \param l * \param t an objet * - * removes the first occurence of \a t from \a l. + * removes the first occurence of \a t from \a l. * \warning it will not remove duplicates * \return 1 if an item was removed and 0 otherwise. */ -int xbt_fifo_remove(xbt_fifo_t l, void *t) +int xbt_fifo_remove(xbt_fifo_t l, void *t) { xbt_fifo_item_t current, current_next; @@ -251,16 +255,16 @@ int xbt_fifo_remove(xbt_fifo_t l, void *t) /** - * \param l + * \param l * \param t an objet * - * removes all occurences of \a t from \a l. + * removes all occurences of \a t from \a l. * \return 1 if an item was removed and 0 otherwise. */ -int xbt_fifo_remove_all(xbt_fifo_t l, void *t) +int xbt_fifo_remove_all(xbt_fifo_t l, void *t) { xbt_fifo_item_t current, current_next; - int res=0; + int res = 0; for (current = l->head; current; current = current_next) { current_next = current->next; @@ -269,7 +273,7 @@ int xbt_fifo_remove_all(xbt_fifo_t l, void *t) /* remove the item */ xbt_fifo_remove_item(l, current); xbt_fifo_free_item(current); - res=1; + res = 1; } return res; } @@ -278,13 +282,13 @@ int xbt_fifo_remove_all(xbt_fifo_t l, void *t) * \param l a list * \param current a bucket * - * removes a bucket \a current from the list \a l. This function implicitely - * assumes (and doesn't check!) that this item belongs to this list... + * removes a bucket \a current from the list \a l. This function implicitely + * assumes (and doesn't check!) that this item belongs to this list... */ void xbt_fifo_remove_item(xbt_fifo_t l, xbt_fifo_item_t current) { - if (l->head == l->tail) { /* special case */ - xbt_assert0((current==l->head),"This item is not in the list!"); + if (l->head == l->tail) { /* special case */ + xbt_assert0((current == l->head), "This item is not in the list!"); l->head = NULL; l->tail = NULL; (l->count)--; @@ -292,13 +296,13 @@ void xbt_fifo_remove_item(xbt_fifo_t l, xbt_fifo_item_t current) return; } - if (current == l->head) { /* It's the head */ + if (current == l->head) { /* It's the head */ l->head = current->next; l->head->prev = NULL; - } else if (current == l->tail) { /* It's the tail */ + } else if (current == l->tail) { /* It's the tail */ l->tail = current->prev; l->tail->next = NULL; - } else { /* It's in the middle */ + } else { /* It's in the middle */ current->prev->next = current->next; current->next->prev = current->prev; } @@ -361,15 +365,18 @@ xbt_fifo_t xbt_fifo_copy(xbt_fifo_t f) } /* Functions passed to the mallocator constructor */ -static void* fifo_item_mallocator_new_f(void) { +static void *fifo_item_mallocator_new_f(void) +{ return xbt_new(s_xbt_fifo_item_t, 1); } -static void fifo_item_mallocator_free_f(void* item) { +static void fifo_item_mallocator_free_f(void *item) +{ xbt_free(item); } -static void fifo_item_mallocator_reset_f(void* item) { +static void fifo_item_mallocator_reset_f(void *item) +{ /* memset to zero like calloc */ memset(item, 0, sizeof(s_xbt_fifo_item_t)); } @@ -377,14 +384,14 @@ static void fifo_item_mallocator_reset_f(void* item) { /** Constructor * \return a new bucket */ -xbt_fifo_item_t xbt_fifo_new_item(void) +XBT_INLINE xbt_fifo_item_t xbt_fifo_new_item(void) { return xbt_mallocator_get(item_mallocator); } /** \deprecated Use #xbt_fifo_new_item instead. */ -xbt_fifo_item_t xbt_fifo_newitem(void) +XBT_INLINE xbt_fifo_item_t xbt_fifo_newitem(void) { WARN0("This function is deprecated. Use xbt_fifo_new_item."); return xbt_fifo_new_item(); @@ -396,16 +403,16 @@ xbt_fifo_item_t xbt_fifo_newitem(void) * * stores \a v in \a i. */ -void xbt_fifo_set_item_content(xbt_fifo_item_t i , void *v) +XBT_INLINE void xbt_fifo_set_item_content(xbt_fifo_item_t i, void *v) { - xbt_fifo_setItemcontent(i,v); + xbt_fifo_setItemcontent(i, v); } /** * \param i a bucket * \return the object stored \a i. */ -void *xbt_fifo_get_item_content(xbt_fifo_item_t i) +XBT_INLINE void *xbt_fifo_get_item_content(xbt_fifo_item_t i) { return xbt_fifo_getItemcontent(i); } @@ -415,7 +422,7 @@ void *xbt_fifo_get_item_content(xbt_fifo_item_t i) * * Free the bucket but does not modifies the object (if any) that was stored in it. */ -void xbt_fifo_free_item(xbt_fifo_item_t b) +XBT_INLINE void xbt_fifo_free_item(xbt_fifo_item_t b) { xbt_mallocator_release(item_mallocator, b); return; @@ -424,7 +431,7 @@ void xbt_fifo_free_item(xbt_fifo_item_t b) /** Destructor * \deprecated Use #xbt_fifo_free_item instead. */ -void xbt_fifo_freeitem(xbt_fifo_item_t b) +XBT_INLINE void xbt_fifo_freeitem(xbt_fifo_item_t b) { WARN0("This function is deprecated. Use xbt_fifo_free_item."); xbt_fifo_free_item(b); @@ -435,7 +442,7 @@ void xbt_fifo_freeitem(xbt_fifo_item_t b) * \param f a list * \return the number of buckets in \a f. */ -int xbt_fifo_size(xbt_fifo_t f) +XBT_INLINE int xbt_fifo_size(xbt_fifo_t f) { return f->count; } @@ -444,14 +451,14 @@ int xbt_fifo_size(xbt_fifo_t f) * \param l a list * \return the head of \a l. */ -xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l) +XBT_INLINE xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l) { return l->head; } /** \deprecated Use #xbt_fifo_get_first_item instead. */ -xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l) +XBT_INLINE xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l) { WARN0("This function is deprecated. Use xbt_fifo_get_first_item."); return xbt_fifo_get_first_item(l); @@ -461,9 +468,10 @@ xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l) * \param i a bucket * \return the bucket that comes next */ -xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i) +XBT_INLINE xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i) { - if(i) return i->next; + if (i) + return i->next; return NULL; } @@ -479,9 +487,10 @@ xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i) * \param i a bucket * \return the bucket that is just before \a i. */ -xbt_fifo_item_t xbt_fifo_get_prev_item(xbt_fifo_item_t i) +XBT_INLINE xbt_fifo_item_t xbt_fifo_get_prev_item(xbt_fifo_item_t i) { - if(i) return i->prev; + if (i) + return i->prev; return NULL; } @@ -497,12 +506,12 @@ xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i) * Destroy the fifo item mallocator. * This is an internal XBT function called by xbt_exit(). */ -void xbt_fifo_exit(void) { +void xbt_fifo_exit(void) +{ if (item_mallocator != NULL) { xbt_mallocator_free(item_mallocator); + item_mallocator = NULL; } } /* @} */ - -