📄 types.h
字号:
#ifndef NET_SNMP_TYPES_H#define NET_SNMP_TYPES_H /** * Definitions of data structures, used within the library API. */#include <stdio.h>#ifndef NET_SNMP_CONFIG_H#error "Please include <net-snmp/net-snmp-config.h> before this file"#endif /* * For 'timeval' */#if TIME_WITH_SYS_TIME# ifdef WIN32# include <sys/timeb.h># else# include <sys/time.h># endif# include <time.h>#else# if HAVE_SYS_TIME_H# include <sys/time.h># else# include <time.h># endif#endif#ifdef HAVE_INTTYPES_H#include <inttypes.h>#endif#include <sys/types.h>#ifdef HAVE_WINSOCK_H#include <winsock.h>#endif#if HAVE_NETINET_IN_H#include <netinet/in.h> /* For definition of in_addr_t */#endif#ifdef __cplusplusextern "C" {#endif#ifndef MAX_SUBID /* temporary - duplicate definition protection */#ifndef EIGHTBIT_SUBIDStypedef u_long oid;#define MAX_SUBID 0xFFFFFFFF#elsetypedef u_char oid;#define MAX_SUBID 0xFF#endif#endif#ifndef HAVE_SOCKLEN_Ttypedef u_int socklen_t;#endif#ifndef HAVE_IN_ADDR_Ttypedef u_int in_addr_t;#endif#ifndef HAVE_SSIZE_T#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647typedef int ssize_t;#elsetypedef long ssize_t;#endif#endif /* * Try to ensure we have 32-bit (and hopefully 64-bit) * integer types available. */#ifndef HAVE_INT8_Ttypedef signed char int8_t;#endif /* !HAVE_INT8_T */#ifndef HAVE_UINT8_T#ifdef HAVE_U_INT8_Ttypedef u_int8_t uint8_t;#elsetypedef unsigned char uint8_t;#endif#endif /* !HAVE_UINT8_T */#ifndef HAVE_INT16_T#if SIZEOF_INT == 2#define INT16_T int#elif SIZEOF_SHORT == 2#define INT16_T short#else#define _INT16_IS_NOT_16BIT#define INT16_T short#endiftypedef INT16_T int16_t;#endif /* !HAVE_INT16_T */#ifndef HAVE_UINT16_T#ifdef HAVE_U_INT16_Ttypedef u_int16_t uint16_t;#else#ifdef INT16_Ttypedef unsigned INT16_T uint16_t;#elsetypedef unsigned short uint16_t;#endif#endif#endif /* !HAVE_UINT16_T */#ifndef HAVE_INT32_T#if SIZEOF_INT == 4#define INT32_T int #elif SIZEOF_LONG == 4#define INT32_T long #elif SIZEOF_SHORT == 4#define INT32_T short #else#define _INT32_IS_NOT_32BIT#define INT32_T int #endiftypedef INT32_T int32_t;#endif /* !HAVE_INT32_T */#ifndef HAVE_UINT32_T#ifdef HAVE_U_INT32_Ttypedef u_int32_t uint32_t;#else#ifdef INT32_Ttypedef unsigned INT32_T uint32_t;#elsetypedef unsigned int uint32_t;#endif#endif#endif /* !HAVE_UINT32_T */#ifndef HAVE_INT64_T#if SIZEOF_LONG == 8#define INT64_T long #elif SIZEOF_LONG_LONG == 8#define INT64_T long long#elif SIZEOF_INT == 8#define INT64_T int #elif SIZEOF_LONG >= 8#define INT64_T long #define _INT64_IS_NOT_64BIT#endif#ifdef INT64_Ttypedef INT64_T int64_t;#define HAVE_INT64_T 1#endif#endif /* !HAVE_INT64_T */#ifndef HAVE_UINT64_T#ifdef HAVE_U_INT64_Ttypedef u_int64_t uint64_t;#elif defined(INT64_T)typedef unsigned INT64_T uint64_t;#endif#define HAVE_UINT64_T 1#endif#ifndef HAVE_INTMAX_T#ifdef SIZEOF_LONG_LONGtypedef long long intmax_t;#define SIZEOF_INTMAX_T SIZEOF_LONG_LONG#elif defined(HAVE_INT64_T) && !defined(_INT64_IS_NOT_64BIT)typedef int64_t intmax_t;#define SIZEOF_INTMAX_T 8#elsetypedef long intmax_t;#define SIZEOF_INTMAX_T SIZEOF_LONG#endif#define HAVE_INTMAX_T 1#endif#ifndef HAVE_UINTMAX_T#ifdef SIZEOF_LONG_LONGtypedef unsigned long long uintmax_t;#elif defined(HAVE_UINT64_T) && !defined(_INT64_IS_NOT_64BIT)typedef uint64_t uintmax_t;#elsetypedef unsigned long uintmax_t;#endif#define HAVE_UINTMAX_T 1#endif#ifndef HAVE_UINTPTR_T#if SIZEOF_LONG == 8/* likely 64bit machine with 64bit addressing? */ typedef unsigned long uintptr_t;#else typedef unsigned uintptr_t;#endif#endif#ifndef HAVE_INTPTR_T#if SIZEOF_LONG == 8/* likely 64bit machine with 64bit addressing? */ typedef long intptr_t;#else typedef int intptr_t;#endif#endif /* * For the initial release, this will just refer to the * relevant UCD header files. * In due course, the types and structures relevant to the * Net-SNMP API will be identified, and defined here directly. * * But for the time being, this header file is primarily a placeholder, * to allow application writers to adopt the new header file names. */#include <net-snmp/definitions.h>#include <net-snmp/library/snmp_api.h>/* * #include <net-snmp/library/libsnmp.h> */ typedef struct netsnmp_index_s { size_t len; oid *oids; } netsnmp_index; typedef struct netsnmp_void_array_s { size_t size; void * *array; } netsnmp_void_array; /* * references to various types */ typedef struct netsnmp_ref_void { void * val; } netsnmp_ref_void; typedef union { u_long ul; u_int ui; u_short us; u_char uc; long sl; int si; short ss; char sc; char * cp; void * vp; } netsnmp_cvalue;#if 0 typedef struct netsnmp_ref_u_char { u_char * val; } netsnmp_ref_U_char; typedef struct netsnmp_ref_char { char * val; } netsnmp_ref_void; typedef struct netsnmp_ref_int_s { int val; } netsnmp_ref_int; typedef struct netsnmp_ref_u_int_s { u_int val; } netsnmp_ref_int; typedef struct netsnmp_ref_u_long_s { u_long val; } netsnmp_ref_u_long;#endif typedef struct netsnmp_ref_size_t_s { size_t val; } * netsnmp_ref_size_t;#ifdef __cplusplus}#endif#endif /* NET_SNMP_TYPES_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -