* NAME: low->putmdb() * DESCRIPTION: write master directory block(s) */
| 396 | * DESCRIPTION: write master directory block(s) |
| 397 | */ |
| 398 | int 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); |
no test coverage detected