1111 * Copyright (c) 2004-2005 The Regents of the University of California.
1212 * All rights reserved.
1313 * Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
14- * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights
14+ * Copyright (c) 2012-2018 Los Alamos National Security, LLC. All rights
1515 * reserved.
1616 * Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
1717 * Copyright (c) 2015 Research Organization for Information Science
@@ -88,7 +88,12 @@ const char *ompi_var_type_names[] = {
8888 "string" ,
8989 "version_string" ,
9090 "bool" ,
91- "double"
91+ "double" ,
92+ "long" ,
93+ "int32_t" ,
94+ "uint32_t" ,
95+ "int64_t" ,
96+ "uint64_t" ,
9297};
9398
9499const size_t ompi_var_type_sizes [] = {
@@ -100,7 +105,12 @@ const size_t ompi_var_type_sizes[] = {
100105 sizeof (char ),
101106 sizeof (char ),
102107 sizeof (bool ),
103- sizeof (double )
108+ sizeof (double ),
109+ sizeof (long ),
110+ sizeof (int32_t ),
111+ sizeof (uint32_t ),
112+ sizeof (int64_t ),
113+ sizeof (uint64_t ),
104114};
105115
106116static const char * var_source_names [] = {
@@ -683,8 +693,13 @@ static int var_set_from_string (mca_base_var_t *var, char *src)
683693
684694 switch (var -> mbv_type ) {
685695 case MCA_BASE_VAR_TYPE_INT :
696+ case MCA_BASE_VAR_TYPE_INT32_T :
697+ case MCA_BASE_VAR_TYPE_UINT32_T :
698+ case MCA_BASE_VAR_TYPE_LONG :
686699 case MCA_BASE_VAR_TYPE_UNSIGNED_INT :
687700 case MCA_BASE_VAR_TYPE_UNSIGNED_LONG :
701+ case MCA_BASE_VAR_TYPE_INT64_T :
702+ case MCA_BASE_VAR_TYPE_UINT64_T :
688703 case MCA_BASE_VAR_TYPE_UNSIGNED_LONG_LONG :
689704 case MCA_BASE_VAR_TYPE_BOOL :
690705 case MCA_BASE_VAR_TYPE_SIZE_T :
@@ -710,6 +725,17 @@ static int var_set_from_string (mca_base_var_t *var, char *src)
710725 MCA_BASE_VAR_TYPE_UNSIGNED_INT == var -> mbv_type ) {
711726 int * castme = (int * ) var -> mbv_storage ;
712727 * castme = int_value ;
728+ } else if (MCA_BASE_VAR_TYPE_INT32_T == var -> mbv_type ||
729+ MCA_BASE_VAR_TYPE_UINT32_T == var -> mbv_type ) {
730+ int32_t * castme = (int32_t * ) var -> mbv_storage ;
731+ * castme = int_value ;
732+ } else if (MCA_BASE_VAR_TYPE_INT64_T == var -> mbv_type ||
733+ MCA_BASE_VAR_TYPE_UINT64_T == var -> mbv_type ) {
734+ int64_t * castme = (int64_t * ) var -> mbv_storage ;
735+ * castme = int_value ;
736+ } else if (MCA_BASE_VAR_TYPE_LONG == var -> mbv_type ) {
737+ long * castme = (long * ) var -> mbv_storage ;
738+ * castme = (long ) int_value ;
713739 } else if (MCA_BASE_VAR_TYPE_UNSIGNED_LONG == var -> mbv_type ) {
714740 unsigned long * castme = (unsigned long * ) var -> mbv_storage ;
715741 * castme = (unsigned long ) int_value ;
@@ -1263,11 +1289,18 @@ static int register_variable (const char *project_name, const char *framework_na
12631289 uintptr_t align = 0 ;
12641290 switch (type ) {
12651291 case MCA_BASE_VAR_TYPE_INT :
1266- align = OPAL_ALIGNMENT_INT ;
1267- break ;
12681292 case MCA_BASE_VAR_TYPE_UNSIGNED_INT :
12691293 align = OPAL_ALIGNMENT_INT ;
12701294 break ;
1295+ case MCA_BASE_VAR_TYPE_INT32_T :
1296+ case MCA_BASE_VAR_TYPE_UINT32_T :
1297+ align = OPAL_ALIGNMENT_INT32 ;
1298+ break ;
1299+ case MCA_BASE_VAR_TYPE_INT64_T :
1300+ case MCA_BASE_VAR_TYPE_UINT64_T :
1301+ align = OPAL_ALIGNMENT_INT64 ;
1302+ break ;
1303+ case MCA_BASE_VAR_TYPE_LONG :
12711304 case MCA_BASE_VAR_TYPE_UNSIGNED_LONG :
12721305 align = OPAL_ALIGNMENT_LONG ;
12731306 break ;
@@ -1914,6 +1947,21 @@ static int var_value_string (mca_base_var_t *var, char **value_string)
19141947 case MCA_BASE_VAR_TYPE_INT :
19151948 ret = asprintf (value_string , "%d" , value -> intval );
19161949 break ;
1950+ case MCA_BASE_VAR_TYPE_INT32_T :
1951+ ret = asprintf (value_string , "%" PRId32 , value -> int32tval );
1952+ break ;
1953+ case MCA_BASE_VAR_TYPE_UINT32_T :
1954+ ret = asprintf (value_string , "%" PRIu32 , value -> uint32tval );
1955+ break ;
1956+ case MCA_BASE_VAR_TYPE_INT64_T :
1957+ ret = asprintf (value_string , "%" PRId64 , value -> int64tval );
1958+ break ;
1959+ case MCA_BASE_VAR_TYPE_UINT64_T :
1960+ ret = asprintf (value_string , "%" PRIu64 , value -> uint64tval );
1961+ break ;
1962+ case MCA_BASE_VAR_TYPE_LONG :
1963+ ret = asprintf (value_string , "%ld" , value -> longval );
1964+ break ;
19171965 case MCA_BASE_VAR_TYPE_UNSIGNED_INT :
19181966 ret = asprintf (value_string , "%u" , value -> uintval );
19191967 break ;
0 commit comments