1 /* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */
3 /* This program is free software; you can redistribute it and/or modify it
4 * under the terms of the license (GNU LGPL) which comes with this package. */
7 #include "smpi_info.hpp"
9 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi);
11 /* PMPI User level calls */
13 int PMPI_Info_create( MPI_Info *info){
16 *info = new simgrid::smpi::Info();
20 int PMPI_Info_set( MPI_Info info, char *key, char *value){
21 if (info == nullptr || key == nullptr || value == nullptr)
23 info->set(key, value);
27 int PMPI_Info_free( MPI_Info *info){
28 if (info == nullptr || *info==nullptr)
30 simgrid::smpi::Info::unref(*info);
35 int PMPI_Info_get(MPI_Info info,char *key,int valuelen, char *value, int *flag){
37 if (info == nullptr || key == nullptr || valuelen <0)
40 return MPI_ERR_INFO_VALUE;
41 return info->get(key, valuelen, value, flag);
44 int PMPI_Info_dup(MPI_Info info, MPI_Info *newinfo){
45 if (info == nullptr || newinfo==nullptr)
47 *newinfo = new simgrid::smpi::Info(info);
51 int PMPI_Info_delete(MPI_Info info, char *key){
52 if (info == nullptr || key==nullptr)
54 return info->remove(key);
57 int PMPI_Info_get_nkeys( MPI_Info info, int *nkeys){
58 if (info == nullptr || nkeys==nullptr)
60 return info->get_nkeys(nkeys);
63 int PMPI_Info_get_nthkey( MPI_Info info, int n, char *key){
64 if (info == nullptr || key==nullptr || n<0 || n> MPI_MAX_INFO_KEY)
66 return info->get_nthkey(n, key);
69 int PMPI_Info_get_valuelen( MPI_Info info, char *key, int *valuelen, int *flag){
71 if (info == nullptr || key == nullptr || valuelen==nullptr)
73 return info->get_valuelen(key, valuelen, flag);
76 MPI_Info PMPI_Info_f2c(MPI_Fint info){
77 return static_cast<MPI_Info>(simgrid::smpi::Info::f2c(info));
80 MPI_Fint PMPI_Info_c2f(MPI_Info info){