Changeset 59e07c91 in mainline for arch/ia64/include


Ignore:
Timestamp:
2005-11-10T13:56:26Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0172eba
Parents:
13fe013
Message:

Define atomic_t type.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/include/atomic.h

    r13fe013 r59e07c91  
    3030#define __ia64_ATOMIC_H__
    3131
    32 /*
    33  * TODO: these are just placeholders for real implementations of atomic_inc and atomic_dec.
    34  * WARNING: the following functions cause the code to be preemption-unsafe !!!
     32#include <arch/types.h>
     33
     34typedef volatile __u64 atomic_t;
     35
     36static inline atomic_t atomic_add(atomic_t *val, int imm)
     37{
     38        atomic_t v;
     39
     40/*     
     41 *      __asm__ volatile ("fetchadd8.rel %0 = %1, %2\n" : "=r" (v), "=m" (val) : "i" (imm));
    3542 */
    36 
    37 static inline atomic_inc(volatile int *val) {
    38         *val++;
     43        *val += imm;
     44       
     45        return v;
    3946}
    4047
    41 static inline atomic_dec(volatile int *val) {
    42         *val--;
    43 }
     48static inline atomic_t atomic_inc(atomic_t *val) { return atomic_add(val, 1); }
     49static inline atomic_t atomic_dec(atomic_t *val) { return atomic_add(val, -1); }
    4450
    4551#endif
Note: See TracChangeset for help on using the changeset viewer.