lkml.org 
[lkml]   [1999]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectCan someone explain fs/ext2/bitmap.c to me?
    what is this nibblemap? how is it determined? 
    The algorithm to calculate sum is so weird. I do not have a clue what it
    means although I know this function calculates the number of free blocks
    based on the bitmap.

    /*
    * linux/fs/ext2/bitmap.c
    *
    * Copyright (C) 1992, 1993, 1994, 1995
    * Remy Card (card@masi.ibp.fr)
    * Laboratoire MASI - Institut Blaise Pascal
    * Universite Pierre et Marie Curie (Paris VI)
    */

    #include <linux/fs.h>
    #include <linux/ext2_fs.h>

    static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0};

    unsigned long ext2_count_free (struct buffer_head * map, unsigned int
    numchars)
    {
    unsigned int i;
    unsigned long sum = 0;

    if (!map)
    return (0);
    for (i = 0; i < numchars; i++)
    sum += nibblemap[map->b_data[i] & 0xf] +
    nibblemap[(map->b_data[i] >> 4) & 0xf];
    return (sum);
    }

    *~~~~~~~~~~~~~~~~~~~~~+_____________________+~~~~~~~~~~~~~~~~~~~*
    * Email:afei@jhu.edu | WWW: http://aa.eps.jhu.edu/~feiliu *
    * (410)889-9876(H) | Johns Hopkins Univ. | (410)516-7047(O) *
    *-------------------+_____________________+-----------------*


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:55    [W:0.020 / U:31.292 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site