Remove plenty of legacy names marked as OBSOLETE
[bertos.git] / bertos / cfg / cfg_kern.h
index 2188b72da209234b53622f3ce3b1d5de61ed7f05..e828bce7009a46a7af95ca2ced6cdc8f1fe2f6a5 100644 (file)
  * invalidate any other reasons why the executable file might be covered by
  * the GNU General Public License.
  *
- * Copyright 2001,2004 Develer S.r.l. (http://www.develer.com/)
- * Copyright 1999,2000,2001 Bernie Innocenti <bernie@codewiz.org>
- *
+ * Copyright 2001, 2004 Develer S.r.l. (http://www.develer.com/)
+ * Copyright 1999, 2000, 2001, 2008 Bernie Innocenti <bernie@codewiz.org>
  * -->
  *
  * \brief Kernel configuration parameters
  *
  * \version $Id$
- *
  * \author Bernie Innocenti <bernie@codewiz.org>
  */
 
 #ifndef CFG_KERN_H
 #define CFG_KERN_H
 
-#include "cfg/cfg_arch.h"  /* ARCH_EMUL */
-
 /**
- * Multithreading kernel.
+ * Enable the multithreading kernel.
  */
-#define CONFIG_KERNEL 0
+#define CONFIG_KERN  1
 
 /**
- * \name Modules activation
- *
+ * \name Optional kernel features
  * \{
  */
-/*      Module/option          Active    Dependencies */
-#define CONFIG_KERN_SCHED       (0)
-#define CONFIG_KERN_SIGNALS     (0    && CONFIG_KERN_SCHED)
-#define CONFIG_KERN_TIMER       (0)
-#define CONFIG_KERN_HEAP        (0)
-#define CONFIG_KERN_SEMAPHORES  (0    && CONFIG_KERN_SIGNALS)
-#define CONFIG_KERN_MONITOR     (0    && CONFIG_KERN_SCHED)
+#define CONFIG_KERN_SCHED       1  ///< Process schedling
+#define CONFIG_KERN_SIGNALS     1  ///< Inter-process signals
+#define CONFIG_KERN_IRQ         1  ///< Interrupt supervisor
+#define CONFIG_KERN_HEAP        0  ///< Dynamic memory allocation
+#define CONFIG_KERN_SEMAPHORES  0  ///< Re-entrant mutual exclusion primitives
+#define CONFIG_KERN_MONITOR     1  ///< Process monitor
+#define CONFIG_KERN_PREEMPT     1  ///< Preemptive process scheduling
+#define CONFIG_KERN_PRI         1  ///< Priority-based scheduling policy
 /*\}*/
 
-/* EXPERIMENTAL */
-#define CONFIG_KERN_PREEMPTIVE  (0    && CONFIG_KERN_SCHED && CONFIG_KERN_TIMER)
-
-#define CONFIG_KERN_QUANTUM     50    /**< Time sharing quantum in timer ticks. */
-
-#if (ARCH & ARCH_EMUL)
-       /* We need a large stack because system libraries are bloated */
-       #define CONFIG_PROC_DEFSTACKSIZE  65536
-#else
-       /**
-        * Default stack size for each thread, in bytes.
-        *
-        * The goal here is to allow a minimal task to save all of its
-        * registers twice, plus push a maximum of 32 variables on the
-        * stack.
-        *
-        * The actual size computed by the default formula is:
-        *   AVR:    102
-        *   i386:   156
-        *   ARM:    164
-        *   x86_64: 184
-        *
-        * Note that on most 16bit architectures, interrupts will also
-        * run on the stack of the currently running process.  Nested
-        * interrupts will greatly increases the amount of stack space
-        * required per process.  Use irqmanager to minimize stack
-        * usage.
-        */
-       #define CONFIG_PROC_DEFSTACKSIZE  \
-           (CPU_SAVED_REGS_CNT * 2 * sizeof(cpustack_t) \
-           + 32 * sizeof(int))
-#endif
+/// [ms] Time sharing quantum (a prime number prevents interference effects)
+#define CONFIG_KERN_QUANTUM     47
 
-/* OBSOLETE */
-#define CONFIG_KERN_DEFSTACKSIZE CONFIG_PROC_DEFSTACKSIZE
+/// Module logging level.
+#define KERN_LOG_LEVEL      LOG_LVL_ERR
 
-/* Memory fill codes to help debugging */
-#if CONFIG_KERN_MONITOR
-       #include <cpu/types.h>
-       #if (SIZEOF_CPUSTACK_T == 1)
-               /* 8bit cpustack_t */
-               #define CONFIG_KERN_STACKFILLCODE  0xA5
-               #define CONFIG_KERN_MEMFILLCODE    0xDB
-       #elif (SIZEOF_CPUSTACK_T == 2)
-               /* 16bit cpustack_t */
-               #define CONFIG_KERN_STACKFILLCODE  0xA5A5
-               #define CONFIG_KERN_MEMFILLCODE    0xDBDB
-       #elif (SIZEOF_CPUSTACK_T == 4)
-               /* 16bit cpustack_t */
-               #define CONFIG_KERN_STACKFILLCODE  0xA5A5A5A5UL
-               #define CONFIG_KERN_MEMFILLCODE    0xDBDBDBDBUL
-       #elif (SIZEOF_CPUSTACK_T == 8)
-               /* 16bit cpustack_t */
-               #define CONFIG_KERN_STACKFILLCODE  0xA5A5A5A5A5A5A5A5UL
-               #define CONFIG_KERN_MEMFILLCODE    0xDBDBDBDBDBDBDBDBUL
-       #else
-               #error No cpustack_t size supported!
-       #endif
-#endif
+/// Module logging format.
+#define KERN_LOG_FORMAT     LOG_FMT_VERBOSE
 
 #endif /*  CFG_KERN_H */