kernel_sunos5.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:5k
- /*- This is a -*- C -*- compatible header file
- *
- * Generic public interface for SUNOS5_INSTRUMENTATION
- *
- * This file contains manifest constants (#defines), macros, enumerations,
- * public structure definitions, static const definitions, global variable
- * declarations, and function prototypes.
- *
- * This file contains types and structures for SunOS 5.x instrumentation
- *
- */
- #include <inet/mib2.h>
- #define COPY_IPADDR(fp, from, tp, to)
- fp = from;
- tp = to;
- *tp++ = *fp++;
- *tp++ = *fp++;
- *tp++ = *fp++;
- *tp++ = *fp++;
- #ifndef ZZ_SUNOS5_INSTR /* duplicate include prevention */
- #define ZZ_SUNOS5_INSTR
- /*-
- * Manifest constants
- */
- #define KSTAT_DATA_MAX 100 /* Maximum number of kstat entries. To be changed later */
- #define MIBCACHE_SIZE 20 /* Number of MIB cache entries */
- /*-
- * Macros
- */
- #define CACHE_MOREDATA 0x001 /* There are unread data outside cache */
- /*-
- * Enumeration types
- */
- typedef enum { GET_FIRST, GET_EXACT, GET_NEXT } req_e;
- typedef enum { FOUND, NOT_FOUND, NEED_NEXT } found_e;
- typedef enum {
- MIB_SYSTEM = 0,
- MIB_INTERFACES = 1,
- MIB_AT = 2,
- MIB_IP = 3,
- MIB_IP_ADDR = 4,
- MIB_IP_ROUTE = 5,
- MIB_IP_NET = 6,
- MIB_ICMP = 7,
- MIB_TCP = 8,
- MIB_TCP_CONN = 9,
- MIB_UDP = 10,
- MIB_UDP_LISTEN = 11,
- MIB_EGP = 12,
- MIB_CMOT = 13,
- MIB_TRANSMISSION = 14,
- MIB_SNMP = 15
- } mibgroup_e;
- /*-
- * Structure definitions (use "typedef struct foo {} foo;" form)
- */
- /*
- * MIB-II cache. Simple buffering scheme - last read block is in the cache
- */
- typedef struct mibcache {
- mibgroup_e cache_groupid; /* MIB-II group */
- size_t cache_size; /* Size of this cache table in bytes */
- void *cache_addr; /* Pointer to real cache memory */
- size_t cache_length; /* Useful length in bytes */
- size_t cache_ttl; /* Time this type of cache entry stays valid */
- time_t cache_time; /* CURRENT time left for this cache entry */
- int cache_flags; /* Cache state */
- int cache_last_found; /* Index of last cache element that was found */
- void *cache_comp; /* Compare routine used to set the cache */
- void *cache_arg; /* Argument for compare routine used to set the cache */
- } mibcache;
- /*
- * Mapping between mibgroup_t, mibtable_t and mib2.h defines
- */
- typedef struct mibmap {
- int group; /* mib2.h group name */
- int table; /* mib2.h table name */
- } mibmap;
- /*
- * Structures, missing in <inet/mib2.h>
- */
- typedef unsigned long TimeTicks;
- typedef struct mib2_ifEntry {
- int ifIndex; /* ifEntry 1 */
- DeviceName ifDescr; /* ifEntry 2 */
- int ifType; /* ifEntry 3 */
- int ifMtu; /* ifEntry 4 */
- Gauge ifSpeed; /* ifEntry 5 */
- PhysAddress ifPhysAddress; /* ifEntry 6 */
- int ifAdminStatus; /* ifEntry 7 */
- int ifOperStatus; /* ifEntry 8 */
- TimeTicks ifLastChange; /* ifEntry 9 */
- Counter ifInOctets; /* ifEntry 10 */
- Counter ifInUcastPkts; /* ifEntry 11 */
- Counter ifInNUcastPkts; /* ifEntry 12 */
- Counter ifInDiscards; /* ifEntry 13 */
- Counter ifInErrors; /* ifEntry 14 */
- Counter ifInUnknownProtos; /* ifEntry 15 */
- Counter ifOutOctets; /* ifEntry 16 */
- Counter ifOutUcastPkts; /* ifEntry 17 */
- Counter ifOutNUcastPkts; /* ifEntry 18 */
- Counter ifOutDiscards; /* ifEntry 19 */
- Counter ifOutErrors; /* ifEntry 20 */
- Gauge ifOutQLen; /* ifEntry 21 */
- int ifSpecific; /* ifEntry 22 */
- } mib2_ifEntry_t;
- /*-
- * Static const definitions (must be declared static and initialized)
- */
- /*-
- * Global variable declarations (using extern and without initialization)
- */
- /*-
- * Function prototypes (use void as argument type if there are no arguments)
- */
- #ifdef _STDC_COMPAT
- #ifdef __cplusplus
- extern "C" {
- #endif
- #endif
- void init_kernel_sunos5(void);
- int getKstat(const char *statname, const char *varname,
- void *value);
- int getMibstat(mibgroup_e grid, void *resp,
- size_t entrysize, req_e req_type,
- int (*comp) (void *, void *), void *arg);
- int Get_everything(void *, void *);
- int getKstatInt(const char *classname,
- const char *statname, const char *varname,
- int *value);
- int getKstatString(const char *statname, const char *varname,
- char *value, size_t value_len);
- #ifdef _STDC_COMPAT
- #ifdef __cplusplus
- }
- #endif
- #endif
- /*-
- * These variables describe the formatting of this file. If you don't like the
- * template defaults, feel free to change them here (not in your .emacs file).
- *
- * Local Variables:
- * comment-column: 32
- * c-indent-level: 4
- * c-continued-statement-offset: 4
- * c-brace-offset: -4
- * c-argdecl-indent: 0
- * c-label-offset: -4
- * fill-column: 79
- * fill-prefix: " * "
- * End:
- */
- #endif