xref: /unit/auto/shmem (revision 42)
1*42Smax.romanov@nginx.com
2*42Smax.romanov@nginx.com# Copyright (C) Igor Sysoev
3*42Smax.romanov@nginx.com# Copyright (C) NGINX, Inc.
4*42Smax.romanov@nginx.com
5*42Smax.romanov@nginx.com
6*42Smax.romanov@nginx.com# Linux, FreeBSD, MacOSX
7*42Smax.romanov@nginx.com
8*42Smax.romanov@nginx.comnxt_feature="shm_open()"
9*42Smax.romanov@nginx.comnxt_feature_name=NXT_HAVE_SHM_OPEN
10*42Smax.romanov@nginx.comnxt_feature_run=yes
11*42Smax.romanov@nginx.comnxt_feature_incs=
12*42Smax.romanov@nginx.comnxt_feature_libs=
13*42Smax.romanov@nginx.com
14*42Smax.romanov@nginx.comif [ "$NXT_SYSTEM" = "Linux" ]; then
15*42Smax.romanov@nginx.com    nxt_feature_libs=-lrt
16*42Smax.romanov@nginx.comfi
17*42Smax.romanov@nginx.com
18*42Smax.romanov@nginx.comnxt_feature_test="#include <sys/mman.h>
19*42Smax.romanov@nginx.com                  #include <fcntl.h>
20*42Smax.romanov@nginx.com                  #include <sys/stat.h>
21*42Smax.romanov@nginx.com                  #include <sys/types.h>
22*42Smax.romanov@nginx.com
23*42Smax.romanov@nginx.com                  int main() {
24*42Smax.romanov@nginx.com                      static char name[] = \"/nginext.configure\";
25*42Smax.romanov@nginx.com
26*42Smax.romanov@nginx.com                      shm_unlink(name);
27*42Smax.romanov@nginx.com
28*42Smax.romanov@nginx.com                      int fd = shm_open(name, O_CREAT | O_EXCL | O_RDWR,
29*42Smax.romanov@nginx.com                          S_IRUSR | S_IWUSR);
30*42Smax.romanov@nginx.com                      if (fd == -1)
31*42Smax.romanov@nginx.com                          return 1;
32*42Smax.romanov@nginx.com
33*42Smax.romanov@nginx.com                      shm_unlink(name);
34*42Smax.romanov@nginx.com                      return 0;
35*42Smax.romanov@nginx.com                  }"
36*42Smax.romanov@nginx.com. auto/feature
37*42Smax.romanov@nginx.com
38*42Smax.romanov@nginx.com
39*42Smax.romanov@nginx.com# Linux
40*42Smax.romanov@nginx.com
41*42Smax.romanov@nginx.comnxt_feature="memfd_create()"
42*42Smax.romanov@nginx.comnxt_feature_name=NXT_HAVE_MEMFD_CREATE
43*42Smax.romanov@nginx.comnxt_feature_run=yes
44*42Smax.romanov@nginx.comnxt_feature_incs=
45*42Smax.romanov@nginx.comnxt_feature_libs=
46*42Smax.romanov@nginx.comnxt_feature_test="#include <linux/memfd.h>
47*42Smax.romanov@nginx.com                  #include <unistd.h>
48*42Smax.romanov@nginx.com                  #include <sys/syscall.h>
49*42Smax.romanov@nginx.com
50*42Smax.romanov@nginx.com                  int main() {
51*42Smax.romanov@nginx.com                      static char name[] = \"/nginext.configure\";
52*42Smax.romanov@nginx.com
53*42Smax.romanov@nginx.com                      int fd = syscall(SYS_memfd_create, name, MFD_CLOEXEC);
54*42Smax.romanov@nginx.com                      if (fd == -1)
55*42Smax.romanov@nginx.com                          return 1;
56*42Smax.romanov@nginx.com
57*42Smax.romanov@nginx.com                      return 0;
58*42Smax.romanov@nginx.com                  }"
59*42Smax.romanov@nginx.com. auto/feature
60*42Smax.romanov@nginx.com
61