summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/confdefs
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-25 13:47:59 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-26 08:23:28 +0100
commitc36fae22fe0a0f0e66793a7f894817cff1ebf33b (patch)
treed5f24f6fa47bc058ddd067172119ad5990750561 /cpukit/include/rtems/confdefs
parentscore: Fix label defined but not used warning (diff)
downloadrtems-c36fae22fe0a0f0e66793a7f894817cff1ebf33b.tar.bz2
config: Initialize IO drivers on demand
Diffstat (limited to 'cpukit/include/rtems/confdefs')
-rw-r--r--cpukit/include/rtems/confdefs/iodrivers.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/cpukit/include/rtems/confdefs/iodrivers.h b/cpukit/include/rtems/confdefs/iodrivers.h
index 1e7b8c4e13..7ebe2ed474 100644
--- a/cpukit/include/rtems/confdefs/iodrivers.h
+++ b/cpukit/include/rtems/confdefs/iodrivers.h
@@ -42,7 +42,19 @@
#ifdef CONFIGURE_INIT
+#if defined(CONFIGURE_APPLICATION_EXTRA_DRIVERS) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER) \
+ || defined(CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER) \
+ || CONFIGURE_MAXIMUM_DRIVERS > 0
+
#include <rtems/ioimpl.h>
+#include <rtems/sysinit.h>
#ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#if defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) \
@@ -150,6 +162,12 @@ _IO_Driver_address_table[ CONFIGURE_MAXIMUM_DRIVERS ] = {
const size_t _IO_Number_of_drivers =
RTEMS_ARRAY_SIZE( _IO_Driver_address_table );
+RTEMS_SYSINIT_ITEM(
+ _IO_Initialize_all_drivers,
+ RTEMS_SYSINIT_DEVICE_DRIVERS,
+ RTEMS_SYSINIT_ORDER_MIDDLE
+);
+
#ifdef CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
#ifndef CONFIGURE_ATA_DRIVER_TASK_PRIORITY
#define CONFIGURE_ATA_DRIVER_TASK_PRIORITY ATA_DRIVER_TASK_DEFAULT_PRIORITY
@@ -163,6 +181,17 @@ const size_t _IO_Number_of_drivers =
}
#endif
+#endif /* CONFIGURE_APPLICATION_EXTRA_DRIVERS
+ || CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+ || CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+ || CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
+ || CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+ || CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+ || CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
+ || CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+ || CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
+ || CONFIGURE_MAXIMUM_DRIVERS */
+
#endif /* CONFIGURE_INIT */
#endif /* _RTEMS_CONFDEFS_IODRIVERS_H */