unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / packages / io / fileio / v2_0 / cdl / fileio.cdl
1 # ====================================================================
2 #
3 #      fileio.cdl
4 #
5 #      FILEIO layer configuration data
6 #
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
13 ##
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.
17 ##
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
21 ## for more details.
22 ##
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.
26 ##
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.
33 ##
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.
36 ##
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####
43 #
44 # Author(s):      nickg
45 # Contributors:
46 # Date:           2000-5-25
47 #
48 #####DESCRIPTIONEND####
49 #
50 # ====================================================================
51
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
57     doc            ref/fileio.html
58     
59     requires       CYGPKG_ISOINFRA
60     requires       CYGPKG_ERROR
61     requires       CYGINT_ISO_ERRNO
62     requires       CYGINT_ISO_ERRNO_CODES
63     requires       CYGINT_ISO_STRING_STRFUNCS
64
65     implements     CYGINT_ISO_FCNTL
66     implements     CYGINT_ISO_OPEN
67     implements     CYGINT_ISO_DIRENT
68
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>" }
72
73     compile        fd.cxx file.cxx io.cxx dir.cxx
74     compile        -library=libextras.a misc.cxx
75
76     cdl_interface     CYGINT_IO_FILEIO_FS {
77         display       "Filesystems interfacing to FILEIO"
78         no_define
79         description "
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." 
83     }
84
85     cdl_option CYGFUN_IO_FILEIO_SELECT {
86         display          "Enable support for select()"
87         active_if        CYGPKG_KERNEL
88         implements       CYGINT_ISO_SELECT
89         default_value    1
90         description      "
91             This option enables support for select()."
92
93         compile          select.cxx
94     }
95
96     cdl_option CYGPKG_IO_FILEIO_DEVFS_SUPPORT {
97         display          "Enable devfs support"
98         active_if        CYGPKG_IO
99         default_value    { CYGPKG_REDBOOT ? 0 : 1 }
100         description      "
101             This option enables support for the devfs file system."
102
103         compile           -library=libextras.a devfs.cxx
104     }
105
106     cdl_option CYGPKG_IO_FILEIO_SOCKET_SUPPORT {
107         display          "Enable socket support"
108         active_if        CYGPKG_NET
109         active_if        CYGPKG_KERNEL
110         default_value    1
111         description      "
112             This option enables support for the socket interface. It is
113             only present if the NET package is included."
114
115         compile          socket.cxx
116     }
117     
118     cdl_option CYGNUM_FILEIO_NFILE {
119         display          "Maximum number of open files"
120         flavor           data
121         default_value    16
122         legal_values     1 to 9999999
123         description      "This option controls the number of open files
124                           that are allowed for all filesystems."
125     }
126
127     cdl_option CYGNUM_FILEIO_NFD {
128         display          "Maximum number of open file descriptors"
129         flavor           data
130         default_value    16
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."
134     }
135
136     cdl_option CYGNUM_FILEIO_FSTAB_MAX {
137         display          "Maximum number of installed filesystems"
138         flavor           data
139         default_value    4
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."
143
144     }
145
146     cdl_option CYGNUM_FILEIO_MTAB_MAX {
147         display          "Maximum number of mounted filesystems"
148         flavor           data
149         default_value    8
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."
153
154     }
155
156     cdl_option CYGNUM_FILEIO_MTAB_EXTRA {
157         display          "Number of dynamically mounted filesystems"
158         flavor           data
159         default_value    8
160         legal_values     0 to 9999999
161         description      "This option controls the number of mounted
162                           filesystems that can be created dynamically."
163     }
164
165     cdl_option CYGNUM_FILEIO_NSTAB_MAX {
166         display          "Maximum number of installed network stacks"
167         flavor           data
168         default_value    1
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."
172     }
173
174     cdl_option CYGPKG_IO_FILEIO_TRACK_CWD {
175         display          "Enable current directory tracking"
176         flavor           bool
177         default_value    1
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. "
188     }
189
190     cdl_component CYGPKG_IO_FILEIO_INODE {
191         display          "Generic inode support"
192         flavor           bool
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."
196         default_value    0
197         requires         CYGINT_ISO_MALLOC
198         compile          inocache.cxx
199
200         cdl_option CYGNUM_IO_FILEIO_MAX_INODE_CACHE_DEAD {
201             display          "Maximum space for unused cached inodes"
202             flavor           data
203             default_value    10
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
208                               provided."
209         }
210     }
211
212     cdl_option CYGNUM_FILEIO_IOVEC_MAX {
213         display          "Maximum size of iovec used by readv/writev"
214         flavor           data
215         default_value    16
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."
224
225     }
226
227     cdl_option CYGSEM_FILEIO_INFO_DISK_USAGE {
228         display       "cyg_fs_getinfo call for disk usage"
229         flavor        bool
230         default_value 0
231         description   "
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."
235     }
236
237     cdl_component CYGPKG_FILEIO_FNMATCH {
238         display           "POSIX fnmatch configuration"
239         flavor            bool
240         default_value     ( CYGINT_ISO_STRING_STRFUNCS && CYGINT_ISO_CTYPE )
241         requires          { CYGBLD_ISO_FNMATCH_HEADER == \
242                             "<cyg/fileio/fnmatch.h>" }
243         description       "
244             This component provides configuration controls for
245             the POSIX fnmatch() function."
246
247         compile          fnmatch.c
248     }
249
250     cdl_option CYGPKG_FILEIO_DIRENT_DTYPE {
251         display          "Struct dirent contains a d_type field"
252         flavor           bool
253         default_value    0
254         description      "
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." 
262     }
263
264     # ----------------------------------------------------------------
265     # Tests
266
267         cdl_option CYGPKG_IO_FILEIO_TESTS {
268             display "Fileio tests"
269             flavor  data
270             no_define
271             calculated { "tests/fileio1 tests/socket tests/select tests/stdio tests/pselect tests/fnmatch" }
272             description   "
273                 This option specifies the set of tests for the FileIO package."
274         }
275 }
276
277 # ====================================================================
278 # End of fileio.cdl
279
280