| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*
- * callback.c: A generic callback mechanism
- */
- #ifndef CALLBACK_H
- #define CALLBACK_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define MAX_CALLBACK_IDS 2
- #define MAX_CALLBACK_SUBIDS 17
- /*
- * Callback Major Types
- */
- #define SNMP_CALLBACK_LIBRARY 0
- #define SNMP_CALLBACK_APPLICATION 1
- /*
- * SNMP_CALLBACK_LIBRARY minor types
- */
- #define SNMP_CALLBACK_POST_READ_CONFIG 0
- #define SNMP_CALLBACK_STORE_DATA 1
- #define SNMP_CALLBACK_SHUTDOWN 2
- #define SNMP_CALLBACK_POST_PREMIB_READ_CONFIG 3
- #define SNMP_CALLBACK_LOGGING 4
- #define SNMP_CALLBACK_SESSION_INIT 5
- #define SNMP_CALLBACK_PRE_READ_CONFIG 7
- #define SNMP_CALLBACK_PRE_PREMIB_READ_CONFIG 8
- /*
- * Callback priority (lower priority numbers called first(
- */
- #define NETSNMP_CALLBACK_HIGHEST_PRIORITY -1024
- #define NETSNMP_CALLBACK_DEFAULT_PRIORITY 0
- #define NETSNMP_CALLBACK_LOWEST_PRIORITY 1024
- typedef int (SNMPCallback) (int majorID, int minorID,
- void *serverarg, void *clientarg);
- struct snmp_gen_callback {
- SNMPCallback *sc_callback;
- void *sc_client_arg;
- int priority;
- struct snmp_gen_callback *next;
- };
- /*
- * function prototypes
- */
- NETSNMP_IMPORT
- void init_callbacks(void);
- NETSNMP_IMPORT
- int netsnmp_register_callback(int major, int minor,
- SNMPCallback * new_callback,
- void *arg, int priority);
- NETSNMP_IMPORT
- int snmp_register_callback(int major, int minor,
- SNMPCallback * new_callback,
- void *arg);
- NETSNMP_IMPORT
- int snmp_call_callbacks(int major, int minor,
- void *caller_arg);
- NETSNMP_IMPORT
- int snmp_callback_available(int major, int minor); /* is >1 available */
- NETSNMP_IMPORT
- int snmp_count_callbacks(int major, int minor); /* ret the number registered */
- NETSNMP_IMPORT
- int snmp_unregister_callback(int major, int minor,
- SNMPCallback * new_callback,
- void *arg, int matchargs);
- NETSNMP_IMPORT
- void clear_callback (void);
- int netsnmp_callback_clear_client_arg(void *, int i, int j);
- struct snmp_gen_callback *snmp_callback_list(int major, int minor);
- #ifdef __cplusplus
- }
- #endif
- #endif /* CALLBACK_H */
|