projects
/
platform
/
upstream
/
glib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[kdbus] Integrate kdbus core with new API.
[platform/upstream/glib.git]
/
gmodule
/
gmodule.c
diff --git
a/gmodule/gmodule.c
b/gmodule/gmodule.c
index
22db6d0
..
bf1eac7
100644
(file)
--- a/
gmodule/gmodule.c
+++ b/
gmodule/gmodule.c
@@
-12,9
+12,7
@@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
*/
/*
@@
-38,7
+36,7
@@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#ifdef
HAVE_UNISTD_H
+#ifdef
G_OS_UNIX
#include <unistd.h>
#endif
#ifdef G_OS_WIN32
#include <unistd.h>
#endif
#ifdef G_OS_WIN32
@@
-56,11
+54,10
@@
* These functions provide a portable way to dynamically load object files
* (commonly known as 'plug-ins'). The current implementation supports all
* systems that provide an implementation of dlopen() (e.g. Linux/Sun), as
* These functions provide a portable way to dynamically load object files
* (commonly known as 'plug-ins'). The current implementation supports all
* systems that provide an implementation of dlopen() (e.g. Linux/Sun), as
- * well as
HP-UX via its shl_load() mechanism, and
Windows platforms via DLLs.
+ * well as Windows platforms via DLLs.
*
* A program which wants to use these functions must be linked to the
*
* A program which wants to use these functions must be linked to the
- * libraries output by the command
- * <command>pkg-config --libs gmodule-2.0</command>.
+ * libraries output by the command `pkg-config --libs gmodule-2.0`.
*
* To use them you must first determine whether dynamic loading
* is supported on the platform by calling g_module_supported().
*
* To use them you must first determine whether dynamic loading
* is supported on the platform by calling g_module_supported().
@@
-78,13
+75,12
@@
*
* If your module introduces static data to common subsystems in the running
* program, e.g. through calling
*
* If your module introduces static data to common subsystems in the running
* program, e.g. through calling
- *
<literal>g_quark_from_static_string ("my-module-stuff")</literal>
,
+ *
`g_quark_from_static_string ("my-module-stuff")`
,
* it must ensure that it is never unloaded, by calling g_module_make_resident().
*
* it must ensure that it is never unloaded, by calling g_module_make_resident().
*
- * <example>
- * <title>Calling a function defined in a <structname>GModule</structname></title>
- * <programlisting>
- * /* the function signature for 'say_hello' */
+ * Example: Calling a function defined in a GModule
+ * |[<!-- language="C" -->
+ * // the function signature for 'say_hello'
* typedef void (* SayHelloFunc) (const char *message);
*
* gboolean
* typedef void (* SayHelloFunc) (const char *message);
*
* gboolean
@@
-97,16
+93,16
@@
* if (!module)
* {
* g_set_error (error, FOO_ERROR, FOO_ERROR_BLAH,
* if (!module)
* {
* g_set_error (error, FOO_ERROR, FOO_ERROR_BLAH,
- * "
%
s", g_module_error ());
+ * "
%
s", g_module_error ());
* return FALSE;
* }
*
* return FALSE;
* }
*
- * if (!g_module_symbol (module, "say_hello", (gpointer *)&
amp;
say_hello))
+ * if (!g_module_symbol (module, "say_hello", (gpointer *)&say_hello))
* {
* g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN,
* {
* g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN,
- * "
%s: %
s", filename, g_module_error ());
+ * "
%s: %
s", filename, g_module_error ());
* if (!g_module_close (module))
* if (!g_module_close (module))
- * g_warning ("
%s: %
s", filename, g_module_error ());
+ * g_warning ("
%s: %
s", filename, g_module_error ());
* return FALSE;
* }
*
* return FALSE;
* }
*
@@
-115,27
+111,26
@@
* g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN,
* "symbol say_hello is NULL");
* if (!g_module_close (module))
* g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN,
* "symbol say_hello is NULL");
* if (!g_module_close (module))
- * g_warning ("
%s: %
s", filename, g_module_error ());
+ * g_warning ("
%s: %
s", filename, g_module_error ());
* return FALSE;
* }
*
* return FALSE;
* }
*
- * /
* call our function in the module */
+ * /
/ call our function in the module
* say_hello ("Hello world!");
*
* if (!g_module_close (module))
* say_hello ("Hello world!");
*
* if (!g_module_close (module))
- * g_warning ("
%s: %
s", filename, g_module_error ());
+ * g_warning ("
%s: %
s", filename, g_module_error ());
* return TRUE;
* }
* return TRUE;
* }
- * </programlisting>
- * </example>
+ * ]|
*/
/**
* GModule:
*
* The #GModule struct is an opaque data structure to represent a
*/
/**
* GModule:
*
* The #GModule struct is an opaque data structure to represent a
- *
<link linkend="glib-Dynamic-Loading-of-Modules">Dynamically-Loaded
- *
Module</link>.
It should only be accessed via the following functions.
+ *
[dynamically-loaded module][glib-Dynamic-Loading-of-Modules].
+ * It should only be accessed via the following functions.
*/
/**
*/
/**
@@
-143,7
+138,6
@@
* @module: the #GModule corresponding to the module which has just been loaded
*
* Specifies the type of the module initialization function.
* @module: the #GModule corresponding to the module which has just been loaded
*
* Specifies the type of the module initialization function.
- * <indexterm zone="g-module-check-init"><primary>g_module_check_init</primary></indexterm>
* If a module contains a function named g_module_check_init() it is called
* automatically when the module is loaded. It is passed the #GModule structure
* and should return %NULL on success or a string describing the initialization
* If a module contains a function named g_module_check_init() it is called
* automatically when the module is loaded. It is passed the #GModule structure
* and should return %NULL on success or a string describing the initialization
@@
-156,7
+150,6
@@
* GModuleUnload:
* @module: the #GModule about to be unloaded
*
* GModuleUnload:
* @module: the #GModule about to be unloaded
*
- * <indexterm zone="g-module-unload"><primary>g_module_unload</primary></indexterm>
* Specifies the type of the module function called when it is unloaded.
* If a module contains a function named g_module_unload() it is called
* automatically when the module is unloaded.
* Specifies the type of the module function called when it is unloaded.
* If a module contains a function named g_module_unload() it is called
* automatically when the module is unloaded.
@@
-167,8
+160,8
@@
* G_MODULE_SUFFIX:
*
* Expands to the proper shared library suffix for the current platform
* G_MODULE_SUFFIX:
*
* Expands to the proper shared library suffix for the current platform
- * without the leading dot. For
the most Unices and Linux this is "so",
- * for
some HP-UX versions this is "sl" and for
Windows this is "dll".
+ * without the leading dot. For
most Unices and Linux this is "so", and
+ * for Windows this is "dll".
*/
/**
*/
/**
@@
-187,9
+180,7
@@
/* We maintain a list of modules, so we can reference count them.
* That's needed because some platforms don't support references counts on
/* We maintain a list of modules, so we can reference count them.
* That's needed because some platforms don't support references counts on
- * modules e.g. the shl_* implementation of HP-UX
- * (http://www.stat.umn.edu/~luke/xls/projects/dlbasics/dlbasics.html).
- * Also, the module for the program itself is kept seperatedly for
+ * modules. Also, the module for the program itself is kept seperately for
* faster access and because it has special semantics.
*/
* faster access and because it has special semantics.
*/
@@
-287,8
+278,6
@@
g_module_set_error (const gchar *error)
#define SUPPORT_OR_RETURN(rv) { g_module_set_error (NULL); }
#if (G_MODULE_IMPL == G_MODULE_IMPL_DL)
#include "gmodule-dl.c"
#define SUPPORT_OR_RETURN(rv) { g_module_set_error (NULL); }
#if (G_MODULE_IMPL == G_MODULE_IMPL_DL)
#include "gmodule-dl.c"
-#elif (G_MODULE_IMPL == G_MODULE_IMPL_DLD)
-#include "gmodule-dld.c"
#elif (G_MODULE_IMPL == G_MODULE_IMPL_WIN32)
#include "gmodule-win32.c"
#elif (G_MODULE_IMPL == G_MODULE_IMPL_DYLD)
#elif (G_MODULE_IMPL == G_MODULE_IMPL_WIN32)
#include "gmodule-win32.c"
#elif (G_MODULE_IMPL == G_MODULE_IMPL_DYLD)
@@
-681,7
+670,7
@@
g_module_open (const gchar *file_name,
/**
* g_module_open:
/**
* g_module_open:
- * @file_name: the name of the file containing the module, or %NULL
+ * @file_name:
(allow-none):
the name of the file containing the module, or %NULL
* to obtain a #GModule representing the main program itself
* @flags: the flags used for opening the module. This can be the
* logical OR of any of the #GModuleFlags
* to obtain a #GModule representing the main program itself
* @flags: the flags used for opening the module. This can be the
* logical OR of any of the #GModuleFlags
@@
-779,6
+768,13
@@
g_module_close (GModule *module)
return g_module_error() == NULL;
}
return g_module_error() == NULL;
}
+/**
+ * g_module_make_resident:
+ * @module: a #GModule to make permanently resident
+ *
+ * Ensures that a module will never be unloaded.
+ * Any future g_module_close() calls on the module will be ignored.
+ */
void
g_module_make_resident (GModule *module)
{
void
g_module_make_resident (GModule *module)
{
@@
-804,7
+800,7
@@
g_module_error (void)
* g_module_symbol:
* @module: a #GModule
* @symbol_name: the name of the symbol to find
* g_module_symbol:
* @module: a #GModule
* @symbol_name: the name of the symbol to find
- * @symbol: returns the pointer to the symbol value
+ * @symbol:
(out):
returns the pointer to the symbol value
*
* Gets a symbol pointer from a module, such as one exported
* by #G_MODULE_EXPORT. Note that a valid symbol can be %NULL.
*
* Gets a symbol pointer from a module, such as one exported
* by #G_MODULE_EXPORT. Note that a valid symbol can be %NULL.
@@
-845,7
+841,7
@@
g_module_symbol (GModule *module,
{
gchar *error;
{
gchar *error;
- error = g_strconcat ("
`
", symbol_name, "': ", module_error, NULL);
+ error = g_strconcat ("
'
", symbol_name, "': ", module_error, NULL);
g_module_set_error (error);
g_free (error);
*symbol = NULL;
g_module_set_error (error);
g_free (error);
*symbol = NULL;
@@
-857,10
+853,13
@@
g_module_symbol (GModule *module,
/**
* g_module_name:
/**
* g_module_name:
- * @module: a #GModule
to make permanently resident
+ * @module: a #GModule
*
*
- * Ensures that a module will never be unloaded.
- * Any future g_module_close() calls on the module will be ignored.
+ * Returns the filename that the module was opened with.
+ *
+ * If @module refers to the application itself, "main" is returned.
+ *
+ * Returns: (transfer none): the filename of the module
*/
const gchar *
g_module_name (GModule *module)
*/
const gchar *
g_module_name (GModule *module)
@@
-892,8
+891,8
@@
g_module_name (GModule *module)
/**
* g_module_build_path:
/**
* g_module_build_path:
- * @directory:
the directory where the module is. This can be %NULL
- * or the empty string to indicate that the standard platform-specific
+ * @directory:
(allow-none): the directory where the module is. This can be
+ *
%NULL
or the empty string to indicate that the standard platform-specific
* directories will be used, though that is not recommended
* @module_name: the name of the module
*
* directories will be used, though that is not recommended
* @module_name: the name of the module
*
@@
-907,10
+906,9
@@
g_module_name (GModule *module)
* since the wrong module may be found.
*
* For example, calling g_module_build_path() on a Linux system with a
* since the wrong module may be found.
*
* For example, calling g_module_build_path() on a Linux system with a
- * @directory of <filename>/lib</filename> and a @module_name of "mylibrary"
- * will return <filename>/lib/libmylibrary.so</filename>. On a Windows system,
- * using <filename>\Windows</filename> as the directory it will return
- * <filename>\Windows\mylibrary.dll</filename>.
+ * @directory of `/lib` and a @module_name of "mylibrary" will return
+ * `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the
+ * directory it will return `\Windows\mylibrary.dll`.
*
* Returns: the complete path of the module, including the standard library
* prefix and suffix. This should be freed when no longer needed
*
* Returns: the complete path of the module, including the standard library
* prefix and suffix. This should be freed when no longer needed