#ifndef _GLIB_ECTOMY_H_ #define _GLIB_ECTOMY_H_ #include #include 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 float gfloat; typedef double gdouble; typedef void* gpointer; typedef const void *gconstpointer; typedef size_t gsize; typedef ssize_t gssize; #ifndef SSIZE_MAX #define SSIZE_MAX INT_MAX #endif typedef struct _GIOChannel { int fd; } GIOChannel; typedef struct _GMainContext { int dummy; } GMainContext; typedef struct _GMainLoop { int bail; } 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; #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif 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; typedef gboolean (*GIOFunc) (GIOChannel *source, GIOCondition condition, gpointer data); GIOError g_io_channel_read (GIOChannel *channel, gchar *buf, gsize count, gsize *bytes_read); void g_io_channel_close (GIOChannel *channel); GIOChannel* g_io_channel_unix_new (int fd); gint g_io_channel_unix_get_fd (GIOChannel *channel); guint g_io_add_watch (GIOChannel *channel, GIOCondition condition, GIOFunc func, gpointer user_data); void g_io_remove_watch (guint id); GMainLoop *g_main_loop_new (GMainContext *context, gboolean is_running); void g_main_loop_run (GMainLoop *loop); void g_main_loop_quit (GMainLoop *loop); #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) #endif