Use custom config when needed.
[bertos.git] / bertos / cfg / cfg_kern.h
index 4b2286b364f60ac0315192254a25486fa33bf6db..dd987b93c19aba8cbbf312d6d4f771071076c35a 100644 (file)
@@ -26,8 +26,8 @@
  * 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
 #ifndef CFG_KERN_H
 #define CFG_KERN_H
 
-#include "cfg/cfg_arch.h"  /* ARCH_EMUL */
-
 /**
  * Enable the multithreading kernel.
+ *
+ * $WIZ$ type = "boolean"
  */
-#define CONFIG_KERNEL 0
+#define CONFIG_KERN  1
+
+#define CONFIG_KERN_SCHED       1  ///< Process schedling.                       $WIZ$ type = "boolean"
+#define CONFIG_KERN_SIGNALS     1  ///< Inter-process signals.                   $WIZ$ type = "boolean"
+#define CONFIG_KERN_IRQ         0  ///< Interrupt supervisor.                    $WIZ$ type = "boolean"
+#define CONFIG_KERN_HEAP        0  ///< Dynamic memory allocation.               $WIZ$ type = "boolean"
+#define CONFIG_KERN_SEMAPHORES  1  ///< Re-entrant mutual exclusion primitives.  $WIZ$ type = "boolean"
+#define CONFIG_KERN_MONITOR     1  ///< Process monitor.                         $WIZ$ type = "boolean"
+#define CONFIG_KERN_PREEMPT     0  ///< Preemptive process scheduling.           $WIZ$ type = "boolean"
+#define CONFIG_KERN_PRI         0  ///< Priority-based scheduling policy.        $WIZ$ type = "boolean"
 
 /**
- * \name Optional kernel features
+ * [ms] Time sharing quantum (a prime number prevents interference effects)
  *
- * \{
+ * $WIZ$ type = "int"
+ * $WIZ$ min = "0"
  */
-/*      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_IRQ         (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_PREEMPT     (0    && CONFIG_KERN_SCHED && CONFIG_KERN_TIMER && CONFIG_KERN_IRQ)
-
-/* EXPERIMENTAL */
-
-/* OBSOLETE */
-#define CONFIG_KERN_PREEMPTIVE CONFIG_KERN_PREEMPT
-
-/// [ms] Time sharing quantum (a prime number prevents interference effects)
 #define CONFIG_KERN_QUANTUM     47
 
-/// Module logging level.
+/**
+ * Module logging level.
+ *
+ * $WIZ$ type = "enum"
+ * $WIZ$ value_list = "log_level"
+ */
 #define KERN_LOG_LEVEL      LOG_LVL_ERR
 
-/// Module logging format.
+/**
+ * Module logging level.
+ *
+ * $WIZ$ type = "enum"
+ * $WIZ$ value_list = "log_level"
+ */
 #define KERN_LOG_FORMAT     LOG_FMT_VERBOSE
 
 #endif /*  CFG_KERN_H */