fat.h
上传用户:yingdiyu
上传日期:2007-01-06
资源大小:116k
文件大小:2k
源码类别:

磁盘编程

开发平台:

Others

  1. /*
  2. FIPS - the First nondestructive Interactive Partition Splitting program
  3. Module fat.h
  4. RCS - Header:
  5. $Header: c:/daten/fips/source/main/RCS/fat.h 1.4 1995/01/19 00:01:25 schaefer Exp schaefer $
  6. Copyright (C) 1993 Arno Schaefer
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or
  10. (at your option) any later version.
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18. Report problems and direct all questions to:
  19. schaefer@rbg.informatik.th-darmstadt.de
  20. */
  21. #ifndef FAT_H
  22. #define FAT_H
  23. #include "types.h"
  24. #include "disk_io.h"
  25. #include "logdr_st.h"
  26. class fat
  27. {
  28. protected:
  29. logical_drive *logical_drive;
  30. int number;
  31. dword start_sector;
  32. sector *buffer;
  33. dword sector_in_buffer;
  34. void read_sector (dword sector);
  35. public:
  36. virtual dword next_cluster (dword cluster_number) = 0;
  37. fat (class logical_drive *logical_drive,int number);
  38. ~fat (void) { delete buffer; }
  39. };
  40. class fat16:public fat
  41. {
  42. public:
  43. dword next_cluster (dword cluster_number);
  44. void check_empty (dword new_start_cluster);
  45. void check_against (class fat16 *fat2);
  46. dword min_free_cluster (void);
  47. fat16 (class logical_drive *logical_drive,int number):fat (logical_drive,number) {}
  48. };
  49. #endif