* 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 Bernardo Innocenti <bernie@develer.com>
- *
+ * 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 Bernardo Innocenti <bernie@develer.com>
+ * \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 */