Generic signalling/notification infrastructure.
More...
|
#define | OSMO_SIGNAL_SS_APPS 0 |
|
#define | OSMO_SIGNAL_SS_RESERVED 2147483648u |
|
#define | OSMO_SIGNAL_T_APPS 0 |
|
#define | OSMO_SIGNAL_T_RESERVED 2147483648u |
|
|
typedef int | osmo_signal_cbfn (unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) |
|
|
enum | { SS_L_GLOBAL = OSMO_SIGNAL_SS_RESERVED,
SS_L_INPUT,
SS_L_NS,
SS_L_VTY
} |
| signal subsystems
|
|
enum | { S_L_GLOBAL_SHUTDOWN = OSMO_SIGNAL_T_RESERVED
} |
| signal types.
|
|
Generic signalling/notification infrastructure.
#define OSMO_SIGNAL_SS_APPS 0 |
subsystem signaling numbers: we split the numberspace for applications and libraries: from 0 to UINT_MAX/2 for applications, from UINT_MAX/2 to UINT_MAX for libraries.
typedef int osmo_signal_cbfn(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) |
signal callback function type
void osmo_signal_dispatch |
( |
unsigned int |
subsys, |
|
|
unsigned int |
signal, |
|
|
void * |
signal_data |
|
) |
| |
dispatch (deliver) a new signal to all registered handlers
- Parameters
-
[in] | subsys | Subsystem number |
[in] | signal | Signal number, |
[in] | signal_data | Data to be passed along to handlers |
References llist_for_each_entry.
int osmo_signal_register_handler |
( |
unsigned int |
subsys, |
|
|
osmo_signal_cbfn * |
cbfn, |
|
|
void * |
data |
|
) |
| |
Register a new signal handler.
- Parameters
-
[in] | subsys | Subsystem number |
[in] | cbfn | Callback function |
[in] | data | Data passed through to callback |
- Returns
- 0 on success; negative in case of error
References llist_add_tail().
void osmo_signal_unregister_handler |
( |
unsigned int |
subsys, |
|
|
osmo_signal_cbfn * |
cbfn, |
|
|
void * |
data |
|
) |
| |
Unregister signal handler.
- Parameters
-
[in] | subsys | Subsystem number |
[in] | cbfn | Callback function |
[in] | data | Data passed through to callback |
References llist_del(), and llist_for_each_entry.