PR_SET_MM_ARG_START(2const) PR_SET_MM_ARG_START(2const) PR_SET_MM_ARG_START, PR_SET_MM_ARG_END, PR_SET_MM_ENV_START, PR_SET_MM_ENV_END - modify kernel memory map descriptor fields C (libc, -lc) #include /* PR_* */ #include int prctl(PR_SET_MM, PR_SET_MM_ARG_START, unsigned long addr, 0L, 0L); int prctl(PR_SET_MM, PR_SET_MM_ARG_END, unsigned long addr, 0L, 0L); int prctl(PR_SET_MM, PR_SET_MM_ENV_START, unsigned long addr, 0L, 0L); int prctl(PR_SET_MM, PR_SET_MM_ENV_END, unsigned long addr, 0L, 0L); PR_SET_MM_ARG_START , . PR_SET_MM_ARG_END , . PR_SET_MM_ENV_START , . PR_SET_MM_ENV_END , . The address passed with these calls should belong to a process stack area. Thus, the corresponding memory area must be readable, writable, and (depending on the kernel configuration) have the MAP_GROWSDOWN attribute set (see mmap(2)). 0. -1, errno . EINVAL addr is greater than TASK_SIZE (the limit on the size of the user address space for this architecture). Linux. Linux 3.5. prctl(2), PR_SET_MM(2const) () ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () <>. Linux 6.17 8 2026 . PR_SET_MM_ARG_START(2const)