Commit Graph

349 Commits

Author SHA1 Message Date
Hans Petter Selasky
38b622e199 Make the system queue header file fully usable within C++ programs by
adding macros to define class lists.

This change is backwards compatible for all use within C and C++
programs. Only C++ programs will have added support to use the queue
macros within classes. Previously the queue macros could only be used
within structures.

The queue.3 manual page has been updated to describe the new
functionality and some alphabetic sorting has been done while
at it.

Differential Revision:	https://reviews.freebsd.org/D2745
PR:			200827 (exp-run)
MFC after:		2 weeks
2015-06-28 21:06:45 +00:00
Simon J. Gerraty
ccfb965433 Add META_MODE support.
Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision:       D2796
Reviewed by: brooks imp
2015-06-13 19:20:56 +00:00
Simon J. Gerraty
44d314f704 dirdeps.mk now sets DEP_RELDIR 2015-06-08 23:35:17 +00:00
Patrick Kelsey
e5315a56df Provide an unambiguous description of the potential hazard in calling
pthread_setspecific(3) from a key destructor.

Reviewed by: jhb
Approved by: jmallett (mentor)
MFC after: 3 days
2015-05-28 16:18:41 +00:00
Simon J. Gerraty
98e0ffaefb Merge sync of head 2015-05-27 01:19:58 +00:00
Patrick Kelsey
a5019a3b95 Added description of POSIX-specified behavior when invoked on a key from within that key's destructor.
Reviewed by: jhb, -doc
Approved by: jmallett (mentor)
MFC after: 3 days
Sponsored by: Norse Corp, Inc.
2015-05-19 02:24:55 +00:00
Brooks Davis
587257fb9f Bump doc date missed in r281605.
MFC after:	1 day
2015-04-20 16:23:59 +00:00
Konstantin Belousov
3d0045bb2b Make wait6(2), waitid(3) and ppoll(2) cancellation points. The
waitid() function is required to be cancellable by the standard.  The
wait6() and ppoll() follow the other syscalls in their groups.

Reviewed by:	jhb, jilles (previous versions)
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2015-04-18 21:35:41 +00:00
Brooks Davis
d3f649def3 Fix a minor function definition inconsistancy.
MFC after:	3 days
2015-04-16 15:35:17 +00:00
Konstantin Belousov
02211f0a93 Formatting changes to the pthread_testcancel(3).
Use list for the cancellation points enumeration.  Move notes about
functions into the list inline.

The discussion of the idiomatic use of cancellation facilities does
not belong to RETURN VALUES section, move it to NOTES.

Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2015-03-29 19:37:41 +00:00
Konstantin Belousov
b072e86d09 Make kevent(2) a cancellation point.
Note that to cancel blocked kevent(2) call, changelist must be empty,
since we cannot cancel a call which already made changes to the
process state.  And in reverse, call which only makes changes to the
kqueue state, without waiting for an event, is not cancellable.  This
makes a natural usage model to migrate kqueue loop to support
cancellation, where existing single kevent(2) call must be split into
two: first uncancellable update of kqueue, then cancellable wait for
events.

Note that this is ABI-incompatible change, but it is believed that
there is no cancel-safe code that relies on kevent(2) not being a
cancellation point.  Option to preserve the ABI would be to keep
kevent(2) as is, but add new call with flags to specify cancellation
behaviour, which only value seems to add complications.

Suggested and reviewed by:	jilles
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2015-03-29 19:14:41 +00:00
Konstantin Belousov
51782e3a89 Provide individual prototype and generate macros for the red-black tree.
This helps to reduce code size in statically linked applications.

Submitted by:	Sebastian Huber <sebastian.huber@embedded-brains.de>
MFC after:	2 weeks
2015-01-24 12:43:36 +00:00
Steve Kargl
e4c7bde816 Fix a typographical error.
Confirmed by:	n1256.pdf
Obtained from:	Dragonfly BSD
2015-01-06 23:04:41 +00:00
Baptiste Daroussin
e52a1af206 sort SEE ALSO 2014-12-26 22:41:10 +00:00
Baptiste Daroussin
6342c823b5 Escape Ed to prevent mandoc to avoid confusion with the mdoc's Ed macros 2014-12-26 21:11:33 +00:00
Simon J. Gerraty
9268022b74 Merge from head@274682 2014-11-19 01:07:58 +00:00
John Baldwin
9ef82a94ab Correct a typo: this is the manpage for pthread_cleanup_pop, not push.
Submitted by:	ian
2014-10-27 15:45:37 +00:00
John Baldwin
613a9773e5 Clarify that pthread_cleanup_push()/pop() are implemented as macros that
create a new code block and thus must be balanced at the same lexical
scope.  (This is also a requirement in POSIX.)

PR:		194280
Submitted by:	dr2867.business@pacbell.net
MFC after:	1 week
2014-10-25 19:31:34 +00:00
Simon J. Gerraty
ee7b0571c2 Merge head from 7/28 2014-08-19 06:50:54 +00:00
Gavin Atkinson
09e90f5155 Clarify descriptions of pthread_cond_wait() and pthread_cond_timedwait()
Requested by:	Malcolm Douglas via freebsd-doc
Reviewed by:	jhb
MFC after:	1 week
2014-08-12 12:44:52 +00:00
Joel Dahl
534ade2c95 Silence mandoc lint. 2014-07-29 19:41:00 +00:00
Baptiste Daroussin
a63d6c943d use .Mt to mark up email addresses consistently (part6)
PR:		191174
Submitted by:	Franco Fichtner <franco at lastsummer.de>
2014-06-23 08:27:27 +00:00
Kevin Lo
c459e5281f Add MLINKS for macros decribed in queue.3 manpage. 2014-06-17 02:10:40 +00:00
Simon J. Gerraty
cc3f4b9965 Merge from head 2014-05-08 23:54:15 +00:00
Warner Losh
c6063d0da8 Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.
2014-05-06 04:22:01 +00:00
Simon J. Gerraty
3b8f084595 Merge head 2014-04-28 07:50:45 +00:00
John-Mark Gurney
0d7f18cddc Xref pthread_cancel...
bump Dd, _exit was still dated 1996!  yes, it has been modified a few
times since then...

MFC after:	1 week
2014-03-16 01:17:09 +00:00
Eitan Adler
dda5b39711 multiple: Remove 3rd clause from BSD license where approved by the
regents and renumber.

This patch skips files in contrib/ and crypto/

Acked by:	imp
Discussed with:	emaste
2014-03-14 03:07:51 +00:00
John Baldwin
484e5bdd2b - Update a few places to account for va_copy().
- Create a separate 'return values' section and move some statements about
  return values to that section.
- Note that each invocation of va_start() and va_copy() must be paired with
  va_end() in the same function.

MFC after:	1 week
2014-02-05 17:41:00 +00:00
Bruce M Simpson
639bf7bd71 RB_FOREACH_[REVERSE_]FROM() do not require the head pointer. Reword. 2013-11-10 19:49:18 +00:00
Bruce M Simpson
bff27689a0 Document the RB_FOREACH_FROM() and RB_FOREACH_REVERSE_FROM() macros.
These are largely syntactic sugar. However, they improve code
readability where an RB_FOREACH() or RB_FOREACH_REVERSE()
traversal has been interrupted and must be resumed. Performance
is improved by avoiding unnecessary traversal from the head node.
2013-11-10 19:41:04 +00:00
Gleb Smirnoff
9dbae282ea Document RB_FOREACH_SAFE() and RB_FOREACH_REVERSE_SAFE().
Submitted by:	Mikhail <mp lenta.ru>
2013-11-04 16:56:35 +00:00
Simon J. Gerraty
d1d0158641 Merge from head 2013-09-05 20:18:59 +00:00
Lawrence Stewart
7ecb40192e 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.

Kudos to phk for suggesting the "FROM" suffix instead of my original proposal.

Reviewed by:	jhb (previous version), rpaulo
MFC after:	1 week
2013-06-18 02:57:56 +00:00
Jilles Tjoelker
67dff1b140 pthread_testcancel(3): Update list of cancellation points.
This should be a fairly complete list of cancellation points in libc, libthr
and librt, including standard as well as non-standard functions.
2013-06-11 21:40:20 +00:00
Joel Dahl
580dbd6574 mdoc: convert .Fd to .In, which is much nicer. 2013-06-04 07:37:06 +00:00
Eitan Adler
bc1062559e Start sentences on new lines. 2013-05-09 02:04:28 +00:00
Joel Dahl
cd088fc43a Remove cross-references to nonexistent CPU_SET(3) manpage.
Also fix cpu_getaffinity(2) document title.

PR:		176317
Submitted by:	brucec
2013-04-21 06:46:41 +00:00
Hiren Panchasara
c2ed16b284 Fixing a typo.
Submitted by:	Benedikt Steinbusch (benedikt.steinbusch@googlemail.com)
Approved by:	sbruno (mentor)
2013-04-15 03:02:55 +00:00
Simon J. Gerraty
69e6d7b75e sync from head 2013-04-12 20:48:55 +00:00
Joel Dahl
b1edef175b Remove contractions. 2013-04-11 18:46:41 +00:00
Simon J. Gerraty
f5f7c05209 Updated dependencies 2013-02-16 01:23:54 +00:00
Simon J. Gerraty
23090366f7 Sync from head 2012-11-04 02:52:03 +00:00
Jilles Tjoelker
4ca2a3f7d4 siginfo(3): Document TRAP_DTRACE signal code.
MFC after:	1 week
2012-09-14 22:12:04 +00:00
Jilles Tjoelker
5437c0d6ea siginfo(3): Document SI_LWP signal code.
Describe SI_LWP as being generated by pthread_kill() because thr_kill() is
a private undocumented function.

MFC after:	1 week
2012-09-14 22:10:01 +00:00
Jilles Tjoelker
a4c22c274e siginfo(3): Document SI_USER and SI_KERNEL signal codes.
MFC after:	1 week
2012-09-14 22:05:09 +00:00
Eitan Adler
eae8be706e Bump date missed in r202756
PR:		docs/171624
Submitted by:	bdrewery
Approved by:	gabor
MFC after:	3 days
2012-09-14 17:50:42 +00:00
Ed Schouten
4170b08388 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, make the code a bit more readable by introducing
__member2struct(). This makes STAILQ_LAST() far more readable.

MFC after:	1 month
2012-09-12 21:03:48 +00:00
Marcel Moolenaar
7750ad47a9 Sync FreeBSD's bmake branch with Juniper's internal bmake branch.
Requested by: Simon Gerraty <sjg@juniper.net>
2012-08-22 19:25:57 +00:00
Joel Dahl
e1f3ad3730 Remove trailing whitespace. 2012-08-21 20:40:12 +00:00