- if ((ftruncate (memfd->fd, memfd->ssvm_size)) == -1)
- {
- clib_unix_warning ("set memfd size");
- return SSVM_API_ERROR_SET_SIZE;
- }
-
- if ((fcntl (memfd->fd, F_ADD_SEALS, F_SEAL_SHRINK)) == -1)
- clib_unix_warning ("fcntl (F_ADD_SEALS, F_SEAL_SHRINK)");
-
- flags = MAP_SHARED;
- if (memfd->requested_va)
- flags |= MAP_FIXED;
-
- randomize_baseva = (ticks & 15) * MMAP_PAGESIZE;
-
- if (memfd->requested_va)
- memfd->requested_va += randomize_baseva;
-
- sh = memfd->sh =
- (ssvm_shared_header_t *) mmap ((void *) memfd->requested_va,
- memfd->ssvm_size, PROT_READ | PROT_WRITE,
- flags, memfd->fd, 0);
-
- if (memfd->sh == MAP_FAILED)
- {
- clib_unix_warning ("mmap");
- close (memfd->fd);
- return SSVM_API_ERROR_MMAP;
- }
-