37#ifndef _RTEMS_CONFDEFS_IODRIVERS_H
38#define _RTEMS_CONFDEFS_IODRIVERS_H
40#ifndef __CONFIGURATION_TEMPLATE_h
41#error "Do not include this file directly, use <rtems/confdefs.h> instead"
48#if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
49 defined(CONFIGURE_BSP_PREREQUISITE_DRIVERS)
50#define _CONFIGURE_BSP_PREREQUISITE_DRIVERS CONFIGURE_BSP_PREREQUISITE_DRIVERS
53#if defined(_CONFIGURE_BSP_PREREQUISITE_DRIVERS) || \
54 defined(CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS) || \
55 defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) || \
56 defined(CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER) || \
57 defined(CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER) || \
58 defined(CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER) || \
59 defined(CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER) || \
60 defined(CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER) || \
61 defined(CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER) || \
62 defined(CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER) || \
63 defined(CONFIGURE_APPLICATION_NEEDS_LIBI2C_DRIVER) || \
64 defined(CONFIGURE_APPLICATION_EXTRA_DRIVERS)
65#define _CONFIGURE_HAS_IO_DRIVERS
68#if defined(_CONFIGURE_HAS_IO_DRIVERS) || \
69 defined(CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER) || \
70 CONFIGURE_MAXIMUM_DRIVERS > 0
75#ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
76 #if defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) \
77 || defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER)
78 #error "CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER, CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER are mutually exclusive"
84#ifdef CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
88#ifdef CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
92#ifdef CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
96#ifdef CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
100#ifdef CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
104#ifdef CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
105 #ifndef CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
106 #define CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
109 #include <libchip/ide_ctrl.h>
112#ifdef CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
113 #include <libchip/ata.h>
116#ifdef CONFIGURE_APPLICATION_NEEDS_LIBI2C_DRIVER
120#ifndef CONFIGURE_MAXIMUM_DRIVERS
121 #define CONFIGURE_MAXIMUM_DRIVERS
124#define NULL_DRIVER_TABLE_ENTRY { NULL, NULL, NULL, NULL, NULL, NULL }
132 #ifdef _CONFIGURE_BSP_PREREQUISITE_DRIVERS
133 _CONFIGURE_BSP_PREREQUISITE_DRIVERS,
135 #ifdef CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
138 #ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
139 CONSOLE_DRIVER_TABLE_ENTRY,
141 #ifdef CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
142 RTC_DRIVER_TABLE_ENTRY,
144 #ifdef CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
147 #ifdef CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
148 DEVNULL_DRIVER_TABLE_ENTRY,
150 #ifdef CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
151 DEVZERO_DRIVER_TABLE_ENTRY,
153 #ifdef CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
154 IDE_CONTROLLER_DRIVER_TABLE_ENTRY,
156 #ifdef CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
157 ATA_DRIVER_TABLE_ENTRY,
159 #ifdef CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
162 #ifdef CONFIGURE_APPLICATION_EXTRA_DRIVERS
165 #ifdef CONFIGURE_APPLICATION_NEEDS_LIBI2C_DRIVER
166 RTEMS_LIBI2C_DRIVER_TABLE_ENTRY,
168 #if defined(CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER) || \
169 !defined(_CONFIGURE_HAS_IO_DRIVERS)
170 NULL_DRIVER_TABLE_ENTRY
174const size_t _IO_Number_of_drivers =
179 RTEMS_SYSINIT_DEVICE_DRIVERS,
180 RTEMS_SYSINIT_ORDER_MIDDLE
183#ifdef CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
184 #ifndef CONFIGURE_ATA_DRIVER_TASK_PRIORITY
185 #define CONFIGURE_ATA_DRIVER_TASK_PRIORITY ATA_DRIVER_TASK_DEFAULT_PRIORITY
208#if defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) || \
209 defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) || \
210 defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER)
215 rtems_libio_post_driver,
216 RTEMS_SYSINIT_STD_FILE_DESCRIPTORS,
217 RTEMS_SYSINIT_ORDER_MIDDLE
This header file evaluates configuration options related to the BSP configuration.
Console Driver for all Boards.
Real-Time Clock Driver Interface.
RTEMS /dev/null Device Driver.
RTEMS /dev/zero Device Driver.
Frame Buffer Device Driver for all Boards.
#define FRAME_BUFFER_DRIVER_TABLE_ENTRY
Definition framebuffer.h:64
#define RTEMS_ARRAY_SIZE(_array)
Gets the element count of the array.
Definition basedefs.h:244
uint32_t rtems_task_priority
This integer type represents task priorities of the Classic API.
Definition types.h:257
#define RTEMS_SYSINIT_ITEM(handler, module, order)
Creates the system initialization item associated with the handler, module, and order.
Definition sysinit.h:204
#define CONFIGURE_APPLICATION_EXTRA_DRIVERS
This configuration option is an initializer define.
Definition appl-config.h:1213
#define CONFIGURE_ATA_DRIVER_TASK_PRIORITY
This configuration option is an integer define.
Definition appl-config.h:1637
#define CONFIGURE_MAXIMUM_DRIVERS
This configuration option is an integer define.
Definition appl-config.h:1736
#define CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
This configuration option is an initializer define.
Definition appl-config.h:1614
void _IO_Initialize_all_drivers(void)
Initialization of all device drivers.
Definition io.c:47
This header file provides interfaces used by the I/O Manager implementation.
This structure contains the device driver entries.
Definition io.h:140
This header file provides the API of the System Initialization Support.
#define WATCHDOG_DRIVER_TABLE_ENTRY
Definition watchdogdrv.h:49