fltl.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /*
  2.  * $Log:   P:/user/amir/lite/vcs/fltl.c_v  $
  3.  *
  4.  *    Rev 1.2   28 Jul 1997 14:48:06   danig
  5.  * Call to setPowerOnCallback in flMount
  6.  *
  7.  *    Rev 1.1   20 Jul 1997 17:14:54   amirban
  8.  * Format change
  9.  *
  10.  *    Rev 1.0   07 Jul 1997 15:23:10   amirban
  11.  * Initial revision.
  12.  */
  13. /************************************************************************/
  14. /*                                                                      */
  15. /* FAT-FTL Lite Software Development Kit */
  16. /* Copyright (C) M-Systems Ltd. 1995-1996 */
  17. /* */
  18. /************************************************************************/
  19. #include "flflash.h"
  20. #include "fltl.h"
  21. extern int noOfTLs; /* No. of translation layers actually registered */
  22. extern TLentry tlTable[];
  23. /*----------------------------------------------------------------------*/
  24. /*                    m o u n t  */
  25. /* */
  26. /* Mount a translation layer */
  27. /* */
  28. /* Parameters:                                                          */
  29. /* volNo : Volume no. */
  30. /* tl : Where to store translation layer methods */
  31. /*                                                                      */
  32. /* Returns:                                                             */
  33. /* FLStatus : 0 on success, failed otherwise */
  34. /*----------------------------------------------------------------------*/
  35. FLStatus flMount(unsigned volNo, TL *tl, FLFlash *flash)
  36. {
  37.   FLFlash *volForCallback;
  38.   FLSocket *socket = flSocketOf(volNo);
  39.   FLStatus status = flUnknownMedia;
  40.   int iTL;
  41.   checkStatus(flIdentifyFlash(socket,flash));
  42.   for (iTL = 0; iTL < noOfTLs && status != flOK; iTL++)
  43.     status = tlTable[iTL].mountRoutine(flash,tl, &volForCallback);
  44.   volForCallback->setPowerOnCallback(volForCallback);
  45.   return status;
  46. }
  47. #ifdef FORMAT_VOLUME
  48. /*----------------------------------------------------------------------*/
  49. /*                    f o r m a t  */
  50. /* */
  51. /* Formats the Flash volume */
  52. /* */
  53. /* Parameters:                                                          */
  54. /* volNo : Volume no. */
  55. /* formatParams : Address of FormatParams structure to use */
  56. /*                                                                      */
  57. /* Returns:                                                             */
  58. /* FLStatus : 0 on success, failed otherwise */
  59. /*----------------------------------------------------------------------*/
  60. FLStatus flFormat(unsigned volNo, FormatParams FAR1 *formatParams)
  61. {
  62.   FLFlash flash;
  63.   FLSocket *socket = flSocketOf(volNo);
  64.   FLStatus status = flUnknownMedia;
  65.   int iTL;
  66.   checkStatus(flIdentifyFlash(socket,&flash));
  67.   for (iTL = 0; iTL < noOfTLs && status == flUnknownMedia; iTL++)
  68.     status = tlTable[iTL].formatRoutine(&flash,formatParams);
  69.   return status;
  70. }
  71. #endif