psl1ght
A free SDK for Sony's PS3 console
Loading...
Searching...
No Matches
spu_atomic.h File Reference
#include <stdint.h>
#include <spu_mfcio.h>
#include <spu_intrinsics.h>

Go to the source code of this file.

Functions

uint32_t spu_atomic_nop32 (uint32_t *ls, uint64_t ea)
 
uint64_t spu_atomic_nop64 (uint64_t *ls, uint64_t ea)
 
uint32_t spu_atomic_incr32 (uint32_t *ls, uint64_t ea)
 
uint64_t spu_atomic_incr64 (uint64_t *ls, uint64_t ea)
 
uint32_t spu_atomic_decr32 (uint32_t *ls, uint64_t ea)
 
uint64_t spu_atomic_decr64 (uint64_t *ls, uint64_t ea)
 
uint32_t spu_atomic_test_and_decr32 (uint32_t *ls, uint64_t ea)
 
uint64_t spu_atomic_test_and_decr64 (uint64_t *ls, uint64_t ea)
 
uint32_t spu_atomic_or32 (uint32_t *ls, uint64_t ea, uint32_t value)
 
uint64_t spu_atomic_or64 (uint64_t *ls, uint64_t ea, uint64_t value)
 
uint32_t spu_atomic_add32 (uint32_t *ls, uint64_t ea, uint32_t value)
 
uint64_t spu_atomic_add64 (uint64_t *ls, uint64_t ea, uint64_t value)
 
uint32_t spu_atomic_and32 (uint32_t *ls, uint64_t ea, uint32_t value)
 
uint64_t spu_atomic_and64 (uint64_t *ls, uint64_t ea, uint64_t value)
 
uint32_t spu_atomic_sub32 (uint32_t *ls, uint64_t ea, uint32_t value)
 
uint64_t spu_atomic_sub64 (uint64_t *ls, uint64_t ea, uint64_t value)
 
uint32_t spu_atomic_store32 (uint32_t *ls, uint64_t ea, uint32_t value)
 
uint64_t spu_atomic_store64 (uint64_t *ls, uint64_t ea, uint64_t value)
 
uint32_t spu_atomic_compare_and_swap32 (uint32_t *ls, uint64_t ea, uint32_t compare, uint32_t value)
 
uint64_t spu_atomic_compare_and_swap64 (uint64_t *ls, uint64_t ea, uint64_t compare, uint64_t value)
 
 __attribute__ ((__always_inline__)) static inline uint32_t spu_atomic_lock_line32(uint32_t *ls
 
eamfc_getllar (ls, ea, 0, 0) = ~0x7f
 
 mfc_read_atomic_status ()
 
 spu_dsync () = ~0x7f
 
 mfc_putllc (ls, ea, 0, 0)
 

Variables

uint64_t ea
 
return ls [i] = value
 
uint64_t uint32_t value
 

Function Documentation

◆ __attribute__()

__attribute__ ( (__always_inline__)  )

◆ mfc_getllar()

ea & mfc_getllar ( ls  ,
ea  ,
,
 
) = ~0x7f

◆ mfc_putllc()

mfc_putllc ( ls  ,
ea  ,
,
 
)

◆ mfc_read_atomic_status()

return mfc_read_atomic_status ( )

◆ spu_atomic_add32()

uint32_t spu_atomic_add32 ( uint32_t *  ls,
uint64_t  ea,
uint32_t  value 
)

◆ spu_atomic_add64()

uint64_t spu_atomic_add64 ( uint64_t *  ls,
uint64_t  ea,
uint64_t  value 
)

◆ spu_atomic_and32()

uint32_t spu_atomic_and32 ( uint32_t *  ls,
uint64_t  ea,
uint32_t  value 
)

◆ spu_atomic_and64()

uint64_t spu_atomic_and64 ( uint64_t *  ls,
uint64_t  ea,
uint64_t  value 
)

◆ spu_atomic_compare_and_swap32()

uint32_t spu_atomic_compare_and_swap32 ( uint32_t *  ls,
uint64_t  ea,
uint32_t  compare,
uint32_t  value 
)

◆ spu_atomic_compare_and_swap64()

uint64_t spu_atomic_compare_and_swap64 ( uint64_t *  ls,
uint64_t  ea,
uint64_t  compare,
uint64_t  value 
)

◆ spu_atomic_decr32()

uint32_t spu_atomic_decr32 ( uint32_t *  ls,
uint64_t  ea 
)

◆ spu_atomic_decr64()

uint64_t spu_atomic_decr64 ( uint64_t *  ls,
uint64_t  ea 
)

◆ spu_atomic_incr32()

uint32_t spu_atomic_incr32 ( uint32_t *  ls,
uint64_t  ea 
)

◆ spu_atomic_incr64()

uint64_t spu_atomic_incr64 ( uint64_t *  ls,
uint64_t  ea 
)

◆ spu_atomic_nop32()

uint32_t spu_atomic_nop32 ( uint32_t *  ls,
uint64_t  ea 
)

◆ spu_atomic_nop64()

uint64_t spu_atomic_nop64 ( uint64_t *  ls,
uint64_t  ea 
)

◆ spu_atomic_or32()

uint32_t spu_atomic_or32 ( uint32_t *  ls,
uint64_t  ea,
uint32_t  value 
)

◆ spu_atomic_or64()

uint64_t spu_atomic_or64 ( uint64_t *  ls,
uint64_t  ea,
uint64_t  value 
)

◆ spu_atomic_store32()

uint32_t spu_atomic_store32 ( uint32_t *  ls,
uint64_t  ea,
uint32_t  value 
)

◆ spu_atomic_store64()

uint64_t spu_atomic_store64 ( uint64_t *  ls,
uint64_t  ea,
uint64_t  value 
)

◆ spu_atomic_sub32()

uint32_t spu_atomic_sub32 ( uint32_t *  ls,
uint64_t  ea,
uint32_t  value 
)

◆ spu_atomic_sub64()

uint64_t spu_atomic_sub64 ( uint64_t *  ls,
uint64_t  ea,
uint64_t  value 
)

◆ spu_atomic_test_and_decr32()

uint32_t spu_atomic_test_and_decr32 ( uint32_t *  ls,
uint64_t  ea 
)

◆ spu_atomic_test_and_decr64()

uint64_t spu_atomic_test_and_decr64 ( uint64_t *  ls,
uint64_t  ea 
)

◆ spu_dsync()

ea & spu_dsync ( ) = ~0x7f

Variable Documentation

◆ ea

uint64_t ea
Initial value:
{
unsigned int i = ((uint32_t)ea & 0x7f) >> 2
uint64_t ea
Definition spu_atomic.h:35

Definition at line 34 of file spu_atomic.h.

◆ ls

return ls = value

Definition at line 42 of file spu_atomic.h.

◆ value

uint64_t uint64_t value
Initial value:
{
unsigned int i = ((uint32_t)ea & 0x7f) >> 2

Definition at line 58 of file spu_atomic.h.