#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
252365 |
|
29-Jun-2013 |
lstewart |
MFC r251887:
Add new FOREACH_FROM variants of the queue(3) FOREACH macros which can optionally start the traversal from a previously found element by passing the element in as "var". Passing a NULL "var" retains the same semantics as the regular FOREACH macros.
Reviewed by: jhb (previous version), rpaulo
|
#
242893 |
|
11-Nov-2012 |
ed |
MFC r240422, r240426 and r240450:
Implement LIST_PREV().
Regular LISTs have been implemented in such a way that the prev-pointer does not point to the previous element, but to the next-pointer stored in the previous element. This is done to simplify LIST_REMOVE(). This macro can be implemented without knowing the address of the list head.
Unfortunately this makes it harder to implement LIST_PREV(), which is why this macro was never here. Still, it is possible to implement this macro. If the prev-pointer points to the list head, we return NULL. Otherwise we simply subtract the offset of the prev-pointer within the structure.
It's not as efficient as traversing forward of course, but in practice it shouldn't be that bad. In almost all use cases, people will want to compare the value returned by LIST_PREV() against NULL, so an optimizing compiler will not emit code that does more branching than TAILQs.
While there, add __containerof(). Compared to __member2struct(), this macro has the following advantages:
- It ensures that the type of the pointer is compatible with the member field of the structure (or a void pointer). - It works properly in combination with volatile and const, though unfortunately it drops these qualifiers from the returned value.
mdf@ proposed to add the container_of() macro, just like Linux has. Eventually I decided against this, as <sys/param.h> is included all over the place. It seems container_of() on Linux is specific to the kernel, not userspace. I'd rather not pollute userspace with this.
I also thought about adding __container_of(), but this would have two advantages. Xorg seems to already have a __container_of(), which is not compatible with this version. Also, the underscore in the middle conflicts with our existing macros (__offsetof, __rangeof, etc).
|
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
225346 |
|
02-Sep-2011 |
rse |
Fix a little typo and get rid of a cryptic description by aligning the text to the remaining description.
Approved by: re
|
#
221843 |
|
13-May-2011 |
mdf |
Note that the _SWAP operation is supported for all list/queue types. Also place STAILQ_REMOVE_HEAD in alphabetical order. Lastly, document the _SWAP macros.
PR: kern/143033 MFC after: 1 week
|
#
217264 |
|
11-Jan-2011 |
gavin |
Remove a bullet point that appears to have been accidentally inserted twice. It has also been included within the feature lists to which it is relevant.
Submitted by: tobez MFC after: 1 week
|
#
210215 |
|
18-Jul-2010 |
simon |
Cross reference tree(3) and queue(3).
MFC after: 1 week
|
#
199349 |
|
17-Nov-2009 |
brueffer |
Fix typo.
PR: 140615 Submitted by: Andrius Morkunas <hinokind@gmail.com> MFC after: 3 days
|
#
192926 |
|
27-May-2009 |
ed |
Rename the queue macros I introduced last year.
Last year I added SLIST_REMOVE_NEXT and STAILQ_REMOVE_NEXT, to remove entries behind an element in the list, using O(1) time. I recently discovered NetBSD also has a similar macro, called SLIST_REMOVE_AFTER. In my opinion this approach is a lot better:
- It doesn't have the unused first argument of the list pointer. I added this, mainly because OpenBSD also had it.
- The _AFTER suffix makes a lot more sense, because it is related to SLIST_INSERT_AFTER. _NEXT is only used to iterate through the list.
The reason why I want to rename this now, is to make sure we don't release a major version with the badly named macros.
|
#
179210 |
|
22-May-2008 |
ed |
Introduce REMOVE_NEXT() macro's for SLIST and STAILQ.
Even though single linked lists allow items to be removed at constant time (when the previous element is known), the queue macro's don't allow this. Implement new REMOVE_NEXT() macro's. Because the REMOVE() macro's also contain the same code, make it call REMOVE_NEXT().
The OpenBSD version of SLIST_REMOVE_NEXT() needs a reference to the list head, even though it is unused. We'd better mimic this. The STAILQ version also needs a reference to the list. This means the prototypes of both macro's are the same.
Approved by: philip (mentor) PR: kern/121117
|
#
173267 |
|
01-Nov-2007 |
obrien |
Don't imply O(n) removal for the doubly linked data structures.
|
#
162404 |
|
18-Sep-2006 |
ru |
Markup fixes.
|
#
157133 |
|
25-Mar-2006 |
emaste |
The removal of CIRCLEQ left four queue macros. One sentence was missed in the man page update.
PR: docs/94938 Submitted by: Ed Schouten <ed@fxq.nl> MFC After: 3 days
|
#
157090 |
|
24-Mar-2006 |
mckusick |
Typesetting fix for -r1.137.
If a tail queue is empty the return value of TAILQ_LAST is not undefined, it is NULL.
Submitted by: Ruslan Ermilov <ru@FreeBSD.org>
|
#
156983 |
|
22-Mar-2006 |
mckusick |
If a tail queue is empty the return value is not undefined, it is NULL.
|
#
151422 |
|
17-Oct-2005 |
jhb |
Remove a spurious newline. The TAILQ_INIT() is part of the 'faster tailq deletion' example.
MFC after: 1 week
|
#
139386 |
|
28-Dec-2004 |
trhodes |
Some grammar, spelling, and mdoc(7) fixes. No content changes.
PR: 75581 Submitted by: Nobuyuki Koganemaru n-kogane@syd.odn.ne.jp (original version)
|
#
131754 |
|
07-Jul-2004 |
ru |
mdoc(7) fixes.
|
#
130848 |
|
21-Jun-2004 |
mpp |
Spelling fixes.
|
#
118904 |
|
14-Aug-2003 |
kan |
Add safe _FOREACH iterators to the rest of the queue.h types.
|
#
118879 |
|
13-Aug-2003 |
bmilekic |
Document LIST_FOREACH_SAFE in queue(3).
Asked with "please" by Ruslan Ermilov. I've always had a weakness for "please".
|
#
94939 |
|
17-Apr-2002 |
tmm |
Document STAILQ_CONCAT and TAILQ_CONCAT.
PR: 20024 Submitted by: Tony Finch <dot@dotat.at> (TAILQ_CONCAT, slightly changed by me) Reviewed by: ru (earlier version)
|
#
89150 |
|
09-Jan-2002 |
ru |
mdoc(7) police: tidy up previous delta.
|
#
88596 |
|
28-Dec-2001 |
julian |
Document some behaviour I'm depending on. (TAILQ_FOREACH leaves the variable NULL if there were no more to do)
|
#
84306 |
|
01-Oct-2001 |
ru |
mdoc(7) police: Use the new .In macro for #include statements.
|
#
82029 |
|
21-Aug-2001 |
sobomax |
STAILQ_LAST() macro takes 3 arguments, not 1.
|
#
79727 |
|
14-Jul-2001 |
schweikh |
Removed whitespace at end-of-line; no content changes. I simply did cd src/share; find man[1-9] -type f|xargs perl -pi -e 's/[ \t]+$//'
BTW, what editors are the culprits? I'm using vim and it shows me whitespace at EOL in troff files with a thick blue block...
Reviewed by: Silence from cvs diff -b MFC after: 7 days
|
#
79538 |
|
10-Jul-2001 |
ru |
mdoc(7) police: removed HISTORY info from the .Os call.
|
#
74270 |
|
15-Mar-2001 |
dd |
Remove the last remnants of circle queues.
PR: 25184 Submitted by: Alex Kapranoff <alex@kapran.bitmcnit.bryansk.su> Approved by: nik
|
#
70515 |
|
30-Dec-2000 |
ben |
Remove comma after final .Nm entry before .Nd
|
#
70469 |
|
29-Dec-2000 |
phk |
CIRCLEQs are a disgrace to everything Knuth taught us in Volume 1 Chapter 2.
Retire them before anybody starts to use them again.
Use TAILQ instead, it provides the same functionality.
|
#
68537 |
|
09-Nov-2000 |
alfred |
Manpage incorrectly states that STAILQ_REMOVE_HEAD takes an arg called 'elm'. It doesn't take an arg 'elm', it simply removes the element at the head of the list.
|
#
63918 |
|
27-Jul-2000 |
markm |
Fix minor typo.
|
#
61499 |
|
10-Jun-2000 |
jake |
(1) document *_HEAD_INITIALIZER (2) fix a STAILQ_HEAD that should have been STAILQ_FIRST
Requested by: (1) bde (2) W Gerald Hicks <jhix@mindspring.com>
|
#
59862 |
|
01-May-2000 |
archie |
Document TAILQ_FOREACH_REVERSE() and CIRCLEQ_FOREACH_REVERSE() macros.
Submitted by: Jake Burkholder <jburkhol@home.com>
|
#
58667 |
|
27-Mar-2000 |
jhb |
Update STAILQ example to use STAILQ_REMOVE_HEAD instead of TAILQ_REMOVE_HEAD.
PR: docs/17590 Submitted by: Benno Rice <benno@netizen.com.au>
|
#
54833 |
|
19-Dec-1999 |
phantom |
Sync with reality.
PR: docs/15036 Submitted by: Jake Burkholder <jburkhol@home.com>
|
#
50476 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
36692 |
|
06-Jun-1998 |
jkoshy |
Spelling corrections.
PR: 6868 Submitted by: Josh Gilliam <josh@quick.net>
|
#
24018 |
|
19-Mar-1997 |
bde |
Fixed wrong number of args in STAILQ_REMOVE_HEAD() in synopsis.
|
#
23556 |
|
08-Mar-1997 |
mpp |
The CIRCLEQ_ENTRY example was wrong. Part of PR# 2917.
|
#
23466 |
|
07-Mar-1997 |
jmg |
add missing cvs Id lines.
|
#
22148 |
|
30-Jan-1997 |
mpp |
Minor mdoc cleanup.
|
#
21030 |
|
29-Dec-1996 |
phk |
Add SLIST_EMPTY, SLIST_FIRST, SLIST_NEXT.
Is it time to split this into one "intro" type and a number of detailed pages ?
|
#
17783 |
|
22-Aug-1996 |
mpp |
Use the .Bx macro where appropriate.
|
#
17090 |
|
11-Jul-1996 |
mpp |
Another man page with a messed up .Dd line.
|
#
15139 |
|
08-Apr-1996 |
phk |
Document 5 new macros in TAILQ family.
|
#
14941 |
|
31-Mar-1996 |
gibbs |
Update the queue man page for the new SLIST and STAILQ macros.
|
#
14055 |
|
12-Feb-1996 |
gibbs |
4.4Lite2 implemented the LIST_INSERT_BEFORE and TAILQ_INSERT_BEFORE exactly as I did (should have checked there first I guess) except my macro for TAILQ_INSERT_BEFORE took an unneeded arg. We now match 4.4Lite2.
Suggested by: Jeffrey Hsu <hsu@FreeBSD.org>
|
#
13698 |
|
29-Jan-1996 |
gibbs |
Add LIST_INSERT_BEFORE and TAILQ_INSERT_BEFORE.
Change examples to actually free() the nodes removed from lists. Give examples of faster list deletion routines.
|
#
1639 |
|
30-May-1994 |
rgrimes |
This commit was generated by cvs2svn to compensate for changes in r1638, which included commits to RCS files with non-trunk default branches.
|
#
1638 |
|
30-May-1994 |
rgrimes |
BSD 4.4 Lite Share Sources
|