Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1000 → Rev 1001

/kernel/trunk/arch/ppc32/include/atomic.h
31,15 → 31,10
 
#include <arch/types.h>
 
#define atomic_inc_pre(x) (atomic_inc(x) - 1)
#define atomic_dec_pre(x) (atomic_dec(x) + 1)
 
#define atomic_inc_post(x) atomic_inc(x)
#define atomic_dec_post(x) atomic_dec(x)
 
typedef struct { volatile __u32 count; } atomic_t;
 
static inline void atomic_inc(atomic_t *val) {
static inline void atomic_inc(atomic_t *val)
{
__u32 tmp;
 
asm __volatile__ (
53,7 → 48,8
: "cc");
}
 
static inline void atomic_dec(atomic_t *val) {
static inline void atomic_dec(atomic_t *val)
{
__u32 tmp;
 
asm __volatile__(
67,6 → 63,30
: "cc");
}
 
static inline __u32 atomic_inc_pre(atomic_t *val)
{
atomic_inc(val);
return val->count - 1;
}
 
static inline __u32 atomic_dec_pre(atomic_t *val)
{
atomic_dec(val);
return val->count + 1;
}
 
static inline __u32 atomic_inc_post(atomic_t *val)
{
atomic_inc(val);
return val->count;
}
 
static inline __u32 atomic_dec_post(atomic_t *val)
{
atomic_dec(val);
return val->count;
}
 
static inline void atomic_set(atomic_t *val, __u32 i)
{
val->count = i;