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