From ab600cb35407be3847edebd98af1988683f3abfa Mon Sep 17 00:00:00 2001 From: Harley Travis Date: Sat, 27 Jun 2026 15:16:11 -0500 Subject: Add FDCFsChk This new function is an export of the filesystem-checking code in BlkDevAddFDC.HC. This was done to allow it to be used by DskChg, allowing filesystem autodetection when disks are swapped. --- Kernel/BlkDev/DskFDC.HC | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'Kernel/BlkDev/DskFDC.HC') diff --git a/Kernel/BlkDev/DskFDC.HC b/Kernel/BlkDev/DskFDC.HC index 3b2cac8..b3eb9c3 100644 --- a/Kernel/BlkDev/DskFDC.HC +++ b/Kernel/BlkDev/DskFDC.HC @@ -499,4 +499,34 @@ U8 FDCChk(CBlkDev *bd) FDCMotor(bd,OFF); if (unlock) BlkDevUnlock(bd); return status; +} + +U0 FDCFsChk(CDrv *dv, CBlkDev *bd=NULL, + CRedSeaBoot *br=NULL, I64 num=-1) +{ + CRedSeaBoot br2; + + if (!bd) + bd=dv->bd; + if (!br) + br=&br2; + if (num<0) + num=dv->prt_num; + + if (bd->heads!=FDCChk(bd)) { + dv->prt_num=num; + dv->fs_type=FSt_NULL; + } else { + FDCReadBlks(bd,br,0,1); + if (br->signature==MBR_PT_REDSEA && br->signature2==0xAA55) { + dv->bd=bd; + dv->prt_num=num; + dv->fs_type=FSt_REDSEA; + RedSeaInit(dv); + } else { + dv->bd=bd; + dv->prt_num=num; + dv->fs_type=FSt_UNKNOWN; + } + } } \ No newline at end of file -- cgit v1.2.3