]> Zhao Yanbai Git Server - minix.git/commitdiff
Optionally disable kernel debug code
authorArun Thomas <arun@minix3.org>
Tue, 16 Aug 2011 15:18:55 +0000 (17:18 +0200)
committerArun Thomas <arun@minix3.org>
Tue, 16 Aug 2011 15:18:55 +0000 (17:18 +0200)
kernel/Makefile
kernel/arch/i386/Makefile.inc
kernel/arch/i386/arch_system.c
kernel/clock.c
kernel/debug.h
kernel/start.c
kernel/utility.c
share/mk/bsd.own.mk
share/mk/sys.mk

index 1b760c86ed2fb48abaa5c4bce21a981e2b2e0501..b411e3774a8b05fd19725a8fe12ddc102a74d8a8 100644 (file)
@@ -6,7 +6,7 @@ PROG=   kernel
 # first-stage, arch-dependent startup code
 SRCS=  mpx.S
 SRCS+= start.c table.c main.c proc.c \
-       system.c clock.c utility.c debug.c interrupt.c \
+       system.c clock.c utility.c interrupt.c \
        cpulocals.c
 
 .ifdef CONFIG_SMP
@@ -63,6 +63,14 @@ SRCS+= do_mcontext.c
 CPPFLAGS+= -DUSE_MCONTEXT
 .endif
 
+.if ${USE_DEBUGREG} != "no"
+SRCS+=         breakpoints.c debugreg.S
+.endif
+
+# Extra debugging routines
+.if ${USE_DEBUG} != "no"
+SRCS+=         debug.c
+.endif
 
 # These come last, so the profiling buffer is at the end of the data segment
 SRCS+= profile.c do_sprofile.c
index 4d9f7db13f75489d1c911b6fe012a5557f4675b6..08fb9fced8ae9f0f31641cbe35afea76b04e3e0e 100644 (file)
@@ -4,9 +4,7 @@
 
 .PATH: ${.CURDIR}/arch/${ARCH}
 SRCS+= arch_do_vmctl.c \
-       breakpoints.c \
        arch_clock.c \
-       debugreg.S \
        do_int86.c \
        do_iopenable.c \
        do_readbios.c \
index bb48c2afdf36f500ab6e1f8a257a329bb6fd38bb..a94c3a4a059b159a839978f12935fb8c33db165a 100644 (file)
@@ -395,6 +395,7 @@ PUBLIC void arch_init(void)
 #endif
 }
 
+#if DEBUG_SERIAL
 PUBLIC void ser_putc(char c)
 {
         int i;
@@ -414,6 +415,7 @@ PUBLIC void ser_putc(char c)
 #endif
 }
 
+
 /*===========================================================================*
  *                             do_ser_debug                                 * 
  *===========================================================================*/
@@ -597,6 +599,8 @@ PRIVATE void ser_dump_proc_cpu(void)
 }
 #endif
 
+#endif /* DEBUG_SERIAL */
+
 #if SPROFILE
 
 PUBLIC int arch_init_profile_clock(const u32_t freq)
index cb41aed29b8940be85201bebb40e6c8d1a71da5e..074dba884f5fa013dba4b7a53c21b0407a88d23c 100644 (file)
@@ -140,8 +140,11 @@ PUBLIC int timer_int_handler(void)
                                TMR_NEVER : clock_timers->tmr_exp_time;
                }
 
+#if DEBUG_SERIAL
                if (do_serial_debug)
                        do_ser_debug();
+#endif
+
        }
 
        return(1);                                      /* reenable interrupts */
index ce808f31ac4d894e0218f7186d4a1f5f97178eb7..58921db7c937e7ca9942374e09b114b22abcae0d 100644 (file)
@@ -13,6 +13,9 @@
 #include "config.h"
 #endif
 
+/* Debug info via serial (see ser_debug()) */
+#define DEBUG_SERIAL                   1
+
 /* Enable prints such as
  *  . send/receive failed due to deadlock or dead source or dead destination
  *  . trap not allowed
 /* DEBUG_IPCSTATS collects information on who sends messages to whom. */
 #define DEBUG_IPCSTATS                 0
 
+#if USE_SMALL
+#undef DEBUG_SERIAL
+#undef DEBUG_ENABLE_IPC_WARNINGS
+#endif
+
 #if DEBUG_DUMPIPC || DEBUG_IPCSTATS    /* either of these needs the hook */
 #define DEBUG_IPC_HOOK                 1
 #endif
index 55f8a28bf36fd34fa38b5bece63e07ae7262e39d..ba25c665e3c9984d8da1056845b2e15a878634e3 100644 (file)
@@ -84,6 +84,7 @@ PUBLIC void cstart(
   if(!value || system_hz < 2 || system_hz > 50000)     /* sanity check */
        system_hz = DEFAULT_HZ;
 
+#if DEBUG_SERIAL
   /* Intitialize serial debugging */
   value = env_get(SERVARNAME);
   if(value && atoi(value) == 0) {
@@ -92,6 +93,7 @@ PUBLIC void cstart(
        value = env_get(SERBAUDVARNAME);
        if (value) serial_debug_baud = atoi(value);
   }
+#endif
 
 #ifdef USE_APIC
   value = env_get("no_apic");
index 7d6521846bd5b9cbd4102f8804bb8a55649b84a4..15a043c586d3ff5e30ffe6cfc709a592e07964a4 100644 (file)
@@ -50,11 +50,13 @@ int c;                                      /* character to append */
  * to the output driver if an END_OF_KMESS is encountered. 
  */
   if (c != END_OF_KMESS) {
+#if DEBUG_SERIAL
       if (do_serial_debug) {
        if(c == '\n')
                ser_putc('\r');
        ser_putc(c);
       }
+#endif
       kmess.km_buf[kmess.km_next] = c; /* put normal char in buffer */
       if (kmess.km_size < sizeof(kmess.km_buf))
           kmess.km_size += 1;          
index 3c97108e929c996bea372e7dbd65a87e8940989f..7cb676d0bb70656fa25153f6aa4873ceec386e89 100644 (file)
@@ -757,7 +757,7 @@ _MKVARS.yes= \
        MKYP
 #MINIX-specific vars
 _MKVARS.yes+= \
-       MKWATCHDOG MKACPI MKAPIC MKMCONTEXT
+       MKWATCHDOG MKACPI MKAPIC MKMCONTEXT MKDEBUGREG MKDEBUG
 .for var in ${_MKVARS.yes}
 ${var}?=       yes
 .endfor
@@ -822,6 +822,8 @@ MKACPI:=    no
 MKAPIC:=       no
 MKMCONTEXT:=   no
 MKCOVERAGE:=   no
+MKDEBUGREG:=   no
+MKDEBUG:=      no
 .endif
 
 #
@@ -883,7 +885,7 @@ ${var}?= no
 # variable is set to "no".
 #
 .for var in USE_HESIOD USE_INET6 USE_KERBEROS USE_LDAP USE_PAM USE_YP \
-USE_WATCHDOG USE_ACPI USE_APIC USE_MCONTEXT
+USE_WATCHDOG USE_ACPI USE_APIC USE_MCONTEXT USE_DEBUGREG USE_DEBUG
 .if (${${var:S/USE_/MK/}} == "no")
 ${var}:= no
 .else
index 01cea435c1eb5dfeab5a3a41c82091f69ee4a070..28a396fc89cc5b0d2c066ebcad5ce81ac4dbcc36 100644 (file)
@@ -247,5 +247,5 @@ NBSD_LIBC=  yes
 
 .if ${COMPILER_TYPE} == "gnu" && defined(MKSMALL) && ${MKSMALL} == "yes"
 DBG=   -Os
-CFLAGS+= -DNDEBUG=1
+CFLAGS+= -DNDEBUG=1 -DUSE_SMALL=1
 .endif