Blame view

include/linux/bcd.h 559 Bytes
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  /* SPDX-License-Identifier: GPL-2.0 */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
2
3
  #ifndef _BCD_H
  #define _BCD_H
d3de851a4   David Brownell   rtc: BCD codeshrink
4
  #include <linux/compiler.h>
b53d657d8   Sebastian Andrzej Siewior   usb/core: use bin...
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  #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__;
d3de851a4   David Brownell   rtc: BCD codeshrink
20

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
21
  #endif /* _BCD_H */