flcustom.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:8k
源码类别:

VxWorks

开发平台:

C/C++

  1. /*
  2.  * $Log:   P:/user/amir/lite/vcs/flcustom.h_v  $
  3.       Rev 1.10   14 Aug 1997 16:05:12   danig
  4.    MIN_CLUSTER_SIZE
  5.       Rev 1.9   04 Aug 1997 13:13:48   danig
  6.    Low level API
  7.       Rev 1.8   24 Jul 1997 18:11:14   amirban
  8.    Moved stuff to flsystem.h
  9.       Rev 1.7   07 Jul 1997 15:23:42   amirban
  10.    Ver 2.0
  11.       Rev 1.6   21 Oct 1996 18:12:58   amirban
  12.    Split/join option
  13.       Rev 1.5   14 Aug 1996 14:16:26   amirban
  14.    BACKGROUND
  15.       Rev 1.4   14 Jul 1996 16:48:56   amirban
  16.    No more formatting parameters
  17.       Rev 1.3   09 Jul 1996 14:36:38   amirban
  18.    CPU_i386 define
  19.       Rev 1.2   08 Jul 1996 17:21:00   amirban
  20.    Added ABS_READ_WRITE
  21.       Rev 1.1   19 Jun 1996 15:23:10   amirban
  22.    Added EXIT option
  23.       Rev 1.0   19 May 1996 19:44:42   amirban
  24.    Initial revision.
  25.  */
  26. /************************************************************************/
  27. /*                                                                      */
  28. /* FAT-FTL Lite Software Development Kit */
  29. /* Copyright (C) M-Systems Ltd. 1995-1996 */
  30. /* */
  31. /************************************************************************/
  32. #ifndef FLCUSTOM_H
  33. #define FLCUSTOM_H
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. /* This file is intended for modification only by TFFS SOURCE
  38.  * customers. Customers with the binary distribution of the product 
  39.  * should not modify this file.
  40.  */
  41. /*
  42.  *
  43.  * Section 2: File System Customization
  44.  * ------------------------------------
  45.  */
  46. /* ISSUE #2.1: Number of drives
  47.  *
  48.  * Defines the maximum number of drives (and sockets) supported.
  49.  *
  50.  * The actual number of drives depends on which socket controllers are
  51.  * actually registered.
  52.  */
  53. #define DRIVES 5
  54. /* ISSUE #2.1: Number of open files
  55.  *
  56.  * Defines the maximum number of files that may be open at a time.
  57.  */
  58. #define FILES   0
  59. /* ISSUE #2.2: Sector size
  60.  *
  61.  * Define the log2 of sector size for the FAT & FTL layer. Note that the
  62.  * default 512 bytes is the de-facto standard and practically the only one
  63.  * that provides real PC interoperability.
  64.  */
  65. #define SECTOR_SIZE_BITS 9
  66. /* ISSUE #2.3: Formatting
  67.  *
  68.  * Uncomment the following line if you need to format with fsFormatVolume.
  69.  */
  70. #define FORMAT_VOLUME
  71. /* ISSUE #2.4: Defragmentation
  72.  *
  73.  * Uncomment the following line if you need to defragment with
  74.  * fsDefragmentVolume.
  75.  */
  76. /* #define DEFRAGMENT_VOLUME */
  77. /* ISSUE #2.5: Sub-directories
  78.  *
  79.  * Uncomment the following line if you need support for sub-directories
  80.  */
  81. /* #define SUB_DIRECTORY */
  82. /* ISSUE #2.6: Rename file
  83.  *
  84.  * Uncomment the following line if you need to rename files with fsRenameFile.
  85.  */
  86. /* #define RENAME_FILE */
  87. /* ISSUE #2.7: Split / join file
  88.  *
  89.  * Uncomment the following line if you need to split or join files with
  90.  * fsSplitFile and fsJoinFile
  91.  */
  92. /* #define SPLIT_JOIN_FILE */
  93. /* ISSUE #2.8: 12-bit FAT support
  94.  *
  95.  * Comment the following line if you do not need support for DOS media with
  96.  * 12-bit FAT (typically media of 2 MBytes or less).
  97.  */
  98. #define FAT_12BIT
  99. /* ISSUE #2.9: Parse path function
  100.  *
  101.  * Uncomment the following line if you need to parse DOS-like path names
  102.  * with fsParsePath.
  103.  */
  104. /* #define PARSE_PATH */
  105. /* ISSUE #2.10: Maximum supported medium size
  106.  *
  107.  * Define here the largest Flash medium size (in MBytes) you want supported.
  108.  */
  109. /* limit is set to 2047 to avoid integer overflow warning */
  110. #define MAX_VOLUME_MBYTES       2047 
  111. /* ISSUE #2.11: Assumed card parameters
  112.  *
  113.  * This issue is relevant only if you are not defining any allocation
  114.  * routines in #5.2.
  115.  *
  116.  * The following are assumptions about FTL parameters of the Flash media.
  117.  * They affect the size of the heap buffer allocated in FTLLITE.C.
  118.  */
  119. #define ASSUMED_FTL_UNIT_SIZE 0x20000l /* Intel interleave-2 */
  120. #define ASSUMED_VM_LIMIT 0x10000l /* limit at 64 KB */
  121. #define ASSUMED_NFTL_UNIT_SIZE 0x4000l
  122. /* ISSUE #2.12: Number of buffers
  123.  *
  124.  * Normally two sector buffers are needed, one for the FAT layer, another
  125.  * for the FTL layer. You may save about 512 bytes of RAM requirements by
  126.  * uncommenting the following definition.
  127.  * This will come at the cost of both read and write performance.
  128.  */
  129. /*#define SINGLE_BUFFER */
  130. /* ISSUE #2.13: Absolute read & write
  131.  *
  132.  * Uncomment the following line if you want to be able to read & write
  133.  * sectors by absolute sector number (i.e. without regard to files and
  134.  * directories).
  135.  */
  136. #define ABS_READ_WRITE
  137. /* ISSUE #2.14: Low level operations
  138.  *
  139.  * Uncomment the following line if you want to do low level operations.
  140.  * Low level operations include: read from a physical address, write to
  141.  * a physical address, erase a unit according to its physical unit number.
  142.  */
  143. #define LOW_LEVEL
  144. /* ISSUE #2.15: Application exit
  145.  *
  146.  * If the FLite application ever exits, it needs to call fsEXit before
  147.  * exitting. Uncomment the following line to enable this.
  148.  */
  149. /* #define EXIT */
  150. /* ISSUE #2.16: Number of sectors per cluster
  151.  *
  152.  * Define the minimum cluster size in sectors.
  153.  */
  154. #define MIN_CLUSTER_SIZE   4
  155. /*
  156.  *
  157.  * Section 3: Socket Hardware Customization
  158.  * ----------------------------------------
  159.  */
  160. /* ISSUE #3.1: Vpp voltage
  161.  *
  162.  * If your socket does not supply 12 volts, comment the following line. In
  163.  * this case, you will be able to work only with Flash cards that do not
  164.  * require external 12 Volt Vpp.
  165.  *
  166.  */
  167. #define SOCKET_12_VOLTS
  168. /* ISSUE #3.2: Fixed or removable media
  169.  *
  170.  * If your Flash media is fixed, uncomment the following line, and ignore
  171.  * issue #3.3.
  172.  */
  173. /* #define FIXED_MEDIA */
  174. /* ISSUE #3.3: Hardware card change detection
  175.  *
  176.  * This issue is now obsolete
  177.  *
  178.  */
  179. /* ISSUE #3.4: Interval timer
  180.  *
  181.  * The following defines a timer polling interval in milliseconds. If the
  182.  * value is 0, an interval timer is not installed.
  183.  *
  184.  * If you select an interval timer, you should provide an implementation
  185.  * for 'installTimer' defined in timer.h.
  186.  *
  187.  * An interval timer is not a must, but it is recommended. The following
  188.  * will occur if an interval timer is absent:
  189.  *
  190.  * - Card changes can be recognized only if socket hardware detects them
  191.  *   (see issue #3.2).
  192.  * - The Vpp delayed turn-off procedure is not applied. This may downgrade
  193.  *   write performance significantly if the Vpp switching time is slow.
  194.  * - The watchdog timer that guards against certain operations being stuck
  195.  *   indefinitely will not be active.
  196.  */
  197. #define POLLING_INTERVAL 100 /* Polling interval in millisec.
  198.    if 0, no polling is done */
  199. /*
  200.  *
  201.  *        Section 4: MTD Customization
  202.  *        ----------------------------
  203.  */
  204. /* ISSUE #4.1: MTD Installation
  205.  *
  206.  * This issue is now obsolete
  207.  *
  208.  */
  209. /* ISSUE #4.2: Background erasing
  210.  *
  211.  * If you include support for Flash technology that has suspend-for-write
  212.  * capability, you can gain considerable write performance and improve
  213.  * real-time response for your write operations by including background erase
  214.  * capability. In some cases, you can gain performance by including this
  215.  * feature even if no suspend-for-write capability is supported. See the
  216.  * FLite manual for complete details.
  217.  *
  218.  * On the other hand, this feature adds to required code & RAM, makes
  219.  * necessary some additional customization on your part, and depends on
  220.  * compiler features that, while defined as ANSI-C standard, may have
  221.  * a problematic implementation in your particular environment. See the
  222.  * FLite manual for complete details.
  223.  *
  224.  * Uncomment the following line to support background erasing.
  225.  */
  226. /* #define BACKGROUND */
  227. /* ISSUE #4.3: Maximum MTD's and Translation Layers
  228.  *
  229.  * Define here the maximum number of Memory Technology Drivers and
  230.  * Translation Layers that may be installed. Note that the actual
  231.  * number installed is determined by which components are installed in
  232.  * 'registerComponents' (custom.c)
  233.  */
  234. #define MTDS 10 /* Up to 5 MTD's */
  235. #define TLS 5 /* Up to 3 Translation Layers */
  236. #ifdef __cplusplus
  237. }
  238. #endif
  239. #endif