[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[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: