benchmark: "semaphores" module should be a dependency for kernel_footprint.
[bertos.git] / bertos / drv / lcd_text.c
index d62752078640d9f09ccd21da8b895da60a503be5..5cdb00581656169fa33a1535394981a8dbd7b9d9 100644 (file)
@@ -46,7 +46,7 @@
 #include <drv/timer.h> // timer_delay()
 
 #include <mware/formatwr.h> // _formatted_write()
-#include <mware/list.h> // LIST_EMPTY()
+#include <struct/list.h> // LIST_EMPTY()
 
 #include <string.h> // strlen()
 
 /** Maximum number of layers. */
 #define LCD_LAYERS 6
 
-#if CONFIG_KERNEL
+#if CONFIG_KERN
+       #include <kern/sem.h>
        /** Semaphore to arbitrate access to the display. */
        static struct Semaphore lcd_semaphore;
        #define LOCK_LCD        sem_obtain(&lcd_semaphore)
        #define UNLOCK_LCD      sem_release(&lcd_semaphore)
-#else /* !CONFIG_KERNEL */
+#else /* !CONFIG_KERN */
        #define LOCK_LCD        do {} while (0)
        #define UNLOCK_LCD      do {} while (0)
-#endif /* !CONFIG_KERNEL */
+#endif /* !CONFIG_KERN */
 
 DECLARE_LIST_TYPE(Layer);
 
@@ -91,7 +92,7 @@ void lcd_setAddr(Layer *layer, lcdpos_t addr)
        layer->addr = addr;
 }
 
-#if CONFIG_KERNEL
+#if CONFIG_KERN
 
 void lcd_lock(void)
 {
@@ -104,7 +105,7 @@ void lcd_unlock(void)
        UNLOCK_LCD;
 }
 
-#endif /* CONFIG_KERNEL */
+#endif /* CONFIG_KERN */
 
 
 /**
@@ -437,6 +438,10 @@ static void lcd_setDefLayer(Layer *layer)
 #include <cfg/debug.h>
 void lcd_init(void)
 {
+       #if CONFIG_KERN
+       sem_init(&lcd_semaphore);
+       #endif
+
        int i;
 
        LIST_INIT(&lcd_Layers);