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

Shell编程

开发平台:

Visual C++

  1. #ifndef ADFLIB_H
  2. #define ADFLIB_H 1
  3. /*
  4.  *  ADF Library. (C) 1997-1998 Laurent Clevy
  5.  *
  6.  * adflib.h
  7.  *
  8.  * include file
  9.  */
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif /* __cplusplus */
  13. /* Visual C++ DLL specific, define  WIN32DLL or not in the makefile */
  14. #ifdef WIN32DLL
  15. #define PREFIX __declspec(dllimport)
  16. #else
  17. #define PREFIX 
  18. #endif /* WIN32DLL */
  19. #include "adf_defs.h"
  20. #include "adf_str.h"
  21. /* util */
  22. PREFIX struct List* newCell(struct List* list, void* content);
  23. PREFIX void freeList(struct List* list);
  24. /* dir */
  25. PREFIX RETCODE adfToRootDir(struct Volume *vol);
  26. PREFIX RETCODE adfCreateDir(struct Volume* vol, SECTNUM parent, char* name);
  27. PREFIX RETCODE adfChangeDir(struct Volume* vol, char *name);
  28. PREFIX RETCODE adfParentDir(struct Volume* vol);
  29. PREFIX RETCODE adfRemoveEntry(struct Volume *vol, SECTNUM pSect, char *name);
  30. PREFIX struct List* adfGetDirEnt(struct Volume* vol, SECTNUM nSect );
  31. PREFIX struct List* adfGetRDirEnt(struct Volume* vol, SECTNUM nSect, BOOL recurs );
  32. PREFIX void printEntry(struct Entry* entry);
  33. PREFIX void adfFreeDirList(struct List* list);
  34. PREFIX void adfFreeEntry(struct Entry *);
  35. PREFIX RETCODE adfRenameEntry(struct Volume *vol, SECTNUM, char *old,SECTNUM,char *pNew);
  36. PREFIX RETCODE adfSetEntryAccess(struct Volume*, SECTNUM, char*, long);
  37. PREFIX RETCODE adfSetEntryComment(struct Volume*, SECTNUM, char*, char*);
  38. /* file */
  39. PREFIX long adfFileRealSize(unsigned long size, int blockSize, long *dataN, long *extN);
  40. PREFIX struct File* adfOpenFile(struct Volume *vol, char* name, char *mode);
  41. PREFIX void adfCloseFile(struct File *file);
  42. PREFIX long adfReadFile(struct File* file, long n, unsigned char *buffer);
  43. PREFIX BOOL adfEndOfFile(struct File* file);
  44. PREFIX long adfWriteFile(struct File *file, long n, unsigned char *buffer);
  45. PREFIX void adfFlushFile(struct File *file);
  46. PREFIX void adfFileSeek(struct File *file, unsigned long pos);
  47. /* volume */
  48. PREFIX RETCODE adfInstallBootBlock(struct Volume *vol,unsigned char*);
  49. PREFIX struct Volume* adfMount( struct Device *dev, int nPart, BOOL readOnly );
  50. PREFIX void adfUnMount(struct Volume *vol);
  51. PREFIX void adfVolumeInfo(struct Volume *vol);
  52. /* device */
  53. PREFIX void adfDeviceInfo(struct Device *dev);
  54. PREFIX struct Device* adfMountDev( char* filename,BOOL ro);
  55. PREFIX void adfUnMountDev( struct Device* dev);
  56. PREFIX RETCODE adfCreateHd(struct Device* dev, int n, struct Partition** partList );
  57. PREFIX RETCODE adfCreateFlop(struct Device* dev, char* volName, int volType );
  58. PREFIX RETCODE adfCreateHdFile(struct Device* dev, char* volName, int volType);
  59. /* dump device */
  60. PREFIX struct Device* adfCreateDumpDevice(char* filename, long cyl, long heads, long sec);
  61. /* env */
  62. PREFIX void adfEnvInitDefault();
  63. PREFIX void adfEnvCleanUp();
  64. PREFIX void adfChgEnvProp(int prop, void *pNew);
  65. PREFIX char* adfGetVersionNumber();
  66. PREFIX char* adfGetVersionDate();
  67. /* obsolete */
  68. PREFIX void adfSetEnvFct( void(*e)(char*), void(*w)(char*), void(*v)(char*) );
  69. /* link */
  70. PREFIX RETCODE adfBlockPtr2EntryName(struct Volume *, SECTNUM, SECTNUM,char **, long *);
  71. /* salv */
  72. PREFIX struct List* adfGetDelEnt(struct Volume *vol);
  73. PREFIX RETCODE adfUndelEntry(struct Volume* vol, SECTNUM parent, SECTNUM nSect);
  74. PREFIX void adfFreeDelList(struct List* list);
  75. PREFIX RETCODE adfCheckEntry(struct Volume* vol, SECTNUM nSect, int level);
  76. /* middle level API */
  77. PREFIX BOOL isSectNumValid(struct Volume *vol, SECTNUM nSect);
  78. /* low level API */
  79. PREFIX RETCODE adfReadBlock(struct Volume* , long nSect, unsigned char* buf);
  80. PREFIX RETCODE adfWriteBlock(struct Volume* , long nSect, unsigned char* buf);
  81. PREFIX long adfCountFreeBlocks(struct Volume* vol);
  82. #ifdef __cplusplus
  83. }
  84. #endif
  85. #endif /* ADFLIB_H */
  86. /*##########################################################################*/