chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / ipc.h
1 /*
2  * ipc.h:
3  *
4  * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
5  * All rights reserved.
6  *
7  */
8
9 /*
10  * $Id$
11  */
12
13 /*
14  * $Log$
15  * Revision 1.5  2008/02/23 11:48:37  james
16  * *** empty log message ***
17  *
18  * Revision 1.4  2008/02/22 17:07:00  james
19  * *** empty log message ***
20  *
21  * Revision 1.3  2008/02/15 23:52:12  james
22  * *** empty log message ***
23  *
24  * Revision 1.2  2008/02/15 03:32:07  james
25  * *** empty log message ***
26  *
27  * Revision 1.1  2008/02/14 12:17:42  james
28  * *** empty log message ***
29  *
30  */
31
32 #ifndef __IPC_H__
33 #define __IPC_H__
34
35 #define IPC_MAX_BUF 1024
36
37 #define IPC_MSG_TYPE_NOOP  0
38 #define IPC_MSG_TYPE_DEBUG 1
39 #define IPC_MSG_TYPE_VT102 2
40 #define IPC_MSG_TYPE_HISTORY 3
41 #define IPC_MSG_TYPE_KEY 4
42 #define IPC_MSG_TYPE_TERM 5
43 #define IPC_MSG_TYPE_STATUS 6
44 #define IPC_MSG_TYPE_SETBAUD 7
45 #define IPC_MSG_TYPE_SENDBREAK 8
46 #define IPC_MSG_TYPE_SETFLOW 9
47 #define IPC_MSG_TYPE_SETANSI 10
48 #define IPC_MSG_TYPE_HANGUP 11
49
50 typedef struct
51 {
52   int32_t size;
53   int32_t type;
54   uint8_t payload[0];
55 } IPC_Msg_hdr;
56
57
58 typedef struct
59 {
60   int32_t size;
61   int32_t type;
62 } IPC_Msg_noop;
63
64
65 typedef struct
66 {
67   int32_t size;
68   int32_t type;
69   char msg[0];
70 } IPC_Msg_debug;
71
72 typedef struct
73 {
74   int32_t size;
75   int32_t type;
76   History_ent history;
77 } IPC_Msg_history;
78
79 typedef struct
80 {
81   int32_t size;
82   int32_t type;
83   int32_t len;
84   VT102 vt102;
85 } IPC_Msg_VT102;
86
87
88 typedef struct
89 {
90   int32_t size;
91   int32_t type;
92   int32_t key;
93 } IPC_Msg_key;
94
95 typedef struct
96 {
97   int32_t size;
98   int32_t type;
99   int32_t len;
100   uint8_t term[0];
101 } IPC_Msg_term;
102
103
104 typedef struct
105 {
106   int32_t size;
107   int32_t type;
108   char status[0];
109 } IPC_Msg_status;
110
111 typedef struct
112 {
113   int32_t size;
114   int32_t type;
115   int32_t baud;
116 } IPC_Msg_setbaud;
117
118
119 typedef struct
120 {
121   int32_t size;
122   int32_t type;
123 } IPC_Msg_sendbreak;
124
125
126 typedef struct
127 {
128   int32_t size;
129   int32_t type;
130   int32_t flow;
131 } IPC_Msg_setflow;
132
133
134 typedef struct
135 {
136   int32_t size;
137   int32_t type;
138   int32_t ansi;
139 } IPC_Msg_setansi;
140
141
142 typedef struct
143 {
144   int32_t size;
145   int32_t type;
146 } IPC_Msg_hangup;
147
148
149
150 typedef union
151 {
152   IPC_Msg_hdr hdr;
153   IPC_Msg_noop noop;
154   IPC_Msg_debug debug;
155   IPC_Msg_history history;
156   IPC_Msg_VT102 vt102;
157   IPC_Msg_key key;
158   IPC_Msg_term term;
159   IPC_Msg_status status;
160   IPC_Msg_setbaud setbaud;
161   IPC_Msg_sendbreak sendbreak;
162   IPC_Msg_setflow setflow;
163   IPC_Msg_setansi setansi;
164   IPC_Msg_hangup hangup;
165 } IPC_Msg;
166
167
168
169 #endif /* __IPC_H__ */