From 49f00df61520a457c70db7bca65b2d6bc6acdd2a Mon Sep 17 00:00:00 2001 From: jca Date: Thu, 13 Aug 2020 10:02:46 +0000 Subject: Move compiler_rt type definitions to a separate header so that we can reuse them in other compiler_rt routines. ok kettenis@ --- sys/lib/libkern/crt_glue.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 sys/lib/libkern/crt_glue.h (limited to 'sys/lib/libkern/crt_glue.h') diff --git a/sys/lib/libkern/crt_glue.h b/sys/lib/libkern/crt_glue.h new file mode 100644 index 00000000000..a00bea0a70e --- /dev/null +++ b/sys/lib/libkern/crt_glue.h @@ -0,0 +1,66 @@ +/* ===-- int_lib.h - configuration header for compiler-rt -----------------=== + * + * The LLVM Compiler Infrastructure + * + * This file is dual licensed under the MIT and the University of Illinois Open + * Source Licenses. See LICENSE.TXT for details. + * + * ===----------------------------------------------------------------------=== + * + * This file is a compat header for compiler-rt source files used in the OpenBSD + * kernel. + * This file is not part of the interface of this library. + * + * ===----------------------------------------------------------------------=== + */ + +#ifndef _CRT_INT_LIB_H_ +#define _CRT_INT_LIB_H_ + +#include +#include + +typedef int si_int; +typedef unsigned int su_int; +typedef long long di_int; +typedef unsigned long long du_int; +typedef int ti_int __attribute__ ((mode (TI))); +typedef int tu_int __attribute__ ((mode (TI))); + +#if BYTE_ORDER == LITTLE_ENDIAN +#define _YUGA_LITTLE_ENDIAN 0 +#else +#define _YUGA_LITTLE_ENDIAN 1 +#endif + +typedef union +{ + ti_int all; + struct + { +#if _YUGA_LITTLE_ENDIAN + du_int low; + di_int high; +#else + di_int high; + du_int low; +#endif /* _YUGA_LITTLE_ENDIAN */ + }s; +} twords; + +typedef union +{ + tu_int all; + struct + { +#if _YUGA_LITTLE_ENDIAN + du_int low; + du_int high; +#else + du_int high; + du_int low; +#endif /* _YUGA_LITTLE_ENDIAN */ + }s; +} utwords; + +#endif /* _CRT_INT_LIB_H_ */ -- cgit v1.2.3-59-g8ed1b