From 6d3fc76b7720c6eeb5f38cce32290cbbe28ae146 Mon Sep 17 00:00:00 2001 From: Antony Pavlov Date: Wed, 30 Jul 2014 00:10:17 +0400 Subject: lib: import 'bcd' from linux-3.15 Signed-off-by: Antony Pavlov Signed-off-by: Sascha Hauer --- include/linux/bcd.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 include/linux/bcd.h (limited to 'include/linux') diff --git a/include/linux/bcd.h b/include/linux/bcd.h new file mode 100644 index 0000000000..18fff11fb3 --- /dev/null +++ b/include/linux/bcd.h @@ -0,0 +1,22 @@ +#ifndef _BCD_H +#define _BCD_H + +#include + +#define bcd2bin(x) \ + (__builtin_constant_p((u8 )(x)) ? \ + const_bcd2bin(x) : \ + _bcd2bin(x)) + +#define bin2bcd(x) \ + (__builtin_constant_p((u8 )(x)) ? \ + const_bin2bcd(x) : \ + _bin2bcd(x)) + +#define const_bcd2bin(x) (((x) & 0x0f) + ((x) >> 4) * 10) +#define const_bin2bcd(x) ((((x) / 10) << 4) + (x) % 10) + +unsigned _bcd2bin(unsigned char val) __attribute_const__; +unsigned char _bin2bcd(unsigned val) __attribute_const__; + +#endif /* _BCD_H */ -- cgit v1.2.3