summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2013-08-15 09:38:05 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2013-09-15 22:52:02 +0200
commit753ee9aee498bc8bf979fdb0b9272e7f4d1e3bb9 (patch)
tree0de684c2fc24cf69458c9b8e3098ece081acbe77 /hurd
parentc62a440d866ccd8259b408ec59a2c16069e0ce0c (diff)
hurd: add proc_{get,set}_code
Add routines to set and query the processes start_code and end_code locations. Any executable segments loaded from the ELF binary are in this range. * hurd/process.defs: Add proc_{get,set}_code. * hurd/process_reply.defs: Add proc_{get,set}_code. * hurd/process_request.defs: Add proc_{get,set}_code_request.
Diffstat (limited to 'hurd')
-rw-r--r--hurd/process.defs17
-rw-r--r--hurd/process_reply.defs7
-rw-r--r--hurd/process_request.defs17
3 files changed, 41 insertions, 0 deletions
diff --git a/hurd/process.defs b/hurd/process.defs
index b7e1775a..bf905564 100644
--- a/hurd/process.defs
+++ b/hurd/process.defs
@@ -383,3 +383,20 @@ routine proc_mark_important (
routine proc_is_important (
process: process_t;
out essential: boolean_t);
+
+/* Set the processes start_code and end_code locations. Any
+ executable segments loaded from the ELF binary are in this
+ range. */
+routine proc_set_code (
+ process: process_t;
+ start_code: vm_address_t;
+ end_code: vm_address_t);
+
+/* Get the processes start_code and end_code locations. Any
+ executable segments loaded from the ELF binary are in this range.
+ If zero is returned for these values, the requested information has
+ never been set. */
+routine proc_get_code (
+ process: process_t;
+ out start_code: vm_address_t;
+ out end_code: vm_address_t);
diff --git a/hurd/process_reply.defs b/hurd/process_reply.defs
index 38f2082e..66a75517 100644
--- a/hurd/process_reply.defs
+++ b/hurd/process_reply.defs
@@ -185,3 +185,10 @@ simpleroutine proc_is_important (
RETURN_CODE_ARG;
essential: boolean_t);
+skip; /* proc_set_code */
+
+simpleroutine proc_get_code (
+ reply_port: reply_port_t;
+ RETURN_CODE_ARG;
+ start_code: vm_address_t;
+ end_code: vm_address_t);
diff --git a/hurd/process_request.defs b/hurd/process_request.defs
index 3ef73536..38e71461 100644
--- a/hurd/process_request.defs
+++ b/hurd/process_request.defs
@@ -385,3 +385,20 @@ simpleroutine proc_mark_important_request (
simpleroutine proc_is_important_request (
process: process_t;
ureplyport reply: reply_port_t);
+
+/* Set the processes start_code and end_code locations. Any
+ executable segments loaded from the ELF binary are in this
+ range. */
+simpleroutine proc_set_code_request (
+ process: process_t;
+ ureplyport reply: reply_port_t;
+ start_code: vm_address_t;
+ end_code: vm_address_t);
+
+/* Get the processes start_code and end_code locations. Any
+ executable segments loaded from the ELF binary are in this range.
+ If zero is returned for these values, the requested information has
+ never been set. */
+simpleroutine proc_get_code_request (
+ process: process_t;
+ ureplyport reply: reply_port_t);