logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

PR_SET_MM_ARG_START, PR_SET_MM_ARG_END, PR_SET_MM_ENV_START, PR_SET_MM_ENV_END - modify kernel memory map

Description

PR_SET_MM_ARG_START Set the address above which the program command line is placed. PR_SET_MM_ARG_END Set the address below which the program command line is placed. PR_SET_MM_ENV_START Set the address above which the program environment is placed. PR_SET_MM_ENV_END Set the address below which the program environment is placed. 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)).

Errors

EINVALaddr is greater than TASK_SIZE (the limit on the size of the user address space for this architecture).

History

Linux 3.5.

Library

Standard C library (libc, -lc)

Name

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

Return Value

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

See Also

prctl(2), PR_SET_MM(2const) Linux man-pages 6.9.1 2024-06-01 PR_SET_MM_ARG_START(2const)

Standards

Linux.

Synopsis

#include<linux/prctl.h> /* Definition of PR_* constants */ #include<sys/prctl.h>intprctl(PR_SET_MM,PR_SET_MM_ARG_START,unsignedlongaddr,0L,0L);intprctl(PR_SET_MM,PR_SET_MM_ARG_END,unsignedlongaddr,0L,0L);intprctl(PR_SET_MM,PR_SET_MM_ENV_START,unsignedlongaddr,0L,0L);intprctl(PR_SET_MM,PR_SET_MM_ENV_END,unsignedlongaddr,0L,0L);

See Also