diff fuhtark_test/include/winapi/snmp.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/snmp.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,298 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_SNMP
+#define _INC_SNMP
+
+#include <windows.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <pshpack4.h>
+
+  typedef struct {
+    BYTE *stream;
+    UINT length;
+    WINBOOL 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;
+
+      AsnUnsigned32 unsigned32;
+      AsnCounter64 counter64;
+      AsnOctetString string;
+      AsnBits bits;
+      AsnObjectIdentifier object;
+      AsnSequence sequence;
+      AsnIPAddress address;
+      AsnCounter32 counter;
+      AsnGauge32 gauge;
+      AsnTimeticks ticks;
+      AsnOpaque arbitrary;
+    } 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>
+
+#ifndef _INC_WINSNMP
+#define ASN_UNIVERSAL 0x00
+#define ASN_APPLICATION 0x40
+#define ASN_CONTEXT 0x80
+#define ASN_PRIVATE 0xC0
+#define ASN_PRIMITIVE 0x00
+#define ASN_CONSTRUCTOR 0x20
+
+#define SNMP_PDU_GET (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0)
+#define SNMP_PDU_GETNEXT (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)
+#define SNMP_PDU_RESPONSE (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)
+#define SNMP_PDU_SET (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)
+#define SNMP_PDU_V1TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)
+#define SNMP_PDU_GETBULK (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
+#define SNMP_PDU_INFORM (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
+#define SNMP_PDU_TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
+#endif
+
+#define ASN_INTEGER (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x02)
+#define ASN_BITS (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03)
+#define ASN_OCTETSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x04)
+#define ASN_NULL (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x05)
+#define ASN_OBJECTIDENTIFIER (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x06)
+#define ASN_INTEGER32 ASN_INTEGER
+
+#define ASN_SEQUENCE (ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
+#define ASN_SEQUENCEOF ASN_SEQUENCE
+
+#define ASN_IPADDRESS (ASN_APPLICATION | ASN_PRIMITIVE | 0x00)
+#define ASN_COUNTER32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x01)
+#define ASN_GAUGE32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x02)
+#define ASN_TIMETICKS (ASN_APPLICATION | ASN_PRIMITIVE | 0x03)
+#define ASN_OPAQUE (ASN_APPLICATION | ASN_PRIMITIVE | 0x04)
+#define ASN_COUNTER64 (ASN_APPLICATION | ASN_PRIMITIVE | 0x06)
+#define ASN_UINTEGER32 (ASN_APPLICATION | ASN_PRIMITIVE | 0x07)
+#define ASN_RFC2578_UNSIGNED32 ASN_GAUGE32
+
+#define SNMP_EXCEPTION_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x00)
+#define SNMP_EXCEPTION_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x01)
+#define SNMP_EXCEPTION_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x02)
+
+#define SNMP_EXTENSION_GET SNMP_PDU_GET
+#define SNMP_EXTENSION_GET_NEXT SNMP_PDU_GETNEXT
+#define SNMP_EXTENSION_GET_BULK SNMP_PDU_GETBULK
+#define SNMP_EXTENSION_SET_TEST (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x0)
+#define SNMP_EXTENSION_SET_COMMIT SNMP_PDU_SET
+#define SNMP_EXTENSION_SET_UNDO (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x1)
+#define SNMP_EXTENSION_SET_CLEANUP (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x2)
+
+#define SNMP_ERRORSTATUS_NOERROR 0
+#define SNMP_ERRORSTATUS_TOOBIG 1
+#define SNMP_ERRORSTATUS_NOSUCHNAME 2
+#define SNMP_ERRORSTATUS_BADVALUE 3
+#define SNMP_ERRORSTATUS_READONLY 4
+#define SNMP_ERRORSTATUS_GENERR 5
+#define SNMP_ERRORSTATUS_NOACCESS 6
+#define SNMP_ERRORSTATUS_WRONGTYPE 7
+#define SNMP_ERRORSTATUS_WRONGLENGTH 8
+#define SNMP_ERRORSTATUS_WRONGENCODING 9
+#define SNMP_ERRORSTATUS_WRONGVALUE 10
+#define SNMP_ERRORSTATUS_NOCREATION 11
+#define SNMP_ERRORSTATUS_INCONSISTENTVALUE 12
+#define SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE 13
+#define SNMP_ERRORSTATUS_COMMITFAILED 14
+#define SNMP_ERRORSTATUS_UNDOFAILED 15
+#define SNMP_ERRORSTATUS_AUTHORIZATIONERROR 16
+#define SNMP_ERRORSTATUS_NOTWRITABLE 17
+#define SNMP_ERRORSTATUS_INCONSISTENTNAME 18
+
+#define SNMP_GENERICTRAP_COLDSTART 0
+#define SNMP_GENERICTRAP_WARMSTART 1
+#define SNMP_GENERICTRAP_LINKDOWN 2
+#define SNMP_GENERICTRAP_LINKUP 3
+#define SNMP_GENERICTRAP_AUTHFAILURE 4
+#define SNMP_GENERICTRAP_EGPNEIGHLOSS 5
+#define SNMP_GENERICTRAP_ENTERSPECIFIC 6
+
+#define SNMP_ACCESS_NONE 0
+#define SNMP_ACCESS_NOTIFY 1
+#define SNMP_ACCESS_READ_ONLY 2
+#define SNMP_ACCESS_READ_WRITE 3
+#define SNMP_ACCESS_READ_CREATE 4
+
+#define SNMPAPI INT
+#define SNMP_FUNC_TYPE WINAPI
+
+#define SNMPAPI_NOERROR TRUE
+#define SNMPAPI_ERROR FALSE
+
+  WINBOOL SNMP_FUNC_TYPE SnmpExtensionInit(DWORD dwUptimeReference,HANDLE *phSubagentTrapEvent,AsnObjectIdentifier *pFirstSupportedRegion);
+  WINBOOL SNMP_FUNC_TYPE SnmpExtensionInitEx(AsnObjectIdentifier *pNextSupportedRegion);
+  WINBOOL SNMP_FUNC_TYPE SnmpExtensionMonitor(LPVOID pAgentMgmtData);
+  WINBOOL SNMP_FUNC_TYPE SnmpExtensionQuery(BYTE bPduType,SnmpVarBindList *pVarBindList,AsnInteger32 *pErrorStatus,AsnInteger32 *pErrorIndex);
+  WINBOOL SNMP_FUNC_TYPE SnmpExtensionQueryEx(UINT nRequestType,UINT nTransactionId,SnmpVarBindList *pVarBindList,AsnOctetString *pContextInfo,AsnInteger32 *pErrorStatus,AsnInteger32 *pErrorIndex);
+  WINBOOL SNMP_FUNC_TYPE SnmpExtensionTrap(AsnObjectIdentifier *pEnterpriseOid,AsnInteger32 *pGenericTrapId,AsnInteger32 *pSpecificTrapId,AsnTimeticks *pTimeStamp,SnmpVarBindList *pVarBindList);
+  VOID SNMP_FUNC_TYPE SnmpExtensionClose();
+
+  typedef WINBOOL (SNMP_FUNC_TYPE *PFNSNMPEXTENSIONINIT)(DWORD dwUpTimeReference,HANDLE *phSubagentTrapEvent,AsnObjectIdentifier *pFirstSupportedRegion);
+  typedef WINBOOL (SNMP_FUNC_TYPE *PFNSNMPEXTENSIONINITEX)(AsnObjectIdentifier *pNextSupportedRegion);
+  typedef WINBOOL (SNMP_FUNC_TYPE *PFNSNMPEXTENSIONMONITOR)(LPVOID pAgentMgmtData);
+  typedef WINBOOL (SNMP_FUNC_TYPE *PFNSNMPEXTENSIONQUERY)(BYTE bPduType,SnmpVarBindList *pVarBindList,AsnInteger32 *pErrorStatus,AsnInteger32 *pErrorIndex);
+  typedef WINBOOL (SNMP_FUNC_TYPE *PFNSNMPEXTENSIONQUERYEX)(UINT nRequestType,UINT nTransactionId,SnmpVarBindList *pVarBindList,AsnOctetString *pContextInfo,AsnInteger32 *pErrorStatus,AsnInteger32 *pErrorIndex);
+  typedef WINBOOL (SNMP_FUNC_TYPE *PFNSNMPEXTENSIONTRAP)(AsnObjectIdentifier *pEnterpriseOid,AsnInteger32 *pGenericTrapId,AsnInteger32 *pSpecificTrapId,AsnTimeticks *pTimeStamp,SnmpVarBindList *pVarBindList);
+  typedef VOID (SNMP_FUNC_TYPE *PFNSNMPEXTENSIONCLOSE)();
+
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidCpy(AsnObjectIdentifier *pOidDst,AsnObjectIdentifier *pOidSrc);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidAppend(AsnObjectIdentifier *pOidDst,AsnObjectIdentifier *pOidSrc);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidNCmp(AsnObjectIdentifier *pOid1,AsnObjectIdentifier *pOid2,UINT nSubIds);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilOidCmp(AsnObjectIdentifier *pOid1,AsnObjectIdentifier *pOid2);
+  VOID SNMP_FUNC_TYPE SnmpUtilOidFree(AsnObjectIdentifier *pOid);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilOctetsCmp(AsnOctetString *pOctets1,AsnOctetString *pOctets2);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilOctetsNCmp(AsnOctetString *pOctets1,AsnOctetString *pOctets2,UINT nChars);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilOctetsCpy(AsnOctetString *pOctetsDst,AsnOctetString *pOctetsSrc);
+  VOID SNMP_FUNC_TYPE SnmpUtilOctetsFree(AsnOctetString *pOctets);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilAsnAnyCpy(AsnAny *pAnyDst,AsnAny *pAnySrc);
+  VOID SNMP_FUNC_TYPE SnmpUtilAsnAnyFree(AsnAny *pAny);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilVarBindCpy(SnmpVarBind *pVbDst,SnmpVarBind *pVbSrc);
+  VOID SNMP_FUNC_TYPE SnmpUtilVarBindFree(SnmpVarBind *pVb);
+  SNMPAPI SNMP_FUNC_TYPE SnmpUtilVarBindListCpy(SnmpVarBindList *pVblDst,SnmpVarBindList *pVblSrc);
+  VOID SNMP_FUNC_TYPE SnmpUtilVarBindListFree(SnmpVarBindList *pVbl);
+  VOID SNMP_FUNC_TYPE SnmpUtilMemFree(LPVOID pMem);
+  LPVOID SNMP_FUNC_TYPE SnmpUtilMemAlloc(UINT nBytes);
+  LPVOID SNMP_FUNC_TYPE SnmpUtilMemReAlloc(LPVOID pMem,UINT nBytes);
+  LPSTR SNMP_FUNC_TYPE SnmpUtilOidToA(AsnObjectIdentifier *Oid);
+  LPSTR SNMP_FUNC_TYPE SnmpUtilIdsToA(UINT *Ids,UINT IdLength);
+  VOID SNMP_FUNC_TYPE SnmpUtilPrintOid(AsnObjectIdentifier *Oid);
+  VOID SNMP_FUNC_TYPE SnmpUtilPrintAsnAny(AsnAny *pAny);
+  DWORD SNMP_FUNC_TYPE SnmpSvcGetUptime();
+  VOID SNMP_FUNC_TYPE SnmpSvcSetLogLevel(INT nLogLevel);
+  VOID SNMP_FUNC_TYPE SnmpSvcSetLogType(INT nLogType);
+
+#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
+#define SNMP_OUTPUT_TO_DEBUGGER 0x8
+
+  VOID SNMP_FUNC_TYPE SnmpUtilDbgPrint(INT nLogLevel,LPSTR szFormat,...);
+
+#define SNMPDBG(_x_)
+
+#define DEFINE_SIZEOF(Array) (sizeof(Array)/sizeof((Array)[0]))
+#define DEFINE_OID(SubIdArray) {DEFINE_SIZEOF(SubIdArray),(SubIdArray)}
+#define DEFINE_NULLOID() {0,NULL}
+#define DEFINE_NULLOCTETS() {NULL,0,FALSE}
+
+#define DEFAULT_SNMP_PORT_UDP 161
+#define DEFAULT_SNMP_PORT_IPX 36879
+#define DEFAULT_SNMPTRAP_PORT_UDP 162
+#define DEFAULT_SNMPTRAP_PORT_IPX 36880
+
+#define SNMP_MAX_OID_LEN 128
+
+#define SNMP_MEM_ALLOC_ERROR 1
+#define SNMP_BERAPI_INVALID_LENGTH 10
+#define SNMP_BERAPI_INVALID_TAG 11
+#define SNMP_BERAPI_OVERFLOW 12
+#define SNMP_BERAPI_SHORT_BUFFER 13
+#define SNMP_BERAPI_INVALID_OBJELEM 14
+#define SNMP_PDUAPI_UNRECOGNIZED_PDU 20
+#define SNMP_PDUAPI_INVALID_ES 21
+#define SNMP_PDUAPI_INVALID_GT 22
+#define SNMP_AUTHAPI_INVALID_VERSION 30
+#define SNMP_AUTHAPI_INVALID_MSG_TYPE 31
+#define SNMP_AUTHAPI_TRIV_AUTH_FAILED 32
+
+#ifndef SNMPSTRICT
+
+#define SNMP_oidcpy SnmpUtilOidCpy
+#define SNMP_oidappend SnmpUtilOidAppend
+#define SNMP_oidncmp SnmpUtilOidNCmp
+#define SNMP_oidcmp SnmpUtilOidCmp
+#define SNMP_oidfree SnmpUtilOidFree
+
+#define SNMP_CopyVarBindList SnmpUtilVarBindListCpy
+#define SNMP_FreeVarBindList SnmpUtilVarBindListFree
+#define SNMP_CopyVarBind SnmpUtilVarBindCpy
+#define SNMP_FreeVarBind SnmpUtilVarBindFree
+
+#define SNMP_printany SnmpUtilPrintAsnAny
+
+#define SNMP_free SnmpUtilMemFree
+#define SNMP_malloc SnmpUtilMemAlloc
+#define SNMP_realloc SnmpUtilMemReAlloc
+
+#define SNMP_DBG_free SnmpUtilMemFree
+#define SNMP_DBG_malloc SnmpUtilMemAlloc
+#define SNMP_DBG_realloc SnmpUtilMemReAlloc
+
+#define ASN_RFC1155_IPADDRESS ASN_IPADDRESS
+#define ASN_RFC1155_COUNTER ASN_COUNTER32
+#define ASN_RFC1155_GAUGE ASN_GAUGE32
+#define ASN_RFC1155_TIMETICKS ASN_TIMETICKS
+#define ASN_RFC1155_OPAQUE ASN_OPAQUE
+#define ASN_RFC1213_DISPSTRING ASN_OCTETSTRING
+
+#define ASN_RFC1157_GETREQUEST SNMP_PDU_GET
+#define ASN_RFC1157_GETNEXTREQUEST SNMP_PDU_GETNEXT
+#define ASN_RFC1157_GETRESPONSE SNMP_PDU_RESPONSE
+#define ASN_RFC1157_SETREQUEST SNMP_PDU_SET
+#define ASN_RFC1157_TRAP SNMP_PDU_V1TRAP
+
+#define ASN_CONTEXTSPECIFIC ASN_CONTEXT
+#define ASN_PRIMATIVE ASN_PRIMITIVE
+
+#define RFC1157VarBindList SnmpVarBindList
+#define RFC1157VarBind SnmpVarBind
+#define AsnInteger AsnInteger32
+#define AsnCounter AsnCounter32
+#define AsnGauge AsnGauge32
+#define ASN_UNSIGNED32 ASN_UINTEGER32
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif