/*
       *  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};
      
  16  unsigned long ext2_count_free (struct buffer_head * map, unsigned int numchars)
      {
      	unsigned int i;
      	unsigned long sum = 0;
      	
  21  	if (!map) 
  22  		return (0);
  23  	for (i = 0; i < numchars; i++)
      		sum += nibblemap[map->b_data[i] & 0xf] +
      			nibblemap[(map->b_data[i] >> 4) & 0xf];
  26  	return (sum);
      }