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 <sebastian.huber@embedded-brains.de>
This commit is contained in:
Sebastian Huber 2018-08-23 11:50:46 +02:00
parent d35971f392
commit d13c84eb07
1 changed files with 3 additions and 0 deletions

View File

@ -71,6 +71,9 @@ typedef __uintptr_t segsz_t; /* segment size (in pages) */
typedef __uintptr_t uintfptr_t; typedef __uintptr_t uintfptr_t;
typedef __uintptr_t kvaddr_t;
typedef size_t ksize_t;
typedef __intptr_t vm_ooffset_t; typedef __intptr_t vm_ooffset_t;
typedef __uintptr_t vm_offset_t; typedef __uintptr_t vm_offset_t;
typedef __uintptr_t vm_paddr_t; typedef __uintptr_t vm_paddr_t;