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);
PR_SET_MM_START_DATA
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.
PR_SET_MM_END_DATA
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.
|
EINVAL |
addr is greater than TASK_SIZE (the limit on the size of the user address space for this architecture). | ||
|
EINVAL |
The permissions of the corresponding memory area are not as required. |
Linux.
Linux 3.3.
prctl(2)