1/*
2 */
3
4/*
5 * Use the same naming scheme as libc.
6 */
7FBSD_1.0 {
8	pthread_atfork;
9	pthread_barrier_destroy;
10	pthread_barrier_init;
11	pthread_barrier_wait;
12	pthread_barrierattr_destroy;
13	pthread_barrierattr_getpshared;
14	pthread_barrierattr_init;
15	pthread_barrierattr_setpshared;
16	pthread_attr_destroy;
17	pthread_attr_get_np;
18	pthread_attr_getdetachstate;
19	pthread_attr_getguardsize;
20	pthread_attr_getinheritsched;
21	pthread_attr_getschedparam;
22	pthread_attr_getschedpolicy;
23	pthread_attr_getscope;
24	pthread_attr_getstack;
25	pthread_attr_getstackaddr;
26	pthread_attr_getstacksize;
27	pthread_attr_init;
28	pthread_attr_setcreatesuspend_np;
29	pthread_attr_setdetachstate;
30	pthread_attr_setguardsize;
31	pthread_attr_setinheritsched;
32	pthread_attr_setschedparam;
33	pthread_attr_setschedpolicy;
34	pthread_attr_setscope;
35	pthread_attr_setstack;
36	pthread_attr_setstackaddr;
37	pthread_attr_setstacksize;
38	pthread_cancel;
39	pthread_cleanup_pop;
40	pthread_cleanup_push;
41	pthread_cond_broadcast;
42	pthread_cond_destroy;
43	pthread_cond_init;
44	pthread_cond_signal;
45	pthread_cond_timedwait;
46	pthread_cond_wait;
47	pthread_condattr_destroy;
48	pthread_condattr_getclock;
49	pthread_condattr_getpshared;
50	pthread_condattr_init;
51	pthread_condattr_setclock;
52	pthread_condattr_setpshared;
53	pthread_create;
54	pthread_detach;
55	pthread_equal;
56	pthread_exit;
57	pthread_getconcurrency;
58	pthread_getprio;
59	pthread_getschedparam;
60	pthread_getspecific;
61	pthread_join;
62	pthread_key_create;
63	pthread_key_delete;
64	pthread_kill;
65	pthread_main_np;
66	pthread_multi_np;
67	pthread_mutex_destroy;
68	pthread_mutex_getprioceiling;
69	pthread_mutex_init;
70	pthread_mutex_lock;
71	pthread_mutex_setprioceiling;
72	pthread_mutex_timedlock;
73	pthread_mutex_trylock;
74	pthread_mutex_unlock;
75	pthread_mutexattr_destroy;
76	pthread_mutexattr_getkind_np;
77	pthread_mutexattr_getprioceiling;
78	pthread_mutexattr_getpshared;
79	pthread_mutexattr_getprotocol;
80	pthread_mutexattr_gettype;
81	pthread_mutexattr_init;
82	pthread_mutexattr_setkind_np;
83	pthread_mutexattr_setprioceiling;
84	pthread_mutexattr_setprotocol;
85	pthread_mutexattr_setpshared;
86	pthread_mutexattr_settype;
87	pthread_once;
88	pthread_resume_all_np;
89	pthread_resume_np;
90	pthread_rwlock_destroy;
91	pthread_rwlock_init;
92	pthread_rwlock_rdlock;
93	pthread_rwlock_timedrdlock;
94	pthread_rwlock_timedwrlock;
95	pthread_rwlock_tryrdlock;
96	pthread_rwlock_trywrlock;
97	pthread_rwlock_unlock;
98	pthread_rwlock_wrlock;
99	pthread_rwlockattr_destroy;
100	pthread_rwlockattr_getpshared;
101	pthread_rwlockattr_init;
102	pthread_rwlockattr_setpshared;
103	pthread_set_name_np;
104	pthread_self;
105	pthread_setcancelstate;
106	pthread_setcanceltype;
107	pthread_setconcurrency;
108	pthread_setprio;
109	pthread_setschedparam;
110	pthread_setspecific;
111	pthread_sigmask;
112	pthread_single_np;
113	pthread_spin_destroy;
114	pthread_spin_init;
115	pthread_spin_lock;
116	pthread_spin_trylock;
117	pthread_spin_unlock;
118	pthread_suspend_all_np;
119	pthread_suspend_np;
120	pthread_switch_add_np;
121	pthread_switch_delete_np;
122	pthread_testcancel;
123	pthread_timedjoin_np;
124	pthread_yield;
125};
126
127/*
128 * List the private interfaces reserved for use in FreeBSD libraries.
129 * These are not part of our application ABI.
130 */
131FBSDprivate_1.0 {
132	__pthread_cond_timedwait;
133	__pthread_cond_wait;
134	__pthread_cxa_finalize;
135	__pthread_mutex_init;
136	__pthread_mutex_lock;
137	__pthread_mutex_timedlock;
138	__pthread_mutex_trylock;
139	__pthread_distribute_static_tls;
140	_pthread_atfork;
141	_pthread_barrier_destroy;
142	_pthread_barrier_init;
143	_pthread_barrier_wait;
144	_pthread_barrierattr_destroy;
145	_pthread_barrierattr_getpshared;
146	_pthread_barrierattr_init;
147	_pthread_barrierattr_setpshared;
148	_pthread_attr_destroy;
149	_pthread_attr_get_np;
150	_pthread_attr_getaffinity_np;
151	_pthread_attr_getdetachstate;
152	_pthread_attr_getguardsize;
153	_pthread_attr_getinheritsched;
154	_pthread_attr_getschedparam;
155	_pthread_attr_getschedpolicy;
156	_pthread_attr_getscope;
157	_pthread_attr_getstack;
158	_pthread_attr_getstackaddr;
159	_pthread_attr_getstacksize;
160	_pthread_attr_init;
161	_pthread_attr_setaffinity_np;
162	_pthread_attr_setcreatesuspend_np;
163	_pthread_attr_setdetachstate;
164	_pthread_attr_setguardsize;
165	_pthread_attr_setinheritsched;
166	_pthread_attr_setschedparam;
167	_pthread_attr_setschedpolicy;
168	_pthread_attr_setscope;
169	_pthread_attr_setstack;
170	_pthread_attr_setstackaddr;
171	_pthread_attr_setstacksize;
172	_pthread_cancel;
173	_pthread_cancel_enter;
174	_pthread_cancel_leave;
175	_pthread_cleanup_pop;
176	_pthread_cleanup_push;
177	_pthread_cond_broadcast;
178	_pthread_cond_destroy;
179	_pthread_cond_init;
180	_pthread_cond_signal;
181	_pthread_cond_timedwait;
182	_pthread_cond_wait;
183	_pthread_condattr_destroy;
184	_pthread_condattr_getclock;
185	_pthread_condattr_getpshared;
186	_pthread_condattr_init;
187	_pthread_condattr_setclock;
188	_pthread_condattr_setpshared;
189	_pthread_create;
190	_pthread_detach;
191	_pthread_equal;
192	_pthread_exit;
193	_pthread_getaffinity_np;
194	_pthread_getconcurrency;
195	_pthread_getcpuclockid;
196	_pthread_getprio;
197	_pthread_getschedparam;
198	_pthread_getspecific;
199	_pthread_getthreadid_np;
200	_pthread_join;
201	_pthread_key_create;
202	_pthread_key_delete;
203	_pthread_kill;
204	_pthread_main_np;
205	_pthread_multi_np;
206	_pthread_mutex_destroy;
207	_pthread_mutex_getprioceiling;
208	_pthread_mutex_getspinloops_np;
209	_pthread_mutex_getyieldloops_np;
210	_pthread_mutex_init;
211	_pthread_mutex_init_calloc_cb;
212	_pthread_mutex_isowned_np;
213	_pthread_mutex_lock;
214	_pthread_mutex_setprioceiling;
215	_pthread_mutex_setspinloops_np;
216	_pthread_mutex_setyieldloops_np;
217	_pthread_mutex_timedlock;
218	_pthread_mutex_trylock;
219	_pthread_mutex_unlock;
220	_pthread_mutexattr_destroy;
221	_pthread_mutexattr_getkind_np;
222	_pthread_mutexattr_getprioceiling;
223	_pthread_mutexattr_getprotocol;
224	_pthread_mutexattr_getpshared;
225	_pthread_mutexattr_gettype;
226	_pthread_mutexattr_init;
227	_pthread_mutexattr_setkind_np;
228	_pthread_mutexattr_setprioceiling;
229	_pthread_mutexattr_setprotocol;
230	_pthread_mutexattr_setpshared;
231	_pthread_mutexattr_settype;
232	_pthread_once;
233	_pthread_resume_all_np;
234	_pthread_resume_np;
235	_pthread_rwlock_destroy;
236	_pthread_rwlock_init;
237	_pthread_rwlock_rdlock;
238	_pthread_rwlock_timedrdlock;
239	_pthread_rwlock_timedwrlock;
240	_pthread_rwlock_tryrdlock;
241	_pthread_rwlock_trywrlock;
242	_pthread_rwlock_unlock;
243	_pthread_rwlock_wrlock;
244	_pthread_rwlockattr_destroy;
245	_pthread_rwlockattr_getpshared;
246	_pthread_rwlockattr_init;
247	_pthread_rwlockattr_setpshared;
248	_pthread_self;
249	_pthread_set_name_np;
250	_pthread_setaffinity_np;
251	_pthread_setcancelstate;
252	_pthread_setcanceltype;
253	_pthread_setconcurrency;
254	_pthread_setprio;
255	_pthread_setschedparam;
256	_pthread_setspecific;
257	_pthread_sigmask;
258	_pthread_single_np;
259	_pthread_spin_destroy;
260	_pthread_spin_init;
261	_pthread_spin_lock;
262	_pthread_spin_trylock;
263	_pthread_spin_unlock;
264	_pthread_suspend_all_np;
265	_pthread_suspend_np;
266	_pthread_switch_add_np;
267	_pthread_switch_delete_np;
268	_pthread_testcancel;
269	_pthread_timedjoin_np;
270	_pthread_yield;
271
272	/* Debugger needs these. */
273	_libthr_debug;
274	_thread_active_threads;
275	_thread_bp_create;
276	_thread_bp_death;
277	_thread_event_mask;
278	_thread_keytable;
279	_thread_last_event;
280	_thread_list;
281	_thread_max_keys;
282	_thread_off_attr_flags;
283	_thread_off_dtv;
284	_thread_off_event_buf;
285	_thread_off_event_mask;
286	_thread_off_key_allocated;
287	_thread_off_key_destructor;
288	_thread_off_linkmap;
289	_thread_off_next;
290	_thread_off_report_events;
291	_thread_off_state;
292	_thread_off_tcb;
293	_thread_off_tid;
294	_thread_off_tlsindex;
295	_thread_size_key;
296	_thread_state_running;
297	_thread_state_zoombie;
298
299	/* ABI bug workaround, indicate that pli->rtli_version is valid */
300	_pli_rtli_version;
301
302	/* Expose stub for libsys filter */
303	_umtx_op_err;
304};
305
306FBSD_1.1 {
307	__pthread_cleanup_pop_imp;
308	__pthread_cleanup_push_imp;
309	pthread_attr_getaffinity_np;
310	pthread_attr_setaffinity_np;
311	pthread_getaffinity_np;
312	pthread_getcpuclockid;
313	pthread_setaffinity_np;
314	pthread_mutex_getspinloops_np;
315	pthread_mutex_getyieldloops_np;
316	pthread_mutex_isowned_np;
317	pthread_mutex_setspinloops_np;
318	pthread_mutex_setyieldloops_np;
319};
320
321FBSD_1.2 {
322	pthread_getthreadid_np;
323};
324
325FBSD_1.4 {
326	 pthread_mutex_consistent;
327	 pthread_mutexattr_getrobust;
328	 pthread_mutexattr_setrobust;
329};
330
331FBSD_1.5 {
332	 pthread_get_name_np;
333};
334
335FBSD_1.6 {
336	 pthread_getname_np;
337	 pthread_peekjoin_np;
338	 pthread_setname_np;
339};
340
341FBSD_1.8 {
342	 pthread_sigqueue;
343};
344