1#ifndef __SPU_ATOMIC_H__
2#define __SPU_ATOMIC_H__
6#include <spu_intrinsics.h>
34static inline uint32_t spu_atomic_lock_line32(uint32_t *
ls, uint64_t
ea)
36 unsigned int i = ((uint32_t)
ea & 0x7f) >> 2;
46static inline uint64_t spu_atomic_lock_line64(uint64_t *
ls, uint64_t
ea)
48 unsigned int i = ((uint32_t)
ea & 0x7f) >> 3;
58static inline
int spu_atomic_store_conditional32(uint32_t *
ls, uint64_t
ea, uint32_t
value)
60 unsigned int i = ((uint32_t)
ea & 0x7f) >> 2;
70static inline int spu_atomic_store_conditional64(uint64_t *
ls, uint64_t
ea, uint64_t
value)
72 unsigned int i = ((uint32_t)
ea & 0x7f) >> 3;
struct _heap_cntrl_t __attribute__
uint32_t spu_atomic_incr32(uint32_t *ls, uint64_t ea)
uint64_t spu_atomic_and64(uint64_t *ls, uint64_t ea, uint64_t value)
uint64_t spu_atomic_test_and_decr64(uint64_t *ls, uint64_t ea)
uint32_t spu_atomic_test_and_decr32(uint32_t *ls, uint64_t ea)
uint64_t spu_atomic_compare_and_swap64(uint64_t *ls, uint64_t ea, uint64_t compare, uint64_t value)
uint64_t spu_atomic_decr64(uint64_t *ls, uint64_t ea)
uint64_t spu_atomic_store64(uint64_t *ls, uint64_t ea, uint64_t value)
uint64_t spu_atomic_or64(uint64_t *ls, uint64_t ea, uint64_t value)
uint64_t spu_atomic_nop64(uint64_t *ls, uint64_t ea)
uint32_t spu_atomic_and32(uint32_t *ls, uint64_t ea, uint32_t value)
uint32_t spu_atomic_sub32(uint32_t *ls, uint64_t ea, uint32_t value)
uint32_t spu_atomic_or32(uint32_t *ls, uint64_t ea, uint32_t value)
uint64_t spu_atomic_incr64(uint64_t *ls, uint64_t ea)
uint64_t spu_atomic_sub64(uint64_t *ls, uint64_t ea, uint64_t value)
uint32_t spu_atomic_decr32(uint32_t *ls, uint64_t ea)
uint64_t spu_atomic_add64(uint64_t *ls, uint64_t ea, uint64_t value)
uint32_t spu_atomic_add32(uint32_t *ls, uint64_t ea, uint32_t value)
ea & mfc_getllar(ls, ea, 0, 0)
uint32_t spu_atomic_store32(uint32_t *ls, uint64_t ea, uint32_t value)
uint32_t spu_atomic_nop32(uint32_t *ls, uint64_t ea)
uint32_t spu_atomic_compare_and_swap32(uint32_t *ls, uint64_t ea, uint32_t compare, uint32_t value)