]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libffi/testsuite/libffi.special/ffitestcxx.h
8 #define CHECK(x) (!(x) ? abort() : (void)0)
10 /* Prefer MAP_ANON(YMOUS) to /dev/zero, since we don't need to keep a
13 # undef HAVE_MMAP_DEV_ZERO
15 # include <sys/mman.h>
17 # define MAP_FAILED -1
19 # if !defined (MAP_ANONYMOUS) && defined (MAP_ANON)
20 # define MAP_ANONYMOUS MAP_ANON
26 #ifdef HAVE_MMAP_DEV_ZERO
28 # include <sys/mman.h>
30 # define MAP_FAILED -1
38 allocate_mmap (size_t size
)
41 #if defined (HAVE_MMAP_DEV_ZERO)
42 static int dev_zero_fd
= -1;
45 #ifdef HAVE_MMAP_DEV_ZERO
46 if (dev_zero_fd
== -1)
48 dev_zero_fd
= open ("/dev/zero", O_RDONLY
);
49 if (dev_zero_fd
== -1)
51 perror ("open /dev/zero: %m");
59 page
= mmap (NULL
, size
, PROT_READ
| PROT_WRITE
| PROT_EXEC
,
60 MAP_PRIVATE
| MAP_ANONYMOUS
, -1, 0);
62 #ifdef HAVE_MMAP_DEV_ZERO
63 page
= mmap (NULL
, size
, PROT_READ
| PROT_WRITE
| PROT_EXEC
,
64 MAP_PRIVATE
, dev_zero_fd
, 0);
67 if (page
== MAP_FAILED
)
69 perror ("virtual memory exhausted");