]> git.ipfire.org Git - thirdparty/gcc.git/blob - libphobos/libdruntime/core/sys/windows/snmp.d
Add D front-end, libphobos library, and D2 testsuite.
[thirdparty/gcc.git] / libphobos / libdruntime / core / sys / windows / snmp.d
1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * Authors: Stewart Gordon
7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8 * Source: $(DRUNTIMESRC src/core/sys/windows/_snmp.d)
9 */
10 module core.sys.windows.snmp;
11 version (Windows):
12
13 private import core.sys.windows.windows;
14
15 // These are not documented on MSDN
16 enum {
17 DEFAULT_SNMP_PORT_UDP = 161,
18 DEFAULT_SNMP_PORT_IPX = 36879,
19 DEFAULT_SNMPTRAP_PORT_UDP = 162,
20 DEFAULT_SNMPTRAP_PORT_IPX = 36880
21 }
22
23 enum : BYTE {
24 ASN_UNIVERSAL = 0x00,
25 ASN_PRIMITIVE = 0x00,
26 ASN_CONSTRUCTOR = 0x20,
27 ASN_APPLICATION = 0x40,
28 ASN_CONTEXT = 0x80,
29 ASN_PRIVATE = 0xC0,
30
31 SNMP_PDU_GET = ASN_CONTEXT | ASN_CONSTRUCTOR,
32 SNMP_PDU_GETNEXT,
33 SNMP_PDU_RESPONSE,
34 SNMP_PDU_SET,
35 SNMP_PDU_GETBULK, // = ASN_CONTEXT | ASN_CONSTRUCTOR | 4
36 SNMP_PDU_V1TRAP = ASN_CONTEXT | ASN_CONSTRUCTOR | 4,
37 SNMP_PDU_INFORM = ASN_CONTEXT | ASN_CONSTRUCTOR | 6,
38 SNMP_PDU_TRAP,
39 SNMP_PDU_REPORT,
40 ASN_INTEGER = ASN_UNIVERSAL | ASN_PRIMITIVE | 2,
41 ASN_BITS,
42 ASN_OCTETSTRING,
43 ASN_NULL,
44 ASN_OBJECTIDENTIFIER, // = ASN_UNIVERSAL | ASN_PRIMITIVE | 6
45 ASN_INTEGER32 = ASN_INTEGER,
46 ASN_SEQUENCE = ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10,
47 ASN_SEQUENCEOF = ASN_SEQUENCE,
48 ASN_IPADDRESS = ASN_APPLICATION | ASN_PRIMITIVE,
49 ASN_COUNTER32,
50 ASN_GAUGE32,
51 ASN_TIMETICKS,
52 ASN_OPAQUE, // = ASN_APPLICATION | ASN_PRIMITIVE | 4
53 ASN_COUNTER64 = ASN_APPLICATION | ASN_PRIMITIVE | 6,
54 ASN_UNSIGNED32, // = ASN_APPLICATION | ASN_PRIMITIVE | 7
55 SNMP_EXCEPTION_NOSUCHOBJECT = ASN_CONTEXT | ASN_PRIMITIVE,
56 SNMP_EXCEPTION_NOSUCHINSTANCE,
57 SNMP_EXCEPTION_ENDOFMIBVIEW,
58 SNMP_EXTENSION_GET = SNMP_PDU_GET,
59 SNMP_EXTENSION_GET_NEXT = SNMP_PDU_GETNEXT,
60 SNMP_EXTENSION_GET_BULK = SNMP_PDU_GETBULK,
61 SNMP_EXTENSION_SET_TEST = ASN_PRIVATE | ASN_CONSTRUCTOR,
62 SNMP_EXTENSION_SET_COMMIT = SNMP_PDU_SET,
63 SNMP_EXTENSION_SET_UNDO = ASN_PRIVATE | ASN_CONSTRUCTOR | 1,
64 SNMP_EXTENSION_SET_CLEANUP
65 }
66
67
68 enum : AsnInteger {
69 SNMP_ERRORSTATUS_NOERROR,
70 SNMP_ERRORSTATUS_TOOBIG,
71 SNMP_ERRORSTATUS_NOSUCHNAME,
72 SNMP_ERRORSTATUS_BADVALUE,
73 SNMP_ERRORSTATUS_READONLY,
74 SNMP_ERRORSTATUS_GENERR,
75 SNMP_ERRORSTATUS_NOACCESS,
76 SNMP_ERRORSTATUS_WRONGTYPE,
77 SNMP_ERRORSTATUS_WRONGLENGTH,
78 SNMP_ERRORSTATUS_WRONGENCODING,
79 SNMP_ERRORSTATUS_WRONGVALUE,
80 SNMP_ERRORSTATUS_NOCREATION,
81 SNMP_ERRORSTATUS_INCONSISTENTVALUE,
82 SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE,
83 SNMP_ERRORSTATUS_COMMITFAILED,
84 SNMP_ERRORSTATUS_UNDOFAILED,
85 SNMP_ERRORSTATUS_AUTHORIZATIONERROR,
86 SNMP_ERRORSTATUS_NOTWRITABLE,
87 SNMP_ERRORSTATUS_INCONSISTENTNAME
88 }
89
90 enum : AsnInteger {
91 SNMP_GENERICTRAP_COLDSTART,
92 SNMP_GENERICTRAP_WARMSTART,
93 SNMP_GENERICTRAP_LINKDOWN,
94 SNMP_GENERICTRAP_LINKUP,
95 SNMP_GENERICTRAP_AUTHFAILURE,
96 SNMP_GENERICTRAP_EGPNEIGHLOSS,
97 SNMP_GENERICTRAP_ENTERSPECIFIC
98 }
99
100 // These are not documented on MSDN
101 enum {
102 SNMP_ACCESS_NONE,
103 SNMP_ACCESS_NOTIFY,
104 SNMP_ACCESS_READ_ONLY,
105 SNMP_ACCESS_READ_WRITE,
106 SNMP_ACCESS_READ_CREATE
107 }
108
109 enum : BOOL {
110 SNMPAPI_ERROR = false,
111 SNMPAPI_NOERROR = true
112 }
113
114 enum : INT {
115 SNMP_LOG_SILENT,
116 SNMP_LOG_FATAL,
117 SNMP_LOG_ERROR,
118 SNMP_LOG_WARNING,
119 SNMP_LOG_TRACE,
120 SNMP_LOG_VERBOSE
121 }
122
123 enum INT
124 SNMP_OUTPUT_TO_CONSOLE = 1,
125 SNMP_OUTPUT_TO_LOGFILE = 2,
126 SNMP_OUTPUT_TO_EVENTLOG = 4,
127 SNMP_OUTPUT_TO_DEBUGGER = 8;
128
129 enum size_t SNMP_MAX_OID_LEN = 128;
130
131 enum : DWORD {
132 SNMP_MEM_ALLOC_ERROR = 1,
133 SNMP_BERAPI_INVALID_LENGTH = 10,
134 SNMP_BERAPI_INVALID_TAG,
135 SNMP_BERAPI_OVERFLOW,
136 SNMP_BERAPI_SHORT_BUFFER,
137 SNMP_BERAPI_INVALID_OBJELEM,
138 SNMP_PDUAPI_UNRECOGNIZED_PDU = 20,
139 SNMP_PDUAPI_INVALID_ES,
140 SNMP_PDUAPI_INVALID_GT,
141 SNMP_AUTHAPI_INVALID_VERSION = 30,
142 SNMP_AUTHAPI_INVALID_MSG_TYPE,
143 SNMP_AUTHAPI_TRIV_AUTH_FAILED,
144 }
145
146 alias INT SNMPAPI;
147 alias LONG AsnInteger32;
148 alias ULONG AsnUnsigned32, AsnCounter32, AsnGauge32, AsnTimeticks;
149 alias ULARGE_INTEGER AsnCounter64;
150
151 align (4):
152
153 struct AsnOctetString {
154 align (4):
155 BYTE* stream;
156 UINT length;
157 BOOL dynamic;
158 }
159 alias AsnOctetString AsnBits, AsnSequence, AsnImplicitSequence,
160 AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque;
161
162 struct AsnObjectIdentifier {
163 align (4):
164 UINT idLength;
165 UINT* ids;
166 }
167 alias AsnObjectIdentifier AsnObjectName;
168
169 struct AsnAny {
170 align (4):
171 BYTE asnType;
172 union _asnValue {
173 AsnInteger32 number;
174 AsnUnsigned32 unsigned32;
175 AsnCounter64 counter64;
176 AsnOctetString string;
177 AsnBits bits;
178 AsnObjectIdentifier object;
179 AsnSequence sequence;
180 AsnIPAddress address;
181 AsnCounter32 counter;
182 AsnGauge32 gauge;
183 AsnTimeticks ticks;
184 AsnOpaque arbitrary;
185 }
186 _asnValue asnValue;
187 }
188 alias AsnAny AsnObjectSyntax;
189
190 struct SnmpVarBind {
191 align (4):
192 AsnObjectName name;
193 AsnObjectSyntax value;
194 }
195
196 struct SnmpVarBindList {
197 align (4):
198 SnmpVarBind* list;
199 UINT len;
200 }
201
202 extern (Windows) {
203 VOID SnmpExtensionClose();
204 BOOL SnmpExtensionInit(DWORD, HANDLE*, AsnObjectIdentifier*);
205 BOOL SnmpExtensionInitEx(AsnObjectIdentifier*);
206 BOOL SnmpExtensionMonitor(LPVOID);
207 BOOL SnmpExtensionQuery(BYTE, SnmpVarBindList*, AsnInteger32*,
208 AsnInteger32*);
209 BOOL SnmpExtensionQueryEx(DWORD, DWORD, SnmpVarBindList*, AsnOctetString*,
210 AsnInteger32*, AsnInteger32*);
211 BOOL SnmpExtensionTrap(AsnObjectIdentifier*, AsnInteger32*, AsnInteger32*,
212 AsnTimeticks*, SnmpVarBindList*);
213 DWORD SnmpSvcGetUptime();
214 VOID SnmpSvcSetLogLevel(INT);
215 VOID SnmpSvcSetLogType(INT);
216 SNMPAPI SnmpUtilAsnAnyCpy(AsnAny*, AsnAny*);
217 VOID SnmpUtilAsnAnyFree(AsnAny*);
218 VOID SnmpUtilDbgPrint(INT, LPSTR, ...);
219 LPSTR SnmpUtilIdsToA(UINT*, UINT);
220 LPVOID SnmpUtilMemAlloc(UINT);
221 VOID SnmpUtilMemFree(LPVOID);
222 LPVOID SnmpUtilMemReAlloc(LPVOID, UINT);
223 SNMPAPI SnmpUtilOctetsCmp(AsnOctetString*, AsnOctetString*);
224 SNMPAPI SnmpUtilOctetsCpy(AsnOctetString*, AsnOctetString*);
225 VOID SnmpUtilOctetsFree(AsnOctetString*);
226 SNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*, AsnOctetString*, UINT);
227 SNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*, AsnObjectIdentifier*);
228 SNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*, AsnObjectIdentifier*);
229 SNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*, AsnObjectIdentifier*);
230 VOID SnmpUtilOidFree(AsnObjectIdentifier*);
231 SNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*, AsnObjectIdentifier*, UINT);
232 LPSTR SnmpUtilOidToA(AsnObjectIdentifier*);
233 VOID SnmpUtilPrintAsnAny(AsnAny*);
234 VOID SnmpUtilPrintOid(AsnObjectIdentifier*);
235 SNMPAPI SnmpUtilVarBindCpy(SnmpVarBind*, SnmpVarBind*);
236 SNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*, SnmpVarBindList*);
237 VOID SnmpUtilVarBindFree(SnmpVarBind*);
238 VOID SnmpUtilVarBindListFree(SnmpVarBindList*);
239 }
240
241 alias SnmpUtilMemAlloc SNMP_malloc;
242 alias SnmpUtilMemFree SNMP_free;
243 alias SnmpUtilMemReAlloc SNMP_realloc;
244 alias SnmpUtilMemAlloc SNMP_DBG_malloc;
245 alias SnmpUtilMemFree SNMP_DBG_free;
246 alias SnmpUtilMemReAlloc SNMP_DBG_realloc;
247 alias SnmpUtilOidAppend SNMP_oidappend;
248 alias SnmpUtilOidCmp SNMP_oidcmp;
249 alias SnmpUtilOidCpy SNMP_oidcpy;
250 alias SnmpUtilOidFree SNMP_oidfree;
251 alias SnmpUtilOidNCmp SNMP_oidncmp;
252 alias SnmpUtilPrintAsnAny SNMP_printany;
253 alias SnmpUtilVarBindCpy SNMP_CopyVarBind;
254 alias SnmpUtilVarBindListCpy SNMP_CopyVarBindList;
255 alias SnmpUtilVarBindFree SNMP_FreeVarBind;
256 alias SnmpUtilVarBindListFree SNMP_FreeVarBindList;
257 alias ASN_IPADDRESS ASN_RFC1155_IPADDRESS;
258 alias ASN_COUNTER32 ASN_RFC1155_COUNTER;
259 alias ASN_GAUGE32 ASN_RFC1155_GAUGE;
260 alias ASN_TIMETICKS ASN_RFC1155_TIMETICKS;
261 alias ASN_OPAQUE ASN_RFC1155_OPAQUE;
262 alias ASN_OCTETSTRING ASN_RFC1213_DISPSTRING;
263 alias SNMP_PDU_GET ASN_RFC1157_GETREQUEST;
264 alias SNMP_PDU_GETNEXT ASN_RFC1157_GETNEXTREQUEST;
265 alias SNMP_PDU_RESPONSE ASN_RFC1157_GETRESPONSE;
266 alias SNMP_PDU_SET ASN_RFC1157_SETREQUEST;
267 alias SNMP_PDU_V1TRAP ASN_RFC1157_TRAP;
268 alias ASN_CONTEXT ASN_CONTEXTSPECIFIC;
269 alias ASN_PRIMITIVE ASN_PRIMATIVE;
270 alias SnmpVarBindList RFC1157VarBindList;
271 alias SnmpVarBind RFC1157VarBind;
272 alias AsnInteger32 AsnInteger;
273 alias AsnCounter32 AsnCounter;
274 alias AsnGauge32 AsnGauge;