72 #include "hpctoolkit-config.h" 79 #define READER_INCREMENT 0x100 81 #define PHASE_BIT 0x001 82 #define WRITER_PRESENT 0x002 84 #define WRITER_MASK (PHASE_BIT | WRITER_PRESENT) 85 #define TICKET_MASK ~(WRITER_MASK) 92 #ifdef HOST_BIG_ENDIAN 93 #define LSB_PTR(p) (((unsigned char *) p) + (sizeof(*p) - 1)) 96 #ifdef HOST_LITTLE_ENDIAN 97 #define LSB_PTR(p) ((unsigned char *) p) 101 #error "endianness must be configured. " \ 102 "use --enable-endian to force configuration" 217 unsigned char *lsb = LSB_PTR(&l->rin);
226 lsb = LSB_PTR(&l->rout);
void mcs_lock(mcs_lock_t *l, mcs_node_t *me)
#define atomic_fetch_add_explicit(object, operand, order)
bigbool writer_blocking_readers[2]
#define atomic_load_explicit(object, order)
void pfq_rwlock_init(pfq_rwlock_t *l)
#define atomic_store_explicit(object, desired, order)
void mcs_unlock(mcs_lock_t *l, mcs_node_t *me)
void pfq_rwlock_write_lock(pfq_rwlock_t *l, pfq_rwlock_node_t *me)
void pfq_rwlock_read_lock(pfq_rwlock_t *l)
void pfq_rwlock_write_unlock(pfq_rwlock_t *l, pfq_rwlock_node_t *me)
void pfq_rwlock_read_unlock(pfq_rwlock_t *l)
#define atomic_init(obj, value)
#define atomic_fetch_or_explicit(object, operand, order)
static void mcs_init(mcs_lock_t *l)