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

Function l_putmdb

dep/hfsutils/libhfs/low.c:398–470  ·  view source on GitHub ↗

* NAME: low->putmdb() * DESCRIPTION: write master directory block(s) */

Source from the content-addressed store, hash-verified

396 * DESCRIPTION: write master directory block(s)
397 */
398int l_putmdb(hfsvol *vol, const MDB *mdb, int backup)
399{
400 block b;
401 byte *ptr = b;
402 int i;
403
404 d_storesw(&ptr, mdb->drSigWord);
405 d_storesl(&ptr, mdb->drCrDate);
406 d_storesl(&ptr, mdb->drLsMod);
407 d_storesw(&ptr, mdb->drAtrb);
408 d_storeuw(&ptr, mdb->drNmFls);
409 d_storeuw(&ptr, mdb->drVBMSt);
410 d_storeuw(&ptr, mdb->drAllocPtr);
411 d_storeuw(&ptr, mdb->drNmAlBlks);
412 d_storeul(&ptr, mdb->drAlBlkSiz);
413 d_storeul(&ptr, mdb->drClpSiz);
414 d_storeuw(&ptr, mdb->drAlBlSt);
415 d_storesl(&ptr, mdb->drNxtCNID);
416 d_storeuw(&ptr, mdb->drFreeBks);
417
418 d_storestr(&ptr, mdb->drVN, sizeof(mdb->drVN));
419
420 ASSERT(ptr - b == 64);
421
422 d_storesl(&ptr, mdb->drVolBkUp);
423 d_storesw(&ptr, mdb->drVSeqNum);
424 d_storeul(&ptr, mdb->drWrCnt);
425 d_storeul(&ptr, mdb->drXTClpSiz);
426 d_storeul(&ptr, mdb->drCTClpSiz);
427 d_storeuw(&ptr, mdb->drNmRtDirs);
428 d_storeul(&ptr, mdb->drFilCnt);
429 d_storeul(&ptr, mdb->drDirCnt);
430
431 for (i = 0; i < 8; ++i)
432 d_storesl(&ptr, mdb->drFndrInfo[i]);
433
434 ASSERT(ptr - b == 124);
435
436 d_storeuw(&ptr, mdb->drEmbedSigWord);
437 d_storeuw(&ptr, mdb->drEmbedExtent.xdrStABN);
438 d_storeuw(&ptr, mdb->drEmbedExtent.xdrNumABlks);
439
440 d_storeul(&ptr, mdb->drXTFlSize);
441
442 for (i = 0; i < 3; ++i)
443 {
444 d_storeuw(&ptr, mdb->drXTExtRec[i].xdrStABN);
445 d_storeuw(&ptr, mdb->drXTExtRec[i].xdrNumABlks);
446 }
447
448 ASSERT(ptr - b == 146);
449
450 d_storeul(&ptr, mdb->drCTFlSize);
451
452 for (i = 0; i < 3; ++i)
453 {
454 d_storeuw(&ptr, mdb->drCTExtRec[i].xdrStABN);
455 d_storeuw(&ptr, mdb->drCTExtRec[i].xdrNumABlks);

Callers 1

v_writemdbFunction · 0.85

Calls 6

d_storeswFunction · 0.85
d_storeslFunction · 0.85
d_storeuwFunction · 0.85
d_storeulFunction · 0.85
d_storestrFunction · 0.85
b_writelbFunction · 0.85

Tested by

no test coverage detected