6aac54b02e
Not sure what happened here, but the resulting trunk wouldn't even configure. After spending time fixing that problem, I found it wouldn't compile due to multiple syntax errors that had been introduced in both the OPAL and OMPI layer. This raised questions as to the completeness of the work. Given that the author is departing, I pinged Jeff about it and we agreed to revert this for now. Hopefully, it can either be fixed by the author prior to actual departure, or someone else can pick it up (now that it is in the history) and fix it. This commit was SVN r27511. The following SVN revision numbers were found above: r27508 --> open-mpi/ompi@12c3c743de r27509 --> open-mpi/ompi@79e4a8ca38 r27510 --> open-mpi/ompi@1ad5ff625a
294 строки
7.9 KiB
C
294 строки
7.9 KiB
C
/*
|
|
* Copyright (c) 2004-2006 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*
|
|
*/
|
|
|
|
#ifndef OPAL_MEMCHECKER_BASE_H
|
|
#define OPAL_MEMCHECKER_BASE_H
|
|
|
|
#include "opal_config.h"
|
|
|
|
#include "opal/mca/memchecker/memchecker.h"
|
|
|
|
/*
|
|
* Global functions for MCA overall memchecker open and close
|
|
*/
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
/**
|
|
* Initialize the memchecker MCA framework
|
|
*
|
|
* @retval OPAL_SUCCESS Upon success
|
|
* @retval OPAL_ERROR Upon failure
|
|
*
|
|
* This must be the first function invoked in the memchecker MCA
|
|
* framework. It initializes the memchecker MCA framework, finds
|
|
* and opens memchecker components, etc.
|
|
*
|
|
* This function is invoked during opal_init() and during the
|
|
* initialization of the special case of the laminfo command.
|
|
*
|
|
* This function fills in the internal global variable
|
|
* opal_memchecker_base_components_opened, which is a list of all
|
|
* memchecker components that were successfully opened. This
|
|
* variable should \em only be used by other memchecker base
|
|
* functions -- it is not considered a public interface member --
|
|
* and is only mentioned here for completeness.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_open(void);
|
|
|
|
/**
|
|
* Select one available component.
|
|
*
|
|
* @return OPAL_SUCCESS Upon success.
|
|
*
|
|
* This function invokes the selection process for memchecker
|
|
* components
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_select(void);
|
|
|
|
/**
|
|
* Shut down the memchecker MCA framework.
|
|
*
|
|
* @retval OPAL_SUCCESS Always
|
|
*
|
|
* This function shuts down everything in the memchecker MCA
|
|
* framework, and is called during opal_finalize() and the
|
|
* special case of the laminfo command.
|
|
*
|
|
* It must be the last function invoked on the memchecker MCA framework.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_close(void);
|
|
|
|
/**
|
|
* List of all opened components; created when the memchecker
|
|
* framework is initialized and destroyed, when we reduce the list
|
|
* to all available memchecker components (actually one).
|
|
*/
|
|
OPAL_DECLSPEC extern opal_list_t opal_memchecker_base_components_opened;
|
|
|
|
/**
|
|
* Indication of whether one component was successfully selected
|
|
*/
|
|
OPAL_DECLSPEC extern bool opal_memchecker_base_selected;
|
|
|
|
/**
|
|
* Global component struct for the selected component
|
|
*/
|
|
OPAL_DECLSPEC extern const opal_memchecker_base_component_2_0_0_t
|
|
*opal_memchecker_base_component;
|
|
|
|
/**
|
|
* Global module struct for the selected module
|
|
*/
|
|
OPAL_DECLSPEC extern const opal_memchecker_base_module_1_0_0_t
|
|
*opal_memchecker_base_module;
|
|
|
|
/**
|
|
* Debugging output stream
|
|
*/
|
|
extern int opal_memchecker_base_output;
|
|
|
|
/**
|
|
* Check if we are running under the memory debugger.
|
|
*
|
|
* @retval 0 if not running under memory debugger
|
|
* !=0 if running under memory debugger
|
|
*
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_runindebugger(void);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_runindebugger() 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Check if a memory region is valid to address
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, whether
|
|
* every Byte of this memory region is addressable
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_isaddressable(void * p, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_isaddressable(p, len) 0
|
|
#endif
|
|
|
|
|
|
/**
|
|
* Check if a memory region is defined
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, whether
|
|
* every Byte of this memory region is correctly initialized.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_isdefined(void * p, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_isdefined(p, len) 0
|
|
#endif
|
|
|
|
/**
|
|
* Set a memory region to not accessible
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to set
|
|
* every Byte of this memory region to not accessible.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_mem_noaccess(void * p, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_mem_noaccess(p, len)
|
|
#endif
|
|
|
|
/**
|
|
* Set a memory region to undefined
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to set
|
|
* every Byte of this memory region to not contain initialized data.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_mem_undefined(void * p, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_mem_undefined(p, len)
|
|
#endif
|
|
|
|
/**
|
|
* Set a memory region to defined
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to set
|
|
* every Byte of this memory region to contain valid, initialized data.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_mem_defined(void * p, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_mem_defined(p, len)
|
|
#endif
|
|
|
|
/**
|
|
* Set a memory region to defined only if the region is addressable
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to set
|
|
* every Byte of this memory region to contain valid, initialized data,
|
|
* but only, if the memory region is addressable.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_mem_defined_if_addressable(void * p, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_mem_defined_if_addressable(p, len)
|
|
#endif
|
|
|
|
/**
|
|
* Create a named memory region
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param len Length of the memory region
|
|
* @param description Name of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to name
|
|
* this memory region.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_create_block(void * p, size_t len, char * description);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_create_block(p, len, description)
|
|
#endif
|
|
|
|
/**
|
|
* Discard a named memory region
|
|
*
|
|
* @param p Pointer to the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to discard
|
|
* the name information of the memory region.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_discard_block(void * p);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_discard_block(p)
|
|
#endif
|
|
|
|
/**
|
|
* Perform leak check on lost allocated memory.
|
|
*
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to output
|
|
* information regarding lost allocated memory.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_leakcheck(void);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_leakcheck
|
|
#endif
|
|
|
|
/**
|
|
* Get vbits of the memory
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param vbits Pointer to the vbit table
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to get
|
|
* every vbit of this memory region.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_get_vbits(void * p, char * vbits, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_get_vbits(p, vbits, len)
|
|
#endif
|
|
|
|
/**
|
|
* Set vbits of the memory
|
|
*
|
|
* @param p Pointer to the memory region
|
|
* @param vbits Pointer to the vbit table
|
|
* @param len Length of the memory region
|
|
*
|
|
* @retval OPAL_SUCCESS upon success.
|
|
*
|
|
* This function calls the selected memchecker, to get
|
|
* every vbit of this memory region.
|
|
*/
|
|
OPAL_DECLSPEC int opal_memchecker_base_set_vbits(void * p, char * vbits, size_t len);
|
|
#if OMPI_WANT_MEMCHECKER == 0
|
|
#define opal_memchecker_base_set_vbits(p, vbits, len)
|
|
#endif
|
|
|
|
END_C_DECLS
|
|
|
|
#endif /* OPAL_MEMCHECKER_BASE_H */
|