1 /* 2 * Copyright (C) by Argonne National Laboratory 3 * See COPYRIGHT in top-level directory 4 */ 5 6 /* This header file contains constants that might end up on the right hand side 7 * of a #define in mpichconf.h. 8 * 9 * In particular, this file must provide any constants that might be used for 10 * conditional compilation in mpidpre.h, before most of the other headers have 11 * been included in mpiimpl.h. */ 12 #ifndef MPICHCONFCONST_H_INCLUDED 13 #define MPICHCONFCONST_H_INCLUDED 14 15 #define MPICH_ERROR_MSG__NONE 0 16 #define MPICH_ERROR_MSG__CLASS 1 17 #define MPICH_ERROR_MSG__GENERIC 2 18 #define MPICH_ERROR_MSG__ALL 8 19 20 /* -------------------------------------------------------------------- */ 21 /* thread-related constants */ 22 /* -------------------------------------------------------------------- */ 23 24 /* Define the four ways that we achieve proper thread-safe updates of 25 * shared structures and services 26 * 27 * A configure choice will set MPICH_THREAD_GRANULARITY to one of these values */ 28 29 /* _INVALID exists to avoid accidental macro evaluations to 0 */ 30 #define MPICH_THREAD_GRANULARITY__INVALID 0 31 #define MPICH_THREAD_GRANULARITY__GLOBAL 1 32 #define MPICH_THREAD_GRANULARITY__POBJ 2 33 #define MPICH_THREAD_GRANULARITY__LOCKFREE 3 34 /* _SINGLE is the "null" granularity, where all processes are single-threaded */ 35 #define MPICH_THREAD_GRANULARITY__SINGLE 4 36 #define MPICH_THREAD_GRANULARITY__VCI 5 37 38 /* Define hashing method to map VCI */ 39 #define MPICH_VCI__ZERO 0 /* vci === 0 */ 40 #define MPICH_VCI__COMM 1 /* vci stored in communicator structure */ 41 #define MPICH_VCI__TAG 2 /* vcis parsed from tag */ 42 #define MPICH_VCI__IMPLICIT 3 /* vci from (comm, rank, tag), taking account of hints */ 43 #define MPICH_VCI__EXPLICIT 4 /* vci passed down explicitly via parameters (MPIX_xxx or Endpoint rank) */ 44 45 /* _NONE means no concurrency control, such as when using MPI_THREAD_SINGLE */ 46 #define MPICH_REFCOUNT__NONE 1 47 #define MPICH_REFCOUNT__LOCKFREE 2 48 49 /* Possible values for timing */ 50 #define MPICH_TIMING_KIND__NONE 0 51 #define MPICH_TIMING_KIND__TIME 1 52 #define MPICH_TIMING_KIND__LOG 2 53 #define MPICH_TIMING_KIND__LOG_DETAILED 3 54 #define MPICH_TIMING_KIND__ALL 4 55 #define MPICH_TIMING_KIND__RUNTIME 5 56 57 /* Possible values for USE_LOGGING */ 58 #define MPICH_LOGGING__NONE 0 59 #define MPICH_LOGGING__RLOG 1 60 #define MPICH_LOGGING__EXTERNAL 4 61 62 /* Possible values for process state */ 63 #define MPICH_MPI_STATE__PRE_INIT 0 64 #define MPICH_MPI_STATE__POST_INIT 1 65 #define MPICH_MPI_STATE__POST_FINALIZED 2 66 /* Internal init states. */ 67 #define MPICH_MPI_STATE__IN_INIT 3 /* can call MPIR_Err_return_comm(...) on error */ 68 69 #endif /* MPICHCONFCONST_H_INCLUDED */ 70