summaryrefslogtreecommitdiff
path: root/include/net-snmp/agent/watcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/agent/watcher.h')
-rw-r--r--include/net-snmp/agent/watcher.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/include/net-snmp/agent/watcher.h b/include/net-snmp/agent/watcher.h
new file mode 100644
index 0000000..43a19d7
--- /dev/null
+++ b/include/net-snmp/agent/watcher.h
@@ -0,0 +1,91 @@
+/*
+ * watcher.h
+ */
+#ifndef NETSNMP_WATCHER_H
+#define NETSNMP_WATCHER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * if handler flag has this bit set, the timestamp will be
+ * treated as a pointer to the timestamp. If this bit is
+ * not set (the default), the timestamp is a struct timeval
+ * that must be compared to the agent starttime.
+ */
+#define NETSNMP_WATCHER_DIRECT MIB_HANDLER_CUSTOM1
+
+#define WATCHER_FIXED_SIZE 0x01
+#define WATCHER_MAX_SIZE 0x02
+
+typedef struct netsnmp_watcher_info_s {
+ void *data;
+ size_t data_size;
+ size_t max_size;
+ u_char type;
+ int flags;
+} netsnmp_watcher_info;
+
+int netsnmp_register_watched_instance( netsnmp_handler_registration *reginfo,
+ netsnmp_watcher_info *winfo);
+int netsnmp_register_watched_scalar( netsnmp_handler_registration *reginfo,
+ netsnmp_watcher_info *winfo);
+int netsnmp_register_watched_timestamp(netsnmp_handler_registration *reginfo,
+ marker_t timestamp);
+int netsnmp_watched_timestamp_register(netsnmp_mib_handler *whandler,
+ netsnmp_handler_registration *reginfo,
+ marker_t timestamp);
+int netsnmp_register_watched_spinlock(netsnmp_handler_registration *reginfo,
+ int *spinlock);
+
+/*
+ * Convenience registration calls
+ */
+
+int netsnmp_register_ulong_scalar(const char *name,
+ oid * reg_oid, size_t reg_oid_len,
+ u_long * it,
+ Netsnmp_Node_Handler * subhandler);
+int netsnmp_register_read_only_ulong_scalar(const char *name,
+ oid * reg_oid, size_t reg_oid_len,
+ u_long * it,
+ Netsnmp_Node_Handler * subhandler);
+int netsnmp_register_long_scalar(const char *name,
+ oid * reg_oid, size_t reg_oid_len,
+ long * it,
+ Netsnmp_Node_Handler * subhandler);
+int netsnmp_register_read_only_long_scalar(const char *name,
+ oid * reg_oid, size_t reg_oid_len,
+ long * it,
+ Netsnmp_Node_Handler * subhandler);
+int netsnmp_register_int_scalar(const char *name,
+ oid * reg_oid, size_t reg_oid_len,
+ int * it,
+ Netsnmp_Node_Handler * subhandler);
+int netsnmp_register_read_only_int_scalar(const char *name,
+ oid * reg_oid, size_t reg_oid_len,
+ int * it,
+ Netsnmp_Node_Handler * subhandler);
+int netsnmp_register_read_only_counter32_scalar(const char *name,
+ oid * reg_oid, size_t reg_oid_len,
+ u_long * it,
+ Netsnmp_Node_Handler * subhandler);
+
+#define WATCHER_HANDLER_NAME "watcher"
+
+netsnmp_mib_handler *netsnmp_get_watcher_handler(void);
+netsnmp_watcher_info *netsnmp_create_watcher_info(void *, size_t, u_char, int);
+Netsnmp_Node_Handler netsnmp_watcher_helper_handler;
+
+netsnmp_mib_handler *netsnmp_get_watched_timestamp_handler(void);
+Netsnmp_Node_Handler netsnmp_watched_timestamp_handler;
+
+netsnmp_mib_handler *netsnmp_get_watched_spinlock_handler(void);
+Netsnmp_Node_Handler netsnmp_watched_spinlock_handler;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /** NETSNMP_WATCHER_H */