|
GNU Radio 3.3.0 C++ API
|
#include <ppu_intrinsics.h>#include "sync_utils.h"

Go to the source code of this file.
Typedefs | |
| typedef unsigned int atomic_t | __attribute__ ((aligned(128))) |
| typedef unsigned long long | atomic_ea_t |
Functions | |
| static __inline int | _atomic_replace (atomic_ea_t v, int val) |
| static __inline int | _atomic_modify (atomic_ea_t v, int val) |
| typedef unsigned int atomic_t __attribute__((aligned(128))) |
| typedef unsigned long long atomic_ea_t |
| static __inline int _atomic_modify | ( | atomic_ea_t | v, |
| int | val | ||
| ) | [static] |
References SYNC_ULL_TO_PTR.
Referenced by _atomic_add(), _atomic_add_return(), _atomic_dec(), _atomic_dec_and_test(), _atomic_dec_return(), _atomic_inc(), _atomic_inc_return(), _atomic_sub(), _atomic_sub_and_test(), and _atomic_sub_return().
| static __inline int _atomic_replace | ( | atomic_ea_t | v, |
| int | val | ||
| ) | [static] |
ASSUMPTIONS: On the PPE, the size of a reservation granule is 128 bytes (a cache-line), so when a programmer puts a reservation on an address, that whole cacheline is reserved. Therefore both the PPE and SPE can participate in an atomic operation as long as lwarx and getllar operate on the same cacheline.
References SYNC_ULL_TO_PTR.
Referenced by _atomic_set(), and _mutex_unlock().