RTYPES.H
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:3k
源码类别:

操作系统开发

开发平台:

C/C++

  1. /*
  2.     FIPS - the First nondestructive Interactive Partition Splitting program
  3.     
  4.     Module types.h
  5.     RCS - Header:
  6.     $Header: c:/daten/c/fips/source/RCS/types.h%v 2.0 1993/04/28 03:32:20 schaefer Exp schaefer $
  7.     Copyright (C) 1993 Arno Schaefer
  8.     This program is free software; you can redistribute it and/or modify
  9.     it under the terms of the GNU General Public License as published by
  10.     the Free Software Foundation; either version 1, or (at your option)
  11.     any later version.
  12.     This program is distributed in the hope that it will be useful,
  13.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.     GNU General Public License for more details.
  16.     You should have received a copy of the GNU General Public License
  17.     along with this program; if not, write to the Free Software
  18.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19. */
  20. typedef unsigned char byte;
  21. typedef unsigned int word;
  22. typedef unsigned long dword;
  23. typedef enum {false,true} boolean;
  24. struct drive_geometry
  25. {
  26. dword heads;
  27. dword cylinders;
  28. dword sectors;
  29. };
  30. struct physical_sector
  31. {
  32. dword head;
  33. dword cylinder;
  34. dword sector;
  35. };
  36. struct partition_info
  37. {
  38. byte bootable;                  /* 80h or 0 */
  39. byte start_head;                /* location of first sector (bootsector) */
  40. word start_cylinder;
  41. byte start_sector;
  42. byte system;                    /* 1 = 12-bit FAT, 4 = 16-bit FAT & 16-bit sector number */
  43. /* 6 = 16-bit FAT & 32-bit sector number (BIGDOS) */
  44. byte end_head;                  /* location of last sector */
  45. word end_cylinder;
  46. byte end_sector;
  47. dword start_sector_abs;         /* = start_cylinder * heads * sectors + start_head * sectors */
  48. /* + start_sector - 1 */
  49. dword no_of_sectors_abs;        /* = end_cylinder * heads * sectors + end_head * sectors */
  50. /* + end_sector - start_sector_abs */
  51. };
  52. struct bootsector_info
  53. {
  54. word bytes_per_sector;          /* usually 512 */
  55. byte sectors_per_cluster;       /* may differ */
  56. word reserved_sectors;          /* usually 1 (bootsector) */
  57. byte no_of_fats;                /* usually 2 */
  58. word no_of_rootdir_entries;     /* usually 512 (?) */
  59. word no_of_sectors;             /* 0 on BIGDOS partitions */
  60. byte media_descriptor;          /* usually F8h */
  61. word sectors_per_fat;           /* depends on partition size */
  62. word sectors_per_track;         /* = sectors */
  63. word drive_heads;               /* = heads */
  64. dword hidden_sectors;           /* first sector of partition */
  65. dword no_of_sectors_long;       /* number of sectors on BIGDOS partitions */
  66. byte phys_drive_no;             /* 80h or 81h */
  67. byte signature;                 /* usually 29h */
  68. };