1ac27a0ecSDave Kleikamp /* 2617ba13bSMingming Cao * linux/fs/ext4/bitmap.c 3ac27a0ecSDave Kleikamp * 4ac27a0ecSDave Kleikamp * Copyright (C) 1992, 1993, 1994, 1995 5ac27a0ecSDave Kleikamp * Remy Card (card@masi.ibp.fr) 6ac27a0ecSDave Kleikamp * Laboratoire MASI - Institut Blaise Pascal 7ac27a0ecSDave Kleikamp * Universite Pierre et Marie Curie (Paris VI) 8ac27a0ecSDave Kleikamp */ 9ac27a0ecSDave Kleikamp 10ac27a0ecSDave Kleikamp #include <linux/buffer_head.h> 11dab291afSMingming Cao #include <linux/jbd2.h> 123dcf5451SChristoph Hellwig #include "ext4.h" 13ac27a0ecSDave Kleikamp 14617ba13bSMingming Cao #ifdef EXT4FS_DEBUG 15ac27a0ecSDave Kleikamp 16febfcf91SPhilippe De Muyter static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; 17ac27a0ecSDave Kleikamp 18617ba13bSMingming Cao unsigned long ext4_count_free (struct buffer_head * map, unsigned int numchars) 19ac27a0ecSDave Kleikamp { 20ac27a0ecSDave Kleikamp unsigned int i; 21ac27a0ecSDave Kleikamp unsigned long sum = 0; 22ac27a0ecSDave Kleikamp 23ac27a0ecSDave Kleikamp if (!map) 24ac27a0ecSDave Kleikamp return (0); 25ac27a0ecSDave Kleikamp for (i = 0; i < numchars; i++) 26ac27a0ecSDave Kleikamp sum += nibblemap[map->b_data[i] & 0xf] + 27ac27a0ecSDave Kleikamp nibblemap[(map->b_data[i] >> 4) & 0xf]; 28ac27a0ecSDave Kleikamp return (sum); 29ac27a0ecSDave Kleikamp } 30ac27a0ecSDave Kleikamp 31617ba13bSMingming Cao #endif /* EXT4FS_DEBUG */ 32ac27a0ecSDave Kleikamp 33