1*fc2512cfSRobert Mustacchi#
2*fc2512cfSRobert Mustacchi# This file and its contents are supplied under the terms of the
3*fc2512cfSRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0.
4*fc2512cfSRobert Mustacchi# You may only use this file in accordance with the terms of version
5*fc2512cfSRobert Mustacchi# 1.0 of the CDDL.
6*fc2512cfSRobert Mustacchi#
7*fc2512cfSRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this
8*fc2512cfSRobert Mustacchi# source.  A copy of the CDDL is also available via the Internet at
9*fc2512cfSRobert Mustacchi# http://www.illumos.org/license/CDDL.
10*fc2512cfSRobert Mustacchi#
11*fc2512cfSRobert Mustacchi
12*fc2512cfSRobert Mustacchi#
13*fc2512cfSRobert Mustacchi# Copyright 2016 Joyent, Inc.
14*fc2512cfSRobert Mustacchi#
15*fc2512cfSRobert Mustacchi
16*fc2512cfSRobert Mustacchi#
17*fc2512cfSRobert Mustacchi# Definitions found in stddef.h
18*fc2512cfSRobert Mustacchi#
19*fc2512cfSRobert Mustacchi
20*fc2512cfSRobert Mustacchi#
21*fc2512cfSRobert Mustacchi# Types
22*fc2512cfSRobert Mustacchi#
23*fc2512cfSRobert Mustacchitype | cnd_t		| threads.h | -ALL +C11
24*fc2512cfSRobert Mustacchitype | thrd_t		| threads.h | -ALL +C11
25*fc2512cfSRobert Mustacchitype | tss_t		| threads.h | -ALL +C11
26*fc2512cfSRobert Mustacchitype | mtx_t		| threads.h | -ALL +C11
27*fc2512cfSRobert Mustacchitype | once_flag	| threads.h | -ALL +C11
28*fc2512cfSRobert Mustacchitype | tss_dtor_t	| threads.h | -ALL +C11
29*fc2512cfSRobert Mustacchitype | thrd_start_t	| threads.h | -ALL +C11
30*fc2512cfSRobert Mustacchi
31*fc2512cfSRobert Mustacchi#
32*fc2512cfSRobert Mustacchi# Values.
33*fc2512cfSRobert Mustacchi#
34*fc2512cfSRobert Mustacchivalue | mtx_plain	| int	| threads.h	| -ALL +C11
35*fc2512cfSRobert Mustacchivalue | mtx_recursive	| int	| threads.h	| -ALL +C11
36*fc2512cfSRobert Mustacchivalue | mtx_timed	| int	| threads.h	| -ALL +C11
37*fc2512cfSRobert Mustacchivalue | thrd_success	| int	| threads.h	| -ALL +C11
38*fc2512cfSRobert Mustacchivalue | thrd_error	| int	| threads.h	| -ALL +C11
39*fc2512cfSRobert Mustacchivalue | thrd_busy	| int	| threads.h	| -ALL +C11
40*fc2512cfSRobert Mustacchivalue | thrd_timedout	| int	| threads.h	| -ALL +C11
41*fc2512cfSRobert Mustacchivalue | thrd_nomem	| int	| threads.h	| -ALL +C11
42*fc2512cfSRobert Mustacchi
43*fc2512cfSRobert Mustacchi#
44*fc2512cfSRobert Mustacchi# Defines
45*fc2512cfSRobert Mustacchi#
46*fc2512cfSRobert Mustacchidefine | thread_local		|	| threads.h	| -ALL +C11
47*fc2512cfSRobert Mustacchidefine | ONCE_FLAG_INIT 	|	| threads.h	| -ALL +C11
48*fc2512cfSRobert Mustacchidefine | TSS_DTOR_ITERATIONS	|	| threads.h	| -ALL +C11
49*fc2512cfSRobert Mustacchi
50*fc2512cfSRobert Mustacchi#
51*fc2512cfSRobert Mustacchi# Functions
52*fc2512cfSRobert Mustacchi#
53*fc2512cfSRobert Mustacchifunc | call_once					|\
54*fc2512cfSRobert Mustacchi	void						|\
55*fc2512cfSRobert Mustacchi	once_flag *; void (*)(void)			|\
56*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
57*fc2512cfSRobert Mustacchi
58*fc2512cfSRobert Mustacchifunc | cnd_broadcast					|\
59*fc2512cfSRobert Mustacchi	int						|\
60*fc2512cfSRobert Mustacchi	cnd_t *						|\
61*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
62*fc2512cfSRobert Mustacchi
63*fc2512cfSRobert Mustacchifunc | cnd_destroy					|\
64*fc2512cfSRobert Mustacchi	void						|\
65*fc2512cfSRobert Mustacchi	cnd_t *						|\
66*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
67*fc2512cfSRobert Mustacchi
68*fc2512cfSRobert Mustacchifunc | cnd_init						|\
69*fc2512cfSRobert Mustacchi	int						|\
70*fc2512cfSRobert Mustacchi	cnd_t *						|\
71*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
72*fc2512cfSRobert Mustacchi
73*fc2512cfSRobert Mustacchifunc | cnd_signal					|\
74*fc2512cfSRobert Mustacchi	int						|\
75*fc2512cfSRobert Mustacchi	cnd_t *						|\
76*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
77*fc2512cfSRobert Mustacchi
78*fc2512cfSRobert Mustacchifunc | cnd_timedwait					|\
79*fc2512cfSRobert Mustacchi	int						|\
80*fc2512cfSRobert Mustacchi	cnd_t *; mtx_t *; const struct timespec *	|\
81*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
82*fc2512cfSRobert Mustacchi
83*fc2512cfSRobert Mustacchifunc | cnd_wait						|\
84*fc2512cfSRobert Mustacchi	int						|\
85*fc2512cfSRobert Mustacchi	cnd_t *; mtx_t *				|\
86*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
87*fc2512cfSRobert Mustacchi
88*fc2512cfSRobert Mustacchifunc | mtx_destroy					|\
89*fc2512cfSRobert Mustacchi	void						|\
90*fc2512cfSRobert Mustacchi	mtx_t *						|\
91*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
92*fc2512cfSRobert Mustacchi
93*fc2512cfSRobert Mustacchifunc | mtx_init						|\
94*fc2512cfSRobert Mustacchi	int						|\
95*fc2512cfSRobert Mustacchi	mtx_t *; int					|\
96*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
97*fc2512cfSRobert Mustacchi
98*fc2512cfSRobert Mustacchifunc | mtx_lock						|\
99*fc2512cfSRobert Mustacchi	int						|\
100*fc2512cfSRobert Mustacchi	mtx_t *						|\
101*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
102*fc2512cfSRobert Mustacchi
103*fc2512cfSRobert Mustacchifunc | mtx_timedlock					|\
104*fc2512cfSRobert Mustacchi	int						|\
105*fc2512cfSRobert Mustacchi	mtx_t *; const struct timespec *		|\
106*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
107*fc2512cfSRobert Mustacchi
108*fc2512cfSRobert Mustacchifunc | mtx_trylock					|\
109*fc2512cfSRobert Mustacchi	int						|\
110*fc2512cfSRobert Mustacchi	mtx_t *						|\
111*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
112*fc2512cfSRobert Mustacchi
113*fc2512cfSRobert Mustacchifunc | mtx_unlock					|\
114*fc2512cfSRobert Mustacchi	int						|\
115*fc2512cfSRobert Mustacchi	mtx_t *						|\
116*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
117*fc2512cfSRobert Mustacchi
118*fc2512cfSRobert Mustacchifunc | thrd_create					|\
119*fc2512cfSRobert Mustacchi	int						|\
120*fc2512cfSRobert Mustacchi	thrd_t *; thrd_start_t; void *			|\
121*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
122*fc2512cfSRobert Mustacchi
123*fc2512cfSRobert Mustacchifunc | thrd_current					|\
124*fc2512cfSRobert Mustacchi	thrd_t						|\
125*fc2512cfSRobert Mustacchi	void						|\
126*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
127*fc2512cfSRobert Mustacchi
128*fc2512cfSRobert Mustacchifunc | thrd_detach					|\
129*fc2512cfSRobert Mustacchi	int						|\
130*fc2512cfSRobert Mustacchi	thrd_t						|\
131*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
132*fc2512cfSRobert Mustacchi
133*fc2512cfSRobert Mustacchifunc | thrd_equal					|\
134*fc2512cfSRobert Mustacchi	int						|\
135*fc2512cfSRobert Mustacchi	thrd_t; thrd_t					|\
136*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
137*fc2512cfSRobert Mustacchi
138*fc2512cfSRobert Mustacchifunc | thrd_exit					|\
139*fc2512cfSRobert Mustacchi	void						|\
140*fc2512cfSRobert Mustacchi	int						|\
141*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
142*fc2512cfSRobert Mustacchi
143*fc2512cfSRobert Mustacchifunc | thrd_join					|\
144*fc2512cfSRobert Mustacchi	int						|\
145*fc2512cfSRobert Mustacchi	thrd_t; int *					|\
146*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
147*fc2512cfSRobert Mustacchi
148*fc2512cfSRobert Mustacchifunc | thrd_sleep					|\
149*fc2512cfSRobert Mustacchi	int						|\
150*fc2512cfSRobert Mustacchi	const struct timespec *; struct timespec *	|\
151*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
152*fc2512cfSRobert Mustacchi
153*fc2512cfSRobert Mustacchifunc | thrd_yield				|\
154*fc2512cfSRobert Mustacchi	void					|\
155*fc2512cfSRobert Mustacchi	void					|\
156*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
157*fc2512cfSRobert Mustacchi
158*fc2512cfSRobert Mustacchifunc | tss_create				|\
159*fc2512cfSRobert Mustacchi	int					|\
160*fc2512cfSRobert Mustacchi	tss_t *; tss_dtor_t			|\
161*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
162*fc2512cfSRobert Mustacchi
163*fc2512cfSRobert Mustacchifunc | tss_delete				|\
164*fc2512cfSRobert Mustacchi	void					|\
165*fc2512cfSRobert Mustacchi	tss_t					|\
166*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
167*fc2512cfSRobert Mustacchi
168*fc2512cfSRobert Mustacchifunc | tss_get					|\
169*fc2512cfSRobert Mustacchi	void *					|\
170*fc2512cfSRobert Mustacchi	tss_t					|\
171*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
172*fc2512cfSRobert Mustacchi
173*fc2512cfSRobert Mustacchifunc | tss_set					|\
174*fc2512cfSRobert Mustacchi	int					|\
175*fc2512cfSRobert Mustacchi	tss_t; void *				|\
176*fc2512cfSRobert Mustacchi	threads.h | -ALL +C11
177