bcd.h 520 B

12345678910111213141516171819202122
  1. #ifndef _BCD_H
  2. #define _BCD_H
  3. #include <linux/compiler.h>
  4. #define bcd2bin(x) \
  5. (__builtin_constant_p((u8 )(x)) ? \
  6. const_bcd2bin(x) : \
  7. _bcd2bin(x))
  8. #define bin2bcd(x) \
  9. (__builtin_constant_p((u8 )(x)) ? \
  10. const_bin2bcd(x) : \
  11. _bin2bcd(x))
  12. #define const_bcd2bin(x) (((x) & 0x0f) + ((x) >> 4) * 10)
  13. #define const_bin2bcd(x) ((((x) / 10) << 4) + (x) % 10)
  14. unsigned _bcd2bin(unsigned char val) __attribute_const__;
  15. unsigned char _bin2bcd(unsigned val) __attribute_const__;
  16. #endif /* _BCD_H */