Messages in this thread | | | Date | Sun, 9 Jun 2002 14:02:50 +0200 (MET DST) | From | "Thomas 'Dent' Mirlacher" <> | Subject | Re: [PATCH][2.5] introduce list_move macros |
| |
On Sun, 9 Jun 2002, OGAWA Hirofumi wrote:
> Lightweight patch manager <patch@luckynet.dynu.com> writes: > > > This is the only _global_ patch about the list_move macros, which means > > introducing them. Here they are: > > > > --- linus-2.5/include/linux/list.h Sun Jun 9 04:17:14 2002 > > +++ thunder-2.5/include/linux/list.h Sun Jun 9 05:07:02 2002 > > @@ -174,6 +174,24 @@ > > for (pos = (head)->next, n = pos->next; pos != (head); \ > > pos = n, n = pos->next) > > > > +/** > > + * list_move - move a list entry from a right after b > > + * @list the entry to move > > + * @head the entry to move after > > + */ > > +#define list_move(list,head) \ > > + list_del(list); \ > > + list_add(list,head) > > + > > +/** > > + * list_move_tail - move a list entry from a right before b > > + * @list the entry to move > > + * @head the entry that will come after ours > > + */ > > +#define list_move(list,head) \ > ^^^^ > Probably typo. list_move_tail. > > > + list_del(list); \ > > + list_add_tail(list,head) > > + > > #endif /* __KERNEL__ || _LVM_H_INCLUDE */ > > > > #endif > > if (check_something(x)) > list_move(p, head); > > In the above case, these seems unsafe. So, shouldn't these use > `do {} while(0)' or `inline function'?
another possible solution would be:
static __inline__ void list_move(list_t *list, struct list_t *head) { __list_del(list->prev, list->next); list_add(list, head); }
static __inline__ void list_move_tail(list_t *list, struct list_t *head) { __list_del(list->prev, list->next); list_add_tail(list, head); }
this gets rid of the problem described above, adds inline advantages removes zeroing of entry->(next|prev) ... which is not needed for move
tm -- in some way i do, and in some way i don't.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |