Page MenuHomeFreeBSD

D53823.diff
No OneTemporary

D53823.diff

diff --git a/sys/sys/_stdint.h b/sys/sys/_stdint.h
--- a/sys/sys/_stdint.h
+++ b/sys/sys/_stdint.h
@@ -78,6 +78,22 @@
typedef __uintptr_t uintptr_t;
#define _UINTPTR_T_DECLARED
#endif
+#if defined(__BSD_VISIBLE) && __BSD_VISIBLE
+/*
+ * Integer types which are 64-bits unless it needs to be larger to hold
+ * a pointer. These are to be used when the ABI for integer targets
+ * uses a fixed 64-bit integer to hold values including pointers in
+ * order to simplify 32- and 64-bit compatibility.
+ */
+#ifndef _INT64PTR_T_DECLARED
+typedef __int64ptr_t int64ptr_t;
+#define _INT64PTR_T_DECLARED
+#endif
+#ifndef _UINT64PTR_T_DECLARED
+typedef __uint64ptr_t uint64ptr_t;
+#define _UINT64PTR_T_DECLARED
+#endif
+#endif
#ifndef _INTMAX_T_DECLARED
typedef __intmax_t intmax_t;
#define _INTMAX_T_DECLARED
diff --git a/sys/sys/_types.h b/sys/sys/_types.h
--- a/sys/sys/_types.h
+++ b/sys/sys/_types.h
@@ -70,18 +70,24 @@
#ifdef __CHERI__
typedef __intcap_t __intptr_t;
typedef __intcap_t __intfptr_t;
+typedef __intptr_t __int64ptr_t;
typedef __uintcap_t __uintptr_t;
typedef __uintcap_t __uintfptr_t;
+typedef __uintptr_t __uint64ptr_t;
#elif __SIZEOF_POINTER__ == 8
typedef __int64_t __intptr_t;
typedef __int64_t __intfptr_t;
+typedef __int64_t __int64ptr_t;
typedef __uint64_t __uintptr_t;
typedef __uint64_t __uintfptr_t;
+typedef __uint64_t __uint64ptr_t;
#elif __SIZEOF_POINTER__ == 4
typedef __int32_t __intptr_t;
typedef __int32_t __intfptr_t;
+typedef __int64_t __int64ptr_t;
typedef __uint32_t __uintptr_t;
typedef __uint32_t __uintfptr_t;
+typedef __uint64_t __uint64ptr_t;
#else
#error unsupported pointer size
#endif

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 21, 11:05 PM (13 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25781572
Default Alt Text
D53823.diff (1 KB)

Event Timeline