1
1
openmpi/ompi/mca/btl/usnic/btl_usnic_compat.h
Dave Goodell 4c791e21d2 usnic: add MSGDEBUG1_OUT/MSGDEBUG2_OUT macros
This includes suppressing picky-mode warnings about __VA_ARGS__, which
we know are supported by any compilers we care about.

Reviewed-by: Jeff Squyres <jsquyres@cisco.com>
Reviewed-by: Reese Faucette <rfaucett@cisco.com>

This commit was SVN r29590.
2013-11-04 22:51:35 +00:00

78 строки
2.8 KiB
C

/*
* Copyright (c) 2013 Cisco Systems, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
/* This header contains macros to help minimize usnic BTL differences between
* v1.6, v1.7, and trunk. Note that we are stomping on other namespaces,
* especially to make stock trunk code play nicely with v1.6 OMPI. */
#ifndef BTL_USNIC_COMPAT_H
#define BTL_USNIC_COMPAT_H
#if OMPI_MAJOR_VERSION == 1 && OMPI_MINOR_VERSION == 6
/* The usnic BTL will never be in the upstream v1.6 branch. The only v1.6
* variant will be a Cisco-supplied version. */
/* for per-file #ifdefs, esp. #includes */
# define OMPI_BTL_USNIC_CISCO_V1_6 1
#define opal_event_set(event_base_,A,B,C,D,E) \
opal_event_set(A,B,C,D,E)
# define opal_show_help orte_show_help
# define mca_base_var_check_exclusive(S,A,B,C,D,E,F) \
mca_base_param_check_exclusive_string(A,B,C,D,E,F)
# define ompi_process_info orte_process_info
# define ompi_rte_hash_name orte_util_hash_name
# define OMPI_PROC_MY_NAME ORTE_PROC_MY_NAME
# define OMPI_ERROR_LOG ORTE_ERROR_LOG
# define OMPI_NAME_PRINT ORTE_NAME_PRINT
# define USNIC_OUT mca_btl_base_output
# define proc_bound() ompi_btl_usnic_proc_bound_v1_6_helper()
/* the opal_if code lives inside the BTL dir in v1.6-cisco */
# define opal_ifbegin btl_usnic_opal_ifbegin
# define opal_ifnext btl_usnic_opal_ifnext
# define opal_ifindextoaddr btl_usnic_opal_ifindextoaddr
# define opal_ifindextomac btl_usnic_opal_ifindextomac
# define opal_ifindextomask btl_usnic_opal_ifindextomask
# define opal_ifindextomtu btl_usnic_opal_ifindextomtu
# define opal_ifindextoname btl_usnic_opal_ifindextoname
/* this _FOREACH macro is not present in v1.6 */
#define OPAL_LIST_FOREACH(item, list, type) \
for (item = (type *) (list)->opal_list_sentinel.opal_list_next ; \
item != (type *) &(list)->opal_list_sentinel ; \
item = (type *) ((opal_list_item_t *) (item))->opal_list_next)
#elif (OMPI_MAJOR_VERSION == 1 && OMPI_MINOR_VERSION >= 7) || \
(OMPI_MAJOR_VERSION >= 2)
/* v1.7, v1.8 (to be released), trunk (v1.9), or later */
/* TODO validate that all of these things actually work with v1.7 */
# define USNIC_OUT ompi_btl_base_framework.framework_output
# define proc_bound() (ompi_rte_proc_is_bound)
#else
# error OMPI version too old (< 1.6)
#endif
/* The FREE_LIST_*_MT stuff was introduced on the SVN trunk in r28722
(2013-07-04), but so far, has not been merged into the v1.7 branch
yet (2013-09-06). */
#ifndef OMPI_FREE_LIST_GET_MT
# define OMPI_FREE_LIST_GET_MT(list_, item_) \
do { \
int rc_ __opal_attribute_unused__; \
OMPI_FREE_LIST_GET(list_, item_, rc_); \
} while (0)
# define OMPI_FREE_LIST_RETURN_MT(list_, item_) \
OMPI_FREE_LIST_RETURN(list_, item_)
#endif
#endif /* BTL_USNIC_COMPAT_H */