1 # ====================================================================
5 # FILEIO layer configuration data
7 # ====================================================================
8 #####ECOSGPLCOPYRIGHTBEGIN####
9 ## -------------------------------------------
10 ## This file is part of eCos, the Embedded Configurable Operating System.
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12 ## Copyright (C) 2002 Nick Garnett
14 ## eCos is free software; you can redistribute it and/or modify it under
15 ## the terms of the GNU General Public License as published by the Free
16 ## Software Foundation; either version 2 or (at your option) any later version.
18 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
19 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23 ## You should have received a copy of the GNU General Public License along
24 ## with eCos; if not, write to the Free Software Foundation, Inc.,
25 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
27 ## As a special exception, if other files instantiate templates or use macros
28 ## or inline functions from this file, or you compile this file and link it
29 ## with other works to produce a work based on this file, this file does not
30 ## by itself cause the resulting work to be covered by the GNU General Public
31 ## License. However the source code for this file must still be made available
32 ## in accordance with section (3) of the GNU General Public License.
34 ## This exception does not invalidate any other reasons why a work based on
35 ## this file might be covered by the GNU General Public License.
37 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
38 ## at http://sources.redhat.com/ecos/ecos-license/
39 ## -------------------------------------------
40 #####ECOSGPLCOPYRIGHTEND####
41 # ====================================================================
42 ######DESCRIPTIONBEGIN####
48 #####DESCRIPTIONEND####
50 # ====================================================================
52 cdl_package CYGPKG_IO_FILEIO {
53 display "POSIX File IO compatibility layer"
54 description "This package enables the POSIX compatibility
55 layer that implements IEEE 1003.1 file IO."
56 include_dir cyg/fileio
59 requires CYGPKG_ISOINFRA
61 requires CYGINT_ISO_ERRNO
62 requires CYGINT_ISO_ERRNO_CODES
63 requires CYGINT_ISO_STRING_STRFUNCS
65 implements CYGINT_ISO_FCNTL
66 implements CYGINT_ISO_OPEN
67 implements CYGINT_ISO_DIRENT
69 requires { CYGBLD_ISO_DIRENT_HEADER == "<cyg/fileio/dirent.h>" }
70 requires { CYGBLD_ISO_OPEN_MAX_HEADER == "<cyg/fileio/limits.h>" }
71 requires { CYGBLD_ISO_NAME_MAX_HEADER == "<cyg/fileio/limits.h>" }
73 compile fd.cxx file.cxx io.cxx dir.cxx
74 compile -library=libextras.a misc.cxx
76 cdl_interface CYGINT_IO_FILEIO_FS {
77 display "Filesystems interfacing to FILEIO"
80 Each filesystem driver which FILEIO can use implements
81 this interface. You can use this to determine if there are
82 any filesystems configured in the system."
85 cdl_option CYGFUN_IO_FILEIO_SELECT {
86 display "Enable support for select()"
87 active_if CYGPKG_KERNEL
88 implements CYGINT_ISO_SELECT
91 This option enables support for select()."
96 cdl_option CYGPKG_IO_FILEIO_DEVFS_SUPPORT {
97 display "Enable devfs support"
99 default_value { CYGPKG_REDBOOT ? 0 : 1 }
101 This option enables support for the devfs file system."
103 compile -library=libextras.a devfs.cxx
106 cdl_option CYGPKG_IO_FILEIO_SOCKET_SUPPORT {
107 display "Enable socket support"
109 active_if CYGPKG_KERNEL
112 This option enables support for the socket interface. It is
113 only present if the NET package is included."
118 cdl_option CYGNUM_FILEIO_NFILE {
119 display "Maximum number of open files"
122 legal_values 1 to 9999999
123 description "This option controls the number of open files
124 that are allowed for all filesystems."
127 cdl_option CYGNUM_FILEIO_NFD {
128 display "Maximum number of open file descriptors"
131 legal_values CYGNUM_FILEIO_NFILE to 9999999
132 description "This option controls the number of open file descriptors
133 that are allowed for all filesystems."
136 cdl_option CYGNUM_FILEIO_FSTAB_MAX {
137 display "Maximum number of installed filesystems"
140 legal_values 1 to 9999999
141 description "This option controls the maximum number of filesystems
142 that can be handled by the fileio system."
146 cdl_option CYGNUM_FILEIO_MTAB_MAX {
147 display "Maximum number of mounted filesystems"
150 legal_values CYGNUM_FILEIO_MTAB_EXTRA to 9999999
151 description "This option controls the maximum number of mounted
152 filesystems that can be handled by the fileio system."
156 cdl_option CYGNUM_FILEIO_MTAB_EXTRA {
157 display "Number of dynamically mounted filesystems"
160 legal_values 0 to 9999999
161 description "This option controls the number of mounted
162 filesystems that can be created dynamically."
165 cdl_option CYGNUM_FILEIO_NSTAB_MAX {
166 display "Maximum number of installed network stacks"
169 legal_values 1 to 9999999
170 description "This option controls the maximum number of installed
171 network stacks that can be handled by the fileio system."
174 cdl_option CYGPKG_IO_FILEIO_TRACK_CWD {
175 display "Enable current directory tracking"
178 description "This option enables tracking of the name of the current
179 directory in the FILEIO package, to support the getcwd()
180 function. When this option is enabled the FILEIO package
181 will attempt to maintain a string that names the current
182 directory. It does this textually, dealing with \".\" and
183 \"..\" entries by textual manipulation. While this should
184 always provide a path for the current directory, it may not
185 be the best, if symbolic links are present. This tracked CWD
186 is only used if a filesystem does not support the
187 FS_INFO_GETCWD key. "
190 cdl_component CYGPKG_IO_FILEIO_INODE {
191 display "Generic inode support"
193 description "This option enables generic inode support useful to
194 some filesystems. Not all filesystems require this
195 so it is not enabled by default."
197 requires CYGINT_ISO_MALLOC
200 cdl_option CYGNUM_IO_FILEIO_MAX_INODE_CACHE_DEAD {
201 display "Maximum space for unused cached inodes"
204 description "The inode cache allows a maximum limit to be set
205 for the number of unused inodes still in the
206 cache before they are freed. It may be set to 0
207 to indicate no dead inode caching should be
212 cdl_option CYGNUM_FILEIO_IOVEC_MAX {
213 display "Maximum size of iovec used by readv/writev"
216 legal_values 1 to 9999999
217 description "This option controls the maximum size of the iovec
218 structure that can be used by readv()/writev(). This
219 limit is required because the iovec structure must be
220 invariant (to the user), thus a copy needs to be made
221 by the interface routines. The limit is merely a
222 control over the amount of stack space used by the
223 readv()/writev() functions."
227 cdl_option CYGSEM_FILEIO_INFO_DISK_USAGE {
228 display "cyg_fs_getinfo call for disk usage"
232 Enabling this option includes code in some filesystems to
233 implement a call using cyg_fs_getinfo to return the current
234 filesystem block usage."
237 cdl_component CYGPKG_FILEIO_FNMATCH {
238 display "POSIX fnmatch configuration"
240 default_value ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
241 requires { CYGBLD_ISO_FNMATCH_HEADER == \
242 "<cyg/fileio/fnmatch.h>" }
244 This component provides configuration controls for
245 the POSIX fnmatch() function."
250 cdl_option CYGPKG_FILEIO_DIRENT_DTYPE {
251 display "Struct dirent contains a d_type field"
255 If this option is enabled then struct dirent contains a
256 d_type field. With this field, file type may be
257 distinguished directly without calling stat. Note: This
258 member is not part of the POSIX standard, however is
259 commonely implemented in Linux, FreeBSD, but not SunOS.
260 Also, not all filesystems support it. So this feature is
261 not portable and should be used with caution."
264 # ----------------------------------------------------------------
267 cdl_option CYGPKG_IO_FILEIO_TESTS {
268 display "Fileio tests"
271 calculated { "tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch" }
273 This option specifies the set of tests for the FileIO package."
277 # ====================================================================