63 #include <amxc/amxc_macros.h>
64 #include <amxc/amxc.h>
75 when_true(sigid == SIGKILL || sigid == SIGSTOP, exit);
77 sigemptyset(&change_mask);
78 sigaddset(&change_mask, sigid);
83 when_failed(sigprocmask(SIG_BLOCK, &change_mask, NULL), exit);
84 sigaddset(&
mask, sigid);
86 when_failed(sigprocmask(SIG_UNBLOCK, &change_mask, NULL), exit);
87 sigdelset(&
mask, sigid);
102 inset = sigismember(&
mask, sigid);
103 when_true(inset < 0, exit);
105 enabled = (inset == 1);
116 struct signalfd_siginfo si;
122 amxc_var_init(&sig_var);
124 res = read(
sig_fd, &si, len);
125 when_true(res != len, exit);
130 when_null(signal, exit);
136 amxc_var_clean(&sig_var);
amxp_signal_t * amxp_sigmngr_find_signal(const amxp_signal_mngr_t *const sig_mngr, const char *name)
Get the pointer to the signal.
int amxp_signal_new(amxp_signal_mngr_t *sig_mngr, amxp_signal_t **signal, const char *name)
Constructor function, creates a new signal.
void amxp_signal_trigger(amxp_signal_t *const signal, const amxc_var_t *const data)
Triggers a signal.
bool amxp_syssig_is_enabled(const int sigid)
Checks if a system signal is being monitored.
#define AMXP_SYSSIG_MAX
Defines highest possible system signal.
int amxp_syssig_get_fd(void)
Returns a file descriptor that can be used in an eventloop.
int amxp_syssig_read(void)
Reads from the file descriptor.
int amxp_syssig_enable(const int sigid, const bool enable)
Enables or disables monitoring of a system signal.
Structure containing the signal information.
struct signalfd_siginfo amxp_siginfo_t