Formerly ../hurd/alloc-fd.c.~6~
[kopensolaris-gnu/glibc.git] / hurd / hurd.h
index af9e927..4401eb6 100644 (file)
@@ -37,14 +37,19 @@ Cambridge, MA 02139, USA.  */
 #include <hurd/io.h>
 #include <hurd/msg.h>
 
-#include <errno.h>
-#define        __hurd_fail(err)        (errno = (err), -1)
-
 #define __spin_lock(lockaddr) /* no-op XXX */
 #define __spin_unlock(lockaddr) /* no-op XXX */
 
 #define __mutex_lock(lockaddr) /* no-op XXX */
 #define __mutex_unlock(lockaddr) /* no-op XXX */
+
+/* Get `struct hurd_port' and related definitions implementing lightweight
+   user references for ports.  These are used pervasively throughout the C
+   library; this is here to avoid putting it in nearly every source file.  */
+#include <hurd/port.h>
+
+#include <errno.h>
+#define        __hurd_fail(err)        (errno = (err), -1)
 \f
 /* Basic ports and info, initialized by startup.  */
 
@@ -52,7 +57,7 @@ extern struct hurd_port *_hurd_ports;
 extern unsigned int _hurd_nports;
 extern volatile mode_t _hurd_umask;
 
-/* Shorthand macro for referencing _hurd_ports.  */
+/* Shorthand macro for referencing _hurd_ports (see <hurd/port.h>).  */
 
 #define        __USEPORT(which, expr) \
   HURD_PORT_USE (&_hurd_ports[INIT_PORT_##which], (expr))
@@ -172,9 +177,10 @@ extern file_t path_lookup (const char *file, int flags, mode_t mode);
 extern int openport (io_t port, int flags);
 
 
-/* Execute a file, replacing the current program image.  */
+/* Execute a file, replacing TASK's current program image.  */
 
-extern error_t _hurd_exec (file_t file,
+extern error_t _hurd_exec (task_t task,
+                          file_t file,
                           char *const argv[],
                           char *const envp[]);
 
@@ -222,4 +228,12 @@ extern pid_t __task2pid (task_t task), task2pid (task_t task);
 extern task_t __pid2task (pid_t pid), pid2task (pid_t pid);
 
 
+/* Return the io server port for file descriptor FD.
+   This adds a Mach user reference to the returned port.
+   On error, sets `errno' and returns MACH_PORT_NULL.  */
+
+extern io_t __getdport (int fd), getdport (int fd);
+
+
+
 #endif /* hurd.h */