Changeset 8ceba1e in mainline for uspace/app/mkminix/mkminix.c


Ignore:
Timestamp:
2011-03-09T22:02:53Z (14 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c4c7f5a
Parents:
b00a2f2
Message:

Improve minixfs server check_magic_number() function

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/mkminix/mkminix.c

    rb00a2f2 r8ceba1e  
    5757#define USED    1
    5858
    59 #define UPPER(n, size) (((n) / (size)) + (((n) % (size)) != 0))
    60 #define NEXT_DENTRY(p, dirsize) (p += dirsize)
    61 #define FIRST_ZONE(bs)          ((MFS_BOOTBLOCK_SIZE + MFS_SUPERBLOCK_SIZE) / (bs))
     59#define UPPER(n, size)                  (((n) / (size)) + (((n) % (size)) != 0))
     60#define NEXT_DENTRY(p, dirsize)         (p += dirsize)
     61#define FIRST_ZONE(bs)                  ((MFS_BOOTBLOCK_SIZE + MFS_SUPERBLOCK_SIZE) / (bs))
     62#define CONVERT_1K_OFF(off, bs)         ((off) * ((bs) / MFS_MIN_BLOCKSIZE))
    6263
    6364typedef enum {
     
    319320        int rc;
    320321        long itable_off;
     322        unsigned long itable_size;
    321323
    322324        itable_off = FIRST_ZONE(sb->block_size);
     
    324326
    325327        /*Convert to 1K offset*/
    326         itable_off *= sb->block_size / MFS_MIN_BLOCKSIZE;
     328        itable_off = CONVERT_1K_OFF(itable_off, sb->block_size);
     329        itable_size = CONVERT_1K_OFF(sb->itable_size, sb->block_size);
    327330
    328331        itable_buf = malloc(sb->block_size);
     
    333336        memset(itable_buf, 0x00, sb->block_size);
    334337
    335         for (i = 0; i < sb->itable_size * (sb->block_size / MFS_MIN_BLOCKSIZE); ++i, ++itable_off) {
     338        for (i = 0; i < itable_size; ++i, ++itable_off) {
    336339                rc = block_write_direct(sb->handle, itable_off, 1, itable_buf);
    337340
     
    386389
    387390        /*Convert to 1K block offset*/
    388         itable_off *= sb->block_size / MFS_MIN_BLOCKSIZE;
     391        itable_off = CONVERT_1K_OFF(itable_off, sb->block_size);
    389392
    390393        const time_t sec = time(NULL);
     
    570573
    571574        /*Convert to 1K block offsets*/
    572         ibmap_nblocks *= sb->block_size / MFS_BLOCKSIZE;
    573         zbmap_nblocks *= sb->block_size / MFS_BLOCKSIZE;
     575        ibmap_nblocks = CONVERT_1K_OFF(ibmap_nblocks, sb->block_size);
     576        zbmap_nblocks = CONVERT_1K_OFF(zbmap_nblocks, sb->block_size);
    574577
    575578        ibmap_buf8 = (uint8_t *) ibmap_buf;
    576579        zbmap_buf8 = (uint8_t *) zbmap_buf;
    577580
     581        int start_block = FIRST_ZONE(sb->block_size);
     582
    578583        for (i = 0; i < ibmap_nblocks; ++i) {
    579                 if ((rc = block_write_direct(sb->handle, 2 + i,
     584                if ((rc = block_write_direct(sb->handle, start_block + i,
    580585                                1, (ibmap_buf8 + i * MFS_BLOCKSIZE))) != EOK)
    581586                        return rc;
    582587        }
    583588
     589        start_block = FIRST_ZONE(sb->block_size) + ibmap_nblocks;
     590
    584591        for (i = 0; i < zbmap_nblocks; ++i) {
    585                 if ((rc = block_write_direct(sb->handle, 2 + ibmap_nblocks + i,
     592                if ((rc = block_write_direct(sb->handle, start_block + i,
    586593                                1, (zbmap_buf8 + i * MFS_BLOCKSIZE))) != EOK)
    587594                        return rc;
Note: See TracChangeset for help on using the changeset viewer.