From 8d3e18749b884525b20110473d94fafb39950890 Mon Sep 17 00:00:00 2001 From: David Brownell Date: Wed, 23 Jul 2008 21:30:37 -0700 Subject: [PATCH] --- yaml --- r: 105482 b: refs/heads/master c: d3de851a445123f24ad8ece18662014b5e8a8b4e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/bcd.h | 9 +++++++-- trunk/lib/Makefile | 2 +- trunk/lib/bcd.c | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 trunk/lib/bcd.c diff --git a/[refs] b/[refs] index 7b33f642931b..a8f3a0fcbd06 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 53e84b672c1a8190af2b376c35c7a39cf1214f59 +refs/heads/master: d3de851a445123f24ad8ece18662014b5e8a8b4e diff --git a/trunk/include/linux/bcd.h b/trunk/include/linux/bcd.h index c545308125b0..7ac518e3c152 100644 --- a/trunk/include/linux/bcd.h +++ b/trunk/include/linux/bcd.h @@ -10,8 +10,13 @@ #ifndef _BCD_H #define _BCD_H -#define BCD2BIN(val) (((val) & 0x0f) + ((val)>>4)*10) -#define BIN2BCD(val) ((((val)/10)<<4) + (val)%10) +#include + +unsigned bcd2bin(unsigned char val) __attribute_const__; +unsigned char bin2bcd(unsigned val) __attribute_const__; + +#define BCD2BIN(val) bcd2bin(val) +#define BIN2BCD(val) bin2bcd(val) /* backwards compat */ #define BCD_TO_BIN(val) ((val)=BCD2BIN(val)) diff --git a/trunk/lib/Makefile b/trunk/lib/Makefile index 818c4d455518..9085ad6fa53d 100644 --- a/trunk/lib/Makefile +++ b/trunk/lib/Makefile @@ -18,7 +18,7 @@ lib-$(CONFIG_SMP) += cpumask.o lib-y += kobject.o kref.o klist.o -obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \ +obj-y += bcd.o div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \ bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o ifeq ($(CONFIG_DEBUG_KOBJECT),y) diff --git a/trunk/lib/bcd.c b/trunk/lib/bcd.c new file mode 100644 index 000000000000..d74257fd0fe7 --- /dev/null +++ b/trunk/lib/bcd.c @@ -0,0 +1,14 @@ +#include +#include + +unsigned bcd2bin(unsigned char val) +{ + return (val & 0x0f) + (val >> 4) * 10; +} +EXPORT_SYMBOL(bcd2bin); + +unsigned char bin2bcd(unsigned val) +{ + return ((val / 10) << 4) + val % 10; +} +EXPORT_SYMBOL(bin2bcd);