atomic.odin 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package sync2
  2. import "core:intrinsics"
  3. cpu_relax :: intrinsics.cpu_relax
  4. atomic_fence :: intrinsics.atomic_fence
  5. atomic_fence_acquire :: intrinsics.atomic_fence_acq
  6. atomic_fence_release :: intrinsics.atomic_fence_rel
  7. atomic_fence_acqrel :: intrinsics.atomic_fence_acqrel
  8. atomic_store :: intrinsics.atomic_store
  9. atomic_store_release :: intrinsics.atomic_store_rel
  10. atomic_store_relaxed :: intrinsics.atomic_store_relaxed
  11. atomic_store_unordered :: intrinsics.atomic_store_unordered
  12. atomic_load :: intrinsics.atomic_load
  13. atomic_load_acquire :: intrinsics.atomic_load_acq
  14. atomic_load_relaxed :: intrinsics.atomic_load_relaxed
  15. atomic_load_unordered :: intrinsics.atomic_load_unordered
  16. atomic_add :: intrinsics.atomic_add
  17. atomic_add_acquire :: intrinsics.atomic_add_acq
  18. atomic_add_release :: intrinsics.atomic_add_rel
  19. atomic_add_acqrel :: intrinsics.atomic_add_acqrel
  20. atomic_add_relaxed :: intrinsics.atomic_add_relaxed
  21. atomic_sub :: intrinsics.atomic_sub
  22. atomic_sub_acquire :: intrinsics.atomic_sub_acq
  23. atomic_sub_release :: intrinsics.atomic_sub_rel
  24. atomic_sub_acqrel :: intrinsics.atomic_sub_acqrel
  25. atomic_sub_relaxed :: intrinsics.atomic_sub_relaxed
  26. atomic_and :: intrinsics.atomic_and
  27. atomic_and_acquire :: intrinsics.atomic_and_acq
  28. atomic_and_release :: intrinsics.atomic_and_rel
  29. atomic_and_acqrel :: intrinsics.atomic_and_acqrel
  30. atomic_and_relaxed :: intrinsics.atomic_and_relaxed
  31. atomic_nand :: intrinsics.atomic_nand
  32. atomic_nand_acquire :: intrinsics.atomic_nand_acq
  33. atomic_nand_release :: intrinsics.atomic_nand_rel
  34. atomic_nand_acqrel :: intrinsics.atomic_nand_acqrel
  35. atomic_nand_relaxed :: intrinsics.atomic_nand_relaxed
  36. atomic_or :: intrinsics.atomic_or
  37. atomic_or_acquire :: intrinsics.atomic_or_acq
  38. atomic_or_release :: intrinsics.atomic_or_rel
  39. atomic_or_acqrel :: intrinsics.atomic_or_acqrel
  40. atomic_or_relaxed :: intrinsics.atomic_or_relaxed
  41. atomic_xor :: intrinsics.atomic_xor
  42. atomic_xor_acquire :: intrinsics.atomic_xor_acq
  43. atomic_xor_release :: intrinsics.atomic_xor_rel
  44. atomic_xor_acqrel :: intrinsics.atomic_xor_acqrel
  45. atomic_xor_relaxed :: intrinsics.atomic_xor_relaxed
  46. atomic_exchange :: intrinsics.atomic_xchg
  47. atomic_exchange_acquire :: intrinsics.atomic_xchg_acq
  48. atomic_exchange_release :: intrinsics.atomic_xchg_rel
  49. atomic_exchange_acqrel :: intrinsics.atomic_xchg_acqrel
  50. atomic_exchange_relaxed :: intrinsics.atomic_xchg_relaxed
  51. // Returns value and optional ok boolean
  52. atomic_compare_exchange_strong :: intrinsics.atomic_cxchg
  53. atomic_compare_exchange_strong_acquire :: intrinsics.atomic_cxchg_acq
  54. atomic_compare_exchange_strong_release :: intrinsics.atomic_cxchg_rel
  55. atomic_compare_exchange_strong_acqrel :: intrinsics.atomic_cxchg_acqrel
  56. atomic_compare_exchange_strong_relaxed :: intrinsics.atomic_cxchg_relaxed
  57. atomic_compare_exchange_strong_failrelaxed :: intrinsics.atomic_cxchg_failrelaxed
  58. atomic_compare_exchange_strong_failacquire :: intrinsics.atomic_cxchg_failacq
  59. atomic_compare_exchange_strong_acquire_failrelaxed :: intrinsics.atomic_cxchg_acq_failrelaxed
  60. atomic_compare_exchange_strong_acqrel_failrelaxed :: intrinsics.atomic_cxchg_acqrel_failrelaxed
  61. // Returns value and optional ok boolean
  62. atomic_compare_exchange_weak :: intrinsics.atomic_cxchgweak
  63. atomic_compare_exchange_weak_acquire :: intrinsics.atomic_cxchgweak_acq
  64. atomic_compare_exchange_weak_release :: intrinsics.atomic_cxchgweak_rel
  65. atomic_compare_exchange_weak_acqrel :: intrinsics.atomic_cxchgweak_acqrel
  66. atomic_compare_exchange_weak_relaxed :: intrinsics.atomic_cxchgweak_relaxed
  67. atomic_compare_exchange_weak_failrelaxed :: intrinsics.atomic_cxchgweak_failrelaxed
  68. atomic_compare_exchange_weak_failacquire :: intrinsics.atomic_cxchgweak_failacq
  69. atomic_compare_exchange_weak_acquire_failrelaxed :: intrinsics.atomic_cxchgweak_acq_failrelaxed
  70. atomic_compare_exchange_weak_acqrel_failrelaxed :: intrinsics.atomic_cxchgweak_acqrel_failrelaxed