fifo 25 opal/class/opal_fifo.c static void opal_fifo_construct (opal_fifo_t *fifo) fifo 27 opal/class/opal_fifo.c OBJ_CONSTRUCT(&fifo->opal_fifo_ghost, opal_list_item_t); fifo 29 opal/class/opal_fifo.c fifo->opal_fifo_ghost.opal_list_next = &fifo->opal_fifo_ghost; fifo 32 opal/class/opal_fifo.c fifo->opal_fifo_ghost.item_free = 0; fifo 34 opal/class/opal_fifo.c fifo->opal_fifo_head.data.counter = 0; fifo 35 opal/class/opal_fifo.c fifo->opal_fifo_head.data.item = (intptr_t) &fifo->opal_fifo_ghost; fifo 37 opal/class/opal_fifo.c fifo->opal_fifo_tail.data.counter = 0; fifo 38 opal/class/opal_fifo.c fifo->opal_fifo_tail.data.item = (intptr_t) &fifo->opal_fifo_ghost; fifo 60 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_head (opal_fifo_t* fifo) fifo 62 opal/class/opal_fifo.h return (opal_list_item_t *) fifo->opal_fifo_head.data.item; fifo 65 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_tail (opal_fifo_t* fifo) fifo 67 opal/class/opal_fifo.h return (opal_list_item_t *) fifo->opal_fifo_tail.data.item; fifo 74 opal/class/opal_fifo.h static inline bool opal_fifo_is_empty( opal_fifo_t* fifo ) fifo 76 opal/class/opal_fifo.h return opal_fifo_head (fifo) == &fifo->opal_fifo_ghost; fifo 85 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_push_atomic (opal_fifo_t *fifo, fifo 88 opal/class/opal_fifo.h opal_counted_pointer_t tail = {.value = fifo->opal_fifo_tail.value}; fifo 89 opal/class/opal_fifo.h const opal_list_item_t * const ghost = &fifo->opal_fifo_ghost; fifo 96 opal/class/opal_fifo.h if (opal_update_counted_pointer (&fifo->opal_fifo_tail, &tail, item)) { fifo 105 opal/class/opal_fifo.h opal_counted_pointer_t head = {.value = fifo->opal_fifo_head.value}; fifo 106 opal/class/opal_fifo.h opal_update_counted_pointer (&fifo->opal_fifo_head, &head, item); fifo 118 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_pop_atomic (opal_fifo_t *fifo) fifo 120 opal/class/opal_fifo.h opal_list_item_t *item, *next, *ghost = &fifo->opal_fifo_ghost; fifo 123 opal/class/opal_fifo.h opal_read_counted_pointer (&fifo->opal_fifo_head, &head); fifo 126 opal/class/opal_fifo.h tail.value = fifo->opal_fifo_tail.value; fifo 138 opal/class/opal_fifo.h opal_read_counted_pointer (&fifo->opal_fifo_head, &head); fifo 143 opal/class/opal_fifo.h if (opal_update_counted_pointer (&fifo->opal_fifo_head, &head, next)) { fifo 153 opal/class/opal_fifo.h if (!opal_update_counted_pointer (&fifo->opal_fifo_tail, &tail, ghost)) { fifo 166 opal/class/opal_fifo.h fifo->opal_fifo_head.data.item = (intptr_t) item->opal_list_next; fifo 181 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_push_atomic (opal_fifo_t *fifo, fifo 184 opal/class/opal_fifo.h const opal_list_item_t * const ghost = &fifo->opal_fifo_ghost; fifo 192 opal/class/opal_fifo.h tail_item = (opal_list_item_t *) opal_atomic_swap_ptr (&fifo->opal_fifo_tail.data.item, (intptr_t) item); fifo 198 opal/class/opal_fifo.h fifo->opal_fifo_head.data.item = (intptr_t) item; fifo 212 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_pop_atomic (opal_fifo_t *fifo) fifo 214 opal/class/opal_fifo.h const opal_list_item_t * const ghost = &fifo->opal_fifo_ghost; fifo 229 opal/class/opal_fifo.h opal_atomic_ll_ptr(&fifo->opal_fifo_head.data.item, item); fifo 231 opal/class/opal_fifo.h if ((intptr_t) ghost == fifo->opal_fifo_tail.data.item) { fifo 241 opal/class/opal_fifo.h opal_atomic_sc_ptr(&fifo->opal_fifo_head.data.item, next, ret); fifo 249 opal/class/opal_fifo.h if (!opal_atomic_swap_32 ((opal_atomic_int32_t *) &fifo->opal_fifo_head.data.counter, 1)) { fifo 258 opal/class/opal_fifo.h item = opal_fifo_head (fifo); fifo 260 opal/class/opal_fifo.h fifo->opal_fifo_head.data.counter = 0; fifo 265 opal/class/opal_fifo.h fifo->opal_fifo_head.data.item = (uintptr_t) next; fifo 271 opal/class/opal_fifo.h if (!opal_atomic_compare_exchange_strong_ptr (&fifo->opal_fifo_tail.data.item, (intptr_t *) &tmp, (intptr_t) ghost)) { fifo 276 opal/class/opal_fifo.h fifo->opal_fifo_head.data.item = (intptr_t) item->opal_list_next; fifo 283 opal/class/opal_fifo.h fifo->opal_fifo_head.data.counter = 0; fifo 293 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_push_st (opal_fifo_t *fifo, fifo 296 opal/class/opal_fifo.h opal_list_item_t *prev = opal_fifo_tail (fifo); fifo 298 opal/class/opal_fifo.h item->opal_list_next = &fifo->opal_fifo_ghost; fifo 300 opal/class/opal_fifo.h fifo->opal_fifo_tail.data.item = (intptr_t) item; fifo 301 opal/class/opal_fifo.h if (&fifo->opal_fifo_ghost == opal_fifo_head (fifo)) { fifo 302 opal/class/opal_fifo.h fifo->opal_fifo_head.data.item = (intptr_t) item; fifo 310 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_pop_st (opal_fifo_t *fifo) fifo 312 opal/class/opal_fifo.h opal_list_item_t *item = opal_fifo_head (fifo); fifo 314 opal/class/opal_fifo.h if (item == &fifo->opal_fifo_ghost) { fifo 318 opal/class/opal_fifo.h fifo->opal_fifo_head.data.item = (intptr_t) item->opal_list_next; fifo 319 opal/class/opal_fifo.h if (&fifo->opal_fifo_ghost == opal_fifo_head (fifo)) { fifo 320 opal/class/opal_fifo.h fifo->opal_fifo_tail.data.item = (intptr_t) &fifo->opal_fifo_ghost; fifo 328 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_push (opal_fifo_t *fifo, fifo 332 opal/class/opal_fifo.h return opal_fifo_push_atomic (fifo, item); fifo 335 opal/class/opal_fifo.h return opal_fifo_push_st (fifo, item); fifo 338 opal/class/opal_fifo.h static inline opal_list_item_t *opal_fifo_pop (opal_fifo_t *fifo) fifo 341 opal/class/opal_fifo.h return opal_fifo_pop_atomic (fifo); fifo 344 opal/class/opal_fifo.h return opal_fifo_pop_st (fifo); fifo 420 opal/mca/btl/smcuda/btl_smcuda.c mca_btl_smcuda_component.fifo = (sm_fifo_t**)malloc(sizeof(sm_fifo_t*) * n); fifo 422 opal/mca/btl/smcuda/btl_smcuda.c if(NULL == mca_btl_smcuda_component.fifo) fifo 425 opal/mca/btl/smcuda/btl_smcuda.c mca_btl_smcuda_component.fifo[mca_btl_smcuda_component.my_smp_rank] = my_fifos; fifo 628 opal/mca/btl/smcuda/btl_smcuda.c &mca_btl_smcuda_component.fifo[my_smp_rank][j], fifo 698 opal/mca/btl/smcuda/btl_smcuda.c mca_btl_smcuda_component.fifo[j] = fifo 141 opal/mca/btl/smcuda/btl_smcuda.h sm_fifo_t **fifo; /**< cached copy of the pointer to the 2D fifo 250 opal/mca/btl/smcuda/btl_smcuda.h sm_fifo_t *fifo, int lazy_free) fifo 258 opal/mca/btl/smcuda/btl_smcuda.h fifo->queue_recv = (volatile void **)mpool->mpool_alloc( fifo 260 opal/mca/btl/smcuda/btl_smcuda.h if(NULL == fifo->queue_recv) { fifo 266 opal/mca/btl/smcuda/btl_smcuda.h fifo->queue_recv[i] = SM_FIFO_FREE; fifo 269 opal/mca/btl/smcuda/btl_smcuda.h fifo->queue = (volatile void **) VIRTUAL2RELATIVE(fifo->queue_recv); fifo 272 opal/mca/btl/smcuda/btl_smcuda.h opal_atomic_lock_init(&(fifo->head_lock), OPAL_ATOMIC_LOCK_UNLOCKED); fifo 273 opal/mca/btl/smcuda/btl_smcuda.h opal_atomic_lock_init(&(fifo->tail_lock), OPAL_ATOMIC_LOCK_UNLOCKED); fifo 274 opal/mca/btl/smcuda/btl_smcuda.h opal_atomic_unlock(&(fifo->head_lock)); /* should be unnecessary */ fifo 275 opal/mca/btl/smcuda/btl_smcuda.h opal_atomic_unlock(&(fifo->tail_lock)); /* should be unnecessary */ fifo 278 opal/mca/btl/smcuda/btl_smcuda.h fifo->head = 0; fifo 279 opal/mca/btl/smcuda/btl_smcuda.h fifo->mask = qsize - 1; fifo 280 opal/mca/btl/smcuda/btl_smcuda.h fifo->tail = 0; fifo 281 opal/mca/btl/smcuda/btl_smcuda.h fifo->num_to_clear = 0; fifo 282 opal/mca/btl/smcuda/btl_smcuda.h fifo->lazy_free = lazy_free; fifo 288 opal/mca/btl/smcuda/btl_smcuda.h static inline int sm_fifo_write(void *value, sm_fifo_t *fifo) fifo 290 opal/mca/btl/smcuda/btl_smcuda.h volatile void **q = (volatile void **) RELATIVE2VIRTUAL(fifo->queue); fifo 294 opal/mca/btl/smcuda/btl_smcuda.h if ( SM_FIFO_FREE != q[fifo->head] ) fifo 298 opal/mca/btl/smcuda/btl_smcuda.h q[fifo->head] = value; fifo 300 opal/mca/btl/smcuda/btl_smcuda.h fifo->head = (fifo->head + 1) & fifo->mask; fifo 305 opal/mca/btl/smcuda/btl_smcuda.h static inline void *sm_fifo_read(sm_fifo_t *fifo) fifo 310 opal/mca/btl/smcuda/btl_smcuda.h value = (void *) fifo->queue_recv[fifo->tail]; fifo 317 opal/mca/btl/smcuda/btl_smcuda.h fifo->tail = ( fifo->tail + 1 ) & fifo->mask; fifo 318 opal/mca/btl/smcuda/btl_smcuda.h fifo->num_to_clear += 1; fifo 321 opal/mca/btl/smcuda/btl_smcuda.h if ( fifo->num_to_clear >= fifo->lazy_free ) { fifo 322 opal/mca/btl/smcuda/btl_smcuda.h int i = (fifo->tail - fifo->num_to_clear ) & fifo->mask; fifo 324 opal/mca/btl/smcuda/btl_smcuda.h while ( fifo->num_to_clear > 0 ) { fifo 325 opal/mca/btl/smcuda/btl_smcuda.h fifo->queue_recv[i] = SM_FIFO_FREE; fifo 326 opal/mca/btl/smcuda/btl_smcuda.h i = (i+1) & fifo->mask; fifo 327 opal/mca/btl/smcuda/btl_smcuda.h fifo->num_to_clear -= 1; fifo 1003 opal/mca/btl/smcuda/btl_smcuda_component.c sm_fifo_t *fifo = NULL; fifo 1026 opal/mca/btl/smcuda/btl_smcuda_component.c fifo = &(mca_btl_smcuda_component.fifo[my_smp_rank][j]); fifo 1030 opal/mca/btl/smcuda/btl_smcuda_component.c opal_atomic_lock(&(fifo->tail_lock)); fifo 1033 opal/mca/btl/smcuda/btl_smcuda_component.c hdr = (mca_btl_smcuda_hdr_t *)sm_fifo_read(fifo); fifo 1037 opal/mca/btl/smcuda/btl_smcuda_component.c opal_atomic_unlock(&(fifo->tail_lock)); fifo 89 opal/mca/btl/smcuda/btl_smcuda_fifo.h sm_fifo_t* fifo = &(mca_btl_smcuda_component.fifo[peer_smp_rank][FIFO_MAP(my_smp_rank)]); \ fifo 97 opal/mca/btl/smcuda/btl_smcuda_fifo.h opal_atomic_lock(&(fifo->head_lock)); \ fifo 99 opal/mca/btl/smcuda/btl_smcuda_fifo.h if(sm_fifo_write(hdr, fifo) != OPAL_SUCCESS) { \ fifo 106 opal/mca/btl/smcuda/btl_smcuda_fifo.h opal_atomic_unlock(&(fifo->head_lock)); \ fifo 72 opal/mca/btl/vader/btl_vader_endpoint.h struct vader_fifo_t *fifo; /**< */ fifo 265 opal/mca/btl/vader/btl_vader_fbox.h if (0 <= opal_atomic_add_fetch_32 (&ep->fifo->fbox_available, -1)) { fifo 276 opal/mca/btl/vader/btl_vader_fbox.h opal_atomic_add_fetch_32 (&ep->fifo->fbox_available, 1); fifo 117 opal/mca/btl/vader/btl_vader_fifo.h static inline mca_btl_vader_hdr_t *vader_fifo_read (vader_fifo_t *fifo, struct mca_btl_base_endpoint_t **ep) fifo 122 opal/mca/btl/vader/btl_vader_fifo.h if (VADER_FIFO_FREE == fifo->fifo_head) { fifo 128 opal/mca/btl/vader/btl_vader_fifo.h value = fifo->fifo_head; fifo 133 opal/mca/btl/vader/btl_vader_fifo.h fifo->fifo_head = VADER_FIFO_FREE; fifo 140 opal/mca/btl/vader/btl_vader_fifo.h if (!vader_item_compare_exchange (&fifo->fifo_tail, &value, VADER_FIFO_FREE)) { fifo 145 opal/mca/btl/vader/btl_vader_fifo.h fifo->fifo_head = hdr->next; fifo 148 opal/mca/btl/vader/btl_vader_fifo.h fifo->fifo_head = hdr->next; fifo 155 opal/mca/btl/vader/btl_vader_fifo.h static inline void vader_fifo_init (vader_fifo_t *fifo) fifo 160 opal/mca/btl/vader/btl_vader_fifo.h fifo->fifo_head = VADER_FIFO_FREE; fifo 161 opal/mca/btl/vader/btl_vader_fifo.h fifo->fifo_tail = VADER_FIFO_FREE; fifo 162 opal/mca/btl/vader/btl_vader_fifo.h fifo->fbox_available = mca_btl_vader_component.fbox_max; fifo 163 opal/mca/btl/vader/btl_vader_fifo.h mca_btl_vader_component.my_fifo = fifo; fifo 166 opal/mca/btl/vader/btl_vader_fifo.h static inline void vader_fifo_write (vader_fifo_t *fifo, fifo_value_t value) fifo 171 opal/mca/btl/vader/btl_vader_fifo.h prev = vader_item_swap (&fifo->fifo_tail, value); fifo 180 opal/mca/btl/vader/btl_vader_fifo.h fifo->fifo_head = value; fifo 208 opal/mca/btl/vader/btl_vader_fifo.h vader_fifo_write (ep->fifo, rhdr); fifo 227 opal/mca/btl/vader/btl_vader_fifo.h vader_fifo_write(ep->fifo, virtual2relativepeer (ep, (char *) hdr)); fifo 222 opal/mca/btl/vader/btl_vader_module.c ep->fifo = (struct vader_fifo_t *) ep->segment_base; fifo 230 opal/mca/btl/vader/btl_vader_module.c if (ep->fifo) { fifo 551 opal/mca/btl/vader/btl_vader_module.c ep->fifo = NULL; fifo 588 opal/mca/btl/vader/btl_vader_module.c ep->fifo = NULL; fifo 93 opal/mca/event/libevent2022/libevent/sample/event-test.c const char *fifo = "event.fifo"; fifo 96 opal/mca/event/libevent2022/libevent/sample/event-test.c if (lstat(fifo, &st) == 0) { fifo 104 opal/mca/event/libevent2022/libevent/sample/event-test.c unlink(fifo); fifo 105 opal/mca/event/libevent2022/libevent/sample/event-test.c if (mkfifo(fifo, 0600) == -1) { fifo 112 opal/mca/event/libevent2022/libevent/sample/event-test.c socket = open(fifo, O_RDWR | O_NONBLOCK, 0); fifo 114 opal/mca/event/libevent2022/libevent/sample/event-test.c socket = open(fifo, O_RDONLY | O_NONBLOCK, 0); fifo 122 opal/mca/event/libevent2022/libevent/sample/event-test.c fprintf(stderr, "Write data to %s\n", fifo); fifo 45 test/class/opal_fifo.c opal_fifo_t *fifo = (opal_fifo_t *) arg; fifo 52 test/class/opal_fifo.c item = opal_fifo_pop_atomic (fifo); fifo 54 test/class/opal_fifo.c (void) opal_fifo_push_atomic (fifo, item); fifo 70 test/class/opal_fifo.c opal_fifo_t *fifo = (opal_fifo_t *) arg; fifo 80 test/class/opal_fifo.c items[j] = opal_fifo_pop_atomic (fifo); fifo 88 test/class/opal_fifo.c (void) opal_fifo_push_atomic (fifo, items[j]); fifo 105 test/class/opal_fifo.c static bool check_fifo_consistency (opal_fifo_t *fifo, int expected_count) fifo 110 test/class/opal_fifo.c for (count = 0, item = fifo->opal_fifo_head.data.item ; item != &fifo->opal_fifo_ghost ; fifo 120 test/class/opal_fifo.c opal_fifo_t fifo; fifo 134 test/class/opal_fifo.c OBJ_CONSTRUCT(&fifo, opal_fifo_t); fifo 137 test/class/opal_fifo.c prev = opal_fifo_push_st (&fifo, item); fifo 138 test/class/opal_fifo.c if (&fifo.opal_fifo_ghost == prev) { fifo 144 test/class/opal_fifo.c item2 = opal_fifo_pop_st (&fifo); fifo 156 test/class/opal_fifo.c opal_fifo_push_st (&fifo, item); fifo 159 test/class/opal_fifo.c if (check_fifo_consistency (&fifo, ITEM_COUNT)) { fifo 167 test/class/opal_fifo.c item = opal_fifo_pop_st (&fifo); fifo 168 test/class/opal_fifo.c (void) opal_fifo_push_st (&fifo, item); fifo 176 test/class/opal_fifo.c if (check_fifo_consistency (&fifo, ITEM_COUNT)) { fifo 185 test/class/opal_fifo.c thread_test (&fifo); fifo 187 test/class/opal_fifo.c if (check_fifo_consistency (&fifo, ITEM_COUNT)) { fifo 195 test/class/opal_fifo.c pthread_create (threads + i, NULL, thread_test, &fifo); fifo 209 test/class/opal_fifo.c if (check_fifo_consistency (&fifo, ITEM_COUNT)) { fifo 221 test/class/opal_fifo.c pthread_create (threads + i, NULL, thread_test_exhaust, &fifo); fifo 235 test/class/opal_fifo.c if (check_fifo_consistency (&fifo, ITEM_COUNT)) { fifo 246 test/class/opal_fifo.c item = opal_fifo_pop_st (&fifo); fifo 260 test/class/opal_fifo.c OBJ_DESTRUCT(&fifo); fifo 95 test/event/event-test.c char *fifo = "event.fifo"; fifo 98 test/event/event-test.c if (lstat (fifo, &st) == 0) { fifo 106 test/event/event-test.c unlink (fifo); fifo 107 test/event/event-test.c if (mkfifo (fifo, 0600) == -1) { fifo 114 test/event/event-test.c socket = open (fifo, O_RDWR | O_NONBLOCK, 0); fifo 116 test/event/event-test.c socket = open (fifo, O_RDONLY | O_NONBLOCK, 0); fifo 124 test/event/event-test.c fprintf(stderr, "Write data to %s\n", fifo);