diff --git a/include/minix/com.h b/include/minix/com.h index f9cb110ed..2f85d774f 100644 --- a/include/minix/com.h +++ b/include/minix/com.h @@ -586,7 +586,6 @@ /* Field names for system signals (sent by a signal manager). */ #define SIGS_SIGNAL_RECEIVED (COMMON_RQ_BASE+0) -# define SIGS_SIG_NUM m2_i1 /* Common request to all processes: gcov data. */ #define COMMON_REQ_GCOV_DATA (COMMON_RQ_BASE+1) diff --git a/include/minix/ipc.h b/include/minix/ipc.h index 4f3e87607..aa46868e1 100644 --- a/include/minix/ipc.h +++ b/include/minix/ipc.h @@ -124,6 +124,13 @@ typedef struct { } mess_lsys_krn_readbios; _ASSERT_MSG_SIZE(mess_lsys_krn_readbios); +typedef struct { + int num; + + uint8_t padding[52]; +} mess_pm_lsys_sigs_signal; +_ASSERT_MSG_SIZE(mess_pm_lsys_sigs_signal); + typedef struct { off_t offset; void *addr; @@ -1962,6 +1969,7 @@ typedef struct { mess_sigcalls m_sigcalls; mess_lsys_krn_readbios m_lsys_krn_readbios; + mess_pm_lsys_sigs_signal m_pm_lsys_sigs_signal; mess_input_tty_event m_input_tty_event; mess_krn_lsys_schedule m_krn_lsys_schedule; diff --git a/lib/libsys/sef_signal.c b/lib/libsys/sef_signal.c index d26ec47fe..0a904ee08 100644 --- a/lib/libsys/sef_signal.c +++ b/lib/libsys/sef_signal.c @@ -114,7 +114,7 @@ int do_sef_signal_request(message *m_ptr) } else { /* Handle system signals from a signal manager. */ - signo = m_ptr->SIGS_SIG_NUM; + signo = m_ptr->m_pm_lsys_sigs_signal.num; /* Debug. */ #if SEF_SIGNAL_DEBUG diff --git a/servers/pm/signal.c b/servers/pm/signal.c index 304fd6085..6c18f3f18 100644 --- a/servers/pm/signal.c +++ b/servers/pm/signal.c @@ -464,7 +464,7 @@ int ksig; /* non-zero means signal comes from kernel */ /* Translate every non-termination sys signal into a message. */ message m; m.m_type = SIGS_SIGNAL_RECEIVED; - m.SIGS_SIG_NUM = signo; + m.m_pm_lsys_sigs_signal.num = signo; asynsend3(rmp->mp_endpoint, &m, AMF_NOREPLY); } else { diff --git a/servers/rs/main.c b/servers/rs/main.c index 5c5cd154f..6b7e032a7 100644 --- a/servers/rs/main.c +++ b/servers/rs/main.c @@ -545,7 +545,7 @@ static int sef_cb_signal_manager(endpoint_t target, int signo) /* Translate every non-termination signal into a message. */ m.m_type = SIGS_SIGNAL_RECEIVED; - m.SIGS_SIG_NUM = signo; + m.m_pm_lsys_sigs_signal.num = signo; asynsend3(rpub->endpoint, &m, AMF_NOREPLY); return OK; /* signal has been delivered */