MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / adfReadFSHDblock

Function adfReadFSHDblock

dep/adflib/src/adf_hd.c:873–906  ·  view source on GitHub ↗

* ReadFSHDblock * */

Source from the content-addressed store, hash-verified

871 *
872 */
873 RETCODE
874adfReadFSHDblock( struct Device* dev, int32_t nSect, struct bFSHDblock* blk)
875{
876 UCHAR buf[sizeof(struct bFSHDblock)];
877 struct nativeFunctions *nFct;
878 RETCODE rc;
879
880 nFct = adfEnv.nativeFct;
881 if (dev->isNativeDev)
882 rc = (*nFct->adfNativeReadSector)(dev, nSect, sizeof(struct bFSHDblock), buf);
883 else
884 rc = adfReadDumpSector(dev, nSect, sizeof(struct bFSHDblock), buf);
885 if (rc!=RC_OK)
886 return RC_ERROR;
887
888 memcpy(blk, buf, sizeof(struct bFSHDblock));
889#ifdef LITT_ENDIAN
890 /* big to little = 68000 to x86 */
891 swapEndian((uint8_t*)blk, SWBL_FSHD);
892#endif
893
894 if ( strncmp(blk->id,"FSHD",4)!=0 ) {
895 (*adfEnv.eFct)("ReadFSHDblock : FSHD id not found");
896 return RC_ERROR;
897 }
898
899 if ( blk->size != 64 )
900 (*adfEnv.wFct)("ReadFSHDblock : size != 64");
901
902 if ( blk->checksum != adfNormalSum(buf,8,256) )
903 (*adfEnv.wFct)( "ReadFSHDblock : incorrect checksum");
904
905 return RC_OK;
906}
907
908
909/*

Callers 1

adfMountHdFunction · 0.85

Calls 3

adfReadDumpSectorFunction · 0.85
swapEndianFunction · 0.85
adfNormalSumFunction · 0.85

Tested by

no test coverage detected