101 lines
3 KiB
C
101 lines
3 KiB
C
#ifndef GLIB_H
|
|
#define GLIB_H
|
|
|
|
#include <stdlib.h>
|
|
#if defined(_WIN32)
|
|
#include <winsock2.h>
|
|
#endif
|
|
|
|
typedef char gchar;
|
|
typedef unsigned int guint;
|
|
typedef unsigned short gushort;
|
|
typedef void* gpointer;
|
|
typedef unsigned long gsize;
|
|
typedef const void *gconstpointer;
|
|
typedef int gint;
|
|
typedef gint gboolean;
|
|
typedef struct _GSource {int dummy;} GSource;
|
|
typedef struct GPollFD {
|
|
#if defined(_WIN32)
|
|
SOCKET fd;
|
|
#else
|
|
gint fd;
|
|
#endif
|
|
gushort events;
|
|
gushort revents;
|
|
} GPollFD;
|
|
typedef struct _GArray {
|
|
gchar *data;
|
|
guint len;
|
|
} GArray;
|
|
|
|
gpointer g_malloc (gsize n_bytes);
|
|
gpointer g_malloc0 (gsize n_bytes);
|
|
gpointer g_realloc (gpointer mem, gsize n_bytes);
|
|
void g_free (gpointer mem);
|
|
gchar *g_strdup (const gchar *str);
|
|
|
|
typedef enum {
|
|
/* Flags */
|
|
G_LOG_FLAG_RECURSION = 1 << 0,
|
|
G_LOG_FLAG_FATAL = 1 << 1,
|
|
/* Levels */
|
|
G_LOG_LEVEL_ERROR = 1 << 2,
|
|
G_LOG_LEVEL_CRITICAL = 1 << 3,
|
|
G_LOG_LEVEL_WARNING = 1 << 4,
|
|
G_LOG_LEVEL_MESSAGE = 1 << 5,
|
|
G_LOG_LEVEL_INFO = 1 << 6,
|
|
G_LOG_LEVEL_DEBUG = 1 << 7,
|
|
G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
|
|
} GLogLevelFlags;
|
|
|
|
#define GLIB_SYSDEF_POLLIN =1
|
|
#define GLIB_SYSDEF_POLLOUT =4
|
|
#define GLIB_SYSDEF_POLLPRI =2
|
|
#define GLIB_SYSDEF_POLLHUP =16
|
|
#define GLIB_SYSDEF_POLLERR =8
|
|
#define GLIB_SYSDEF_POLLNVAL =32
|
|
|
|
typedef enum {
|
|
G_IO_IN GLIB_SYSDEF_POLLIN, /* There is data to read. */
|
|
G_IO_OUT GLIB_SYSDEF_POLLOUT, /* Data can be written (without blocking). */
|
|
G_IO_PRI GLIB_SYSDEF_POLLPRI, /* There is urgent data to read. */
|
|
G_IO_ERR GLIB_SYSDEF_POLLERR, /* Error condition. */
|
|
G_IO_HUP GLIB_SYSDEF_POLLHUP, /* Hung up (the connection has been broken, usually for pipes and sockets). */
|
|
G_IO_NVAL GLIB_SYSDEF_POLLNVAL /* Invalid request. The file descriptor is not open. */
|
|
} GIOCondition;
|
|
void g_log (const gchar *log_domain, GLogLevelFlags log_level, const gchar *format, ...);
|
|
#if !defined(G_LOG_DOMAIN)
|
|
#define G_LOG_DOMAIN ((gchar *)NULL)
|
|
#endif
|
|
#define g_warning(...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, __VA_ARGS__)
|
|
|
|
#define g_new(struct_type, n_structs) g_malloc (sizeof(struct_type) * n_structs)
|
|
|
|
|
|
#define g_array_append_val(array, data) g_array_append_vals (array, &data, 1)
|
|
#define g_array_new(zero_terminated, clear, element_size) g_array_sized_new(zero_terminated, clear, element_size, 0)
|
|
|
|
GArray *
|
|
g_array_sized_new (gboolean zero_terminated,
|
|
gboolean clear,
|
|
guint element_size,
|
|
guint reserved_size);
|
|
gchar *
|
|
g_array_free (GArray *array,
|
|
gboolean free_segment);
|
|
|
|
#define g_array_index(array, type, index) (((type *)(void *)((array)->data)))[index]
|
|
|
|
GArray *
|
|
g_array_set_size (GArray *array,
|
|
guint length);
|
|
GArray *
|
|
g_array_append_vals (GArray *array,
|
|
gconstpointer data,
|
|
guint len);
|
|
guint
|
|
g_array_get_element_size (GArray *array);
|
|
|
|
|
|
#endif
|