Man-pages on mkdep, cdprobe, loadramdisk and newroot; thanks to Antoine Leca
This commit is contained in:
parent
2db33d5c8c
commit
c107dbe1d0
|
@ -240,6 +240,9 @@ do cd $TMPDIR
|
||||||
fi
|
fi
|
||||||
done # Iterate package range
|
done # Iterate package range
|
||||||
done # Iterate package range list
|
done # Iterate package range list
|
||||||
|
|
||||||
|
# Do not repeat after installing all packages if -y is specified
|
||||||
|
[ "$YESMODE" ] && cont=n
|
||||||
done
|
done
|
||||||
|
|
||||||
rm -f $TMPDIR/.* # Remove any remaining .postinstall script or .list*
|
rm -f $TMPDIR/.* # Remove any remaining .postinstall script or .list*
|
||||||
|
|
85
man/man1/mkdep.1
Executable file
85
man/man1/mkdep.1
Executable file
|
@ -0,0 +1,85 @@
|
||||||
|
.TH MKDEP 1 "February 1st, 2010"
|
||||||
|
.SH NAME
|
||||||
|
mkdep \- print depencies in the Right Way for make(1)
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B mkdep
|
||||||
|
.I path
|
||||||
|
.br
|
||||||
|
.B mkdep
|
||||||
|
.I pp_command
|
||||||
|
.IR sourcefile " ... "
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B Mkdep
|
||||||
|
does what
|
||||||
|
.B cpp -M
|
||||||
|
should do, but no compiler gets it right, they all
|
||||||
|
strip the leading path of the \fI*.o\fP files.
|
||||||
|
.PP
|
||||||
|
The first synopsis form just creates the needed
|
||||||
|
.I .depend
|
||||||
|
files in all the subdirectories of
|
||||||
|
.IR path .
|
||||||
|
.PP
|
||||||
|
The second synopsis form does the hard work of emitting the
|
||||||
|
dependencies instructions for
|
||||||
|
.IR sourcefile
|
||||||
|
in the right format expected by
|
||||||
|
.IR make (1),
|
||||||
|
including the path information.
|
||||||
|
.PP
|
||||||
|
.B Mkdep
|
||||||
|
expects
|
||||||
|
.I pp_command
|
||||||
|
to be the correct invocation for the preprocessor
|
||||||
|
.\" FIXME: there are no cpp(1x) manpage presently...
|
||||||
|
.\" .IR cpp (1x)
|
||||||
|
command adequate for
|
||||||
|
.IR sourcefile ,
|
||||||
|
and also expects this command to emit lines of the form
|
||||||
|
.nf
|
||||||
|
.ta +1i +\w'# lineno "filename"'u+2m
|
||||||
|
# \fIlineno\fP "\fIfilename\fP"
|
||||||
|
.fi
|
||||||
|
for each files which is included by the named
|
||||||
|
.IR sourcefile .
|
||||||
|
.PP
|
||||||
|
For C, the typical idiom is to add in all your
|
||||||
|
.IR Makefile s:
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.ta +0.2i +\w'depend:'u+1m +\w'mkdep "$(CC) -E $(CPPFLAGS)" *.c > .depend'u+2m
|
||||||
|
depend:
|
||||||
|
cd sub1 && $(MAKE) -$(MAKEFLAGS) $@
|
||||||
|
cd sub2 && $(MAKE) -$(MAKEFLAGS) $@
|
||||||
|
# repeat for each subdirectory
|
||||||
|
mkdep "$(CC) -E $(CPPFLAGS)" *.c > .depend
|
||||||
|
.PP
|
||||||
|
# Include generated dependencies.
|
||||||
|
include .depend
|
||||||
|
.PP
|
||||||
|
.fi
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR cc (1),
|
||||||
|
.BR make (1).
|
||||||
|
.SH BUGS
|
||||||
|
Since
|
||||||
|
.I Makefile
|
||||||
|
is read in full before any command is executed,
|
||||||
|
there is no way to prevent
|
||||||
|
.IR make (1)
|
||||||
|
to report an error if the
|
||||||
|
.I .depend
|
||||||
|
file was not created beforehand; hence the first form of
|
||||||
|
.IR mkdep
|
||||||
|
should be used \fBbefore\fP any attempt is done to use this feature in any
|
||||||
|
.IR Makefile .
|
||||||
|
.PP
|
||||||
|
The current version hardcodes the \fI.o\fP suffix, so it cannot be used for e.g.
|
||||||
|
.IR flex (1)
|
||||||
|
or
|
||||||
|
.IR yacc (1)
|
||||||
|
source files.
|
||||||
|
.SH AUTHOR
|
||||||
|
.I Mkdep.c
|
||||||
|
was written by Kees J. Bot and Jorrit N. Herder.
|
||||||
|
.\" This manual page by A. Leca, last revised 2010-02-01.
|
|
@ -163,8 +163,8 @@ The process is killed if the signal is not caught.
|
||||||
.TP
|
.TP
|
||||||
.B K
|
.B K
|
||||||
The process is killed if the signal is not caught. If the signal is received
|
The process is killed if the signal is not caught. If the signal is received
|
||||||
while ignored or masked, the process is killed even if a handler is defined to
|
due to an exception while ignored or masked, the process is killed even if a
|
||||||
catch the signal.
|
handler is defined to catch the signal.
|
||||||
.TP
|
.TP
|
||||||
.B c
|
.B c
|
||||||
The signal causes a core dump.
|
The signal causes a core dump.
|
||||||
|
|
40
man/man8/cdprobe.8
Executable file
40
man/man8/cdprobe.8
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
.TH CDPROBE 8 "February 1st, 2010"
|
||||||
|
.SH NAME
|
||||||
|
cdprobe \- guess where the Minix CD is
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B cdprobe
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B Cdprobe
|
||||||
|
prints on standard output the name of the device (in
|
||||||
|
.BI /dev/c X d Y
|
||||||
|
form) of a device containing a CD with the proper layout to install Minix from it.
|
||||||
|
.br
|
||||||
|
Such a CD should have a MINIX cd label,
|
||||||
|
an IBM-format partition table at the beginning (like any hardisk),
|
||||||
|
and the file systems pointed to at positions
|
||||||
|
.IR p1
|
||||||
|
and
|
||||||
|
.IR p2
|
||||||
|
of that partition table, should be valid (mountable) Minix file systems.
|
||||||
|
.SH DIAGNOSTICS
|
||||||
|
The return code is
|
||||||
|
.B 0
|
||||||
|
after successfully printing the device, or
|
||||||
|
.B 1
|
||||||
|
if some error or unexpected condition occured.
|
||||||
|
Appropriate diagnostic messages are printed on standard error.
|
||||||
|
.SH NOTES
|
||||||
|
.B Cdprobe
|
||||||
|
probes all the possible drives on the system, so can try for a long time,
|
||||||
|
particularly when there are no readable CD, or when the controller cannot be
|
||||||
|
successfully addressed at hardware level.
|
||||||
|
.SH BUGS
|
||||||
|
There is some nasty hard-codery (like MINIX cd label) that can be improved on.
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR at (4),
|
||||||
|
.BR /etc/rc
|
||||||
|
on the initial ramdisk.
|
||||||
|
.SH AUTHOR
|
||||||
|
.I Cdprobe.c
|
||||||
|
was written by Ben Gras and Philip Homburg.
|
||||||
|
.\" This manual page by A. Leca, last revised 2010-02-01.
|
25
man/man8/loadramdisk.8
Executable file
25
man/man8/loadramdisk.8
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
.TH LOADRAMDISK 8 "February 1st, 2010"
|
||||||
|
.SH NAME
|
||||||
|
loadramdisk \- copy an image of a file system to /dev/ram
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B loadramdisk
|
||||||
|
.IR file
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B Loadramdisk
|
||||||
|
copies the content of a device or a file containing an image of a file system,
|
||||||
|
specified by the
|
||||||
|
.I file
|
||||||
|
argument, to \fB/dev/ram\fP. This way the source is preserved
|
||||||
|
untouched, and can resides on a read-only media like a CD, while the copied-to
|
||||||
|
version may be mounted as read-write file system and used as root device.
|
||||||
|
.SH NOTES
|
||||||
|
A ramdisk can be initialized only once.
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR dev (4),
|
||||||
|
.BR init (8),
|
||||||
|
.BR mount (2),
|
||||||
|
.BR newroot (8).
|
||||||
|
.SH AUTHOR
|
||||||
|
.I Loadramdisk.c
|
||||||
|
was written by Philip Homburg.
|
||||||
|
.\" This manual page by A. Leca, last revised 2010-02-01.
|
40
man/man8/newroot.8
Executable file
40
man/man8/newroot.8
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
.TH NEWROOT 8 "February 1st, 2010"
|
||||||
|
.SH NAME
|
||||||
|
newroot \- replace the current root with a new one
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B newroot
|
||||||
|
.RB [ \-i ]
|
||||||
|
.I block-special
|
||||||
|
.SH OPTIONS
|
||||||
|
.BR "\-i" " Copy mfs binary from boot image to memory"
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B Newroot
|
||||||
|
causes the present \fB/\fP file system to be discarded and
|
||||||
|
replaced by the one stored in the device indicated by
|
||||||
|
.IR block-special .
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B \-i
|
||||||
|
option may be used to prevent loading the file system
|
||||||
|
service for the new file system from disk. This is useful when
|
||||||
|
for some reason the \fImfs\fP binary on disk malfunctions,
|
||||||
|
rendering Minix unable to boot.
|
||||||
|
.PP
|
||||||
|
This command is normally used to replace the initial ramdisk
|
||||||
|
loaded as part of the operating system, with the operational
|
||||||
|
version stored on disk. As such, it should be invoked from the
|
||||||
|
.B /etc/rc
|
||||||
|
stored in the initial-ramdisk image.
|
||||||
|
.SH NOTES
|
||||||
|
.B Newroot
|
||||||
|
should be used before any "real" use of the
|
||||||
|
.IR mount (1)
|
||||||
|
command.
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR init (8),
|
||||||
|
.BR mount (1),
|
||||||
|
.BR mount (2).
|
||||||
|
.SH AUTHOR
|
||||||
|
.I Newroot.c
|
||||||
|
was written by Philip Homburg.
|
||||||
|
.\" This manual page by A. Leca, last revised 2010-02-01.
|
|
@ -374,5 +374,5 @@ struct timer *tp;
|
||||||
set_alarm(rmp, rmp->mp_interval[ITIMER_REAL]);
|
set_alarm(rmp, rmp->mp_interval[ITIMER_REAL]);
|
||||||
else rmp->mp_flags &= ~ALARM_ON;
|
else rmp->mp_flags &= ~ALARM_ON;
|
||||||
|
|
||||||
check_sig(rmp->mp_pid, SIGALRM);
|
check_sig(rmp->mp_pid, SIGALRM, FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,7 +185,7 @@ int result;
|
||||||
{
|
{
|
||||||
sn = (rmp->mp_trace_flags & TO_ALTEXEC) ? SIGSTOP : SIGTRAP;
|
sn = (rmp->mp_trace_flags & TO_ALTEXEC) ? SIGSTOP : SIGTRAP;
|
||||||
|
|
||||||
check_sig(rmp->mp_pid, sn);
|
check_sig(rmp->mp_pid, sn, FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
|
|
||||||
new_sp= (char *)rmp->mp_procargs;
|
new_sp= (char *)rmp->mp_procargs;
|
||||||
|
|
|
@ -114,7 +114,7 @@ PUBLIC int do_fork()
|
||||||
|
|
||||||
/* Tell the tracer, if any, about the new child */
|
/* Tell the tracer, if any, about the new child */
|
||||||
if (rmc->mp_tracer != NO_TRACER)
|
if (rmc->mp_tracer != NO_TRACER)
|
||||||
sig_proc(rmc, SIGSTOP, TRUE /*trace*/);
|
sig_proc(rmc, SIGSTOP, TRUE /*trace*/, FALSE /* ksig */);
|
||||||
|
|
||||||
/* Do not reply until FS is ready to process the fork
|
/* Do not reply until FS is ready to process the fork
|
||||||
* request
|
* request
|
||||||
|
@ -201,7 +201,7 @@ PUBLIC int do_fork_nb()
|
||||||
|
|
||||||
/* Tell the tracer, if any, about the new child */
|
/* Tell the tracer, if any, about the new child */
|
||||||
if (rmc->mp_tracer != NO_TRACER)
|
if (rmc->mp_tracer != NO_TRACER)
|
||||||
sig_proc(rmc, SIGSTOP, TRUE /*trace*/);
|
sig_proc(rmc, SIGSTOP, TRUE /*trace*/, FALSE /* ksig */);
|
||||||
|
|
||||||
/* Wakeup the newly created process */
|
/* Wakeup the newly created process */
|
||||||
setreply(rmc-mproc, OK);
|
setreply(rmc-mproc, OK);
|
||||||
|
@ -341,7 +341,7 @@ int dump_core; /* flag indicating whether to dump core */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send a hangup to the process' process group if it was a session leader. */
|
/* Send a hangup to the process' process group if it was a session leader. */
|
||||||
if (procgrp != 0) check_sig(-procgrp, SIGHUP);
|
if (procgrp != 0) check_sig(-procgrp, SIGHUP, FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
|
@ -564,7 +564,7 @@ int try_cleanup; /* clean up the child when done? */
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* Parent is not waiting. */
|
/* Parent is not waiting. */
|
||||||
sig_proc(p_mp, SIGCHLD, TRUE /*trace*/);
|
sig_proc(p_mp, SIGCHLD, TRUE /*trace*/, FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -637,7 +637,7 @@ struct mproc *child; /* process being traced */
|
||||||
* Note that this may cause cascading exits.
|
* Note that this may cause cascading exits.
|
||||||
*/
|
*/
|
||||||
if (!(child->mp_flags & EXITING)) {
|
if (!(child->mp_flags & EXITING)) {
|
||||||
sig_proc(child, SIGKILL, TRUE /*trace*/);
|
sig_proc(child, SIGKILL, TRUE /*trace*/, FALSE /* ksig */);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -392,8 +392,8 @@ PUBLIC int do_reboot()
|
||||||
* SIGKILL. So first kill, then reboot.
|
* SIGKILL. So first kill, then reboot.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
check_sig(-1, SIGKILL); /* kill all users except init */
|
check_sig(-1, SIGKILL, FALSE /* ksig*/); /* kill all users except init */
|
||||||
sys_stop(INIT_PROC_NR); /* stop init, but keep it around */
|
sys_stop(INIT_PROC_NR); /* stop init, but keep it around */
|
||||||
|
|
||||||
/* Tell FS to reboot */
|
/* Tell FS to reboot */
|
||||||
m.m_type = PM_REBOOT;
|
m.m_type = PM_REBOOT;
|
||||||
|
|
|
@ -64,8 +64,9 @@ _PROTOTYPE( int do_cprofile, (void) );
|
||||||
_PROTOTYPE( int do_kill, (void) );
|
_PROTOTYPE( int do_kill, (void) );
|
||||||
_PROTOTYPE( int ksig_pending, (void) );
|
_PROTOTYPE( int ksig_pending, (void) );
|
||||||
_PROTOTYPE( int do_pause, (void) );
|
_PROTOTYPE( int do_pause, (void) );
|
||||||
_PROTOTYPE( int check_sig, (pid_t proc_id, int signo) );
|
_PROTOTYPE( int check_sig, (pid_t proc_id, int signo, int ksig) );
|
||||||
_PROTOTYPE( void sig_proc, (struct mproc *rmp, int signo, int trace) );
|
_PROTOTYPE( void sig_proc, (struct mproc *rmp, int signo, int trace,
|
||||||
|
int ksig) );
|
||||||
_PROTOTYPE( int do_sigaction, (void) );
|
_PROTOTYPE( int do_sigaction, (void) );
|
||||||
_PROTOTYPE( int do_sigpending, (void) );
|
_PROTOTYPE( int do_sigpending, (void) );
|
||||||
_PROTOTYPE( int do_sigprocmask, (void) );
|
_PROTOTYPE( int do_sigprocmask, (void) );
|
||||||
|
|
|
@ -196,7 +196,7 @@ PUBLIC int do_kill()
|
||||||
{
|
{
|
||||||
/* Perform the kill(pid, signo) system call. */
|
/* Perform the kill(pid, signo) system call. */
|
||||||
|
|
||||||
return check_sig(m_in.pid, m_in.sig_nr);
|
return check_sig(m_in.pid, m_in.sig_nr, FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
|
@ -295,7 +295,7 @@ sigset_t sig_map;
|
||||||
id = proc_id;
|
id = proc_id;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
check_sig(id, i);
|
check_sig(id, i, TRUE /* ksig */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If SIGNDELAY is set, an earlier sys_stop() failed because the process was
|
/* If SIGNDELAY is set, an earlier sys_stop() failed because the process was
|
||||||
|
@ -333,10 +333,11 @@ PUBLIC int do_pause()
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* sig_proc *
|
* sig_proc *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
PUBLIC void sig_proc(rmp, signo, trace)
|
PUBLIC void sig_proc(rmp, signo, trace, ksig)
|
||||||
register struct mproc *rmp; /* pointer to the process to be signaled */
|
register struct mproc *rmp; /* pointer to the process to be signaled */
|
||||||
int signo; /* signal to send to process (1 to _NSIG-1) */
|
int signo; /* signal to send to process (1 to _NSIG-1) */
|
||||||
int trace; /* pass signal to tracer first? */
|
int trace; /* pass signal to tracer first? */
|
||||||
|
int ksig; /* non-zero means signal comes from kernel */
|
||||||
{
|
{
|
||||||
/* Send a signal to a process. Check to see if the signal is to be caught,
|
/* Send a signal to a process. Check to see if the signal is to be caught,
|
||||||
* ignored, tranformed into a message (for system processes) or blocked.
|
* ignored, tranformed into a message (for system processes) or blocked.
|
||||||
|
@ -388,7 +389,7 @@ int trace; /* pass signal to tracer first? */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* some signals cannot be safely ignored */
|
/* some signals cannot be safely ignored */
|
||||||
badignore = sigismember(&noign_sset, signo) && (
|
badignore = ksig && sigismember(&noign_sset, signo) && (
|
||||||
sigismember(&rmp->mp_ignore, signo) ||
|
sigismember(&rmp->mp_ignore, signo) ||
|
||||||
sigismember(&rmp->mp_sigmask, signo) ||
|
sigismember(&rmp->mp_sigmask, signo) ||
|
||||||
sigismember(&rmp->mp_sig2mess, signo));
|
sigismember(&rmp->mp_sig2mess, signo));
|
||||||
|
@ -462,9 +463,10 @@ int trace; /* pass signal to tracer first? */
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* check_sig *
|
* check_sig *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
PUBLIC int check_sig(proc_id, signo)
|
PUBLIC int check_sig(proc_id, signo, ksig)
|
||||||
pid_t proc_id; /* pid of proc to sig, or 0 or -1, or -pgrp */
|
pid_t proc_id; /* pid of proc to sig, or 0 or -1, or -pgrp */
|
||||||
int signo; /* signal to send to process (0 to _NSIG-1) */
|
int signo; /* signal to send to process (0 to _NSIG-1) */
|
||||||
|
int ksig; /* non-zero means signal comes from kernel */
|
||||||
{
|
{
|
||||||
/* Check to see if it is possible to send a signal. The signal may have to be
|
/* Check to see if it is possible to send a signal. The signal may have to be
|
||||||
* sent to a group of processes. This routine is invoked by the KILL system
|
* sent to a group of processes. This routine is invoked by the KILL system
|
||||||
|
@ -515,7 +517,7 @@ int signo; /* signal to send to process (0 to _NSIG-1) */
|
||||||
* signal may be caught, blocked, ignored, or cause process
|
* signal may be caught, blocked, ignored, or cause process
|
||||||
* termination, possibly with core dump.
|
* termination, possibly with core dump.
|
||||||
*/
|
*/
|
||||||
sig_proc(rmp, signo, TRUE /*trace*/);
|
sig_proc(rmp, signo, TRUE /*trace*/, ksig);
|
||||||
|
|
||||||
if (proc_id > 0) break; /* only one process being signaled */
|
if (proc_id > 0) break; /* only one process being signaled */
|
||||||
}
|
}
|
||||||
|
@ -545,7 +547,7 @@ register struct mproc *rmp;
|
||||||
if (sigismember(&rmp->mp_sigpending, i) &&
|
if (sigismember(&rmp->mp_sigpending, i) &&
|
||||||
!sigismember(&rmp->mp_sigmask, i)) {
|
!sigismember(&rmp->mp_sigmask, i)) {
|
||||||
sigdelset(&rmp->mp_sigpending, i);
|
sigdelset(&rmp->mp_sigpending, i);
|
||||||
sig_proc(rmp, i, FALSE /*trace*/);
|
sig_proc(rmp, i, FALSE /*trace*/, FALSE /* ksig */);
|
||||||
|
|
||||||
if (rmp->mp_flags & FS_CALL)
|
if (rmp->mp_flags & FS_CALL)
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -85,7 +85,7 @@ PUBLIC int do_trace()
|
||||||
child->mp_tracer = who_p;
|
child->mp_tracer = who_p;
|
||||||
child->mp_trace_flags = TO_NOEXEC;
|
child->mp_trace_flags = TO_NOEXEC;
|
||||||
|
|
||||||
sig_proc(child, SIGSTOP, TRUE /*trace*/);
|
sig_proc(child, SIGSTOP, TRUE /*trace*/, FALSE /* ksig */);
|
||||||
|
|
||||||
mp->mp_reply.reply_trace = 0;
|
mp->mp_reply.reply_trace = 0;
|
||||||
return(OK);
|
return(OK);
|
||||||
|
@ -192,12 +192,13 @@ PUBLIC int do_trace()
|
||||||
for (i = 1; i < _NSIG; i++) {
|
for (i = 1; i < _NSIG; i++) {
|
||||||
if (sigismember(&child->mp_sigtrace, i)) {
|
if (sigismember(&child->mp_sigtrace, i)) {
|
||||||
sigdelset(&child->mp_sigtrace, i);
|
sigdelset(&child->mp_sigtrace, i);
|
||||||
check_sig(child->mp_pid, i);
|
check_sig(child->mp_pid, i, FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_in.data > 0) { /* issue signal */
|
if (m_in.data > 0) { /* issue signal */
|
||||||
sig_proc(child, (int) m_in.data, TRUE /*trace*/);
|
sig_proc(child, (int) m_in.data, TRUE /*trace*/,
|
||||||
|
FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Resume the child as if nothing ever happened. */
|
/* Resume the child as if nothing ever happened. */
|
||||||
|
@ -214,7 +215,8 @@ PUBLIC int do_trace()
|
||||||
if (m_in.data < 0 || m_in.data >= _NSIG) return(EINVAL);
|
if (m_in.data < 0 || m_in.data >= _NSIG) return(EINVAL);
|
||||||
|
|
||||||
if (m_in.data > 0) { /* issue signal */
|
if (m_in.data > 0) { /* issue signal */
|
||||||
sig_proc(child, (int) m_in.data, FALSE /*trace*/);
|
sig_proc(child, (int) m_in.data, FALSE /*trace*/,
|
||||||
|
FALSE /* ksig */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If there are any other signals waiting to be delivered,
|
/* If there are any other signals waiting to be delivered,
|
||||||
|
|
|
@ -279,11 +279,11 @@ void test5g()
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
subtest = 7;
|
subtest = 7;
|
||||||
Signal(SIGUSR1, func11);
|
Signal(11, func11);
|
||||||
Signal(SIGUSR1, SIG_IGN);
|
Signal(11, SIG_IGN);
|
||||||
n = getpid();
|
n = getpid();
|
||||||
if (kill(n, SIGUSR1) != 0) e(1);
|
if (kill(n, 11) != 0) e(1);
|
||||||
Signal(SIGUSR1, SIG_DFL);
|
Signal(11, SIG_DFL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void funcalrm(s)
|
void funcalrm(s)
|
||||||
|
|
Loading…
Reference in a new issue