diff options
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 | 
