Messages in this thread |  | | | Date | Sun, 12 Dec 1999 03:11:29 -0500 (EST) | | From | afei@jhu ... | | Subject | Can 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/
|  |