proc_forbid(): extensively document why we don't need locking
[bertos.git] / app / demo / cfg / cfg_kern.h
index 8dbd6608bb0f40cf27b0bdc16c63cb3965161231..e828bce7009a46a7af95ca2ced6cdc8f1fe2f6a5 100644 (file)
 #ifndef CFG_KERN_H
 #define CFG_KERN_H
 
-#include "cfg/cfg_arch.h"  /* ARCH_EMUL */
-
 /**
  * Enable the multithreading kernel.
  */
-#define CONFIG_KERNEL 1
+#define CONFIG_KERN  1
 
 /**
  * \name Optional kernel features
- *
  * \{
  */
-/*      Module/option          Active    Dependencies */
-#define CONFIG_KERN_SCHED       (1)
-#define CONFIG_KERN_SIGNALS     (1    && CONFIG_KERN_SCHED)
-#define CONFIG_KERN_TIMER       (1)
-#define CONFIG_KERN_HEAP        (0)
-#define CONFIG_KERN_SEMAPHORES  (0    && CONFIG_KERN_SIGNALS)
-#define CONFIG_KERN_MONITOR     (1    && 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_PREEMPT     (1    && CONFIG_KERN_SCHED && CONFIG_KERN_TIMER)
-
-/* OBSOLETE */
-#define CONFIG_KERN_PREEMPTIVE CONFIG_KERN_PREEMPT
-
-/// Time sharing quantum in timer ticks.
-#define CONFIG_KERN_QUANTUM     50
+/// [ms] Time sharing quantum (a prime number prevents interference effects)
+#define CONFIG_KERN_QUANTUM     47
 
 /// Module logging level.
 #define KERN_LOG_LEVEL      LOG_LVL_ERR