xref: /unit/auto/mmap (revision 2228:f403dc1e3ec1)
10Sigor@sysoev.ru
20Sigor@sysoev.ru# Copyright (C) Igor Sysoev
30Sigor@sysoev.ru# Copyright (C) NGINX, Inc.
40Sigor@sysoev.ru
50Sigor@sysoev.ru
60Sigor@sysoev.ru# Linux, FreeBSD, Solaris, MacOSX.
70Sigor@sysoev.ru
80Sigor@sysoev.runxt_feature="MAP_ANON"
90Sigor@sysoev.runxt_feature_name=NXT_HAVE_MAP_ANON
100Sigor@sysoev.runxt_feature_run=yes
110Sigor@sysoev.runxt_feature_incs=
120Sigor@sysoev.runxt_feature_libs=
130Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
140Sigor@sysoev.ru                  #include <sys/mman.h>
150Sigor@sysoev.ru
16*2228Sa.clayton@nginx.com                  int main(void) {
170Sigor@sysoev.ru                      if (mmap(NULL, 4096, PROT_READ | PROT_WRITE,
180Sigor@sysoev.ru                               MAP_PRIVATE | MAP_ANON, -1, 0)
190Sigor@sysoev.ru                            == MAP_FAILED)
200Sigor@sysoev.ru                          return 1;
210Sigor@sysoev.ru                      return 0;
220Sigor@sysoev.ru                  }"
230Sigor@sysoev.ru. auto/feature
240Sigor@sysoev.ru
250Sigor@sysoev.ru
260Sigor@sysoev.ruif [ $nxt_found = no ]; then
270Sigor@sysoev.ru
280Sigor@sysoev.ru    # Linux, Solaris, HP-UX.
290Sigor@sysoev.ru
300Sigor@sysoev.ru    nxt_feature="MAP_ANONYMOUS"
310Sigor@sysoev.ru    nxt_feature_name=NXT_HAVE_MAP_ANONYMOUS
320Sigor@sysoev.ru    nxt_feature_run=yes
330Sigor@sysoev.ru    nxt_feature_incs=
340Sigor@sysoev.ru    nxt_feature_libs=
350Sigor@sysoev.ru    nxt_feature_test="#include <stdlib.h>
360Sigor@sysoev.ru                      #include <sys/mman.h>
370Sigor@sysoev.ru
38*2228Sa.clayton@nginx.com                      int main(void) {
390Sigor@sysoev.ru                          if (mmap(NULL, 4096, PROT_READ | PROT_WRITE,
400Sigor@sysoev.ru                                   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)
410Sigor@sysoev.ru                                == MAP_FAILED)
420Sigor@sysoev.ru                              return 1;
430Sigor@sysoev.ru                          return 0;
440Sigor@sysoev.ru                      }"
450Sigor@sysoev.ru    . auto/feature
460Sigor@sysoev.rufi
470Sigor@sysoev.ru
480Sigor@sysoev.ru
490Sigor@sysoev.ru# Linux.
500Sigor@sysoev.ru
510Sigor@sysoev.runxt_feature="MAP_POPULATE"
520Sigor@sysoev.runxt_feature_name=NXT_HAVE_MAP_POPULATE
530Sigor@sysoev.runxt_feature_run=no
540Sigor@sysoev.runxt_feature_incs=
550Sigor@sysoev.runxt_feature_libs=
560Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
570Sigor@sysoev.ru                  #include <sys/mman.h>
580Sigor@sysoev.ru
59*2228Sa.clayton@nginx.com                  int main(void) {
600Sigor@sysoev.ru                      if (mmap(NULL, 4096, PROT_READ | PROT_WRITE,
610Sigor@sysoev.ru                               MAP_SHARED | MAP_POPULATE, -1, 0)
620Sigor@sysoev.ru                            == MAP_FAILED)
630Sigor@sysoev.ru                          return 1;
640Sigor@sysoev.ru                      return 0;
650Sigor@sysoev.ru                  }"
660Sigor@sysoev.ru. auto/feature
670Sigor@sysoev.ru
680Sigor@sysoev.ru
690Sigor@sysoev.ru# FreeBSD.
700Sigor@sysoev.ru
710Sigor@sysoev.runxt_feature="MAP_PREFAULT_READ"
720Sigor@sysoev.runxt_feature_name=NXT_HAVE_MAP_PREFAULT_READ
730Sigor@sysoev.runxt_feature_run=yes
740Sigor@sysoev.runxt_feature_incs=
750Sigor@sysoev.runxt_feature_libs=
760Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
770Sigor@sysoev.ru                  #include <sys/mman.h>
780Sigor@sysoev.ru
79*2228Sa.clayton@nginx.com                  int main(void) {
800Sigor@sysoev.ru                      if (mmap(NULL, 4096, PROT_READ | PROT_WRITE,
810Sigor@sysoev.ru                               MAP_PRIVATE | MAP_ANON | MAP_PREFAULT_READ,
820Sigor@sysoev.ru                               -1, 0)
830Sigor@sysoev.ru                            == MAP_FAILED)
840Sigor@sysoev.ru                          return 1;
850Sigor@sysoev.ru                      return 0;
860Sigor@sysoev.ru                  }"
870Sigor@sysoev.ru. auto/feature
88