at v5.2 1013 lines 19 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2 3// Generated by scripts/atomic/gen-atomic-long.sh 4// DO NOT MODIFY THIS FILE DIRECTLY 5 6#ifndef _ASM_GENERIC_ATOMIC_LONG_H 7#define _ASM_GENERIC_ATOMIC_LONG_H 8 9#include <asm/types.h> 10 11#ifdef CONFIG_64BIT 12typedef atomic64_t atomic_long_t; 13#define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i) 14#define atomic_long_cond_read_acquire atomic64_cond_read_acquire 15#define atomic_long_cond_read_relaxed atomic64_cond_read_relaxed 16#else 17typedef atomic_t atomic_long_t; 18#define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i) 19#define atomic_long_cond_read_acquire atomic_cond_read_acquire 20#define atomic_long_cond_read_relaxed atomic_cond_read_relaxed 21#endif 22 23#ifdef CONFIG_64BIT 24 25static inline long 26atomic_long_read(const atomic_long_t *v) 27{ 28 return atomic64_read(v); 29} 30 31static inline long 32atomic_long_read_acquire(const atomic_long_t *v) 33{ 34 return atomic64_read_acquire(v); 35} 36 37static inline void 38atomic_long_set(atomic_long_t *v, long i) 39{ 40 atomic64_set(v, i); 41} 42 43static inline void 44atomic_long_set_release(atomic_long_t *v, long i) 45{ 46 atomic64_set_release(v, i); 47} 48 49static inline void 50atomic_long_add(long i, atomic_long_t *v) 51{ 52 atomic64_add(i, v); 53} 54 55static inline long 56atomic_long_add_return(long i, atomic_long_t *v) 57{ 58 return atomic64_add_return(i, v); 59} 60 61static inline long 62atomic_long_add_return_acquire(long i, atomic_long_t *v) 63{ 64 return atomic64_add_return_acquire(i, v); 65} 66 67static inline long 68atomic_long_add_return_release(long i, atomic_long_t *v) 69{ 70 return atomic64_add_return_release(i, v); 71} 72 73static inline long 74atomic_long_add_return_relaxed(long i, atomic_long_t *v) 75{ 76 return atomic64_add_return_relaxed(i, v); 77} 78 79static inline long 80atomic_long_fetch_add(long i, atomic_long_t *v) 81{ 82 return atomic64_fetch_add(i, v); 83} 84 85static inline long 86atomic_long_fetch_add_acquire(long i, atomic_long_t *v) 87{ 88 return atomic64_fetch_add_acquire(i, v); 89} 90 91static inline long 92atomic_long_fetch_add_release(long i, atomic_long_t *v) 93{ 94 return atomic64_fetch_add_release(i, v); 95} 96 97static inline long 98atomic_long_fetch_add_relaxed(long i, atomic_long_t *v) 99{ 100 return atomic64_fetch_add_relaxed(i, v); 101} 102 103static inline void 104atomic_long_sub(long i, atomic_long_t *v) 105{ 106 atomic64_sub(i, v); 107} 108 109static inline long 110atomic_long_sub_return(long i, atomic_long_t *v) 111{ 112 return atomic64_sub_return(i, v); 113} 114 115static inline long 116atomic_long_sub_return_acquire(long i, atomic_long_t *v) 117{ 118 return atomic64_sub_return_acquire(i, v); 119} 120 121static inline long 122atomic_long_sub_return_release(long i, atomic_long_t *v) 123{ 124 return atomic64_sub_return_release(i, v); 125} 126 127static inline long 128atomic_long_sub_return_relaxed(long i, atomic_long_t *v) 129{ 130 return atomic64_sub_return_relaxed(i, v); 131} 132 133static inline long 134atomic_long_fetch_sub(long i, atomic_long_t *v) 135{ 136 return atomic64_fetch_sub(i, v); 137} 138 139static inline long 140atomic_long_fetch_sub_acquire(long i, atomic_long_t *v) 141{ 142 return atomic64_fetch_sub_acquire(i, v); 143} 144 145static inline long 146atomic_long_fetch_sub_release(long i, atomic_long_t *v) 147{ 148 return atomic64_fetch_sub_release(i, v); 149} 150 151static inline long 152atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v) 153{ 154 return atomic64_fetch_sub_relaxed(i, v); 155} 156 157static inline void 158atomic_long_inc(atomic_long_t *v) 159{ 160 atomic64_inc(v); 161} 162 163static inline long 164atomic_long_inc_return(atomic_long_t *v) 165{ 166 return atomic64_inc_return(v); 167} 168 169static inline long 170atomic_long_inc_return_acquire(atomic_long_t *v) 171{ 172 return atomic64_inc_return_acquire(v); 173} 174 175static inline long 176atomic_long_inc_return_release(atomic_long_t *v) 177{ 178 return atomic64_inc_return_release(v); 179} 180 181static inline long 182atomic_long_inc_return_relaxed(atomic_long_t *v) 183{ 184 return atomic64_inc_return_relaxed(v); 185} 186 187static inline long 188atomic_long_fetch_inc(atomic_long_t *v) 189{ 190 return atomic64_fetch_inc(v); 191} 192 193static inline long 194atomic_long_fetch_inc_acquire(atomic_long_t *v) 195{ 196 return atomic64_fetch_inc_acquire(v); 197} 198 199static inline long 200atomic_long_fetch_inc_release(atomic_long_t *v) 201{ 202 return atomic64_fetch_inc_release(v); 203} 204 205static inline long 206atomic_long_fetch_inc_relaxed(atomic_long_t *v) 207{ 208 return atomic64_fetch_inc_relaxed(v); 209} 210 211static inline void 212atomic_long_dec(atomic_long_t *v) 213{ 214 atomic64_dec(v); 215} 216 217static inline long 218atomic_long_dec_return(atomic_long_t *v) 219{ 220 return atomic64_dec_return(v); 221} 222 223static inline long 224atomic_long_dec_return_acquire(atomic_long_t *v) 225{ 226 return atomic64_dec_return_acquire(v); 227} 228 229static inline long 230atomic_long_dec_return_release(atomic_long_t *v) 231{ 232 return atomic64_dec_return_release(v); 233} 234 235static inline long 236atomic_long_dec_return_relaxed(atomic_long_t *v) 237{ 238 return atomic64_dec_return_relaxed(v); 239} 240 241static inline long 242atomic_long_fetch_dec(atomic_long_t *v) 243{ 244 return atomic64_fetch_dec(v); 245} 246 247static inline long 248atomic_long_fetch_dec_acquire(atomic_long_t *v) 249{ 250 return atomic64_fetch_dec_acquire(v); 251} 252 253static inline long 254atomic_long_fetch_dec_release(atomic_long_t *v) 255{ 256 return atomic64_fetch_dec_release(v); 257} 258 259static inline long 260atomic_long_fetch_dec_relaxed(atomic_long_t *v) 261{ 262 return atomic64_fetch_dec_relaxed(v); 263} 264 265static inline void 266atomic_long_and(long i, atomic_long_t *v) 267{ 268 atomic64_and(i, v); 269} 270 271static inline long 272atomic_long_fetch_and(long i, atomic_long_t *v) 273{ 274 return atomic64_fetch_and(i, v); 275} 276 277static inline long 278atomic_long_fetch_and_acquire(long i, atomic_long_t *v) 279{ 280 return atomic64_fetch_and_acquire(i, v); 281} 282 283static inline long 284atomic_long_fetch_and_release(long i, atomic_long_t *v) 285{ 286 return atomic64_fetch_and_release(i, v); 287} 288 289static inline long 290atomic_long_fetch_and_relaxed(long i, atomic_long_t *v) 291{ 292 return atomic64_fetch_and_relaxed(i, v); 293} 294 295static inline void 296atomic_long_andnot(long i, atomic_long_t *v) 297{ 298 atomic64_andnot(i, v); 299} 300 301static inline long 302atomic_long_fetch_andnot(long i, atomic_long_t *v) 303{ 304 return atomic64_fetch_andnot(i, v); 305} 306 307static inline long 308atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v) 309{ 310 return atomic64_fetch_andnot_acquire(i, v); 311} 312 313static inline long 314atomic_long_fetch_andnot_release(long i, atomic_long_t *v) 315{ 316 return atomic64_fetch_andnot_release(i, v); 317} 318 319static inline long 320atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v) 321{ 322 return atomic64_fetch_andnot_relaxed(i, v); 323} 324 325static inline void 326atomic_long_or(long i, atomic_long_t *v) 327{ 328 atomic64_or(i, v); 329} 330 331static inline long 332atomic_long_fetch_or(long i, atomic_long_t *v) 333{ 334 return atomic64_fetch_or(i, v); 335} 336 337static inline long 338atomic_long_fetch_or_acquire(long i, atomic_long_t *v) 339{ 340 return atomic64_fetch_or_acquire(i, v); 341} 342 343static inline long 344atomic_long_fetch_or_release(long i, atomic_long_t *v) 345{ 346 return atomic64_fetch_or_release(i, v); 347} 348 349static inline long 350atomic_long_fetch_or_relaxed(long i, atomic_long_t *v) 351{ 352 return atomic64_fetch_or_relaxed(i, v); 353} 354 355static inline void 356atomic_long_xor(long i, atomic_long_t *v) 357{ 358 atomic64_xor(i, v); 359} 360 361static inline long 362atomic_long_fetch_xor(long i, atomic_long_t *v) 363{ 364 return atomic64_fetch_xor(i, v); 365} 366 367static inline long 368atomic_long_fetch_xor_acquire(long i, atomic_long_t *v) 369{ 370 return atomic64_fetch_xor_acquire(i, v); 371} 372 373static inline long 374atomic_long_fetch_xor_release(long i, atomic_long_t *v) 375{ 376 return atomic64_fetch_xor_release(i, v); 377} 378 379static inline long 380atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v) 381{ 382 return atomic64_fetch_xor_relaxed(i, v); 383} 384 385static inline long 386atomic_long_xchg(atomic_long_t *v, long i) 387{ 388 return atomic64_xchg(v, i); 389} 390 391static inline long 392atomic_long_xchg_acquire(atomic_long_t *v, long i) 393{ 394 return atomic64_xchg_acquire(v, i); 395} 396 397static inline long 398atomic_long_xchg_release(atomic_long_t *v, long i) 399{ 400 return atomic64_xchg_release(v, i); 401} 402 403static inline long 404atomic_long_xchg_relaxed(atomic_long_t *v, long i) 405{ 406 return atomic64_xchg_relaxed(v, i); 407} 408 409static inline long 410atomic_long_cmpxchg(atomic_long_t *v, long old, long new) 411{ 412 return atomic64_cmpxchg(v, old, new); 413} 414 415static inline long 416atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new) 417{ 418 return atomic64_cmpxchg_acquire(v, old, new); 419} 420 421static inline long 422atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new) 423{ 424 return atomic64_cmpxchg_release(v, old, new); 425} 426 427static inline long 428atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new) 429{ 430 return atomic64_cmpxchg_relaxed(v, old, new); 431} 432 433static inline bool 434atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new) 435{ 436 return atomic64_try_cmpxchg(v, (s64 *)old, new); 437} 438 439static inline bool 440atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new) 441{ 442 return atomic64_try_cmpxchg_acquire(v, (s64 *)old, new); 443} 444 445static inline bool 446atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new) 447{ 448 return atomic64_try_cmpxchg_release(v, (s64 *)old, new); 449} 450 451static inline bool 452atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new) 453{ 454 return atomic64_try_cmpxchg_relaxed(v, (s64 *)old, new); 455} 456 457static inline bool 458atomic_long_sub_and_test(long i, atomic_long_t *v) 459{ 460 return atomic64_sub_and_test(i, v); 461} 462 463static inline bool 464atomic_long_dec_and_test(atomic_long_t *v) 465{ 466 return atomic64_dec_and_test(v); 467} 468 469static inline bool 470atomic_long_inc_and_test(atomic_long_t *v) 471{ 472 return atomic64_inc_and_test(v); 473} 474 475static inline bool 476atomic_long_add_negative(long i, atomic_long_t *v) 477{ 478 return atomic64_add_negative(i, v); 479} 480 481static inline long 482atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u) 483{ 484 return atomic64_fetch_add_unless(v, a, u); 485} 486 487static inline bool 488atomic_long_add_unless(atomic_long_t *v, long a, long u) 489{ 490 return atomic64_add_unless(v, a, u); 491} 492 493static inline bool 494atomic_long_inc_not_zero(atomic_long_t *v) 495{ 496 return atomic64_inc_not_zero(v); 497} 498 499static inline bool 500atomic_long_inc_unless_negative(atomic_long_t *v) 501{ 502 return atomic64_inc_unless_negative(v); 503} 504 505static inline bool 506atomic_long_dec_unless_positive(atomic_long_t *v) 507{ 508 return atomic64_dec_unless_positive(v); 509} 510 511static inline long 512atomic_long_dec_if_positive(atomic_long_t *v) 513{ 514 return atomic64_dec_if_positive(v); 515} 516 517#else /* CONFIG_64BIT */ 518 519static inline long 520atomic_long_read(const atomic_long_t *v) 521{ 522 return atomic_read(v); 523} 524 525static inline long 526atomic_long_read_acquire(const atomic_long_t *v) 527{ 528 return atomic_read_acquire(v); 529} 530 531static inline void 532atomic_long_set(atomic_long_t *v, long i) 533{ 534 atomic_set(v, i); 535} 536 537static inline void 538atomic_long_set_release(atomic_long_t *v, long i) 539{ 540 atomic_set_release(v, i); 541} 542 543static inline void 544atomic_long_add(long i, atomic_long_t *v) 545{ 546 atomic_add(i, v); 547} 548 549static inline long 550atomic_long_add_return(long i, atomic_long_t *v) 551{ 552 return atomic_add_return(i, v); 553} 554 555static inline long 556atomic_long_add_return_acquire(long i, atomic_long_t *v) 557{ 558 return atomic_add_return_acquire(i, v); 559} 560 561static inline long 562atomic_long_add_return_release(long i, atomic_long_t *v) 563{ 564 return atomic_add_return_release(i, v); 565} 566 567static inline long 568atomic_long_add_return_relaxed(long i, atomic_long_t *v) 569{ 570 return atomic_add_return_relaxed(i, v); 571} 572 573static inline long 574atomic_long_fetch_add(long i, atomic_long_t *v) 575{ 576 return atomic_fetch_add(i, v); 577} 578 579static inline long 580atomic_long_fetch_add_acquire(long i, atomic_long_t *v) 581{ 582 return atomic_fetch_add_acquire(i, v); 583} 584 585static inline long 586atomic_long_fetch_add_release(long i, atomic_long_t *v) 587{ 588 return atomic_fetch_add_release(i, v); 589} 590 591static inline long 592atomic_long_fetch_add_relaxed(long i, atomic_long_t *v) 593{ 594 return atomic_fetch_add_relaxed(i, v); 595} 596 597static inline void 598atomic_long_sub(long i, atomic_long_t *v) 599{ 600 atomic_sub(i, v); 601} 602 603static inline long 604atomic_long_sub_return(long i, atomic_long_t *v) 605{ 606 return atomic_sub_return(i, v); 607} 608 609static inline long 610atomic_long_sub_return_acquire(long i, atomic_long_t *v) 611{ 612 return atomic_sub_return_acquire(i, v); 613} 614 615static inline long 616atomic_long_sub_return_release(long i, atomic_long_t *v) 617{ 618 return atomic_sub_return_release(i, v); 619} 620 621static inline long 622atomic_long_sub_return_relaxed(long i, atomic_long_t *v) 623{ 624 return atomic_sub_return_relaxed(i, v); 625} 626 627static inline long 628atomic_long_fetch_sub(long i, atomic_long_t *v) 629{ 630 return atomic_fetch_sub(i, v); 631} 632 633static inline long 634atomic_long_fetch_sub_acquire(long i, atomic_long_t *v) 635{ 636 return atomic_fetch_sub_acquire(i, v); 637} 638 639static inline long 640atomic_long_fetch_sub_release(long i, atomic_long_t *v) 641{ 642 return atomic_fetch_sub_release(i, v); 643} 644 645static inline long 646atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v) 647{ 648 return atomic_fetch_sub_relaxed(i, v); 649} 650 651static inline void 652atomic_long_inc(atomic_long_t *v) 653{ 654 atomic_inc(v); 655} 656 657static inline long 658atomic_long_inc_return(atomic_long_t *v) 659{ 660 return atomic_inc_return(v); 661} 662 663static inline long 664atomic_long_inc_return_acquire(atomic_long_t *v) 665{ 666 return atomic_inc_return_acquire(v); 667} 668 669static inline long 670atomic_long_inc_return_release(atomic_long_t *v) 671{ 672 return atomic_inc_return_release(v); 673} 674 675static inline long 676atomic_long_inc_return_relaxed(atomic_long_t *v) 677{ 678 return atomic_inc_return_relaxed(v); 679} 680 681static inline long 682atomic_long_fetch_inc(atomic_long_t *v) 683{ 684 return atomic_fetch_inc(v); 685} 686 687static inline long 688atomic_long_fetch_inc_acquire(atomic_long_t *v) 689{ 690 return atomic_fetch_inc_acquire(v); 691} 692 693static inline long 694atomic_long_fetch_inc_release(atomic_long_t *v) 695{ 696 return atomic_fetch_inc_release(v); 697} 698 699static inline long 700atomic_long_fetch_inc_relaxed(atomic_long_t *v) 701{ 702 return atomic_fetch_inc_relaxed(v); 703} 704 705static inline void 706atomic_long_dec(atomic_long_t *v) 707{ 708 atomic_dec(v); 709} 710 711static inline long 712atomic_long_dec_return(atomic_long_t *v) 713{ 714 return atomic_dec_return(v); 715} 716 717static inline long 718atomic_long_dec_return_acquire(atomic_long_t *v) 719{ 720 return atomic_dec_return_acquire(v); 721} 722 723static inline long 724atomic_long_dec_return_release(atomic_long_t *v) 725{ 726 return atomic_dec_return_release(v); 727} 728 729static inline long 730atomic_long_dec_return_relaxed(atomic_long_t *v) 731{ 732 return atomic_dec_return_relaxed(v); 733} 734 735static inline long 736atomic_long_fetch_dec(atomic_long_t *v) 737{ 738 return atomic_fetch_dec(v); 739} 740 741static inline long 742atomic_long_fetch_dec_acquire(atomic_long_t *v) 743{ 744 return atomic_fetch_dec_acquire(v); 745} 746 747static inline long 748atomic_long_fetch_dec_release(atomic_long_t *v) 749{ 750 return atomic_fetch_dec_release(v); 751} 752 753static inline long 754atomic_long_fetch_dec_relaxed(atomic_long_t *v) 755{ 756 return atomic_fetch_dec_relaxed(v); 757} 758 759static inline void 760atomic_long_and(long i, atomic_long_t *v) 761{ 762 atomic_and(i, v); 763} 764 765static inline long 766atomic_long_fetch_and(long i, atomic_long_t *v) 767{ 768 return atomic_fetch_and(i, v); 769} 770 771static inline long 772atomic_long_fetch_and_acquire(long i, atomic_long_t *v) 773{ 774 return atomic_fetch_and_acquire(i, v); 775} 776 777static inline long 778atomic_long_fetch_and_release(long i, atomic_long_t *v) 779{ 780 return atomic_fetch_and_release(i, v); 781} 782 783static inline long 784atomic_long_fetch_and_relaxed(long i, atomic_long_t *v) 785{ 786 return atomic_fetch_and_relaxed(i, v); 787} 788 789static inline void 790atomic_long_andnot(long i, atomic_long_t *v) 791{ 792 atomic_andnot(i, v); 793} 794 795static inline long 796atomic_long_fetch_andnot(long i, atomic_long_t *v) 797{ 798 return atomic_fetch_andnot(i, v); 799} 800 801static inline long 802atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v) 803{ 804 return atomic_fetch_andnot_acquire(i, v); 805} 806 807static inline long 808atomic_long_fetch_andnot_release(long i, atomic_long_t *v) 809{ 810 return atomic_fetch_andnot_release(i, v); 811} 812 813static inline long 814atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v) 815{ 816 return atomic_fetch_andnot_relaxed(i, v); 817} 818 819static inline void 820atomic_long_or(long i, atomic_long_t *v) 821{ 822 atomic_or(i, v); 823} 824 825static inline long 826atomic_long_fetch_or(long i, atomic_long_t *v) 827{ 828 return atomic_fetch_or(i, v); 829} 830 831static inline long 832atomic_long_fetch_or_acquire(long i, atomic_long_t *v) 833{ 834 return atomic_fetch_or_acquire(i, v); 835} 836 837static inline long 838atomic_long_fetch_or_release(long i, atomic_long_t *v) 839{ 840 return atomic_fetch_or_release(i, v); 841} 842 843static inline long 844atomic_long_fetch_or_relaxed(long i, atomic_long_t *v) 845{ 846 return atomic_fetch_or_relaxed(i, v); 847} 848 849static inline void 850atomic_long_xor(long i, atomic_long_t *v) 851{ 852 atomic_xor(i, v); 853} 854 855static inline long 856atomic_long_fetch_xor(long i, atomic_long_t *v) 857{ 858 return atomic_fetch_xor(i, v); 859} 860 861static inline long 862atomic_long_fetch_xor_acquire(long i, atomic_long_t *v) 863{ 864 return atomic_fetch_xor_acquire(i, v); 865} 866 867static inline long 868atomic_long_fetch_xor_release(long i, atomic_long_t *v) 869{ 870 return atomic_fetch_xor_release(i, v); 871} 872 873static inline long 874atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v) 875{ 876 return atomic_fetch_xor_relaxed(i, v); 877} 878 879static inline long 880atomic_long_xchg(atomic_long_t *v, long i) 881{ 882 return atomic_xchg(v, i); 883} 884 885static inline long 886atomic_long_xchg_acquire(atomic_long_t *v, long i) 887{ 888 return atomic_xchg_acquire(v, i); 889} 890 891static inline long 892atomic_long_xchg_release(atomic_long_t *v, long i) 893{ 894 return atomic_xchg_release(v, i); 895} 896 897static inline long 898atomic_long_xchg_relaxed(atomic_long_t *v, long i) 899{ 900 return atomic_xchg_relaxed(v, i); 901} 902 903static inline long 904atomic_long_cmpxchg(atomic_long_t *v, long old, long new) 905{ 906 return atomic_cmpxchg(v, old, new); 907} 908 909static inline long 910atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new) 911{ 912 return atomic_cmpxchg_acquire(v, old, new); 913} 914 915static inline long 916atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new) 917{ 918 return atomic_cmpxchg_release(v, old, new); 919} 920 921static inline long 922atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new) 923{ 924 return atomic_cmpxchg_relaxed(v, old, new); 925} 926 927static inline bool 928atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new) 929{ 930 return atomic_try_cmpxchg(v, (int *)old, new); 931} 932 933static inline bool 934atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new) 935{ 936 return atomic_try_cmpxchg_acquire(v, (int *)old, new); 937} 938 939static inline bool 940atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new) 941{ 942 return atomic_try_cmpxchg_release(v, (int *)old, new); 943} 944 945static inline bool 946atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new) 947{ 948 return atomic_try_cmpxchg_relaxed(v, (int *)old, new); 949} 950 951static inline bool 952atomic_long_sub_and_test(long i, atomic_long_t *v) 953{ 954 return atomic_sub_and_test(i, v); 955} 956 957static inline bool 958atomic_long_dec_and_test(atomic_long_t *v) 959{ 960 return atomic_dec_and_test(v); 961} 962 963static inline bool 964atomic_long_inc_and_test(atomic_long_t *v) 965{ 966 return atomic_inc_and_test(v); 967} 968 969static inline bool 970atomic_long_add_negative(long i, atomic_long_t *v) 971{ 972 return atomic_add_negative(i, v); 973} 974 975static inline long 976atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u) 977{ 978 return atomic_fetch_add_unless(v, a, u); 979} 980 981static inline bool 982atomic_long_add_unless(atomic_long_t *v, long a, long u) 983{ 984 return atomic_add_unless(v, a, u); 985} 986 987static inline bool 988atomic_long_inc_not_zero(atomic_long_t *v) 989{ 990 return atomic_inc_not_zero(v); 991} 992 993static inline bool 994atomic_long_inc_unless_negative(atomic_long_t *v) 995{ 996 return atomic_inc_unless_negative(v); 997} 998 999static inline bool 1000atomic_long_dec_unless_positive(atomic_long_t *v) 1001{ 1002 return atomic_dec_unless_positive(v); 1003} 1004 1005static inline long 1006atomic_long_dec_if_positive(atomic_long_t *v) 1007{ 1008 return atomic_dec_if_positive(v); 1009} 1010 1011#endif /* CONFIG_64BIT */ 1012#endif /* _ASM_GENERIC_ATOMIC_LONG_H */ 1013// 77558968132ce4f911ad53f6f52ce423006f6268