SdFat
Public Attributes | List of all members
biosParmBlock Struct Reference

BIOS parameter block. More...

#include <FatStructs.h>

Public Attributes

uint16_t bytesPerSector
 
uint16_t fat32BackBootBlock
 
uint16_t fat32Flags
 
uint16_t fat32FSInfo
 
uint8_t fat32Reserved [12]
 
uint32_t fat32RootCluster
 
uint16_t fat32Version
 
uint8_t fatCount
 
uint16_t headCount
 
uint32_t hidddenSectors
 
uint8_t mediaType
 
uint16_t reservedSectorCount
 
uint16_t rootDirEntryCount
 
uint8_t sectorsPerCluster
 
uint16_t sectorsPerFat16
 
uint32_t sectorsPerFat32
 
uint16_t sectorsPerTrtack
 
uint16_t totalSectors16
 
uint32_t totalSectors32
 

Detailed Description

BIOS parameter block.

The BIOS parameter block describes the physical layout of a FAT volume.

Member Data Documentation

uint16_t biosParmBlock::bytesPerSector

Count of bytes per sector. This value may take on only the following values: 512, 1024, 2048 or 4096

uint16_t biosParmBlock::fat32BackBootBlock

If nonzero, indicates the sector number in the reserved area of the volume of a copy of the boot record. Usually 6. No value other than 6 is recommended.

uint16_t biosParmBlock::fat32Flags

This field is only defined for FAT32 media and does not exist on FAT12 and FAT16 media. Bits 0-3 – Zero-based number of active FAT. Only valid if mirroring is disabled. Bits 4-6 – Reserved. Bit 7 – 0 means the FAT is mirrored at runtime into all FATs. – 1 means only one FAT is active; it is the one referenced in bits 0-3. Bits 8-15 – Reserved.

uint16_t biosParmBlock::fat32FSInfo

Sector number of FSINFO structure in the reserved area of the FAT32 volume. Usually 1.

uint8_t biosParmBlock::fat32Reserved[12]

Reserved for future expansion. Code that formats FAT32 volumes should always set all of the bytes of this field to 0.

uint32_t biosParmBlock::fat32RootCluster

Cluster number of the first cluster of the root directory for FAT32. This usually 2 but not required to be 2.

uint16_t biosParmBlock::fat32Version

FAT32 version. High byte is major revision number. Low byte is minor revision number. Only 0.0 define.

uint8_t biosParmBlock::fatCount

The count of FAT data structures on the volume. This field should always contain the value 2 for any FAT volume of any type.

uint16_t biosParmBlock::headCount

Number of heads for interrupt 0x13. Not used otherwise.

uint32_t biosParmBlock::hidddenSectors

Count of hidden sectors preceding the partition that contains this FAT volume. This field is generally only relevant for media visible on interrupt 0x13.

uint8_t biosParmBlock::mediaType

This dates back to the old MS-DOS 1.x media determination and is no longer usually used for anything. 0xF8 is the standard value for fixed (nonremovable) media. For removable media, 0xF0 is frequently used. Legal values are 0xF0 or 0xF8-0xFF.

uint16_t biosParmBlock::reservedSectorCount

Number of sectors before the first FAT. This value must not be zero.

uint16_t biosParmBlock::rootDirEntryCount

For FAT12 and FAT16 volumes, this field contains the count of 32-byte directory entries in the root directory. For FAT32 volumes, this field must be set to 0. For FAT12 and FAT16 volumes, this value should always specify a count that when multiplied by 32 results in a multiple of bytesPerSector. FAT16 volumes should use the value 512.

uint8_t biosParmBlock::sectorsPerCluster

Number of sectors per allocation unit. This value must be a power of 2 that is greater than 0. The legal values are 1, 2, 4, 8, 16, 32, 64, and 128.

uint16_t biosParmBlock::sectorsPerFat16

Count of sectors occupied by one FAT on FAT12/FAT16 volumes. On FAT32 volumes this field must be 0, and sectorsPerFat32 contains the FAT size count.

uint32_t biosParmBlock::sectorsPerFat32

Count of sectors occupied by one FAT on FAT32 volumes.

uint16_t biosParmBlock::sectorsPerTrtack

Sectors per track for interrupt 0x13. Not used otherwise.

uint16_t biosParmBlock::totalSectors16

This field is the old 16-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors32 must be nonzero. For FAT32 volumes, this field must be 0. For FAT12 and FAT16 volumes, this field contains the sector count, and totalSectors32 is 0 if the total sector count fits (is less than 0x10000).

uint32_t biosParmBlock::totalSectors32

This field is the new 32-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors16 must be nonzero.


The documentation for this struct was generated from the following file: