[U-Boot,v3,2/5] linux/const.h: import from kernel

Message ID fb9c9f985115196f50f6ab69f871ebaedab987ef.1541679854.git.baruch@tkos.co.il
State Changes Requested
Delegated to: Tom Rini
Headers show
Series
  • [U-Boot,v3,1/5] MIPS: drop asm/const.h
Related show

Commit Message

Baruch Siach Nov. 8, 2018, 12:24 p.m.
Combine the uapi/linux/const.h header into the kernel linux/const.h. The
next commit will use the _AC macro this header instead of the common.h
definition.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
v3: New patch in this series
---
 include/linux/const.h | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 include/linux/const.h

Comments

Tom Rini Nov. 8, 2018, 12:55 p.m. | #1
On Thu, Nov 08, 2018 at 02:24:11PM +0200, Baruch Siach wrote:

> Combine the uapi/linux/const.h header into the kernel linux/const.h. The
> next commit will use the _AC macro this header instead of the common.h
> definition.
> 
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
> v3: New patch in this series
> ---

This should be patch #1 and mention what kernel release it's from
please, thanks.

Patch

diff --git a/include/linux/const.h b/include/linux/const.h
new file mode 100644
index 000000000000..379c88923269
--- /dev/null
+++ b/include/linux/const.h
@@ -0,0 +1,34 @@ 
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_CONST_H
+#define _LINUX_CONST_H
+
+/* const.h: Macros for dealing with constants.  */
+
+/* Some constant macros are used in both assembler and
+ * C code.  Therefore we cannot annotate them always with
+ * 'UL' and other type specifiers unilaterally.  We
+ * use the following macros to deal with this.
+ *
+ * Similarly, _AT() will cast an expression with a type in C, but
+ * leave it unchanged in asm.
+ */
+
+#ifdef __ASSEMBLY__
+#define _AC(X,Y)	X
+#define _AT(T,X)	X
+#else
+#define __AC(X,Y)	(X##Y)
+#define _AC(X,Y)	__AC(X,Y)
+#define _AT(T,X)	((T)(X))
+#endif
+
+#define _UL(x)		(_AC(x, UL))
+#define _ULL(x)		(_AC(x, ULL))
+
+#define _BITUL(x)	(_UL(1) << (x))
+#define _BITULL(x)	(_ULL(1) << (x))
+
+#define UL(x)		(_UL(x))
+#define ULL(x)		(_ULL(x))
+
+#endif /* _LINUX_CONST_H */