diff options
| author | Mimi Zohar <zohar@linux.vnet.ibm.com> | 2010-11-23 17:50:31 -0500 |
|---|---|---|
| committer | James Morris <jmorris@namei.org> | 2010-11-28 16:55:11 -0500 |
| commit | dc88e46029486ed475c71fe1bb696d39511ac8fe (patch) | |
| tree | 75f5bbf30480d4126315211ea6fb3af395e5f09c | |
| parent | ce6ada35bdf710d16582cc4869c26722547e6f11 (diff) | |
lib: hex2bin converts ascii hexadecimal string to binary
Similar to the kgdb_hex2mem() code, hex2bin converts a string
to binary using the hex_to_bin() library call.
Changelog:
- Replace parameter names with src/dst (based on David Howell's comment)
- Add 'const' where needed (based on David Howell's comment)
- Replace int with size_t (based on David Howell's comment)
Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Acked-by: Serge E. Hallyn <serge@hallyn.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
| -rw-r--r-- | include/linux/kernel.h | 1 | ||||
| -rw-r--r-- | lib/hexdump.c | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index a35b4f7332f0..d0fbc043de60 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -265,6 +265,7 @@ static inline char *pack_hex_byte(char *buf, u8 byte) | |||
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | extern int hex_to_bin(char ch); | 267 | extern int hex_to_bin(char ch); |
| 268 | extern void hex2bin(u8 *dst, const char *src, size_t count); | ||
| 268 | 269 | ||
| 269 | /* | 270 | /* |
| 270 | * General tracing related utility functions - trace_printk(), | 271 | * General tracing related utility functions - trace_printk(), |
diff --git a/lib/hexdump.c b/lib/hexdump.c index 5d7a4802c562..b66b2bd67952 100644 --- a/lib/hexdump.c +++ b/lib/hexdump.c | |||
| @@ -34,6 +34,22 @@ int hex_to_bin(char ch) | |||
| 34 | EXPORT_SYMBOL(hex_to_bin); | 34 | EXPORT_SYMBOL(hex_to_bin); |
| 35 | 35 | ||
| 36 | /** | 36 | /** |
| 37 | * hex2bin - convert an ascii hexadecimal string to its binary representation | ||
| 38 | * @dst: binary result | ||
| 39 | * @src: ascii hexadecimal string | ||
| 40 | * @count: result length | ||
| 41 | */ | ||
| 42 | void hex2bin(u8 *dst, const char *src, size_t count) | ||
| 43 | { | ||
| 44 | while (count--) { | ||
| 45 | *dst = hex_to_bin(*src++) << 4; | ||
| 46 | *dst += hex_to_bin(*src++); | ||
| 47 | dst++; | ||
| 48 | } | ||
| 49 | } | ||
| 50 | EXPORT_SYMBOL(hex2bin); | ||
| 51 | |||
| 52 | /** | ||
| 37 | * hex_dump_to_buffer - convert a blob of data to "hex ASCII" in memory | 53 | * hex_dump_to_buffer - convert a blob of data to "hex ASCII" in memory |
| 38 | * @buf: data blob to dump | 54 | * @buf: data blob to dump |
| 39 | * @len: number of bytes in the @buf | 55 | * @len: number of bytes in the @buf |
