Ignore:
Timestamp:
2018-09-06T20:21:52Z (6 years ago)
Author:
Jiří Zárevúcky <jiri.zarevucky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
78de83de, fc10e1b
Parents:
4621d23
git-author:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-08-13 03:53:39)
git-committer:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-09-06 20:21:52)
Message:

Remove uspace <atomic.h>, use <stdatomic.h> instead

File:
1 edited

Legend:

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

    r4621d23 r508b0df1  
    8181}
    8282
     83unsigned short __atomic_fetch_add_2(volatile unsigned short *mem, unsigned short val, int model)
     84{
     85        (void) model;
     86
     87        unsigned short ret;
     88
     89        /*
     90         * The following instructions between labels 1 and 2 constitute a
     91         * Restartable Atomic Seqeunce. Should the sequence be non-atomic,
     92         * the kernel will restart it.
     93         */
     94        asm volatile (
     95            "1:\n"
     96            "   adr %[ret], 1b\n"
     97            "   str %[ret], %[rp0]\n"
     98            "   adr %[ret], 2f\n"
     99            "   str %[ret], %[rp1]\n"
     100            "   ldrh %[ret], %[addr]\n"
     101            "   add %[ret], %[ret], %[imm]\n"
     102            "   strh %[ret], %[addr]\n"
     103            "2:\n"
     104            : [ret] "=&r" (ret),
     105              [rp0] "=m" (ras_page[0]),
     106              [rp1] "=m" (ras_page[1]),
     107              [addr] "+m" (*mem)
     108            : [imm] "r" (val)
     109        );
     110
     111        ras_page[0] = 0;
     112        ras_page[1] = 0xffffffff;
     113
     114        return ret - val;
     115}
     116
    83117unsigned __atomic_fetch_add_4(volatile unsigned *mem, unsigned val, int model)
    84118{
Note: See TracChangeset for help on using the changeset viewer.