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

VxWorks

开发平台:

C/C++

  1. /* usrTffs.c - TFFS initialization */
  2. /* Copyright 1992-1997 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01g,07dec01,nrv  fixed diab warnings
  7. 01f,01oct01,yp  merging in T3 version, removed refs to dosFs compatibility layer
  8. 01e,02feb99,yp   added function usrTffsLnConfig() to support DOS_OPT_LONGNAMES
  9. 01d,01apr98,hdn  moved tffsLoad() back to bootConfig.c.
  10. 01c,31dec97,yp   doc cleanup
  11. 01b,01dec97,hdn  added tffsLoad() to minimize change to bootConfig.c.
  12. 01a,07nov97,hdn  written.
  13. */
  14. /*
  15. DESCRIPTION
  16. This file is included by bootConfig.c and usrConfig.c. The file contains
  17. routines for configuring a TFFS Flash disk to be used as file system as
  18. with dosFs. The routines are used by the boot process to find and load
  19. vxWorks images. 
  20. SEE ALSO: usrExtra.c
  21. NOMANUAL
  22. */
  23. #ifndef  __INCusrTffs
  24. #define  __INCusrTffs
  25. /* includes */
  26. #include "dcacheCbio.h"
  27. #include "tffs/tffsDrv.h"
  28. #include "tffs/flsocket.h"
  29. /* forward declarations */
  30. /*******************************************************************************
  31. *
  32. * usrTffsConfig - mount the DOS file system on a TFFS Flash disk
  33. *
  34. * This routine mounts the vxWorks DOS file system on a TFFS Flash drive.
  35. *
  36. * The <drive> parameter is the drive number of the TFFS Flash drive;
  37. * valid values are 0 through the number of socket interfaces in BSP.
  38. *
  39. * The <fileName> parameter is the mount point, e.g., `/tffs0/'.
  40. *
  41. * RETURNS: OK or ERROR.
  42. *
  43. * SEE ALSO:
  44. * .pG "I/O System, Local File Systems"
  45. */
  46. STATUS usrTffsConfig
  47.     (
  48.     int     drive, /* drive number of TFFS */
  49.     int     removable, /* 0 - nonremovable flash media */
  50.     char *  fileName /* mount point */
  51.     )
  52.     {
  53.     int    dosFsCacheSizeDefault       = 128 * 1024 ;
  54.     CBIO_DEV_ID pCbio;
  55.     BLK_DEV * pBlkDev;
  56.     char devName [BOOT_FILE_LEN];
  57.     if ((UINT)drive >= noOfDrives)
  58. {
  59. printErr ("drive is out of range (0-%d).n", noOfDrives - 1);
  60. return (ERROR);
  61. }
  62.     /* create a block device spanning entire disk (non-distructive!) */
  63.     if ((pBlkDev = tffsDevCreate (drive, removable)) == NULL)
  64. {
  65.         printErr ("tffsDevCreate failed.n");
  66.         return (ERROR);
  67. }
  68.     /* split off boot device from boot file */
  69.     devSplit (fileName, devName);
  70.     /* initialize the block device as a dosFs device named <devName> */
  71.     /* Create e.g. 128 Kbytes disk cache */
  72.     if ( (pCbio = dcacheDevCreate( (CBIO_DEV_ID) pBlkDev, NULL,
  73.                 dosFsCacheSizeDefault, devName)) == NULL )
  74.         return (ERROR);
  75.     if (dosFsDevCreate (devName, pCbio, 0, NONE) != OK)
  76.         return (ERROR);
  77.     return (OK);
  78.     }
  79. /*******************************************************************************
  80. *
  81. * usrTffsLnConfig - mount the DOS file system on a TFFS Flash disk
  82. *
  83. * This routine mounts the vxWorks DOS file system on a TFFS Flash drive with
  84. * long file name support.
  85. *
  86. * OBSOLETE: Version II of dosFs does not need special treatment for supporting 
  87. * long filenames. This routine is provided to support legacy code only and
  88. * will become obsolete soon.
  89. *
  90. * The <drive> parameter is the drive number of the TFFS Flash drive;
  91. * valid values are 0 through the number of socket interfaces in BSP.
  92. *
  93. * The <fileName> parameter is the mount point, e.g., `/tffs0/'.
  94. *
  95. * RETURNS: OK or ERROR.
  96. *
  97. * SEE ALSO:
  98. * .pG "I/O System, Local File Systems"
  99. *
  100. * NOMANUAL
  101. */
  102. STATUS usrTffsLnConfig
  103.     (
  104.     int     drive, /* drive number of TFFS */
  105.     int     removable, /* 0 - nonremovable flash media */
  106.     char *  fileName /* mount point */
  107.     )
  108.     {
  109.     
  110.     if (usrTffsConfig (drive, removable, fileName) != OK)
  111. return (ERROR);
  112.     return (OK);
  113.     }
  114. #endif /* __INCusrTffs */