/* ********************************************************** * Copyright 1998 - 2009 VMware, Inc. All rights reserved. * **********************************************************/ /* * @VMKAPIMOD_LICENSE@ */ /* *********************************************************************** * Module (incompatible) */ /** * \addtogroup Module * * @{ *********************************************************************** */ #ifndef _VMKAPI_MODULE_INCOMPAT_H_ #define _VMKAPI_MODULE_INCOMPAT_H_ /** \cond never */ #ifndef VMK_HEADER_INCLUDED_FROM_VMKAPI_H #error This vmkapi file should never be included directly but only via vmkapi.h #endif /** \endcond never */ /* *********************************************************************** * VMK_MODULE_EXPORT_SYMBOL_DIRECT -- */ /** * * \ingroup Module * \brief Mark a symbol as exported only for direct calls * * Mark the given symbol as exported, and hence available for other * modules to find/call. This differs from VMK_MODULE_EXPORT_SYMBOL * in that the exported symbol will never be called through a * trampoline; all calls will be "direct". Note that exported * symbols are not called through trampolines by default, so this is * only necessary if you know callers may use trampolines and you want * to prevent it. See below for more information. * * \param[in] __symname The symbol to export. * *********************************************************************** */ #define VMK_MODULE_EXPORT_SYMBOL_DIRECT(__symname) \ __VMK_MODULE_EXPORT_SYMBOL_DIRECT(__symname) /* *********************************************************************** * vmk_ModuleLoad -- */ /** * * \ingroup Module * \brief Load a vmkernel module. * * \note This is a blocking call. * * \pre The caller should not hold any spinlock. * * \param[in] module Module name to load. * \param[out] moduleID Module ID if module loaded successfully * * \retval VMK_OK Module loaded without error or is already * loaded. * \retval VMK_FAILURE Module could not be loaded. * \retval VMK_TIMEOUT Module could not be loaded. * \retval VMK_NO_MEMORY Module could not be loaded out of memory. * *********************************************************************** */ VMK_ReturnStatus vmk_ModuleLoad(const char *module, vmk_ModuleID *moduleID); #endif /* _VMKAPI_MODULE_INCOMPAT_H_ */ /** @} */