diff options
| -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 |
