fsutils/mkfatfs/writefat.c: Appease nxstyle

This commit is contained in:
YAMAMOTO Takashi 2020-11-20 19:53:58 +09:00 committed by Xiang Xiao
parent 2c0c033b43
commit 807fab7836

View File

@ -60,7 +60,8 @@
* Name: mkfatfs_devwrite * Name: mkfatfs_devwrite
* *
* Description: * Description:
* Write the content of the dedicate sector buffer beginning to the specified sector * Write the content of the dedicate sector buffer beginning to the
* specified sector
* *
* Input: * Input:
* fmt - User specified format parameters * fmt - User specified format parameters
@ -174,7 +175,8 @@ static inline void mkfatfs_initmbr(FAR struct fat_format_s *fmt,
MBR_PUTROOTENTCNT(var->fv_sect, fmt->ff_rootdirentries); MBR_PUTROOTENTCNT(var->fv_sect, fmt->ff_rootdirentries);
/* 2@19: FAT12/16: Must be 0, see MBR_TOTSEC32. /* 2@19: FAT12/16: Must be 0, see MBR_TOTSEC32.
* Handled with 4@32: Total count of sectors on the volume */ * Handled with 4@32: Total count of sectors on the volume
*/
if (fmt->ff_nsectors >= 65536) if (fmt->ff_nsectors >= 65536)
{ {
@ -189,9 +191,13 @@ static inline void mkfatfs_initmbr(FAR struct fat_format_s *fmt,
MBR_PUTMEDIA(var->fv_sect, FAT_DEFAULT_MEDIA_TYPE); /* Only "hard drive" supported */ MBR_PUTMEDIA(var->fv_sect, FAT_DEFAULT_MEDIA_TYPE); /* Only "hard drive" supported */
/* 2@22: FAT12/16: Must be 0, see MBR32_FATSZ32 -- handled in FAT specific logic */ /* 2@22: FAT12/16: Must be 0, see MBR32_FATSZ32 -- handled in FAT
* specific logic
*/
/* 2@24: Sectors per track geometry value and 2@26: Number of heads geometry value */ /* 2@24: Sectors per track geometry value and 2@26: Number of heads
* geometry value
*/
MBR_PUTSECPERTRK(var->fv_sect, FAT_DEFAULT_SECPERTRK); MBR_PUTSECPERTRK(var->fv_sect, FAT_DEFAULT_SECPERTRK);
MBR_PUTNUMHEADS(var->fv_sect, FAT_DEFAULT_NUMHEADS); MBR_PUTNUMHEADS(var->fv_sect, FAT_DEFAULT_NUMHEADS);
@ -211,8 +217,11 @@ static inline void mkfatfs_initmbr(FAR struct fat_format_s *fmt,
MBR_PUTFATSZ16(var->fv_sect, (uint16_t)var->fv_nfatsects); MBR_PUTFATSZ16(var->fv_sect, (uint16_t)var->fv_nfatsects);
/* The following fields are only valid for FAT12/16 */ /* The following fields are only valid for FAT12/16 */
/* 1@36: Drive number for MSDOS bootstrap -- left zero */ /* 1@36: Drive number for MSDOS bootstrap -- left zero */
/* 1@37: Reserved (zero) */ /* 1@37: Reserved (zero) */
/* 1@38: Extended boot signature: 0x29 if following valid */ /* 1@38: Extended boot signature: 0x29 if following valid */
MBR_PUTBOOTSIG16(var->fv_sect, EXTBOOT_SIGNATURE); MBR_PUTBOOTSIG16(var->fv_sect, EXTBOOT_SIGNATURE);
@ -238,17 +247,21 @@ static inline void mkfatfs_initmbr(FAR struct fat_format_s *fmt,
/* Boot code may be placed in the remainder of the sector */ /* Boot code may be placed in the remainder of the sector */
memcpy(&var->fv_sect[MBR16_BOOTCODE], var->fv_bootcode, var->fv_bootcodesize); memcpy(&var->fv_sect[MBR16_BOOTCODE], var->fv_bootcode,
var->fv_bootcodesize);
} }
else else
{ {
/* The following fields are only valid for FAT32 */ /* The following fields are only valid for FAT32 */
/* 4@36: Count of sectors occupied by one FAT */ /* 4@36: Count of sectors occupied by one FAT */
MBR_PUTFATSZ32(var->fv_sect, var->fv_nfatsects); MBR_PUTFATSZ32(var->fv_sect, var->fv_nfatsects);
/* 2@40: 0-3:Active FAT, 7=0 both FATS, 7=1 one FAT -- left zero */ /* 2@40: 0-3:Active FAT, 7=0 both FATS, 7=1 one FAT -- left zero */
/* 2@42: MSB:Major LSB:Minor revision number (0.0) -- left zero */ /* 2@42: MSB:Major LSB:Minor revision number (0.0) -- left zero */
/* 4@44: Cluster no. of 1st cluster of root dir */ /* 4@44: Cluster no. of 1st cluster of root dir */
MBR_PUTROOTCLUS(var->fv_sect, FAT32_DEFAULT_ROOT_CLUSTER); MBR_PUTROOTCLUS(var->fv_sect, FAT32_DEFAULT_ROOT_CLUSTER);
@ -262,8 +275,11 @@ static inline void mkfatfs_initmbr(FAR struct fat_format_s *fmt,
MBR_PUTBKBOOTSEC(var->fv_sect, fmt->ff_backupboot); MBR_PUTBKBOOTSEC(var->fv_sect, fmt->ff_backupboot);
/* 12@52: Reserved (zero) */ /* 12@52: Reserved (zero) */
/* 1@64: Drive number for MSDOS bootstrap -- left zero */ /* 1@64: Drive number for MSDOS bootstrap -- left zero */
/* 1@65: Reserved (zero) */ /* 1@65: Reserved (zero) */
/* 1@66: Extended boot signature: 0x29 if following valid */ /* 1@66: Extended boot signature: 0x29 if following valid */
MBR_PUTBOOTSIG32(var->fv_sect, EXTBOOT_SIGNATURE); MBR_PUTBOOTSIG32(var->fv_sect, EXTBOOT_SIGNATURE);
@ -282,10 +298,12 @@ static inline void mkfatfs_initmbr(FAR struct fat_format_s *fmt,
/* Boot code may be placed in the remainder of the sector */ /* Boot code may be placed in the remainder of the sector */
memcpy(&var->fv_sect[MBR32_BOOTCODE], var->fv_bootcode, var->fv_bootcodesize); memcpy(&var->fv_sect[MBR32_BOOTCODE], var->fv_bootcode,
var->fv_bootcodesize);
} }
/* The magic bytes at the end of the MBR are common to FAT12/16/32 */ /* The magic bytes at the end of the MBR are common to FAT12/16/32 */
/* 2@510: Valid MBRs have 0x55aa here */ /* 2@510: Valid MBRs have 0x55aa here */
MBR_PUTSIGNATURE(var->fv_sect, BOOT_SIGNATURE16); MBR_PUTSIGNATURE(var->fv_sect, BOOT_SIGNATURE16);
@ -316,6 +334,7 @@ static inline void mkfatfs_initfsinfo(FAR struct fat_format_s *fmt,
FSI_PUTLEADSIG(var->fv_sect, 0x41615252); FSI_PUTLEADSIG(var->fv_sect, 0x41615252);
/* 480@4: Reserved (zero) */ /* 480@4: Reserved (zero) */
/* 4@484: 0x61417272 = "rrAa" */ /* 4@484: 0x61417272 = "rrAa" */
FSI_PUTSTRUCTSIG(var->fv_sect, 0x61417272); FSI_PUTSTRUCTSIG(var->fv_sect, 0x61417272);
@ -329,6 +348,7 @@ static inline void mkfatfs_initfsinfo(FAR struct fat_format_s *fmt,
FSI_PUTNXTFREE(var->fv_sect, FAT32_DEFAULT_ROOT_CLUSTER); FSI_PUTNXTFREE(var->fv_sect, FAT32_DEFAULT_ROOT_CLUSTER);
/* 12@496: Reserved (zero) */ /* 12@496: Reserved (zero) */
/* 4@508: 0xaa550000 */ /* 4@508: 0xaa550000 */
FSI_PUTTRAILSIG(var->fv_sect, BOOT_SIGNATURE32); FSI_PUTTRAILSIG(var->fv_sect, BOOT_SIGNATURE32);
@ -344,7 +364,8 @@ static inline void mkfatfs_initfsinfo(FAR struct fat_format_s *fmt,
* fmt - User specified format parameters * fmt - User specified format parameters
* var - Other format parameters that are not user specifiable * var - Other format parameters that are not user specifiable
* sectno - On FAT32, the root directory is a cluster chain. * sectno - On FAT32, the root directory is a cluster chain.
* This value indicates which sector of the cluster should be produced. * This value indicates which sector of the cluster should be
* produced.
* *
* Return: * Return:
* None; caller is responsible for providing valid parameters. * None; caller is responsible for providing valid parameters.
@ -357,7 +378,9 @@ static inline void mkfatfs_initrootdir(FAR struct fat_format_s *fmt,
memset(var->fv_sect, 0, var->fv_sectorsize); memset(var->fv_sect, 0, var->fv_sectorsize);
if (sectno == 0) if (sectno == 0)
{ {
/* It is only necessary to set data in the first sector of the directory */ /* It is only necessary to set data in the first sector of the
* directory
*/
if (memcmp(fmt->ff_volumelabel, " ", 11)) if (memcmp(fmt->ff_volumelabel, " ", 11))
{ {
@ -475,60 +498,69 @@ static inline int mkfatfs_writefat(FAR struct fat_format_s *fmt,
{ {
/* Loop for each sector in the FAT */ /* Loop for each sector in the FAT */
for (sectno = 0; sectno < var->fv_nfatsects; sectno++) for (sectno = 0; sectno < var->fv_nfatsects; sectno++)
{ {
memset(var->fv_sect, 0, var->fv_sectorsize); memset(var->fv_sect, 0, var->fv_sectorsize);
/* Mark cluster allocations in sector one of each FAT */ /* Mark cluster allocations in sector one of each FAT */
if (sectno == 0) if (sectno == 0)
{ {
memset(var->fv_sect, 0, var->fv_sectorsize); memset(var->fv_sect, 0, var->fv_sectorsize);
switch (fmt->ff_fattype) switch (fmt->ff_fattype)
{ {
case 12: case 12:
/* Mark the first two full FAT entries -- 24 bits, 3 bytes total */ /* Mark the first two full FAT entries -- 24 bits,
* 3 bytes total
*/
memset(var->fv_sect, 0xff, 3); memset(var->fv_sect, 0xff, 3);
break; break;
case 16: case 16:
/* Mark the first two full FAT entries -- 32 bits, 4 bytes total */ /* Mark the first two full FAT entries -- 32 bits,
* 4 bytes total
*/
memset(var->fv_sect, 0xff, 4); memset(var->fv_sect, 0xff, 4);
break; break;
case 32: case 32:
default: /* Shouldn't happen */ default: /* Shouldn't happen */
/* Mark the first two full FAT entries -- 64 bits, 8 bytes total */
memset(var->fv_sect, 0xff, 8); /* Mark the first two full FAT entries -- 64 bits,
* 8 bytes total
*/
/* Cluster 2 is used as the root directory. Mark as EOF */ memset(var->fv_sect, 0xff, 8);
var->fv_sect[8] = 0xf8; /* Cluster 2 is used as the root directory.
memset(&var->fv_sect[9], 0xff, 3); * Mark as EOF
break; */
}
/* Save the media type in the first byte of the FAT */ var->fv_sect[8] = 0xf8;
memset(&var->fv_sect[9], 0xff, 3);
break;
}
var->fv_sect[0] = FAT_DEFAULT_MEDIA_TYPE; /* Save the media type in the first byte of the FAT */
var->fv_sect[0] = FAT_DEFAULT_MEDIA_TYPE;
} }
/* Write the FAT sector */ /* Write the FAT sector */
ret = mkfatfs_devwrite(fmt, var, offset); ret = mkfatfs_devwrite(fmt, var, offset);
if (ret < 0) if (ret < 0)
{ {
return ret; return ret;
} }
offset++; offset++;
} }
} }
return OK; return OK;
} }
/**************************************************************************** /****************************************************************************