/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */ /* * (C) 2005 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. */ #ifndef MPICH_DLL_DEFS_H_INCLUDED #define MPICH_DLL_DEFS_H_INCLUDED /*********************************************************************** * Information associated with a specific executable image */ typedef struct { const struct mqs_image_callbacks *image_callbacks; /* Functions needed here */ /* in the embedded MPI_Status object */ int count_offs; int MPI_SOURCE_offs; int MPI_TAG_offs; /* Fields in MPIR_Comm_list */ int sequence_number_offs; int comm_head_offs; /* Fields in MPIR_Comm */ int comm_rsize_offs; int lrank_to_grank_offs; int comm_rank_offs; int comm_context_id_offs; int comm_recvcontext_id_offs; int comm_next_offs; int comm_name_offs; /* Fields in MPIR_Request (including structures within the request) */ int req_status_offs; int req_cc_offs; int req_dev_offs; int req_next_offs; int req_tag_offs; int req_rank_offs; int req_context_id_offs; int req_user_buf_offs; int req_user_count_offs; int req_datatype_offs; /* Fields in MPIR_Sendq */ int sendq_next_offs; int sendq_tag_offs; int sendq_rank_offs; int sendq_context_id_offs; int sendq_req_offs; } mpich_image_info; /*********************************************************************** * Information associated with a specific process */ typedef struct group_t { mqs_taddr_t table_base; /* Where was it in the process */ int ref_count; /* How many references to us */ int entries; /* How many entries */ int *local_to_global; /* The translation table */ } group_t; /* Information for a single process, a list of communicators, some * useful addresses, and the state of the iterators. */ typedef struct { const struct mqs_process_callbacks *process_callbacks; /* Functions needed here */ struct communicator_t *communicator_list; /* List of communicators in the process */ mqs_target_type_sizes sizes; /* Process architecture information */ /* Addresses in the target process */ mqs_taddr_t posted_base; /* Where to find the message queues */ mqs_taddr_t unexpected_base; mqs_taddr_t sendq_base; /* Where to find the send queue */ mqs_taddr_t commlist_base; /* Where to find the list of communicators */ /* Other info we need to remember about it */ mqs_tword_t communicator_sequence; int has_sendq; /* State for the iterators */ struct communicator_t *current_communicator; /* Easy, we're walking a simple list */ mqs_taddr_t next_msg; /* And state for the message iterator */ mqs_op_class what; /* What queue are we looking on */ } mpich_process_info; #endif /* MPICH_DLL_DEFS_H_INCLUDED */