initial version of new C++ client library; nxpush converted to new library
[public/netxms.git] / include / nxcldefs.h
CommitLineData
bf6fb6c3
VK
1/*
2** NetXMS - Network Management System
3** Common defines for client library and server
4** Copyright (C) 2003-2014 Victor Kirhenshtein
5**
6** This program is free software; you can redistribute it and/or modify
7** it under the terms of the GNU Lesser General Public License as published by
8** the Free Software Foundation; either version 3 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU Lesser General Public License
17** along with this program; if not, write to the Free Software
18** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19**
20** File: nxcldefs.h
21**
22**/
23
24#ifndef _nxcldefs_h_
25#define _nxcldefs_h_
26
27#include <nxlog.h>
28
29/**
30 * Some constants
31 */
32#define MAX_COMMUNITY_LENGTH 128
33#define MAX_OID_LENGTH 1024
34#define MAX_EVENT_MSG_LENGTH 2000
35#define MAX_EVENT_NAME 64
36#define MAX_USERTAG_LENGTH 64
37#define MAX_SESSION_NAME 256
38#define MAX_USER_NAME 64
39#define MAX_USER_FULLNAME 128
40#define MAX_USER_DESCR 256
41#define MAX_ITEM_NAME 1024
42#define MAX_STRING_VALUE 256
43#define MAX_VARIABLE_NAME 256
44#define MAX_AGENT_VERSION_LEN 64
45#define MAX_PLATFORM_NAME_LEN 64
46#define MAX_PACKAGE_NAME_LEN 64
47#define GROUP_EVERYONE ((UINT32)0x80000000)
48#define INVALID_UID ((UINT32)0xFFFFFFFF)
49#define OBJECT_STATUS_COUNT 9
50#define MAX_RCPT_ADDR_LEN 256
51#define MAX_EMAIL_SUBJECT_LEN 256
52#define MAC_ADDR_LENGTH 6
53#define CURRENT_USER ((UINT32)0xFFFFFFFF)
54#define MAX_DCI_DATA_RECORDS 200000
55#define MAX_POLICY_CONFIG_NAME 64
56
57/**
58 * NetXMS agent authentication methods
59 */
60#define AUTH_NONE 0
61#define AUTH_PLAINTEXT 1
62#define AUTH_MD5_HASH 2
63#define AUTH_SHA1_HASH 3
64
65/**
66 * Client-server authentication types
67 */
68#define NETXMS_AUTH_TYPE_PASSWORD 0
69#define NETXMS_AUTH_TYPE_CERTIFICATE 1
70#define NETXMS_AUTH_TYPE_SSO_TICKET 2
71
72/**
73 * Client type
74 */
75#define CLIENT_TYPE_DESKTOP 0
76#define CLIENT_TYPE_WEB 1
77#define CLIENT_TYPE_MOBILE 2
78#define CLIENT_TYPE_TABLET 3
79#define CLIENT_TYPE_APPLICATION 4
80
81/**
82 * Forced poll types
83 */
84#define POLL_STATUS 1
85#define POLL_CONFIGURATION 2
86#define POLL_INTERFACE_NAMES 3
87#define POLL_TOPOLOGY 4
88
89/**
90 * Object types
91 */
92#define OBJECT_GENERIC 0
93#define OBJECT_SUBNET 1
94#define OBJECT_NODE 2
95#define OBJECT_INTERFACE 3
96#define OBJECT_NETWORK 4
97#define OBJECT_CONTAINER 5
98#define OBJECT_ZONE 6
99#define OBJECT_SERVICEROOT 7
100#define OBJECT_TEMPLATE 8
101#define OBJECT_TEMPLATEGROUP 9
102#define OBJECT_TEMPLATEROOT 10
103#define OBJECT_NETWORKSERVICE 11
104#define OBJECT_VPNCONNECTOR 12
105#define OBJECT_CONDITION 13
106#define OBJECT_CLUSTER 14
107#define OBJECT_POLICYGROUP 15
108#define OBJECT_POLICYROOT 16
109#define OBJECT_AGENTPOLICY 17
110#define OBJECT_AGENTPOLICY_CONFIG 18
111#define OBJECT_NETWORKMAPROOT 19
112#define OBJECT_NETWORKMAPGROUP 20
113#define OBJECT_NETWORKMAP 21
114#define OBJECT_DASHBOARDROOT 22
115#define OBJECT_DASHBOARD 23
116#define OBJECT_BUSINESSSERVICEROOT 27
117#define OBJECT_BUSINESSSERVICE 28
118#define OBJECT_NODELINK 29
119#define OBJECT_SLMCHECK 30
120#define OBJECT_MOBILEDEVICE 31
121#define OBJECT_RACK 32
122#define OBJECT_ACCESSPOINT 33
123
124/** Base value for custom object classes */
125#define OBJECT_CUSTOM 10000
126
127/**
128 * Object's status
129 */
130#define STATUS_NORMAL 0
131#define STATUS_WARNING 1
132#define STATUS_MINOR 2
133#define STATUS_MAJOR 3
134#define STATUS_CRITICAL 4
135#define STATUS_UNKNOWN 5
136#define STATUS_UNMANAGED 6
137#define STATUS_DISABLED 7
138#define STATUS_TESTING 8
139
140/**
141 * Event and alarm severity
142 */
143#define SEVERITY_NORMAL 0
144#define SEVERITY_WARNING 1
145#define SEVERITY_MINOR 2
146#define SEVERITY_MAJOR 3
147#define SEVERITY_CRITICAL 4
148#define SEVERITY_FROM_EVENT 5
149#define SEVERITY_TERMINATE 6
150#define SEVERITY_RESOLVE 7
151
152/**
153 * Alarm states
154 */
155#define ALARM_STATE_OUTSTANDING 0x00
156#define ALARM_STATE_ACKNOWLEDGED 0x01
157#define ALARM_STATE_RESOLVED 0x02
158#define ALARM_STATE_TERMINATED 0x03
159#define ALARM_STATE_MASK 0x0F /* mask for selecting alarm state */
160#define ALARM_STATE_STICKY 0x10 /* bit flag indicating sticky state */
161
162/**
163 * Alarm state in help desk system
164 */
165#define ALARM_HELPDESK_IGNORED 0
166#define ALARM_HELPDESK_OPEN 1
167#define ALARM_HELPDESK_CLOSED 2
168
169/**
170 * Node flags
171 */
172#define NF_SYSTEM_FLAGS 0x003FFF7F
173#define NF_USER_FLAGS 0xFFC00080
174
175#define NF_IS_SNMP 0x00000001
176#define NF_IS_NATIVE_AGENT 0x00000002
177#define NF_IS_BRIDGE 0x00000004
178#define NF_IS_ROUTER 0x00000008
179#define NF_IS_LOCAL_MGMT 0x00000010
180#define NF_IS_PRINTER 0x00000020
181#define NF_IS_OSPF 0x00000040
182#define NF_REMOTE_AGENT 0x00000080
183#define NF_IS_CPSNMP 0x00000100 /* CheckPoint SNMP agent on port 260 */
184#define NF_IS_CDP 0x00000200
185#define NF_IS_NDP 0x00000400 /* Supports Nortel (Synoptics/Bay Networks) topology discovery */
186#define NF_IS_SONMP 0x00000400 /* SONMP is an old name for NDP */
187#define NF_IS_LLDP 0x00000800 /* Supports Link Layer Discovery Protocol */
188#define NF_IS_VRRP 0x00001000 /* VRRP support */
189#define NF_HAS_VLANS 0x00002000 /* VLAN information available */
190#define NF_IS_8021X 0x00004000 /* 802.1x support enabled on node */
191#define NF_IS_STP 0x00008000 /* Spanning Tree (IEEE 802.1d) enabled on node */
192#define NF_HAS_ENTITY_MIB 0x00010000 /* Supports ENTITY-MIB */
193#define NF_HAS_IFXTABLE 0x00020000 /* Supports ifXTable */
194#define NF_HAS_AGENT_IFXCOUNTERS 0x00040000 /* Agent supports 64-bit interface counters */
195#define NF_HAS_WINPDH 0x00080000 /* Node supports Windows PDH parameters */
196#define NF_IS_WIFI_CONTROLLER 0x00100000 /* Node is wireless network controller */
197#define NF_IS_SMCLP 0x00200000 /* Node supports SMCLP protocol */
198#define NF_DISABLE_DISCOVERY_POLL 0x00400000
199#define NF_DISABLE_TOPOLOGY_POLL 0x00800000
200#define NF_DISABLE_SNMP 0x01000000
201#define NF_DISABLE_NXCP 0x02000000
202#define NF_DISABLE_ICMP 0x04000000
203#define NF_FORCE_ENCRYPTION 0x08000000
204#define NF_DISABLE_STATUS_POLL 0x10000000
205#define NF_DISABLE_CONF_POLL 0x20000000
206#define NF_DISABLE_ROUTE_POLL 0x40000000
207#define NF_DISABLE_DATA_COLLECT 0x80000000
208
209/**
210 * Template flags
211 */
212#define TF_AUTO_APPLY 0x00000001
213#define TF_AUTO_REMOVE 0x00000002
214
215/**
216 * Container flags
217 */
218#define CF_AUTO_BIND 0x00000001
219#define CF_AUTO_UNBIND 0x00000002
220
221/**
222 * Interface flags
223 */
224#define IF_SYNTHETIC_MASK 0x00000001
225#define IF_PHYSICAL_PORT 0x00000002
226#define IF_EXCLUDE_FROM_TOPOLOGY 0x00000004
227#define IF_LOOPBACK 0x00000008
228#define IF_CREATED_MANUALLY 0x00000010
229#define IF_PEER_REFLECTION 0x00000020 /* topology information obtained by reflection */
230#define IF_EXPECTED_STATE_MASK 0x30000000 /* 2-bit field holding expected interface state */
231#define IF_USER_FLAGS_MASK (IF_EXCLUDE_FROM_TOPOLOGY) /* flags that can be changed by user */
232
233/**
234 * Expected interface states
235 */
236#define IF_EXPECTED_STATE_UP 0
237#define IF_EXPECTED_STATE_DOWN 1
238#define IF_EXPECTED_STATE_IGNORE 2
239
240/**
241 * Interface administrative states
242 */
243#define IF_ADMIN_STATE_UNKNOWN 0
244#define IF_ADMIN_STATE_UP 1
245#define IF_ADMIN_STATE_DOWN 2
246#define IF_ADMIN_STATE_TESTING 3
247
248/**
249 * Interface operational states
250 */
251#define IF_OPER_STATE_UNKNOWN 0
252#define IF_OPER_STATE_UP 1
253#define IF_OPER_STATE_DOWN 2
254#define IF_OPER_STATE_TESTING 3
255
256/**
257 * Node ifXTable usage mode
258 */
259#define IFXTABLE_DEFAULT 0
260#define IFXTABLE_ENABLED 1
261#define IFXTABLE_DISABLED 2
262
263/**
264 * Status calculation and propagation algorithms
265 */
266#define SA_CALCULATE_DEFAULT 0
267#define SA_CALCULATE_MOST_CRITICAL 1
268#define SA_CALCULATE_SINGLE_THRESHOLD 2
269#define SA_CALCULATE_MULTIPLE_THRESHOLDS 3
270
271#define SA_PROPAGATE_DEFAULT 0
272#define SA_PROPAGATE_UNCHANGED 1
273#define SA_PROPAGATE_FIXED 2
274#define SA_PROPAGATE_RELATIVE 3
275#define SA_PROPAGATE_TRANSLATED 4
276
277/**
278 * Network map types
279 */
280#define MAP_TYPE_CUSTOM 0
281#define MAP_TYPE_LAYER2_TOPOLOGY 1
282#define MAP_TYPE_IP_TOPOLOGY 2
283
284/**
285 * Components that can be locked by management pack installer
286 */
287#define NXMP_LC_EVENTDB 0
288#define NXMP_LC_EPP 1
289#define NXMP_LC_TRAPCFG 2
290
291/**
292 * Network service types
293 */
294enum
295{
296 NETSRV_CUSTOM,
297 NETSRV_SSH,
298 NETSRV_POP3,
299 NETSRV_SMTP,
300 NETSRV_FTP,
301 NETSRV_HTTP,
302 NETSRV_HTTPS,
303 NETSRV_TELNET
304};
305
306/**
307 * Address list types
308 */
309#define ADDR_LIST_DISCOVERY_TARGETS 1
310#define ADDR_LIST_DISCOVERY_FILTER 2
311
312/**
313 * Discovery filter flags
314 */
315#define DFF_ALLOW_AGENT 0x0001
316#define DFF_ALLOW_SNMP 0x0002
317#define DFF_ONLY_RANGE 0x0004
318
319/**
320 * Connection point types
321 */
322#define CP_TYPE_INDIRECT 0
323#define CP_TYPE_DIRECT 1
324#define CP_TYPE_WIRELESS 2
325
326/**
327 * Events
328 */
329#define NXC_EVENT_CONNECTION_BROKEN 1
330#define NXC_EVENT_NEW_ELOG_RECORD 2
331#define NXC_EVENT_USER_DB_CHANGED 3
332#define NXC_EVENT_OBJECT_CHANGED 4
333#define NXC_EVENT_NOTIFICATION 5
334#define NXC_EVENT_DEPLOYMENT_STATUS 6
335#define NXC_EVENT_NEW_SYSLOG_RECORD 7
336#define NXC_EVENT_NEW_SNMP_TRAP 8
337#define NXC_EVENT_SITUATION_UPDATE 9
338#define NXC_EVENT_JOB_CHANGE 10
339
340/**
341 * Session states (used both by client library and server)
342 */
343enum SessionState
344{
345 STATE_DISCONNECTED = 0,
346 STATE_CONNECTING = 1,
347 STATE_CONNECTED = 2,
348 STATE_AUTHENTICATED = 3
349};
350
351/**
352 * Notification codes
353 */
354#define NX_NOTIFY_SHUTDOWN 1
355#define NX_NOTIFY_EVENTDB_CHANGED 2
356#define NX_NOTIFY_ALARM_DELETED 3
357#define NX_NOTIFY_NEW_ALARM 4
358#define NX_NOTIFY_ALARM_CHANGED 5
359#define NX_NOTIFY_ACTION_CREATED 6
360#define NX_NOTIFY_ACTION_MODIFIED 7
361#define NX_NOTIFY_ACTION_DELETED 8
362#define NX_NOTIFY_OBJTOOLS_CHANGED 9
363#define NX_NOTIFY_DBCONN_STATUS 10
364#define NX_NOTIFY_ALARM_TERMINATED 11
365#define NX_NOTIFY_GRAPHS_CHANGED 12
366#define NX_NOTIFY_ETMPL_CHANGED 13
367#define NX_NOTIFY_ETMPL_DELETED 14
368#define NX_NOTIFY_OBJTOOL_DELETED 15
369#define NX_NOTIFY_TRAPCFG_CREATED 16
370#define NX_NOTIFY_TRAPCFG_MODIFIED 17
371#define NX_NOTIFY_TRAPCFG_DELETED 18
372#define NX_NOTIFY_MAPTBL_CHANGED 19
373#define NX_NOTIFY_MAPTBL_DELETED 20
374#define NX_NOTIFY_DCISUMTBL_CHANGED 21
375#define NX_NOTIFY_DCISUMTBL_DELETED 22
376#define NX_NOTIFY_CERTIFICATE_CHANGED 23
377#define NX_NOTIFY_ALARM_STATUS_FLOW_CHANGED 24
378#define NX_NOTIFY_FILE_LIST_CHANGED 25
379#define NX_NOTIFY_FILE_MONITORING_FAILED 26
380#define NX_NOTIFY_SESSION_KILLED 27
381
382/**
383 * Request completion codes
384 */
385#define RCC_SUCCESS ((UINT32)0)
386#define RCC_COMPONENT_LOCKED ((UINT32)1)
387#define RCC_ACCESS_DENIED ((UINT32)2)
388#define RCC_INVALID_REQUEST ((UINT32)3)
389#define RCC_TIMEOUT ((UINT32)4)
390#define RCC_OUT_OF_STATE_REQUEST ((UINT32)5)
391#define RCC_DB_FAILURE ((UINT32)6)
392#define RCC_INVALID_OBJECT_ID ((UINT32)7)
393#define RCC_ALREADY_EXIST ((UINT32)8)
394#define RCC_COMM_FAILURE ((UINT32)9)
395#define RCC_SYSTEM_FAILURE ((UINT32)10)
396#define RCC_INVALID_USER_ID ((UINT32)11)
397#define RCC_INVALID_ARGUMENT ((UINT32)12)
398#define RCC_DUPLICATE_DCI ((UINT32)13)
399#define RCC_INVALID_DCI_ID ((UINT32)14)
400#define RCC_OUT_OF_MEMORY ((UINT32)15)
401#define RCC_IO_ERROR ((UINT32)16)
402#define RCC_INCOMPATIBLE_OPERATION ((UINT32)17)
403#define RCC_OBJECT_CREATION_FAILED ((UINT32)18)
404#define RCC_OBJECT_LOOP ((UINT32)19)
405#define RCC_INVALID_OBJECT_NAME ((UINT32)20)
406#define RCC_INVALID_ALARM_ID ((UINT32)21)
407#define RCC_INVALID_ACTION_ID ((UINT32)22)
408#define RCC_OPERATION_IN_PROGRESS ((UINT32)23)
409#define RCC_DCI_COPY_ERRORS ((UINT32)24)
410#define RCC_INVALID_EVENT_CODE ((UINT32)25)
411#define RCC_NO_WOL_INTERFACES ((UINT32)26)
412#define RCC_NO_MAC_ADDRESS ((UINT32)27)
413#define RCC_NOT_IMPLEMENTED ((UINT32)28)
414#define RCC_INVALID_TRAP_ID ((UINT32)29)
415#define RCC_DCI_NOT_SUPPORTED ((UINT32)30)
416#define RCC_VERSION_MISMATCH ((UINT32)31)
417#define RCC_NPI_PARSE_ERROR ((UINT32)32)
418#define RCC_DUPLICATE_PACKAGE ((UINT32)33)
419#define RCC_PACKAGE_FILE_EXIST ((UINT32)34)
420#define RCC_RESOURCE_BUSY ((UINT32)35)
421#define RCC_INVALID_PACKAGE_ID ((UINT32)36)
422#define RCC_INVALID_IP_ADDR ((UINT32)37)
423#define RCC_ACTION_IN_USE ((UINT32)38)
424#define RCC_VARIABLE_NOT_FOUND ((UINT32)39)
425#define RCC_BAD_PROTOCOL ((UINT32)40)
426#define RCC_ADDRESS_IN_USE ((UINT32)41)
427#define RCC_NO_CIPHERS ((UINT32)42)
428#define RCC_INVALID_PUBLIC_KEY ((UINT32)43)
429#define RCC_INVALID_SESSION_KEY ((UINT32)44)
430#define RCC_NO_ENCRYPTION_SUPPORT ((UINT32)45)
431#define RCC_INTERNAL_ERROR ((UINT32)46)
432#define RCC_EXEC_FAILED ((UINT32)47)
433#define RCC_INVALID_TOOL_ID ((UINT32)48)
434#define RCC_SNMP_ERROR ((UINT32)49)
435#define RCC_BAD_REGEXP ((UINT32)50)
436#define RCC_UNKNOWN_PARAMETER ((UINT32)51)
437#define RCC_FILE_IO_ERROR ((UINT32)52)
438#define RCC_CORRUPTED_MIB_FILE ((UINT32)53)
439#define RCC_TRANSFER_IN_PROGRESS ((UINT32)54)
440#define RCC_INVALID_JOB_ID ((UINT32)55)
441#define RCC_INVALID_SCRIPT_ID ((UINT32)56)
442#define RCC_INVALID_SCRIPT_NAME ((UINT32)57)
443#define RCC_UNKNOWN_MAP_NAME ((UINT32)58)
444#define RCC_INVALID_MAP_ID ((UINT32)59)
445#define RCC_ACCOUNT_DISABLED ((UINT32)60)
446#define RCC_NO_GRACE_LOGINS ((UINT32)61)
447#define RCC_CONNECTION_BROKEN ((UINT32)62)
448#define RCC_INVALID_CONFIG_ID ((UINT32)63)
449#define RCC_DB_CONNECTION_LOST ((UINT32)64)
450#define RCC_ALARM_OPEN_IN_HELPDESK ((UINT32)65)
451#define RCC_ALARM_NOT_OUTSTANDING ((UINT32)66)
452#define RCC_NOT_PUSH_DCI ((UINT32)67)
453#define RCC_CONFIG_PARSE_ERROR ((UINT32)68)
454#define RCC_CONFIG_VALIDATION_ERROR ((UINT32)69)
455#define RCC_INVALID_GRAPH_ID ((UINT32)70)
456#define RCC_LOCAL_CRYPTO_ERROR ((UINT32)71)
457#define RCC_UNSUPPORTED_AUTH_TYPE ((UINT32)72)
458#define RCC_BAD_CERTIFICATE ((UINT32)73)
459#define RCC_INVALID_CERT_ID ((UINT32)74)
460#define RCC_SNMP_FAILURE ((UINT32)75)
461#define RCC_NO_L2_TOPOLOGY_SUPPORT ((UINT32)76)
462#define RCC_INVALID_SITUATION_ID ((UINT32)77)
463#define RCC_INSTANCE_NOT_FOUND ((UINT32)78)
464#define RCC_INVALID_EVENT_ID ((UINT32)79)
465#define RCC_AGENT_ERROR ((UINT32)80)
466#define RCC_UNKNOWN_VARIABLE ((UINT32)81)
467#define RCC_RESOURCE_NOT_AVAILABLE ((UINT32)82)
468#define RCC_JOB_CANCEL_FAILED ((UINT32)83)
469#define RCC_INVALID_POLICY_ID ((UINT32)84)
470#define RCC_UNKNOWN_LOG_NAME ((UINT32)85)
471#define RCC_INVALID_LOG_HANDLE ((UINT32)86)
472#define RCC_WEAK_PASSWORD ((UINT32)87)
473#define RCC_REUSED_PASSWORD ((UINT32)88)
474#define RCC_INVALID_SESSION_HANDLE ((UINT32)89)
475#define RCC_CLUSTER_MEMBER_ALREADY ((UINT32)90)
476#define RCC_JOB_HOLD_FAILED ((UINT32)91)
477#define RCC_JOB_UNHOLD_FAILED ((UINT32)92)
478#define RCC_ZONE_ID_ALREADY_IN_USE ((UINT32)93)
479#define RCC_INVALID_ZONE_ID ((UINT32)94)
480#define RCC_ZONE_NOT_EMPTY ((UINT32)95)
481#define RCC_NO_COMPONENT_DATA ((UINT32)96)
482#define RCC_INVALID_ALARM_NOTE_ID ((UINT32)97)
483#define RCC_ENCRYPTION_ERROR ((UINT32)98)
484#define RCC_INVALID_MAPPING_TABLE_ID ((UINT32)99)
485#define RCC_NO_SOFTWARE_PACKAGE_DATA ((UINT32)100)
486#define RCC_INVALID_SUMMARY_TABLE_ID ((UINT32)101)
487#define RCC_USER_LOGGED_IN ((UINT32)102)
488#define RCC_XML_PARSE_ERROR ((UINT32)103)
489#define RCC_HIGH_QUERY_COST ((UINT32)104)
490#define RCC_LICENSE_VIOLATION ((UINT32)105)
491#define RCC_CLIENT_LICENSE_EXCEEDED ((UINT32)106)
492#define RCC_OBJECT_ALREADY_EXISTS ((UINT32)107)
493#define RCC_NO_HDLINK ((UINT32)108)
494#define RCC_HDLINK_COMM_FAILURE ((UINT32)109)
495#define RCC_HDLINK_ACCESS_DENIED ((UINT32)110)
496#define RCC_HDLINK_INTERNAL_ERROR ((UINT32)111)
497#define RCC_NO_LDAP_CONNECTION ((UINT32)112)
498#define RCC_NO_ROUTING_TABLE ((UINT32)113)
499#define RCC_NO_FDB ((UINT32)114)
500#define RCC_NO_LOCATION_HISTORY ((UINT32)115)
501#define RCC_OBJECT_IN_USE ((UINT32)116)
502#define RCC_NXSL_COMPILATION_ERROR ((UINT32)117)
503#define RCC_NXSL_EXECUTION_ERROR ((UINT32)118)
504
505/**
506 * Mask bits for NXCModifyEventTemplate()
507 */
508#define EM_SEVERITY ((UINT32)0x01)
509#define EM_FLAGS ((UINT32)0x02)
510#define EM_NAME ((UINT32)0x04)
511#define EM_MESSAGE ((UINT32)0x08)
512#define EM_DESCRIPTION ((UINT32)0x10)
513#define EM_ALL ((UINT32)0x1F)
514
515/**
516 * Mask bits (flags) for NXCModifyObject()
517 */
518#define OBJ_UPDATE_NAME ((QWORD)_ULL(0x0000000001))
519#define OBJ_UPDATE_AGENT_PORT ((QWORD)_ULL(0x0000000002))
520#define OBJ_UPDATE_AGENT_AUTH ((QWORD)_ULL(0x0000000004))
521#define OBJ_UPDATE_AGENT_SECRET ((QWORD)_ULL(0x0000000008))
522#define OBJ_UPDATE_SNMP_VERSION ((QWORD)_ULL(0x0000000010))
523#define OBJ_UPDATE_SNMP_AUTH ((QWORD)_ULL(0x0000000020))
524#define OBJ_UPDATE_ACL ((QWORD)_ULL(0x0000000040))
525#define OBJ_UPDATE_GEOLOCATION ((QWORD)_ULL(0x0000000080))
526#define OBJ_UPDATE_SYNC_NETS ((QWORD)_ULL(0x0000000100))
527#define OBJ_UPDATE_SERVICE_TYPE ((QWORD)_ULL(0x0000000200))
528#define OBJ_UPDATE_IP_PROTO ((QWORD)_ULL(0x0000000400))
529#define OBJ_UPDATE_IP_PORT ((QWORD)_ULL(0x0000000800))
530#define OBJ_UPDATE_CHECK_REQUEST ((QWORD)_ULL(0x0000001000))
531#define OBJ_UPDATE_CHECK_RESPONSE ((QWORD)_ULL(0x0000002000))
532#define OBJ_UPDATE_POLLER_NODE ((QWORD)_ULL(0x0000004000))
533#define OBJ_UPDATE_IP_ADDR ((QWORD)_ULL(0x0000008000))
534#define OBJ_UPDATE_PEER_GATEWAY ((QWORD)_ULL(0x0000010000))
535#define OBJ_UPDATE_NETWORK_LIST ((QWORD)_ULL(0x0000020000))
536#define OBJ_UPDATE_STATUS_ALG ((QWORD)_ULL(0x0000040000))
537#define OBJ_UPDATE_PROXY_NODE ((QWORD)_ULL(0x0000080000))
538#define OBJ_UPDATE_FLAGS ((QWORD)_ULL(0x0000100000))
539#define OBJ_UPDATE_ACT_EVENT ((QWORD)_ULL(0x0000200000))
540#define OBJ_UPDATE_DEACT_EVENT ((QWORD)_ULL(0x0000400000))
541#define OBJ_UPDATE_SOURCE_OBJECT ((QWORD)_ULL(0x0000800000))
542#define OBJ_UPDATE_ACTIVE_STATUS ((QWORD)_ULL(0x0001000000))
543#define OBJ_UPDATE_INACTIVE_STATUS ((QWORD)_ULL(0x0002000000))
544#define OBJ_UPDATE_DCI_LIST ((QWORD)_ULL(0x0004000000))
545#define OBJ_UPDATE_SCRIPT ((QWORD)_ULL(0x0008000000))
546#define OBJ_UPDATE_CLUSTER_TYPE ((QWORD)_ULL(0x0010000000))
547#define OBJ_UPDATE_RESOURCES ((QWORD)_ULL(0x0020000000))
548#define OBJ_UPDATE_SNMP_PROXY ((QWORD)_ULL(0x0040000000))
549#define OBJ_UPDATE_REQUIRED_POLLS ((QWORD)_ULL(0x0080000000))
550#define OBJ_UPDATE_TRUSTED_NODES ((QWORD)_ULL(0x0100000000))
551#define OBJ_UPDATE_CUSTOM_ATTRS ((QWORD)_ULL(0x0200000000))
552#define OBJ_UPDATE_USE_IFXTABLE ((QWORD)_ULL(0x0400000000))
553#define OBJ_UPDATE_AUTOBIND ((QWORD)_ULL(0x1000000000))
554#define OBJ_UPDATE_SNMP_PORT ((QWORD)_ULL(0x2000000000))
555#define OBJ_UPDATE_PRIMARY_NAME ((QWORD)_ULL(0x4000000000))
556
557/**
558 * Global user rights
559 */
560#ifndef NETXMS_CUSTOM_USER_RIGHTS
561
562#define SYSTEM_ACCESS_MANAGE_USERS _ULL(0x00000001)
563#define SYSTEM_ACCESS_SERVER_CONFIG _ULL(0x00000002)
564#define SYSTEM_ACCESS_CONFIGURE_TRAPS _ULL(0x00000004)
565#define SYSTEM_ACCESS_MANAGE_SESSIONS _ULL(0x00000008)
566#define SYSTEM_ACCESS_VIEW_EVENT_DB _ULL(0x00000010)
567#define SYSTEM_ACCESS_EDIT_EVENT_DB _ULL(0x00000020)
568#define SYSTEM_ACCESS_EPP _ULL(0x00000040)
569#define SYSTEM_ACCESS_MANAGE_ACTIONS _ULL(0x00000080)
570#define SYSTEM_ACCESS_DELETE_ALARMS _ULL(0x00000100)
571#define SYSTEM_ACCESS_MANAGE_PACKAGES _ULL(0x00000200)
572#define SYSTEM_ACCESS_VIEW_EVENT_LOG _ULL(0x00000400)
573#define SYSTEM_ACCESS_MANAGE_TOOLS _ULL(0x00000800)
574#define SYSTEM_ACCESS_MANAGE_SCRIPTS _ULL(0x00001000)
575#define SYSTEM_ACCESS_VIEW_TRAP_LOG _ULL(0x00002000)
576#define SYSTEM_ACCESS_VIEW_AUDIT_LOG _ULL(0x00004000)
577#define SYSTEM_ACCESS_MANAGE_AGENT_CFG _ULL(0x00008000)
578#define SYSTEM_ACCESS_MANAGE_SITUATIONS _ULL(0x00010000)
579#define SYSTEM_ACCESS_SEND_SMS _ULL(0x00020000)
580#define SYSTEM_ACCESS_MOBILE_DEVICE_LOGIN _ULL(0x00040000)
581#define SYSTEM_ACCESS_REGISTER_AGENTS _ULL(0x00080000)
582#define SYSTEM_ACCESS_READ_FILES _ULL(0x00100000)
583#define SYSTEM_ACCESS_SERVER_CONSOLE _ULL(0x00200000)
584#define SYSTEM_ACCESS_MANAGE_FILES _ULL(0x00400000)
585#define SYSTEM_ACCESS_MANAGE_MAPPING_TBLS _ULL(0x00800000)
586#define SYSTEM_ACCESS_MANAGE_SUMMARY_TBLS _ULL(0x01000000)
587#define SYSTEM_ACCESS_REPORTING_SERVER _ULL(0x02000000)
588#define SYSTEM_ACCESS_XMPP_COMMANDS _ULL(0x04000000)
589#define SYSTEM_ACCESS_MANAGE_IMAGE_LIB _ULL(0x08000000)
590#define SYSTEM_ACCESS_UNLINK_ISSUES _ULL(0x10000000)
591#define SYSTEM_ACCESS_VIEW_SYSLOG _ULL(0x20000000)
592
593#define SYSTEM_ACCESS_FULL _ULL(0x3FFFFFFF)
594
595#endif /* NETXMS_CUSTOM_USER_RIGHTS */
596
597/**
598 * Object access rights
599 */
600#define OBJECT_ACCESS_READ 0x00000001
601#define OBJECT_ACCESS_MODIFY 0x00000002
602#define OBJECT_ACCESS_CREATE 0x00000004
603#define OBJECT_ACCESS_DELETE 0x00000008
604#define OBJECT_ACCESS_READ_ALARMS 0x00000010
605#define OBJECT_ACCESS_ACL 0x00000020
606#define OBJECT_ACCESS_UPDATE_ALARMS 0x00000040
607#define OBJECT_ACCESS_SEND_EVENTS 0x00000080
608#define OBJECT_ACCESS_CONTROL 0x00000100
609#define OBJECT_ACCESS_TERM_ALARMS 0x00000200
610#define OBJECT_ACCESS_PUSH_DATA 0x00000400
611#define OBJECT_ACCESS_CREATE_ISSUE 0x00000800
612#define OBJECT_ACCESS_DOWNLOAD 0x00001000
613#define OBJECT_ACCESS_UPLOAD 0x00002000
614#define OBJECT_ACCESS_MANAGE_FILES 0x00004000
615
616/**
617 * Object sync flags
618 */
619#define OBJECT_SYNC_SEND_UPDATES 0x0001
620#define OBJECT_SYNC_DUAL_CONFIRM 0x0002
621
622/**
623 * User/group flags
624 */
625#define UF_MODIFIED 0x0001
626#define UF_DELETED 0x0002
627#define UF_DISABLED 0x0004
628#define UF_CHANGE_PASSWORD 0x0008
629#define UF_CANNOT_CHANGE_PASSWORD 0x0010
630#define UF_INTRUDER_LOCKOUT 0x0020
631#define UF_PASSWORD_NEVER_EXPIRES 0x0040
632#define UF_LDAP_USER 0x0080
633#define UF_SYNC_EXCEPTION 0x0100
634
635/**
636 * Fields for NXCModifyUserEx
637 */
638#define USER_MODIFY_LOGIN_NAME 0x00000001
639#define USER_MODIFY_DESCRIPTION 0x00000002
640#define USER_MODIFY_FULL_NAME 0x00000004
641#define USER_MODIFY_FLAGS 0x00000008
642#define USER_MODIFY_ACCESS_RIGHTS 0x00000010
643#define USER_MODIFY_MEMBERS 0x00000020
644#define USER_MODIFY_CERT_MAPPING 0x00000040
645#define USER_MODIFY_AUTH_METHOD 0x00000080
646#define USER_MODIFY_PASSWD_LENGTH 0x00000100
647#define USER_MODIFY_TEMP_DISABLE 0x00000200
648#define USER_MODIFY_CUSTOM_ATTRIBUTES 0x00000400
649#define USER_MODIFY_XMPP_ID 0x00000800
650#define USER_MODIFY_GROUP_MEMBERSHIP 0x00001000
651
652/**
653 * User certificate mapping methods
654 */
655#define USER_MAP_CERT_BY_SUBJECT 0
656#define USER_MAP_CERT_BY_PUBKEY 1
657#define USER_MAP_CERT_BY_CN 2
658
659/**
660 * User database change notification types
661 */
662#define USER_DB_CREATE 0
663#define USER_DB_DELETE 1
664#define USER_DB_MODIFY 2
665
666/**
667 * Situation change notification types
668 */
669#define SITUATION_CREATE 1
670#define SITUATION_DELETE 2
671#define SITUATION_UPDATE 3
672#define SITUATION_INSTANCE_UPDATE 4
673#define SITUATION_INSTANCE_DELETE 5
674
675/**
676 * Data collection object types
677 */
678#define DCO_TYPE_GENERIC 0
679#define DCO_TYPE_ITEM 1
680#define DCO_TYPE_TABLE 2
681
682/**
683 * DCI flags
684 */
685#define DCF_ADVANCED_SCHEDULE ((UINT16)0x0001)
686#define DCF_ALL_THRESHOLDS ((UINT16)0x0002)
687#define DCF_RAW_VALUE_OCTET_STRING ((UINT16)0x0004)
688#define DCF_SHOW_ON_OBJECT_TOOLTIP ((UINT16)0x0008)
689#define DCF_AGGREGATE_FUNCTION_MASK ((UINT16)0x0070)
690#define DCF_AGGREGATE_ON_CLUSTER ((UINT16)0x0080)
691#define DCF_TRANSFORM_AGGREGATED ((UINT16)0x0100)
692#define DCF_NO_STORAGE ((UINT16)0x0200)
693#define DCF_CALCULATE_NODE_STATUSS ((UINT16)0x0400)
694
695/**
696 * Get cluster aggregation function from DCI flags
697 */
698#define DCF_GET_AGGREGATION_FUNCTION(flags) (((flags) & DCF_AGGREGATE_FUNCTION_MASK) >> 4)
699#define DCF_SET_AGGREGATION_FUNCTION(flags,func) (((flags) & ~DCF_AGGREGATE_FUNCTION_MASK) | (((func) & 0x07) << 4))
700
701/**
702 * DCTable column flags
703 */
704#define TCF_DATA_TYPE_MASK ((UINT16)0x000F)
705#define TCF_AGGREGATE_FUNCTION_MASK ((UINT16)0x0070)
706#define TCF_INSTANCE_COLUMN ((UINT16)0x0100)
707#define TCF_INSTANCE_LABEL_COLUMN ((UINT16)0x0200)
708
709/**
710 * Get cluster aggregation function from column flags
711 */
712#define TCF_GET_AGGREGATION_FUNCTION(flags) (((flags) & TCF_AGGREGATE_FUNCTION_MASK) >> 4)
713#define TCF_SET_AGGREGATION_FUNCTION(flags,func) (((flags) & ~DCF_AGGREGATE_FUNCTION_MASK) | (((func) & 0x07) << 4))
714
715/**
716 * Get data type from column flags
717 */
718#define TCF_GET_DATA_TYPE(flags) ((flags) & TCF_DATA_TYPE_MASK)
719#define TCF_SET_DATA_TYPE(flags,dt) (((flags) & ~TCF_DATA_TYPE_MASK) | ((dt) & 0x0F))
720
721/**
722 * Aggregation functions
723 */
724#define DCF_FUNCTION_SUM 0
725#define DCF_FUNCTION_AVG 1
726#define DCF_FUNCTION_MIN 2
727#define DCF_FUNCTION_MAX 3
728
729/**
730 * SNMP raw types
731 */
732#define SNMP_RAWTYPE_NONE 0
733#define SNMP_RAWTYPE_INT32 1
734#define SNMP_RAWTYPE_UINT32 2
735#define SNMP_RAWTYPE_INT64 3
736#define SNMP_RAWTYPE_UINT64 4
737#define SNMP_RAWTYPE_DOUBLE 5
738#define SNMP_RAWTYPE_IP_ADDR 6
739#define SNMP_RAWTYPE_MAC_ADDR 7
740
741/**
742 * Data sources
743 */
744#define DS_INTERNAL 0
745#define DS_NATIVE_AGENT 1
746#define DS_SNMP_AGENT 2
747#define DS_CHECKPOINT_AGENT 3
748#define DS_PUSH_AGENT 4
749#define DS_WINPERF 5
750#define DS_SMCLP 6
751#define DS_SCRIPT 7
752
753/**
754 * Item status
755 */
756#define ITEM_STATUS_ACTIVE 0
757#define ITEM_STATUS_DISABLED 1
758#define ITEM_STATUS_NOT_SUPPORTED 2
759
760/**
761 * Delta calculation methods for DCIs
762 */
763#define DCM_ORIGINAL_VALUE 0
764#define DCM_SIMPLE 1
765#define DCM_AVERAGE_PER_SECOND 2
766#define DCM_AVERAGE_PER_MINUTE 3
767
768/**
769 * Threshold functions
770 */
771#define F_LAST 0
772#define F_AVERAGE 1
773#define F_DEVIATION 2
774#define F_DIFF 3
775#define F_ERROR 4
776#define F_SUM 5
777#define F_SCRIPT 6
778
779/**
780 * DCI aggregation functions
781 */
782enum AggregationFunction
783{
784 DCI_AGG_LAST = 0,
785 DCI_AGG_MIN = 1,
786 DCI_AGG_MAX = 2,
787 DCI_AGG_AVG = 3,
788 DCI_AGG_SUM = 4
789};
790
791/**
792 * Threshold operations
793 */
794#define OP_LE 0
795#define OP_LE_EQ 1
796#define OP_EQ 2
797#define OP_GT_EQ 3
798#define OP_GT 4
799#define OP_NE 5
800#define OP_LIKE 6
801#define OP_NOTLIKE 7
802
803/**
804 * DCI base units
805 */
806#define DCI_BASEUNITS_OTHER 0
807#define DCI_BASEUNITS_CUSTOM 1
808#define DCI_BASEUNITS_BYTES 2
809#define DCI_BASEUNITS_BITS 3
810#define DCI_BASEUNITS_SECONDS 4
811#define DCI_BASEUNITS_PERCENTS 5
812#define DCI_BASEUNITS_BITS_PER_SECOND 6
813#define DCI_BASEUNITS_BYTES_PER_SECOND 7
814
815/**
816 * DCI instance discovery methods
817 */
818#define IDM_NONE 0
819#define IDM_AGENT_LIST 1
820#define IDM_AGENT_TABLE 2
821#define IDM_SNMP_WALK_VALUES 3
822#define IDM_SNMP_WALK_OIDS 4
823
824/**
825 * Event policy rule flags
826 */
827#define RF_STOP_PROCESSING 0x0001
828#define RF_NEGATED_SOURCE 0x0002
829#define RF_NEGATED_EVENTS 0x0004
830#define RF_GENERATE_ALARM 0x0008
831#define RF_DISABLED 0x0010
832#define RF_TERMINATE_BY_REGEXP 0x0020
833#define RF_SEVERITY_INFO 0x0100
834#define RF_SEVERITY_WARNING 0x0200
835#define RF_SEVERITY_MINOR 0x0400
836#define RF_SEVERITY_MAJOR 0x0800
837#define RF_SEVERITY_CRITICAL 0x1000
838
839/**
840 * Action types
841 */
842#define ACTION_EXEC 0
843#define ACTION_REMOTE 1
844#define ACTION_SEND_EMAIL 2
845#define ACTION_SEND_SMS 3
846#define ACTION_FORWARD_EVENT 4
847#define ACTION_NXSL_SCRIPT 5
848#define ACTION_XMPP_MESSAGE 6
849
850/**
851 * Network map types
852 */
853#define NETMAP_USER_DEFINED 0
854#define NETMAP_IP_TOPOLOGY 1
855#define NETMAP_L2_TOPOLOGY 2
856
857/**
858 * Network map flags
859 */
860#define MF_SHOW_STATUS_ICON 0x00000001
861#define MF_SHOW_STATUS_FRAME 0x00000002
862#define MF_SHOW_STATUS_BKGND 0x00000004
863#define MF_SHOW_END_NODES 0x00000008
864#define MF_CALCULATE_STATUS 0x00000010
865
866/**
867 * Network map layouts
868 */
869#define MAP_LAYOUT_MANUAL 0x7FFF
870#define MAP_LAYOUT_SPRING 0
871#define MAP_LAYOUT_RADIAL 1
872#define MAP_LAYOUT_HTREE 2
873#define MAP_LAYOUT_VTREE 3
874#define MAP_LAYOUT_SPARSE_VTREE 4
875
876
877//
878// Deployment manager status codes
879//
880
881#define DEPLOYMENT_STATUS_PENDING 0
882#define DEPLOYMENT_STATUS_TRANSFER 1
883#define DEPLOYMENT_STATUS_INSTALLATION 2
884#define DEPLOYMENT_STATUS_COMPLETED 3
885#define DEPLOYMENT_STATUS_FAILED 4
886#define DEPLOYMENT_STATUS_INITIALIZE 5
887#define DEPLOYMENT_STATUS_FINISHED 255
888
889/**
890 * Session subscription codes (data channels)
891 */
892#define NXC_CHANNEL_EVENTS 0x00000001
893#define NXC_CHANNEL_SYSLOG 0x00000002
894#define NXC_CHANNEL_ALARMS 0x00000004
895#define NXC_CHANNEL_OBJECTS 0x00000008
896#define NXC_CHANNEL_SNMP_TRAPS 0x00000010
897#define NXC_CHANNEL_AUDIT_LOG 0x00000020
898#define NXC_CHANNEL_SITUATIONS 0x00000040
899
900
901//
902// Node creation flags
903//
904
905#define NXC_NCF_DISABLE_ICMP 0x0001
906#define NXC_NCF_DISABLE_NXCP 0x0002
907#define NXC_NCF_DISABLE_SNMP 0x0004
908#define NXC_NCF_CREATE_UNMANAGED 0x0008
909
910
911//
912// Server components
913//
914
915#define SRV_COMPONENT_DISCOVERY_MGR 1
916
917
918//
919// Configuration import flags
920//
921
922#define CFG_IMPORT_REPLACE_EVENT_BY_CODE 0x0001
923#define CFG_IMPORT_REPLACE_EVENT_BY_NAME 0x0002
924
925
926//
927// Graph access flags
928//
929
930#define NXGRAPH_ACCESS_READ 0x01
931#define NXGRAPH_ACCESS_WRITE 0x02
932
933
934//
935// Cluster types
936//
937
938#define CLUSTER_TYPE_GENERIC 0
939
940
941//
942// SNMP trap flags
943//
944
945#define TRAP_VARBIND_FORCE_TEXT 0x0001
946
947/**
948 * IP network
949 */
950typedef struct
951{
952 UINT32 dwAddr;
953 UINT32 dwMask;
954} IP_NETWORK;
955
956/**
957 * Agent's parameter information
958 */
959typedef struct
960{
961 TCHAR szName[MAX_PARAM_NAME];
962 TCHAR szDescription[MAX_DB_STRING];
963 int iDataType;
964} NXC_AGENT_PARAM;
965
966/**
967 * Server action definition structure
968 */
969typedef struct
970{
971 UINT32 dwId;
972 int iType;
973 BOOL bIsDisabled;
974 TCHAR szName[MAX_OBJECT_NAME];
975 TCHAR szRcptAddr[MAX_RCPT_ADDR_LEN];
976 TCHAR szEmailSubject[MAX_EMAIL_SUBJECT_LEN];
977 TCHAR *pszData;
978} NXC_ACTION;
979
980/**
981 * Alarm structure
982 */
983typedef struct
984{
985 QWORD qwSourceEventId; // Originating event ID
986 UINT32 dwAlarmId; // Unique alarm ID
987 UINT32 dwCreationTime; // Alarm creation time in UNIX time format
988 UINT32 dwLastChangeTime; // Alarm's last change time in UNIX time format
989 UINT32 dwSourceObject; // Source object ID
990 UINT32 dwSourceEventCode;// Originating event code
991 BYTE nCurrentSeverity; // Alarm's current severity
992 BYTE nOriginalSeverity; // Alarm's original severity
993 BYTE nState; // Current state
994 BYTE nHelpDeskState; // State of alarm in helpdesk system
995 UINT32 dwAckByUser; // ID of user who was acknowledged this alarm (0 for system)
996 UINT32 dwResolvedByUser; // ID of user who was resolved this alarm (0 for system)
997 UINT32 dwTermByUser; // ID of user who was terminated this alarm (0 for system)
998 UINT32 dwRepeatCount;
999 UINT32 dwTimeout;
1000 UINT32 dwTimeoutEvent;
1001 TCHAR szMessage[MAX_EVENT_MSG_LENGTH];
1002 TCHAR szKey[MAX_DB_STRING];
1003 TCHAR szHelpDeskRef[MAX_HELPDESK_REF_LEN];
1004 void *pUserData; // Can be freely used by client application
1005 UINT32 noteCount; // Number of notes added to alarm
1006 UINT32 ackTimeout; // Sticky acknowledgment end time. If acknowladgmant without timeout put 0
1007} NXC_ALARM;
1008
1009/**
1010 * Trap parameter mapping entry
1011 */
1012typedef struct
1013{
1014 UINT32 *pdwObjectId; // Trap OID
1015 UINT32 dwOidLen; // Trap OID length (if highest bit is set, then it's a position)
1016 UINT32 dwFlags;
1017 TCHAR szDescription[MAX_DB_STRING];
1018} NXC_OID_MAP;
1019
1020/**
1021 * Trap configuration entry
1022 */
1023typedef struct
1024{
1025 UINT32 dwId; // Entry ID
1026 UINT32 *pdwObjectId; // Trap OID
1027 UINT32 dwOidLen; // Trap OID length
1028 UINT32 dwEventCode; // Event code
1029 UINT32 dwNumMaps; // Number of parameter mappings
1030 NXC_OID_MAP *pMaps;
1031 TCHAR szDescription[MAX_DB_STRING];
1032 TCHAR szUserTag[MAX_USERTAG_LENGTH];
1033} NXC_TRAP_CFG_ENTRY;
1034
1035/**
1036 * Condition's input DCI definition
1037 */
1038typedef struct
1039{
1040 UINT32 id;
1041 UINT32 nodeId;
1042 int function; // Average, last, diff
1043 int polls; // Number of polls used for average
1044} INPUT_DCI;
1045
1046/**
1047 * Cluster resource
1048 */
1049typedef struct
1050{
1051 UINT32 dwId;
1052 TCHAR szName[MAX_DB_STRING];
1053 UINT32 dwIpAddr;
1054 UINT32 dwCurrOwner;
1055} CLUSTER_RESOURCE;
1056
1057#endif /* _nxcldefs_h_ */