From d13c84eb07e35984bf7a974cd786a6cdac29e6b9 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 23 Aug 2018 11:50:46 +0200 Subject: [PATCH] RTEMS: Add kvaddr_t and ksize_t These types were introduced by FreeBSD commit: "Make struct xinpcb and friends word-size independent. Replace size_t members with ksize_t (uint64_t) and pointer members (never used as pointers in userspace, but instead as unique idenitifiers) with kvaddr_t (uint64_t). This makes the structs identical between 32-bit and 64-bit ABIs. On 64-bit bit systems, the ABI is maintained. On 32-bit systems, this is an ABI breaking change. The ABI of most of these structs was previously broken in r315662. This also imposes a small API change on userspace consumers who must handle kernel pointers becoming virtual addresses. PR: 228301 (exp-run by antoine) Reviewed by: jtl, kib, rwatson (various versions) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D15386" In RTEMS, there is no user/kernel space separation. So, use the types size_t and uintptr_t. Signed-off-by: Sebastian Huber --- newlib/libc/sys/rtems/include/machine/types.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/newlib/libc/sys/rtems/include/machine/types.h b/newlib/libc/sys/rtems/include/machine/types.h index 11ca37f26..ab52e47ed 100644 --- a/newlib/libc/sys/rtems/include/machine/types.h +++ b/newlib/libc/sys/rtems/include/machine/types.h @@ -71,6 +71,9 @@ typedef __uintptr_t segsz_t; /* segment size (in pages) */ typedef __uintptr_t uintfptr_t; +typedef __uintptr_t kvaddr_t; +typedef size_t ksize_t; + typedef __intptr_t vm_ooffset_t; typedef __uintptr_t vm_offset_t; typedef __uintptr_t vm_paddr_t;