| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- /*
- * watcher.h
- */
- #ifndef NETSNMP_WATCHER_H
- #define NETSNMP_WATCHER_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** @ingroup watcher
- * @{
- */
- /*
- * 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
- /** The size of the watched object is constant.
- * @hideinitializer
- */
- #define WATCHER_FIXED_SIZE 0x01
- /** The maximum size of the watched object is stored in max_size.
- * If WATCHER_SIZE_STRLEN is set then it is supposed that max_size + 1
- * bytes could be stored in the buffer.
- * @hideinitializer
- */
- #define WATCHER_MAX_SIZE 0x02
- /** If set then the variable data_size_p points to is supposed to hold the
- * current size of the watched object and will be updated on writes.
- * @hideinitializer
- * @since Net-SNMP 5.5
- */
- #define WATCHER_SIZE_IS_PTR 0x04
- /** If set then data is suppposed to be a zero-terminated character array
- * and both data_size and data_size_p are ignored. Additionally \\0 is a
- * forbidden character in the data set.
- * @hideinitializer
- * @since Net-SNMP 5.5
- */
- #define WATCHER_SIZE_STRLEN 0x08
- /** If set then size is in units of object identifiers.
- * This is useful if you have an OID and tracks the OID_LENGTH of it as
- * opposed to it's size.
- * @hideinitializer
- * @since Net-SNMP 5.5.1
- */
- #define WATCHER_SIZE_UNIT_OIDS 0x10
- typedef struct netsnmp_watcher_info_s {
- void *data;
- size_t data_size;
- size_t max_size;
- u_char type;
- int flags;
- size_t *data_size_p;
- } netsnmp_watcher_info;
- /** @} */
- int netsnmp_register_watched_instance( netsnmp_handler_registration *reginfo,
- netsnmp_watcher_info *winfo);
- int netsnmp_register_watched_instance2(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_scalar2( 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,
- const 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,
- const oid * reg_oid, size_t reg_oid_len,
- u_long * it,
- Netsnmp_Node_Handler * subhandler);
- int netsnmp_register_long_scalar(const char *name,
- const oid * reg_oid, size_t reg_oid_len,
- long * it,
- Netsnmp_Node_Handler * subhandler);
- int netsnmp_register_read_only_long_scalar(const char *name,
- const oid * reg_oid, size_t reg_oid_len,
- long * it,
- Netsnmp_Node_Handler * subhandler);
- int netsnmp_register_int_scalar(const char *name,
- const oid * reg_oid, size_t reg_oid_len,
- int * it,
- Netsnmp_Node_Handler * subhandler);
- int netsnmp_register_read_only_int_scalar(const char *name,
- const oid * reg_oid, size_t reg_oid_len,
- int * it,
- Netsnmp_Node_Handler * subhandler);
- int netsnmp_register_read_only_counter32_scalar(const char *name,
- const 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_init_watcher_info(netsnmp_watcher_info *, void *, size_t, u_char, int);
- netsnmp_watcher_info *
- netsnmp_init_watcher_info6(netsnmp_watcher_info *,
- void *, size_t, u_char, int, size_t, size_t*);
- netsnmp_watcher_info *
- netsnmp_create_watcher_info(void *, size_t, u_char, int);
- netsnmp_watcher_info *
- netsnmp_create_watcher_info6(void *, size_t, u_char, int, size_t, size_t*);
- netsnmp_watcher_info *
- netsnmp_clone_watcher_info(netsnmp_watcher_info *winfo);
- void
- netsnmp_owns_watcher_info(netsnmp_mib_handler *handler);
- 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 */
|