pyo3_ffi/cpython/pyatomic.rs
1use crate::pyport::Py_ssize_t;
2use core::sync::atomic::{AtomicIsize, Ordering};
3
4// skipped _Py_atomic_add_int
5// skipped _Py_atomic_add_int8
6// skipped _Py_atomic_add_int16
7// skipped _Py_atomic_add_int32
8// skipped _Py_atomic_add_int64
9// skipped _Py_atomic_add_intptr
10// skipped _Py_atomic_add_uint
11// skipped _Py_atomic_add_uint8
12// skipped _Py_atomic_add_uint16
13// skipped _Py_atomic_add_uint32
14// skipped _Py_atomic_add_uint64
15// skipped _Py_atomic_add_uintptr
16// skipped _Py_atomic_add_ssize
17
18// skipped _Py_atomic_compare_exchange_int
19// skipped _Py_atomic_compare_exchange_int8
20// skipped _Py_atomic_compare_exchange_int16
21// skipped _Py_atomic_compare_exchange_int32
22// skipped _Py_atomic_compare_exchange_int64
23// skipped _Py_atomic_compare_exchange_intptr
24// skipped _Py_atomic_compare_exchange_uint
25// skipped _Py_atomic_compare_exchange_uint8
26// skipped _Py_atomic_compare_exchange_uint16
27// skipped _Py_atomic_compare_exchange_uint32
28// skipped _Py_atomic_compare_exchange_uint64
29// skipped _Py_atomic_compare_exchange_uintptr
30// skipped _Py_atomic_compare_exchange_ssize
31// skipped _Py_atomic_compare_exchange_ptr
32
33// skipped _Py_atomic_exchange_int
34// skipped _Py_atomic_exchange_int8
35// skipped _Py_atomic_exchange_int16
36// skipped _Py_atomic_exchange_int32
37// skipped _Py_atomic_exchange_int64
38// skipped _Py_atomic_exchange_intptr
39// skipped _Py_atomic_exchange_uint
40// skipped _Py_atomic_exchange_uint8
41// skipped _Py_atomic_exchange_uint16
42// skipped _Py_atomic_exchange_uint32
43// skipped _Py_atomic_exchange_uint64
44// skipped _Py_atomic_exchange_uintptr
45// skipped _Py_atomic_exchange_ssize
46// skipped _Py_atomic_exchange_ptr
47
48// skipped _Py_atomic_and_uint8
49// skipped _Py_atomic_and_uint16
50// skipped _Py_atomic_and_uint32
51// skipped _Py_atomic_and_uint64
52// skipped _Py_atomic_and_uintptr
53
54// skipped _Py_atomic_or_uint8
55// skipped _Py_atomic_or_uint16
56// skipped _Py_atomic_or_uint32
57// skipped _Py_atomic_or_uint64
58// skipped _Py_atomic_or_uintptr
59
60// skipped _Py_atomic_load_int
61// skipped _Py_atomic_load_int8
62// skipped _Py_atomic_load_int16
63// skipped _Py_atomic_load_int32
64// skipped _Py_atomic_load_int64
65// skipped _Py_atomic_load_intptr
66// skipped _Py_atomic_load_uint8
67// skipped _Py_atomic_load_uint16
68// skipped _Py_atomic_load_uint32
69// skipped _Py_atomic_load_uint64
70// skipped _Py_atomic_load_uintptr
71// skipped _Py_atomic_load_uint
72// skipped _Py_atomic_load_ssize
73// skipped _Py_atomic_load_ptr
74
75// skipped _Py_atomic_load_int_relaxed
76// skipped _Py_atomic_load_char_relaxed
77// skipped _Py_atomic_load_uchar_relaxed
78// skipped _Py_atomic_load_short_relaxed
79// skipped _Py_atomic_load_ushort_relaxed
80// skipped _Py_atomic_load_long_relaxed
81// skipped _Py_atomic_load_double_relaxed
82// skipped _Py_atomic_load_llong_relaxed
83// skipped _Py_atomic_load_int8_relaxed
84// skipped _Py_atomic_load_int16_relaxed
85// skipped _Py_atomic_load_int32_relaxed
86// skipped _Py_atomic_load_int64_relaxed
87// skipped _Py_atomic_load_intptr_relaxed
88// skipped _Py_atomic_load_uint8_relaxed
89// skipped _Py_atomic_load_uint16_relaxed
90// skipped _Py_atomic_load_uint32_relaxed
91// skipped _Py_atomic_load_uint64_relaxed
92// skipped _Py_atomic_load_uintptr_relaxed
93// skipped _Py_atomic_load_uint_relaxed
94
95#[inline]
96pub(crate) unsafe fn _Py_atomic_load_ssize_relaxed(value: *const Py_ssize_t) -> Py_ssize_t {
97 AtomicIsize::from_ptr(value.cast_mut()).load(Ordering::Relaxed)
98}
99
100// skipped _Py_atomic_load_ptr_relaxed
101// skipped _Py_atomic_load_ullong_relaxed
102
103// skipped _Py_atomic_store_int
104// skipped _Py_atomic_store_int8
105// skipped _Py_atomic_store_int16
106// skipped _Py_atomic_store_int32
107// skipped _Py_atomic_store_int64
108// skipped _Py_atomic_store_intptr
109// skipped _Py_atomic_store_uint8
110// skipped _Py_atomic_store_uint16
111// skipped _Py_atomic_store_uint32
112// skipped _Py_atomic_store_uint64
113// skipped _Py_atomic_store_uintptr
114// skipped _Py_atomic_store_uint
115// skipped _Py_atomic_store_ptr
116// skipped _Py_atomic_store_ssize
117
118// skipped _Py_atomic_store_int_relaxed
119// skipped _Py_atomic_store_int8_relaxed
120// skipped _Py_atomic_store_int16_relaxed
121// skipped _Py_atomic_store_int32_relaxed
122// skipped _Py_atomic_store_int64_relaxed
123// skipped _Py_atomic_store_intptr_relaxed
124// skipped _Py_atomic_store_uint8_relaxed
125// skipped _Py_atomic_store_uint16_relaxed
126// skipped _Py_atomic_store_uint32_relaxed
127// skipped _Py_atomic_store_uint64_relaxed
128// skipped _Py_atomic_store_uintptr_relaxed
129// skipped _Py_atomic_store_uint_relaxed
130// skipped _Py_atomic_store_ptr_relaxed
131// skipped _Py_atomic_store_ssize_relaxed
132// skipped _Py_atomic_store_ullong_relaxed
133// skipped _Py_atomic_store_char_relaxed
134// skipped _Py_atomic_store_uchar_relaxed
135// skipped _Py_atomic_store_short_relaxed
136// skipped _Py_atomic_store_ushort_relaxed
137// skipped _Py_atomic_store_long_relaxed
138// skipped _Py_atomic_store_float_relaxed
139// skipped _Py_atomic_store_double_relaxed
140// skipped _Py_atomic_store_llong_relaxed
141
142// skipped _Py_atomic_load_ptr_acquire
143// skipped _Py_atomic_load_uintptr_acquire
144// skipped _Py_atomic_store_ptr_release
145// skipped _Py_atomic_store_uintptr_release
146// skipped _Py_atomic_store_ssize_release
147// skipped _Py_atomic_store_int8_release
148// skipped _Py_atomic_store_int_release
149// skipped _Py_atomic_load_int_acquire
150// skipped _Py_atomic_store_uint_release
151// skipped _Py_atomic_store_uint32_release
152// skipped _Py_atomic_store_uint64_release
153// skipped _Py_atomic_load_uint64_acquire
154// skipped _Py_atomic_load_uint32_acquire
155// skipped _Py_atomic_load_ssize_acquire
156
157// skipped _Py_atomic_fence_seq_cst
158// skipped _Py_atomic_fence_acquire
159// skipped _Py_atomic_fence_release
160
161// skipped _Py_atomic_load_ptr_consume
162// skipped _Py_atomic_load_ulong
163// skipped _Py_atomic_load_ulong_relaxed
164// skipped _Py_atomic_store_ulong
165// skipped _Py_atomic_store_ulong_relaxed