
Go to the source code of this file.
Data Structures | |
| struct | _ppcatomicstate |
| struct | _ppcatomicq |
Typedefs | |
| typedef void * | PPCAtomicQueueElement |
| typedef struct _ppcatomicstate | PPCAtomicState |
| typedef struct _ppcatomicq | PPCAtomicQueue |
Functions | |
| void | PPC_AtomicCounterAllocate (void **atomic_mem, size_t atomic_memsize) |
| ppc_atomic_type_t | PPC_AtomicLoadIncrementBounded (volatile ppc_atomic_t *counter) |
| void | PPC_AtomicStore (volatile ppc_atomic_t *counter, ppc_atomic_type_t val) |
| void | PPC_AtomicReadFence () |
| void | PPC_AtomicWriteFence () |
| void | PPCAtomicQueueInit (void *atomic_mem, size_t atomic_memsize, PPCAtomicQueue *queue, int use_overflow, int nelem) |
| int | PPCAtomicEnqueue (PPCAtomicQueue *queue, void *element) |
| void * | PPCAtomicDequeue (PPCAtomicQueue *queue) |
| int | PPCAtomicQueueEmpty (PPCAtomicQueue *queue) |
| int | PPCAtomicQueueSpinWait (PPCAtomicQueue *queue, int n) |
| int | PPCAtomicQueue2QSpinWait (PPCAtomicQueue *queue0, PPCAtomicQueue *queue1, int n) |
| typedef void* PPCAtomicQueueElement |
Definition at line 41 of file PPCAtomicQueue.h.
| typedef struct _ppcatomicstate PPCAtomicState |
| typedef struct _ppcatomicq PPCAtomicQueue |
| void PPC_AtomicCounterAllocate | ( | void ** | atomic_mem, | |
| size_t | atomic_memsize | |||
| ) |
| ppc_atomic_type_t PPC_AtomicLoadIncrementBounded | ( | volatile ppc_atomic_t * | counter | ) |
| void PPC_AtomicStore | ( | volatile ppc_atomic_t * | counter, | |
| ppc_atomic_type_t | val | |||
| ) |
| void PPC_AtomicReadFence | ( | ) |
| void PPC_AtomicWriteFence | ( | ) |
| void PPCAtomicQueueInit | ( | void * | atomic_mem, | |
| size_t | atomic_memsize, | |||
| PPCAtomicQueue * | queue, | |||
| int | use_overflow, | |||
| int | nelem | |||
| ) |
Definition at line 61 of file PPCAtomicQueue.h.
References _ppcatomicq::_array, _ppcatomicq::_consumer, _ppcatomicq::_overflowQ, _ppcatomicq::_qsize, _ppcatomicq::_state, _ppcatomicq::_useOverflowQ, assert, PCQueueCreate(), posix_memalign(), PPC_AtomicStore(), _ppcatomicstate::Producer, and _ppcatomicstate::UpperBound.
Referenced by CmiMemAllocInit_ppcq().


| int PPCAtomicEnqueue | ( | PPCAtomicQueue * | queue, | |
| void * | element | |||
| ) |
Definition at line 97 of file PPCAtomicQueue.h.
References _ppcatomicq::_array, _ppcatomicq::_overflowQ, _ppcatomicq::_qsize, _ppcatomicq::_state, _ppcatomicq::_useOverflowQ, index, PCQueuePush(), PPC_AtomicLoadIncrementBounded(), PPC_AtomicWriteFence(), and _ppcatomicstate::Producer.
Referenced by CmiFree_ppcq().


| void* PPCAtomicDequeue | ( | PPCAtomicQueue * | queue | ) |
Definition at line 120 of file PPCAtomicQueue.h.
References _ppcatomicq::_array, _ppcatomicq::_consumer, _ppcatomicq::_overflowQ, _ppcatomicq::_qsize, _ppcatomicq::_state, _ppcatomicq::_useOverflowQ, n, PCQueuePop(), PPC_AtomicReadFence(), PPC_AtomicStore(), _ppcatomicstate::Producer, and _ppcatomicstate::UpperBound.
Referenced by CmiAlloc_ppcq().


| int PPCAtomicQueueEmpty | ( | PPCAtomicQueue * | queue | ) |
Definition at line 157 of file PPCAtomicQueue.h.
References _ppcatomicq::_consumer, _ppcatomicq::_overflowQ, _ppcatomicq::_state, PCQueueLength(), and _ppcatomicstate::Producer.
Referenced by PPCAtomicQueue2QSpinWait(), and PPCAtomicQueueSpinWait().


| int PPCAtomicQueueSpinWait | ( | PPCAtomicQueue * | queue, | |
| int | n | |||
| ) |
Definition at line 164 of file PPCAtomicQueue.h.
References _ppcatomicq::_consumer, _ppcatomicq::_state, PPCAtomicQueueEmpty(), and _ppcatomicstate::Producer.

| int PPCAtomicQueue2QSpinWait | ( | PPCAtomicQueue * | queue0, | |
| PPCAtomicQueue * | queue1, | |||
| int | n | |||
| ) |
Definition at line 186 of file PPCAtomicQueue.h.
References _ppcatomicq::_consumer, _ppcatomicq::_state, PPCAtomicQueueEmpty(), and _ppcatomicstate::Producer.

1.5.5