[rtems commit] rtems: Account for file system semaphores.
Joel Sherrill
joel.sherrill at OARcorp.com
Fri Apr 25 13:51:21 UTC 2014
The intention with confdefs is that the user does not have to
know the implicit requirements of the higher level capability
they configured. User configures number of file descriptors,
Ada tasks, etc.
So if a filesystem needs resources, confdefs.h should reserve
them.
On 4/25/2014 1:07 AM, Chris Johns wrote:
> Module: rtems
> Branch: master
> Commit: c9a0a10dde72a9d8ff08a3520fcddb28553c497f
> Changeset: http://git.rtems.org/rtems/commit/?id=c9a0a10dde72a9d8ff08a3520fcddb28553c497f
>
> Author: Chris Johns <chrisj at rtems.org>
> Date: Fri Apr 25 16:14:19 2014 +1000
>
> rtems: Account for file system semaphores.
>
> Add support to account for the semaphores used by the file systems.
>
> ---
>
> cpukit/sapi/include/confdefs.h | 34 ++++++++++++++++++++++++++++++++--
> 1 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
> index 69c74f7..ba1b47f 100644
> --- a/cpukit/sapi/include/confdefs.h
> +++ b/cpukit/sapi/include/confdefs.h
> @@ -422,8 +422,14 @@ const rtems_libio_helper rtems_fs_init_helper =
> #if !defined(CONFIGURE_FILESYSTEM_ENTRY_NFS) && \
> defined(CONFIGURE_FILESYSTEM_NFS)
> #include <librtemsNfs.h>
> + #if !defined(CONFIGURE_MAXIMUM_NFS_MOUNTS)
> + #define CONFIGURE_MAXIMUM_NFS_MOUNTS 1
> + #endif
> #define CONFIGURE_FILESYSTEM_ENTRY_NFS \
> { RTEMS_FILESYSTEM_TYPE_NFS, rtems_nfs_initialize }
> + #define CONFIGURE_SEMAPHORES_FOR_NFS ((CONFIGURE_MAXIMUM_NFS_MOUNTS * 2) + 1)
> + #else
> + #define CONFIGURE_SEMAPHORES_FOR_NFS 0
> #endif
> #endif
>
> @@ -433,8 +439,14 @@ const rtems_libio_helper rtems_fs_init_helper =
> #if !defined(CONFIGURE_FILESYSTEM_ENTRY_DOSFS) && \
> defined(CONFIGURE_FILESYSTEM_DOSFS)
> #include <rtems/dosfs.h>
> + #if !defined(CONFIGURE_MAXIMUM_DOSFS_MOUNTS)
> + #define CONFIGURE_MAXIMUM_DOSFS_MOUNTS 1
> + #endif
> #define CONFIGURE_FILESYSTEM_ENTRY_DOSFS \
> { RTEMS_FILESYSTEM_TYPE_DOSFS, rtems_dosfs_initialize }
> + #define CONFIGURE_SEMAPHORES_FOR_DOSFS CONFIGURE_MAXIMUM_DOSFS_MOUNTS
> +#else
> + #define CONFIGURE_SEMAPHORES_FOR_DOSFS 0
> #endif
>
> /**
> @@ -443,8 +455,14 @@ const rtems_libio_helper rtems_fs_init_helper =
> #if !defined(CONFIGURE_FILESYSTEM_ENTRY_RFS) && \
> defined(CONFIGURE_FILESYSTEM_RFS)
> #include <rtems/rtems-rfs.h>
> + #if !defined(CONFIGURE_MAXIMUM_RFS_MOUNTS)
> + #define CONFIGURE_MAXIMUM_RFS_MOUNTS 1
> + #endif
> #define CONFIGURE_FILESYSTEM_ENTRY_RFS \
> { RTEMS_FILESYSTEM_TYPE_RFS, rtems_rfs_rtems_initialise }
> + #define CONFIGURE_SEMAPHORES_FOR_RFS CONFIGURE_MAXIMUM_RFS_MOUNTS
> +#else
> + #define CONFIGURE_SEMAPHORES_FOR_RFS 0
> #endif
>
> /**
> @@ -453,10 +471,22 @@ const rtems_libio_helper rtems_fs_init_helper =
> #if !defined(CONFIGURE_FILESYSTEM_ENTRY_JFFS2) && \
> defined(CONFIGURE_FILESYSTEM_JFFS2)
> #include <rtems/jffs2.h>
> + #if !defined(CONFIGURE_MAXIMUM_JFFS2_MOUNTS)
> + #define CONFIGURE_MAXIMUM_JFFS2_MOUNTS 1
> + #endif
> #define CONFIGURE_FILESYSTEM_ENTRY_JFFS2 \
> { RTEMS_FILESYSTEM_TYPE_JFFS2, rtems_jffs2_initialize }
> + #define CONFIGURE_SEMAPHORES_FOR_JFFS2 CONFIGURE_MAXIMUM_JFFS2_MOUNTS
> +#else
> + #define CONFIGURE_SEMAPHORES_FOR_JFFS2 0
> #endif
>
> +#define CONFIGURE_SEMAPHORES_FOR_FILE_SYSTEMS (CONFIGURE_SEMAPHORES_FOR_FIFOS + \
> + CONFIGURE_SEMAPHORES_FOR_NFS + \
> + CONFIGURE_SEMAPHORES_FOR_DOSFS + \
> + CONFIGURE_SEMAPHORES_FOR_RFS + \
> + CONFIGURE_SEMAPHORES_FOR_JFFS2)
> +
> #ifdef CONFIGURE_INIT
>
> /**
> @@ -1751,7 +1781,7 @@ const rtems_libio_helper rtems_fs_init_helper =
> #define CONFIGURE_SEMAPHORES \
> (CONFIGURE_MAXIMUM_SEMAPHORES + CONFIGURE_LIBIO_SEMAPHORES + \
> CONFIGURE_TERMIOS_SEMAPHORES + CONFIGURE_LIBBLOCK_SEMAPHORES + \
> - CONFIGURE_SEMAPHORES_FOR_FIFOS)
> + CONFIGURE_SEMAPHORES_FOR_FILE_SYSTEMS)
>
> /*
> * If there are no user or support semaphores defined, then we can assume
> @@ -2863,7 +2893,7 @@ const rtems_libio_helper rtems_fs_init_helper =
> * If an attempt was made to configure POSIX objects and
> * the POSIX API was not configured into RTEMS, error out.
> *
> - * @note POSIX Keys are always available so the parameters
> + * @note POSIX Keys are always available so the parameters
> * CONFIGURE_MAXIMUM_POSIX_KEYS and
> * CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS are not in this list.
> */
>
> _______________________________________________
> rtems-vc mailing list
> rtems-vc at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-vc
--
Joel Sherrill, Ph.D. Director of Research & Development
joel.sherrill at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the devel
mailing list