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,16 @@ typedef __uintptr_t uintptr_t; #define _UINTPTR_T_DECLARED #endif +#if defined(__BSD_VISIBLE) && __BSD_VISIBLE +#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