diff options
author | Roland McGrath <roland@gnu.org> | 1994-09-10 16:22:34 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1994-09-10 16:22:34 +0000 |
commit | 606c35d25388fe9fdc168c4da483165638b44dcb (patch) | |
tree | c1410bb8a4d685e12003e38719caa37d18546be4 /libdiskfs/init-startup.c | |
parent | 70490907fdba820987f269a5617de7dbbbb765f0 (diff) |
Initial revision
Diffstat (limited to 'libdiskfs/init-startup.c')
-rw-r--r-- | libdiskfs/init-startup.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/libdiskfs/init-startup.c b/libdiskfs/init-startup.c new file mode 100644 index 00000000..8a7a5c34 --- /dev/null +++ b/libdiskfs/init-startup.c @@ -0,0 +1,49 @@ +/* diskfs_startup_diskfs -- advertise our fsys control port to our parent FS. + Copyright (C) 1994 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. */ + +/* Written by Roland McGrath. */ + +#include "priv.h" + +mach_port_t +diskfs_startup_diskfs (mach_port_t bootstrap) +{ + mach_port_t realnode; + + if (bootstrap != MACH_PORT_NULL) + { + _diskfs_ncontrol_ports++; + errno = fsys_startup (bootstrap, + ports_get_right (ports_allocate_port + (sizeof (struct port_info), + PT_CTL)), + MACH_MSG_TYPE_MAKE_SEND, + &realnode); + if (errno) + { + perror ("Translator startup failure: fsys_startup"); + exit (1); + } + mach_port_deallocate (mach_task_self (), bootstrap); + } + else + realnode = MACH_PORT_NULL; + + return realnode; +} |