diff options
-rw-r--r-- | include/linux/bcd.h | 9 | ||||
-rw-r--r-- | lib/Makefile | 2 | ||||
-rw-r--r-- | lib/bcd.c | 14 |
3 files changed, 22 insertions, 3 deletions
diff --git a/include/linux/bcd.h b/include/linux/bcd.h index c545308125b0..7ac518e3c152 100644 --- a/include/linux/bcd.h +++ b/include/linux/bcd.h | |||
@@ -10,8 +10,13 @@ | |||
10 | #ifndef _BCD_H | 10 | #ifndef _BCD_H |
11 | #define _BCD_H | 11 | #define _BCD_H |
12 | 12 | ||
13 | #define BCD2BIN(val) (((val) & 0x0f) + ((val)>>4)*10) | 13 | #include <linux/compiler.h> |
14 | #define BIN2BCD(val) ((((val)/10)<<4) + (val)%10) | 14 | |
15 | unsigned bcd2bin(unsigned char val) __attribute_const__; | ||
16 | unsigned char bin2bcd(unsigned val) __attribute_const__; | ||
17 | |||
18 | #define BCD2BIN(val) bcd2bin(val) | ||
19 | #define BIN2BCD(val) bin2bcd(val) | ||
15 | 20 | ||
16 | /* backwards compat */ | 21 | /* backwards compat */ |
17 | #define BCD_TO_BIN(val) ((val)=BCD2BIN(val)) | 22 | #define BCD_TO_BIN(val) ((val)=BCD2BIN(val)) |
diff --git a/lib/Makefile b/lib/Makefile index 818c4d455518..9085ad6fa53d 100644 --- a/lib/Makefile +++ b/lib/Makefile | |||
@@ -18,7 +18,7 @@ lib-$(CONFIG_SMP) += cpumask.o | |||
18 | 18 | ||
19 | lib-y += kobject.o kref.o klist.o | 19 | lib-y += kobject.o kref.o klist.o |
20 | 20 | ||
21 | obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \ | 21 | obj-y += bcd.o div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \ |
22 | bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o | 22 | bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o |
23 | 23 | ||
24 | ifeq ($(CONFIG_DEBUG_KOBJECT),y) | 24 | ifeq ($(CONFIG_DEBUG_KOBJECT),y) |
diff --git a/lib/bcd.c b/lib/bcd.c new file mode 100644 index 000000000000..d74257fd0fe7 --- /dev/null +++ b/lib/bcd.c | |||
@@ -0,0 +1,14 @@ | |||
1 | #include <linux/bcd.h> | ||
2 | #include <linux/module.h> | ||
3 | |||
4 | unsigned bcd2bin(unsigned char val) | ||
5 | { | ||
6 | return (val & 0x0f) + (val >> 4) * 10; | ||
7 | } | ||
8 | EXPORT_SYMBOL(bcd2bin); | ||
9 | |||
10 | unsigned char bin2bcd(unsigned val) | ||
11 | { | ||
12 | return ((val / 10) << 4) + val % 10; | ||
13 | } | ||
14 | EXPORT_SYMBOL(bin2bcd); | ||