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

VxWorks

开发平台:

C/C++

  1. /*
  2.  * $Log:   P:/user/amir/lite/vcs/fltl.h_v  $
  3.       Rev 1.11   30 Mar 1997 16:31:40   Andray,Hdei
  4.    Changed flMount's prototype
  5.       Rev 1.11   10 Sep 1997 16:31:40   danig
  6.    Got rid of generic names
  7.       Rev 1.10   28 Aug 1997 16:46:50   danig
  8.    Moved SectorNo definition to flbase.h
  9.       Rev 1.9   28 Jul 1997 14:49:38   danig
  10.    volForCallback
  11.       Rev 1.8   24 Jul 1997 17:58:16   amirban
  12.    FAR to FAR0
  13.       Rev 1.7   07 Jul 1997 15:23:52   amirban
  14.    Ver 2.0
  15.       Rev 1.6   03 Jun 1997 17:08:02   amirban
  16.    setBusy change
  17.       Rev 1.5   21 Oct 1996 18:02:34   amirban
  18.    Defragment i/f change
  19.       Rev 1.4   10 Sep 1996 17:32:26   amirban
  20.    Unsigned int --> unsigned short
  21.       Rev 1.3   18 Aug 1996 13:47:32   amirban
  22.    Comments
  23.       Rev 1.2   12 Aug 1996 15:48:12   amirban
  24.    Defined setBusy
  25.       Rev 1.1   14 Jul 1996 16:48:52   amirban
  26.    Format params
  27.       Rev 1.0   20 Mar 1996 13:33:20   amirban
  28.    Initial revision.
  29.  */
  30. /************************************************************************/
  31. /*                                                                      */
  32. /* FAT-FTL Lite Software Development Kit */
  33. /* Copyright (C) M-Systems Ltd. 1995-1996 */
  34. /* */
  35. /************************************************************************/
  36. #ifndef FLTL_H
  37. #define FLTL_H
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41. #include "flflash.h"
  42. /* See interface documentation of functions in ftllite.c */
  43. typedef struct tTL TL; /* Forward definition */
  44. typedef struct tTLrec TLrec;  /* Defined by translation layer */
  45. struct tTL {
  46.   TLrec *rec;
  47.   const void FAR0 *(*mapSector)(TLrec *, SectorNo sectorNo, CardAddress *physAddr);
  48.   FLStatus (*writeSector)(TLrec *, SectorNo sectorNo, void FAR1 *fromAddress);
  49.   FLStatus (*deleteSector)(TLrec *, SectorNo sectorNo, int noOfSectors);
  50.   void (*tlSetBusy)(TLrec *, FLBoolean);
  51.   void (*dismount)(TLrec *);
  52.   #if defined(DEFRAGMENT_VOLUME) || defined(SINGLE_BUFFER)
  53.   FLStatus (*defragment)(TLrec *, long FAR2 *bytesNeeded);
  54.   #endif
  55.   #ifdef FORMAT_VOLUME
  56.   SectorNo  (*sectorsInVolume)(TLrec *);
  57.   #endif
  58. };
  59. #ifdef FORMAT_VOLUME
  60. #include "dosformt.h"
  61. #endif
  62. /* Translation layer registration information */
  63. extern int noOfTLs; /* No. of translation layers actually registered */
  64. typedef struct {
  65.   FLStatus (*mountRoutine) (FLFlash *flash, TL *tl, FLFlash **volForCallback);
  66. #ifdef FORMAT_VOLUME
  67.   FLStatus (*formatRoutine) (FLFlash *flash, FormatParams FAR1 *formatParams);
  68. #endif
  69. } TLentry;
  70. extern TLentry tlTable[];
  71. extern FLStatus flMount(unsigned volNo, TL *, FLFlash *);
  72. #ifdef FORMAT_VOLUME
  73. extern FLStatus flFormat(unsigned, FormatParams FAR1 *formatParams);
  74. #endif
  75. #ifdef __cplusplus
  76. }
  77. #endif
  78. #endif