Lines Matching refs:sig

105 sigsys(int sig, sigtype func)  in sigsys()  argument
109 old = sigdisp(sig); in sigsys()
110 signal(sig, func); in sigsys()
121 sigset(int sig, sigtype func) in sigset() argument
125 if (sig < 1 || sig > NSIG) { in sigset()
129 old = sigdisp(sig); in sigset()
134 sighold(sig); in sigset()
137 sigtable[sig].s_flag |= SSET; in sigset()
138 sigtable[sig].s_func = func; in sigset()
145 if ((sigtable[sig].s_flag & SHELD) == 0) in sigset()
146 signal(sig, SIG_DFL); in sigset()
148 signal(sig, _Sigtramp); in sigset()
155 signal(sig, SIG_IGN); in sigset()
156 sigtable[sig].s_flag &= ~SDEFER; in sigset()
159 signal(sig, _Sigtramp); in sigset()
169 sighold(int sig) in sighold() argument
173 if (sig < 1 || sig > NSIG) { in sighold()
177 old = sigdisp(sig); in sighold()
178 if (sigtable[sig].s_flag & SHELD) in sighold()
185 sigtable[sig].s_flag |= SSET; in sighold()
186 signal(sig, _Sigtramp); in sighold()
188 sigtable[sig].s_flag |= SHELD; in sighold()
197 sigrelse(int sig) in sigrelse() argument
201 if (sig < 1 || sig > NSIG) { in sigrelse()
205 old = sigdisp(sig); in sigrelse()
206 if ((sigtable[sig].s_flag & SHELD) == 0) in sigrelse()
208 sigtable[sig].s_flag &= ~SHELD; in sigrelse()
209 if (sigtable[sig].s_flag & SDEFER) in sigrelse()
210 _Sigtramp(sig); in sigrelse()
215 if (sigtable[sig].s_func == SIG_DFL) in sigrelse()
216 signal(sig, SIG_DFL); in sigrelse()
224 sigignore(int sig) in sigignore() argument
226 return(sigset(sig, SIG_IGN)); in sigignore()
237 sigpause(int sig) in sigpause() argument
239 if (sig < 1 || sig > NSIG) { in sigpause()
243 sigtable[sig].s_flag |= SHELD|SPAUSE; in sigpause()
246 sigtable[sig].s_flag &= ~SPAUSE; in sigpause()
247 sigtable[sig].s_flag |= SDEFER; in sigpause()
272 sigdisp(int sig) in sigdisp() argument
276 if (sig < 1 || sig > NSIG) { in sigdisp()
284 if ((sigtable[sig].s_flag & SSET) == 0) { in sigdisp()
285 old = signal(sig, SIG_IGN); in sigdisp()
286 sigtable[sig].s_func = old; in sigdisp()
287 sigtable[sig].s_flag |= SSET; in sigdisp()
288 signal(sig, old); in sigdisp()
296 return(sigtable[sig].s_func); in sigdisp()
304 _Sigtramp(int sig) in _Sigtramp() argument
308 if (sig < 1 || sig > NSIG) { in _Sigtramp()
314 old = signal(sig, SIG_IGN); in _Sigtramp()
318 if (sigtable[sig].s_flag & SPAUSE) in _Sigtramp()
325 if (sigtable[sig].s_flag & SHELD) { in _Sigtramp()
326 sigtable[sig].s_flag |= SDEFER; in _Sigtramp()
327 signal(sig, _Sigtramp); in _Sigtramp()
335 if (sigtable[sig].s_func == SIG_IGN) in _Sigtramp()
342 if (sigtable[sig].s_func == SIG_DFL) { in _Sigtramp()
343 signal(sig, SIG_DFL); in _Sigtramp()
344 kill(getpid(), sig); in _Sigtramp()
357 sigtable[sig].s_flag &= ~SDEFER; in _Sigtramp()
358 sigtable[sig].s_flag |= SHELD; in _Sigtramp()
359 signal(sig, _Sigtramp); in _Sigtramp()
360 (*sigtable[sig].s_func)(sig); in _Sigtramp()
365 sigtable[sig].s_flag &= ~SHELD; in _Sigtramp()
366 if (sigtable[sig].s_flag & SDEFER) in _Sigtramp()