root/opal/mca/backtrace/backtrace.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   4  *                         University Research and Technology
   5  *                         Corporation.  All rights reserved.
   6  * Copyright (c) 2004-2005 The University of Tennessee and The University
   7  *                         of Tennessee Research Foundation.  All rights
   8  *                         reserved.
   9  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
  10  *                         University of Stuttgart.  All rights reserved.
  11  * Copyright (c) 2004-2006 The Regents of the University of California.
  12  *                         All rights reserved.
  13  * Copyright (c) 2015      Los Alamos National Security, LLC. All rights
  14  *                         reserved.
  15  * Copyright (c) 2017      IBM Corporation.  All rights reserved.
  16  * $COPYRIGHT$
  17  *
  18  * Additional copyrights may follow
  19  *
  20  * $HEADER$
  21  */
  22 
  23 #ifndef OPAL_MCA_BACKTRACE_BACKTRACE_H
  24 #define OPAL_MCA_BACKTRACE_BACKTRACE_H
  25 
  26 #include "opal_config.h"
  27 
  28 #include "opal/mca/mca.h"
  29 #include "opal/mca/base/base.h"
  30 #include "opal/util/stacktrace.h"
  31 
  32 BEGIN_C_DECLS
  33 
  34 /*
  35  * Most of this file is just for ompi_info.  There are two interface
  36  * functions, both of which are called directly.  The joy of link-time
  37  * components.
  38  */
  39 
  40 
  41 /*
  42  * Print back trace to FILE file with a prefix for each line.
  43  * First strip lines are not printed.
  44  * If 'file' is NULL then the component should try to use the file descriptor
  45  * saved in opal_stacktrace_output_fileno
  46  *
  47  * \note some attempts made to be signal safe.
  48  */
  49 OPAL_DECLSPEC int opal_backtrace_print(FILE *file, char *prefix, int strip);
  50 
  51 /*
  52  * Return back trace in buffer.  buffer will be allocated by the
  53  * backtrace component, but should be free'ed by the caller.
  54  *
  55  * \note Probably bad to call this from a signal handler.
  56  *
  57  */
  58 OPAL_DECLSPEC int opal_backtrace_buffer(char*** messages, int *len);
  59 
  60 
  61 /**
  62  * Structure for backtrace components.
  63  */
  64 struct opal_backtrace_base_component_2_0_0_t {
  65     /** MCA base component */
  66     mca_base_component_t backtracec_version;
  67     /** MCA base data */
  68     mca_base_component_data_t backtracec_data;
  69 };
  70 /**
  71  * Convenience typedef
  72  */
  73 typedef struct opal_backtrace_base_component_2_0_0_t opal_backtrace_base_component_2_0_0_t;
  74 
  75 /*
  76  * Macro for use in components that are of type backtrace
  77  */
  78 #define OPAL_BACKTRACE_BASE_VERSION_2_0_0 \
  79     OPAL_MCA_BASE_VERSION_2_1_0("backtrace", 2, 0, 0)
  80 
  81 END_C_DECLS
  82 
  83 #endif /* OPAL_MCA_BACKTRACE_BACKTRACE_H */

/* [<][>][^][v][top][bottom][index][help] */