00001
00002
00003
00004 #ifndef NETSNMP_WATCHER_H
00005 #define NETSNMP_WATCHER_H
00006
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010
00015
00016
00017
00018
00019
00020
00021 #define NETSNMP_WATCHER_DIRECT MIB_HANDLER_CUSTOM1
00022
00026 #define WATCHER_FIXED_SIZE 0x01
00027
00032 #define WATCHER_MAX_SIZE 0x02
00033
00038 #define WATCHER_SIZE_IS_PTR 0x04
00039
00045 #define WATCHER_SIZE_STRLEN 0x08
00046
00047 typedef struct netsnmp_watcher_info_s {
00048 void *data;
00049 size_t data_size;
00050 size_t max_size;
00051 u_char type;
00052 int flags;
00053 size_t *data_size_p;
00054 } netsnmp_watcher_info;
00055
00058 int netsnmp_register_watched_instance( netsnmp_handler_registration *reginfo,
00059 netsnmp_watcher_info *winfo);
00060 int netsnmp_register_watched_scalar( netsnmp_handler_registration *reginfo,
00061 netsnmp_watcher_info *winfo);
00062 int netsnmp_register_watched_timestamp(netsnmp_handler_registration *reginfo,
00063 marker_t timestamp);
00064 int netsnmp_watched_timestamp_register(netsnmp_mib_handler *whandler,
00065 netsnmp_handler_registration *reginfo,
00066 marker_t timestamp);
00067 int netsnmp_register_watched_spinlock(netsnmp_handler_registration *reginfo,
00068 int *spinlock);
00069
00070
00071
00072
00073
00074 int netsnmp_register_ulong_scalar(const char *name,
00075 const oid * reg_oid, size_t reg_oid_len,
00076 u_long * it,
00077 Netsnmp_Node_Handler * subhandler);
00078 int netsnmp_register_read_only_ulong_scalar(const char *name,
00079 const oid * reg_oid, size_t reg_oid_len,
00080 u_long * it,
00081 Netsnmp_Node_Handler * subhandler);
00082 int netsnmp_register_long_scalar(const char *name,
00083 const oid * reg_oid, size_t reg_oid_len,
00084 long * it,
00085 Netsnmp_Node_Handler * subhandler);
00086 int netsnmp_register_read_only_long_scalar(const char *name,
00087 const oid * reg_oid, size_t reg_oid_len,
00088 long * it,
00089 Netsnmp_Node_Handler * subhandler);
00090 int netsnmp_register_int_scalar(const char *name,
00091 const oid * reg_oid, size_t reg_oid_len,
00092 int * it,
00093 Netsnmp_Node_Handler * subhandler);
00094 int netsnmp_register_read_only_int_scalar(const char *name,
00095 const oid * reg_oid, size_t reg_oid_len,
00096 int * it,
00097 Netsnmp_Node_Handler * subhandler);
00098 int netsnmp_register_read_only_counter32_scalar(const char *name,
00099 const oid * reg_oid, size_t reg_oid_len,
00100 u_long * it,
00101 Netsnmp_Node_Handler * subhandler);
00102
00103 #define WATCHER_HANDLER_NAME "watcher"
00104
00105 netsnmp_mib_handler *netsnmp_get_watcher_handler(void);
00106
00107 netsnmp_watcher_info *
00108 netsnmp_init_watcher_info(netsnmp_watcher_info *, void *, size_t, u_char, int);
00109
00110 netsnmp_watcher_info *
00111 netsnmp_init_watcher_info6(netsnmp_watcher_info *,
00112 void *, size_t, u_char, int, size_t, size_t*);
00113
00114 netsnmp_watcher_info *
00115 netsnmp_create_watcher_info(void *, size_t, u_char, int);
00116
00117 netsnmp_watcher_info *
00118 netsnmp_create_watcher_info6(void *, size_t, u_char, int, size_t, size_t*);
00119
00120 Netsnmp_Node_Handler netsnmp_watcher_helper_handler;
00121
00122 netsnmp_mib_handler *netsnmp_get_watched_timestamp_handler(void);
00123 Netsnmp_Node_Handler netsnmp_watched_timestamp_handler;
00124
00125 netsnmp_mib_handler *netsnmp_get_watched_spinlock_handler(void);
00126 Netsnmp_Node_Handler netsnmp_watched_spinlock_handler;
00127
00128 #ifdef __cplusplus
00129 }
00130 #endif
00131
00132 #endif