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