Remove support for MKTRACE, MKMCONTEXT, MKSTATECTL

Change-Id: Ib5fa53913ecb7b46d30d391dbdd3e8ef21eb2254
This commit is contained in:
David van Moolenbroek 2013-10-27 01:54:37 +02:00 committed by Lionel Sambuc
parent 56be4fa616
commit f30a16b159
14 changed files with 9 additions and 75 deletions

View file

@ -53,11 +53,6 @@ SRCS+= watchdog.c
CPPFLAGS+= -DUSE_WATCHDOG CPPFLAGS+= -DUSE_WATCHDOG
.endif .endif
.if ${USE_MCONTEXT} != "no"
SRCS+= do_mcontext.c
CPPFLAGS+= -DUSE_MCONTEXT
.endif
# Extra debugging routines # Extra debugging routines
.if ${USE_SYSDEBUG} != "no" .if ${USE_SYSDEBUG} != "no"
SRCS+= debug.c SRCS+= debug.c
@ -71,14 +66,6 @@ SRCS+= profile.c do_sprofile.c
CPPFLAGS+= -DUSE_UPDATE CPPFLAGS+= -DUSE_UPDATE
.endif .endif
.if ${USE_STATECTL} != "no"
CPPFLAGS+= -DUSE_STATECTL
.endif
.if ${USE_TRACE} != "no"
CPPFLAGS+= -DUSE_TRACE
.endif
CLEANFILES+=extracted-errno.h extracted-mfield.h extracted-mtype.h procoffsets.h CLEANFILES+=extracted-errno.h extracted-mfield.h extracted-mtype.h procoffsets.h
debug.o debug.d: extracted-errno.h extracted-mfield.h extracted-mtype.h debug.o debug.d: extracted-errno.h extracted-mfield.h extracted-mtype.h

View file

@ -20,6 +20,7 @@
#define USE_EXEC 1 /* update process after execute */ #define USE_EXEC 1 /* update process after execute */
#define USE_CLEAR 1 /* clean up after process exit */ #define USE_CLEAR 1 /* clean up after process exit */
#define USE_EXIT 1 /* a system process wants to exit */ #define USE_EXIT 1 /* a system process wants to exit */
#define USE_TRACE 1 /* process information and tracing */
#define USE_GETKSIG 1 /* retrieve pending kernel signals */ #define USE_GETKSIG 1 /* retrieve pending kernel signals */
#define USE_ENDKSIG 1 /* finish pending kernel signals */ #define USE_ENDKSIG 1 /* finish pending kernel signals */
#define USE_KILL 1 /* send a signal to a process */ #define USE_KILL 1 /* send a signal to a process */
@ -42,6 +43,8 @@
#define USE_PHYSCOPY 1 /* copy using physical addressing */ #define USE_PHYSCOPY 1 /* copy using physical addressing */
#define USE_MEMSET 1 /* write char to a given memory area */ #define USE_MEMSET 1 /* write char to a given memory area */
#define USE_RUNCTL 1 /* control stop flags of a process */ #define USE_RUNCTL 1 /* control stop flags of a process */
#define USE_STATECTL 1 /* let a process control its state */
#define USE_MCONTEXT 1 /* enable getting/setting of machine context */
#if defined(__arm__) #if defined(__arm__)
#define USE_PADCONF 1 /* configure pinmux */ #define USE_PADCONF 1 /* configure pinmux */

View file

@ -36,6 +36,7 @@ SRCS+= \
do_cprofile.c \ do_cprofile.c \
do_profbuf.c \ do_profbuf.c \
do_vmctl.c \ do_vmctl.c \
do_mcontext.c \
do_schedule.c \ do_schedule.c \
do_schedctl.c \ do_schedctl.c \
do_statectl.c do_statectl.c

View file

@ -5,8 +5,4 @@ LIB= blockdriver
SRCS= driver.c drvlib.c driver_st.c driver_mt.c mq.c trace.c SRCS= driver.c drvlib.c driver_st.c driver_mt.c mq.c trace.c
.if ${USE_STATECTL} != "no"
CPPFLAGS+= -DUSE_STATECTL
.endif
.include <bsd.lib.mk> .include <bsd.lib.mk>

View file

@ -106,10 +106,8 @@ void blockdriver_announce(int type)
* will not restart statefully, and thus will skip this code. * will not restart statefully, and thus will skip this code.
*/ */
if (type == SEF_INIT_RESTART) { if (type == SEF_INIT_RESTART) {
#if USE_STATECTL
if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK) if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK)
panic("blockdriver_init: sys_statectl failed: %d", r); panic("blockdriver_init: sys_statectl failed: %d", r);
#endif
} }
/* Publish a driver up event. */ /* Publish a driver up event. */

View file

@ -5,8 +5,4 @@ LIB= chardriver
SRCS= chardriver.c SRCS= chardriver.c
.if ${USE_STATECTL} != "no"
CPPFLAGS+= -DUSE_STATECTL
.endif
.include <bsd.lib.mk> .include <bsd.lib.mk>

View file

@ -106,10 +106,8 @@ void chardriver_announce(void)
* For this reason, there may blocked callers when a driver restarts. * For this reason, there may blocked callers when a driver restarts.
* Ask the kernel to unblock them (if any). * Ask the kernel to unblock them (if any).
*/ */
#if USE_STATECTL
if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK) if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK)
panic("chardriver_announce: sys_statectl failed: %d", r); panic("chardriver_announce: sys_statectl failed: %d", r);
#endif
/* Publish a driver up event. */ /* Publish a driver up event. */
if ((r = ds_retrieve_label_name(label, getprocnr())) != OK) if ((r = ds_retrieve_label_name(label, getprocnr())) != OK)

View file

@ -21,11 +21,9 @@ i2cdriver_announce(uint32_t bus)
* For this reason, there may blocked callers when a driver restarts. * For this reason, there may blocked callers when a driver restarts.
* Ask the kernel to unblock them (if any). * Ask the kernel to unblock them (if any).
*/ */
#if USE_STATECTL
if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK) { if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK) {
panic("chardriver_init: sys_statectl failed: %d", r); panic("chardriver_init: sys_statectl failed: %d", r);
} }
#endif
/* Publish a driver up event. */ /* Publish a driver up event. */
r = ds_retrieve_label_name(label, getprocnr()); r = ds_retrieve_label_name(label, getprocnr());

View file

@ -3,18 +3,8 @@
# Makefile for Process Manager (PM) # Makefile for Process Manager (PM)
PROG= pm PROG= pm
SRCS= main.c forkexit.c break.c exec.c time.c alarm.c \ SRCS= main.c forkexit.c break.c exec.c time.c alarm.c \
signal.c utility.c table.c getset.c misc.c \ signal.c utility.c table.c trace.c getset.c misc.c \
profile.c schedule.c profile.c mcontext.c schedule.c
.if ${USE_MCONTEXT} != "no"
SRCS+= mcontext.c
CPPFLAGS+= -DUSE_MCONTEXT
.endif
.if ${USE_TRACE} != "no"
SRCS+= trace.c
CPPFLAGS+= -DUSE_TRACE
.endif
DPADD+= ${LIBSYS} ${LIBTIMERS} DPADD+= ${LIBSYS} ${LIBTIMERS}
LDADD+= -lsys -ltimers LDADD+= -lsys -ltimers

View file

@ -188,14 +188,12 @@ void exec_restart(struct mproc *rmp, int result, vir_bytes pc, vir_bytes sp,
/* Cause a signal if this process is traced. /* Cause a signal if this process is traced.
* Do this before making the process runnable again! * Do this before making the process runnable again!
*/ */
#if USE_TRACE
if (rmp->mp_tracer != NO_TRACER && !(rmp->mp_trace_flags & TO_NOEXEC)) if (rmp->mp_tracer != NO_TRACER && !(rmp->mp_trace_flags & TO_NOEXEC))
{ {
sn = (rmp->mp_trace_flags & TO_ALTEXEC) ? SIGSTOP : SIGTRAP; sn = (rmp->mp_trace_flags & TO_ALTEXEC) ? SIGSTOP : SIGTRAP;
check_sig(rmp->mp_pid, sn, FALSE /* ksig */); check_sig(rmp->mp_pid, sn, FALSE /* ksig */);
} }
#endif /* USE_TRACE */
/* Call kernel to exec with SP and PC set by VFS. */ /* Call kernel to exec with SP and PC set by VFS. */
r = sys_exec(rmp->mp_endpoint, (char *) sp, rmp->mp_name, pc, ps_str); r = sys_exec(rmp->mp_endpoint, (char *) sp, rmp->mp_name, pc, ps_str);

View file

@ -122,11 +122,9 @@ int do_fork()
tell_vfs(rmc, &m); tell_vfs(rmc, &m);
#if USE_TRACE
/* 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*/, FALSE /* ksig */); sig_proc(rmc, SIGSTOP, TRUE /*trace*/, FALSE /* ksig */);
#endif /* USE_TRACE */
/* Do not reply until VFS is ready to process the fork /* Do not reply until VFS is ready to process the fork
* request * request
@ -215,11 +213,9 @@ int do_srv_fork()
tell_vfs(rmc, &m); tell_vfs(rmc, &m);
#if USE_TRACE
/* 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*/, FALSE /* ksig */); sig_proc(rmc, SIGSTOP, TRUE /*trace*/, FALSE /* ksig */);
#endif /* USE_TRACE */
/* Wakeup the newly created process */ /* Wakeup the newly created process */
setreply(rmc-mproc, OK); setreply(rmc-mproc, OK);
@ -357,12 +353,10 @@ int dump_core; /* flag indicating whether to dump core */
/* If the process has children, disinherit them. INIT is the new parent. */ /* If the process has children, disinherit them. INIT is the new parent. */
for (rmp = &mproc[0]; rmp < &mproc[NR_PROCS]; rmp++) { for (rmp = &mproc[0]; rmp < &mproc[NR_PROCS]; rmp++) {
if (!(rmp->mp_flags & IN_USE)) continue; if (!(rmp->mp_flags & IN_USE)) continue;
#if USE_TRACE
if (rmp->mp_tracer == proc_nr) { if (rmp->mp_tracer == proc_nr) {
/* This child's tracer died. Do something sensible. */ /* This child's tracer died. Do something sensible. */
tracer_died(rmp); tracer_died(rmp);
} }
#endif /* USE_TRACE */
if (rmp->mp_parent == proc_nr) { if (rmp->mp_parent == proc_nr) {
/* 'rmp' now points to a child to be disinherited. */ /* 'rmp' now points to a child to be disinherited. */
rmp->mp_parent = INIT_PROC_NR; rmp->mp_parent = INIT_PROC_NR;
@ -423,14 +417,12 @@ int dump_core; /* flag indicating whether to dump core */
panic("exit_restart: vm_exit failed: %d", r); panic("exit_restart: vm_exit failed: %d", r);
} }
#if USE_TRACE
if (rmp->mp_flags & TRACE_EXIT) if (rmp->mp_flags & TRACE_EXIT)
{ {
/* Wake up the tracer, completing the ptrace(T_EXIT) call */ /* Wake up the tracer, completing the ptrace(T_EXIT) call */
mproc[rmp->mp_tracer].mp_reply.reply_trace = 0; mproc[rmp->mp_tracer].mp_reply.reply_trace = 0;
setreply(rmp->mp_tracer, OK); setreply(rmp->mp_tracer, OK);
} }
#endif /* USE_TRACE */
/* Clean up if the parent has collected the exit status */ /* Clean up if the parent has collected the exit status */
if (rmp->mp_flags & TOLD_PARENT) if (rmp->mp_flags & TOLD_PARENT)
@ -476,7 +468,6 @@ int do_waitpid()
children++; /* this child is acceptable */ children++; /* this child is acceptable */
#if USE_TRACE
if (rp->mp_tracer == who_p) { if (rp->mp_tracer == who_p) {
if (rp->mp_flags & TRACE_ZOMBIE) { if (rp->mp_flags & TRACE_ZOMBIE) {
/* Traced child meets the pid test and has exited. */ /* Traced child meets the pid test and has exited. */
@ -499,7 +490,6 @@ int do_waitpid()
} }
} }
} }
#endif /* USE_TRACE */
if (rp->mp_parent == who_p) { if (rp->mp_parent == who_p) {
if (rp->mp_flags & ZOMBIE) { if (rp->mp_flags & ZOMBIE) {
@ -567,7 +557,6 @@ struct mproc *rmp;
/* See if we have to notify a tracer process first. */ /* See if we have to notify a tracer process first. */
if (rmp->mp_tracer != NO_TRACER && rmp->mp_tracer != rmp->mp_parent) { if (rmp->mp_tracer != NO_TRACER && rmp->mp_tracer != rmp->mp_parent) {
#if USE_TRACE
rmp->mp_flags |= TRACE_ZOMBIE; rmp->mp_flags |= TRACE_ZOMBIE;
t_mp = &mproc[rmp->mp_tracer]; t_mp = &mproc[rmp->mp_tracer];
@ -577,7 +566,6 @@ struct mproc *rmp;
return; return;
tell_tracer(rmp); tell_tracer(rmp);
#endif /* USE_TRACE */
} }
else { else {
rmp->mp_flags |= ZOMBIE; rmp->mp_flags |= ZOMBIE;
@ -652,7 +640,6 @@ register struct mproc *child; /* tells which process is exiting */
child->mp_flags |= TOLD_PARENT; /* avoid informing parent twice */ child->mp_flags |= TOLD_PARENT; /* avoid informing parent twice */
} }
#if USE_TRACE
/*===========================================================================* /*===========================================================================*
* tell_tracer * * tell_tracer *
*===========================================================================*/ *===========================================================================*/
@ -710,7 +697,6 @@ struct mproc *child; /* process being traced */
check_parent(child, TRUE /*try_cleanup*/); check_parent(child, TRUE /*try_cleanup*/);
} }
} }
#endif /* USE_TRACE */
/*===========================================================================* /*===========================================================================*
* cleanup * * cleanup *

View file

@ -43,10 +43,6 @@ void setreply(int proc_nr, int result);
/* mcontext.c */ /* mcontext.c */
int do_getmcontext(void); int do_getmcontext(void);
int do_setmcontext(void); int do_setmcontext(void);
#if ! USE_MCONTEXT
#define do_getmcontext no_sys
#define do_setmcontext no_sys
#endif
/* misc.c */ /* misc.c */
int do_reboot(void); int do_reboot(void);
@ -95,10 +91,6 @@ int do_settime(void);
/* trace.c */ /* trace.c */
int do_trace(void); int do_trace(void);
void stop_proc(struct mproc *rmp, int sig_nr); void stop_proc(struct mproc *rmp, int sig_nr);
#if ! USE_TRACE
#define do_trace no_sys
#define stop_proc no_sys
#endif
/* utility.c */ /* utility.c */
pid_t get_free_pid(void); pid_t get_free_pid(void);

View file

@ -330,7 +330,6 @@ int ksig; /* non-zero means signal comes from kernel */
panic("PM: signal %d sent to exiting process %d\n", signo, slot); panic("PM: signal %d sent to exiting process %d\n", signo, slot);
} }
#if USE_TRACE
if (trace == TRUE && rmp->mp_tracer != NO_TRACER && signo != SIGKILL) { if (trace == TRUE && rmp->mp_tracer != NO_TRACER && signo != SIGKILL) {
/* Signal should be passed to the debugger first. /* Signal should be passed to the debugger first.
* This happens before any checks on block/ignore masks; otherwise, * This happens before any checks on block/ignore masks; otherwise,
@ -344,7 +343,6 @@ int ksig; /* non-zero means signal comes from kernel */
return; return;
} }
#endif
if (rmp->mp_flags & VFS_CALL) { if (rmp->mp_flags & VFS_CALL) {
sigaddset(&rmp->mp_sigpending, signo); sigaddset(&rmp->mp_sigpending, signo);
@ -414,7 +412,6 @@ int ksig; /* non-zero means signal comes from kernel */
return; return;
} }
#if USE_TRACE
if ((rmp->mp_flags & STOPPED) && signo != SIGKILL) { if ((rmp->mp_flags & STOPPED) && signo != SIGKILL) {
/* If the process is stopped for a debugger, do not deliver any signals /* If the process is stopped for a debugger, do not deliver any signals
* (except SIGKILL) in order not to confuse the debugger. The signals * (except SIGKILL) in order not to confuse the debugger. The signals
@ -425,7 +422,6 @@ int ksig; /* non-zero means signal comes from kernel */
sigaddset(&rmp->mp_ksigpending, signo); sigaddset(&rmp->mp_ksigpending, signo);
return; return;
} }
#endif /* USE_TRACE */
if (!badignore && sigismember(&rmp->mp_catch, signo)) { if (!badignore && sigismember(&rmp->mp_catch, signo)) {
/* Signal is caught. First interrupt the process's current call, if /* Signal is caught. First interrupt the process's current call, if
* applicable. This may involve a roundtrip to VFS, in which case we'll * applicable. This may involve a roundtrip to VFS, in which case we'll
@ -611,10 +607,8 @@ struct mproc *rmp;
if (rmp->mp_flags & (VFS_CALL | EXITING)) return; if (rmp->mp_flags & (VFS_CALL | EXITING)) return;
if (rmp->mp_flags & TRACE_EXIT) { if (rmp->mp_flags & TRACE_EXIT) {
#if USE_TRACE
/* Tracer requested exit with specific exit value */ /* Tracer requested exit with specific exit value */
exit_proc(rmp, rmp->mp_exitstatus, FALSE /*dump_core*/); exit_proc(rmp, rmp->mp_exitstatus, FALSE /*dump_core*/);
#endif /* USE_TRACE */
} }
else if (rmp->mp_flags & PM_SIG_PENDING) { else if (rmp->mp_flags & PM_SIG_PENDING) {
/* We saved signal(s) for after finishing a VFS call. Deal with this. /* We saved signal(s) for after finishing a VFS call. Deal with this.

View file

@ -1007,7 +1007,7 @@ _MKVARS.yes= \
#MINIX-specific vars #MINIX-specific vars
_MKVARS.yes+= \ _MKVARS.yes+= \
MKMCONTEXT MKSYSDEBUG MKLIVEUPDATE MKSTATECTL MKTRACE MKLWIP MKSYSDEBUG MKLIVEUPDATE MKLWIP
.if (${MACHINE_ARCH} == "i386") .if (${MACHINE_ARCH} == "i386")
_MKVARS.yes+= \ _MKVARS.yes+= \
MKWATCHDOG MKACPI MKAPIC MKDEBUGREG MKINSTALLBOOT MKPCI MKWATCHDOG MKACPI MKAPIC MKDEBUGREG MKINSTALLBOOT MKPCI
@ -1126,12 +1126,9 @@ MKNLS:= no
MKWATCHDOG:= no MKWATCHDOG:= no
MKACPI:= no MKACPI:= no
MKAPIC:= no MKAPIC:= no
MKMCONTEXT:= no
MKDEBUGREG:= no MKDEBUGREG:= no
MKSYSDEBUG:= no MKSYSDEBUG:= no
MKLIVEUPDATE:= no MKLIVEUPDATE:= no
MKSTATECTL:= no
MKTRACE:= no
.endif .endif
# #
@ -1199,8 +1196,8 @@ ${var}?= yes
#MINIX-specific vars #MINIX-specific vars
.for var in \ .for var in \
USE_WATCHDOG USE_ACPI USE_APIC USE_MCONTEXT USE_DEBUGREG USE_SYSDEBUG \ USE_WATCHDOG USE_ACPI USE_APIC USE_DEBUGREG USE_SYSDEBUG \
USE_LIVEUPDATE USE_STATECTL USE_TRACE USE_PCI USE_BITCODE USE_LIVEUPDATE USE_PCI USE_BITCODE
.if (${${var:S/USE_/MK/}} == "no") .if (${${var:S/USE_/MK/}} == "no")
${var}:= no ${var}:= no
.else .else