Blame src/include/mpir_misc.h

Packit Service c5cf8c
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
Packit Service c5cf8c
/*
Packit Service c5cf8c
 *  (C) 2001 by Argonne National Laboratory.
Packit Service c5cf8c
 *      See COPYRIGHT in top-level directory.
Packit Service c5cf8c
 *
Packit Service c5cf8c
 */
Packit Service c5cf8c
Packit Service c5cf8c
#ifndef MPIR_MISC_H_INCLUDED
Packit Service c5cf8c
#define MPIR_MISC_H_INCLUDED
Packit Service c5cf8c
Packit Service c5cf8c
#define MPIR_UNIVERSE_SIZE_NOT_SET -1
Packit Service c5cf8c
#define MPIR_UNIVERSE_SIZE_NOT_AVAILABLE -2
Packit Service c5cf8c
Packit Service c5cf8c
#define MPIR_FINALIZE_CALLBACK_PRIO 5
Packit Service c5cf8c
#define MPIR_FINALIZE_CALLBACK_HANDLE_CHECK_PRIO 1
Packit Service c5cf8c
#define MPIR_FINALIZE_CALLBACK_DEFAULT_PRIO 0
Packit Service c5cf8c
#define MPIR_FINALIZE_CALLBACK_MAX_PRIO 10
Packit Service c5cf8c
Packit Service c5cf8c
/* Define a typedef for the errflag value used by many internal
Packit Service c5cf8c
 * functions.  If an error needs to be returned, these values can be
Packit Service c5cf8c
 * used to signal such.  More details can be found further down in the
Packit Service c5cf8c
 * code with the bitmasking logic */
Packit Service c5cf8c
typedef enum {
Packit Service c5cf8c
    MPIR_ERR_NONE = MPI_SUCCESS,
Packit Service c5cf8c
    MPIR_ERR_PROC_FAILED = MPIX_ERR_PROC_FAILED,
Packit Service c5cf8c
    MPIR_ERR_OTHER = MPI_ERR_OTHER
Packit Service c5cf8c
} MPIR_Errflag_t;
Packit Service c5cf8c
Packit Service c5cf8c
/*E
Packit Service c5cf8c
  MPIR_Lang_t - Known language bindings for MPI
Packit Service c5cf8c
Packit Service c5cf8c
  A few operations in MPI need to know what language they were called from
Packit Service c5cf8c
  or created by.  This type enumerates the possible languages so that
Packit Service c5cf8c
  the MPI implementation can choose the correct behavior.  An example of this
Packit Service c5cf8c
  are the keyval attribute copy and delete functions.
Packit Service c5cf8c
Packit Service c5cf8c
  Module:
Packit Service c5cf8c
  Attribute-DS
Packit Service c5cf8c
  E*/
Packit Service c5cf8c
typedef enum MPIR_Lang_t {
Packit Service c5cf8c
    MPIR_LANG__C
Packit Service c5cf8c
#ifdef HAVE_FORTRAN_BINDING
Packit Service c5cf8c
        , MPIR_LANG__FORTRAN, MPIR_LANG__FORTRAN90
Packit Service c5cf8c
#endif
Packit Service c5cf8c
#ifdef HAVE_CXX_BINDING
Packit Service c5cf8c
        , MPIR_LANG__CXX
Packit Service c5cf8c
#endif
Packit Service c5cf8c
} MPIR_Lang_t;
Packit Service c5cf8c
Packit Service c5cf8c
extern const char MPII_Version_string[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_date[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_ABI[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_configure[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_device[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_CC[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_CXX[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_F77[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_FC[] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern const char MPII_Version_custom[] MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
int MPIR_Localcopy(const void *sendbuf, MPI_Aint sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                   void *recvbuf, MPI_Aint recvcount, MPI_Datatype recvtype);
Packit Service c5cf8c
Packit Service c5cf8c
/*@ MPIR_Add_finalize - Add a routine to be called when MPI_Finalize is invoked
Packit Service c5cf8c
Packit Service c5cf8c
+ routine - Routine to call
Packit Service c5cf8c
. extra   - Void pointer to data to pass to the routine
Packit Service c5cf8c
- priority - Indicates the priority of this callback and controls the order
Packit Service c5cf8c
  in which callbacks are executed.  Use a priority of zero for most handlers;
Packit Service c5cf8c
  higher priorities will be executed first.
Packit Service c5cf8c
Packit Service c5cf8c
Notes:
Packit Service c5cf8c
  The routine 'MPID_Finalize' is executed with priority
Packit Service c5cf8c
  'MPIR_FINALIZE_CALLBACK_PRIO' (currently defined as 5).  Handlers with
Packit Service c5cf8c
  a higher priority execute before 'MPID_Finalize' is called; those with
Packit Service c5cf8c
  a lower priority after 'MPID_Finalize' is called.
Packit Service c5cf8c
@*/
Packit Service c5cf8c
void MPIR_Add_finalize(int (*routine) (void *), void *extra, int priority);
Packit Service c5cf8c
Packit Service c5cf8c
/* Routines for determining local and remote processes */
Packit Service c5cf8c
int MPIR_Find_local_and_external(struct MPIR_Comm *comm, int *local_size_p, int *local_rank_p,
Packit Service c5cf8c
                                 int **local_ranks_p, int *external_size_p, int *external_rank_p,
Packit Service c5cf8c
                                 int **external_ranks_p, int **intranode_table,
Packit Service c5cf8c
                                 int **internode_table_p);
Packit Service c5cf8c
int MPIR_Get_internode_rank(MPIR_Comm * comm_ptr, int r);
Packit Service c5cf8c
int MPIR_Get_intranode_rank(MPIR_Comm * comm_ptr, int r);
Packit Service c5cf8c
Packit Service c5cf8c
int MPIR_Close_port_impl(const char *port_name);
Packit Service c5cf8c
int MPIR_Open_port_impl(MPIR_Info * info_ptr, char *port_name);
Packit Service c5cf8c
int MPIR_Cancel(MPIR_Request * request_ptr);
Packit Service c5cf8c
Packit Service c5cf8c
/* Default routines for asynchronous progress thread */
Packit Service c5cf8c
int MPIR_Init_async_thread(void);
Packit Service c5cf8c
int MPIR_Finalize_async_thread(void);
Packit Service c5cf8c
Packit Service c5cf8c
#endif /* MPIR_MISC_H_INCLUDED */