2016-12-19 01:56:58 +03:00
|
|
|
/*
|
|
|
|
glib_compat.h replacement functionality for glib code used in qemu
|
|
|
|
Copyright (C) 2016 Chris Eagle cseagle at gmail dot com
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __GLIB_COMPAT_H
|
|
|
|
#define __GLIB_COMPAT_H
|
|
|
|
|
2017-01-20 16:13:21 +03:00
|
|
|
#include "unicorn/platform.h"
|
2016-12-19 01:56:58 +03:00
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <assert.h>
|
|
|
|
|
2021-10-03 17:14:44 +03:00
|
|
|
#define G_MAXUINT UINT_MAX
|
|
|
|
#define G_MAXINT INT_MAX
|
|
|
|
|
|
|
|
#include "gtestutils.h"
|
|
|
|
#include "gtypes.h"
|
|
|
|
#include "garray.h"
|
|
|
|
#include "gtree.h"
|
|
|
|
#include "ghash.h"
|
|
|
|
#include "gmem.h"
|
|
|
|
#include "gslice.h"
|
|
|
|
#include "gmessages.h"
|
|
|
|
#include "gpattern.h"
|
|
|
|
#include "grand.h"
|
|
|
|
#include "glist.h"
|
|
|
|
#include "gnode.h"
|
2016-12-19 01:56:58 +03:00
|
|
|
|
2016-12-26 13:32:02 +03:00
|
|
|
typedef gint (*GCompareDataFunc)(gconstpointer a,
|
|
|
|
gconstpointer b,
|
|
|
|
gpointer user_data);
|
2016-12-25 20:35:42 +03:00
|
|
|
typedef void (*GFunc)(gpointer data, gpointer user_data);
|
|
|
|
typedef gint (*GCompareFunc)(gconstpointer v1, gconstpointer v2);
|
2016-12-19 01:56:58 +03:00
|
|
|
|
2016-12-25 20:35:42 +03:00
|
|
|
guint g_str_hash(gconstpointer v);
|
|
|
|
gboolean g_str_equal(gconstpointer v1, gconstpointer v2);
|
|
|
|
guint g_int_hash(gconstpointer v);
|
|
|
|
|
|
|
|
gboolean g_int_equal(gconstpointer v1, gconstpointer v2);
|
2016-12-19 01:56:58 +03:00
|
|
|
|
2021-10-03 17:14:44 +03:00
|
|
|
int g_strcmp0(const char *str1, const char *str2);
|
2016-12-19 01:56:58 +03:00
|
|
|
|
|
|
|
GList *g_list_first(GList *list);
|
2016-12-25 20:35:42 +03:00
|
|
|
void g_list_foreach(GList *list, GFunc func, gpointer user_data);
|
2016-12-19 01:56:58 +03:00
|
|
|
void g_list_free(GList *list);
|
2016-12-25 20:35:42 +03:00
|
|
|
GList *g_list_insert_sorted(GList *list, gpointer data, GCompareFunc compare);
|
2016-12-19 01:56:58 +03:00
|
|
|
#define g_list_next(list) (list->next)
|
2016-12-25 20:35:42 +03:00
|
|
|
GList *g_list_prepend(GList *list, gpointer data);
|
2016-12-19 01:56:58 +03:00
|
|
|
GList *g_list_remove_link(GList *list, GList *llink);
|
2016-12-19 23:32:06 +03:00
|
|
|
GList *g_list_sort(GList *list, GCompareFunc compare);
|
2016-12-19 01:56:58 +03:00
|
|
|
|
|
|
|
typedef struct _GSList {
|
2016-12-25 20:35:42 +03:00
|
|
|
gpointer data;
|
2016-12-19 01:56:58 +03:00
|
|
|
struct _GSList *next;
|
|
|
|
} GSList;
|
|
|
|
|
2016-12-25 20:35:42 +03:00
|
|
|
GSList *g_slist_append(GSList *list, gpointer data);
|
|
|
|
void g_slist_foreach(GSList *list, GFunc func, gpointer user_data);
|
2016-12-19 01:56:58 +03:00
|
|
|
void g_slist_free(GSList *list);
|
2016-12-25 20:35:42 +03:00
|
|
|
GSList *g_slist_prepend(GSList *list, gpointer data);
|
2016-12-19 23:32:06 +03:00
|
|
|
GSList *g_slist_sort(GSList *list, GCompareFunc compare);
|
2021-10-03 17:14:44 +03:00
|
|
|
GSList *g_slist_find_custom(GSList *list, gconstpointer data, GCompareFunc func);
|
2016-12-19 01:56:58 +03:00
|
|
|
|
|
|
|
/* replacement for g_malloc dependency */
|
2016-12-25 20:35:42 +03:00
|
|
|
void g_free(gpointer ptr);
|
|
|
|
gpointer g_realloc(gpointer ptr, size_t size);
|
2021-10-03 17:14:44 +03:00
|
|
|
|
2016-12-19 01:56:58 +03:00
|
|
|
char *g_strdup(const char *str);
|
|
|
|
char *g_strdup_printf(const char *format, ...);
|
|
|
|
char *g_strdup_vprintf(const char *format, va_list ap);
|
|
|
|
char *g_strndup(const char *str, size_t n);
|
|
|
|
void g_strfreev(char **v);
|
2016-12-25 20:35:42 +03:00
|
|
|
gpointer g_memdup(gconstpointer mem, size_t byte_size);
|
|
|
|
gpointer g_new_(size_t sz, size_t n_structs);
|
|
|
|
gpointer g_new0_(size_t sz, size_t n_structs);
|
|
|
|
gpointer g_renew_(size_t sz, gpointer mem, size_t n_structs);
|
2021-10-03 17:14:44 +03:00
|
|
|
|
2016-12-26 17:36:47 +03:00
|
|
|
gchar** g_strsplit (const gchar *string,
|
|
|
|
const gchar *delimiter,
|
|
|
|
gint max_tokens);
|
2016-12-19 01:56:58 +03:00
|
|
|
|
|
|
|
#endif
|