summaryrefslogtreecommitdiff
path: root/exec/exectrans.c
diff options
context:
space:
mode:
Diffstat (limited to 'exec/exectrans.c')
-rw-r--r--exec/exectrans.c79
1 files changed, 0 insertions, 79 deletions
diff --git a/exec/exectrans.c b/exec/exectrans.c
deleted file mode 100644
index 4c6e0cc0..00000000
--- a/exec/exectrans.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-#include <stdio.h>
-#include <getopt.h>
-#include <error.h>
-#include <sys/stat.h>
-
-#include <hurd.h>
-#include <hurd/trivfs.h>
-
-
-/* Where to put the service ports. */
-static struct port_bucket *port_bucket;
-
-/* Trivfs hooks. */
-int trivfs_fstype = FSTYPE_MISC;
-int trivfs_fsid = 0;
-int trivfs_support_read = 1;
-int trivfs_allow_open = O_READ;
-
-struct port_class *trivfs_protid_portclasses[1];
-struct port_class *trivfs_cntl_portclasses[1];
-int trivfs_protid_nportclasses = 1;
-int trivfs_cntl_nportclasses = 1;
-
-
-static int
-exec_demuxer (mach_msg_header_t *inp, mach_msg_header_t *outp)
-{
- extern int exec_server (mach_msg_header_t *inp, mach_msg_header_t *outp);
- return exec_server (inp, outp) || trivfs_demuxer (inp, outp);
-}
-
-void
-trivfs_modify_stat (struct trivfs_protid *cred, struct stat *st)
-{
- st->st_fstype = FSTYPE_MISC;
-}
-
-error_t
-trivfs_goaway (struct trivfs_control *fsys, int flags)
-{
- int count;
-
- /* Stop new requests. */
- ports_inhibit_class_rpcs (trivfs_cntl_portclasses[0]);
- ports_inhibit_class_rpcs (trivfs_protid_portclasses[0]);
-
- /* Are there any extant user ports for the /servers/exec file? */
- count = ports_count_class (trivfs_protid_portclasses[0]);
- if (count == 0 || (flags & FSYS_GOAWAY_FORCE))
- {
- /* No users. Disconnect from the filesystem. */
- mach_port_deallocate (mach_task_self (), fsys->underlying);
-
- /* Are there remaining exec_startup RPCs to answer? */
- count = ports_count_class (execboot_portclass);
- if (count == 0)
- /* Nope. We got no reason to live. */
- exit (0);
-
- /* Continue servicing tasks starting up. */
- ports_enable_class (execboot_portclass);
-
- /* No more communication with the parent filesystem. */
- ports_destroy_right (fsys);
- going_down = 1;
-
- return 0;
- }
- else
- {
- /* We won't go away, so start things going again... */
- ports_enable_class (trivfs_protid_portclasses[0]);
- ports_resume_class_rpcs (trivfs_cntl_portclasses[0]);
- ports_resume_class_rpcs (trivfs_protid_portclasses[0]);
-
- return EBUSY;
- }
-}