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

Function adfReadBootBlock

dep/adflib/src/adf_raw.c:185–212  ·  view source on GitHub ↗

* adfReadBootBlock * * ENDIAN DEPENDENT */

Source from the content-addressed store, hash-verified

183 * ENDIAN DEPENDENT
184 */
185RETCODE
186adfReadBootBlock(struct Volume* vol, struct bBootBlock* boot)
187{
188 uint8_t buf[1024];
189
190/*puts("22");*/
191 if (adfReadBlock(vol, 0, buf)!=RC_OK)
192 return RC_ERROR;
193/*puts("11");*/
194 if (adfReadBlock(vol, 1, buf+LOGICAL_BLOCK_SIZE)!=RC_OK)
195 return RC_ERROR;
196
197 memcpy(boot, buf, LOGICAL_BLOCK_SIZE*2);
198#ifdef LITT_ENDIAN
199 swapEndian((uint8_t*)boot,SWBL_BOOT);
200#endif
201 if ( strncmp("DOS",boot->dosType,3)!=0 ) {
202 (*adfEnv.wFct)("adfReadBootBlock : DOS id not found");
203 return RC_ERROR;
204 }
205
206 if ( boot->data[0]!=0 && adfBootSum(buf)!=boot->checkSum ) {
207/*printf("compsum=%lx sum=%lx\n", adfBootSum(buf),boot->checkSum );*/ /* BV */
208 (*adfEnv.wFct)("adfReadBootBlock : incorrect checksum");
209 }
210
211 return RC_OK;
212}
213
214/*
215 * adfWriteBootBlock

Callers 2

adfInstallBootBlockFunction · 0.85
adfMountFunction · 0.85

Calls 3

adfReadBlockFunction · 0.85
swapEndianFunction · 0.85
adfBootSumFunction · 0.85

Tested by

no test coverage detected