57 строки
1.8 KiB
C
57 строки
1.8 KiB
C
|
/*
|
||
|
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||
|
* $COPYRIGHT$
|
||
|
*
|
||
|
* Additional copyrights may follow
|
||
|
*
|
||
|
* $HEADER$
|
||
|
*/
|
||
|
|
||
|
#ifndef OPAL_MCA_MEMCPY_BASE_MEMORY_BASE_DEFAULT_H
|
||
|
#define OPAL_MCA_MEMCPY_BASE_MEMORY_BASE_DEFAULT_H
|
||
|
|
||
|
#include "opal_config.h"
|
||
|
|
||
|
/**
|
||
|
* Provided for memory components that don't provide an asynchronous
|
||
|
* method for determining if memory mappings have changed. If a
|
||
|
* component only has a synchronous / interactive method of checking,
|
||
|
* then it can override this macro with some logic to do a (hopefully)
|
||
|
* cheap check to see if memory mappings have changed. The intent is
|
||
|
* that if this cheap check returns true, the upper layer will then
|
||
|
* invoke the memoryc_process() function to actually process what
|
||
|
* changed. This function will be invoked by the upper layer with the
|
||
|
* syntax:
|
||
|
*
|
||
|
* if (opal_memory_changed()) { ... }
|
||
|
*
|
||
|
* Hence, if you need any kind of sophisticated logic, you might want
|
||
|
* to put it in an inline function and have the #define call the
|
||
|
* inline function.
|
||
|
*/
|
||
|
#define opal_memory_changed() 0
|
||
|
|
||
|
BEGIN_C_DECLS
|
||
|
|
||
|
/**
|
||
|
* Default (empty) implementation of the memoryc_register function.
|
||
|
*
|
||
|
* See opal/mca/memory/memory.h for a description of the parameters.
|
||
|
*/
|
||
|
OPAL_DECLSPEC int opal_memory_base_component_register_empty(void *start,
|
||
|
size_t len,
|
||
|
uint64_t cookie);
|
||
|
|
||
|
/**
|
||
|
* Default (empty) implementation of the memoryc_deregister function
|
||
|
*
|
||
|
* See opal/mca/memory/memory.h for a description of the parameters.
|
||
|
*/
|
||
|
OPAL_DECLSPEC int opal_memory_base_component_deregister_empty(void *start,
|
||
|
size_t len,
|
||
|
uint64_t cookie);
|
||
|
|
||
|
END_C_DECLS
|
||
|
|
||
|
#endif
|