Changeset 320762a in mainline for uspace/lib/c/arch/arm32/src/atomic.c


Ignore:
Timestamp:
2023-08-02T14:54:45Z (19 months ago)
Author:
Vojtech Horky <vojtech.horky@…>
Branches:
ticket/834-toolchain-update
Children:
29941ab
Parents:
e1d93e3
Message:

arm32 atomic builtins: align with compiler declarations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/arm32/src/atomic.c

    re1d93e3 r320762a  
    3838volatile unsigned *ras_page;
    3939
    40 bool __atomic_compare_exchange_4(volatile unsigned *mem, unsigned *expected, unsigned desired, bool weak, int success, int failure)
     40bool __atomic_compare_exchange_4(volatile void *mem, void *expected, unsigned desired, bool weak, int success, int failure)
    4141{
    4242        (void) success;
     
    4444        (void) weak;
    4545
    46         unsigned ov = *expected;
     46        unsigned ov = *((unsigned *)expected);
    4747        unsigned ret;
    4848
     
    6666              [rp0] "=m" (ras_page[0]),
    6767              [rp1] "=m" (ras_page[1]),
    68               [addr] "+m" (*mem)
     68              [addr] "+m" (*((unsigned *)mem))
    6969            : [ov] "r" (ov),
    7070              [nv] "r" (desired)
     
    7878                return true;
    7979
    80         *expected = ret;
     80        *((unsigned *)expected) = ret;
    8181        return false;
    8282}
    8383
    84 unsigned short __atomic_fetch_add_2(volatile unsigned short *mem, unsigned short val, int model)
     84unsigned short __atomic_fetch_add_2(volatile void *mem, unsigned short val, int model)
    8585{
    8686        (void) model;
     
    106106              [rp0] "=m" (ras_page[0]),
    107107              [rp1] "=m" (ras_page[1]),
    108               [addr] "+m" (*mem)
     108              [addr] "+m" (*((volatile unsigned short *)mem))
    109109            : [imm] "r" (val)
    110110        );
     
    116116}
    117117
    118 unsigned __atomic_fetch_add_4(volatile unsigned *mem, unsigned val, int model)
     118unsigned __atomic_fetch_add_4(volatile void *mem, unsigned val, int model)
    119119{
    120120        (void) model;
     
    140140              [rp0] "=m" (ras_page[0]),
    141141              [rp1] "=m" (ras_page[1]),
    142               [addr] "+m" (*mem)
     142              [addr] "+m" (*((volatile unsigned *)mem))
    143143            : [imm] "r" (val)
    144144        );
     
    150150}
    151151
    152 unsigned __atomic_fetch_sub_4(volatile unsigned *mem, unsigned val, int model)
     152unsigned __atomic_fetch_sub_4(volatile void *mem, unsigned val, int model)
    153153{
    154154        return __atomic_fetch_add_4(mem, -val, model);
Note: See TracChangeset for help on using the changeset viewer.