home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v1.zip / DDKX86 / H / SYSBLOKS.H < prev    next >
C/C++ Source or Header  |  1995-04-14  |  4KB  |  76 lines

  1. /*DDK*************************************************************************/
  2. /*                                                                           */
  3. /* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
  4. /*                                                                           */
  5. /*    The following IBM OS/2 WARP source code is provided to you solely for  */
  6. /*    the purpose of assisting you in your development of OS/2 WARP device   */
  7. /*    drivers. You may use this code in accordance with the IBM License      */
  8. /*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
  9. /*    Copyright statement may not be removed.                                */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12. /*static char *SCCSID = "@(#)sysbloks.h    6.1 90/11/16";*/
  13. /*static char *SCCSID = "@(#)sysbloks.h 13.2 89/02/01";*/
  14. /* Tom Burke - 04/16/86 */
  15.  
  16. /* bios parameter block */
  17.  
  18. struct BPB {                 /* bios parameter block         */
  19.   unsigned bytes_per_sector;         /* sector size              2     */
  20.   unsigned char sectors_per_cluster; /* sectors per allocation unit   1     */
  21.   unsigned reserved_sectors;         /* number of reserved sectors    2     */
  22.   unsigned char nbr_fats;         /* number of fats              1     */
  23.   unsigned root_entries;         /* number of directory entries   2     */
  24.   unsigned total_sectors;         /* number of sectors          2     */
  25.   char media_type;             /* fatid byte              1     */
  26.   unsigned sectors_per_fat;         /* sectors in a copy of the FAT  2     */
  27.   unsigned sectors_per_track;         /* number of sectors per track   2     */
  28.   unsigned number_of_heads;         /* number of heads              2     */
  29.   unsigned hidden_sectors;         /* number of hidden sectors      2     */
  30.   unsigned reserved_1;             /*                      2     */
  31.   unsigned large_total_sectors;         /* large total sectors          2     */
  32.   unsigned reserved_2;             /*                      2     */
  33.   char reserved_3[6];             /* 6 reserved bytes          6     */
  34. };                     /*        total byte size = 31     */
  35.  
  36. /* device parameter block */
  37.  
  38. struct DPB {                 /* device parameter block         */
  39.   struct BPB dev_bpb;             /* 31 byte extended bpb         */
  40.   unsigned number_of_tracks;         /* number of tracks         */
  41.   char device_type;             /* device type       see DT_     */
  42.   unsigned device_attributes;         /* device attributes  see DA_     */
  43. };
  44.  
  45. #define DT_FLOPPY_LD   0         /* 48 TPI low density diskette     */
  46. #define DT_FLOPPY_HD   1         /* 96 TPI high density diskette     */
  47. #define DT_SMALL_DRIVE 2         /* 3 1/2 inch drive         */
  48. #define DT_8IN_SD      3         /* 8 inch single density floppy     */
  49. #define DT_8IN_DD      4         /* 8 inch double density floppy     */
  50. #define DT_HARD_DISK   5         /* hard disk drive             */
  51. #define DT_TAPE_DRIVE  6         /* tape drive             */
  52. #define DT_OTHER       7         /* unknown device type         */
  53.  
  54. #define DA_REMOVABLE   0x0001         /* removable media flag         */
  55. #define DA_CHANGELINE  0x0002         /* detects when it has been changed */
  56.  
  57. /* directory entry */
  58.  
  59. struct DIR_ENTRY {             /* directory entry, 32 bytes     */
  60.   char file_name[8];             /*     0 -  7                 */
  61.   char ext_name[3];             /*     8 - 10                 */
  62.   char attribute;             /* 11                 */
  63.   char reserved[10];             /* 12 - 21                 */
  64.   unsigned int time;             /* 22 - 23                 */
  65.   unsigned int date;             /* 24 - 25                 */
  66.   unsigned int first_cluster;         /* 26 - 27                 */
  67.   unsigned long file_size;         /* 28 - 31                 */
  68. };
  69.  
  70. /* fat table entry */
  71.  
  72. union FAT {                 /* 512 byte fat sector         */
  73.   unsigned fat16[256];             /* 16 bit fat entries         */
  74.   char fat8[512];             /* fat as a byte stream         */
  75. };
  76.