adf_nativ.c
上传用户:hy_wanghao
上传日期:2007-01-08
资源大小:279k
文件大小:2k
源码类别:

Shell编程

开发平台:

Visual C++

  1. /*
  2.  * adf_nativ.c
  3.  *
  4.  * file
  5.  */
  6. #include<stdio.h>
  7. #include<stdlib.h>
  8. #include<string.h>
  9. #include"adf_str.h"
  10. #include"adf_nativ.h"
  11. #include"adf_err.h"
  12. extern struct Env adfEnv;
  13. /*
  14.  * myInitDevice
  15.  *
  16.  * must fill 'dev->size'
  17.  */
  18. RETCODE myInitDevice(struct Device* dev, char* name,BOOL ro)
  19. {
  20.     struct nativeDevice* nDev;
  21.     nDev = (struct nativeDevice*)dev->nativeDev;
  22.     nDev = (struct nativeDevice*)malloc(sizeof(struct nativeDevice));
  23.     if (!nDev) {
  24.         (*adfEnv.eFct)("myInitDevice : malloc");
  25.         return RC_ERROR;
  26.     }
  27.     dev->nativeDev = nDev;
  28.     if (!ro)
  29.         /* check if device is writable, if not, force readOnly to TRUE */
  30.         dev->readOnly = FALSE;
  31.     else
  32.         /* mount device as read only */
  33.         dev->readOnly = TRUE;
  34.     dev->size = 0;
  35.     return RC_OK;
  36. }
  37. /*
  38.  * myReadSector
  39.  *
  40.  */
  41. RETCODE myReadSector(struct Device *dev, long n, int size, unsigned char* buf)
  42. {
  43.      return RC_OK;   
  44. }
  45. /*
  46.  * myWriteSector
  47.  *
  48.  */
  49. RETCODE myWriteSector(struct Device *dev, long n, int size, unsigned char* buf)
  50. {
  51.     return RC_OK;
  52. }
  53. /*
  54.  * myReleaseDevice
  55.  *
  56.  * free native device
  57.  */
  58. RETCODE myReleaseDevice(struct Device *dev)
  59. {
  60.     struct nativeDevice* nDev;
  61.     nDev = (struct nativeDevice*)dev->nativeDev;
  62. free(nDev);
  63.     return RC_OK;
  64. }
  65. /*
  66.  * adfInitNativeFct
  67.  *
  68.  */
  69. void adfInitNativeFct()
  70. {
  71.     struct nativeFunctions *nFct;
  72.     nFct = (struct nativeFunctions*)adfEnv.nativeFct;
  73.     nFct->adfInitDevice = myInitDevice ;
  74.     nFct->adfNativeReadSector = myReadSector ;
  75.     nFct->adfNativeWriteSector = myWriteSector ;
  76.     nFct->adfReleaseDevice = myReleaseDevice ;
  77.     nFct->adfIsDevNative = myIsDevNative;
  78. }
  79. /*
  80.  * myIsDevNative
  81.  *
  82.  */
  83. BOOL myIsDevNative(char *devName)
  84. {
  85.     return (strncmp(devName,"/dev/",5)==0);
  86. }
  87. /*##########################################################################*/