diff options
| author | Steve French <sfrench@us.ibm.com> | 2008-04-24 15:26:50 +0000 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2008-04-24 15:26:50 +0000 |
| commit | 36d99df2fb474222ab47fbe8ae7385661033223b (patch) | |
| tree | 962e068491b752a944f61c454fad3f8619a1ea3f /lib/bitmap.c | |
| parent | 076d8423a98659a92837b07aa494cb74bfefe77c (diff) | |
| parent | 3dc5063786b273f1aee545844f6bd4e9651ebffe (diff) | |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'lib/bitmap.c')
| -rw-r--r-- | lib/bitmap.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/bitmap.c b/lib/bitmap.c index 2c9242e3fed..a6939e18d7b 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -316,6 +316,22 @@ int bitmap_scnprintf(char *buf, unsigned int buflen, EXPORT_SYMBOL(bitmap_scnprintf); /** + * bitmap_scnprintf_len - return buffer length needed to convert + * bitmap to an ASCII hex string. + * @len: number of bits to be converted + */ +int bitmap_scnprintf_len(unsigned int len) +{ + /* we need 9 chars per word for 32 bit words (8 hexdigits + sep/null) */ + int bitslen = ALIGN(len, CHUNKSZ); + int wordlen = CHUNKSZ / 4; + int buflen = (bitslen / wordlen) * (wordlen + 1) * sizeof(char); + + return buflen; +} +EXPORT_SYMBOL(bitmap_scnprintf_len); + +/** * __bitmap_parse - convert an ASCII hex string into a bitmap. * @buf: pointer to buffer containing string. * @buflen: buffer size in bytes. If string is smaller than this |
