diff options
Diffstat (limited to 'include/linux/bcd.h')
| -rw-r--r-- | include/linux/bcd.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/include/linux/bcd.h b/include/linux/bcd.h index 22ea563ba3eb..18fff11fb3ea 100644 --- a/include/linux/bcd.h +++ b/include/linux/bcd.h | |||
| @@ -3,7 +3,20 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/compiler.h> | 4 | #include <linux/compiler.h> |
| 5 | 5 | ||
| 6 | unsigned bcd2bin(unsigned char val) __attribute_const__; | 6 | #define bcd2bin(x) \ |
| 7 | unsigned char bin2bcd(unsigned val) __attribute_const__; | 7 | (__builtin_constant_p((u8 )(x)) ? \ |
| 8 | const_bcd2bin(x) : \ | ||
| 9 | _bcd2bin(x)) | ||
| 10 | |||
| 11 | #define bin2bcd(x) \ | ||
| 12 | (__builtin_constant_p((u8 )(x)) ? \ | ||
| 13 | const_bin2bcd(x) : \ | ||
| 14 | _bin2bcd(x)) | ||
| 15 | |||
| 16 | #define const_bcd2bin(x) (((x) & 0x0f) + ((x) >> 4) * 10) | ||
| 17 | #define const_bin2bcd(x) ((((x) / 10) << 4) + (x) % 10) | ||
| 18 | |||
| 19 | unsigned _bcd2bin(unsigned char val) __attribute_const__; | ||
| 20 | unsigned char _bin2bcd(unsigned val) __attribute_const__; | ||
| 8 | 21 | ||
| 9 | #endif /* _BCD_H */ | 22 | #endif /* _BCD_H */ |
