[PATCH 15/17] 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.
---
hurd/process.defs | 17 +++++++++++++++++
hurd/process_reply.defs | 7 +++++++
hurd/process_request.defs | 17 +++++++++++++++++
3 files changed, 41 insertions(+)
diff --git a/hurd/process.defs b/hurd/process.defs
index 055ad72..498faba 100644
--- a/hurd/process.defs
+++ b/hurd/process.defs
@@ -387,3 +387,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 6f208eb..640b7ca 100644
--- a/hurd/process_reply.defs
+++ b/hurd/process_reply.defs
@@ -183,3 +183,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 5493fbc..7565f03 100644
--- a/hurd/process_request.defs
+++ b/hurd/process_request.defs
@@ -390,3 +390,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);
--
1.7.10.4
Reply to: