holdingarea/llvm/llvm-gcc4.2-2.7-x86-mingw32/include/snmp.h
branchbug235_bringup_0
changeset 20 d2d6724aef32
equal deleted inserted replaced
19:da7c1a80df0d 20:d2d6724aef32
       
     1 /*
       
     2   snmp.h - Header file for the Windows SNMP API
       
     3 
       
     4   Written by Filip Navara <xnavara@volny.cz>
       
     5 
       
     6   References (2003-08-25):
       
     7     http://msdn.microsoft.com/library/en-us/snmp/snmp/snmp_reference.asp
       
     8 
       
     9   This library is distributed in the hope that it will be useful,
       
    10   but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       
    12 */
       
    13 
       
    14 #ifndef _SNMP_H
       
    15 #define _SNMP_H
       
    16 #if __GNUC__ >= 3
       
    17 #pragma GCC system_header
       
    18 #endif
       
    19 
       
    20 #ifndef _WINDOWS_H
       
    21 #include <windows.h>
       
    22 #endif
       
    23 
       
    24 #include <pshpack4.h>
       
    25 
       
    26 #ifndef WINSNMPAPI
       
    27 #define WINSNMPAPI WINAPI
       
    28 #endif
       
    29 
       
    30 #ifdef __cplusplus
       
    31 extern "C" {
       
    32 #endif
       
    33 
       
    34 #define DEFAULT_SNMP_PORT_UDP	161
       
    35 #define DEFAULT_SNMP_PORT_IPX	36879
       
    36 #define DEFAULT_SNMPTRAP_PORT_UDP	162
       
    37 #define DEFAULT_SNMPTRAP_PORT_IPX	36880
       
    38 #ifndef _SNMP_ASN_DEFINED
       
    39 #define _SNMP_ASN_DEFINED
       
    40 #define ASN_UNIVERSAL	0x00
       
    41 #define ASN_PRIMITIVE	0x00
       
    42 #define ASN_CONSTRUCTOR	0x20
       
    43 #define ASN_APPLICATION	0x40
       
    44 #define ASN_CONTEXT	0x80
       
    45 #define ASN_PRIVATE	0xC0
       
    46 #define SNMP_PDU_GET	(ASN_CONTEXT | ASN_CONSTRUCTOR | 0)
       
    47 #define SNMP_PDU_GETNEXT	(ASN_CONTEXT | ASN_CONSTRUCTOR | 1)
       
    48 #define SNMP_PDU_RESPONSE	(ASN_CONTEXT | ASN_CONSTRUCTOR | 2)
       
    49 #define SNMP_PDU_SET	(ASN_CONTEXT | ASN_CONSTRUCTOR | 3)
       
    50 #define SNMP_PDU_GETBULK	(ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
       
    51 #define SNMP_PDU_V1TRAP	(ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
       
    52 #define SNMP_PDU_INFORM	(ASN_CONTEXT | ASN_CONSTRUCTOR | 6)
       
    53 #define SNMP_PDU_TRAP	(ASN_CONTEXT | ASN_CONSTRUCTOR | 7) 
       
    54 #define SNMP_PDU_REPORT	(ASN_CONTEXT | ASN_CONSTRUCTOR | 8)
       
    55 #endif /* _SNMP_ASN_DEFINED */
       
    56 #define ASN_INTEGER	(ASN_UNIVERSAL | ASN_PRIMITIVE | 2)
       
    57 #define ASN_BITS	(ASN_UNIVERSAL | ASN_PRIMITIVE | 3)
       
    58 #define ASN_OCTETSTRING	(ASN_UNIVERSAL | ASN_PRIMITIVE | 4)
       
    59 #define ASN_NULL	(ASN_UNIVERSAL | ASN_PRIMITIVE | 5)
       
    60 #define ASN_OBJECTIDENTIFIER	(ASN_UNIVERSAL | ASN_PRIMITIVE | 6)
       
    61 #define ASN_INTEGER32	ASN_INTEGER
       
    62 #define ASN_SEQUENCE	(ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
       
    63 #define ASN_SEQUENCEOF	ASN_SEQUENCE
       
    64 #define ASN_IPADDRESS	(ASN_APPLICATION | ASN_PRIMITIVE | 0x00)
       
    65 #define ASN_COUNTER32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x01)
       
    66 #define ASN_GAUGE32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x02)
       
    67 #define ASN_TIMETICKS	(ASN_APPLICATION | ASN_PRIMITIVE | 0x03)
       
    68 #define ASN_OPAQUE	(ASN_APPLICATION | ASN_PRIMITIVE | 0x04)
       
    69 #define ASN_COUNTER64	(ASN_APPLICATION | ASN_PRIMITIVE | 0x06)
       
    70 #define ASN_UNSIGNED32	(ASN_APPLICATION | ASN_PRIMITIVE | 0x07)
       
    71 #define SNMP_EXCEPTION_NOSUCHOBJECT	(ASN_CONTEXT | ASN_PRIMITIVE | 0x00)
       
    72 #define SNMP_EXCEPTION_NOSUCHINSTANCE	(ASN_CONTEXT | ASN_PRIMITIVE | 0x01)
       
    73 #define SNMP_EXCEPTION_ENDOFMIBVIEW	(ASN_CONTEXT | ASN_PRIMITIVE | 0x02)
       
    74 #define SNMP_EXTENSION_GET	SNMP_PDU_GET
       
    75 #define SNMP_EXTENSION_GET_NEXT	SNMP_PDU_GETNEXT
       
    76 #define SNMP_EXTENSION_GET_BULK	SNMP_PDU_GETBULK
       
    77 #define SNMP_EXTENSION_SET_TEST	(ASN_PRIVATE | ASN_CONSTRUCTOR | 0x0)
       
    78 #define SNMP_EXTENSION_SET_COMMIT	SNMP_PDU_SET
       
    79 #define SNMP_EXTENSION_SET_UNDO	(ASN_PRIVATE | ASN_CONSTRUCTOR | 0x1)
       
    80 #define SNMP_EXTENSION_SET_CLEANUP	(ASN_PRIVATE | ASN_CONSTRUCTOR | 0x2)
       
    81 #define SNMP_ERRORSTATUS_NOERROR	0
       
    82 #define SNMP_ERRORSTATUS_TOOBIG	1
       
    83 #define SNMP_ERRORSTATUS_NOSUCHNAME	2
       
    84 #define SNMP_ERRORSTATUS_BADVALUE	3
       
    85 #define SNMP_ERRORSTATUS_READONLY	4
       
    86 #define SNMP_ERRORSTATUS_GENERR	5
       
    87 #define SNMP_ERRORSTATUS_NOACCESS	6
       
    88 #define SNMP_ERRORSTATUS_WRONGTYPE	7
       
    89 #define SNMP_ERRORSTATUS_WRONGLENGTH	8
       
    90 #define SNMP_ERRORSTATUS_WRONGENCODING	9
       
    91 #define SNMP_ERRORSTATUS_WRONGVALUE	10
       
    92 #define SNMP_ERRORSTATUS_NOCREATION	11
       
    93 #define SNMP_ERRORSTATUS_INCONSISTENTVALUE	12
       
    94 #define SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE	13
       
    95 #define SNMP_ERRORSTATUS_COMMITFAILED	14
       
    96 #define SNMP_ERRORSTATUS_UNDOFAILED	15
       
    97 #define SNMP_ERRORSTATUS_AUTHORIZATIONERROR	16
       
    98 #define SNMP_ERRORSTATUS_NOTWRITABLE	17
       
    99 #define SNMP_ERRORSTATUS_INCONSISTENTNAME	18
       
   100 #define SNMP_GENERICTRAP_COLDSTART	0
       
   101 #define SNMP_GENERICTRAP_WARMSTART	1
       
   102 #define SNMP_GENERICTRAP_LINKDOWN	2
       
   103 #define SNMP_GENERICTRAP_LINKUP	3
       
   104 #define SNMP_GENERICTRAP_AUTHFAILURE	4
       
   105 #define SNMP_GENERICTRAP_EGPNEIGHLOSS	5
       
   106 #define SNMP_GENERICTRAP_ENTERSPECIFIC	6
       
   107 #define SNMP_ACCESS_NONE	0
       
   108 #define SNMP_ACCESS_NOTIFY	1
       
   109 #define SNMP_ACCESS_READ_ONLY	2
       
   110 #define SNMP_ACCESS_READ_WRITE	3
       
   111 #define SNMP_ACCESS_READ_CREATE	4
       
   112 #define SNMPAPI_ERROR	FALSE
       
   113 #define SNMPAPI_NOERROR	TRUE
       
   114 #define SNMP_LOG_SILENT	0
       
   115 #define SNMP_LOG_FATAL	1
       
   116 #define SNMP_LOG_ERROR	2
       
   117 #define SNMP_LOG_WARNING	3
       
   118 #define SNMP_LOG_TRACE	4
       
   119 #define SNMP_LOG_VERBOSE	5
       
   120 #define SNMP_OUTPUT_TO_CONSOLE	1
       
   121 #define SNMP_OUTPUT_TO_LOGFILE	2
       
   122 #define SNMP_OUTPUT_TO_EVENTLOG	4 
       
   123 #define SNMP_OUTPUT_TO_DEBUGGER	8
       
   124 #define SNMP_MAX_OID_LEN	128
       
   125 #define SNMP_MEM_ALLOC_ERROR	1
       
   126 #define SNMP_BERAPI_INVALID_LENGTH	10
       
   127 #define SNMP_BERAPI_INVALID_TAG	11
       
   128 #define SNMP_BERAPI_OVERFLOW	12
       
   129 #define SNMP_BERAPI_SHORT_BUFFER	13
       
   130 #define SNMP_BERAPI_INVALID_OBJELEM	14
       
   131 #define SNMP_PDUAPI_UNRECOGNIZED_PDU	20
       
   132 #define SNMP_PDUAPI_INVALID_ES	21
       
   133 #define SNMP_PDUAPI_INVALID_GT	22
       
   134 #define SNMP_AUTHAPI_INVALID_VERSION	30
       
   135 #define SNMP_AUTHAPI_INVALID_MSG_TYPE	31
       
   136 #define SNMP_AUTHAPI_TRIV_AUTH_FAILED	32
       
   137 
       
   138 #ifndef RC_INVOKED
       
   139 
       
   140 typedef INT SNMPAPI;
       
   141 typedef LONG AsnInteger32;
       
   142 typedef ULONG AsnUnsigned32;
       
   143 typedef ULARGE_INTEGER AsnCounter64;
       
   144 typedef AsnUnsigned32 AsnCounter32;
       
   145 typedef AsnUnsigned32 AsnGauge32;
       
   146 typedef AsnUnsigned32 AsnTimeticks;
       
   147 typedef struct {
       
   148 	BYTE *stream;
       
   149 	UINT length;
       
   150 	BOOL dynamic;
       
   151 } AsnOctetString, AsnBits, AsnSequence, AsnImplicitSequence, AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque;
       
   152 typedef struct {
       
   153 	UINT idLength;
       
   154 	UINT *ids;
       
   155 } AsnObjectIdentifier, AsnObjectName;
       
   156 typedef struct {
       
   157 	BYTE asnType;
       
   158 	union {
       
   159 		AsnInteger32 number; 
       
   160 		AsnUnsigned32 unsigned32; 
       
   161 		AsnCounter64 counter64; 
       
   162 		AsnOctetString string; 
       
   163 		AsnBits bits; 
       
   164 		AsnObjectIdentifier object; 
       
   165 		AsnSequence sequence; 
       
   166 		AsnIPAddress address; 
       
   167 		AsnCounter32 counter; 
       
   168 		AsnGauge32 gauge; 
       
   169 		AsnTimeticks ticks; 
       
   170 		AsnOpaque arbitrary; 
       
   171 	} asnValue;
       
   172 } AsnAny, AsnObjectSyntax;
       
   173 typedef struct {
       
   174 	AsnObjectName name;
       
   175 	AsnObjectSyntax value;
       
   176 } SnmpVarBind;
       
   177 typedef struct {
       
   178 	SnmpVarBind *list;
       
   179 	UINT len;
       
   180 } SnmpVarBindList;
       
   181 
       
   182 VOID WINSNMPAPI SnmpExtensionClose(void);
       
   183 BOOL WINSNMPAPI SnmpExtensionInit(DWORD,HANDLE*,AsnObjectIdentifier*);
       
   184 BOOL WINSNMPAPI SnmpExtensionInitEx(AsnObjectIdentifier*);
       
   185 BOOL WINSNMPAPI SnmpExtensionMonitor(LPVOID);
       
   186 BOOL WINSNMPAPI SnmpExtensionQuery(BYTE,SnmpVarBindList*,AsnInteger32*,AsnInteger32*);
       
   187 BOOL WINSNMPAPI SnmpExtensionQueryEx(DWORD,DWORD,SnmpVarBindList*,AsnOctetString*,AsnInteger32*,AsnInteger32*);
       
   188 BOOL WINSNMPAPI SnmpExtensionTrap(AsnObjectIdentifier*,AsnInteger32*,AsnInteger32*,AsnTimeticks*,SnmpVarBindList*);
       
   189 DWORD WINSNMPAPI SnmpSvcGetUptime(void);
       
   190 VOID WINSNMPAPI SnmpSvcSetLogLevel(INT);
       
   191 VOID WINSNMPAPI SnmpSvcSetLogType(INT);
       
   192 SNMPAPI WINSNMPAPI SnmpUtilAsnAnyCpy(AsnAny*,AsnAny*);
       
   193 VOID WINSNMPAPI SnmpUtilAsnAnyFree(AsnAny*);
       
   194 VOID WINSNMPAPI SnmpUtilDbgPrint(INT,LPSTR,...);
       
   195 LPSTR WINSNMPAPI SnmpUtilIdsToA(UINT*,UINT);
       
   196 LPVOID WINSNMPAPI SnmpUtilMemAlloc(UINT);
       
   197 VOID WINSNMPAPI SnmpUtilMemFree(LPVOID);
       
   198 LPVOID WINSNMPAPI SnmpUtilMemReAlloc(LPVOID,UINT);
       
   199 SNMPAPI WINSNMPAPI SnmpUtilOctetsCmp(AsnOctetString*,AsnOctetString*);
       
   200 SNMPAPI WINSNMPAPI SnmpUtilOctetsCpy(AsnOctetString*,AsnOctetString*);
       
   201 VOID WINSNMPAPI SnmpUtilOctetsFree(AsnOctetString*);
       
   202 SNMPAPI WINSNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*,AsnOctetString*,UINT);
       
   203 SNMPAPI WINSNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*,AsnObjectIdentifier*);
       
   204 SNMPAPI WINSNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*,AsnObjectIdentifier*);
       
   205 SNMPAPI WINSNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*,AsnObjectIdentifier*);
       
   206 VOID WINSNMPAPI SnmpUtilOidFree(AsnObjectIdentifier*);
       
   207 SNMPAPI WINSNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*,AsnObjectIdentifier*,UINT);
       
   208 LPSTR WINSNMPAPI SnmpUtilOidToA(AsnObjectIdentifier*);
       
   209 VOID WINSNMPAPI SnmpUtilPrintAsnAny(AsnAny*);
       
   210 VOID WINSNMPAPI SnmpUtilPrintOid(AsnObjectIdentifier*);
       
   211 SNMPAPI WINSNMPAPI SnmpUtilVarBindCpy(  SnmpVarBind*,SnmpVarBind*);
       
   212 SNMPAPI WINSNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*,SnmpVarBindList*);
       
   213 VOID WINSNMPAPI SnmpUtilVarBindFree(SnmpVarBind*);
       
   214 VOID WINSNMPAPI SnmpUtilVarBindListFree(SnmpVarBindList*);
       
   215 
       
   216 #ifndef SNMPSTRICT
       
   217 #define SNMP_malloc SnmpUtilMemAlloc
       
   218 #define SNMP_free SnmpUtilMemFree
       
   219 #define SNMP_realloc SnmpUtilMemReAlloc
       
   220 #define SNMP_DBG_malloc SnmpUtilMemAlloc
       
   221 #define SNMP_DBG_free SnmpUtilMemFree
       
   222 #define SNMP_DBG_realloc SnmpUtilMemReAlloc
       
   223 #define SNMP_oidappend SnmpUtilOidAppend
       
   224 #define SNMP_oidcmp SnmpUtilOidCmp
       
   225 #define SNMP_oidcpy SnmpUtilOidCpy
       
   226 #define SNMP_oidfree SnmpUtilOidFree
       
   227 #define SNMP_oidncmp SnmpUtilOidNCmp
       
   228 #define SNMP_printany SnmpUtilPrintAsnAny
       
   229 #define SNMP_CopyVarBind SnmpUtilVarBindCpy
       
   230 #define SNMP_CopyVarBindList SnmpUtilVarBindListCpy
       
   231 #define SNMP_FreeVarBind SnmpUtilVarBindFree
       
   232 #define SNMP_FreeVarBindList SnmpUtilVarBindListFree
       
   233 #define ASN_RFC1155_IPADDRESS ASN_IPADDRESS
       
   234 #define ASN_RFC1155_COUNTER ASN_COUNTER32
       
   235 #define ASN_RFC1155_GAUGE ASN_GAUGE32
       
   236 #define ASN_RFC1155_TIMETICKS ASN_TIMETICKS
       
   237 #define ASN_RFC1155_OPAQUE ASN_OPAQUE
       
   238 #define ASN_RFC1213_DISPSTRING ASN_OCTETSTRING
       
   239 #define ASN_RFC1157_GETREQUEST SNMP_PDU_GET
       
   240 #define ASN_RFC1157_GETNEXTREQUEST SNMP_PDU_GETNEXT
       
   241 #define ASN_RFC1157_GETRESPONSE SNMP_PDU_RESPONSE
       
   242 #define ASN_RFC1157_SETREQUEST SNMP_PDU_SET
       
   243 #define ASN_RFC1157_TRAP SNMP_PDU_V1TRAP
       
   244 #define ASN_CONTEXTSPECIFIC ASN_CONTEXT
       
   245 #define ASN_PRIMATIVE ASN_PRIMITIVE
       
   246 #define RFC1157VarBindList SnmpVarBindList
       
   247 #define RFC1157VarBind SnmpVarBind
       
   248 #define AsnInteger AsnInteger32
       
   249 #define AsnCounter AsnCounter32
       
   250 #define AsnGauge AsnGauge32
       
   251 #endif /* SNMPSTRICT */
       
   252 
       
   253 #endif /* RC_INVOKED */
       
   254 
       
   255 #ifdef __cplusplus
       
   256 }
       
   257 #endif
       
   258 #include <poppack.h>
       
   259 #endif