summaryrefslogtreecommitdiffstats
path: root/hcid/glib-ectomy.h
blob: 78cd9d8ad9f4c0fc4112a7fb97b728fc07506777 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#ifndef _GLIB_ECTOMY_H_
#define _GLIB_ECTOMY_H_

#include <stdlib.h>
#include <sys/poll.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 float   gfloat;
typedef double  gdouble;

typedef void* gpointer;
typedef const void *gconstpointer;

typedef size_t gsize;
typedef ssize_t gssize;

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);


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