PR_SET_MM_START_DATA(2const) PR_SET_MM_START_DATA(2const)

PR_SET_MM_START_DATA, PR_SET_MM_END_DATA - modify kernel memory map descriptor fields

Standard C library (libc, -lc)

#include <linux/prctl.h>  /* Definition of PR_* constants */
#include <sys/prctl.h>
int prctl(PR_SET_MM, PR_SET_MM_START_DATA, unsigned long addr, 0L, 0L);
int prctl(PR_SET_MM, PR_SET_MM_END_DATA, unsigned long addr, 0L, 0L);

Set the address above which initialized and uninitialized (bss) data are placed. The corresponding memory area must be readable and writable, but not executable or shareable.
Set the address below which initialized and uninitialized (bss) data are placed. The corresponding memory area must be readable and writable, but not executable or shareable.

On success, 0 is returned. On error, -1 is returned, and errno is set to indicate the error.

addr is greater than TASK_SIZE (the limit on the size of the user address space for this architecture).
The permissions of the corresponding memory area are not as required.

Linux.

Linux 3.3.

prctl(2)

2024-06-01 Linux man-pages 6.9.1