text: #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 */
  