net-snmp
5.4.1
|
00001 /* 00002 * watcher.h 00003 */ 00004 #ifndef NETSNMP_WATCHER_H 00005 #define NETSNMP_WATCHER_H 00006 00007 #ifdef __cplusplus 00008 extern "C" { 00009 #endif 00010 00011 /* 00012 * if handler flag has this bit set, the timestamp will be 00013 * treated as a pointer to the timestamp. If this bit is 00014 * not set (the default), the timestamp is a struct timeval 00015 * that must be compared to the agent starttime. 00016 */ 00017 #define NETSNMP_WATCHER_DIRECT MIB_HANDLER_CUSTOM1 00018 00019 #define WATCHER_FIXED_SIZE 0x01 00020 #define WATCHER_MAX_SIZE 0x02 00021 00022 typedef struct netsnmp_watcher_info_s { 00023 void *data; 00024 size_t data_size; 00025 size_t max_size; 00026 u_char type; 00027 int flags; 00028 } netsnmp_watcher_info; 00029 00030 int netsnmp_register_watched_instance( netsnmp_handler_registration *reginfo, 00031 netsnmp_watcher_info *winfo); 00032 int netsnmp_register_watched_scalar( netsnmp_handler_registration *reginfo, 00033 netsnmp_watcher_info *winfo); 00034 int netsnmp_register_watched_timestamp(netsnmp_handler_registration *reginfo, 00035 marker_t timestamp); 00036 int netsnmp_watched_timestamp_register(netsnmp_mib_handler *whandler, 00037 netsnmp_handler_registration *reginfo, 00038 marker_t timestamp); 00039 int netsnmp_register_watched_spinlock(netsnmp_handler_registration *reginfo, 00040 int *spinlock); 00041 00042 /* 00043 * Convenience registration calls 00044 */ 00045 00046 int netsnmp_register_ulong_scalar(const char *name, 00047 oid * reg_oid, size_t reg_oid_len, 00048 u_long * it, 00049 Netsnmp_Node_Handler * subhandler); 00050 int netsnmp_register_read_only_ulong_scalar(const char *name, 00051 oid * reg_oid, size_t reg_oid_len, 00052 u_long * it, 00053 Netsnmp_Node_Handler * subhandler); 00054 int netsnmp_register_long_scalar(const char *name, 00055 oid * reg_oid, size_t reg_oid_len, 00056 long * it, 00057 Netsnmp_Node_Handler * subhandler); 00058 int netsnmp_register_read_only_long_scalar(const char *name, 00059 oid * reg_oid, size_t reg_oid_len, 00060 long * it, 00061 Netsnmp_Node_Handler * subhandler); 00062 int netsnmp_register_int_scalar(const char *name, 00063 oid * reg_oid, size_t reg_oid_len, 00064 int * it, 00065 Netsnmp_Node_Handler * subhandler); 00066 int netsnmp_register_read_only_int_scalar(const char *name, 00067 oid * reg_oid, size_t reg_oid_len, 00068 int * it, 00069 Netsnmp_Node_Handler * subhandler); 00070 int netsnmp_register_read_only_counter32_scalar(const char *name, 00071 oid * reg_oid, size_t reg_oid_len, 00072 u_long * it, 00073 Netsnmp_Node_Handler * subhandler); 00074 00075 #define WATCHER_HANDLER_NAME "watcher" 00076 00077 netsnmp_mib_handler *netsnmp_get_watcher_handler(void); 00078 netsnmp_watcher_info *netsnmp_create_watcher_info(void *, size_t, u_char, int); 00079 Netsnmp_Node_Handler netsnmp_watcher_helper_handler; 00080 00081 netsnmp_mib_handler *netsnmp_get_watched_timestamp_handler(void); 00082 Netsnmp_Node_Handler netsnmp_watched_timestamp_handler; 00083 00084 netsnmp_mib_handler *netsnmp_get_watched_spinlock_handler(void); 00085 Netsnmp_Node_Handler netsnmp_watched_spinlock_handler; 00086 00087 #ifdef __cplusplus 00088 } 00089 #endif 00090 00091 #endif