2 * Copyright (c) 2023 Dmitry Chagin <dchagin@FreeBSD.org>
4 * SPDX-License-Identifier: BSD-2-Clause
14 _Static_assert(sizeof(vm_offset_t) >= 8, "Test is not intended for ILP32");
15 #define MAP_32BIT_MAX_ADDR ((vm_offset_t)1 << 31)
24 if ((pagesize = getpagesize()) <= 0)
25 err(1, "getpagesize");
27 fd = open("/dev/zero", O_RDONLY);
29 err(1, "open failed");
31 s32 = mmap(NULL, pagesize, PROT_READ, MAP_32BIT | MAP_PRIVATE, fd, 0);
32 if (s32 == MAP_FAILED)
33 err(1, "mmap MAP_32BIT | MAP_PRIVATE failed");
34 if (((vm_offset_t)s32 + pagesize) > MAP_32BIT_MAX_ADDR)
35 errx(1, "mmap invalid result %p", s32);
38 if (munmap(s32, pagesize) != 0)
39 err(1, "munmap failed");
41 s32 = mmap(NULL, pagesize, PROT_READ | PROT_WRITE,
42 MAP_32BIT | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
43 if (s32 == MAP_FAILED)
44 err(1, "mmap MAP_32BIT | MAP_ANONYMOUS | MAP_PRIVATE failed");
45 if (((vm_offset_t)s32 + pagesize) > MAP_32BIT_MAX_ADDR)
46 errx(1, "mmap invalid result %p", s32);
48 if (munmap(s32, pagesize) != 0)
49 err(1, "munmap failed");