LibreOffice
LibreOffice 5.3 SDK C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | Typedefs | Functions
module.h File Reference
#include <sal/config.h>
#include <rtl/tencinfo.h>
#include <rtl/ustring.h>
#include <sal/saldllapi.h>

Go to the source code of this file.

Macros

#define SAL_MODULENAME(name)   name SAL_DLLEXTENSION
 
#define SAL_LOADMODULE_DEFAULT   0x00000
 
#define SAL_LOADMODULE_LAZY   0x00001
 
#define SAL_LOADMODULE_NOW   0x00002
 
#define SAL_LOADMODULE_GLOBAL   0x00100
 

Typedefs

typedef void * oslModule
 
typedef void(* oslGenericFunction )(void)
 Generic Function pointer type that will be used as symbol address. More...
 

Functions

SAL_DLLPUBLIC oslModule osl_loadModule (rtl_uString *strModuleName, sal_Int32 nRtldMode)
 Load a shared library or module. More...
 
SAL_DLLPUBLIC oslModule osl_loadModuleAscii (const sal_Char *pModuleName, sal_Int32 nRtldMode)
 Load a shared library or module. More...
 
SAL_DLLPUBLIC oslModule osl_loadModuleRelative (oslGenericFunction baseModule, rtl_uString *relativePath, sal_Int32 mode)
 Load a module located relative to some other module. More...
 
SAL_DLLPUBLIC oslModule osl_loadModuleRelativeAscii (oslGenericFunction baseModule, char const *relativePath, sal_Int32 mode)
 Load a module located relative to some other module. More...
 
SAL_DLLPUBLIC sal_Bool osl_getModuleHandle (rtl_uString *pModuleName, oslModule *pResult)
 Retrieve the handle of an already loaded module. More...
 
SAL_DLLPUBLIC void osl_unloadModule (oslModule Module)
 Release the module. More...
 
SAL_DLLPUBLIC void * osl_getSymbol (oslModule Module, rtl_uString *strSymbolName)
 lookup the specified symbol name. More...
 
SAL_DLLPUBLIC oslGenericFunction osl_getFunctionSymbol (oslModule Module, rtl_uString *ustrFunctionSymbolName)
 Lookup the specified function symbol name. More...
 
SAL_DLLPUBLIC oslGenericFunction osl_getAsciiFunctionSymbol (oslModule Module, const sal_Char *pSymbol)
 Lookup the specified function symbol name. More...
 
SAL_DLLPUBLIC sal_Bool osl_getModuleURLFromAddress (void *pv, rtl_uString **pustrURL)
 Lookup URL of module which is mapped at the specified address. More...
 
SAL_DLLPUBLIC sal_Bool osl_getModuleURLFromFunctionAddress (oslGenericFunction pf, rtl_uString **pustrFunctionURL)
 Lookup URL of module which is mapped at the specified function address. More...
 

Macro Definition Documentation

#define SAL_LOADMODULE_DEFAULT   0x00000
#define SAL_LOADMODULE_GLOBAL   0x00100
#define SAL_LOADMODULE_LAZY   0x00001
#define SAL_LOADMODULE_NOW   0x00002
#define SAL_MODULENAME (   name)    name SAL_DLLEXTENSION

Typedef Documentation

typedef void( * oslGenericFunction)(void)

Generic Function pointer type that will be used as symbol address.

See Also
osl_getFunctionSymbol.
osl_getModuleURLFromFunctionAddress.
typedef void* oslModule

Function Documentation

SAL_DLLPUBLIC oslGenericFunction osl_getAsciiFunctionSymbol ( oslModule  Module,
const sal_Char pSymbol 
)

Lookup the specified function symbol name.

osl_getAsciiFunctionSymbol is an alternative function for osl_getFunctionSymbol. It expects the C-style function name string to contain ascii characters only.

Parameters
Module[in] a module handle as returned by osl_loadModule or osl_getModuleHandle
pSymbol[in] Name of the function that will be looked up.
Returns
Function address.
on success
NULL
lookup failed or the parameter are invalid.
See Also
osl_getModuleHandle
osl_getFunctionSymbol
SAL_DLLPUBLIC oslGenericFunction osl_getFunctionSymbol ( oslModule  Module,
rtl_uString *  ustrFunctionSymbolName 
)

Lookup the specified function symbol name.

osl_getFunctionSymbol is an alternative function for osl_getSymbol. Use Function pointer as symbol address to conceal type conversion.

Parameters
Module[in] the handle of the Module.
ustrFunctionSymbolName[in] Name of the function that will be looked up.
Returns
Function address.
on success
NULL
lookup failed or the parameter are invalid.
See Also
osl_getSymbol
osl_getAsciiFunctionSymbol
SAL_DLLPUBLIC sal_Bool osl_getModuleHandle ( rtl_uString *  pModuleName,
oslModule pResult 
)

Retrieve the handle of an already loaded module.

This function can be used to search for a function symbol in the process address space. Do not use the returned handle as an argument to osl_unloadModule. On Unix platforms, pModuleName gets ignored and the special handle RTLD_DEFAULT is returned.

Parameters
pModuleName[in] denotes the name of the module to search for. Ignored on Unix
pResult[out] a pointer to a oslModule that is updated with the requested module handle on success.
Returns
sal_True if the module handle could be retrieved and has been copied to *pResult. sal_False if the module has not been loaded yet.
See Also
osl_getFunctionSymbol
osl_getAsciiFunctionSymbol
SAL_DLLPUBLIC sal_Bool osl_getModuleURLFromAddress ( void *  pv,
rtl_uString **  pustrURL 
)

Lookup URL of module which is mapped at the specified address.

Parameters
pvspecifies an address in the process memory space.
pustrURLreceives the URL of the module that is mapped at pv.
Returns
sal_True on success, sal_False if no module can be found at the specified address.
SAL_DLLPUBLIC sal_Bool osl_getModuleURLFromFunctionAddress ( oslGenericFunction  pf,
rtl_uString **  pustrFunctionURL 
)

Lookup URL of module which is mapped at the specified function address.

osl_getModuleURLFromFunctionAddress is an alternative function for osl_getModuleURLFromAddress. Use Function pointer as symbol address to conceal type conversion.

Parameters
pf[in] function address in oslGenericFunction format.
pustrFunctionURL[out] receives the URL of the module that is mapped at pf.
Returns
sal_True
on success
sal_False
no module can be found at the specified function address or parameter is somewhat invalid.
See Also
osl_getModuleURLFromAddress
SAL_DLLPUBLIC void* osl_getSymbol ( oslModule  Module,
rtl_uString *  strSymbolName 
)

lookup the specified symbol name.

Returns
address of the symbol or NULL if lookup failed.
SAL_DLLPUBLIC oslModule osl_loadModule ( rtl_uString *  strModuleName,
sal_Int32  nRtldMode 
)

Load a shared library or module.

Parameters
strModuleNamedenotes the name of the module to be loaded.
nRtldModedenotes the mode.
Returns
NULL if the module could not be loaded, otherwise a handle to the module.
SAL_DLLPUBLIC oslModule osl_loadModuleAscii ( const sal_Char pModuleName,
sal_Int32  nRtldMode 
)

Load a shared library or module.

Parameters
pModuleNamedenotes the name of the module to be loaded.
nRtldModedenotes the mode.
Returns
NULL if the module could not be loaded, otherwise a handle to the module.
Since
UDK 3.6
SAL_DLLPUBLIC oslModule osl_loadModuleRelative ( oslGenericFunction  baseModule,
rtl_uString *  relativePath,
sal_Int32  mode 
)

Load a module located relative to some other module.

Parameters
baseModulemust point to a function that is part of the code of some loaded module; must not be NULL.
relativePatha relative URL; must not be NULL.
modethe SAL_LOADMODULE_xxx flags.
Returns
a non-NULL handle to the loaded module, or NULL if an error occurred.
Since
UDK 3.2.8
SAL_DLLPUBLIC oslModule osl_loadModuleRelativeAscii ( oslGenericFunction  baseModule,
char const *  relativePath,
sal_Int32  mode 
)

Load a module located relative to some other module.

Parameters
baseModulemust point to a function that is part of the code of some loaded module; must not be NULL.
relativePatha relative URL containing only ASCII (0x01–7F) characters; must not be NULL.
modethe SAL_LOADMODULE_xxx flags.
Returns
a non-NULL handle to the loaded module, or NULL if an error occurred.
Since
LibreOffice 3.5
SAL_DLLPUBLIC void osl_unloadModule ( oslModule  Module)

Release the module.