/* Miscellaneous callbacks from Hurd servers to their clients Copyright (C) 1991, 1992, 1993 Free Software Foundation This file is part of the GNU Hurd. The GNU Hurd is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. The GNU Hurd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the GNU Hurd; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ subsystem msg 23000; #include #ifdef MSG_IMPORTS MSG_IMPORTS #endif /* Post a signal to the process. The refport indicates some permission attribute that the caller provides in the hope that the receiver will honor the signal. Conventional values include: Port Signals honored task port all session ID (see proc_getsidport) CONT ctty port (see term_getctty) INT, QUIT, TSTP, HUP async IO ID (see io_async) URG, IO */ routine sig_post ( process: mach_port_t; sreplyport reply_port: mach_port_t; signal: int; refport: mach_port_t); /* The parent or the process group of a process has been changed, or the orphaned status has changed. The task port is sent so that the recipient can know it's OK to honor the call. */ routine proc_newids ( process: mach_port_t; task: task_t; ppid: pid_t; pgrp: pid_t; orphaned: int); /* Do a reauth after or-ing in new id's. */ routine add_auth ( process: mach_port_t; auth: auth_t); /* Do a reauth after removing auth information. The task port is provided as an attempt at security. */ routine del_auth ( process: mach_port_t; task: task_t; uids: intarray_t; gids: intarray_t); /* These eight calls fetch and store the ports and other information that were passed to the process at exec time (see hurd_types.h). The REFPORT can be the task port or the auth port. */ routine get_init_port ( process: mach_port_t; task: task_t; which: int; out port: mach_port_t); routine set_init_port ( process: mach_port_t; task: task_t; which: int; port: mach_port_t); routine get_init_ports ( process: mach_port_t; task: task_t; out ports: portarray_t); routine set_init_ports ( process: mach_port_t; task: task_t; ports: portarray_t); routine get_init_int ( process: mach_port_t; task: task_t; which: int; out value: int); routine set_init_int ( process: mach_port_t; task: task_t; which: int; value: int); routine get_init_ints ( process: mach_port_t; task: task_t; out values: intarray_t); routine set_init_ints ( process: mach_port_t; task: task_t; values: intarray_t); /* These two calls fetch and store the file descriptor table. */ routine get_dtable ( process: mach_port_t; out dtable: portarray_t); routine set_dtable ( process: mach_port_t; dtable: portarray_t); /* These two calls fetch and store a single file descriptor. */ routine get_fd ( process: mach_port_t; out fd: mach_port_t); routine set_fd ( process: mach_port_t; fd: mach_port_t); /* A select call has completed. */ routine io_select_done ( notify_port: mach_port_t; select_result: int; id_tag: int); /* This is sent by the startup server when the system is going down. */ routine startup_dosync ( process: mach_port_t);