1*fdd7c7e0SBoqun Feng // SPDX-License-Identifier: GPL-2.0 2*fdd7c7e0SBoqun Feng 3*fdd7c7e0SBoqun Feng // Generated by scripts/atomic/gen-rust-atomic-helpers.sh 4*fdd7c7e0SBoqun Feng // DO NOT MODIFY THIS FILE DIRECTLY 5*fdd7c7e0SBoqun Feng 6*fdd7c7e0SBoqun Feng /* 7*fdd7c7e0SBoqun Feng * This file provides helpers for the various atomic functions for Rust. 8*fdd7c7e0SBoqun Feng */ 9*fdd7c7e0SBoqun Feng #ifndef _RUST_ATOMIC_API_H 10*fdd7c7e0SBoqun Feng #define _RUST_ATOMIC_API_H 11*fdd7c7e0SBoqun Feng 12*fdd7c7e0SBoqun Feng #include <linux/atomic.h> 13*fdd7c7e0SBoqun Feng 14*fdd7c7e0SBoqun Feng // TODO: Remove this after INLINE_HELPERS support is added. 15*fdd7c7e0SBoqun Feng #ifndef __rust_helper 16*fdd7c7e0SBoqun Feng #define __rust_helper 17*fdd7c7e0SBoqun Feng #endif 18*fdd7c7e0SBoqun Feng 19*fdd7c7e0SBoqun Feng __rust_helper int 20*fdd7c7e0SBoqun Feng rust_helper_atomic_read(const atomic_t *v) 21*fdd7c7e0SBoqun Feng { 22*fdd7c7e0SBoqun Feng return atomic_read(v); 23*fdd7c7e0SBoqun Feng } 24*fdd7c7e0SBoqun Feng 25*fdd7c7e0SBoqun Feng __rust_helper int 26*fdd7c7e0SBoqun Feng rust_helper_atomic_read_acquire(const atomic_t *v) 27*fdd7c7e0SBoqun Feng { 28*fdd7c7e0SBoqun Feng return atomic_read_acquire(v); 29*fdd7c7e0SBoqun Feng } 30*fdd7c7e0SBoqun Feng 31*fdd7c7e0SBoqun Feng __rust_helper void 32*fdd7c7e0SBoqun Feng rust_helper_atomic_set(atomic_t *v, int i) 33*fdd7c7e0SBoqun Feng { 34*fdd7c7e0SBoqun Feng atomic_set(v, i); 35*fdd7c7e0SBoqun Feng } 36*fdd7c7e0SBoqun Feng 37*fdd7c7e0SBoqun Feng __rust_helper void 38*fdd7c7e0SBoqun Feng rust_helper_atomic_set_release(atomic_t *v, int i) 39*fdd7c7e0SBoqun Feng { 40*fdd7c7e0SBoqun Feng atomic_set_release(v, i); 41*fdd7c7e0SBoqun Feng } 42*fdd7c7e0SBoqun Feng 43*fdd7c7e0SBoqun Feng __rust_helper void 44*fdd7c7e0SBoqun Feng rust_helper_atomic_add(int i, atomic_t *v) 45*fdd7c7e0SBoqun Feng { 46*fdd7c7e0SBoqun Feng atomic_add(i, v); 47*fdd7c7e0SBoqun Feng } 48*fdd7c7e0SBoqun Feng 49*fdd7c7e0SBoqun Feng __rust_helper int 50*fdd7c7e0SBoqun Feng rust_helper_atomic_add_return(int i, atomic_t *v) 51*fdd7c7e0SBoqun Feng { 52*fdd7c7e0SBoqun Feng return atomic_add_return(i, v); 53*fdd7c7e0SBoqun Feng } 54*fdd7c7e0SBoqun Feng 55*fdd7c7e0SBoqun Feng __rust_helper int 56*fdd7c7e0SBoqun Feng rust_helper_atomic_add_return_acquire(int i, atomic_t *v) 57*fdd7c7e0SBoqun Feng { 58*fdd7c7e0SBoqun Feng return atomic_add_return_acquire(i, v); 59*fdd7c7e0SBoqun Feng } 60*fdd7c7e0SBoqun Feng 61*fdd7c7e0SBoqun Feng __rust_helper int 62*fdd7c7e0SBoqun Feng rust_helper_atomic_add_return_release(int i, atomic_t *v) 63*fdd7c7e0SBoqun Feng { 64*fdd7c7e0SBoqun Feng return atomic_add_return_release(i, v); 65*fdd7c7e0SBoqun Feng } 66*fdd7c7e0SBoqun Feng 67*fdd7c7e0SBoqun Feng __rust_helper int 68*fdd7c7e0SBoqun Feng rust_helper_atomic_add_return_relaxed(int i, atomic_t *v) 69*fdd7c7e0SBoqun Feng { 70*fdd7c7e0SBoqun Feng return atomic_add_return_relaxed(i, v); 71*fdd7c7e0SBoqun Feng } 72*fdd7c7e0SBoqun Feng 73*fdd7c7e0SBoqun Feng __rust_helper int 74*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_add(int i, atomic_t *v) 75*fdd7c7e0SBoqun Feng { 76*fdd7c7e0SBoqun Feng return atomic_fetch_add(i, v); 77*fdd7c7e0SBoqun Feng } 78*fdd7c7e0SBoqun Feng 79*fdd7c7e0SBoqun Feng __rust_helper int 80*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_add_acquire(int i, atomic_t *v) 81*fdd7c7e0SBoqun Feng { 82*fdd7c7e0SBoqun Feng return atomic_fetch_add_acquire(i, v); 83*fdd7c7e0SBoqun Feng } 84*fdd7c7e0SBoqun Feng 85*fdd7c7e0SBoqun Feng __rust_helper int 86*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_add_release(int i, atomic_t *v) 87*fdd7c7e0SBoqun Feng { 88*fdd7c7e0SBoqun Feng return atomic_fetch_add_release(i, v); 89*fdd7c7e0SBoqun Feng } 90*fdd7c7e0SBoqun Feng 91*fdd7c7e0SBoqun Feng __rust_helper int 92*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_add_relaxed(int i, atomic_t *v) 93*fdd7c7e0SBoqun Feng { 94*fdd7c7e0SBoqun Feng return atomic_fetch_add_relaxed(i, v); 95*fdd7c7e0SBoqun Feng } 96*fdd7c7e0SBoqun Feng 97*fdd7c7e0SBoqun Feng __rust_helper void 98*fdd7c7e0SBoqun Feng rust_helper_atomic_sub(int i, atomic_t *v) 99*fdd7c7e0SBoqun Feng { 100*fdd7c7e0SBoqun Feng atomic_sub(i, v); 101*fdd7c7e0SBoqun Feng } 102*fdd7c7e0SBoqun Feng 103*fdd7c7e0SBoqun Feng __rust_helper int 104*fdd7c7e0SBoqun Feng rust_helper_atomic_sub_return(int i, atomic_t *v) 105*fdd7c7e0SBoqun Feng { 106*fdd7c7e0SBoqun Feng return atomic_sub_return(i, v); 107*fdd7c7e0SBoqun Feng } 108*fdd7c7e0SBoqun Feng 109*fdd7c7e0SBoqun Feng __rust_helper int 110*fdd7c7e0SBoqun Feng rust_helper_atomic_sub_return_acquire(int i, atomic_t *v) 111*fdd7c7e0SBoqun Feng { 112*fdd7c7e0SBoqun Feng return atomic_sub_return_acquire(i, v); 113*fdd7c7e0SBoqun Feng } 114*fdd7c7e0SBoqun Feng 115*fdd7c7e0SBoqun Feng __rust_helper int 116*fdd7c7e0SBoqun Feng rust_helper_atomic_sub_return_release(int i, atomic_t *v) 117*fdd7c7e0SBoqun Feng { 118*fdd7c7e0SBoqun Feng return atomic_sub_return_release(i, v); 119*fdd7c7e0SBoqun Feng } 120*fdd7c7e0SBoqun Feng 121*fdd7c7e0SBoqun Feng __rust_helper int 122*fdd7c7e0SBoqun Feng rust_helper_atomic_sub_return_relaxed(int i, atomic_t *v) 123*fdd7c7e0SBoqun Feng { 124*fdd7c7e0SBoqun Feng return atomic_sub_return_relaxed(i, v); 125*fdd7c7e0SBoqun Feng } 126*fdd7c7e0SBoqun Feng 127*fdd7c7e0SBoqun Feng __rust_helper int 128*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_sub(int i, atomic_t *v) 129*fdd7c7e0SBoqun Feng { 130*fdd7c7e0SBoqun Feng return atomic_fetch_sub(i, v); 131*fdd7c7e0SBoqun Feng } 132*fdd7c7e0SBoqun Feng 133*fdd7c7e0SBoqun Feng __rust_helper int 134*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_sub_acquire(int i, atomic_t *v) 135*fdd7c7e0SBoqun Feng { 136*fdd7c7e0SBoqun Feng return atomic_fetch_sub_acquire(i, v); 137*fdd7c7e0SBoqun Feng } 138*fdd7c7e0SBoqun Feng 139*fdd7c7e0SBoqun Feng __rust_helper int 140*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_sub_release(int i, atomic_t *v) 141*fdd7c7e0SBoqun Feng { 142*fdd7c7e0SBoqun Feng return atomic_fetch_sub_release(i, v); 143*fdd7c7e0SBoqun Feng } 144*fdd7c7e0SBoqun Feng 145*fdd7c7e0SBoqun Feng __rust_helper int 146*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_sub_relaxed(int i, atomic_t *v) 147*fdd7c7e0SBoqun Feng { 148*fdd7c7e0SBoqun Feng return atomic_fetch_sub_relaxed(i, v); 149*fdd7c7e0SBoqun Feng } 150*fdd7c7e0SBoqun Feng 151*fdd7c7e0SBoqun Feng __rust_helper void 152*fdd7c7e0SBoqun Feng rust_helper_atomic_inc(atomic_t *v) 153*fdd7c7e0SBoqun Feng { 154*fdd7c7e0SBoqun Feng atomic_inc(v); 155*fdd7c7e0SBoqun Feng } 156*fdd7c7e0SBoqun Feng 157*fdd7c7e0SBoqun Feng __rust_helper int 158*fdd7c7e0SBoqun Feng rust_helper_atomic_inc_return(atomic_t *v) 159*fdd7c7e0SBoqun Feng { 160*fdd7c7e0SBoqun Feng return atomic_inc_return(v); 161*fdd7c7e0SBoqun Feng } 162*fdd7c7e0SBoqun Feng 163*fdd7c7e0SBoqun Feng __rust_helper int 164*fdd7c7e0SBoqun Feng rust_helper_atomic_inc_return_acquire(atomic_t *v) 165*fdd7c7e0SBoqun Feng { 166*fdd7c7e0SBoqun Feng return atomic_inc_return_acquire(v); 167*fdd7c7e0SBoqun Feng } 168*fdd7c7e0SBoqun Feng 169*fdd7c7e0SBoqun Feng __rust_helper int 170*fdd7c7e0SBoqun Feng rust_helper_atomic_inc_return_release(atomic_t *v) 171*fdd7c7e0SBoqun Feng { 172*fdd7c7e0SBoqun Feng return atomic_inc_return_release(v); 173*fdd7c7e0SBoqun Feng } 174*fdd7c7e0SBoqun Feng 175*fdd7c7e0SBoqun Feng __rust_helper int 176*fdd7c7e0SBoqun Feng rust_helper_atomic_inc_return_relaxed(atomic_t *v) 177*fdd7c7e0SBoqun Feng { 178*fdd7c7e0SBoqun Feng return atomic_inc_return_relaxed(v); 179*fdd7c7e0SBoqun Feng } 180*fdd7c7e0SBoqun Feng 181*fdd7c7e0SBoqun Feng __rust_helper int 182*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_inc(atomic_t *v) 183*fdd7c7e0SBoqun Feng { 184*fdd7c7e0SBoqun Feng return atomic_fetch_inc(v); 185*fdd7c7e0SBoqun Feng } 186*fdd7c7e0SBoqun Feng 187*fdd7c7e0SBoqun Feng __rust_helper int 188*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_inc_acquire(atomic_t *v) 189*fdd7c7e0SBoqun Feng { 190*fdd7c7e0SBoqun Feng return atomic_fetch_inc_acquire(v); 191*fdd7c7e0SBoqun Feng } 192*fdd7c7e0SBoqun Feng 193*fdd7c7e0SBoqun Feng __rust_helper int 194*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_inc_release(atomic_t *v) 195*fdd7c7e0SBoqun Feng { 196*fdd7c7e0SBoqun Feng return atomic_fetch_inc_release(v); 197*fdd7c7e0SBoqun Feng } 198*fdd7c7e0SBoqun Feng 199*fdd7c7e0SBoqun Feng __rust_helper int 200*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_inc_relaxed(atomic_t *v) 201*fdd7c7e0SBoqun Feng { 202*fdd7c7e0SBoqun Feng return atomic_fetch_inc_relaxed(v); 203*fdd7c7e0SBoqun Feng } 204*fdd7c7e0SBoqun Feng 205*fdd7c7e0SBoqun Feng __rust_helper void 206*fdd7c7e0SBoqun Feng rust_helper_atomic_dec(atomic_t *v) 207*fdd7c7e0SBoqun Feng { 208*fdd7c7e0SBoqun Feng atomic_dec(v); 209*fdd7c7e0SBoqun Feng } 210*fdd7c7e0SBoqun Feng 211*fdd7c7e0SBoqun Feng __rust_helper int 212*fdd7c7e0SBoqun Feng rust_helper_atomic_dec_return(atomic_t *v) 213*fdd7c7e0SBoqun Feng { 214*fdd7c7e0SBoqun Feng return atomic_dec_return(v); 215*fdd7c7e0SBoqun Feng } 216*fdd7c7e0SBoqun Feng 217*fdd7c7e0SBoqun Feng __rust_helper int 218*fdd7c7e0SBoqun Feng rust_helper_atomic_dec_return_acquire(atomic_t *v) 219*fdd7c7e0SBoqun Feng { 220*fdd7c7e0SBoqun Feng return atomic_dec_return_acquire(v); 221*fdd7c7e0SBoqun Feng } 222*fdd7c7e0SBoqun Feng 223*fdd7c7e0SBoqun Feng __rust_helper int 224*fdd7c7e0SBoqun Feng rust_helper_atomic_dec_return_release(atomic_t *v) 225*fdd7c7e0SBoqun Feng { 226*fdd7c7e0SBoqun Feng return atomic_dec_return_release(v); 227*fdd7c7e0SBoqun Feng } 228*fdd7c7e0SBoqun Feng 229*fdd7c7e0SBoqun Feng __rust_helper int 230*fdd7c7e0SBoqun Feng rust_helper_atomic_dec_return_relaxed(atomic_t *v) 231*fdd7c7e0SBoqun Feng { 232*fdd7c7e0SBoqun Feng return atomic_dec_return_relaxed(v); 233*fdd7c7e0SBoqun Feng } 234*fdd7c7e0SBoqun Feng 235*fdd7c7e0SBoqun Feng __rust_helper int 236*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_dec(atomic_t *v) 237*fdd7c7e0SBoqun Feng { 238*fdd7c7e0SBoqun Feng return atomic_fetch_dec(v); 239*fdd7c7e0SBoqun Feng } 240*fdd7c7e0SBoqun Feng 241*fdd7c7e0SBoqun Feng __rust_helper int 242*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_dec_acquire(atomic_t *v) 243*fdd7c7e0SBoqun Feng { 244*fdd7c7e0SBoqun Feng return atomic_fetch_dec_acquire(v); 245*fdd7c7e0SBoqun Feng } 246*fdd7c7e0SBoqun Feng 247*fdd7c7e0SBoqun Feng __rust_helper int 248*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_dec_release(atomic_t *v) 249*fdd7c7e0SBoqun Feng { 250*fdd7c7e0SBoqun Feng return atomic_fetch_dec_release(v); 251*fdd7c7e0SBoqun Feng } 252*fdd7c7e0SBoqun Feng 253*fdd7c7e0SBoqun Feng __rust_helper int 254*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_dec_relaxed(atomic_t *v) 255*fdd7c7e0SBoqun Feng { 256*fdd7c7e0SBoqun Feng return atomic_fetch_dec_relaxed(v); 257*fdd7c7e0SBoqun Feng } 258*fdd7c7e0SBoqun Feng 259*fdd7c7e0SBoqun Feng __rust_helper void 260*fdd7c7e0SBoqun Feng rust_helper_atomic_and(int i, atomic_t *v) 261*fdd7c7e0SBoqun Feng { 262*fdd7c7e0SBoqun Feng atomic_and(i, v); 263*fdd7c7e0SBoqun Feng } 264*fdd7c7e0SBoqun Feng 265*fdd7c7e0SBoqun Feng __rust_helper int 266*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_and(int i, atomic_t *v) 267*fdd7c7e0SBoqun Feng { 268*fdd7c7e0SBoqun Feng return atomic_fetch_and(i, v); 269*fdd7c7e0SBoqun Feng } 270*fdd7c7e0SBoqun Feng 271*fdd7c7e0SBoqun Feng __rust_helper int 272*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_and_acquire(int i, atomic_t *v) 273*fdd7c7e0SBoqun Feng { 274*fdd7c7e0SBoqun Feng return atomic_fetch_and_acquire(i, v); 275*fdd7c7e0SBoqun Feng } 276*fdd7c7e0SBoqun Feng 277*fdd7c7e0SBoqun Feng __rust_helper int 278*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_and_release(int i, atomic_t *v) 279*fdd7c7e0SBoqun Feng { 280*fdd7c7e0SBoqun Feng return atomic_fetch_and_release(i, v); 281*fdd7c7e0SBoqun Feng } 282*fdd7c7e0SBoqun Feng 283*fdd7c7e0SBoqun Feng __rust_helper int 284*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_and_relaxed(int i, atomic_t *v) 285*fdd7c7e0SBoqun Feng { 286*fdd7c7e0SBoqun Feng return atomic_fetch_and_relaxed(i, v); 287*fdd7c7e0SBoqun Feng } 288*fdd7c7e0SBoqun Feng 289*fdd7c7e0SBoqun Feng __rust_helper void 290*fdd7c7e0SBoqun Feng rust_helper_atomic_andnot(int i, atomic_t *v) 291*fdd7c7e0SBoqun Feng { 292*fdd7c7e0SBoqun Feng atomic_andnot(i, v); 293*fdd7c7e0SBoqun Feng } 294*fdd7c7e0SBoqun Feng 295*fdd7c7e0SBoqun Feng __rust_helper int 296*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_andnot(int i, atomic_t *v) 297*fdd7c7e0SBoqun Feng { 298*fdd7c7e0SBoqun Feng return atomic_fetch_andnot(i, v); 299*fdd7c7e0SBoqun Feng } 300*fdd7c7e0SBoqun Feng 301*fdd7c7e0SBoqun Feng __rust_helper int 302*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_andnot_acquire(int i, atomic_t *v) 303*fdd7c7e0SBoqun Feng { 304*fdd7c7e0SBoqun Feng return atomic_fetch_andnot_acquire(i, v); 305*fdd7c7e0SBoqun Feng } 306*fdd7c7e0SBoqun Feng 307*fdd7c7e0SBoqun Feng __rust_helper int 308*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_andnot_release(int i, atomic_t *v) 309*fdd7c7e0SBoqun Feng { 310*fdd7c7e0SBoqun Feng return atomic_fetch_andnot_release(i, v); 311*fdd7c7e0SBoqun Feng } 312*fdd7c7e0SBoqun Feng 313*fdd7c7e0SBoqun Feng __rust_helper int 314*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_andnot_relaxed(int i, atomic_t *v) 315*fdd7c7e0SBoqun Feng { 316*fdd7c7e0SBoqun Feng return atomic_fetch_andnot_relaxed(i, v); 317*fdd7c7e0SBoqun Feng } 318*fdd7c7e0SBoqun Feng 319*fdd7c7e0SBoqun Feng __rust_helper void 320*fdd7c7e0SBoqun Feng rust_helper_atomic_or(int i, atomic_t *v) 321*fdd7c7e0SBoqun Feng { 322*fdd7c7e0SBoqun Feng atomic_or(i, v); 323*fdd7c7e0SBoqun Feng } 324*fdd7c7e0SBoqun Feng 325*fdd7c7e0SBoqun Feng __rust_helper int 326*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_or(int i, atomic_t *v) 327*fdd7c7e0SBoqun Feng { 328*fdd7c7e0SBoqun Feng return atomic_fetch_or(i, v); 329*fdd7c7e0SBoqun Feng } 330*fdd7c7e0SBoqun Feng 331*fdd7c7e0SBoqun Feng __rust_helper int 332*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_or_acquire(int i, atomic_t *v) 333*fdd7c7e0SBoqun Feng { 334*fdd7c7e0SBoqun Feng return atomic_fetch_or_acquire(i, v); 335*fdd7c7e0SBoqun Feng } 336*fdd7c7e0SBoqun Feng 337*fdd7c7e0SBoqun Feng __rust_helper int 338*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_or_release(int i, atomic_t *v) 339*fdd7c7e0SBoqun Feng { 340*fdd7c7e0SBoqun Feng return atomic_fetch_or_release(i, v); 341*fdd7c7e0SBoqun Feng } 342*fdd7c7e0SBoqun Feng 343*fdd7c7e0SBoqun Feng __rust_helper int 344*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_or_relaxed(int i, atomic_t *v) 345*fdd7c7e0SBoqun Feng { 346*fdd7c7e0SBoqun Feng return atomic_fetch_or_relaxed(i, v); 347*fdd7c7e0SBoqun Feng } 348*fdd7c7e0SBoqun Feng 349*fdd7c7e0SBoqun Feng __rust_helper void 350*fdd7c7e0SBoqun Feng rust_helper_atomic_xor(int i, atomic_t *v) 351*fdd7c7e0SBoqun Feng { 352*fdd7c7e0SBoqun Feng atomic_xor(i, v); 353*fdd7c7e0SBoqun Feng } 354*fdd7c7e0SBoqun Feng 355*fdd7c7e0SBoqun Feng __rust_helper int 356*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_xor(int i, atomic_t *v) 357*fdd7c7e0SBoqun Feng { 358*fdd7c7e0SBoqun Feng return atomic_fetch_xor(i, v); 359*fdd7c7e0SBoqun Feng } 360*fdd7c7e0SBoqun Feng 361*fdd7c7e0SBoqun Feng __rust_helper int 362*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_xor_acquire(int i, atomic_t *v) 363*fdd7c7e0SBoqun Feng { 364*fdd7c7e0SBoqun Feng return atomic_fetch_xor_acquire(i, v); 365*fdd7c7e0SBoqun Feng } 366*fdd7c7e0SBoqun Feng 367*fdd7c7e0SBoqun Feng __rust_helper int 368*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_xor_release(int i, atomic_t *v) 369*fdd7c7e0SBoqun Feng { 370*fdd7c7e0SBoqun Feng return atomic_fetch_xor_release(i, v); 371*fdd7c7e0SBoqun Feng } 372*fdd7c7e0SBoqun Feng 373*fdd7c7e0SBoqun Feng __rust_helper int 374*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_xor_relaxed(int i, atomic_t *v) 375*fdd7c7e0SBoqun Feng { 376*fdd7c7e0SBoqun Feng return atomic_fetch_xor_relaxed(i, v); 377*fdd7c7e0SBoqun Feng } 378*fdd7c7e0SBoqun Feng 379*fdd7c7e0SBoqun Feng __rust_helper int 380*fdd7c7e0SBoqun Feng rust_helper_atomic_xchg(atomic_t *v, int new) 381*fdd7c7e0SBoqun Feng { 382*fdd7c7e0SBoqun Feng return atomic_xchg(v, new); 383*fdd7c7e0SBoqun Feng } 384*fdd7c7e0SBoqun Feng 385*fdd7c7e0SBoqun Feng __rust_helper int 386*fdd7c7e0SBoqun Feng rust_helper_atomic_xchg_acquire(atomic_t *v, int new) 387*fdd7c7e0SBoqun Feng { 388*fdd7c7e0SBoqun Feng return atomic_xchg_acquire(v, new); 389*fdd7c7e0SBoqun Feng } 390*fdd7c7e0SBoqun Feng 391*fdd7c7e0SBoqun Feng __rust_helper int 392*fdd7c7e0SBoqun Feng rust_helper_atomic_xchg_release(atomic_t *v, int new) 393*fdd7c7e0SBoqun Feng { 394*fdd7c7e0SBoqun Feng return atomic_xchg_release(v, new); 395*fdd7c7e0SBoqun Feng } 396*fdd7c7e0SBoqun Feng 397*fdd7c7e0SBoqun Feng __rust_helper int 398*fdd7c7e0SBoqun Feng rust_helper_atomic_xchg_relaxed(atomic_t *v, int new) 399*fdd7c7e0SBoqun Feng { 400*fdd7c7e0SBoqun Feng return atomic_xchg_relaxed(v, new); 401*fdd7c7e0SBoqun Feng } 402*fdd7c7e0SBoqun Feng 403*fdd7c7e0SBoqun Feng __rust_helper int 404*fdd7c7e0SBoqun Feng rust_helper_atomic_cmpxchg(atomic_t *v, int old, int new) 405*fdd7c7e0SBoqun Feng { 406*fdd7c7e0SBoqun Feng return atomic_cmpxchg(v, old, new); 407*fdd7c7e0SBoqun Feng } 408*fdd7c7e0SBoqun Feng 409*fdd7c7e0SBoqun Feng __rust_helper int 410*fdd7c7e0SBoqun Feng rust_helper_atomic_cmpxchg_acquire(atomic_t *v, int old, int new) 411*fdd7c7e0SBoqun Feng { 412*fdd7c7e0SBoqun Feng return atomic_cmpxchg_acquire(v, old, new); 413*fdd7c7e0SBoqun Feng } 414*fdd7c7e0SBoqun Feng 415*fdd7c7e0SBoqun Feng __rust_helper int 416*fdd7c7e0SBoqun Feng rust_helper_atomic_cmpxchg_release(atomic_t *v, int old, int new) 417*fdd7c7e0SBoqun Feng { 418*fdd7c7e0SBoqun Feng return atomic_cmpxchg_release(v, old, new); 419*fdd7c7e0SBoqun Feng } 420*fdd7c7e0SBoqun Feng 421*fdd7c7e0SBoqun Feng __rust_helper int 422*fdd7c7e0SBoqun Feng rust_helper_atomic_cmpxchg_relaxed(atomic_t *v, int old, int new) 423*fdd7c7e0SBoqun Feng { 424*fdd7c7e0SBoqun Feng return atomic_cmpxchg_relaxed(v, old, new); 425*fdd7c7e0SBoqun Feng } 426*fdd7c7e0SBoqun Feng 427*fdd7c7e0SBoqun Feng __rust_helper bool 428*fdd7c7e0SBoqun Feng rust_helper_atomic_try_cmpxchg(atomic_t *v, int *old, int new) 429*fdd7c7e0SBoqun Feng { 430*fdd7c7e0SBoqun Feng return atomic_try_cmpxchg(v, old, new); 431*fdd7c7e0SBoqun Feng } 432*fdd7c7e0SBoqun Feng 433*fdd7c7e0SBoqun Feng __rust_helper bool 434*fdd7c7e0SBoqun Feng rust_helper_atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) 435*fdd7c7e0SBoqun Feng { 436*fdd7c7e0SBoqun Feng return atomic_try_cmpxchg_acquire(v, old, new); 437*fdd7c7e0SBoqun Feng } 438*fdd7c7e0SBoqun Feng 439*fdd7c7e0SBoqun Feng __rust_helper bool 440*fdd7c7e0SBoqun Feng rust_helper_atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) 441*fdd7c7e0SBoqun Feng { 442*fdd7c7e0SBoqun Feng return atomic_try_cmpxchg_release(v, old, new); 443*fdd7c7e0SBoqun Feng } 444*fdd7c7e0SBoqun Feng 445*fdd7c7e0SBoqun Feng __rust_helper bool 446*fdd7c7e0SBoqun Feng rust_helper_atomic_try_cmpxchg_relaxed(atomic_t *v, int *old, int new) 447*fdd7c7e0SBoqun Feng { 448*fdd7c7e0SBoqun Feng return atomic_try_cmpxchg_relaxed(v, old, new); 449*fdd7c7e0SBoqun Feng } 450*fdd7c7e0SBoqun Feng 451*fdd7c7e0SBoqun Feng __rust_helper bool 452*fdd7c7e0SBoqun Feng rust_helper_atomic_sub_and_test(int i, atomic_t *v) 453*fdd7c7e0SBoqun Feng { 454*fdd7c7e0SBoqun Feng return atomic_sub_and_test(i, v); 455*fdd7c7e0SBoqun Feng } 456*fdd7c7e0SBoqun Feng 457*fdd7c7e0SBoqun Feng __rust_helper bool 458*fdd7c7e0SBoqun Feng rust_helper_atomic_dec_and_test(atomic_t *v) 459*fdd7c7e0SBoqun Feng { 460*fdd7c7e0SBoqun Feng return atomic_dec_and_test(v); 461*fdd7c7e0SBoqun Feng } 462*fdd7c7e0SBoqun Feng 463*fdd7c7e0SBoqun Feng __rust_helper bool 464*fdd7c7e0SBoqun Feng rust_helper_atomic_inc_and_test(atomic_t *v) 465*fdd7c7e0SBoqun Feng { 466*fdd7c7e0SBoqun Feng return atomic_inc_and_test(v); 467*fdd7c7e0SBoqun Feng } 468*fdd7c7e0SBoqun Feng 469*fdd7c7e0SBoqun Feng __rust_helper bool 470*fdd7c7e0SBoqun Feng rust_helper_atomic_add_negative(int i, atomic_t *v) 471*fdd7c7e0SBoqun Feng { 472*fdd7c7e0SBoqun Feng return atomic_add_negative(i, v); 473*fdd7c7e0SBoqun Feng } 474*fdd7c7e0SBoqun Feng 475*fdd7c7e0SBoqun Feng __rust_helper bool 476*fdd7c7e0SBoqun Feng rust_helper_atomic_add_negative_acquire(int i, atomic_t *v) 477*fdd7c7e0SBoqun Feng { 478*fdd7c7e0SBoqun Feng return atomic_add_negative_acquire(i, v); 479*fdd7c7e0SBoqun Feng } 480*fdd7c7e0SBoqun Feng 481*fdd7c7e0SBoqun Feng __rust_helper bool 482*fdd7c7e0SBoqun Feng rust_helper_atomic_add_negative_release(int i, atomic_t *v) 483*fdd7c7e0SBoqun Feng { 484*fdd7c7e0SBoqun Feng return atomic_add_negative_release(i, v); 485*fdd7c7e0SBoqun Feng } 486*fdd7c7e0SBoqun Feng 487*fdd7c7e0SBoqun Feng __rust_helper bool 488*fdd7c7e0SBoqun Feng rust_helper_atomic_add_negative_relaxed(int i, atomic_t *v) 489*fdd7c7e0SBoqun Feng { 490*fdd7c7e0SBoqun Feng return atomic_add_negative_relaxed(i, v); 491*fdd7c7e0SBoqun Feng } 492*fdd7c7e0SBoqun Feng 493*fdd7c7e0SBoqun Feng __rust_helper int 494*fdd7c7e0SBoqun Feng rust_helper_atomic_fetch_add_unless(atomic_t *v, int a, int u) 495*fdd7c7e0SBoqun Feng { 496*fdd7c7e0SBoqun Feng return atomic_fetch_add_unless(v, a, u); 497*fdd7c7e0SBoqun Feng } 498*fdd7c7e0SBoqun Feng 499*fdd7c7e0SBoqun Feng __rust_helper bool 500*fdd7c7e0SBoqun Feng rust_helper_atomic_add_unless(atomic_t *v, int a, int u) 501*fdd7c7e0SBoqun Feng { 502*fdd7c7e0SBoqun Feng return atomic_add_unless(v, a, u); 503*fdd7c7e0SBoqun Feng } 504*fdd7c7e0SBoqun Feng 505*fdd7c7e0SBoqun Feng __rust_helper bool 506*fdd7c7e0SBoqun Feng rust_helper_atomic_inc_not_zero(atomic_t *v) 507*fdd7c7e0SBoqun Feng { 508*fdd7c7e0SBoqun Feng return atomic_inc_not_zero(v); 509*fdd7c7e0SBoqun Feng } 510*fdd7c7e0SBoqun Feng 511*fdd7c7e0SBoqun Feng __rust_helper bool 512*fdd7c7e0SBoqun Feng rust_helper_atomic_inc_unless_negative(atomic_t *v) 513*fdd7c7e0SBoqun Feng { 514*fdd7c7e0SBoqun Feng return atomic_inc_unless_negative(v); 515*fdd7c7e0SBoqun Feng } 516*fdd7c7e0SBoqun Feng 517*fdd7c7e0SBoqun Feng __rust_helper bool 518*fdd7c7e0SBoqun Feng rust_helper_atomic_dec_unless_positive(atomic_t *v) 519*fdd7c7e0SBoqun Feng { 520*fdd7c7e0SBoqun Feng return atomic_dec_unless_positive(v); 521*fdd7c7e0SBoqun Feng } 522*fdd7c7e0SBoqun Feng 523*fdd7c7e0SBoqun Feng __rust_helper int 524*fdd7c7e0SBoqun Feng rust_helper_atomic_dec_if_positive(atomic_t *v) 525*fdd7c7e0SBoqun Feng { 526*fdd7c7e0SBoqun Feng return atomic_dec_if_positive(v); 527*fdd7c7e0SBoqun Feng } 528*fdd7c7e0SBoqun Feng 529*fdd7c7e0SBoqun Feng __rust_helper s64 530*fdd7c7e0SBoqun Feng rust_helper_atomic64_read(const atomic64_t *v) 531*fdd7c7e0SBoqun Feng { 532*fdd7c7e0SBoqun Feng return atomic64_read(v); 533*fdd7c7e0SBoqun Feng } 534*fdd7c7e0SBoqun Feng 535*fdd7c7e0SBoqun Feng __rust_helper s64 536*fdd7c7e0SBoqun Feng rust_helper_atomic64_read_acquire(const atomic64_t *v) 537*fdd7c7e0SBoqun Feng { 538*fdd7c7e0SBoqun Feng return atomic64_read_acquire(v); 539*fdd7c7e0SBoqun Feng } 540*fdd7c7e0SBoqun Feng 541*fdd7c7e0SBoqun Feng __rust_helper void 542*fdd7c7e0SBoqun Feng rust_helper_atomic64_set(atomic64_t *v, s64 i) 543*fdd7c7e0SBoqun Feng { 544*fdd7c7e0SBoqun Feng atomic64_set(v, i); 545*fdd7c7e0SBoqun Feng } 546*fdd7c7e0SBoqun Feng 547*fdd7c7e0SBoqun Feng __rust_helper void 548*fdd7c7e0SBoqun Feng rust_helper_atomic64_set_release(atomic64_t *v, s64 i) 549*fdd7c7e0SBoqun Feng { 550*fdd7c7e0SBoqun Feng atomic64_set_release(v, i); 551*fdd7c7e0SBoqun Feng } 552*fdd7c7e0SBoqun Feng 553*fdd7c7e0SBoqun Feng __rust_helper void 554*fdd7c7e0SBoqun Feng rust_helper_atomic64_add(s64 i, atomic64_t *v) 555*fdd7c7e0SBoqun Feng { 556*fdd7c7e0SBoqun Feng atomic64_add(i, v); 557*fdd7c7e0SBoqun Feng } 558*fdd7c7e0SBoqun Feng 559*fdd7c7e0SBoqun Feng __rust_helper s64 560*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_return(s64 i, atomic64_t *v) 561*fdd7c7e0SBoqun Feng { 562*fdd7c7e0SBoqun Feng return atomic64_add_return(i, v); 563*fdd7c7e0SBoqun Feng } 564*fdd7c7e0SBoqun Feng 565*fdd7c7e0SBoqun Feng __rust_helper s64 566*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_return_acquire(s64 i, atomic64_t *v) 567*fdd7c7e0SBoqun Feng { 568*fdd7c7e0SBoqun Feng return atomic64_add_return_acquire(i, v); 569*fdd7c7e0SBoqun Feng } 570*fdd7c7e0SBoqun Feng 571*fdd7c7e0SBoqun Feng __rust_helper s64 572*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_return_release(s64 i, atomic64_t *v) 573*fdd7c7e0SBoqun Feng { 574*fdd7c7e0SBoqun Feng return atomic64_add_return_release(i, v); 575*fdd7c7e0SBoqun Feng } 576*fdd7c7e0SBoqun Feng 577*fdd7c7e0SBoqun Feng __rust_helper s64 578*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_return_relaxed(s64 i, atomic64_t *v) 579*fdd7c7e0SBoqun Feng { 580*fdd7c7e0SBoqun Feng return atomic64_add_return_relaxed(i, v); 581*fdd7c7e0SBoqun Feng } 582*fdd7c7e0SBoqun Feng 583*fdd7c7e0SBoqun Feng __rust_helper s64 584*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_add(s64 i, atomic64_t *v) 585*fdd7c7e0SBoqun Feng { 586*fdd7c7e0SBoqun Feng return atomic64_fetch_add(i, v); 587*fdd7c7e0SBoqun Feng } 588*fdd7c7e0SBoqun Feng 589*fdd7c7e0SBoqun Feng __rust_helper s64 590*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_add_acquire(s64 i, atomic64_t *v) 591*fdd7c7e0SBoqun Feng { 592*fdd7c7e0SBoqun Feng return atomic64_fetch_add_acquire(i, v); 593*fdd7c7e0SBoqun Feng } 594*fdd7c7e0SBoqun Feng 595*fdd7c7e0SBoqun Feng __rust_helper s64 596*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_add_release(s64 i, atomic64_t *v) 597*fdd7c7e0SBoqun Feng { 598*fdd7c7e0SBoqun Feng return atomic64_fetch_add_release(i, v); 599*fdd7c7e0SBoqun Feng } 600*fdd7c7e0SBoqun Feng 601*fdd7c7e0SBoqun Feng __rust_helper s64 602*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_add_relaxed(s64 i, atomic64_t *v) 603*fdd7c7e0SBoqun Feng { 604*fdd7c7e0SBoqun Feng return atomic64_fetch_add_relaxed(i, v); 605*fdd7c7e0SBoqun Feng } 606*fdd7c7e0SBoqun Feng 607*fdd7c7e0SBoqun Feng __rust_helper void 608*fdd7c7e0SBoqun Feng rust_helper_atomic64_sub(s64 i, atomic64_t *v) 609*fdd7c7e0SBoqun Feng { 610*fdd7c7e0SBoqun Feng atomic64_sub(i, v); 611*fdd7c7e0SBoqun Feng } 612*fdd7c7e0SBoqun Feng 613*fdd7c7e0SBoqun Feng __rust_helper s64 614*fdd7c7e0SBoqun Feng rust_helper_atomic64_sub_return(s64 i, atomic64_t *v) 615*fdd7c7e0SBoqun Feng { 616*fdd7c7e0SBoqun Feng return atomic64_sub_return(i, v); 617*fdd7c7e0SBoqun Feng } 618*fdd7c7e0SBoqun Feng 619*fdd7c7e0SBoqun Feng __rust_helper s64 620*fdd7c7e0SBoqun Feng rust_helper_atomic64_sub_return_acquire(s64 i, atomic64_t *v) 621*fdd7c7e0SBoqun Feng { 622*fdd7c7e0SBoqun Feng return atomic64_sub_return_acquire(i, v); 623*fdd7c7e0SBoqun Feng } 624*fdd7c7e0SBoqun Feng 625*fdd7c7e0SBoqun Feng __rust_helper s64 626*fdd7c7e0SBoqun Feng rust_helper_atomic64_sub_return_release(s64 i, atomic64_t *v) 627*fdd7c7e0SBoqun Feng { 628*fdd7c7e0SBoqun Feng return atomic64_sub_return_release(i, v); 629*fdd7c7e0SBoqun Feng } 630*fdd7c7e0SBoqun Feng 631*fdd7c7e0SBoqun Feng __rust_helper s64 632*fdd7c7e0SBoqun Feng rust_helper_atomic64_sub_return_relaxed(s64 i, atomic64_t *v) 633*fdd7c7e0SBoqun Feng { 634*fdd7c7e0SBoqun Feng return atomic64_sub_return_relaxed(i, v); 635*fdd7c7e0SBoqun Feng } 636*fdd7c7e0SBoqun Feng 637*fdd7c7e0SBoqun Feng __rust_helper s64 638*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_sub(s64 i, atomic64_t *v) 639*fdd7c7e0SBoqun Feng { 640*fdd7c7e0SBoqun Feng return atomic64_fetch_sub(i, v); 641*fdd7c7e0SBoqun Feng } 642*fdd7c7e0SBoqun Feng 643*fdd7c7e0SBoqun Feng __rust_helper s64 644*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_sub_acquire(s64 i, atomic64_t *v) 645*fdd7c7e0SBoqun Feng { 646*fdd7c7e0SBoqun Feng return atomic64_fetch_sub_acquire(i, v); 647*fdd7c7e0SBoqun Feng } 648*fdd7c7e0SBoqun Feng 649*fdd7c7e0SBoqun Feng __rust_helper s64 650*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_sub_release(s64 i, atomic64_t *v) 651*fdd7c7e0SBoqun Feng { 652*fdd7c7e0SBoqun Feng return atomic64_fetch_sub_release(i, v); 653*fdd7c7e0SBoqun Feng } 654*fdd7c7e0SBoqun Feng 655*fdd7c7e0SBoqun Feng __rust_helper s64 656*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_sub_relaxed(s64 i, atomic64_t *v) 657*fdd7c7e0SBoqun Feng { 658*fdd7c7e0SBoqun Feng return atomic64_fetch_sub_relaxed(i, v); 659*fdd7c7e0SBoqun Feng } 660*fdd7c7e0SBoqun Feng 661*fdd7c7e0SBoqun Feng __rust_helper void 662*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc(atomic64_t *v) 663*fdd7c7e0SBoqun Feng { 664*fdd7c7e0SBoqun Feng atomic64_inc(v); 665*fdd7c7e0SBoqun Feng } 666*fdd7c7e0SBoqun Feng 667*fdd7c7e0SBoqun Feng __rust_helper s64 668*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc_return(atomic64_t *v) 669*fdd7c7e0SBoqun Feng { 670*fdd7c7e0SBoqun Feng return atomic64_inc_return(v); 671*fdd7c7e0SBoqun Feng } 672*fdd7c7e0SBoqun Feng 673*fdd7c7e0SBoqun Feng __rust_helper s64 674*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc_return_acquire(atomic64_t *v) 675*fdd7c7e0SBoqun Feng { 676*fdd7c7e0SBoqun Feng return atomic64_inc_return_acquire(v); 677*fdd7c7e0SBoqun Feng } 678*fdd7c7e0SBoqun Feng 679*fdd7c7e0SBoqun Feng __rust_helper s64 680*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc_return_release(atomic64_t *v) 681*fdd7c7e0SBoqun Feng { 682*fdd7c7e0SBoqun Feng return atomic64_inc_return_release(v); 683*fdd7c7e0SBoqun Feng } 684*fdd7c7e0SBoqun Feng 685*fdd7c7e0SBoqun Feng __rust_helper s64 686*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc_return_relaxed(atomic64_t *v) 687*fdd7c7e0SBoqun Feng { 688*fdd7c7e0SBoqun Feng return atomic64_inc_return_relaxed(v); 689*fdd7c7e0SBoqun Feng } 690*fdd7c7e0SBoqun Feng 691*fdd7c7e0SBoqun Feng __rust_helper s64 692*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_inc(atomic64_t *v) 693*fdd7c7e0SBoqun Feng { 694*fdd7c7e0SBoqun Feng return atomic64_fetch_inc(v); 695*fdd7c7e0SBoqun Feng } 696*fdd7c7e0SBoqun Feng 697*fdd7c7e0SBoqun Feng __rust_helper s64 698*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_inc_acquire(atomic64_t *v) 699*fdd7c7e0SBoqun Feng { 700*fdd7c7e0SBoqun Feng return atomic64_fetch_inc_acquire(v); 701*fdd7c7e0SBoqun Feng } 702*fdd7c7e0SBoqun Feng 703*fdd7c7e0SBoqun Feng __rust_helper s64 704*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_inc_release(atomic64_t *v) 705*fdd7c7e0SBoqun Feng { 706*fdd7c7e0SBoqun Feng return atomic64_fetch_inc_release(v); 707*fdd7c7e0SBoqun Feng } 708*fdd7c7e0SBoqun Feng 709*fdd7c7e0SBoqun Feng __rust_helper s64 710*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_inc_relaxed(atomic64_t *v) 711*fdd7c7e0SBoqun Feng { 712*fdd7c7e0SBoqun Feng return atomic64_fetch_inc_relaxed(v); 713*fdd7c7e0SBoqun Feng } 714*fdd7c7e0SBoqun Feng 715*fdd7c7e0SBoqun Feng __rust_helper void 716*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec(atomic64_t *v) 717*fdd7c7e0SBoqun Feng { 718*fdd7c7e0SBoqun Feng atomic64_dec(v); 719*fdd7c7e0SBoqun Feng } 720*fdd7c7e0SBoqun Feng 721*fdd7c7e0SBoqun Feng __rust_helper s64 722*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec_return(atomic64_t *v) 723*fdd7c7e0SBoqun Feng { 724*fdd7c7e0SBoqun Feng return atomic64_dec_return(v); 725*fdd7c7e0SBoqun Feng } 726*fdd7c7e0SBoqun Feng 727*fdd7c7e0SBoqun Feng __rust_helper s64 728*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec_return_acquire(atomic64_t *v) 729*fdd7c7e0SBoqun Feng { 730*fdd7c7e0SBoqun Feng return atomic64_dec_return_acquire(v); 731*fdd7c7e0SBoqun Feng } 732*fdd7c7e0SBoqun Feng 733*fdd7c7e0SBoqun Feng __rust_helper s64 734*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec_return_release(atomic64_t *v) 735*fdd7c7e0SBoqun Feng { 736*fdd7c7e0SBoqun Feng return atomic64_dec_return_release(v); 737*fdd7c7e0SBoqun Feng } 738*fdd7c7e0SBoqun Feng 739*fdd7c7e0SBoqun Feng __rust_helper s64 740*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec_return_relaxed(atomic64_t *v) 741*fdd7c7e0SBoqun Feng { 742*fdd7c7e0SBoqun Feng return atomic64_dec_return_relaxed(v); 743*fdd7c7e0SBoqun Feng } 744*fdd7c7e0SBoqun Feng 745*fdd7c7e0SBoqun Feng __rust_helper s64 746*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_dec(atomic64_t *v) 747*fdd7c7e0SBoqun Feng { 748*fdd7c7e0SBoqun Feng return atomic64_fetch_dec(v); 749*fdd7c7e0SBoqun Feng } 750*fdd7c7e0SBoqun Feng 751*fdd7c7e0SBoqun Feng __rust_helper s64 752*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_dec_acquire(atomic64_t *v) 753*fdd7c7e0SBoqun Feng { 754*fdd7c7e0SBoqun Feng return atomic64_fetch_dec_acquire(v); 755*fdd7c7e0SBoqun Feng } 756*fdd7c7e0SBoqun Feng 757*fdd7c7e0SBoqun Feng __rust_helper s64 758*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_dec_release(atomic64_t *v) 759*fdd7c7e0SBoqun Feng { 760*fdd7c7e0SBoqun Feng return atomic64_fetch_dec_release(v); 761*fdd7c7e0SBoqun Feng } 762*fdd7c7e0SBoqun Feng 763*fdd7c7e0SBoqun Feng __rust_helper s64 764*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_dec_relaxed(atomic64_t *v) 765*fdd7c7e0SBoqun Feng { 766*fdd7c7e0SBoqun Feng return atomic64_fetch_dec_relaxed(v); 767*fdd7c7e0SBoqun Feng } 768*fdd7c7e0SBoqun Feng 769*fdd7c7e0SBoqun Feng __rust_helper void 770*fdd7c7e0SBoqun Feng rust_helper_atomic64_and(s64 i, atomic64_t *v) 771*fdd7c7e0SBoqun Feng { 772*fdd7c7e0SBoqun Feng atomic64_and(i, v); 773*fdd7c7e0SBoqun Feng } 774*fdd7c7e0SBoqun Feng 775*fdd7c7e0SBoqun Feng __rust_helper s64 776*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_and(s64 i, atomic64_t *v) 777*fdd7c7e0SBoqun Feng { 778*fdd7c7e0SBoqun Feng return atomic64_fetch_and(i, v); 779*fdd7c7e0SBoqun Feng } 780*fdd7c7e0SBoqun Feng 781*fdd7c7e0SBoqun Feng __rust_helper s64 782*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_and_acquire(s64 i, atomic64_t *v) 783*fdd7c7e0SBoqun Feng { 784*fdd7c7e0SBoqun Feng return atomic64_fetch_and_acquire(i, v); 785*fdd7c7e0SBoqun Feng } 786*fdd7c7e0SBoqun Feng 787*fdd7c7e0SBoqun Feng __rust_helper s64 788*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_and_release(s64 i, atomic64_t *v) 789*fdd7c7e0SBoqun Feng { 790*fdd7c7e0SBoqun Feng return atomic64_fetch_and_release(i, v); 791*fdd7c7e0SBoqun Feng } 792*fdd7c7e0SBoqun Feng 793*fdd7c7e0SBoqun Feng __rust_helper s64 794*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_and_relaxed(s64 i, atomic64_t *v) 795*fdd7c7e0SBoqun Feng { 796*fdd7c7e0SBoqun Feng return atomic64_fetch_and_relaxed(i, v); 797*fdd7c7e0SBoqun Feng } 798*fdd7c7e0SBoqun Feng 799*fdd7c7e0SBoqun Feng __rust_helper void 800*fdd7c7e0SBoqun Feng rust_helper_atomic64_andnot(s64 i, atomic64_t *v) 801*fdd7c7e0SBoqun Feng { 802*fdd7c7e0SBoqun Feng atomic64_andnot(i, v); 803*fdd7c7e0SBoqun Feng } 804*fdd7c7e0SBoqun Feng 805*fdd7c7e0SBoqun Feng __rust_helper s64 806*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_andnot(s64 i, atomic64_t *v) 807*fdd7c7e0SBoqun Feng { 808*fdd7c7e0SBoqun Feng return atomic64_fetch_andnot(i, v); 809*fdd7c7e0SBoqun Feng } 810*fdd7c7e0SBoqun Feng 811*fdd7c7e0SBoqun Feng __rust_helper s64 812*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) 813*fdd7c7e0SBoqun Feng { 814*fdd7c7e0SBoqun Feng return atomic64_fetch_andnot_acquire(i, v); 815*fdd7c7e0SBoqun Feng } 816*fdd7c7e0SBoqun Feng 817*fdd7c7e0SBoqun Feng __rust_helper s64 818*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_andnot_release(s64 i, atomic64_t *v) 819*fdd7c7e0SBoqun Feng { 820*fdd7c7e0SBoqun Feng return atomic64_fetch_andnot_release(i, v); 821*fdd7c7e0SBoqun Feng } 822*fdd7c7e0SBoqun Feng 823*fdd7c7e0SBoqun Feng __rust_helper s64 824*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_andnot_relaxed(s64 i, atomic64_t *v) 825*fdd7c7e0SBoqun Feng { 826*fdd7c7e0SBoqun Feng return atomic64_fetch_andnot_relaxed(i, v); 827*fdd7c7e0SBoqun Feng } 828*fdd7c7e0SBoqun Feng 829*fdd7c7e0SBoqun Feng __rust_helper void 830*fdd7c7e0SBoqun Feng rust_helper_atomic64_or(s64 i, atomic64_t *v) 831*fdd7c7e0SBoqun Feng { 832*fdd7c7e0SBoqun Feng atomic64_or(i, v); 833*fdd7c7e0SBoqun Feng } 834*fdd7c7e0SBoqun Feng 835*fdd7c7e0SBoqun Feng __rust_helper s64 836*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_or(s64 i, atomic64_t *v) 837*fdd7c7e0SBoqun Feng { 838*fdd7c7e0SBoqun Feng return atomic64_fetch_or(i, v); 839*fdd7c7e0SBoqun Feng } 840*fdd7c7e0SBoqun Feng 841*fdd7c7e0SBoqun Feng __rust_helper s64 842*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_or_acquire(s64 i, atomic64_t *v) 843*fdd7c7e0SBoqun Feng { 844*fdd7c7e0SBoqun Feng return atomic64_fetch_or_acquire(i, v); 845*fdd7c7e0SBoqun Feng } 846*fdd7c7e0SBoqun Feng 847*fdd7c7e0SBoqun Feng __rust_helper s64 848*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_or_release(s64 i, atomic64_t *v) 849*fdd7c7e0SBoqun Feng { 850*fdd7c7e0SBoqun Feng return atomic64_fetch_or_release(i, v); 851*fdd7c7e0SBoqun Feng } 852*fdd7c7e0SBoqun Feng 853*fdd7c7e0SBoqun Feng __rust_helper s64 854*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_or_relaxed(s64 i, atomic64_t *v) 855*fdd7c7e0SBoqun Feng { 856*fdd7c7e0SBoqun Feng return atomic64_fetch_or_relaxed(i, v); 857*fdd7c7e0SBoqun Feng } 858*fdd7c7e0SBoqun Feng 859*fdd7c7e0SBoqun Feng __rust_helper void 860*fdd7c7e0SBoqun Feng rust_helper_atomic64_xor(s64 i, atomic64_t *v) 861*fdd7c7e0SBoqun Feng { 862*fdd7c7e0SBoqun Feng atomic64_xor(i, v); 863*fdd7c7e0SBoqun Feng } 864*fdd7c7e0SBoqun Feng 865*fdd7c7e0SBoqun Feng __rust_helper s64 866*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_xor(s64 i, atomic64_t *v) 867*fdd7c7e0SBoqun Feng { 868*fdd7c7e0SBoqun Feng return atomic64_fetch_xor(i, v); 869*fdd7c7e0SBoqun Feng } 870*fdd7c7e0SBoqun Feng 871*fdd7c7e0SBoqun Feng __rust_helper s64 872*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_xor_acquire(s64 i, atomic64_t *v) 873*fdd7c7e0SBoqun Feng { 874*fdd7c7e0SBoqun Feng return atomic64_fetch_xor_acquire(i, v); 875*fdd7c7e0SBoqun Feng } 876*fdd7c7e0SBoqun Feng 877*fdd7c7e0SBoqun Feng __rust_helper s64 878*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_xor_release(s64 i, atomic64_t *v) 879*fdd7c7e0SBoqun Feng { 880*fdd7c7e0SBoqun Feng return atomic64_fetch_xor_release(i, v); 881*fdd7c7e0SBoqun Feng } 882*fdd7c7e0SBoqun Feng 883*fdd7c7e0SBoqun Feng __rust_helper s64 884*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_xor_relaxed(s64 i, atomic64_t *v) 885*fdd7c7e0SBoqun Feng { 886*fdd7c7e0SBoqun Feng return atomic64_fetch_xor_relaxed(i, v); 887*fdd7c7e0SBoqun Feng } 888*fdd7c7e0SBoqun Feng 889*fdd7c7e0SBoqun Feng __rust_helper s64 890*fdd7c7e0SBoqun Feng rust_helper_atomic64_xchg(atomic64_t *v, s64 new) 891*fdd7c7e0SBoqun Feng { 892*fdd7c7e0SBoqun Feng return atomic64_xchg(v, new); 893*fdd7c7e0SBoqun Feng } 894*fdd7c7e0SBoqun Feng 895*fdd7c7e0SBoqun Feng __rust_helper s64 896*fdd7c7e0SBoqun Feng rust_helper_atomic64_xchg_acquire(atomic64_t *v, s64 new) 897*fdd7c7e0SBoqun Feng { 898*fdd7c7e0SBoqun Feng return atomic64_xchg_acquire(v, new); 899*fdd7c7e0SBoqun Feng } 900*fdd7c7e0SBoqun Feng 901*fdd7c7e0SBoqun Feng __rust_helper s64 902*fdd7c7e0SBoqun Feng rust_helper_atomic64_xchg_release(atomic64_t *v, s64 new) 903*fdd7c7e0SBoqun Feng { 904*fdd7c7e0SBoqun Feng return atomic64_xchg_release(v, new); 905*fdd7c7e0SBoqun Feng } 906*fdd7c7e0SBoqun Feng 907*fdd7c7e0SBoqun Feng __rust_helper s64 908*fdd7c7e0SBoqun Feng rust_helper_atomic64_xchg_relaxed(atomic64_t *v, s64 new) 909*fdd7c7e0SBoqun Feng { 910*fdd7c7e0SBoqun Feng return atomic64_xchg_relaxed(v, new); 911*fdd7c7e0SBoqun Feng } 912*fdd7c7e0SBoqun Feng 913*fdd7c7e0SBoqun Feng __rust_helper s64 914*fdd7c7e0SBoqun Feng rust_helper_atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) 915*fdd7c7e0SBoqun Feng { 916*fdd7c7e0SBoqun Feng return atomic64_cmpxchg(v, old, new); 917*fdd7c7e0SBoqun Feng } 918*fdd7c7e0SBoqun Feng 919*fdd7c7e0SBoqun Feng __rust_helper s64 920*fdd7c7e0SBoqun Feng rust_helper_atomic64_cmpxchg_acquire(atomic64_t *v, s64 old, s64 new) 921*fdd7c7e0SBoqun Feng { 922*fdd7c7e0SBoqun Feng return atomic64_cmpxchg_acquire(v, old, new); 923*fdd7c7e0SBoqun Feng } 924*fdd7c7e0SBoqun Feng 925*fdd7c7e0SBoqun Feng __rust_helper s64 926*fdd7c7e0SBoqun Feng rust_helper_atomic64_cmpxchg_release(atomic64_t *v, s64 old, s64 new) 927*fdd7c7e0SBoqun Feng { 928*fdd7c7e0SBoqun Feng return atomic64_cmpxchg_release(v, old, new); 929*fdd7c7e0SBoqun Feng } 930*fdd7c7e0SBoqun Feng 931*fdd7c7e0SBoqun Feng __rust_helper s64 932*fdd7c7e0SBoqun Feng rust_helper_atomic64_cmpxchg_relaxed(atomic64_t *v, s64 old, s64 new) 933*fdd7c7e0SBoqun Feng { 934*fdd7c7e0SBoqun Feng return atomic64_cmpxchg_relaxed(v, old, new); 935*fdd7c7e0SBoqun Feng } 936*fdd7c7e0SBoqun Feng 937*fdd7c7e0SBoqun Feng __rust_helper bool 938*fdd7c7e0SBoqun Feng rust_helper_atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) 939*fdd7c7e0SBoqun Feng { 940*fdd7c7e0SBoqun Feng return atomic64_try_cmpxchg(v, old, new); 941*fdd7c7e0SBoqun Feng } 942*fdd7c7e0SBoqun Feng 943*fdd7c7e0SBoqun Feng __rust_helper bool 944*fdd7c7e0SBoqun Feng rust_helper_atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) 945*fdd7c7e0SBoqun Feng { 946*fdd7c7e0SBoqun Feng return atomic64_try_cmpxchg_acquire(v, old, new); 947*fdd7c7e0SBoqun Feng } 948*fdd7c7e0SBoqun Feng 949*fdd7c7e0SBoqun Feng __rust_helper bool 950*fdd7c7e0SBoqun Feng rust_helper_atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) 951*fdd7c7e0SBoqun Feng { 952*fdd7c7e0SBoqun Feng return atomic64_try_cmpxchg_release(v, old, new); 953*fdd7c7e0SBoqun Feng } 954*fdd7c7e0SBoqun Feng 955*fdd7c7e0SBoqun Feng __rust_helper bool 956*fdd7c7e0SBoqun Feng rust_helper_atomic64_try_cmpxchg_relaxed(atomic64_t *v, s64 *old, s64 new) 957*fdd7c7e0SBoqun Feng { 958*fdd7c7e0SBoqun Feng return atomic64_try_cmpxchg_relaxed(v, old, new); 959*fdd7c7e0SBoqun Feng } 960*fdd7c7e0SBoqun Feng 961*fdd7c7e0SBoqun Feng __rust_helper bool 962*fdd7c7e0SBoqun Feng rust_helper_atomic64_sub_and_test(s64 i, atomic64_t *v) 963*fdd7c7e0SBoqun Feng { 964*fdd7c7e0SBoqun Feng return atomic64_sub_and_test(i, v); 965*fdd7c7e0SBoqun Feng } 966*fdd7c7e0SBoqun Feng 967*fdd7c7e0SBoqun Feng __rust_helper bool 968*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec_and_test(atomic64_t *v) 969*fdd7c7e0SBoqun Feng { 970*fdd7c7e0SBoqun Feng return atomic64_dec_and_test(v); 971*fdd7c7e0SBoqun Feng } 972*fdd7c7e0SBoqun Feng 973*fdd7c7e0SBoqun Feng __rust_helper bool 974*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc_and_test(atomic64_t *v) 975*fdd7c7e0SBoqun Feng { 976*fdd7c7e0SBoqun Feng return atomic64_inc_and_test(v); 977*fdd7c7e0SBoqun Feng } 978*fdd7c7e0SBoqun Feng 979*fdd7c7e0SBoqun Feng __rust_helper bool 980*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_negative(s64 i, atomic64_t *v) 981*fdd7c7e0SBoqun Feng { 982*fdd7c7e0SBoqun Feng return atomic64_add_negative(i, v); 983*fdd7c7e0SBoqun Feng } 984*fdd7c7e0SBoqun Feng 985*fdd7c7e0SBoqun Feng __rust_helper bool 986*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_negative_acquire(s64 i, atomic64_t *v) 987*fdd7c7e0SBoqun Feng { 988*fdd7c7e0SBoqun Feng return atomic64_add_negative_acquire(i, v); 989*fdd7c7e0SBoqun Feng } 990*fdd7c7e0SBoqun Feng 991*fdd7c7e0SBoqun Feng __rust_helper bool 992*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_negative_release(s64 i, atomic64_t *v) 993*fdd7c7e0SBoqun Feng { 994*fdd7c7e0SBoqun Feng return atomic64_add_negative_release(i, v); 995*fdd7c7e0SBoqun Feng } 996*fdd7c7e0SBoqun Feng 997*fdd7c7e0SBoqun Feng __rust_helper bool 998*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_negative_relaxed(s64 i, atomic64_t *v) 999*fdd7c7e0SBoqun Feng { 1000*fdd7c7e0SBoqun Feng return atomic64_add_negative_relaxed(i, v); 1001*fdd7c7e0SBoqun Feng } 1002*fdd7c7e0SBoqun Feng 1003*fdd7c7e0SBoqun Feng __rust_helper s64 1004*fdd7c7e0SBoqun Feng rust_helper_atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u) 1005*fdd7c7e0SBoqun Feng { 1006*fdd7c7e0SBoqun Feng return atomic64_fetch_add_unless(v, a, u); 1007*fdd7c7e0SBoqun Feng } 1008*fdd7c7e0SBoqun Feng 1009*fdd7c7e0SBoqun Feng __rust_helper bool 1010*fdd7c7e0SBoqun Feng rust_helper_atomic64_add_unless(atomic64_t *v, s64 a, s64 u) 1011*fdd7c7e0SBoqun Feng { 1012*fdd7c7e0SBoqun Feng return atomic64_add_unless(v, a, u); 1013*fdd7c7e0SBoqun Feng } 1014*fdd7c7e0SBoqun Feng 1015*fdd7c7e0SBoqun Feng __rust_helper bool 1016*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc_not_zero(atomic64_t *v) 1017*fdd7c7e0SBoqun Feng { 1018*fdd7c7e0SBoqun Feng return atomic64_inc_not_zero(v); 1019*fdd7c7e0SBoqun Feng } 1020*fdd7c7e0SBoqun Feng 1021*fdd7c7e0SBoqun Feng __rust_helper bool 1022*fdd7c7e0SBoqun Feng rust_helper_atomic64_inc_unless_negative(atomic64_t *v) 1023*fdd7c7e0SBoqun Feng { 1024*fdd7c7e0SBoqun Feng return atomic64_inc_unless_negative(v); 1025*fdd7c7e0SBoqun Feng } 1026*fdd7c7e0SBoqun Feng 1027*fdd7c7e0SBoqun Feng __rust_helper bool 1028*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec_unless_positive(atomic64_t *v) 1029*fdd7c7e0SBoqun Feng { 1030*fdd7c7e0SBoqun Feng return atomic64_dec_unless_positive(v); 1031*fdd7c7e0SBoqun Feng } 1032*fdd7c7e0SBoqun Feng 1033*fdd7c7e0SBoqun Feng __rust_helper s64 1034*fdd7c7e0SBoqun Feng rust_helper_atomic64_dec_if_positive(atomic64_t *v) 1035*fdd7c7e0SBoqun Feng { 1036*fdd7c7e0SBoqun Feng return atomic64_dec_if_positive(v); 1037*fdd7c7e0SBoqun Feng } 1038*fdd7c7e0SBoqun Feng 1039*fdd7c7e0SBoqun Feng #endif /* _RUST_ATOMIC_API_H */ 1040*fdd7c7e0SBoqun Feng // 615a0e0c98b5973a47fe4fa65e92935051ca00ed 1041