Skip to content

Commit a8dabad

Browse files
committed
Add headers collecting compatibility for removals and deprecations
1 parent fa387a1 commit a8dabad

File tree

2 files changed

+174
-0
lines changed

2 files changed

+174
-0
lines changed

mpi-api-deprecated.h

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
#pragma once
2+
3+
#if !defined(MPI_ABI_static_inline)
4+
# if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__cplusplus)
5+
# define MPI_ABI_static_inline static inline
6+
# else
7+
# define MPI_ABI_static_inline static __inline
8+
# endif
9+
#endif
10+
11+
/* MPI deprecated types and constants */
12+
13+
#define MPI_Copy_function MPI_Comm_copy_attr_function
14+
#define MPI_Delete_function MPI_Comm_delete_attr_function
15+
#define MPI_DUP_FN MPI_COMM_DUP_FN
16+
#define MPI_NULL_COPY_FN MPI_COMM_NULL_COPY_FN
17+
#define MPI_NULL_DELETE_FN MPI_COMM_NULL_DELETE_FN
18+
19+
#define MPI_HOST MPI_KEYVAL_INVALID
20+
#define MPI_T_ERR_INVALID_ITEM MPI_T_ERR_INVALID_INDEX
21+
22+
/* MPI deprecated functions */
23+
24+
#define MPI_Attr_delete MPI_Comm_delete_attr
25+
#define MPI_Attr_get MPI_Comm_get_attr
26+
#define MPI_Attr_put MPI_Comm_set_attr
27+
28+
#define MPI_Keyval_create MPI_Comm_create_keyval
29+
#define MPI_Keyval_free MPI_Comm_free_keyval
30+
31+
#define MPI_Get_elements_x MPI_Get_elements_c
32+
#define MPI_Status_set_elements_x MPI_Status_set_elements_c
33+
34+
#define MPI_Type_get_extent_x MPI_Type_get_extent_c
35+
#define MPI_Type_get_true_extent_x MPI_Type_get_true_extent_c
36+
#define MPI_Type_size_x MPI_Type_size_c
37+
38+
#define MPI_Info_get MPI_ABI_Info_get
39+
#define MPI_Info_get_valuelen MPI_ABI_Info_get_valuelen
40+
41+
MPI_ABI_static_inline int MPI_Info_get(MPI_Info MPI_info, const char *MPI_key, int MPI_valuelen, char *MPI_value, int *MPI_flag) {
42+
int MPI_buflen = MPI_valuelen + 1;
43+
return MPI_Info_get_string(MPI_info, MPI_key, &MPI_buflen, MPI_value, MPI_flag);
44+
}
45+
46+
MPI_ABI_static_inline int MPI_Info_get_valuelen(MPI_Info MPI_info, const char *MPI_key, int *MPI_valuelen, int *MPI_flag) {
47+
int MPI_ierr; int MPI_buflen = 0; char MPI_value[1] = {0};
48+
MPI_ierr = MPI_Info_get_string(MPI_info, MPI_key, MPI_valuelen ? &MPI_buflen : MPI_valuelen, MPI_value, MPI_flag);
49+
if (MPI_ierr == MPI_SUCCESS && MPI_valuelen) *MPI_valuelen = MPI_buflen - 1;
50+
return MPI_ierr;
51+
}
52+
53+
/* PMPI deprecated functions */
54+
55+
#define PMPI_Attr_delete PMPI_Comm_delete_attr
56+
#define PMPI_Attr_get PMPI_Comm_get_attr
57+
#define PMPI_Attr_put PMPI_Comm_set_attr
58+
59+
#define PMPI_Keyval_create PMPI_Comm_create_keyval
60+
#define PMPI_Keyval_free PMPI_Comm_free_keyval
61+
62+
#define PMPI_Get_elements_x PMPI_Get_elements_c
63+
#define PMPI_Status_set_elements_x PMPI_Status_set_elements_c
64+
65+
#define PMPI_Type_get_extent_x PMPI_Type_get_extent_c
66+
#define PMPI_Type_get_true_extent_x PMPI_Type_get_true_extent_c
67+
#define PMPI_Type_size_x PMPI_Type_size_c
68+
69+
#define PMPI_Info_get PMPI_ABI_Info_get
70+
#define PMPI_Info_get_valuelen PMPI_ABI_Info_get_valuelen
71+
72+
MPI_ABI_static_inline int PMPI_Info_get(MPI_Info MPI_info, const char *MPI_key, int MPI_valuelen, char *MPI_value, int *MPI_flag) {
73+
int MPI_buflen = MPI_valuelen + 1;
74+
return PMPI_Info_get_string(MPI_info, MPI_key, &MPI_buflen, MPI_value, MPI_flag);
75+
}
76+
77+
MPI_ABI_static_inline int PMPI_Info_get_valuelen(MPI_Info MPI_info, const char *MPI_key, int *MPI_valuelen, int *MPI_flag) {
78+
int MPI_ierr; int MPI_buflen = 0; char MPI_value[1] = {0};
79+
MPI_ierr = PMPI_Info_get_string(MPI_info, MPI_key, MPI_valuelen ? &MPI_buflen : MPI_valuelen, MPI_value, MPI_flag);
80+
if (MPI_ierr == MPI_SUCCESS && MPI_valuelen) *MPI_valuelen = MPI_buflen - 1;
81+
return MPI_ierr;
82+
}

mpi-api-removed.h

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
#pragma once
2+
3+
#if !defined(MPI_ABI_static_inline)
4+
# if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__cplusplus)
5+
# define MPI_ABI_static_inline static inline
6+
# else
7+
# define MPI_ABI_static_inline static __inline
8+
# endif
9+
#endif
10+
11+
/* MPI removed types and constants */
12+
13+
#define MPI_Handler_function MPI_Comm_errhandler_function
14+
15+
#define MPI_LB MPI_DATATYPE_NULL
16+
#define MPI_UB MPI_DATATYPE_NULL
17+
18+
#define MPI_COMBINER_HVECTOR_INTEGER MPI_UNDEFINED
19+
#define MPI_COMBINER_HINDEXED_INTEGER MPI_UNDEFINED
20+
#define MPI_COMBINER_STRUCT_INTEGER MPI_UNDEFINED
21+
22+
/* MPI removed functions */
23+
24+
#define MPI_Address MPI_Get_address
25+
26+
#define MPI_Errhandler_create MPI_Comm_create_errhandler
27+
#define MPI_Errhandler_get MPI_Comm_get_errhandler
28+
#define MPI_Errhandler_set MPI_Comm_set_errhandler
29+
30+
#define MPI_Type_hindexed MPI_Type_create_hindexed
31+
#define MPI_Type_hvector MPI_Type_create_hvector
32+
#define MPI_Type_struct MPI_Type_create_struct
33+
34+
#define MPI_Type_extent MPI_ABI_Type_extent
35+
#define MPI_Type_lb MPI_ABI_Type_lb
36+
#define MPI_Type_ub MPI_ABI_Type_ub
37+
38+
MPI_ABI_static_inline int MPI_Type_extent(MPI_Datatype MPI_datatype, MPI_Aint *MPI_extent)
39+
{
40+
MPI_Aint MPI_lb;
41+
return MPI_Type_get_extent(MPI_datatype, &MPI_lb, MPI_extent);
42+
}
43+
44+
MPI_ABI_static_inline int MPI_Type_lb(MPI_Datatype MPI_datatype, MPI_Aint *MPI_lb)
45+
{
46+
MPI_Aint MPI_extent;
47+
return MPI_Type_get_extent(MPI_datatype, MPI_lb, &MPI_extent);
48+
}
49+
50+
MPI_ABI_static_inline int MPI_Type_ub(MPI_Datatype MPI_datatype, MPI_Aint *MPI_ub)
51+
{
52+
MPI_Aint MPI_lb; int MPI_ierr;
53+
MPI_ierr = MPI_Type_get_extent(MPI_datatype, &MPI_lb, MPI_ub);
54+
if (MPI_ierr == MPI_SUCCESS && MPI_ub) *MPI_ub += MPI_lb;
55+
return MPI_ierr;
56+
}
57+
58+
/* PMPI removed functions */
59+
60+
#define PMPI_Address PMPI_Get_Address
61+
62+
#define PMPI_Errhandler_create PMPI_Comm_create_Errhandler
63+
#define PMPI_Errhandler_get PMPI_Comm_get_errhandler
64+
#define PMPI_Errhandler_set PMPI_Comm_set_errhandler
65+
66+
#define PMPI_Type_hindexed PMPI_Type_create_hindexed
67+
#define PMPI_Type_hvector PMPI_Type_create_hvector
68+
#define PMPI_Type_struct PMPI_Type_create_struct
69+
70+
#define PMPI_Type_extent PMPI_ABI_Type_extent
71+
#define PMPI_Type_lb PMPI_ABI_Type_lb
72+
#define PMPI_Type_ub PMPI_ABI_Type_ub
73+
74+
MPI_ABI_static_inline int PMPI_Type_extent(MPI_Datatype MPI_datatype, MPI_Aint *MPI_extent)
75+
{
76+
MPI_Aint MPI_lb;
77+
return PMPI_Type_get_extent(MPI_datatype, &MPI_lb, MPI_extent);
78+
}
79+
80+
MPI_ABI_static_inline int PMPI_Type_lb(MPI_Datatype MPI_datatype, MPI_Aint *MPI_lb)
81+
{
82+
MPI_Aint MPI_extent;
83+
return PMPI_Type_get_extent(MPI_datatype, MPI_lb, &MPI_extent);
84+
}
85+
86+
MPI_ABI_static_inline int PMPI_Type_ub(MPI_Datatype MPI_datatype, MPI_Aint *MPI_ub)
87+
{
88+
MPI_Aint MPI_lb; int MPI_ierr;
89+
MPI_ierr = PMPI_Type_get_extent(MPI_datatype, &MPI_lb, MPI_ub);
90+
if (MPI_ierr == MPI_SUCCESS && MPI_ub) *MPI_ub += MPI_lb;
91+
return MPI_ierr;
92+
}

0 commit comments

Comments
 (0)