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 - modify kernel memory map descriptor fields

Description

Modify certain kernel memory map descriptor fields of the calling process. Usually these fields are set by the kernel and dynamic loader (see ld.so(8) for more information) and a regular application should not use this feature. However, there are cases, such as self-modifying programs, where a program might find it useful to change its own memory map. The calling process must have the CAP_SYS_RESOURCE capability. The value in op is one of the options below. PR_SET_MM_START_CODEPR_SET_MM_END_CODEPR_SET_MM_START_DATAPR_SET_MM_END_DATAPR_SET_MM_START_STACKPR_SET_MM_START_BRKPR_SET_MM_BRKPR_SET_MM_ARG_STARTPR_SET_MM_ARG_ENDPR_SET_MM_ENV_STARTPR_SET_MM_ENV_ENDPR_SET_MM_AUXVPR_SET_MM_EXE_FILEPR_SET_MM_MAPPR_SET_MM_MAP_SIZE

Errors

EINVALop is not a valid value. EPERM The caller does not have the CAP_SYS_RESOURCE capability.

History

Linux 3.3. Before Linux 3.10, this feature is available only if the kernel is built with the CONFIG_CHECKPOINT_RESTORE option enabled.

Library

Standard C library (libc, -lc)

Name

PR_SET_MM - 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_START_CODE(2const), PR_SET_MM_END_CODE(2const), PR_SET_MM_START_DATA(2const), PR_SET_MM_END_DATA(2const), PR_SET_MM_START_STACK(2const), PR_SET_MM_START_BRK(2const), PR_SET_MM_BRK(2const), PR_SET_MM_ARG_START(2const), PR_SET_MM_ARG_END(2const), PR_SET_MM_ENV_START(2const), PR_SET_MM_ENV_END(2const), PR_SET_MM_EXE_FILE(2const), PR_SET_MM_MAP(2const), PR_SET_MM_MAP_SIZE(2const) Linux man-pages 6.9.1 2024-06-01 PR_SET_MM(2const)

Standards

Linux.

Synopsis

#include<linux/prctl.h> /* Definition of PR_* constants */ #include<sys/prctl.h>intprctl(PR_SET_MM,longop,...);

See Also