[BACK]Return to bootsect.h CVS log [TXT][DIR] Up to [local] / sys / msdosfs

Annotation of sys/msdosfs/bootsect.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: bootsect.h,v 1.5 2006/12/15 03:04:24 krw Exp $        */
        !             2: /*     $NetBSD: bootsect.h,v 1.8 1997/10/17 11:23:29 ws Exp $  */
        !             3:
        !             4: /*
        !             5:  * Written by Paul Popelka (paulp@uts.amdahl.com)
        !             6:  *
        !             7:  * You can do anything you want with this software, just don't say you wrote
        !             8:  * it, and don't remove this notice.
        !             9:  *
        !            10:  * This software is provided "as is".
        !            11:  *
        !            12:  * The author supplies this software to be publicly redistributed on the
        !            13:  * understanding that the author is not responsible for the correct
        !            14:  * functioning of this software in any circumstances and is not liable for
        !            15:  * any damages caused by this software.
        !            16:  *
        !            17:  * October 1992
        !            18:  */
        !            19:
        !            20: /*
        !            21:  * Format of a boot sector.  This is the first sector on a DOS floppy disk
        !            22:  * or the fist sector of a partition on a hard disk.  But, it is not the
        !            23:  * first sector of a partitioned hard disk.
        !            24:  */
        !            25: struct bootsector33 {
        !            26:        u_int8_t        bsJump[3];              /* jump inst E9xxxx or EBxx90 */
        !            27:        int8_t          bsOemName[8];           /* OEM name and version */
        !            28:        int8_t          bsBPB[19];              /* BIOS parameter block */
        !            29:        int8_t          bsDriveNumber;          /* drive number (0x80) */
        !            30:        int8_t          bsBootCode[479];        /* pad so struct is 512b */
        !            31:        u_int8_t        bsBootSectSig0;
        !            32:        u_int8_t        bsBootSectSig1;
        !            33: #define        BOOTSIG0        0x55
        !            34: #define        BOOTSIG1        0xaa
        !            35: };
        !            36:
        !            37: struct extboot {
        !            38:        int8_t          exDriveNumber;          /* drive number (0x80) */
        !            39:        int8_t          exReserved1;            /* reserved */
        !            40:        int8_t          exBootSignature;        /* ext. boot signature (0x29) */
        !            41: #define        EXBOOTSIG       0x29
        !            42:        int8_t          exVolumeID[4];          /* volume ID number */
        !            43:        int8_t          exVolumeLabel[11];      /* volume label */
        !            44:        int8_t          exFileSysType[8];       /* fs type (FAT12 or FAT16) */
        !            45: };
        !            46:
        !            47: struct bootsector50 {
        !            48:        u_int8_t        bsJump[3];              /* jump inst E9xxxx or EBxx90 */
        !            49:        int8_t          bsOemName[8];           /* OEM name and version */
        !            50:        int8_t          bsBPB[25];              /* BIOS parameter block */
        !            51:        int8_t          bsExt[26];              /* Bootsector Extension */
        !            52:        int8_t          bsBootCode[448];        /* pad so structure is 512b */
        !            53:        u_int8_t        bsBootSectSig0;
        !            54:        u_int8_t        bsBootSectSig1;
        !            55: #define        BOOTSIG0        0x55
        !            56: #define        BOOTSIG1        0xaa
        !            57: };
        !            58:
        !            59: struct bootsector710 {
        !            60:        u_int8_t        bsJump[3];              /* jump inst E9xxxx or EBxx90 */
        !            61:        int8_t          bsOEMName[8];           /* OEM name and version */
        !            62:        int8_t          bsPBP[53];              /* BIOS parameter block */
        !            63:        int8_t          bsExt[26];              /* Bootsector Extension */
        !            64:        int8_t          bsBootCode[418];        /* pad so structure is 512b */
        !            65:        u_int8_t        bsBootSectSig2;         /* 2 & 3 are only defined for FAT32? */
        !            66:        u_int8_t        bsBootSectSig3;
        !            67:        u_int8_t        bsBootSectSig0;
        !            68:        u_int8_t        bsBootSectSig1;
        !            69: #define        BOOTSIG0        0x55
        !            70: #define        BOOTSIG1        0xaa
        !            71: #define        BOOTSIG2        0
        !            72: #define        BOOTSIG3        0
        !            73: };
        !            74:
        !            75: union bootsector {
        !            76:        struct bootsector33 bs33;
        !            77:        struct bootsector50 bs50;
        !            78:        struct bootsector710 bs710;
        !            79: };
        !            80:
        !            81: #if 0
        !            82: /*
        !            83:  * Shorthand for fields in the bpb.
        !            84:  */
        !            85: #define        bsBytesPerSec   bsBPB.bpbBytesPerSec
        !            86: #define        bsSectPerClust  bsBPB.bpbSectPerClust
        !            87: #define        bsResSectors    bsBPB.bpbResSectors
        !            88: #define        bsFATS          bsBPB.bpbFATS
        !            89: #define        bsRootDirEnts   bsBPB.bpbRootDirEnts
        !            90: #define        bsSectors       bsBPB.bpbSectors
        !            91: #define        bsMedia         bsBPB.bpbMedia
        !            92: #define        bsFATsecs       bsBPB.bpbFATsecs
        !            93: #define        bsSectPerTrack  bsBPB.bpbSectPerTrack
        !            94: #define        bsHeads         bsBPB.bpbHeads
        !            95: #define        bsHiddenSecs    bsBPB.bpbHiddenSecs
        !            96: #define        bsHugeSectors   bsBPB.bpbHugeSectors
        !            97: #endif

CVSweb