added files
[bcm963xx.git] / userapps / opensource / net-snmp / include / net-snmp / library / callback.h
1 /*
2  * callback.c: A generic callback mechanism 
3  */
4
5 #ifndef CALLBACK_H
6 #define CALLBACK_H
7
8 #ifdef __cplusplus
9 extern          "C" {
10 #endif
11
12 #define MAX_CALLBACK_IDS    2
13 #define MAX_CALLBACK_SUBIDS 16
14
15     /*
16      * Callback Major Types 
17      */
18 #define SNMP_CALLBACK_LIBRARY     0
19 #define SNMP_CALLBACK_APPLICATION 1
20
21     /*
22      * SNMP_CALLBACK_LIBRARY minor types 
23      */
24 #define SNMP_CALLBACK_POST_READ_CONFIG          0
25 #define SNMP_CALLBACK_STORE_DATA                1
26 #define SNMP_CALLBACK_SHUTDOWN                  2
27 #define SNMP_CALLBACK_POST_PREMIB_READ_CONFIG   3
28 #define SNMP_CALLBACK_LOGGING                   4
29 #define SNMP_CALLBACK_SESSION_INIT              5
30
31     typedef int     (SNMPCallback) (int majorID, int minorID,
32                                     void *serverarg, void *clientarg);
33
34     struct snmp_gen_callback {
35         SNMPCallback   *sc_callback;
36         void           *sc_client_arg;
37         struct snmp_gen_callback *next;
38     };
39
40     /*
41      * function prototypes 
42      */
43     void            init_callbacks(void);
44     int             snmp_register_callback(int major, int minor,
45                                            SNMPCallback * new_callback,
46                                            void *arg);
47     int             snmp_call_callbacks(int major, int minor,
48                                         void *caller_arg);
49     int             snmp_callback_available(int major, int minor);      /* is >1 available */
50     int             snmp_count_callbacks(int major, int minor); /* ret the number registered */
51     int             snmp_unregister_callback(int major, int minor,
52                                              SNMPCallback * new_callback,
53                                              void *arg, int matchargs);
54     struct snmp_gen_callback *snmp_callback_list(int major, int minor);
55
56 #ifdef __cplusplus
57 }
58 #endif
59 #endif                          /* CALLBACK_H */