/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana * University Research and Technology * Corporation. All rights reserved. * Copyright (c) 2004-2020 The University of Tennessee and The University * of Tennessee Research Foundation. All rights * reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2007-2008 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. * Copyright (c) 2012 Los Alamos National Security, LLC. * All rights reserved. * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */ #ifndef MCA_BTL_BASE_ERROR_H # define MCA_BTL_BASE_ERROR_H # include "opal_config.h" # include # include # include "opal/util/proc.h" OPAL_DECLSPEC extern int mca_btl_base_verbose; OPAL_DECLSPEC extern int mca_btl_base_warn_peer_error; OPAL_DECLSPEC extern int mca_btl_base_err(const char *, ...) __opal_attribute_format__(__printf__, 1, 2); OPAL_DECLSPEC extern int mca_btl_base_out(const char *, ...) __opal_attribute_format__(__printf__, 1, 2); # define BTL_OUTPUT(args) \ do { \ mca_btl_base_out("[%s]%s[%s:%d:%s] ", opal_process_info.nodename, \ OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), __FILE__, __LINE__, __func__); \ mca_btl_base_out args; \ mca_btl_base_out("\n"); \ } while (0); # define BTL_ERROR(args) \ do { \ mca_btl_base_err("[%s]%s[%s:%d:%s] ", opal_process_info.nodename, \ OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), __FILE__, __LINE__, __func__); \ mca_btl_base_err args; \ mca_btl_base_err("\n"); \ } while (0); # define BTL_PEER_ERROR(proc, args) \ do { \ if (mca_btl_base_warn_peer_error || mca_btl_base_verbose > 0) { /* warn if verbose */ \ char *btl_peer_errhost; \ mca_btl_base_err("[%s]%s[%s:%d:%s] ", opal_process_info.nodename, \ OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), __FILE__, __LINE__, \ __func__); \ if (proc) { \ btl_peer_errhost= opal_get_proc_hostname(proc); \ mca_btl_base_err("peer: %s ", btl_peer_errhost); \ free(btl_peer_errhost); \ } \ mca_btl_base_err args; \ mca_btl_base_err("\n"); \ } \ } while (0); # if OPAL_ENABLE_DEBUG # define BTL_VERBOSE(args) \ do { \ if (mca_btl_base_verbose > 0) { \ mca_btl_base_err("[%s]%s[%s:%d:%s] ", opal_process_info.nodename, \ OPAL_NAME_PRINT(OPAL_PROC_MY_NAME), __FILE__, __LINE__, \ __func__); \ mca_btl_base_err args; \ mca_btl_base_err("\n"); \ } \ } while (0); # else # define BTL_VERBOSE(args) # endif #endif BEGIN_C_DECLS OPAL_DECLSPEC extern void mca_btl_base_error_no_nics(const char *transport, const char *nic_name); END_C_DECLS