shm implemented as memfd syscall
cheliequan
2022-12-08 7e877be8fb34ab99421a2eaf3d8fb1b96ed95206
src/memfd.c
@@ -70,12 +70,16 @@
  struct stat st;
  /* Create an anonymous file in tmpfs; */
  if(0 >= len)
  {
      return -1;
  }
  fd = sys_memfd_create(name, MFD_CLOEXEC);
  if (fd == -1)
  {
    errExit("memfd_create");
      errExit("memfd_create");
  }
  /* Size the file as specified on the command line */
@@ -83,7 +87,7 @@
  mydebug("length: %zu\n", len);
  if (ftruncate(fd, len) == -1)
  {
      errExit("truncate");
      errExit("ftruncate");
  }
  if (fstat (fd, &st))
@@ -174,12 +178,12 @@
    }
    len = st.st_size;
    ret = munmap(*ppaddr, len);
    ret = munmap((void *)*ppaddr, len);
    if (ret == -1)
    {
        errExit("munmap()");
    }
    *ppaddr = NULL;
    mydebug("length: %zu, atime: %lu.%lu\n", len, st.st_atim.tv_sec, st.st_atim.tv_nsec);
    return len;
}