]> Zhao Yanbai Git Server - minix.git/commitdiff
Remove support for MKTRACE, MKMCONTEXT, MKSTATECTL
authorDavid van Moolenbroek <david@minix3.org>
Sat, 26 Oct 2013 23:54:37 +0000 (01:54 +0200)
committerLionel Sambuc <lionel@minix3.org>
Sat, 1 Mar 2014 08:04:59 +0000 (09:04 +0100)
Change-Id: Ib5fa53913ecb7b46d30d391dbdd3e8ef21eb2254

14 files changed:
kernel/Makefile
kernel/config.h
kernel/system/Makefile.inc
lib/libblockdriver/Makefile
lib/libblockdriver/driver.c
lib/libchardriver/Makefile
lib/libchardriver/chardriver.c
lib/libi2cdriver/i2cdriver.c
servers/pm/Makefile
servers/pm/exec.c
servers/pm/forkexit.c
servers/pm/proto.h
servers/pm/signal.c
share/mk/bsd.own.mk

index 0cebcdd6e032d5b1cbcc87316f3403e5a1562fea..69a95d1c72d7c07c751996ec1d33d2c69449f8e0 100644 (file)
@@ -53,11 +53,6 @@ SRCS+= watchdog.c
 CPPFLAGS+= -DUSE_WATCHDOG
 .endif
 
-.if ${USE_MCONTEXT} != "no"
-SRCS+= do_mcontext.c
-CPPFLAGS+= -DUSE_MCONTEXT
-.endif
-
 # Extra debugging routines
 .if ${USE_SYSDEBUG} != "no"
 SRCS+=         debug.c
@@ -71,14 +66,6 @@ SRCS+= profile.c do_sprofile.c
 CPPFLAGS+= -DUSE_UPDATE
 .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
 
 debug.o debug.d: extracted-errno.h extracted-mfield.h extracted-mtype.h
index 56cfb7463c9368a240ff861fa1afb307591fa82f..a99b2990a1963e255d31da2263e503d04a8cc4bb 100644 (file)
@@ -20,6 +20,7 @@
 #define USE_EXEC                  1    /* update process after execute */
 #define USE_CLEAR         1    /* clean up after process 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_ENDKSIG               1    /* finish pending kernel signals */
 #define USE_KILL                  1    /* send a signal to a process */
@@ -42,6 +43,8 @@
 #define USE_PHYSCOPY      1    /* copy using physical addressing */
 #define USE_MEMSET        1    /* write char to a given memory area */
 #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__)
 #define USE_PADCONF        1   /* configure pinmux */
index 431bbe584b4e3fb10efc63b1a0c4d9e9b687eb17..ef8cf2e3c209dfd04df6d1a66ccca029cee627ca 100644 (file)
@@ -36,6 +36,7 @@ SRCS+=        \
        do_cprofile.c \
        do_profbuf.c \
        do_vmctl.c \
+       do_mcontext.c \
        do_schedule.c \
        do_schedctl.c \
        do_statectl.c
index dc00508fe8eca2d6ece5b321fcdee6ab747188e5..273201a0dc48f2c27900cbecb8c36927ee844779 100644 (file)
@@ -5,8 +5,4 @@ LIB=    blockdriver
 
 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>
index 932aa576dd8849bc3917a089cd941d463cbba351..780abe0bdab00ba1529c8cca8193c61e987ca3c9 100644 (file)
@@ -106,10 +106,8 @@ void blockdriver_announce(int type)
    * will not restart statefully, and thus will skip this code.
    */
   if (type == SEF_INIT_RESTART) {
-#if USE_STATECTL
        if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK)
                panic("blockdriver_init: sys_statectl failed: %d", r);
-#endif
   }
 
   /* Publish a driver up event. */
index f3f0aa56eb3e6e5717c9642cd8a81773a8024ed8..e38eb0ba42a0fa6324c3d4d8fd04aeff0853d519 100644 (file)
@@ -5,8 +5,4 @@ LIB=    chardriver
 
 SRCS=  chardriver.c
 
-.if ${USE_STATECTL} != "no"
-CPPFLAGS+= -DUSE_STATECTL
-.endif
-
 .include <bsd.lib.mk>
index 28fbacaac0cd0147831488791e062b91c626c582..21f065df13154164126e2aaf56f389191d9c4920 100644 (file)
@@ -106,10 +106,8 @@ void chardriver_announce(void)
    * For this reason, there may blocked callers when a driver restarts.
    * Ask the kernel to unblock them (if any).
    */
-#if USE_STATECTL
   if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK)
        panic("chardriver_announce: sys_statectl failed: %d", r);
-#endif
 
   /* Publish a driver up event. */
   if ((r = ds_retrieve_label_name(label, getprocnr())) != OK)
index 1d16db095bc9a4eb7a5c6aaa7ab64c16b0613d41..9d5a6df20b7fae792a11da82102fd18d40851a04 100644 (file)
@@ -21,11 +21,9 @@ i2cdriver_announce(uint32_t bus)
         * For this reason, there may blocked callers when a driver restarts.
         * Ask the kernel to unblock them (if any).
         */
-#if USE_STATECTL
        if ((r = sys_statectl(SYS_STATE_CLEAR_IPC_REFS)) != OK) {
                panic("chardriver_init: sys_statectl failed: %d", r);
        }
-#endif
 
        /* Publish a driver up event. */
        r = ds_retrieve_label_name(label, getprocnr());
index 5a64169c0f4b8aab901e9b5a4b2323e0eae40db3..282c89f8cad4097f5d99a712f7b2bb340eae6b8f 100644 (file)
@@ -3,18 +3,8 @@
 # Makefile for Process Manager (PM)
 PROG=  pm
 SRCS=  main.c forkexit.c break.c exec.c time.c alarm.c \
-       signal.c utility.c table.c getset.c misc.c \
-       profile.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
+       signal.c utility.c table.c trace.c getset.c misc.c \
+       profile.c mcontext.c schedule.c
 
 DPADD+=        ${LIBSYS} ${LIBTIMERS}
 LDADD+=        -lsys -ltimers
index 89285920b1d2d4cda0ee865024ad4ec0e4574e12..f44a4940e782519322d219ce662b8a1bba4eb653 100644 (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.
         * Do this before making the process runnable again!
         */
-#if USE_TRACE
        if (rmp->mp_tracer != NO_TRACER && !(rmp->mp_trace_flags & TO_NOEXEC))
        {
                sn = (rmp->mp_trace_flags & TO_ALTEXEC) ? SIGSTOP : SIGTRAP;
 
                check_sig(rmp->mp_pid, sn, FALSE /* ksig */);
        }
-#endif /* USE_TRACE */
 
        /* 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);
index 8cc065af5f1bac82f4f29b2381f36356d7024f39..eafd37b6c71fcfa0c5e60a4806c422db37910260 100644 (file)
@@ -122,11 +122,9 @@ int do_fork()
 
   tell_vfs(rmc, &m);
 
-#if USE_TRACE
   /* Tell the tracer, if any, about the new child */
   if (rmc->mp_tracer != NO_TRACER)
        sig_proc(rmc, SIGSTOP, TRUE /*trace*/, FALSE /* ksig */);
-#endif /* USE_TRACE */
 
   /* Do not reply until VFS is ready to process the fork
   * request
@@ -215,11 +213,9 @@ int do_srv_fork()
 
   tell_vfs(rmc, &m);
 
-#if USE_TRACE
   /* Tell the tracer, if any, about the new child */
   if (rmc->mp_tracer != NO_TRACER)
        sig_proc(rmc, SIGSTOP, TRUE /*trace*/, FALSE /* ksig */);
-#endif /* USE_TRACE */
 
   /* Wakeup the newly created process */
   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. */
   for (rmp = &mproc[0]; rmp < &mproc[NR_PROCS]; rmp++) {
        if (!(rmp->mp_flags & IN_USE)) continue;
-#if USE_TRACE
        if (rmp->mp_tracer == proc_nr) {
                /* This child's tracer died. Do something sensible. */
                tracer_died(rmp);
        }
-#endif /* USE_TRACE */
        if (rmp->mp_parent == proc_nr) {
                /* 'rmp' now points to a child to be disinherited. */
                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);
   }
 
-#if USE_TRACE
   if (rmp->mp_flags & TRACE_EXIT)
   {
        /* Wake up the tracer, completing the ptrace(T_EXIT) call */
        mproc[rmp->mp_tracer].mp_reply.reply_trace = 0;
        setreply(rmp->mp_tracer, OK);
   }
-#endif /* USE_TRACE */
 
   /* Clean up if the parent has collected the exit status */
   if (rmp->mp_flags & TOLD_PARENT)
@@ -476,7 +468,6 @@ int do_waitpid()
 
        children++;                     /* this child is acceptable */
 
-#if USE_TRACE
        if (rp->mp_tracer == who_p) {
                if (rp->mp_flags & TRACE_ZOMBIE) {
                        /* 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_flags & ZOMBIE) {
@@ -567,7 +557,6 @@ struct mproc *rmp;
 
   /* See if we have to notify a tracer process first. */
   if (rmp->mp_tracer != NO_TRACER && rmp->mp_tracer != rmp->mp_parent) {
-#if USE_TRACE
        rmp->mp_flags |= TRACE_ZOMBIE;
 
        t_mp = &mproc[rmp->mp_tracer];
@@ -577,7 +566,6 @@ struct mproc *rmp;
                return;
 
        tell_tracer(rmp);
-#endif /* USE_TRACE */
   }
   else {
        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 */
 }
 
-#if USE_TRACE
 /*===========================================================================*
  *                             tell_tracer                                  *
  *===========================================================================*/
@@ -710,7 +697,6 @@ struct mproc *child;                        /* process being traced */
        check_parent(child, TRUE /*try_cleanup*/);
   }
 }
-#endif /* USE_TRACE */
 
 /*===========================================================================*
  *                             cleanup                                      *
index 9789a9cd675d5cdfb75b01d8630bef032c721fe1..b46cae0cf8c16c6353615e6bd1b2e901a13eadb9 100644 (file)
@@ -43,10 +43,6 @@ void setreply(int proc_nr, int result);
 /* mcontext.c */
 int do_getmcontext(void);
 int do_setmcontext(void);
-#if ! USE_MCONTEXT
-#define do_getmcontext no_sys
-#define do_setmcontext no_sys
-#endif
 
 /* misc.c */
 int do_reboot(void);
@@ -95,10 +91,6 @@ int do_settime(void);
 /* trace.c */
 int do_trace(void);
 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 */
 pid_t get_free_pid(void);
index fd35304c7ff69f0d759398a408871f87aa3c5b6a..47661368ec33986bb865ff0a52102bdb1825bc7a 100644 (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);
   }
 
-#if USE_TRACE
   if (trace == TRUE && rmp->mp_tracer != NO_TRACER && signo != SIGKILL) {
        /* Signal should be passed to the debugger first.
         * This happens before any checks on block/ignore masks; otherwise,
@@ -344,7 +343,6 @@ int ksig;                   /* non-zero means signal comes from kernel  */
 
        return;
   }
-#endif
 
   if (rmp->mp_flags & VFS_CALL) {
        sigaddset(&rmp->mp_sigpending, signo);
@@ -414,7 +412,6 @@ int ksig;                   /* non-zero means signal comes from kernel  */
        return;
   }
 
-#if USE_TRACE
   if ((rmp->mp_flags & STOPPED) && signo != SIGKILL) {
        /* If the process is stopped for a debugger, do not deliver any 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);
        return;
   }
-#endif /* USE_TRACE */
   if (!badignore && sigismember(&rmp->mp_catch, signo)) {
        /* Signal is caught. First interrupt the process's current call, if
         * 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 & TRACE_EXIT) {
-#if USE_TRACE
        /* Tracer requested exit with specific exit value */
        exit_proc(rmp, rmp->mp_exitstatus, FALSE /*dump_core*/);
-#endif /* USE_TRACE */
   }
   else if (rmp->mp_flags & PM_SIG_PENDING) {
        /* We saved signal(s) for after finishing a VFS call. Deal with this.
index 681a715dbf139a04d25c6de40f2a05767d3e3f84..5a05c215be884ac24452264902e697f6dc6e7e0d 100644 (file)
@@ -1007,7 +1007,7 @@ _MKVARS.yes= \
 
 #MINIX-specific vars
 _MKVARS.yes+= \
-       MKMCONTEXT MKSYSDEBUG MKLIVEUPDATE MKSTATECTL MKTRACE MKLWIP
+       MKSYSDEBUG MKLIVEUPDATE MKLWIP
 .if (${MACHINE_ARCH} == "i386")
 _MKVARS.yes+= \
        MKWATCHDOG MKACPI MKAPIC MKDEBUGREG MKINSTALLBOOT MKPCI
@@ -1126,12 +1126,9 @@ MKNLS:=          no
 MKWATCHDOG:=   no
 MKACPI:=       no
 MKAPIC:=       no
-MKMCONTEXT:=   no
 MKDEBUGREG:=   no
 MKSYSDEBUG:=   no
 MKLIVEUPDATE:= no
-MKSTATECTL:=   no
-MKTRACE:=      no
 .endif
 
 #
@@ -1199,8 +1196,8 @@ ${var}?= yes
 
 #MINIX-specific vars
 .for var in \
-       USE_WATCHDOG USE_ACPI USE_APIC USE_MCONTEXT USE_DEBUGREG USE_SYSDEBUG \
-       USE_LIVEUPDATE USE_STATECTL USE_TRACE USE_PCI USE_BITCODE
+       USE_WATCHDOG USE_ACPI USE_APIC USE_DEBUGREG USE_SYSDEBUG \
+       USE_LIVEUPDATE USE_PCI USE_BITCODE
 .if (${${var:S/USE_/MK/}} == "no")
 ${var}:= no
 .else