aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hurd/process.defs6
-rw-r--r--hurd/process_reply.defs6
-rw-r--r--proc/info.c8
-rw-r--r--proc/msg.c6
4 files changed, 16 insertions, 10 deletions
diff --git a/hurd/process.defs b/hurd/process.defs
index 4ceb69e2..df70eb9a 100644
--- a/hurd/process.defs
+++ b/hurd/process.defs
@@ -156,7 +156,7 @@ routine proc_getmsgport (
process: process_t;
sreplyport reply_port: sreply_port_t;
pid: pid_t;
- out msgport: mach_port_t);
+ out msgport: mach_port_poly_t);
/* Wait for a child process to exit. If pid is zero, it waits for any
child in the same pgrp as the parent. If pid is -1, it waits for
@@ -246,7 +246,7 @@ routine proc_task2pid (
routine proc_task2proc (
process: process_t;
task: task_t;
- out proc: mach_port_make_send_t);
+ out proc: mach_port_poly_t);
routine proc_proc2task (
process: process_t;
@@ -255,7 +255,7 @@ routine proc_proc2task (
routine proc_pid2proc (
process: process_t;
pid: pid_t;
- out proc: mach_port_make_send_t);
+ out proc: mach_port_poly_t);
routine proc_getprocinfo (
process: process_t;
diff --git a/hurd/process_reply.defs b/hurd/process_reply.defs
index 15282fea..2fc21c92 100644
--- a/hurd/process_reply.defs
+++ b/hurd/process_reply.defs
@@ -51,7 +51,7 @@ skip; /* get_arg_locations */
simpleroutine proc_getmsgport_reply (
reply_port: reply_port_t;
RETURN_CODE_ARG;
- in msgports: mach_port_t);
+ in msgports: mach_port_poly_t);
simpleroutine proc_wait_reply (
reply_port: reply_port_t;
@@ -83,7 +83,7 @@ simpleroutine proc_task2pid_reply (
simpleroutine proc_task2proc_reply (
reply_port: reply_port_t;
RETURN_CODE_ARG;
- proc: mach_port_make_send_t);
+ proc: mach_port_poly_t);
simpleroutine proc_proc2task_reply (
reply_port: reply_port_t;
@@ -93,7 +93,7 @@ simpleroutine proc_proc2task_reply (
simpleroutine proc_pid2proc_reply (
reply_port: reply_port_t;
RETURN_CODE_ARG;
- proc: mach_port_make_send_t);
+ proc: mach_port_poly_t);
simpleroutine proc_getprocinfo_reply (
reply_port: reply_port_t;
diff --git a/proc/info.c b/proc/info.c
index 0f5ca0f8..97321408 100644
--- a/proc/info.c
+++ b/proc/info.c
@@ -99,7 +99,8 @@ S_proc_task2pid (struct proc *callerp,
kern_return_t
S_proc_task2proc (struct proc *callerp,
task_t t,
- mach_port_t *outproc)
+ mach_port_t *outproc,
+ mach_msg_type_name_t *outproc_type)
{
struct proc *p = task_find (t);
@@ -109,6 +110,7 @@ S_proc_task2proc (struct proc *callerp,
return ESRCH;
*outproc = ports_get_right (p);
+ *outproc_type = MACH_MSG_TYPE_MAKE_SEND;
mach_port_deallocate (mach_task_self (), t);
return 0;
}
@@ -128,7 +130,8 @@ S_proc_proc2task (struct proc *p,
kern_return_t
S_proc_pid2proc (struct proc *callerp,
pid_t pid,
- mach_port_t *outproc)
+ mach_port_t *outproc,
+ mach_msg_type_name_t *outproc_type)
{
struct proc *p;
@@ -149,6 +152,7 @@ S_proc_pid2proc (struct proc *callerp,
return EPERM;
*outproc = ports_get_right (p);
+ *outproc_type = MACH_MSG_TYPE_MAKE_SEND;
return 0;
}
diff --git a/proc/msg.c b/proc/msg.c
index 1f132cd0..e145f6e6 100644
--- a/proc/msg.c
+++ b/proc/msg.c
@@ -126,7 +126,8 @@ S_proc_getmsgport (struct proc *callerp,
mach_port_t reply_port,
mach_msg_type_name_t reply_port_type,
pid_t pid,
- mach_port_t *msgport)
+ mach_port_t *msgport,
+ mach_msg_type_name_t *msgport_type)
{
int cancel;
struct proc *p;
@@ -156,7 +157,8 @@ restart:
if (check_msgport_death (p))
goto restart;
-
+
+ *msgport_type = MACH_MSG_TYPE_COPY_SEND;
*msgport = p->p_msgport;
return 0;