1 /* 2 * Copyright (C) by Argonne National Laboratory 3 * See COPYRIGHT in top-level directory 4 */ 5 6 #ifndef MPIDI_CH3_POST_H_INCLUDED 7 #define MPIDI_CH3_POST_H_INCLUDED 8 9 #define MPIDI_CH3_Progress_start(progress_state_) \ 10 (progress_state_)->ch.completion_count = MPL_atomic_relaxed_load_int(&MPIDI_CH3I_progress_completion_count); 11 #define MPIDI_CH3_Progress_end(progress_state_) 12 13 enum { 14 MPIDI_CH3_start_packet_handler_id = 128, 15 MPIDI_CH3_continue_packet_handler_id = 129, 16 MPIDI_CH3_CTS_packet_handler_id = 130, 17 MPIDI_CH3_reload_IOV_or_done_handler_id = 131, 18 MPIDI_CH3_reload_IOV_reply_handler_id = 132 19 }; 20 21 22 int MPIDI_CH3I_Progress(MPID_Progress_state *progress_state, int blocking); 23 #define MPIDI_CH3_Progress_test() MPIDI_CH3I_Progress(NULL, FALSE) 24 #define MPIDI_CH3_Progress_wait(progress_state) MPIDI_CH3I_Progress(progress_state, TRUE) 25 #define MPIDI_CH3_Progress_poke() MPIDI_CH3I_Progress(NULL, FALSE) 26 27 void MPIDI_CH3I_Posted_recv_enqueued(MPIR_Request *rreq); 28 /* returns non-zero when req has been matched by channel */ 29 int MPIDI_CH3I_Posted_recv_dequeued(MPIR_Request *rreq); 30 31 /* 32 * Enable optional functionality 33 */ 34 #define MPIDI_CH3_Comm_Spawn MPIDI_CH3_Comm_Spawn 35 36 #include "mpid_nem_post.h" 37 38 int MPIDI_CH3I_Register_anysource_notification(void (*enqueue_fn)(MPIR_Request *rreq), int (*dequeue_fn)(MPIR_Request *rreq)); 39 40 #endif /* MPIDI_CH3_POST_H_INCLUDED */ 41