| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- --
- -- Copyright (C) 2004-2005 by egnite Software GmbH. All rights reserved.
- --
- -- Redistribution and use in source and binary forms, with or without
- -- modification, are permitted provided that the following conditions
- -- are met:
- --
- -- 1. Redistributions of source code must retain the above copyright
- -- notice, this list of conditions and the following disclaimer.
- -- 2. Redistributions in binary form must reproduce the above copyright
- -- notice, this list of conditions and the following disclaimer in the
- -- documentation and/or other materials provided with the distribution.
- -- 3. Neither the name of the copyright holders nor the names of
- -- contributors may be used to endorse or promote products derived
- -- from this software without specific prior written permission.
- --
- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- -- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- -- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- -- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- -- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- -- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- -- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- -- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- -- AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- -- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- -- THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- -- SUCH DAMAGE.
- --
- -- For additional information see http://www.ethernut.de/
- --
- -- Operating system functions
- --
- -- $Log$
- -- Revision 1.8 2009/01/09 17:54:42 haraldkipp
- -- Added raw file system driver.
- --
- -- Revision 1.7 2006/08/01 07:42:56 haraldkipp
- -- New functions extract last component and parent directory from pathnames.
- --
- -- Revision 1.6 2006/02/23 15:43:08 haraldkipp
- -- PHAT file system now supports configurable number of sector buffers.
- --
- -- Revision 1.5 2006/01/05 16:49:48 haraldkipp
- -- PHAT file system driver added.
- --
- -- Revision 1.4 2005/04/05 17:56:16 haraldkipp
- -- UROM file system is not platform dependant.
- --
- -- Revision 1.3 2005/02/05 20:40:44 haraldkipp
- -- Peanut added.
- --
- -- Revision 1.2 2004/08/18 13:46:09 haraldkipp
- -- Fine with avr-gcc
- --
- -- Revision 1.1 2004/06/07 16:35:53 haraldkipp
- -- First release
- --
- --
- nutfs =
- {
- {
- name = "nutfs_pathops",
- brief = "Path Operations",
- requires = { "NUT_FS_WRITE", "NUT_FS_DIR" },
- provides = { "NUT_FS_PATHOPS" },
- description = "Standard file system functions:\n"..
- "mkdir()\nstat()\nfstat()\nunlink()\nrmdir()\nlseek()\n",
- sources = { "pathops.c" },
- },
- {
- name = "nutfs_pathnames",
- brief = "Pathname Operations",
- description = "Standard pathname functions:\n"..
- "basename()\ndirname()\n",
- sources = { "basename.c", "dirname.c" },
- },
- {
- name = "nutfs_dirent",
- brief = "Directory Read",
- requires = { "NUT_FS_DIR" },
- provides = { "NUT_FS_DIRSTREAM" },
- description = "Standard functions for reading directories:\n"..
- "opendir()\nclosedir()\nreaddir()\n",
- sources = { "dirent.c" },
- },
- {
- name = "nutfs_fat",
- brief = "FAT32",
- description = "Read only.",
- requires = { "NUT_EVENT", "HW_MCU_AVR", "GCC_LE_4_5" },
- provides = { "NUT_FS", "NUT_FS_READ" },
- sources = { "fat.c" }
- },
- {
- name = "nutfs_uromfs",
- brief = "UROM",
- provides = { "NUT_FS", "NUT_FS_READ" },
- description = "Read only.",
- sources = { "uromfs.c" },
- makedefs = { "CRUROM=crurom" }
- },
- {
- name = "nutfs_uflashfs",
- brief = "UFLASH",
- requires = { "SERIALFLASH_INTERFACE" },
- provides = { "NUT_FS", "NUT_FS_READ", "NUT_FS_WRITE", "NUT_FS_DIR" },
- sources = { "uflashfs.c" },
- options =
- {
- {
- macro = "UFLASH_MAX_BLOCKS",
- brief = "Maximum Blocks",
- description = "Maximum number of blocks supported.\n\n"..
- "UFLASH uses a table in RAM to translate logical to physical "..
- "block numbers. This option can be used to limit the number "..
- "of blocks in order to reduce RAM usage.",
- type = "integer",
- default = "8192",
- file = "include/cfg/fs.h"
- },
- {
- macro = "UFLASH_BLOCK_UNITS",
- brief = "Units per Block",
- description = "Number of flash units used for one block.\n\n"..
- "A UFLASH file system block must have at least 2 units.\n\n"..
- "Serial flash memory is divided in various ways. For the UFLASH "..
- "file system a unit is the smallest part, that can be written and "..
- "erased. Typically a unit matches a flash memory page.",
- type = "integer",
- default = "4",
- file = "include/cfg/fs.h"
- },
- {
- macro = "UFLASH_ENTRIES",
- brief = "Maximum Number of Entries",
- description = "Specifies the number of files that can exist on a volume.",
- type = "integer",
- default = "128",
- file = "include/cfg/fs.h"
- },
- {
- macro = "UFLASH_MAX_PATH",
- brief = "Maximum Entry Name Size",
- description = "If enabled, the given number of bytes are reserved for "..
- "the name of each entry. Otherwise variable length names "..
- "are used.\n\n",
- type = "integer",
- flavor = "booldata",
- file = "include/cfg/fs.h"
- },
- {
- macro = "UFLASH_USE_TIMESTAMP",
- brief = "Timestamps",
- description = "If enabled, the last modification date and time is maintained. "..
- "For reasonable results, this requires that the system time had been set. ",
- flavor = "boolean",
- file = "include/cfg/fs.h"
- },
- {
- macro = "UFLASH_USAGE_CACHE",
- brief = "Usage Cache Size",
- type = "integer",
- default = "32",
- file = "include/cfg/fs.h"
- },
- },
- },
- {
- name = "nutfs_phatfs",
- brief = "PHAT",
- requires = { "DEV_BLOCK" },
- provides = { "NUT_FS", "NUT_FS_READ", "NUT_FS_WRITE", "NUT_FS_DIR" },
- description = "FAT compatible file system.",
- sources =
- {
- "phatfs.c",
- "phatvol.c",
- "phatdir.c",
- "phatio.c",
- "phat12.c",
- "phat16.c",
- "phat32.c",
- "phatutil.c",
- "phatdbg.c"
- },
- options =
- {
- {
- macro = "PHAT_SECTOR_BUFFERS",
- brief = "Sector Buffers",
- description = "Number of sector buffers.\n\n"..
- "These buffers will be allocated from heap memory. Thus, you "..
- "need to make sure that enough heap memory is available.\n"..
- "If this option is disabled, the file system will use "..
- "a single sector buffer, which is typically provided by the "..
- "block device itself.",
- type = "integer",
- flavor = "booldata",
- file = "include/cfg/fs.h"
- },
- },
- },
- {
- name = "nutfs_pnutfs",
- brief = "PNUT",
- -- requires = { "HW_MCU_AVR", "NUT_SEGBUF" },
- provides = { "NUT_FS", "NUT_FS_READ", "NUT_FS_WRITE", "NUT_FS_DIR" },
- description = "RAM file system for banked memory (Ethernut 2).",
- sources = { "pnutfs.c" },
- },
- {
- name = "nutfs_rawfs",
- brief = "Raw",
- requires = { "DEV_BLOCKIO" },
- provides = { "NUT_FS", "NUT_FS_READ", "NUT_FS_WRITE" },
- description = "This file system provides a single file entry only, "..
- "which is mapped to the entire volume. This implies, "..
- "that there is no file name and that the size of the "..
- "file is fixed to the size of the device's volume.\n\n"..
- "This early release had been tested with the AT45D DataFlash.",
- sources = { "rawfs.c" }
- }
- }
|