diff options
Diffstat (limited to 'include/net-snmp/library/snmp_alarm.h')
-rw-r--r-- | include/net-snmp/library/snmp_alarm.h | 71 |
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 */ |