diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2013-08-15 09:38:05 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-09-15 22:52:02 +0200 |
commit | 753ee9aee498bc8bf979fdb0b9272e7f4d1e3bb9 (patch) | |
tree | 0de684c2fc24cf69458c9b8e3098ece081acbe77 | |
parent | c62a440d866ccd8259b408ec59a2c16069e0ce0c (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.
-rw-r--r-- | hurd/process.defs | 17 | ||||
-rw-r--r-- | hurd/process_reply.defs | 7 | ||||
-rw-r--r-- | hurd/process_request.defs | 17 |
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); |