PR_SET_MM_START_CODE, PR_SET_MM_END_CODE − 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_CODE, unsigned long
addr, 0L, 0L);
int prctl(PR_SET_MM, PR_SET_MM_END_CODE, unsigned long
addr, 0L, 0L);
PR_SET_MM_START_CODE
Set the address above which the program text can run. The corresponding memory area must be readable and executable, but not writable or shareable (see mprotect(2) and mmap(2) for more information).
PR_SET_MM_END_CODE
Set the address below which the program text can run. The corresponding memory area must be readable and executable, but not writable 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)