[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] exec: connect std{in,out,err} to the mach console
From: |
Justus Winter |
Subject: |
[PATCH 1/2] exec: connect std{in,out,err} to the mach console |
Date: |
Wed, 5 Feb 2014 01:07:46 +0100 |
* exec/main.c (S_exec_init): Get the device master port and connect
std{in,out,err} to the mach console.
---
exec/main.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/exec/main.c b/exec/main.c
index c1f347c..27f33b1 100644
--- a/exec/main.c
+++ b/exec/main.c
@@ -200,7 +200,7 @@ kern_return_t
S_exec_init (struct trivfs_protid *protid,
auth_t auth, process_t proc)
{
- mach_port_t host_priv, startup;
+ mach_port_t host_priv, device_master, startup;
error_t err;
if (! protid || ! protid->isroot)
@@ -232,9 +232,22 @@ S_exec_init (struct trivfs_protid *protid,
mach_port_deallocate (mach_task_self (), right);
}
- err = get_privileged_ports (&host_priv, NULL);
+ err = get_privileged_ports (&host_priv, &device_master);
assert_perror (err);
+ {
+ /* Get our stderr set up to print on the console, in case we have
+ to panic or something. */
+ mach_port_t cons;
+ error_t err;
+ err = device_open (device_master, D_READ|D_WRITE, "console", &cons);
+ assert_perror (err);
+ mach_port_deallocate (mach_task_self (), device_master);
+ stdin = mach_open_devstream (cons, "r");
+ stdout = stderr = mach_open_devstream (cons, "w");
+ mach_port_deallocate (mach_task_self (), cons);
+ }
+
proc_register_version (procserver, host_priv, "exec", "", HURD_VERSION);
err = proc_getmsgport (procserver, HURD_PID_STARTUP, &startup);
--
1.8.5.2
- [PATCH 1/2] exec: connect std{in,out,err} to the mach console,
Justus Winter <=
- [PATCH 2/2] daemons/getty: always print a newline before the banner, Justus Winter, 2014/02/04
- Re: [PATCH 1/2] exec: connect std{in,out,err} to the mach console, Samuel Thibault, 2014/02/04
- Re: [PATCH 1/2] exec: connect std{in,out,err} to the mach console, Ludovic Courtès, 2014/02/05