lifo 25 opal/class/opal_lifo.c static void opal_lifo_construct (opal_lifo_t *lifo) lifo 27 opal/class/opal_lifo.c OBJ_CONSTRUCT(&lifo->opal_lifo_ghost, opal_list_item_t); lifo 28 opal/class/opal_lifo.c lifo->opal_lifo_ghost.opal_list_next = &lifo->opal_lifo_ghost; lifo 29 opal/class/opal_lifo.c lifo->opal_lifo_head.data.item = (intptr_t) &lifo->opal_lifo_ghost; lifo 30 opal/class/opal_lifo.c lifo->opal_lifo_head.data.counter = 0; lifo 133 opal/class/opal_lifo.h static inline bool opal_lifo_is_empty( opal_lifo_t* lifo ) lifo 135 opal/class/opal_lifo.h return (opal_list_item_t *) lifo->opal_lifo_head.data.item == &lifo->opal_lifo_ghost; lifo 145 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_push_atomic (opal_lifo_t *lifo, lifo 148 opal/class/opal_lifo.h opal_list_item_t *next = (opal_list_item_t *) lifo->opal_lifo_head.data.item; lifo 155 opal/class/opal_lifo.h if (opal_atomic_compare_exchange_strong_ptr (&lifo->opal_lifo_head.data.item, (intptr_t *) &next, (intptr_t) item)) { lifo 165 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_pop_atomic (opal_lifo_t* lifo) lifo 170 opal/class/opal_lifo.h opal_read_counted_pointer (&lifo->opal_lifo_head, &old_head); lifo 174 opal/class/opal_lifo.h if (item == &lifo->opal_lifo_ghost) { lifo 178 opal/class/opal_lifo.h if (opal_update_counted_pointer (&lifo->opal_lifo_head, &old_head, lifo 193 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_push_atomic (opal_lifo_t *lifo, lifo 196 opal/class/opal_lifo.h opal_list_item_t *next = (opal_list_item_t *) lifo->opal_lifo_head.data.item; lifo 204 opal/class/opal_lifo.h if (opal_atomic_compare_exchange_strong_ptr (&lifo->opal_lifo_head.data.item, (intptr_t *) &next, (intptr_t) item)) { lifo 219 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_pop_atomic (opal_lifo_t* lifo) lifo 232 opal/class/opal_lifo.h opal_atomic_ll_ptr(&lifo->opal_lifo_head.data.item, item); lifo 233 opal/class/opal_lifo.h if (&lifo->opal_lifo_ghost == item) { lifo 238 opal/class/opal_lifo.h opal_atomic_sc_ptr(&lifo->opal_lifo_head.data.item, next, ret); lifo 252 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_pop_atomic (opal_lifo_t* lifo) lifo 254 opal/class/opal_lifo.h opal_list_item_t *item, *head, *ghost = &lifo->opal_lifo_ghost; lifo 256 opal/class/opal_lifo.h while ((item=(opal_list_item_t *)lifo->opal_lifo_head.data.item) != ghost) { lifo 266 opal/class/opal_lifo.h if (opal_atomic_compare_exchange_strong_ptr (&lifo->opal_lifo_head.data.item, (intptr_t *) &head, lifo 278 opal/class/opal_lifo.h if (item == &lifo->opal_lifo_ghost) { lifo 293 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_push_st (opal_lifo_t *lifo, lifo 296 opal/class/opal_lifo.h item->opal_list_next = (opal_list_item_t *) lifo->opal_lifo_head.data.item; lifo 298 opal/class/opal_lifo.h lifo->opal_lifo_head.data.item = (intptr_t) item; lifo 302 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_pop_st (opal_lifo_t *lifo) lifo 305 opal/class/opal_lifo.h item = (opal_list_item_t *) lifo->opal_lifo_head.data.item; lifo 306 opal/class/opal_lifo.h lifo->opal_lifo_head.data.item = (intptr_t) item->opal_list_next; lifo 307 opal/class/opal_lifo.h if (item == &lifo->opal_lifo_ghost) { lifo 317 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_push (opal_lifo_t *lifo, lifo 321 opal/class/opal_lifo.h return opal_lifo_push_atomic (lifo, item); lifo 324 opal/class/opal_lifo.h return opal_lifo_push_st (lifo, item); lifo 327 opal/class/opal_lifo.h static inline opal_list_item_t *opal_lifo_pop (opal_lifo_t *lifo) lifo 330 opal/class/opal_lifo.h return opal_lifo_pop_atomic (lifo); lifo 333 opal/class/opal_lifo.h return opal_lifo_pop_st (lifo); lifo 43 test/class/opal_lifo.c opal_lifo_t *lifo = (opal_lifo_t *) arg; lifo 50 test/class/opal_lifo.c item = opal_lifo_pop_atomic (lifo); lifo 52 test/class/opal_lifo.c (void) opal_lifo_push_atomic (lifo, item); lifo 67 test/class/opal_lifo.c static bool check_lifo_consistency (opal_lifo_t *lifo, int expected_count) lifo 72 test/class/opal_lifo.c for (count = 0, item = lifo->opal_lifo_head.data.item ; item != &lifo->opal_lifo_ghost ; lifo 82 test/class/opal_lifo.c opal_lifo_t lifo; lifo 96 test/class/opal_lifo.c OBJ_CONSTRUCT(&lifo, opal_lifo_t); lifo 99 test/class/opal_lifo.c prev = opal_lifo_push_st (&lifo, item); lifo 100 test/class/opal_lifo.c if (&lifo.opal_lifo_ghost == prev) { lifo 106 test/class/opal_lifo.c item2 = opal_lifo_pop_st (&lifo); lifo 118 test/class/opal_lifo.c opal_lifo_push_st (&lifo, item); lifo 121 test/class/opal_lifo.c if (check_lifo_consistency (&lifo, ITEM_COUNT)) { lifo 129 test/class/opal_lifo.c item = opal_lifo_pop_st (&lifo); lifo 130 test/class/opal_lifo.c (void) opal_lifo_push_st (&lifo, item); lifo 138 test/class/opal_lifo.c if (check_lifo_consistency (&lifo, ITEM_COUNT)) { lifo 147 test/class/opal_lifo.c thread_test (&lifo); lifo 149 test/class/opal_lifo.c if (check_lifo_consistency (&lifo, ITEM_COUNT)) { lifo 157 test/class/opal_lifo.c pthread_create (threads + i, NULL, thread_test, &lifo); lifo 171 test/class/opal_lifo.c if (check_lifo_consistency (&lifo, ITEM_COUNT)) { lifo 182 test/class/opal_lifo.c item = opal_lifo_pop_st (&lifo); lifo 196 test/class/opal_lifo.c OBJ_DESTRUCT(&lifo);