1 | #ifndef __COMMONDEFS
|
---|
2 | #define __COMMONDEFS
|
---|
3 |
|
---|
4 | /* Service type definition */
|
---|
5 |
|
---|
6 | #ifndef ONCE_ONLY
|
---|
7 | #define ONCE_ONLY 0x01
|
---|
8 | #define TIMED 0x02
|
---|
9 | #define MONITORED 0x04
|
---|
10 | #define COMMAND 0x08
|
---|
11 | #define DIM_DELETE 0x10
|
---|
12 | #define MONIT_ONLY 0x20
|
---|
13 | #define UPDATE 0x40
|
---|
14 | #define TIMED_ONLY 0x80
|
---|
15 | #define MONIT_FIRST 0x100
|
---|
16 | #define MAX_TYPE_DEF 0x100
|
---|
17 | #define STAMPED 0x1000
|
---|
18 |
|
---|
19 | typedef enum { SRC_NONE, SRC_DIS, SRC_DIC, SRC_DNS, SRC_DNA, SRC_USR }SRC_TYPES;
|
---|
20 |
|
---|
21 | #ifdef __APPLE__
|
---|
22 | #ifndef unix
|
---|
23 | #define unix
|
---|
24 | #endif
|
---|
25 | #endif
|
---|
26 |
|
---|
27 | #ifdef __Lynx__
|
---|
28 | #ifndef unix
|
---|
29 | #define unix
|
---|
30 | #endif
|
---|
31 | #endif
|
---|
32 |
|
---|
33 | #ifdef unix
|
---|
34 | #ifndef __unix__
|
---|
35 | #define __unix__
|
---|
36 | #endif
|
---|
37 | #endif
|
---|
38 |
|
---|
39 | #ifdef linux
|
---|
40 | #ifndef __linux__
|
---|
41 | #define __linux__
|
---|
42 | #endif
|
---|
43 | #endif
|
---|
44 |
|
---|
45 | #ifdef WIN32
|
---|
46 | typedef __int64 longlong;
|
---|
47 | #elif defined(__linux__)
|
---|
48 | typedef long long int longlong;
|
---|
49 | #else
|
---|
50 | #include <sys/types.h>
|
---|
51 | typedef int64_t longlong;
|
---|
52 | #endif
|
---|
53 |
|
---|
54 | #endif
|
---|
55 |
|
---|
56 | #ifndef OSK
|
---|
57 | # ifdef _OSK
|
---|
58 | # define OSK
|
---|
59 | # endif
|
---|
60 | #endif
|
---|
61 |
|
---|
62 |
|
---|
63 | #ifdef __VMS
|
---|
64 | #define VMS
|
---|
65 | #endif
|
---|
66 |
|
---|
67 | #ifndef _DIM_PROTO
|
---|
68 | #ifndef OSK /* Temorary hack */
|
---|
69 | # if defined(__cplusplus) /* || (__STDC__ == 1) || defined(_ANSI_EXT) || defined(ultrix) */
|
---|
70 | # define _DIM_PROTO(func,param) func param
|
---|
71 | # else
|
---|
72 | # define _DIM_PROTO(func,param) func ()
|
---|
73 | # endif
|
---|
74 | #else
|
---|
75 | # define _DIM_PROTO(func,param) func ()
|
---|
76 | #endif
|
---|
77 | #ifdef WIN32
|
---|
78 | #ifdef DIMLIB
|
---|
79 | # define _DIM_PROTOE(func,param) __declspec(dllexport) _DIM_PROTO(func,param)
|
---|
80 | # define DllExp __declspec(dllexport)
|
---|
81 | #else
|
---|
82 | # define _DIM_PROTOE(func,param) __declspec(dllimport) _DIM_PROTO(func,param)
|
---|
83 | # define DllExp __declspec(dllimport)
|
---|
84 | #endif
|
---|
85 | #else
|
---|
86 | # define _DIM_PROTOE(func,param) _DIM_PROTO(func,param)
|
---|
87 | # define DllExp
|
---|
88 | #endif
|
---|
89 | #endif
|
---|
90 |
|
---|
91 | #if defined (hpux) || defined (__osf__) || defined(_AIX) || defined(WIN32)
|
---|
92 | #ifndef NOTHREADS
|
---|
93 | #define NOTHREADS
|
---|
94 | #endif
|
---|
95 | #endif
|
---|
96 |
|
---|
97 | #ifndef VMS
|
---|
98 | #ifndef WIN32
|
---|
99 | #ifdef NOTHREADS
|
---|
100 | #ifndef DIMLIB
|
---|
101 | #ifndef sleep
|
---|
102 | #define sleep(t) dtq_sleep(t)
|
---|
103 | #endif
|
---|
104 | #endif
|
---|
105 | #endif
|
---|
106 | #endif
|
---|
107 | #endif
|
---|
108 |
|
---|
109 | #ifdef VMS
|
---|
110 | #include <ssdef.h>
|
---|
111 | #define DISABLE_AST long int ast_enable = sys$setast(0);
|
---|
112 | #define ENABLE_AST if (ast_enable == SS$_WASSET) sys$setast(1);
|
---|
113 | #define dim_enable() sys$setast(1);
|
---|
114 | #endif
|
---|
115 |
|
---|
116 | #ifdef __unix__
|
---|
117 | #include <signal.h>
|
---|
118 | #include <unistd.h>
|
---|
119 |
|
---|
120 | #define DISABLE_AST sigset_t set, oset; sigemptyset(&set);\
|
---|
121 | sigaddset(&set,SIGIO);\
|
---|
122 | sigaddset(&set,SIGALRM);\
|
---|
123 | sigprocmask(SIG_BLOCK,&set,&oset);\
|
---|
124 | DIM_LOCK
|
---|
125 | #define ENABLE_AST DIM_UNLOCK sigprocmask(SIG_SETMASK,&oset,0);
|
---|
126 |
|
---|
127 | #ifdef VxWorks
|
---|
128 | #define DIM_LOCK taskLock();
|
---|
129 | #define DIM_UNLOCK taskUnlock();
|
---|
130 | #else
|
---|
131 |
|
---|
132 | #ifndef NOTHREADS
|
---|
133 | #include <pthread.h>
|
---|
134 |
|
---|
135 | _DIM_PROTOE( void dim_lock, () );
|
---|
136 | _DIM_PROTOE( void dim_unlock, () );
|
---|
137 | _DIM_PROTOE( void dim_wait_cond, () );
|
---|
138 | _DIM_PROTOE( void dim_signal_cond, () );
|
---|
139 |
|
---|
140 | #define DIM_LOCK dim_lock();
|
---|
141 | #define DIM_UNLOCK dim_unlock();
|
---|
142 |
|
---|
143 | #else
|
---|
144 | #define DIM_LOCK
|
---|
145 | #define DIM_UNLOCK
|
---|
146 | #endif
|
---|
147 | #endif
|
---|
148 | #endif
|
---|
149 | #ifdef OSK
|
---|
150 | #define INC_LEVEL 1
|
---|
151 | #define DEC_LEVEL (-1)
|
---|
152 | #define DISABLE_AST sigmask(INC_LEVEL);
|
---|
153 | #define ENABLE_AST sigmask(DEC_LEVEL);
|
---|
154 | #endif
|
---|
155 |
|
---|
156 |
|
---|
157 | _DIM_PROTOE( int id_get, (void *ptr, int type) );
|
---|
158 | _DIM_PROTOE( void id_free, (int id, int type) );
|
---|
159 | _DIM_PROTOE( void *id_get_ptr, (int id, int type) );
|
---|
160 |
|
---|
161 | _DIM_PROTOE( unsigned int dtq_sleep, (unsigned int secs) );
|
---|
162 | _DIM_PROTOE( void dtq_start_timer, (int secs, void(*rout)(void*), void *tag) );
|
---|
163 | _DIM_PROTOE( int dtq_stop_timer, (void *tag) );
|
---|
164 | _DIM_PROTOE( void dim_init, () );
|
---|
165 | _DIM_PROTOE( void dim_no_threads, () );
|
---|
166 | _DIM_PROTOE( void dna_set_test_write, (int conn_id, int time) );
|
---|
167 | _DIM_PROTOE( void dna_rem_test_write, (int conn_id) );
|
---|
168 | _DIM_PROTOE( int dim_set_dns_node, (char *node) );
|
---|
169 | _DIM_PROTOE( int dim_get_dns_node, (char *node) );
|
---|
170 | _DIM_PROTOE( int dim_set_dns_port, (int port) );
|
---|
171 | _DIM_PROTOE( int dim_get_dns_port, () );
|
---|
172 | _DIM_PROTOE( void dic_set_debug_on, () );
|
---|
173 | _DIM_PROTOE( void dic_set_debug_off, () );
|
---|
174 | _DIM_PROTOE( void dim_print_msg, (char *msg, int severity) );
|
---|
175 | _DIM_PROTOE( void dim_print_date_time, () );
|
---|
176 | _DIM_PROTOE( void dim_set_write_timeout, (int secs) );
|
---|
177 | _DIM_PROTOE( int dim_get_write_timeout, () );
|
---|
178 | _DIM_PROTOE( void dim_usleep, (unsigned int t) );
|
---|
179 | _DIM_PROTOE( int dim_wait, (void) );
|
---|
180 | _DIM_PROTOE( int dim_get_priority, (int dim_thread, int prio) );
|
---|
181 | _DIM_PROTOE( int dim_set_priority, (int dim_thread, int *prio) );
|
---|
182 | _DIM_PROTOE( int dim_set_scheduler_class, (int sched_class) );
|
---|
183 | _DIM_PROTOE( int dim_get_scheduler_class, (int *sched_class) );
|
---|
184 | _DIM_PROTOE( long dim_start_thread, (void(*rout)(void*), void *tag) );
|
---|
185 | _DIM_PROTOE( int dic_set_dns_node, (char *node) );
|
---|
186 | _DIM_PROTOE( int dic_get_dns_node, (char *node) );
|
---|
187 | _DIM_PROTOE( int dic_set_dns_port, (int port) );
|
---|
188 | _DIM_PROTOE( int dic_get_dns_port, () );
|
---|
189 | _DIM_PROTOE( int dis_set_dns_node, (char *node) );
|
---|
190 | _DIM_PROTOE( int dis_get_dns_node, (char *node) );
|
---|
191 | _DIM_PROTOE( int dis_set_dns_port, (int port) );
|
---|
192 | _DIM_PROTOE( int dis_get_dns_port, () );
|
---|
193 | _DIM_PROTOE( void dim_stop, () );
|
---|
194 | _DIM_PROTOE( int dim_stop_thread, (long tid) );
|
---|
195 | _DIM_PROTOE( long dis_add_dns, (char *node, int port) );
|
---|
196 | _DIM_PROTOE( long dic_add_dns, (char *node, int port) );
|
---|
197 | _DIM_PROTOE( int dim_get_env_var, (char *env_var, char *value, int value_size) );
|
---|
198 | _DIM_PROTOE( int dim_set_write_buffer_size, (int bytes) );
|
---|
199 | _DIM_PROTOE( int dim_get_write_buffer_size, () );
|
---|
200 | _DIM_PROTOE( int dim_set_read_buffer_size, (int bytes) );
|
---|
201 | _DIM_PROTOE( int dim_get_read_buffer_size, () );
|
---|
202 | _DIM_PROTOE( void dis_set_debug_on, () );
|
---|
203 | _DIM_PROTOE( void dis_set_debug_off, () );
|
---|
204 |
|
---|
205 | #ifdef WIN32
|
---|
206 | #define getpid _getpid
|
---|
207 | _DIM_PROTOE( void dim_pause, () );
|
---|
208 | _DIM_PROTOE( void dim_wake_up, () );
|
---|
209 | _DIM_PROTOE( void dim_lock, () );
|
---|
210 | _DIM_PROTOE( void dim_unlock, () );
|
---|
211 | _DIM_PROTOE( void dim_sleep, (unsigned int t) );
|
---|
212 | _DIM_PROTOE( void dim_win_usleep, (unsigned int t) );
|
---|
213 | #define sleep(t) dim_sleep(t);
|
---|
214 | #define usleep(t) dim_win_usleep(t);
|
---|
215 | #define pause() dim_pause();
|
---|
216 | #define wake_up() dim_wake_up();
|
---|
217 | #define DIM_LOCK dim_lock();
|
---|
218 | #define DIM_UNLOCK dim_unlock();
|
---|
219 | #define DISABLE_AST DIM_LOCK
|
---|
220 | #define ENABLE_AST DIM_UNLOCK
|
---|
221 | #endif
|
---|
222 |
|
---|
223 | _DIM_PROTOE( void dim_print_date_time_millis, () );
|
---|
224 |
|
---|
225 | /* ctime usage */
|
---|
226 | #if defined (solaris) || (defined (LYNXOS) && !defined (__Lynx__) )
|
---|
227 | #define my_ctime(t,str,size) ctime_r(t,str,size)
|
---|
228 | #else
|
---|
229 | #if defined (__linux__) || defined (__Lynx__)
|
---|
230 | #define my_ctime(t,str,size) ctime_r(t,str)
|
---|
231 | #else
|
---|
232 | #define my_ctime(t,str,size) strcpy(str,(const char *)ctime(t))
|
---|
233 | #endif
|
---|
234 | #endif
|
---|
235 |
|
---|
236 | /* DIM Error Severities*/
|
---|
237 | typedef enum { DIM_INFO, DIM_WARNING, DIM_ERROR, DIM_FATAL }DIM_SEVERITIES;
|
---|
238 | /* DIM Error codes */
|
---|
239 | #define DIMDNSUNDEF 0x1 /* DIM_DNS_NODE undefined FATAL */
|
---|
240 | #define DIMDNSREFUS 0x2 /* DIM_DNS refuses connection FATAL */
|
---|
241 | #define DIMDNSDUPLC 0x3 /* Service already exists in DNS FATAL */
|
---|
242 | #define DIMDNSEXIT 0x4 /* DNS requests server to EXIT FATAL */
|
---|
243 | #define DIMDNSTMOUT 0x5 /* Server failed sending Watchdog WARNING */
|
---|
244 |
|
---|
245 | #define DIMSVCDUPLC 0x10 /* Service already exists in Server ERROR */
|
---|
246 | #define DIMSVCFORMT 0x11 /* Bat format string for service ERROR */
|
---|
247 | #define DIMSVCINVAL 0x12 /* Service ID invalid ERROR */
|
---|
248 | #define DIMSVCTOOLG 0x13 /* Service name too long ERROR */
|
---|
249 |
|
---|
250 | #define DIMTCPRDERR 0x20 /* TCP/IP read error ERROR */
|
---|
251 | #define DIMTCPWRRTY 0x21 /* TCP/IP write error - Retrying WARNING */
|
---|
252 | #define DIMTCPWRTMO 0x22 /* TCP/IP write error - Disconnect ERROR */
|
---|
253 | #define DIMTCPLNERR 0x23 /* TCP/IP listen error ERROR */
|
---|
254 | #define DIMTCPOPERR 0x24 /* TCP/IP open server error ERROR */
|
---|
255 | #define DIMTCPCNERR 0x25 /* TCP/IP connection error ERROR */
|
---|
256 | #define DIMTCPCNEST 0x26 /* TCP/IP connection established INFO */
|
---|
257 |
|
---|
258 | #define DIMDNSCNERR 0x30 /* Connection to DNS failed ERROR */
|
---|
259 | #define DIMDNSCNEST 0x31 /* Connection to DNS established INFO */
|
---|
260 |
|
---|
261 | #endif
|
---|
262 |
|
---|
263 |
|
---|
264 |
|
---|
265 |
|
---|
266 |
|
---|
267 |
|
---|
268 |
|
---|