From 11ac2a6e811ff0860c7d3b3daf035dc6748fb4d4 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Tue, 16 Dec 2014 02:37:33 +0100 Subject: [PATCH] add new prctl command PR_SET_MM_MAP to sys/prctl.h PR_SET_MM_MAP was introduced as a subcommand for PR_SET_MM in linux v3.18 commit f606b77f1a9e362451aca8f81d8f36a3a112139e the associated struct type is replicated in sys/prctl.h using libc types. example usage: struct prctl_mm_map *p; ... prctl(PR_SET_MM, PR_SET_MM_MAP, p, sizeof *p); the kernel side supported struct size may be queried with the PR_SET_MM_MAP_SIZE subcommand. --- include/sys/prctl.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/include/sys/prctl.h b/include/sys/prctl.h index 8cb197c3..9af5b8ae 100644 --- a/include/sys/prctl.h +++ b/include/sys/prctl.h @@ -5,6 +5,8 @@ extern "C" { #endif +#include + #define PR_SET_PDEATHSIG 1 #define PR_GET_PDEATHSIG 2 #define PR_GET_DUMPABLE 3 @@ -80,6 +82,25 @@ extern "C" { #define PR_SET_MM_ENV_END 11 #define PR_SET_MM_AUXV 12 #define PR_SET_MM_EXE_FILE 13 +#define PR_SET_MM_MAP 14 +#define PR_SET_MM_MAP_SIZE 15 + +struct prctl_mm_map { + uint64_t start_code; + uint64_t end_code; + uint64_t start_data; + uint64_t end_data; + uint64_t start_brk; + uint64_t brk; + uint64_t start_stack; + uint64_t arg_start; + uint64_t arg_end; + uint64_t env_start; + uint64_t env_end; + uint64_t *auxv; + uint32_t auxv_size; + uint32_t exe_fd; +}; #define PR_SET_PTRACER 0x59616d61 #define PR_SET_PTRACER_ANY (-1UL) -- 2.25.1