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

Function adfReadRootBlock

dep/adflib/src/adf_raw.c:114–137  ·  view source on GitHub ↗

* adfReadRootBlock * * ENDIAN DEPENDENT */

Source from the content-addressed store, hash-verified

112 * ENDIAN DEPENDENT
113 */
114RETCODE
115adfReadRootBlock(struct Volume* vol, int32_t nSect, struct bRootBlock* root)
116{
117 uint8_t buf[LOGICAL_BLOCK_SIZE];
118
119 if (adfReadBlock(vol, nSect, buf)!=RC_OK)
120 return RC_ERROR;
121
122 memcpy(root, buf, LOGICAL_BLOCK_SIZE);
123#ifdef LITT_ENDIAN
124 swapEndian((uint8_t*)root, SWBL_ROOT);
125#endif
126
127 if (root->type!=T_HEADER || root->secType!=ST_ROOT) {
128 (*adfEnv.wFct)("adfReadRootBlock : id not found");
129 return RC_ERROR;
130 }
131 if (root->checkSum!=adfNormalSum(buf, 20, LOGICAL_BLOCK_SIZE)) {
132 (*adfEnv.wFct)("adfReadRootBlock : invalid checksum");
133 return RC_ERROR;
134 }
135
136 return RC_OK;
137}
138
139
140/*

Callers 5

adfMountFlopFunction · 0.85
adfVolumeInfoFunction · 0.85
adfMountFunction · 0.85
adfUpdateBitmapFunction · 0.85
adfWriteNewBitmapFunction · 0.85

Calls 3

adfReadBlockFunction · 0.85
swapEndianFunction · 0.85
adfNormalSumFunction · 0.85

Tested by

no test coverage detected