| #
f5a3d790
|
| 26-Oct-2025 |
Gordon Bergling <gbe@FreeBSD.org> |
queue.3: Fix a typo in the manual page
- s/overriden/overridden/
MFC after: 5 days
|
| #
a5a186ba
|
| 04-May-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
queue.3: document STAILQ_REVERSE
Reviewed by: markj, olce Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D50131
|
| #
c3b03044
|
| 28-Apr-2025 |
Olivier Certner <olce@FreeBSD.org> |
queue.3: Update .Dd
Noted by: lwhsu MFC after: 3 days Sponsored by: The FreeBSD Foundation
|
| #
1c5fea9e
|
| 04-Apr-2025 |
Olivier Certner <olce@FreeBSD.org> |
queue(3): Debug macros: Finer control knobs, userland support
Support enabling debugging macros for userland and _STANDALONE builds, in addition to the already existing kernel support. On runtime e
queue(3): Debug macros: Finer control knobs, userland support
Support enabling debugging macros for userland and _STANDALONE builds, in addition to the already existing kernel support. On runtime error, panic() is used for kernel and _STANDALONE builds, and a simple fprintf() + abort() combination for userland ones. These can be overriden if needed by defining the QMD_PANIC() and/or QMD_ASSERT() macros.
The expansion of queue debug macros can now be controlled more finely thanks to the QUEUE_MACRO_DEBUG_ASSERTIONS and QUEUE_MACRO_NO_DEBUG_ASSERTIONS macros. The first one serves to forcibly enable debug code and the second to forcibly disable it. These are meant to be used as compile options only, and should normally not be defined in a source file. It is an error to have both of them defined.
If none of the two above-mentioned macros are defined, an automatic determination is performed. When compiling kernel code, QUEUE_MACRO_DEBUG_ASSERTIONS is defined if INVARIANTS has been defined (as before). For userland and _STANDALONE builds, no debug code is ever automatically inserted even if NDEBUG is not defined, as doing so would inflate code size and users may want to have working assert() calls without this overhead by default.
In the manual page, document check code control under DIAGNOSTICS. While here, rework a bit the rest of the DIAGNOSTICS section.
Reviewed by: markj (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49973
show more ...
|
| #
c0288023
|
| 28-Feb-2025 |
Olivier Certner <olce@FreeBSD.org> |
queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY()
*_SPLIT_AFTER() allows to split an existing queue in two. It is the missing block that enables arbitrary splitting and recombina
queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY()
*_SPLIT_AFTER() allows to split an existing queue in two. It is the missing block that enables arbitrary splitting and recombinations of lists/queues together with *_CONCAT() and *_SWAP().
Add *_ASSERT_NONEMPTY(), used by *_SPLIT_AFTER().
Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49608 (stailq) Differential Revision: https://reviews.freebsd.org/D49969 (rest)
show more ...
|
| #
d2870b86
|
| 14-Feb-2025 |
Mark Johnston <markj@FreeBSD.org> |
queue: Add atomic variants for *_EMPTY
In some places, these macros are used without a lock, under the assumption that they are naturally atomic. After commit 34740937f7a4 ("queue: New debug macros
queue: Add atomic variants for *_EMPTY
In some places, these macros are used without a lock, under the assumption that they are naturally atomic. After commit 34740937f7a4 ("queue: New debug macros for STAILQ"), this assumption is false.
Provide *_EMPTY_ATOMIC for such cases. This lets us include extra debug checks for the non-atomic case, and gives us a way to explicitly annotate unlocked checks, which generally deserve extra scrutiny and might otherwise raise reports from KCSAN.
Reviewed by: kib, olce (previous version) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48899
show more ...
|
| #
7f479dee
|
| 08-Apr-2024 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
sys/queue.h: Add {LIST,TAILQ}_REPLACE().
MFC after: 1 week Obtained from: NetBSD Sponsored by: Klara, Inc. Reviewed by: cperciva, imp Differential Revision: https://reviews.freebsd.org/D44679
|
| #
97759ccc
|
| 23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
share: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl
share: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script.
Sponsored by: Netflix
show more ...
|
| #
b2c76c41
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line nroff pattern
Remove /^\.\\"\s*\$FreeBSD\$$\n/
|
| #
419f843f
|
| 17-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352319 through r352435.
|
| #
fad4b12b
|
| 14-Sep-2019 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Introduce arb(3), the Array-based Red-Black Tree macros: similar to the traditional tree(3) RB trees, but using an array (preallocated, linear chunk of memory) to store the tree.
This avoids allocat
Introduce arb(3), the Array-based Red-Black Tree macros: similar to the traditional tree(3) RB trees, but using an array (preallocated, linear chunk of memory) to store the tree.
This avoids allocation overhead, improves memory locality, and makes it trivially easy to share/transfer/copy the entire tree without the need for marshalling. The downside is that the size is fixed at initialization time; there is no mechanism to resize it.
This is one of the dependencies for the new stats(3) framework (https://reviews.freebsd.org/D20477).
Reviewed by: bcr (man pages), markj Discussed with: cem MFC after: 2 weeks Sponsored by: Klara Inc, Netflix Obtained from: Netflix Differential Revision: https://reviews.freebsd.org/D20324
show more ...
|
| #
f5a3d790
|
| 26-Oct-2025 |
Gordon Bergling <gbe@FreeBSD.org> |
queue.3: Fix a typo in the manual page
- s/overriden/overridden/
MFC after: 5 days
|
| #
a5a186ba
|
| 04-May-2025 |
Konstantin Belousov <kib@FreeBSD.org> |
queue.3: document STAILQ_REVERSE
Reviewed by: markj, olce Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D50131
|
| #
c3b03044
|
| 28-Apr-2025 |
Olivier Certner <olce@FreeBSD.org> |
queue.3: Update .Dd
Noted by: lwhsu MFC after: 3 days Sponsored by: The FreeBSD Foundation
|
| #
1c5fea9e
|
| 04-Apr-2025 |
Olivier Certner <olce@FreeBSD.org> |
queue(3): Debug macros: Finer control knobs, userland support
Support enabling debugging macros for userland and _STANDALONE builds, in addition to the already existing kernel support. On runtime e
queue(3): Debug macros: Finer control knobs, userland support
Support enabling debugging macros for userland and _STANDALONE builds, in addition to the already existing kernel support. On runtime error, panic() is used for kernel and _STANDALONE builds, and a simple fprintf() + abort() combination for userland ones. These can be overriden if needed by defining the QMD_PANIC() and/or QMD_ASSERT() macros.
The expansion of queue debug macros can now be controlled more finely thanks to the QUEUE_MACRO_DEBUG_ASSERTIONS and QUEUE_MACRO_NO_DEBUG_ASSERTIONS macros. The first one serves to forcibly enable debug code and the second to forcibly disable it. These are meant to be used as compile options only, and should normally not be defined in a source file. It is an error to have both of them defined.
If none of the two above-mentioned macros are defined, an automatic determination is performed. When compiling kernel code, QUEUE_MACRO_DEBUG_ASSERTIONS is defined if INVARIANTS has been defined (as before). For userland and _STANDALONE builds, no debug code is ever automatically inserted even if NDEBUG is not defined, as doing so would inflate code size and users may want to have working assert() calls without this overhead by default.
In the manual page, document check code control under DIAGNOSTICS. While here, rework a bit the rest of the DIAGNOSTICS section.
Reviewed by: markj (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49973
show more ...
|
| #
c0288023
|
| 28-Feb-2025 |
Olivier Certner <olce@FreeBSD.org> |
queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY()
*_SPLIT_AFTER() allows to split an existing queue in two. It is the missing block that enables arbitrary splitting and recombina
queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY()
*_SPLIT_AFTER() allows to split an existing queue in two. It is the missing block that enables arbitrary splitting and recombinations of lists/queues together with *_CONCAT() and *_SWAP().
Add *_ASSERT_NONEMPTY(), used by *_SPLIT_AFTER().
Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49608 (stailq) Differential Revision: https://reviews.freebsd.org/D49969 (rest)
show more ...
|
| #
d2870b86
|
| 14-Feb-2025 |
Mark Johnston <markj@FreeBSD.org> |
queue: Add atomic variants for *_EMPTY
In some places, these macros are used without a lock, under the assumption that they are naturally atomic. After commit 34740937f7a4 ("queue: New debug macros
queue: Add atomic variants for *_EMPTY
In some places, these macros are used without a lock, under the assumption that they are naturally atomic. After commit 34740937f7a4 ("queue: New debug macros for STAILQ"), this assumption is false.
Provide *_EMPTY_ATOMIC for such cases. This lets us include extra debug checks for the non-atomic case, and gives us a way to explicitly annotate unlocked checks, which generally deserve extra scrutiny and might otherwise raise reports from KCSAN.
Reviewed by: kib, olce (previous version) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48899
show more ...
|
| #
7f479dee
|
| 08-Apr-2024 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
sys/queue.h: Add {LIST,TAILQ}_REPLACE().
MFC after: 1 week Obtained from: NetBSD Sponsored by: Klara, Inc. Reviewed by: cperciva, imp Differential Revision: https://reviews.freebsd.org/D44679
|
| #
97759ccc
|
| 23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
share: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl
share: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script.
Sponsored by: Netflix
show more ...
|
| #
b2c76c41
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line nroff pattern
Remove /^\.\\"\s*\$FreeBSD\$$\n/
|
| #
419f843f
|
| 17-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352319 through r352435.
|
| #
fad4b12b
|
| 14-Sep-2019 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Introduce arb(3), the Array-based Red-Black Tree macros: similar to the traditional tree(3) RB trees, but using an array (preallocated, linear chunk of memory) to store the tree.
This avoids allocat
Introduce arb(3), the Array-based Red-Black Tree macros: similar to the traditional tree(3) RB trees, but using an array (preallocated, linear chunk of memory) to store the tree.
This avoids allocation overhead, improves memory locality, and makes it trivially easy to share/transfer/copy the entire tree without the need for marshalling. The downside is that the size is fixed at initialization time; there is no mechanism to resize it.
This is one of the dependencies for the new stats(3) framework (https://reviews.freebsd.org/D20477).
Reviewed by: bcr (man pages), markj Discussed with: cem MFC after: 2 weeks Sponsored by: Klara Inc, Netflix Obtained from: Netflix Differential Revision: https://reviews.freebsd.org/D20324
show more ...
|
| #
a75e9a02
|
| 10-Sep-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r305623 through r305686.
|
| #
06b93667
|
| 08-Sep-2016 |
Conrad Meyer <cem@FreeBSD.org> |
queue(3): Enhance queue debugging macros
Split the QUEUE_MACRO_DEBUG into QUEUE_MACRO_DEBUG_TRACE and QUEUE_MACRO_DEBUG_TRASH.
Add the debug macrso QMD_IS_TRASHED() and QMD_SLIST_CHECK_PREVPTR().
queue(3): Enhance queue debugging macros
Split the QUEUE_MACRO_DEBUG into QUEUE_MACRO_DEBUG_TRACE and QUEUE_MACRO_DEBUG_TRASH.
Add the debug macrso QMD_IS_TRASHED() and QMD_SLIST_CHECK_PREVPTR().
Document these in queue.3.
Reviewed by: emaste Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D3984
show more ...
|
| #
27067774
|
| 16-Aug-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r303250 through r304235.
|