static int create_segments(size_t requested_size, zend_shared_segment ***shared_segments_p, int *shared_segments_count, char **error_in)
{
zend_shared_segment *shared_segment;
- int flags = PROT_READ | PROT_WRITE;
+ int flags = PROT_READ | PROT_WRITE, fd = -1;
void *p;
#ifdef PROT_MPROTECT
- flags |= PROT_MPROTECT(PROT_EXEC);
+ flags |= PROT_MPROTECT(PROT_EXEC);
+#endif
+#ifdef VM_MAKE_TAG
+ /* allows tracking segments via tools such as vmmap */
+ fd = VM_MAKE_TAG(251U);
#endif
+ #ifdef PROT_MAX
+ flags |= PROT_MAX(PROT_READ | PROT_WRITE | PROT_EXEC);
+ #endif
#ifdef MAP_HUGETLB
size_t huge_page_size = 2 * 1024 * 1024;