1*1dc4a592SRobert Mustacchi#
2*1dc4a592SRobert Mustacchi# This file and its contents are supplied under the terms of the
3*1dc4a592SRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0.
4*1dc4a592SRobert Mustacchi# You may only use this file in accordance with the terms of version
5*1dc4a592SRobert Mustacchi# 1.0 of the CDDL.
6*1dc4a592SRobert Mustacchi#
7*1dc4a592SRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this
8*1dc4a592SRobert Mustacchi# source.  A copy of the CDDL is also available via the Internet at
9*1dc4a592SRobert Mustacchi# http://www.illumos.org/license/CDDL.
10*1dc4a592SRobert Mustacchi#
11*1dc4a592SRobert Mustacchi
12*1dc4a592SRobert Mustacchi#
13*1dc4a592SRobert Mustacchi# Copyright 2022 Oxide Computer Company
14*1dc4a592SRobert Mustacchi#
15*1dc4a592SRobert Mustacchi
16*1dc4a592SRobert Mustacchi#
17*1dc4a592SRobert Mustacchi# Definitions found in sys/atomic.h. Note, this is a non-standard header
18*1dc4a592SRobert Mustacchi# so including it means that everything will always be visible. This is
19*1dc4a592SRobert Mustacchi# included as part of regression tests for #14329. We are currently
20*1dc4a592SRobert Mustacchi# assuming the following here:
21*1dc4a592SRobert Mustacchi#
22*1dc4a592SRobert Mustacchi#  o _ASM_INLINES is not defined (this is generally only used in the
23*1dc4a592SRobert Mustacchi#    kernel)
24*1dc4a592SRobert Mustacchi#
25*1dc4a592SRobert Mustacchi
26*1dc4a592SRobert Mustacchi#
27*1dc4a592SRobert Mustacchi# Types
28*1dc4a592SRobert Mustacchi#
29*1dc4a592SRobert Mustacchi
30*1dc4a592SRobert Mustacchi#
31*1dc4a592SRobert Mustacchi# Values.
32*1dc4a592SRobert Mustacchi#
33*1dc4a592SRobert Mustacchi
34*1dc4a592SRobert Mustacchi#
35*1dc4a592SRobert Mustacchi# Defines
36*1dc4a592SRobert Mustacchi#
37*1dc4a592SRobert Mustacchi
38*1dc4a592SRobert Mustacchi#
39*1dc4a592SRobert Mustacchi# Functions
40*1dc4a592SRobert Mustacchi#
41*1dc4a592SRobert Mustacchifunc | atomic_inc_8					|\
42*1dc4a592SRobert Mustacchi	void						|\
43*1dc4a592SRobert Mustacchi	volatile uint8_t *				|\
44*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
45*1dc4a592SRobert Mustacchi
46*1dc4a592SRobert Mustacchifunc | atomic_inc_uchar					|\
47*1dc4a592SRobert Mustacchi	void						|\
48*1dc4a592SRobert Mustacchi	volatile uchar_t *				|\
49*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
50*1dc4a592SRobert Mustacchi
51*1dc4a592SRobert Mustacchifunc | atomic_inc_16					|\
52*1dc4a592SRobert Mustacchi	void						|\
53*1dc4a592SRobert Mustacchi	volatile uint16_t *				|\
54*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
55*1dc4a592SRobert Mustacchi
56*1dc4a592SRobert Mustacchifunc | atomic_inc_ushort				|\
57*1dc4a592SRobert Mustacchi	void						|\
58*1dc4a592SRobert Mustacchi	volatile ushort_t *				|\
59*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
60*1dc4a592SRobert Mustacchi
61*1dc4a592SRobert Mustacchifunc | atomic_inc_32					|\
62*1dc4a592SRobert Mustacchi	void						|\
63*1dc4a592SRobert Mustacchi	volatile uint32_t *				|\
64*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
65*1dc4a592SRobert Mustacchi
66*1dc4a592SRobert Mustacchifunc | atomic_inc_uint					|\
67*1dc4a592SRobert Mustacchi	void						|\
68*1dc4a592SRobert Mustacchi	volatile uint_t *				|\
69*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
70*1dc4a592SRobert Mustacchi
71*1dc4a592SRobert Mustacchifunc | atomic_inc_ulong					|\
72*1dc4a592SRobert Mustacchi	void						|\
73*1dc4a592SRobert Mustacchi	volatile ulong_t *				|\
74*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
75*1dc4a592SRobert Mustacchi
76*1dc4a592SRobert Mustacchifunc | atomic_inc_64					|\
77*1dc4a592SRobert Mustacchi	void						|\
78*1dc4a592SRobert Mustacchi	volatile uint64_t *				|\
79*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
80*1dc4a592SRobert Mustacchi
81*1dc4a592SRobert Mustacchifunc | atomic_dec_8					|\
82*1dc4a592SRobert Mustacchi	void						|\
83*1dc4a592SRobert Mustacchi	volatile uint8_t *				|\
84*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
85*1dc4a592SRobert Mustacchi
86*1dc4a592SRobert Mustacchifunc | atomic_dec_uchar					|\
87*1dc4a592SRobert Mustacchi	void						|\
88*1dc4a592SRobert Mustacchi	volatile uchar_t *				|\
89*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
90*1dc4a592SRobert Mustacchi
91*1dc4a592SRobert Mustacchifunc | atomic_dec_16					|\
92*1dc4a592SRobert Mustacchi	void						|\
93*1dc4a592SRobert Mustacchi	volatile uint16_t *				|\
94*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
95*1dc4a592SRobert Mustacchi
96*1dc4a592SRobert Mustacchifunc | atomic_dec_ushort				|\
97*1dc4a592SRobert Mustacchi	void						|\
98*1dc4a592SRobert Mustacchi	volatile ushort_t *				|\
99*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
100*1dc4a592SRobert Mustacchi
101*1dc4a592SRobert Mustacchifunc | atomic_dec_32					|\
102*1dc4a592SRobert Mustacchi	void						|\
103*1dc4a592SRobert Mustacchi	volatile uint32_t *				|\
104*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
105*1dc4a592SRobert Mustacchi
106*1dc4a592SRobert Mustacchifunc | atomic_dec_uint					|\
107*1dc4a592SRobert Mustacchi	void						|\
108*1dc4a592SRobert Mustacchi	volatile uint_t *				|\
109*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
110*1dc4a592SRobert Mustacchi
111*1dc4a592SRobert Mustacchifunc | atomic_dec_ulong					|\
112*1dc4a592SRobert Mustacchi	void						|\
113*1dc4a592SRobert Mustacchi	volatile ulong_t *				|\
114*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
115*1dc4a592SRobert Mustacchi
116*1dc4a592SRobert Mustacchifunc | atomic_dec_64					|\
117*1dc4a592SRobert Mustacchi	void						|\
118*1dc4a592SRobert Mustacchi	volatile uint64_t *				|\
119*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
120*1dc4a592SRobert Mustacchi
121*1dc4a592SRobert Mustacchifunc | atomic_add_8					|\
122*1dc4a592SRobert Mustacchi	void						|\
123*1dc4a592SRobert Mustacchi	volatile uint8_t *; int8_t			|\
124*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
125*1dc4a592SRobert Mustacchi
126*1dc4a592SRobert Mustacchifunc | atomic_add_char					|\
127*1dc4a592SRobert Mustacchi	void						|\
128*1dc4a592SRobert Mustacchi	volatile uchar_t *; signed char			|\
129*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
130*1dc4a592SRobert Mustacchi
131*1dc4a592SRobert Mustacchifunc | atomic_add_16					|\
132*1dc4a592SRobert Mustacchi	void						|\
133*1dc4a592SRobert Mustacchi	volatile uint16_t *; int16_t			|\
134*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
135*1dc4a592SRobert Mustacchi
136*1dc4a592SRobert Mustacchifunc | atomic_add_short					|\
137*1dc4a592SRobert Mustacchi	void						|\
138*1dc4a592SRobert Mustacchi	volatile ushort_t *; short			|\
139*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
140*1dc4a592SRobert Mustacchi
141*1dc4a592SRobert Mustacchifunc | atomic_add_32					|\
142*1dc4a592SRobert Mustacchi	void						|\
143*1dc4a592SRobert Mustacchi	volatile uint32_t *; int32_t			|\
144*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
145*1dc4a592SRobert Mustacchi
146*1dc4a592SRobert Mustacchifunc | atomic_add_int					|\
147*1dc4a592SRobert Mustacchi	void						|\
148*1dc4a592SRobert Mustacchi	volatile uint_t *; int				|\
149*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
150*1dc4a592SRobert Mustacchi
151*1dc4a592SRobert Mustacchifunc | atomic_add_ptr					|\
152*1dc4a592SRobert Mustacchi	void						|\
153*1dc4a592SRobert Mustacchi	volatile void *; ssize_t			|\
154*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
155*1dc4a592SRobert Mustacchi
156*1dc4a592SRobert Mustacchifunc | atomic_add_long					|\
157*1dc4a592SRobert Mustacchi	void						|\
158*1dc4a592SRobert Mustacchi	volatile ulong_t *; long			|\
159*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
160*1dc4a592SRobert Mustacchi
161*1dc4a592SRobert Mustacchifunc | atomic_add_64					|\
162*1dc4a592SRobert Mustacchi	void						|\
163*1dc4a592SRobert Mustacchi	volatile uint64_t *; int64_t			|\
164*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
165*1dc4a592SRobert Mustacchi
166*1dc4a592SRobert Mustacchifunc | atomic_or_8					|\
167*1dc4a592SRobert Mustacchi	void						|\
168*1dc4a592SRobert Mustacchi	volatile uint8_t *; uint8_t			|\
169*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
170*1dc4a592SRobert Mustacchi
171*1dc4a592SRobert Mustacchifunc | atomic_or_uchar					|\
172*1dc4a592SRobert Mustacchi	void						|\
173*1dc4a592SRobert Mustacchi	volatile uchar_t *; uchar_t			|\
174*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
175*1dc4a592SRobert Mustacchi
176*1dc4a592SRobert Mustacchifunc | atomic_or_16					|\
177*1dc4a592SRobert Mustacchi	void						|\
178*1dc4a592SRobert Mustacchi	volatile uint16_t *; uint16_t			|\
179*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
180*1dc4a592SRobert Mustacchi
181*1dc4a592SRobert Mustacchifunc | atomic_or_ushort					|\
182*1dc4a592SRobert Mustacchi	void						|\
183*1dc4a592SRobert Mustacchi	volatile ushort_t *; ushort_t			|\
184*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
185*1dc4a592SRobert Mustacchi
186*1dc4a592SRobert Mustacchifunc | atomic_or_32					|\
187*1dc4a592SRobert Mustacchi	void						|\
188*1dc4a592SRobert Mustacchi	volatile uint32_t *; uint32_t			|\
189*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
190*1dc4a592SRobert Mustacchi
191*1dc4a592SRobert Mustacchifunc | atomic_or_uint					|\
192*1dc4a592SRobert Mustacchi	void						|\
193*1dc4a592SRobert Mustacchi	volatile uint_t *; uint_t			|\
194*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
195*1dc4a592SRobert Mustacchi
196*1dc4a592SRobert Mustacchifunc | atomic_or_ulong					|\
197*1dc4a592SRobert Mustacchi	void						|\
198*1dc4a592SRobert Mustacchi	volatile ulong_t *; ulong_t			|\
199*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
200*1dc4a592SRobert Mustacchi
201*1dc4a592SRobert Mustacchifunc | atomic_or_64					|\
202*1dc4a592SRobert Mustacchi	void						|\
203*1dc4a592SRobert Mustacchi	volatile uint64_t *; uint64_t			|\
204*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
205*1dc4a592SRobert Mustacchi
206*1dc4a592SRobert Mustacchifunc | atomic_and_8					|\
207*1dc4a592SRobert Mustacchi	void						|\
208*1dc4a592SRobert Mustacchi	volatile uint8_t *; uint8_t			|\
209*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
210*1dc4a592SRobert Mustacchi
211*1dc4a592SRobert Mustacchifunc | atomic_and_uchar					|\
212*1dc4a592SRobert Mustacchi	void						|\
213*1dc4a592SRobert Mustacchi	volatile uchar_t *; uchar_t			|\
214*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
215*1dc4a592SRobert Mustacchi
216*1dc4a592SRobert Mustacchifunc | atomic_and_16					|\
217*1dc4a592SRobert Mustacchi	void						|\
218*1dc4a592SRobert Mustacchi	volatile uint16_t *; uint16_t			|\
219*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
220*1dc4a592SRobert Mustacchi
221*1dc4a592SRobert Mustacchifunc | atomic_and_ushort				|\
222*1dc4a592SRobert Mustacchi	void						|\
223*1dc4a592SRobert Mustacchi	volatile ushort_t *; ushort_t			|\
224*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
225*1dc4a592SRobert Mustacchi
226*1dc4a592SRobert Mustacchifunc | atomic_and_32					|\
227*1dc4a592SRobert Mustacchi	void						|\
228*1dc4a592SRobert Mustacchi	volatile uint32_t *; uint32_t			|\
229*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
230*1dc4a592SRobert Mustacchi
231*1dc4a592SRobert Mustacchifunc | atomic_and_uint					|\
232*1dc4a592SRobert Mustacchi	void						|\
233*1dc4a592SRobert Mustacchi	volatile uint_t *; uint_t			|\
234*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
235*1dc4a592SRobert Mustacchi
236*1dc4a592SRobert Mustacchifunc | atomic_and_ulong					|\
237*1dc4a592SRobert Mustacchi	void						|\
238*1dc4a592SRobert Mustacchi	volatile ulong_t *; ulong_t			|\
239*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
240*1dc4a592SRobert Mustacchi
241*1dc4a592SRobert Mustacchifunc | atomic_and_64					|\
242*1dc4a592SRobert Mustacchi	void						|\
243*1dc4a592SRobert Mustacchi	volatile uint64_t *; uint64_t			|\
244*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
245*1dc4a592SRobert Mustacchi
246*1dc4a592SRobert Mustacchifunc | atomic_inc_8_nv					|\
247*1dc4a592SRobert Mustacchi	uint8_t						|\
248*1dc4a592SRobert Mustacchi	volatile uint8_t *				|\
249*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
250*1dc4a592SRobert Mustacchi
251*1dc4a592SRobert Mustacchifunc | atomic_inc_uchar_nv				|\
252*1dc4a592SRobert Mustacchi	uchar_t						|\
253*1dc4a592SRobert Mustacchi	volatile uchar_t *				|\
254*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
255*1dc4a592SRobert Mustacchi
256*1dc4a592SRobert Mustacchifunc | atomic_inc_16_nv					|\
257*1dc4a592SRobert Mustacchi	uint16_t					|\
258*1dc4a592SRobert Mustacchi	volatile uint16_t *				|\
259*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
260*1dc4a592SRobert Mustacchi
261*1dc4a592SRobert Mustacchifunc | atomic_inc_ushort_nv				|\
262*1dc4a592SRobert Mustacchi	ushort_t					|\
263*1dc4a592SRobert Mustacchi	volatile ushort_t *				|\
264*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
265*1dc4a592SRobert Mustacchi
266*1dc4a592SRobert Mustacchifunc | atomic_inc_32_nv					|\
267*1dc4a592SRobert Mustacchi	uint32_t					|\
268*1dc4a592SRobert Mustacchi	volatile uint32_t *				|\
269*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
270*1dc4a592SRobert Mustacchi
271*1dc4a592SRobert Mustacchifunc | atomic_inc_uint_nv				|\
272*1dc4a592SRobert Mustacchi	uint_t						|\
273*1dc4a592SRobert Mustacchi	volatile uint_t *				|\
274*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
275*1dc4a592SRobert Mustacchi
276*1dc4a592SRobert Mustacchifunc | atomic_inc_ulong_nv				|\
277*1dc4a592SRobert Mustacchi	ulong_t						|\
278*1dc4a592SRobert Mustacchi	volatile ulong_t *				|\
279*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
280*1dc4a592SRobert Mustacchi
281*1dc4a592SRobert Mustacchifunc | atomic_inc_64_nv					|\
282*1dc4a592SRobert Mustacchi	uint64_t					|\
283*1dc4a592SRobert Mustacchi	volatile uint64_t *				|\
284*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
285*1dc4a592SRobert Mustacchi
286*1dc4a592SRobert Mustacchifunc | atomic_dec_8_nv					|\
287*1dc4a592SRobert Mustacchi	uint8_t						|\
288*1dc4a592SRobert Mustacchi	volatile uint8_t *				|\
289*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
290*1dc4a592SRobert Mustacchi
291*1dc4a592SRobert Mustacchifunc | atomic_dec_uchar_nv				|\
292*1dc4a592SRobert Mustacchi	uchar_t						|\
293*1dc4a592SRobert Mustacchi	volatile uchar_t *				|\
294*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
295*1dc4a592SRobert Mustacchi
296*1dc4a592SRobert Mustacchifunc | atomic_dec_16_nv					|\
297*1dc4a592SRobert Mustacchi	uint16_t					|\
298*1dc4a592SRobert Mustacchi	volatile uint16_t *				|\
299*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
300*1dc4a592SRobert Mustacchi
301*1dc4a592SRobert Mustacchifunc | atomic_dec_ushort_nv				|\
302*1dc4a592SRobert Mustacchi	ushort_t					|\
303*1dc4a592SRobert Mustacchi	volatile ushort_t *				|\
304*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
305*1dc4a592SRobert Mustacchi
306*1dc4a592SRobert Mustacchifunc | atomic_dec_32_nv					|\
307*1dc4a592SRobert Mustacchi	uint32_t					|\
308*1dc4a592SRobert Mustacchi	volatile uint32_t *				|\
309*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
310*1dc4a592SRobert Mustacchi
311*1dc4a592SRobert Mustacchifunc | atomic_dec_uint_nv				|\
312*1dc4a592SRobert Mustacchi	uint_t						|\
313*1dc4a592SRobert Mustacchi	volatile uint_t *				|\
314*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
315*1dc4a592SRobert Mustacchi
316*1dc4a592SRobert Mustacchifunc | atomic_dec_ulong_nv				|\
317*1dc4a592SRobert Mustacchi	ulong_t						|\
318*1dc4a592SRobert Mustacchi	volatile ulong_t *				|\
319*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
320*1dc4a592SRobert Mustacchi
321*1dc4a592SRobert Mustacchifunc | atomic_dec_64_nv					|\
322*1dc4a592SRobert Mustacchi	uint64_t					|\
323*1dc4a592SRobert Mustacchi	volatile uint64_t *				|\
324*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
325*1dc4a592SRobert Mustacchi
326*1dc4a592SRobert Mustacchifunc | atomic_add_8_nv					|\
327*1dc4a592SRobert Mustacchi	uint8_t						|\
328*1dc4a592SRobert Mustacchi	volatile uint8_t *; int8_t			|\
329*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
330*1dc4a592SRobert Mustacchi
331*1dc4a592SRobert Mustacchifunc | atomic_add_char_nv				|\
332*1dc4a592SRobert Mustacchi	uchar_t						|\
333*1dc4a592SRobert Mustacchi	volatile uchar_t *; signed char			|\
334*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
335*1dc4a592SRobert Mustacchi
336*1dc4a592SRobert Mustacchifunc | atomic_add_16_nv					|\
337*1dc4a592SRobert Mustacchi	uint16_t					|\
338*1dc4a592SRobert Mustacchi	volatile uint16_t *; int16_t			|\
339*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
340*1dc4a592SRobert Mustacchi
341*1dc4a592SRobert Mustacchifunc | atomic_add_short_nv				|\
342*1dc4a592SRobert Mustacchi	ushort_t					|\
343*1dc4a592SRobert Mustacchi	volatile ushort_t *; short			|\
344*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
345*1dc4a592SRobert Mustacchi
346*1dc4a592SRobert Mustacchifunc | atomic_add_32_nv					|\
347*1dc4a592SRobert Mustacchi	uint32_t					|\
348*1dc4a592SRobert Mustacchi	volatile uint32_t *; int32_t			|\
349*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
350*1dc4a592SRobert Mustacchi
351*1dc4a592SRobert Mustacchifunc | atomic_add_int_nv				|\
352*1dc4a592SRobert Mustacchi	uint_t						|\
353*1dc4a592SRobert Mustacchi	volatile uint_t *; int				|\
354*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
355*1dc4a592SRobert Mustacchi
356*1dc4a592SRobert Mustacchifunc | atomic_add_ptr_nv				|\
357*1dc4a592SRobert Mustacchi	void *						|\
358*1dc4a592SRobert Mustacchi	volatile void *; ssize_t			|\
359*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
360*1dc4a592SRobert Mustacchi
361*1dc4a592SRobert Mustacchifunc | atomic_add_long_nv				|\
362*1dc4a592SRobert Mustacchi	ulong_t						|\
363*1dc4a592SRobert Mustacchi	volatile ulong_t *; long			|\
364*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
365*1dc4a592SRobert Mustacchi
366*1dc4a592SRobert Mustacchifunc | atomic_add_64_nv					|\
367*1dc4a592SRobert Mustacchi	uint64_t					|\
368*1dc4a592SRobert Mustacchi	volatile uint64_t *; int64_t			|\
369*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
370*1dc4a592SRobert Mustacchi
371*1dc4a592SRobert Mustacchifunc | atomic_or_8_nv					|\
372*1dc4a592SRobert Mustacchi	uint8_t						|\
373*1dc4a592SRobert Mustacchi	volatile uint8_t *; uint8_t			|\
374*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
375*1dc4a592SRobert Mustacchi
376*1dc4a592SRobert Mustacchifunc | atomic_or_uchar_nv				|\
377*1dc4a592SRobert Mustacchi	uchar_t						|\
378*1dc4a592SRobert Mustacchi	volatile uchar_t *; uchar_t			|\
379*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
380*1dc4a592SRobert Mustacchi
381*1dc4a592SRobert Mustacchifunc | atomic_or_16_nv					|\
382*1dc4a592SRobert Mustacchi	uint16_t					|\
383*1dc4a592SRobert Mustacchi	volatile uint16_t *; uint16_t			|\
384*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
385*1dc4a592SRobert Mustacchi
386*1dc4a592SRobert Mustacchifunc | atomic_or_ushort_nv				|\
387*1dc4a592SRobert Mustacchi	ushort_t					|\
388*1dc4a592SRobert Mustacchi	volatile ushort_t *; ushort_t			|\
389*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
390*1dc4a592SRobert Mustacchi
391*1dc4a592SRobert Mustacchifunc | atomic_or_32_nv					|\
392*1dc4a592SRobert Mustacchi	uint32_t					|\
393*1dc4a592SRobert Mustacchi	volatile uint32_t *; uint32_t			|\
394*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
395*1dc4a592SRobert Mustacchi
396*1dc4a592SRobert Mustacchifunc | atomic_or_uint_nv				|\
397*1dc4a592SRobert Mustacchi	uint_t						|\
398*1dc4a592SRobert Mustacchi	volatile uint_t *; uint_t			|\
399*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
400*1dc4a592SRobert Mustacchi
401*1dc4a592SRobert Mustacchifunc | atomic_or_ulong_nv				|\
402*1dc4a592SRobert Mustacchi	ulong_t						|\
403*1dc4a592SRobert Mustacchi	volatile ulong_t *; ulong_t			|\
404*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
405*1dc4a592SRobert Mustacchi
406*1dc4a592SRobert Mustacchifunc | atomic_or_64_nv					|\
407*1dc4a592SRobert Mustacchi	uint64_t					|\
408*1dc4a592SRobert Mustacchi	volatile uint64_t *; uint64_t			|\
409*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
410*1dc4a592SRobert Mustacchi
411*1dc4a592SRobert Mustacchifunc | atomic_and_8_nv					|\
412*1dc4a592SRobert Mustacchi	uint8_t						|\
413*1dc4a592SRobert Mustacchi	volatile uint8_t *; uint8_t			|\
414*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
415*1dc4a592SRobert Mustacchi
416*1dc4a592SRobert Mustacchifunc | atomic_and_uchar_nv				|\
417*1dc4a592SRobert Mustacchi	uchar_t						|\
418*1dc4a592SRobert Mustacchi	volatile uchar_t *; uchar_t			|\
419*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
420*1dc4a592SRobert Mustacchi
421*1dc4a592SRobert Mustacchifunc | atomic_and_16_nv					|\
422*1dc4a592SRobert Mustacchi	uint16_t					|\
423*1dc4a592SRobert Mustacchi	volatile uint16_t *; uint16_t			|\
424*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
425*1dc4a592SRobert Mustacchi
426*1dc4a592SRobert Mustacchifunc | atomic_and_ushort_nv				|\
427*1dc4a592SRobert Mustacchi	ushort_t					|\
428*1dc4a592SRobert Mustacchi	volatile ushort_t *; ushort_t			|\
429*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
430*1dc4a592SRobert Mustacchi
431*1dc4a592SRobert Mustacchifunc | atomic_and_32_nv					|\
432*1dc4a592SRobert Mustacchi	uint32_t					|\
433*1dc4a592SRobert Mustacchi	volatile uint32_t *; uint32_t			|\
434*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
435*1dc4a592SRobert Mustacchi
436*1dc4a592SRobert Mustacchifunc | atomic_and_uint_nv				|\
437*1dc4a592SRobert Mustacchi	uint_t						|\
438*1dc4a592SRobert Mustacchi	volatile uint_t *; uint_t			|\
439*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
440*1dc4a592SRobert Mustacchi
441*1dc4a592SRobert Mustacchifunc | atomic_and_ulong_nv				|\
442*1dc4a592SRobert Mustacchi	ulong_t						|\
443*1dc4a592SRobert Mustacchi	volatile ulong_t *; ulong_t			|\
444*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
445*1dc4a592SRobert Mustacchi
446*1dc4a592SRobert Mustacchifunc | atomic_and_64_nv					|\
447*1dc4a592SRobert Mustacchi	uint64_t					|\
448*1dc4a592SRobert Mustacchi	volatile uint64_t *; uint64_t			|\
449*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
450*1dc4a592SRobert Mustacchi
451*1dc4a592SRobert Mustacchifunc | atomic_cas_8					|\
452*1dc4a592SRobert Mustacchi	void						|\
453*1dc4a592SRobert Mustacchi	volatile uint8_t *; uint8_t; uint8_t		|\
454*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
455*1dc4a592SRobert Mustacchi
456*1dc4a592SRobert Mustacchifunc | atomic_cas_uchar					|\
457*1dc4a592SRobert Mustacchi	void						|\
458*1dc4a592SRobert Mustacchi	volatile uchar_t *; uchar_t; uchar_t		|\
459*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
460*1dc4a592SRobert Mustacchi
461*1dc4a592SRobert Mustacchifunc | atomic_cas_16					|\
462*1dc4a592SRobert Mustacchi	void						|\
463*1dc4a592SRobert Mustacchi	volatile uint16_t *; uint16_t; uint16_t		|\
464*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
465*1dc4a592SRobert Mustacchi
466*1dc4a592SRobert Mustacchifunc | atomic_cas_ushort				|\
467*1dc4a592SRobert Mustacchi	void						|\
468*1dc4a592SRobert Mustacchi	volatile ushort_t *; ushort_t; ushort_t		|\
469*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
470*1dc4a592SRobert Mustacchi
471*1dc4a592SRobert Mustacchifunc | atomic_cas_32					|\
472*1dc4a592SRobert Mustacchi	void						|\
473*1dc4a592SRobert Mustacchi	volatile uint32_t *; uint32_t; uint32_t		|\
474*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
475*1dc4a592SRobert Mustacchi
476*1dc4a592SRobert Mustacchifunc | atomic_cas_uint					|\
477*1dc4a592SRobert Mustacchi	void						|\
478*1dc4a592SRobert Mustacchi	volatile uint_t *; uint_t; uint_t		|\
479*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
480*1dc4a592SRobert Mustacchi
481*1dc4a592SRobert Mustacchifunc | atomic_cas_ptr					|\
482*1dc4a592SRobert Mustacchi	void						|\
483*1dc4a592SRobert Mustacchi	volatile void *; void *; void *			|\
484*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
485*1dc4a592SRobert Mustacchi
486*1dc4a592SRobert Mustacchifunc | atomic_cas_ulong					|\
487*1dc4a592SRobert Mustacchi	void						|\
488*1dc4a592SRobert Mustacchi	volatile ulong_t *; ulong_t; ulong_t		|\
489*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
490*1dc4a592SRobert Mustacchi
491*1dc4a592SRobert Mustacchifunc | atomic_cas_64					|\
492*1dc4a592SRobert Mustacchi	void						|\
493*1dc4a592SRobert Mustacchi	volatile uint64_t *; uint64_t; uint64_t		|\
494*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
495*1dc4a592SRobert Mustacchi
496*1dc4a592SRobert Mustacchifunc | atomic_swap_8					|\
497*1dc4a592SRobert Mustacchi	void						|\
498*1dc4a592SRobert Mustacchi	volatile uint8_t *; uint8_t			|\
499*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
500*1dc4a592SRobert Mustacchi
501*1dc4a592SRobert Mustacchifunc | atomic_swap_uchar				|\
502*1dc4a592SRobert Mustacchi	void						|\
503*1dc4a592SRobert Mustacchi	volatile uchar_t *; uchar_t			|\
504*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
505*1dc4a592SRobert Mustacchi
506*1dc4a592SRobert Mustacchifunc | atomic_swap_16					|\
507*1dc4a592SRobert Mustacchi	void						|\
508*1dc4a592SRobert Mustacchi	volatile uint16_t *; uint16_t			|\
509*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
510*1dc4a592SRobert Mustacchi
511*1dc4a592SRobert Mustacchifunc | atomic_swap_ushort				|\
512*1dc4a592SRobert Mustacchi	void						|\
513*1dc4a592SRobert Mustacchi	volatile ushort_t *; ushort_t			|\
514*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
515*1dc4a592SRobert Mustacchi
516*1dc4a592SRobert Mustacchifunc | atomic_swap_32					|\
517*1dc4a592SRobert Mustacchi	void						|\
518*1dc4a592SRobert Mustacchi	volatile uint32_t *; uint32_t			|\
519*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
520*1dc4a592SRobert Mustacchi
521*1dc4a592SRobert Mustacchifunc | atomic_swap_uint					|\
522*1dc4a592SRobert Mustacchi	void						|\
523*1dc4a592SRobert Mustacchi	volatile uint_t *; uint_t			|\
524*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
525*1dc4a592SRobert Mustacchi
526*1dc4a592SRobert Mustacchifunc | atomic_swap_ptr					|\
527*1dc4a592SRobert Mustacchi	void						|\
528*1dc4a592SRobert Mustacchi	volatile void *; void *				|\
529*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
530*1dc4a592SRobert Mustacchi
531*1dc4a592SRobert Mustacchifunc | atomic_swap_ulong				|\
532*1dc4a592SRobert Mustacchi	void						|\
533*1dc4a592SRobert Mustacchi	volatile ulong_t *; ulong_t			|\
534*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
535*1dc4a592SRobert Mustacchi
536*1dc4a592SRobert Mustacchifunc | atomic_swap_64					|\
537*1dc4a592SRobert Mustacchi	void						|\
538*1dc4a592SRobert Mustacchi	volatile uint64_t *; uint64_t			|\
539*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
540*1dc4a592SRobert Mustacchi
541*1dc4a592SRobert Mustacchifunc | atomic_set_long_excl				|\
542*1dc4a592SRobert Mustacchi	int						|\
543*1dc4a592SRobert Mustacchi	volatile ulong_t *; uint_t			|\
544*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
545*1dc4a592SRobert Mustacchi
546*1dc4a592SRobert Mustacchifunc | atomic_clear_long_excl				|\
547*1dc4a592SRobert Mustacchi	int						|\
548*1dc4a592SRobert Mustacchi	volatile ulong_t *; uint_t			|\
549*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
550*1dc4a592SRobert Mustacchi
551*1dc4a592SRobert Mustacchifunc | membar_enter					|\
552*1dc4a592SRobert Mustacchi	void						|\
553*1dc4a592SRobert Mustacchi	void						|\
554*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
555*1dc4a592SRobert Mustacchi
556*1dc4a592SRobert Mustacchifunc | membar_exit					|\
557*1dc4a592SRobert Mustacchi	void						|\
558*1dc4a592SRobert Mustacchi	void						|\
559*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
560*1dc4a592SRobert Mustacchi
561*1dc4a592SRobert Mustacchifunc | membar_producer					|\
562*1dc4a592SRobert Mustacchi	void						|\
563*1dc4a592SRobert Mustacchi	void						|\
564*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
565*1dc4a592SRobert Mustacchi
566*1dc4a592SRobert Mustacchifunc | membar_consumer					|\
567*1dc4a592SRobert Mustacchi	void						|\
568*1dc4a592SRobert Mustacchi	void						|\
569*1dc4a592SRobert Mustacchi	sys/atomic.h | +ALL
570