aboutsummaryrefslogtreecommitdiff
path: root/sighandler.h
blob: 6a81f6cbe3976839453b0407508deef338ef1aa4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
static volatile char got_sig[4];

void sighandler(int sig) {
  if (sig == SIGCHLD)	return;
#ifdef NINIT_SIGNAL_HANDLER_CODED
  {
    unsigned char *Sig = (unsigned char *)NINIT_SIGNAL_HANDLER_CODED;
    int k;
    for (k=0; k<4; k++)
      if ((unsigned char)sig == Sig[k])
	{ got_sig[k] = 1; return; }
  }
#else

  if (sig == SIGWINCH)  got_sig[0]=1;
  if (sig == SIGINT)    got_sig[1]=1;
#ifdef INIT_SYSVINIT_SIGNALS
  if (sig == SIGPWR)    got_sig[2]=1;
  if (sig == SIGHUP)    got_sig[3]=1;
#endif
#endif /* NINIT_SIGNAL_HANDLER_CODED */

#ifdef INIT_SYSVINIT_SIGNALS
  if (sig == SIGUSR1)   { close(initctl); initctl = -5; }
#endif
}