mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2025-01-23 04:43:35 +08:00
Remove eglib.
This commit is contained in:
parent
0b91ee8fa4
commit
1d13df54ae
@ -1,6 +1,6 @@
|
||||
|
||||
SUBDIRS = include lib doc \
|
||||
sbc eglib gdbus common sdpd hcid plugins \
|
||||
sbc gdbus common sdpd hcid plugins \
|
||||
network serial input audio \
|
||||
tools rfcomm dund pand hidd \
|
||||
cups test scripts
|
||||
|
15
acinclude.m4
15
acinclude.m4
@ -148,7 +148,6 @@ AC_DEFUN([AC_ARG_BLUEZ], [
|
||||
netlink_enable=no
|
||||
usb_enable=${usb_found}
|
||||
alsa_enable=${alsa_found}
|
||||
glib_enable=yes
|
||||
gstreamer_enable=${gstreamer_found}
|
||||
audio_enable=yes
|
||||
input_enable=yes
|
||||
@ -176,10 +175,6 @@ AC_DEFUN([AC_ARG_BLUEZ], [
|
||||
pie_enable=${enableval}
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(glib, AC_HELP_STRING([--disable-glib], [disable GLib support]), [
|
||||
glib_enable=${enableval}
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(network, AC_HELP_STRING([--disable-network], [disable network plugin]), [
|
||||
network_enable=${enableval}
|
||||
])
|
||||
@ -285,16 +280,6 @@ AC_DEFUN([AC_ARG_BLUEZ], [
|
||||
AC_DEFINE(HAVE_LIBUSB, 1, [Define to 1 if you have USB library.])
|
||||
fi
|
||||
|
||||
if (test "${glib_enable}" = "yes" && test "${glib_found}" = "yes"); then
|
||||
AM_CONDITIONAL(GLIB, true)
|
||||
else
|
||||
AC_SUBST([GLIB_CFLAGS], ['-I$(top_srcdir)/eglib'])
|
||||
AC_SUBST([GLIB_LIBS], ['$(top_builddir)/eglib/libeglib.la -ldl -rdynamic'])
|
||||
AC_SUBST([GMODULE_CFLAGS], [''])
|
||||
AC_SUBST([GMODULE_LIBS], [''])
|
||||
AM_CONDITIONAL(GLIB, false)
|
||||
fi
|
||||
|
||||
AC_SUBST([GDBUS_CFLAGS], ['-I$(top_srcdir)/gdbus'])
|
||||
AC_SUBST([GDBUS_LIBS], ['$(top_builddir)/gdbus/libgdbus.la'])
|
||||
|
||||
|
@ -41,7 +41,6 @@ AC_OUTPUT([
|
||||
lib/Makefile
|
||||
doc/Makefile
|
||||
sbc/Makefile
|
||||
eglib/Makefile
|
||||
gdbus/Makefile
|
||||
common/Makefile
|
||||
plugins/Makefile
|
||||
|
@ -1,8 +0,0 @@
|
||||
|
||||
if !GLIB
|
||||
noinst_LTLIBRARIES = libeglib.la
|
||||
|
||||
libeglib_la_SOURCES = glib.h gmain.h gmain.c gmodule.h gmodule.c
|
||||
endif
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
@ -1 +0,0 @@
|
||||
#include <gmain.h>
|
1977
eglib/gmain.c
1977
eglib/gmain.c
File diff suppressed because it is too large
Load Diff
404
eglib/gmain.h
404
eglib/gmain.h
@ -1,404 +0,0 @@
|
||||
#ifndef __GMAIN_H
|
||||
#define __GMAIN_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sys/poll.h>
|
||||
#include <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
typedef char gchar;
|
||||
typedef short gshort;
|
||||
typedef long glong;
|
||||
typedef int gint;
|
||||
typedef gint gboolean;
|
||||
|
||||
typedef unsigned char guchar;
|
||||
typedef unsigned short gushort;
|
||||
typedef unsigned long gulong;
|
||||
typedef unsigned int guint;
|
||||
|
||||
typedef uint8_t guint8;
|
||||
typedef uint16_t guint16;
|
||||
typedef uint32_t guint32;
|
||||
|
||||
typedef float gfloat;
|
||||
typedef double gdouble;
|
||||
|
||||
typedef void * gpointer;
|
||||
typedef const void * gconstpointer;
|
||||
|
||||
typedef size_t gsize;
|
||||
typedef ssize_t gssize;
|
||||
|
||||
#define GPOINTER_TO_INT(p) ((gint) (glong) (p))
|
||||
#define GPOINTER_TO_UINT(p) ((guint) (gulong) (p))
|
||||
|
||||
#define GINT_TO_POINTER(i) ((gpointer) (glong) (i))
|
||||
#define GUINT_TO_POINTER(u) ((gpointer) (gulong) (u))
|
||||
|
||||
#ifndef SSIZE_MAX
|
||||
#define SSIZE_MAX INT_MAX
|
||||
#endif
|
||||
|
||||
#define g_ntohs(val) ntohs(val)
|
||||
#define g_ntohl(val) ntohl(val)
|
||||
#define g_htons(val) htons(val)
|
||||
#define g_htonl(val) htonl(val)
|
||||
|
||||
typedef pid_t GPid;
|
||||
|
||||
#define MIN_TIMEOUT(a, b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
typedef struct _GIOChannel GIOChannel;
|
||||
|
||||
typedef gboolean (*GSourceFunc) (gpointer data);
|
||||
|
||||
typedef struct _GMainContext GMainContext;
|
||||
|
||||
typedef struct _GMainLoop GMainLoop;
|
||||
|
||||
typedef enum {
|
||||
G_IO_ERROR_NONE,
|
||||
G_IO_ERROR_AGAIN,
|
||||
G_IO_ERROR_INVAL,
|
||||
G_IO_ERROR_UNKNOWN
|
||||
} GIOError;
|
||||
|
||||
typedef enum {
|
||||
G_IO_STATUS_ERROR = -1,
|
||||
G_IO_STATUS_NORMAL = 0,
|
||||
G_IO_STATUS_EOF = 1,
|
||||
G_IO_STATUS_AGAIN = 2
|
||||
} GIOStatus;
|
||||
|
||||
typedef enum {
|
||||
G_IO_FLAG_APPEND = 1 << 0,
|
||||
G_IO_FLAG_NONBLOCK = 1 << 1,
|
||||
G_IO_FLAG_IS_READABLE = 1 << 2,
|
||||
G_IO_FLAG_IS_WRITEABLE = 1 << 3,
|
||||
G_IO_FLAG_IS_SEEKABLE = 1 << 4,
|
||||
G_IO_FLAG_MASK = (1 << 5) - 1,
|
||||
G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
|
||||
G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
|
||||
} GIOFlags;
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE (0)
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE (!FALSE)
|
||||
#endif
|
||||
|
||||
#undef MAX
|
||||
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||
|
||||
#undef MIN
|
||||
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
#undef ABS
|
||||
#define ABS(a) (((a) < 0) ? -(a) : (a))
|
||||
|
||||
#undef CLAMP
|
||||
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
|
||||
|
||||
/* GError */
|
||||
|
||||
typedef guint32 GQuark;
|
||||
|
||||
typedef struct {
|
||||
GQuark domain;
|
||||
gint code;
|
||||
gchar *message;
|
||||
} GError;
|
||||
|
||||
void g_set_error(GError **err, GQuark domain, gint code,
|
||||
const gchar *format, ...);
|
||||
GError* g_error_new_literal(GQuark domain, gint code, const gchar *message);
|
||||
void g_error_free(GError *err);
|
||||
|
||||
typedef enum {
|
||||
G_IO_IN = POLLIN,
|
||||
G_IO_OUT = POLLOUT,
|
||||
G_IO_PRI = POLLPRI,
|
||||
G_IO_ERR = POLLERR,
|
||||
G_IO_HUP = POLLHUP,
|
||||
G_IO_NVAL = POLLNVAL
|
||||
} GIOCondition;
|
||||
|
||||
#define G_PRIORITY_HIGH -100
|
||||
#define G_PRIORITY_DEFAULT 0
|
||||
#define G_PRIORITY_HIGH_IDLE 100
|
||||
#define G_PRIORITY_DEFAULT_IDLE 200
|
||||
#define G_PRIORITY_LOW 300
|
||||
|
||||
typedef void (*GDestroyNotify) (gpointer data);
|
||||
typedef gboolean (*GIOFunc) (GIOChannel *source, GIOCondition condition,
|
||||
gpointer data);
|
||||
|
||||
GIOError g_io_channel_read(GIOChannel *channel, gchar *buf, gsize count,
|
||||
gsize *bytes_read);
|
||||
GIOError g_io_channel_write(GIOChannel *channel, const gchar *buf, gsize count,
|
||||
gsize *bytes_written);
|
||||
|
||||
void g_io_channel_close(GIOChannel *channel);
|
||||
|
||||
GIOChannel *g_io_channel_unix_new(int fd);
|
||||
GIOChannel *g_io_channel_ref(GIOChannel *channel);
|
||||
void g_io_channel_unref(GIOChannel *channel);
|
||||
void g_io_channel_set_close_on_unref(GIOChannel *channel, gboolean do_close);
|
||||
gint g_io_channel_unix_get_fd(GIOChannel *channel);
|
||||
GIOStatus g_io_channel_set_flags(GIOChannel *channel, GIOFlags flags,
|
||||
GError **error);
|
||||
guint g_io_add_watch(GIOChannel *channel, GIOCondition condition,
|
||||
GIOFunc func, gpointer user_data);
|
||||
guint g_io_add_watch_full(GIOChannel *channel, gint priority,
|
||||
GIOCondition condition, GIOFunc func,
|
||||
gpointer user_data, GDestroyNotify notify);
|
||||
|
||||
GMainLoop *g_main_loop_new(GMainContext *context, gboolean is_running);
|
||||
void g_main_loop_run(GMainLoop *loop);
|
||||
void g_main_loop_quit(GMainLoop *loop);
|
||||
void g_main_loop_unref(GMainLoop *loop);
|
||||
guint g_timeout_add(guint interval, GSourceFunc function, gpointer data);
|
||||
guint g_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data);
|
||||
guint g_idle_add(GSourceFunc function, gpointer data);
|
||||
gboolean g_source_remove(guint tag);
|
||||
|
||||
/* Spawning related functions */
|
||||
|
||||
typedef enum {
|
||||
G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
|
||||
G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1,
|
||||
/* look for argv[0] in the path i.e. use execvp() */
|
||||
G_SPAWN_SEARCH_PATH = 1 << 2,
|
||||
/* Dump output to /dev/null */
|
||||
G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3,
|
||||
G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4,
|
||||
G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5,
|
||||
G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6
|
||||
} GSpawnFlags;
|
||||
|
||||
typedef void (*GSpawnChildSetupFunc) (gpointer user_data);
|
||||
|
||||
gboolean g_spawn_async(const gchar *working_directory,
|
||||
gchar **argv, gchar **envp,
|
||||
GSpawnFlags flags,
|
||||
GSpawnChildSetupFunc child_setup,
|
||||
gpointer user_data,
|
||||
GPid *child_pid,
|
||||
GError **error);
|
||||
|
||||
void g_spawn_close_pid(GPid pid);
|
||||
|
||||
typedef void (*GChildWatchFunc) (GPid pid, gint status, gpointer data);
|
||||
|
||||
guint g_child_watch_add(GPid pid, GChildWatchFunc func, gpointer user_data);
|
||||
|
||||
gboolean g_utf8_validate(const gchar *str, gssize max_len, const gchar **end);
|
||||
|
||||
#define g_main_new(is_running) g_main_loop_new(NULL, is_running);
|
||||
#define g_main_run(loop) g_main_loop_run(loop)
|
||||
#define g_main_quit(loop) g_main_loop_quit(loop)
|
||||
#define g_main_unref(loop) g_main_loop_unref(loop)
|
||||
|
||||
/* GSList declarations */
|
||||
|
||||
typedef struct _GSList {
|
||||
void *data;
|
||||
struct _GSList *next;
|
||||
} GSList;
|
||||
|
||||
typedef int (*GCompareFunc)(const void *a, const void *b);
|
||||
typedef void (*GFunc)(void *data, void *user_data);
|
||||
|
||||
GSList *g_slist_append(GSList *list, void *data);
|
||||
|
||||
GSList *g_slist_prepend(GSList *list, void *data);
|
||||
|
||||
GSList *g_slist_insert_sorted(GSList *list, void *data, GCompareFunc cmp_func);
|
||||
|
||||
GSList *g_slist_remove(GSList *list, void *data);
|
||||
|
||||
GSList *g_slist_find(GSList *list, gconstpointer data);
|
||||
|
||||
GSList *g_slist_find_custom(GSList *list, const void *data,
|
||||
GCompareFunc cmp_func);
|
||||
|
||||
GSList *g_slist_sort(GSList *list, GCompareFunc cmp_func);
|
||||
|
||||
int g_slist_length(GSList *list);
|
||||
|
||||
void g_slist_foreach(GSList *list, GFunc func, void *user_data);
|
||||
void g_slist_free(GSList *list);
|
||||
GSList *g_slist_delete_link(GSList *list, GSList *link);
|
||||
|
||||
GSList *g_slist_nth(GSList *list, guint n);
|
||||
gpointer g_slist_nth_data(GSList *list, guint n);
|
||||
int g_slist_position(GSList *list, GSList *link);
|
||||
GSList* g_slist_last(GSList *list);
|
||||
|
||||
#define g_slist_next(l) ((l)->next)
|
||||
|
||||
/* Memory allocation related */
|
||||
|
||||
gpointer g_malloc(gulong n_bytes);
|
||||
gpointer g_malloc0(gulong n_bytes);
|
||||
gpointer g_try_malloc(gulong n_bytes);
|
||||
gpointer g_try_malloc0(gulong n_bytes);
|
||||
gpointer g_realloc(gpointer mem, gulong n_bytes);
|
||||
|
||||
void g_free(gpointer mem);
|
||||
|
||||
gchar *g_strdup(const gchar *str);
|
||||
gchar* g_strdup_printf(const gchar *format, ...);
|
||||
gchar* g_strdelimit(gchar *string, const gchar *delimiters, gchar new_delim);
|
||||
gchar *g_strconcat(const gchar *string1, ...);
|
||||
gsize g_strlcat(gchar *dest, const gchar *src, gsize dest_size);
|
||||
gchar **g_strsplit(const gchar *string, const gchar *delimiter, gint max_tokens);
|
||||
gchar *g_ascii_strup(const gchar *str, gssize len);
|
||||
gboolean g_str_equal(gconstpointer v1, gconstpointer v2);
|
||||
gboolean g_str_has_prefix(const gchar *str, const gchar *prefix);
|
||||
gboolean g_str_has_suffix(const gchar *str, const gchar *suffix);
|
||||
void g_strfreev(gchar **str_array);
|
||||
|
||||
#define g_new(struct_type, n_structs) \
|
||||
((struct_type *) g_malloc (((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
|
||||
#define g_new0(struct_type, n_structs) \
|
||||
((struct_type *) g_malloc0 (((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
|
||||
#define g_try_new(struct_type, n_structs) \
|
||||
((struct_type *) g_try_malloc (((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
|
||||
#define g_try_new0(struct_type, n_structs) \
|
||||
((struct_type *) g_try_malloc0 (((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
|
||||
#define g_renew(struct_type, mem, n_structs) \
|
||||
((struct_type *) g_realloc ((mem), ((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
|
||||
|
||||
/* GKeyFile */
|
||||
|
||||
typedef enum {
|
||||
G_KEY_FILE_NONE = 0,
|
||||
G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
|
||||
G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
|
||||
} GKeyFileFlags;
|
||||
|
||||
typedef struct _GKeyFile GKeyFile;
|
||||
|
||||
GKeyFile *g_key_file_new(void);
|
||||
|
||||
void g_key_file_free(GKeyFile *key_file);
|
||||
|
||||
gboolean g_key_file_load_from_file(GKeyFile *key_file,
|
||||
const gchar *file,
|
||||
GKeyFileFlags flags,
|
||||
GError **error);
|
||||
|
||||
gchar *g_key_file_get_string(GKeyFile *key_file,
|
||||
const gchar *group_name,
|
||||
const gchar *key,
|
||||
GError **error);
|
||||
|
||||
gboolean g_key_file_get_boolean(GKeyFile *key_file,
|
||||
const gchar *group_name,
|
||||
const gchar *key,
|
||||
GError **error);
|
||||
|
||||
gint g_key_file_get_integer(GKeyFile *key_file,
|
||||
const gchar *group_name,
|
||||
const gchar *key,
|
||||
GError **error);
|
||||
|
||||
gchar **g_key_file_get_string_list(GKeyFile *key_file,
|
||||
const gchar *group_name,
|
||||
const gchar *key, gsize *length,
|
||||
GError **error);
|
||||
/* GString */
|
||||
|
||||
typedef struct {
|
||||
gchar *str;
|
||||
gsize len;
|
||||
gsize allocated_len;
|
||||
} GString;
|
||||
|
||||
GString *g_string_new(const gchar *init);
|
||||
|
||||
void g_string_append_printf(GString *string, const gchar *format, ...);
|
||||
|
||||
gchar *g_string_free(GString *string, gboolean free_segment);
|
||||
|
||||
/* GMarkup */
|
||||
|
||||
typedef enum {
|
||||
G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
|
||||
G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1
|
||||
} GMarkupParseFlags;
|
||||
|
||||
typedef struct _GMarkupParseContext GMarkupParseContext;
|
||||
typedef struct _GMarkupParser GMarkupParser;
|
||||
|
||||
struct _GMarkupParser {
|
||||
/* Called for open tags <foo bar="baz"> */
|
||||
void (*start_element) (GMarkupParseContext *context,
|
||||
const gchar *element_name,
|
||||
const gchar **attribute_names,
|
||||
const gchar **attribute_values,
|
||||
gpointer user_data,
|
||||
GError **error);
|
||||
|
||||
/* Called for close tags </foo> */
|
||||
void (*end_element) (GMarkupParseContext *context,
|
||||
const gchar *element_name,
|
||||
gpointer user_data,
|
||||
GError **error);
|
||||
|
||||
/* Called for character data */
|
||||
/* text is not nul-terminated */
|
||||
void (*text) (GMarkupParseContext *context,
|
||||
const gchar *text,
|
||||
gsize text_len,
|
||||
gpointer user_data,
|
||||
GError **error);
|
||||
|
||||
/* Called for strings that should be re-saved verbatim in this same
|
||||
* position, but are not otherwise interpretable. At the moment
|
||||
* this includes comments and processing instructions.
|
||||
*/
|
||||
/* text is not nul-terminated. */
|
||||
void (*passthrough) (GMarkupParseContext *context,
|
||||
const gchar *passthrough_text,
|
||||
gsize text_len,
|
||||
gpointer user_data,
|
||||
GError **error);
|
||||
|
||||
/* Called on error, including one set by other
|
||||
* methods in the vtable. The GError should not be freed.
|
||||
*/
|
||||
void (*error) (GMarkupParseContext *context,
|
||||
GError *error,
|
||||
gpointer user_data);
|
||||
};
|
||||
|
||||
GMarkupParseContext *g_markup_parse_context_new(const GMarkupParser *parser,
|
||||
GMarkupParseFlags flags,
|
||||
gpointer user_data,
|
||||
GDestroyNotify user_data_dnotify);
|
||||
|
||||
gboolean g_markup_parse_context_parse(GMarkupParseContext *context,
|
||||
const gchar *text, gssize text_len,
|
||||
GError **error);
|
||||
|
||||
void g_markup_parse_context_free(GMarkupParseContext *context);
|
||||
|
||||
/* GDir */
|
||||
|
||||
typedef struct _GDir GDir;
|
||||
|
||||
GDir *g_dir_open(const gchar *path, guint flags, GError **error);
|
||||
const gchar *g_dir_read_name(GDir *dir);
|
||||
void g_dir_close(GDir *dir);
|
||||
|
||||
/* Various */
|
||||
|
||||
gchar *g_build_filename(const gchar *first_element, ...);
|
||||
|
||||
#endif /* __GMAIN_H */
|
@ -1,88 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include <gmain.h>
|
||||
#include <gmodule.h>
|
||||
|
||||
struct _GModule {
|
||||
void *handle;
|
||||
gchar *file_name;
|
||||
};
|
||||
|
||||
static const char *dl_error_string = NULL;
|
||||
|
||||
GModule *g_module_open(const gchar *file_name, GModuleFlags flags)
|
||||
{
|
||||
GModule *module;
|
||||
|
||||
module = g_try_new0(GModule, 1);
|
||||
if (module == NULL) {
|
||||
dl_error_string = strerror(ENOMEM);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
module->handle = dlopen(file_name, flags);
|
||||
|
||||
if (module->handle == NULL) {
|
||||
dl_error_string = dlerror();
|
||||
g_free(module);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
module->file_name = g_strdup(file_name);
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
gboolean g_module_symbol(GModule *module, const gchar *symbol_name,
|
||||
gpointer *symbol)
|
||||
{
|
||||
void *sym;
|
||||
|
||||
dlerror();
|
||||
sym = dlsym(module->handle, symbol_name);
|
||||
dl_error_string = dlerror();
|
||||
|
||||
if (dl_error_string != NULL)
|
||||
return FALSE;
|
||||
|
||||
*symbol = sym;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean g_module_close(GModule *module)
|
||||
{
|
||||
if (dlclose(module->handle) != 0) {
|
||||
dl_error_string = dlerror();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
g_free(module->file_name);
|
||||
g_free(module);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
const gchar *g_module_error(void)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
str = dl_error_string;
|
||||
dl_error_string = NULL;
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
const gchar *g_module_name(GModule *module)
|
||||
{
|
||||
if (module == NULL)
|
||||
return NULL;
|
||||
|
||||
return module->file_name;
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
#ifndef __GMODULE_H
|
||||
#define __GMODULE_H
|
||||
|
||||
#include <gmain.h>
|
||||
|
||||
typedef struct _GModule GModule;
|
||||
|
||||
typedef enum {
|
||||
G_MODULE_BIND_LAZY = 1 << 0,
|
||||
G_MODULE_BIND_LOCAL = 1 << 1,
|
||||
G_MODULE_BIND_MASK = 0x03
|
||||
} GModuleFlags;
|
||||
|
||||
GModule *g_module_open(const gchar *file_name, GModuleFlags flags);
|
||||
gboolean g_module_symbol(GModule *module, const gchar *symbol_name,
|
||||
gpointer *symbol);
|
||||
const gchar *g_module_name(GModule *module);
|
||||
gboolean g_module_close(GModule *module);
|
||||
const gchar *g_module_error(void);
|
||||
|
||||
#endif /* __GMODULE_H */
|
Loading…
Reference in New Issue
Block a user