summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorHarley Travis <harleytravis123@outlook.com>2026-06-27 15:16:11 -0500
committerHarley Travis <harleytravis123@outlook.com>2026-06-27 15:16:11 -0500
commitab600cb35407be3847edebd98af1988683f3abfa (patch)
treecf3512582a6e7d05970b1c3ce68e724d5c8e1237 /Kernel
parent4a9163adf571d4bd353d2511917dba0666e9aedc (diff)
downloadtempleos-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')
-rw-r--r--Kernel/BlkDev/DskFDC.HC30
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