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