diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-04-16 12:13:31 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-08-31 16:19:57 +0200 |
commit | ced28f2cfcee6d32ad7bb72e16b235212eb2eaaf (patch) | |
tree | f29f016b19d228905283427ac9e31d49fe0cee99 | |
parent | 1818b9a8269c4809b229c3bfa95896f067256bbe (diff) |
config: Provide file descriptors only if necessary
Only provide the file descriptor array if
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0. If someone configured
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS == 0 and the appplication uses
something which requires a file descriptor, then a linker error will
show up. An alternative would be to add a zero-length array
rtems_libio_iops[ 0 ] to librtemscpu.a which would be used in this
case.
Conditionally include some header files.
-rw-r--r-- | cpukit/include/rtems/confdefs/libio.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/cpukit/include/rtems/confdefs/libio.h b/cpukit/include/rtems/confdefs/libio.h index e986262e3e..8f43c490b1 100644 --- a/cpukit/include/rtems/confdefs/libio.h +++ b/cpukit/include/rtems/confdefs/libio.h @@ -43,7 +43,6 @@ #ifdef CONFIGURE_INIT #include <rtems/confdefs/bsp.h> -#include <rtems/libio.h> #include <rtems/sysinit.h> #ifdef CONFIGURE_FILESYSTEM_ALL @@ -86,6 +85,15 @@ #define CONFIGURE_IMFS_DISABLE_UTIME #endif +#ifndef CONFIGURE_MAXIMUM_FILE_DESCRIPTORS + #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 3 +#endif + +#if !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM) || \ + CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0 + #include <rtems/libio.h> +#endif + #ifdef CONFIGURE_APPLICATION_DISABLE_FILESYSTEM #ifdef CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM #error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM" @@ -122,10 +130,10 @@ #ifdef CONFIGURE_FILESYSTEM_TFTPFS #error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_TFTPFS" #endif +#else + #include <rtems/imfs.h> #endif -#include <rtems/imfs.h> - #ifdef CONFIGURE_FILESYSTEM_DOSFS #include <rtems/dosfs.h> #endif @@ -316,13 +324,11 @@ RTEMS_SYSINIT_ITEM( #endif /* !CONFIGURE_APPLICATION_DISABLE_FILESYSTEM */ -#ifndef CONFIGURE_MAXIMUM_FILE_DESCRIPTORS - #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 3 -#endif - -rtems_libio_t rtems_libio_iops[ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS ]; +#if CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0 + rtems_libio_t rtems_libio_iops[ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS ]; -const uint32_t rtems_libio_number_iops = RTEMS_ARRAY_SIZE( rtems_libio_iops ); + const uint32_t rtems_libio_number_iops = RTEMS_ARRAY_SIZE( rtems_libio_iops ); +#endif #ifdef __cplusplus } |