mirror of
https://github.com/reactos/reactos.git
synced 2024-12-27 09:34:43 +00:00
Added new include file.
svn path=/trunk/; revision=3380
This commit is contained in:
parent
90d386b1c0
commit
0b318e24d3
1 changed files with 273 additions and 0 deletions
273
reactos/include/snmp.h
Normal file
273
reactos/include/snmp.h
Normal file
|
@ -0,0 +1,273 @@
|
|||
/*
|
||||
* ReactOS Simple Network Management Protocol - SNMP
|
||||
*
|
||||
* snmp.h
|
||||
*
|
||||
* Copyright (C) 2002 Robert Dickenson <robd@reactos.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __SNMP_H__
|
||||
#define __SNMP_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// SNMP Type Definitions
|
||||
//
|
||||
|
||||
#include <pshpack4.h>
|
||||
|
||||
typedef struct {
|
||||
BYTE* stream;
|
||||
UINT length;
|
||||
BOOL dynamic;
|
||||
} AsnOctetString;
|
||||
|
||||
typedef struct {
|
||||
UINT idLength;
|
||||
UINT* ids;
|
||||
} AsnObjectIdentifier;
|
||||
|
||||
typedef LONG AsnInteger32;
|
||||
typedef ULONG AsnUnsigned32;
|
||||
typedef ULARGE_INTEGER AsnCounter64;
|
||||
typedef AsnUnsigned32 AsnCounter32;
|
||||
typedef AsnUnsigned32 AsnGauge32;
|
||||
typedef AsnUnsigned32 AsnTimeticks;
|
||||
typedef AsnOctetString AsnBits;
|
||||
typedef AsnOctetString AsnSequence;
|
||||
typedef AsnOctetString AsnImplicitSequence;
|
||||
typedef AsnOctetString AsnIPAddress;
|
||||
typedef AsnOctetString AsnNetworkAddress;
|
||||
typedef AsnOctetString AsnDisplayString;
|
||||
typedef AsnOctetString AsnOpaque;
|
||||
|
||||
typedef struct {
|
||||
BYTE asnType;
|
||||
union {
|
||||
AsnInteger32 number; // ASN_INTEGER & ASN_INTEGER32
|
||||
AsnUnsigned32 unsigned32; // ASN_UNSIGNED32
|
||||
AsnCounter64 counter64; // ASN_COUNTER64
|
||||
AsnOctetString string; // ASN_OCTETSTRING
|
||||
AsnBits bits; // ASN_BITS
|
||||
AsnObjectIdentifier object; // ASN_OBJECTIDENTIFIER
|
||||
AsnSequence sequence; // ASN_SEQUENCE
|
||||
AsnIPAddress address; // ASN_IPADDRESS
|
||||
AsnCounter32 counter; // ASN_COUNTER32
|
||||
AsnGauge32 gauge; // ASN_GAUGE32
|
||||
AsnTimeticks ticks; // ASN_TIMETICKS
|
||||
AsnOpaque arbitrary; // ASN_OPAQUE
|
||||
} asnValue;
|
||||
} AsnAny;
|
||||
|
||||
typedef AsnObjectIdentifier AsnObjectName;
|
||||
typedef AsnAny AsnObjectSyntax;
|
||||
|
||||
typedef struct {
|
||||
AsnObjectName name;
|
||||
AsnObjectSyntax value;
|
||||
} SnmpVarBind;
|
||||
|
||||
typedef struct {
|
||||
SnmpVarBind* list;
|
||||
UINT len;
|
||||
} SnmpVarBindList;
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// SNMP Function Prototypes
|
||||
//
|
||||
|
||||
#define SNMPAPI INT
|
||||
#ifndef SNMP_FUNC_TYPE
|
||||
#define SNMP_FUNC_TYPE
|
||||
#endif
|
||||
|
||||
//LPVOID SNMP_FUNC_TYPE SnmpUtilMemAlloc(UINT nBytes);
|
||||
//VOID SNMP_FUNC_TYPE SnmpUtilMemFree(LPVOID pMem);
|
||||
//SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidCpy(AsnObjectIdentifier* pOidDst, AsnObjectIdentifier* pOidSrc);
|
||||
//VOID SNMP_FUNC_TYPE SnmpUtilOidFree(AsnObjectIdentifier* pOid);
|
||||
//VOID SNMP_FUNC_TYPE SnmpUtilVarBindFree(SnmpVarBind* pVb);
|
||||
|
||||
LPVOID SNMP_FUNC_TYPE SnmpUtilMemAlloc(
|
||||
UINT nBytes // bytes to allocate for object
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilMemFree(
|
||||
LPVOID pMem // pointer to memory object to release
|
||||
);
|
||||
|
||||
LPVOID SNMP_FUNC_TYPE SnmpUtilMemReAlloc(
|
||||
LPVOID pMem, // pointer to memory object
|
||||
UINT nBytes // bytes to allocate
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpSvcInitUptime();
|
||||
|
||||
DWORD SNMP_FUNC_TYPE SnmpSvcGetUptime();
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpSvcSetLogLevel(
|
||||
INT nLogLevel // level of severity of the event
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpSvcSetLogType(
|
||||
INT nLogType // destination for debug output
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilAsnAnyCpy(
|
||||
AsnAny *pAnyDst, // destination structure
|
||||
AsnAny *pAnySrc // source structure
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilAsnAnyFree(
|
||||
AsnAny *pAny // pointer to structure to free
|
||||
);
|
||||
|
||||
//VOID SNMP_FUNC_TYPE SnmpUtilDbgPrint(
|
||||
// INT nLogLevel, // level of severity of event
|
||||
// LPSTR szFormat // pointer to a format string
|
||||
//);
|
||||
|
||||
LPSTR SNMP_FUNC_TYPE SnmpUtilIdsToA(
|
||||
UINT *Ids, // object identifier to convert
|
||||
UINT IdLength // number of elements
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilOctetsCmp(
|
||||
AsnOctetString *pOctets1, // first octet string
|
||||
AsnOctetString *pOctets2 // second octet string
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilOctetsCpy(
|
||||
AsnOctetString *pOctetsDst, // destination octet string
|
||||
AsnOctetString *pOctetsSrc // source octet string
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilOctetsFree(
|
||||
AsnOctetString *pOctets // octet string to free
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilOctetsNCmp(
|
||||
AsnOctetString *pOctets1, // first octet string
|
||||
AsnOctetString *pOctets2, // second octet string
|
||||
UINT nChars // maximum length to compare
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidAppend(
|
||||
AsnObjectIdentifier *pOidDst, // destination object identifier
|
||||
AsnObjectIdentifier *pOidSrc // source object identifier
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidCmp(
|
||||
AsnObjectIdentifier *pOid1, // first object identifier
|
||||
AsnObjectIdentifier *pOid2 // second object identifier
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidCpy(
|
||||
AsnObjectIdentifier *pOidDst, // destination object identifier
|
||||
AsnObjectIdentifier *pOidSrc // source object identifier
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilOidFree(
|
||||
AsnObjectIdentifier *pOid // object identifier to free
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidNCmp(
|
||||
AsnObjectIdentifier *pOid1, // first object identifier
|
||||
AsnObjectIdentifier *pOid2, // second object identifier
|
||||
UINT nSubIds // maximum length to compare
|
||||
);
|
||||
|
||||
LPSTR SNMP_FUNC_TYPE SnmpUtilOidToA(
|
||||
AsnObjectIdentifier *Oid // object identifier to convert
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilPrintAsnAny(
|
||||
AsnAny *pAny // pointer to value to print
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilPrintOid(
|
||||
AsnObjectIdentifier *Oid // object identifier to print
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilVarBindCpy(
|
||||
SnmpVarBind *pVbDst, // destination variable bindings
|
||||
SnmpVarBind *pVbSrc // source variable bindings
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilVarBindFree(
|
||||
SnmpVarBind *pVb // variable binding to free
|
||||
);
|
||||
|
||||
SNMPAPI SNMP_FUNC_TYPE SnmpUtilVarBindListCpy(
|
||||
SnmpVarBindList *pVblDst, // destination variable bindings list
|
||||
SnmpVarBindList *pVblSrc // source variable bindings list
|
||||
);
|
||||
|
||||
VOID SNMP_FUNC_TYPE SnmpUtilVarBindListFree(
|
||||
SnmpVarBindList *pVbl // variable bindings list to free
|
||||
);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// SNMP Debugging Definitions
|
||||
//
|
||||
|
||||
#define SNMP_LOG_SILENT 0x0
|
||||
#define SNMP_LOG_FATAL 0x1
|
||||
#define SNMP_LOG_ERROR 0x2
|
||||
#define SNMP_LOG_WARNING 0x3
|
||||
#define SNMP_LOG_TRACE 0x4
|
||||
#define SNMP_LOG_VERBOSE 0x5
|
||||
|
||||
#define SNMP_OUTPUT_TO_CONSOLE 0x1
|
||||
#define SNMP_OUTPUT_TO_LOGFILE 0x2
|
||||
//#define SNMP_OUTPUT_TO_EVENTLOG 0x4 // no longer supported
|
||||
#define SNMP_OUTPUT_TO_DEBUGGER 0x8
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// SNMP Debugging Prototypes
|
||||
//
|
||||
|
||||
VOID
|
||||
SNMP_FUNC_TYPE
|
||||
SnmpUtilDbgPrint(
|
||||
IN INT nLogLevel, // see log levels above...
|
||||
IN LPSTR szFormat,
|
||||
IN ...
|
||||
);
|
||||
|
||||
#if DBG
|
||||
#define SNMPDBG(_x_) SnmpUtilDbgPrint _x_
|
||||
#else
|
||||
#define SNMPDBG(_x_)
|
||||
#endif
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif // __SNMP_H__
|
||||
|
Loading…
Reference in a new issue