
D front-end changes: - Import dmd v2.101.0-beta.1. - Add predefined version `D_Optimized' when compiling with `-O'. - Shortened method syntax (DIP1043) is now enabled by default. - Array literals assigned to `scope' array variables are now allocated on the stack. - Implement `@system' variables (DIP1035), available behind the preview feature flag `-fpreview=systemvariables'. D runtime changes: - Import druntime v2.101.0-beta.1. Phobos changes: - Import phobos v2.101.0-beta.1. - Added `std.typecons.SafeRefCounted', that can be used in `@safe' code with `-fpreview=dip1000'. gcc/d/ChangeLog: * d-attribs.cc (apply_user_attributes): Update for new front-end interface. * d-builtins.cc (d_init_versions): Predefine `D_Optimized' with compiling with optimizations enabled. * d-lang.cc (d_handle_option): Update for new front-end interface. Handle new option `-fpreview=systemvariables'. * dmd/MERGE: Merge upstream dmd e4f8919591. * dmd/VERSION: Bump version to v2.101.0-beta.1. * expr.cc (ExprVisitor::visit (AssignExp *)): Treat construction of static arrays from a call expression as a simple assignment. (ExprVisitor::visit (ArrayLiteralExp *)): Handle array literals with `scope' storage. * gdc.texi: Update documentation of `-fpreview=' options. * lang.opt (fpreview=shortenedmethods): Remove. (fpreview=systemvariables): New option. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime e4f8919591. * src/MERGE: Merge upstream phobos 3ad507b51. gcc/testsuite/ChangeLog: * gdc.dg/simd19630.d: Move tests with errors to ... * gdc.dg/simd19630b.d: ... here. New test. * gdc.dg/simd19630c.d: New test. * gdc.dg/simd_ctfe.d: Removed. * gdc.dg/simd18867.d: New test. * gdc.dg/simd19788.d: New test. * gdc.dg/simd21469.d: New test. * gdc.dg/simd21672.d: New test. * gdc.dg/simd23077.d: New test. * gdc.dg/simd23084.d: New test. * gdc.dg/simd23085.d: New test. * gdc.dg/torture/simd19632.d: New test. * gdc.dg/torture/simd20041.d: New test. * gdc.dg/torture/simd21673.d: New test. * gdc.dg/torture/simd21676.d: New test. * gdc.dg/torture/simd22438.d: New test. * gdc.dg/torture/simd23009.d: New test. * gdc.dg/torture/simd23077.d: New test. * gdc.dg/torture/simd8.d: New test. * gdc.dg/torture/simd9.d: New test. * gdc.dg/torture/simd_prefetch.d: New test.
276 lines
8.7 KiB
D
276 lines
8.7 KiB
D
/**
|
|
* Windows API header module
|
|
*
|
|
* Translated from MinGW Windows headers
|
|
*
|
|
* Authors: Stewart Gordon
|
|
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
|
|
* Source: $(DRUNTIMESRC core/sys/windows/_snmp.d)
|
|
*/
|
|
module core.sys.windows.snmp;
|
|
version (Windows):
|
|
|
|
import core.sys.windows.basetsd /+: HANDLE+/;
|
|
import core.sys.windows.windef /+: BOOL, BYTE, DWORD, INT, LONG, UINT, ULONG+/;
|
|
import core.sys.windows.winnt /+: LPSTR, LPVOID, ULARGE_INTEGER, VOID+/;
|
|
|
|
// These are not documented on MSDN
|
|
enum {
|
|
DEFAULT_SNMP_PORT_UDP = 161,
|
|
DEFAULT_SNMP_PORT_IPX = 36879,
|
|
DEFAULT_SNMPTRAP_PORT_UDP = 162,
|
|
DEFAULT_SNMPTRAP_PORT_IPX = 36880
|
|
}
|
|
|
|
enum : BYTE {
|
|
ASN_UNIVERSAL = 0x00,
|
|
ASN_PRIMITIVE = 0x00,
|
|
ASN_CONSTRUCTOR = 0x20,
|
|
ASN_APPLICATION = 0x40,
|
|
ASN_CONTEXT = 0x80,
|
|
ASN_PRIVATE = 0xC0,
|
|
|
|
SNMP_PDU_GET = ASN_CONTEXT | ASN_CONSTRUCTOR,
|
|
SNMP_PDU_GETNEXT,
|
|
SNMP_PDU_RESPONSE,
|
|
SNMP_PDU_SET,
|
|
SNMP_PDU_GETBULK, // = ASN_CONTEXT | ASN_CONSTRUCTOR | 4
|
|
SNMP_PDU_V1TRAP = ASN_CONTEXT | ASN_CONSTRUCTOR | 4,
|
|
SNMP_PDU_INFORM = ASN_CONTEXT | ASN_CONSTRUCTOR | 6,
|
|
SNMP_PDU_TRAP,
|
|
SNMP_PDU_REPORT,
|
|
ASN_INTEGER = ASN_UNIVERSAL | ASN_PRIMITIVE | 2,
|
|
ASN_BITS,
|
|
ASN_OCTETSTRING,
|
|
ASN_NULL,
|
|
ASN_OBJECTIDENTIFIER, // = ASN_UNIVERSAL | ASN_PRIMITIVE | 6
|
|
ASN_INTEGER32 = ASN_INTEGER,
|
|
ASN_SEQUENCE = ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10,
|
|
ASN_SEQUENCEOF = ASN_SEQUENCE,
|
|
ASN_IPADDRESS = ASN_APPLICATION | ASN_PRIMITIVE,
|
|
ASN_COUNTER32,
|
|
ASN_GAUGE32,
|
|
ASN_TIMETICKS,
|
|
ASN_OPAQUE, // = ASN_APPLICATION | ASN_PRIMITIVE | 4
|
|
ASN_COUNTER64 = ASN_APPLICATION | ASN_PRIMITIVE | 6,
|
|
ASN_UNSIGNED32, // = ASN_APPLICATION | ASN_PRIMITIVE | 7
|
|
SNMP_EXCEPTION_NOSUCHOBJECT = ASN_CONTEXT | ASN_PRIMITIVE,
|
|
SNMP_EXCEPTION_NOSUCHINSTANCE,
|
|
SNMP_EXCEPTION_ENDOFMIBVIEW,
|
|
SNMP_EXTENSION_GET = SNMP_PDU_GET,
|
|
SNMP_EXTENSION_GET_NEXT = SNMP_PDU_GETNEXT,
|
|
SNMP_EXTENSION_GET_BULK = SNMP_PDU_GETBULK,
|
|
SNMP_EXTENSION_SET_TEST = ASN_PRIVATE | ASN_CONSTRUCTOR,
|
|
SNMP_EXTENSION_SET_COMMIT = SNMP_PDU_SET,
|
|
SNMP_EXTENSION_SET_UNDO = ASN_PRIVATE | ASN_CONSTRUCTOR | 1,
|
|
SNMP_EXTENSION_SET_CLEANUP
|
|
}
|
|
|
|
|
|
enum : AsnInteger {
|
|
SNMP_ERRORSTATUS_NOERROR,
|
|
SNMP_ERRORSTATUS_TOOBIG,
|
|
SNMP_ERRORSTATUS_NOSUCHNAME,
|
|
SNMP_ERRORSTATUS_BADVALUE,
|
|
SNMP_ERRORSTATUS_READONLY,
|
|
SNMP_ERRORSTATUS_GENERR,
|
|
SNMP_ERRORSTATUS_NOACCESS,
|
|
SNMP_ERRORSTATUS_WRONGTYPE,
|
|
SNMP_ERRORSTATUS_WRONGLENGTH,
|
|
SNMP_ERRORSTATUS_WRONGENCODING,
|
|
SNMP_ERRORSTATUS_WRONGVALUE,
|
|
SNMP_ERRORSTATUS_NOCREATION,
|
|
SNMP_ERRORSTATUS_INCONSISTENTVALUE,
|
|
SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE,
|
|
SNMP_ERRORSTATUS_COMMITFAILED,
|
|
SNMP_ERRORSTATUS_UNDOFAILED,
|
|
SNMP_ERRORSTATUS_AUTHORIZATIONERROR,
|
|
SNMP_ERRORSTATUS_NOTWRITABLE,
|
|
SNMP_ERRORSTATUS_INCONSISTENTNAME
|
|
}
|
|
|
|
enum : AsnInteger {
|
|
SNMP_GENERICTRAP_COLDSTART,
|
|
SNMP_GENERICTRAP_WARMSTART,
|
|
SNMP_GENERICTRAP_LINKDOWN,
|
|
SNMP_GENERICTRAP_LINKUP,
|
|
SNMP_GENERICTRAP_AUTHFAILURE,
|
|
SNMP_GENERICTRAP_EGPNEIGHLOSS,
|
|
SNMP_GENERICTRAP_ENTERSPECIFIC
|
|
}
|
|
|
|
// These are not documented on MSDN
|
|
enum {
|
|
SNMP_ACCESS_NONE,
|
|
SNMP_ACCESS_NOTIFY,
|
|
SNMP_ACCESS_READ_ONLY,
|
|
SNMP_ACCESS_READ_WRITE,
|
|
SNMP_ACCESS_READ_CREATE
|
|
}
|
|
|
|
enum : BOOL {
|
|
SNMPAPI_ERROR = false,
|
|
SNMPAPI_NOERROR = true
|
|
}
|
|
|
|
enum : INT {
|
|
SNMP_LOG_SILENT,
|
|
SNMP_LOG_FATAL,
|
|
SNMP_LOG_ERROR,
|
|
SNMP_LOG_WARNING,
|
|
SNMP_LOG_TRACE,
|
|
SNMP_LOG_VERBOSE
|
|
}
|
|
|
|
enum INT
|
|
SNMP_OUTPUT_TO_CONSOLE = 1,
|
|
SNMP_OUTPUT_TO_LOGFILE = 2,
|
|
SNMP_OUTPUT_TO_EVENTLOG = 4,
|
|
SNMP_OUTPUT_TO_DEBUGGER = 8;
|
|
|
|
enum size_t SNMP_MAX_OID_LEN = 128;
|
|
|
|
enum : DWORD {
|
|
SNMP_MEM_ALLOC_ERROR = 1,
|
|
SNMP_BERAPI_INVALID_LENGTH = 10,
|
|
SNMP_BERAPI_INVALID_TAG,
|
|
SNMP_BERAPI_OVERFLOW,
|
|
SNMP_BERAPI_SHORT_BUFFER,
|
|
SNMP_BERAPI_INVALID_OBJELEM,
|
|
SNMP_PDUAPI_UNRECOGNIZED_PDU = 20,
|
|
SNMP_PDUAPI_INVALID_ES,
|
|
SNMP_PDUAPI_INVALID_GT,
|
|
SNMP_AUTHAPI_INVALID_VERSION = 30,
|
|
SNMP_AUTHAPI_INVALID_MSG_TYPE,
|
|
SNMP_AUTHAPI_TRIV_AUTH_FAILED,
|
|
}
|
|
|
|
alias INT SNMPAPI;
|
|
alias LONG AsnInteger32;
|
|
alias ULONG AsnUnsigned32, AsnCounter32, AsnGauge32, AsnTimeticks;
|
|
alias ULARGE_INTEGER AsnCounter64;
|
|
|
|
align (4):
|
|
|
|
struct AsnOctetString {
|
|
align (4):
|
|
BYTE* stream;
|
|
UINT length;
|
|
BOOL dynamic;
|
|
}
|
|
alias AsnOctetString AsnBits, AsnSequence, AsnImplicitSequence,
|
|
AsnIPAddress, AsnNetworkAddress, AsnDisplayString, AsnOpaque;
|
|
|
|
struct AsnObjectIdentifier {
|
|
align (4):
|
|
UINT idLength;
|
|
UINT* ids;
|
|
}
|
|
alias AsnObjectIdentifier AsnObjectName;
|
|
|
|
struct AsnAny {
|
|
align (4):
|
|
BYTE asnType;
|
|
union _asnValue {
|
|
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 asnValue;
|
|
}
|
|
alias AsnAny AsnObjectSyntax;
|
|
|
|
struct SnmpVarBind {
|
|
align (4):
|
|
AsnObjectName name;
|
|
AsnObjectSyntax value;
|
|
}
|
|
|
|
struct SnmpVarBindList {
|
|
align (4):
|
|
SnmpVarBind* list;
|
|
UINT len;
|
|
}
|
|
|
|
extern (Windows) {
|
|
VOID SnmpExtensionClose();
|
|
BOOL SnmpExtensionInit(DWORD, HANDLE*, AsnObjectIdentifier*);
|
|
BOOL SnmpExtensionInitEx(AsnObjectIdentifier*);
|
|
BOOL SnmpExtensionMonitor(LPVOID);
|
|
BOOL SnmpExtensionQuery(BYTE, SnmpVarBindList*, AsnInteger32*,
|
|
AsnInteger32*);
|
|
BOOL SnmpExtensionQueryEx(DWORD, DWORD, SnmpVarBindList*, AsnOctetString*,
|
|
AsnInteger32*, AsnInteger32*);
|
|
BOOL SnmpExtensionTrap(AsnObjectIdentifier*, AsnInteger32*, AsnInteger32*,
|
|
AsnTimeticks*, SnmpVarBindList*);
|
|
DWORD SnmpSvcGetUptime();
|
|
VOID SnmpSvcSetLogLevel(INT);
|
|
VOID SnmpSvcSetLogType(INT);
|
|
SNMPAPI SnmpUtilAsnAnyCpy(AsnAny*, AsnAny*);
|
|
VOID SnmpUtilAsnAnyFree(AsnAny*);
|
|
VOID SnmpUtilDbgPrint(INT, LPSTR, ...);
|
|
LPSTR SnmpUtilIdsToA(UINT*, UINT);
|
|
LPVOID SnmpUtilMemAlloc(UINT);
|
|
VOID SnmpUtilMemFree(LPVOID);
|
|
LPVOID SnmpUtilMemReAlloc(LPVOID, UINT);
|
|
SNMPAPI SnmpUtilOctetsCmp(AsnOctetString*, AsnOctetString*);
|
|
SNMPAPI SnmpUtilOctetsCpy(AsnOctetString*, AsnOctetString*);
|
|
VOID SnmpUtilOctetsFree(AsnOctetString*);
|
|
SNMPAPI SnmpUtilOctetsNCmp(AsnOctetString*, AsnOctetString*, UINT);
|
|
SNMPAPI SnmpUtilOidAppend(AsnObjectIdentifier*, AsnObjectIdentifier*);
|
|
SNMPAPI SnmpUtilOidCmp(AsnObjectIdentifier*, AsnObjectIdentifier*);
|
|
SNMPAPI SnmpUtilOidCpy(AsnObjectIdentifier*, AsnObjectIdentifier*);
|
|
VOID SnmpUtilOidFree(AsnObjectIdentifier*);
|
|
SNMPAPI SnmpUtilOidNCmp(AsnObjectIdentifier*, AsnObjectIdentifier*, UINT);
|
|
LPSTR SnmpUtilOidToA(AsnObjectIdentifier*);
|
|
VOID SnmpUtilPrintAsnAny(AsnAny*);
|
|
VOID SnmpUtilPrintOid(AsnObjectIdentifier*);
|
|
SNMPAPI SnmpUtilVarBindCpy(SnmpVarBind*, SnmpVarBind*);
|
|
SNMPAPI SnmpUtilVarBindListCpy(SnmpVarBindList*, SnmpVarBindList*);
|
|
VOID SnmpUtilVarBindFree(SnmpVarBind*);
|
|
VOID SnmpUtilVarBindListFree(SnmpVarBindList*);
|
|
}
|
|
|
|
alias SnmpUtilMemAlloc SNMP_malloc;
|
|
alias SnmpUtilMemFree SNMP_free;
|
|
alias SnmpUtilMemReAlloc SNMP_realloc;
|
|
alias SnmpUtilMemAlloc SNMP_DBG_malloc;
|
|
alias SnmpUtilMemFree SNMP_DBG_free;
|
|
alias SnmpUtilMemReAlloc SNMP_DBG_realloc;
|
|
alias SnmpUtilOidAppend SNMP_oidappend;
|
|
alias SnmpUtilOidCmp SNMP_oidcmp;
|
|
alias SnmpUtilOidCpy SNMP_oidcpy;
|
|
alias SnmpUtilOidFree SNMP_oidfree;
|
|
alias SnmpUtilOidNCmp SNMP_oidncmp;
|
|
alias SnmpUtilPrintAsnAny SNMP_printany;
|
|
alias SnmpUtilVarBindCpy SNMP_CopyVarBind;
|
|
alias SnmpUtilVarBindListCpy SNMP_CopyVarBindList;
|
|
alias SnmpUtilVarBindFree SNMP_FreeVarBind;
|
|
alias SnmpUtilVarBindListFree SNMP_FreeVarBindList;
|
|
alias ASN_IPADDRESS ASN_RFC1155_IPADDRESS;
|
|
alias ASN_COUNTER32 ASN_RFC1155_COUNTER;
|
|
alias ASN_GAUGE32 ASN_RFC1155_GAUGE;
|
|
alias ASN_TIMETICKS ASN_RFC1155_TIMETICKS;
|
|
alias ASN_OPAQUE ASN_RFC1155_OPAQUE;
|
|
alias ASN_OCTETSTRING ASN_RFC1213_DISPSTRING;
|
|
alias SNMP_PDU_GET ASN_RFC1157_GETREQUEST;
|
|
alias SNMP_PDU_GETNEXT ASN_RFC1157_GETNEXTREQUEST;
|
|
alias SNMP_PDU_RESPONSE ASN_RFC1157_GETRESPONSE;
|
|
alias SNMP_PDU_SET ASN_RFC1157_SETREQUEST;
|
|
alias SNMP_PDU_V1TRAP ASN_RFC1157_TRAP;
|
|
alias ASN_CONTEXT ASN_CONTEXTSPECIFIC;
|
|
alias ASN_PRIMITIVE ASN_PRIMATIVE;
|
|
alias SnmpVarBindList RFC1157VarBindList;
|
|
alias SnmpVarBind RFC1157VarBind;
|
|
alias AsnInteger32 AsnInteger;
|
|
alias AsnCounter32 AsnCounter;
|
|
alias AsnGauge32 AsnGauge;
|