diff options
| author | Harley Travis <harleytravis123@outlook.com> | 2026-06-27 15:16:11 -0500 |
|---|---|---|
| committer | Harley Travis <harleytravis123@outlook.com> | 2026-06-27 15:16:11 -0500 |
| commit | ab600cb35407be3847edebd98af1988683f3abfa (patch) | |
| tree | cf3512582a6e7d05970b1c3ce68e724d5c8e1237 /Kernel/BlkDev/DskFDC.HC | |
| parent | 4a9163adf571d4bd353d2511917dba0666e9aedc (diff) | |
| download | templeos-floppy-driver-ab600cb35407be3847edebd98af1988683f3abfa.tar.gz | |
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.
Diffstat (limited to 'Kernel/BlkDev/DskFDC.HC')
| -rw-r--r-- | Kernel/BlkDev/DskFDC.HC | 30 |
1 files changed, 30 insertions, 0 deletions
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 |
