summaryrefslogtreecommitdiff
path: root/include/net-snmp/library/snmp_alarm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/library/snmp_alarm.h')
-rw-r--r--include/net-snmp/library/snmp_alarm.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/include/net-snmp/library/snmp_alarm.h b/include/net-snmp/library/snmp_alarm.h
new file mode 100644
index 0000000..d1bcbfa
--- /dev/null
+++ b/include/net-snmp/library/snmp_alarm.h
@@ -0,0 +1,71 @@
+#ifndef SNMP_ALARM_H
+#define SNMP_ALARM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef void (SNMPAlarmCallback) (unsigned int clientreg,
+ void *clientarg);
+
+ /*
+ * alarm flags
+ */
+#define SA_REPEAT 0x01 /* keep repeating every X seconds */
+#define SA_FIRED 0x10 /* Being processed in run_alarms */
+
+ struct snmp_alarm {
+ /** Alarm interval. Zero if single-shot. */
+ struct timeval t;
+ unsigned int flags;
+ unsigned int clientreg;
+ /** Last time the alarm fired [monotonic clock]. */
+ struct timeval t_lastM;
+ /** Next time the alarm will fire [monotonic clock]. */
+ struct timeval t_nextM;
+ void *clientarg;
+ SNMPAlarmCallback *thecallback;
+ struct snmp_alarm *next;
+ };
+
+ /*
+ * the ones you should need
+ */
+ NETSNMP_IMPORT
+ void snmp_alarm_unregister(unsigned int clientreg);
+ void snmp_alarm_unregister_all(void);
+ NETSNMP_IMPORT
+ unsigned int snmp_alarm_register(unsigned int when,
+ unsigned int flags,
+ SNMPAlarmCallback * thecallback,
+ void *clientarg);
+
+ unsigned int snmp_alarm_register_hr(struct timeval t,
+ unsigned int flags,
+ SNMPAlarmCallback * cb,
+ void *cd);
+ NETSNMP_IMPORT
+ int snmp_alarm_reset(unsigned int clientreg);
+
+
+ /*
+ * the ones you shouldn't
+ */
+ NETSNMP_IMPORT void init_snmp_alarm(void);
+ int init_alarm_post_config(int majorid, int minorid,
+ void *serverarg,
+ void *clientarg);
+ void sa_update_entry(struct snmp_alarm *alrm);
+ struct snmp_alarm *sa_find_next(void);
+ NETSNMP_IMPORT void run_alarms(void);
+ RETSIGTYPE alarm_handler(int a);
+ void set_an_alarm(void);
+ int netsnmp_get_next_alarm_time(struct timeval *alarm_tm,
+ const struct timeval *now);
+ int get_next_alarm_delay_time(struct timeval *delta);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SNMP_ALARM_H */