types.h

00001 #ifndef NET_SNMP_TYPES_H
00002 #define NET_SNMP_TYPES_H
00003 
00008 #include <stdio.h>
00009 
00010 #ifndef NET_SNMP_CONFIG_H
00011 #error "Please include <net-snmp/net-snmp-config.h> before this file"
00012 #endif
00013 
00014                         /*
00015                          * For 'timeval' 
00016                          */
00017 #if TIME_WITH_SYS_TIME
00018 # ifdef WIN32
00019 #  include <sys/timeb.h>
00020 # else
00021 #  include <sys/time.h>
00022 # endif
00023 # include <time.h>
00024 #else
00025 # if HAVE_SYS_TIME_H
00026 #  include <sys/time.h>
00027 # else
00028 #  include <time.h>
00029 # endif
00030 #endif
00031 
00032 #ifdef HAVE_INTTYPES_H
00033 #include <inttypes.h>
00034 #endif
00035 #include <sys/types.h>
00036 #ifdef HAVE_WINSOCK_H
00037 #include <winsock.h>
00038 #endif
00039 
00040 #if HAVE_NETINET_IN_H
00041 #include <netinet/in.h>         /* For definition of in_addr_t */
00042 #endif
00043 
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047 
00048 #ifndef MAX_SUBID               /* temporary - duplicate definition protection */
00049 #ifndef EIGHTBIT_SUBIDS
00050 typedef u_long  oid;
00051 #define MAX_SUBID   0xFFFFFFFF
00052 #else
00053 typedef u_char  oid;
00054 #define MAX_SUBID   0xFF
00055 #endif
00056 #endif
00057 
00058 #ifndef HAVE_SOCKLEN_T
00059 typedef u_int socklen_t;
00060 #endif
00061 
00062 #ifndef HAVE_IN_ADDR_T
00063 typedef uint32_t in_addr_t;
00064 #endif
00065 
00066 #ifndef HAVE_SSIZE_T
00067 #if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
00068 typedef int ssize_t;
00069 #else
00070 typedef long ssize_t;
00071 #endif
00072 #endif
00073 
00074     /*
00075      * Try to ensure we have 32-bit (and hopefully 64-bit)
00076      *    integer types available.
00077      */
00078 
00079 #ifndef HAVE_INT8_T
00080 typedef signed char int8_t;
00081 #endif /* !HAVE_INT8_T */
00082 
00083 #ifndef HAVE_UINT8_T
00084 #ifdef HAVE_U_INT8_T
00085 typedef u_int8_t      uint8_t;
00086 #else
00087 typedef unsigned char uint8_t;
00088 #endif
00089 #endif /* !HAVE_UINT8_T */
00090 
00091 #ifndef HAVE_INT16_T
00092 #if   SIZEOF_INT == 2
00093 #define INT16_T int
00094 #elif SIZEOF_SHORT == 2
00095 #define INT16_T short
00096 #else
00097 #define _INT16_IS_NOT_16BIT
00098 #define INT16_T short
00099 #endif
00100 typedef INT16_T int16_t;
00101 #endif /* !HAVE_INT16_T */
00102 
00103 #ifndef HAVE_UINT16_T
00104 #ifdef HAVE_U_INT16_T
00105 typedef u_int16_t        uint16_t;
00106 #else
00107 #ifdef INT16_T
00108 typedef unsigned INT16_T uint16_t;
00109 #else
00110 typedef unsigned short   uint16_t;
00111 #endif
00112 #endif
00113 #endif /* !HAVE_UINT16_T */
00114 
00115 #ifndef HAVE_INT32_T
00116 #if   SIZEOF_INT == 4
00117 #define INT32_T int 
00118 #elif SIZEOF_LONG == 4
00119 #define INT32_T long 
00120 #elif SIZEOF_SHORT == 4
00121 #define INT32_T short 
00122 #else
00123 #define _INT32_IS_NOT_32BIT
00124 #define INT32_T int 
00125 #endif
00126 typedef INT32_T int32_t;
00127 #endif /* !HAVE_INT32_T */
00128 
00129 #ifndef HAVE_UINT32_T
00130 #ifdef HAVE_U_INT32_T
00131 typedef u_int32_t        uint32_t;
00132 #else
00133 #ifdef INT32_T
00134 typedef unsigned INT32_T uint32_t;
00135 #else
00136 typedef unsigned int     uint32_t;
00137 #endif
00138 #endif
00139 #endif /* !HAVE_UINT32_T */
00140 
00141 #ifndef HAVE_INT64_T
00142 #if SIZEOF_LONG == 8
00143 #define INT64_T long 
00144 #elif SIZEOF_LONG_LONG == 8
00145 #define INT64_T long long
00146 #elif   SIZEOF_INT == 8
00147 #define INT64_T int 
00148 #elif SIZEOF_LONG >= 8
00149 #define INT64_T long 
00150 #define _INT64_IS_NOT_64BIT
00151 #endif
00152 #ifdef INT64_T
00153 typedef INT64_T int64_t;
00154 #define HAVE_INT64_T 1
00155 #endif
00156 #endif /* !HAVE_INT64_T */
00157 
00158 #ifndef HAVE_UINT64_T
00159 #ifdef HAVE_U_INT64_T
00160 typedef u_int64_t        uint64_t;
00161 #elif defined(INT64_T)
00162 typedef unsigned INT64_T uint64_t;
00163 #endif
00164 #define HAVE_UINT64_T 1
00165 #endif
00166 
00167 #ifndef HAVE_INTMAX_T
00168 #ifdef SIZEOF_LONG_LONG
00169 typedef long long intmax_t;
00170 #define SIZEOF_INTMAX_T SIZEOF_LONG_LONG
00171 #elif defined(HAVE_INT64_T) && !defined(_INT64_IS_NOT_64BIT)
00172 typedef int64_t   intmax_t;
00173 #define SIZEOF_INTMAX_T 8
00174 #else
00175 typedef long      intmax_t;
00176 #define SIZEOF_INTMAX_T SIZEOF_LONG
00177 #endif
00178 #define HAVE_INTMAX_T 1
00179 #endif
00180 
00181 #ifndef HAVE_UINTMAX_T
00182 #ifdef SIZEOF_LONG_LONG
00183 typedef unsigned long long uintmax_t;
00184 #elif defined(HAVE_UINT64_T) && !defined(_INT64_IS_NOT_64BIT)
00185 typedef uint64_t           uintmax_t;
00186 #else
00187 typedef unsigned long      uintmax_t;
00188 #endif
00189 #define HAVE_UINTMAX_T 1
00190 #endif
00191 
00192 #ifndef HAVE_UINTPTR_T
00193 #if SIZEOF_LONG == 8
00194 /* likely 64bit machine with 64bit addressing? */
00195     typedef unsigned long uintptr_t;
00196 #else
00197     typedef unsigned uintptr_t;
00198 #endif
00199 #endif
00200 
00201 #ifndef HAVE_INTPTR_T
00202 #if SIZEOF_LONG == 8
00203 /* likely 64bit machine with 64bit addressing? */
00204     typedef long intptr_t;
00205 #else
00206     typedef int intptr_t;
00207 #endif
00208 #endif
00209     
00210     /*
00211      *  For the initial release, this will just refer to the
00212      *  relevant UCD header files.
00213      *    In due course, the types and structures relevant to the
00214      *  Net-SNMP API will be identified, and defined here directly.
00215      *
00216      *  But for the time being, this header file is primarily a placeholder,
00217      *  to allow application writers to adopt the new header file names.
00218      */
00219 
00220 
00221 #include <net-snmp/definitions.h>
00222 #include <net-snmp/library/snmp_api.h>
00223 /*
00224  * #include <net-snmp/library/libsnmp.h> 
00225  */
00226 
00227     typedef struct netsnmp_index_s {
00228        size_t      len;
00229        oid         *oids;
00230     } netsnmp_index;
00231 
00232 
00233     typedef struct netsnmp_void_array_s {
00234        size_t  size;
00235        void * *array;
00236     } netsnmp_void_array;
00237 
00238     /*
00239      * references to various types
00240      */
00241     typedef struct netsnmp_ref_void {
00242        void * val;
00243     } netsnmp_ref_void;
00244 
00245     typedef union {
00246         u_long  ul;
00247         u_int   ui;
00248         u_short us;
00249         u_char  uc;
00250         long    sl;
00251         int     si;
00252         short   ss;
00253         char    sc;
00254         char *  cp;
00255         void *  vp;
00256     } netsnmp_cvalue;
00257 
00258 #if 0
00259     typedef struct netsnmp_ref_u_char {
00260        u_char * val;
00261     } netsnmp_ref_U_char;
00262 
00263     typedef struct netsnmp_ref_char {
00264        char * val;
00265     } netsnmp_ref_void;
00266 
00267     typedef struct netsnmp_ref_int_s {
00268        int val;
00269     } netsnmp_ref_int;
00270 
00271     typedef struct netsnmp_ref_u_int_s {
00272        u_int val;
00273     } netsnmp_ref_int;
00274 
00275     typedef struct netsnmp_ref_u_long_s {
00276        u_long val;
00277     } netsnmp_ref_u_long;
00278 #endif
00279 
00280     typedef struct netsnmp_ref_size_t_s {
00281        size_t val;
00282     } * netsnmp_ref_size_t;
00283 
00284 #ifdef __cplusplus
00285 }
00286 #endif
00287 
00288 #endif                          /* NET_SNMP_TYPES_H */

net-snmpに対してSat Sep 5 13:14:28 2009に生成されました。  doxygen 1.4.7