summaryrefslogtreecommitdiff
path: root/hurd/fsys.defs
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/fsys.defs')
-rw-r--r--hurd/fsys.defs129
1 files changed, 129 insertions, 0 deletions
diff --git a/hurd/fsys.defs b/hurd/fsys.defs
new file mode 100644
index 00000000..0989f169
--- /dev/null
+++ b/hurd/fsys.defs
@@ -0,0 +1,129 @@
+/* Definitions for the filesystem control interface
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997 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 fsys 22000;
+
+#include <hurd/hurd_types.defs>
+
+/* When modifying this file in any way, please remember to keep
+ fsys_reply.defs up to date. */
+
+/* Note that libdiskfs/start-translator-long.c depends silently on the
+ definition of fsys_startup below. */
+
+#ifdef FSYS_IMPORTS
+FSYS_IMPORTS
+#endif
+
+INTR_INTERFACE
+
+/* Sent by filesystem on its bootstrap port upon startup.
+ REALNODE is the node this filesystem is the translator for,
+ opened with flags FLAGS (O_NOTRANS is assumed even if not
+ provided). */
+routine fsys_startup (
+ bootstrap: mach_port_t;
+ RPT
+ openflags: int;
+ control_port: mach_port_send_t;
+ out realnode: mach_port_send_t);
+
+/* Filesystem should go away. Bye. */
+routine fsys_goaway (
+ fsys: fsys_t;
+ RPT
+ flags: int);
+
+/* Return a file to the root of the filesystem.
+ FLAGS are as for dir_pathtrans (but O_CREAT and O_EXCL are not
+ meaningful). DO_RETRY, RETRY_NAME, and RESULT are as
+ for dir_pathtrans. The port should be authenticated with GEN_UIDS
+ and GEN_GIDS (except, of course, for FS_RETRY_REAUTH and
+ FS_RETRY_MAGICAL). DOTDOT_NODE is an unauthenticated port for the
+ directory in which this root is located. */
+routine fsys_getroot(
+ fsys: fsys_t;
+ RPT
+#ifdef FSYS_GETROOT_UREPLY
+ ureplyport ureply: mig_reply_port_t;
+#endif
+ dotdot_node: mach_port_send_t;
+ gen_uids: idarray_t;
+ gen_gids: idarray_t;
+ flags: int;
+ out do_retry: retry_type;
+ out retry_name: string_t;
+ out file: mach_port_send_t);
+
+/* Get a file given a file handle (see file_getfh). */
+routine fsys_getfile (
+ fsys: fsys_t;
+ RPT
+ gen_uids: idarray_t;
+ gen_gids: idarray_t;
+ filehandle: data_t;
+ out file: mach_port_send_t);
+
+/* Sync a filesystem. Args are the same as for file_syncfs in fs.defs. */
+routine fsys_syncfs (
+ fsys: fsys_t;
+ RPT
+ wait: int;
+ do_children: int);
+
+/* Pass a server-specific options string. This usually includes flags
+ similar to command line options, e.g., --readonly, or --sync=30. */
+routine fsys_set_options (
+ fsys: fsys_t;
+ RPT
+ options: data_t;
+ do_children: int);
+
+/* The following two calls are only implemented by bootstrap filesystems. */
+
+routine fsys_getpriv (
+ fsys: fsys_t;
+ RPT
+ out host_priv: mach_port_send_t;
+ out device_master: mach_port_send_t;
+ out fstask: mach_port_send_t);
+
+routine fsys_init (
+ fsys: fsys_t;
+ sreplyport reply_port: sreply_port_t;
+ proc_server: mach_port_send_t;
+ auth_handle: auth_t);
+
+/* Ask SERVER to provide fsys translation service for us. REQUESTOR is
+ the bootstrap port supplied to the original translator, and ARGV are
+ the command line arguments. If the recipient accepts the request, he
+ (or some delegate) should send fsys_startup to REQUESTOR to start the
+ filesystem up. */
+routine fsys_forward (
+ server: mach_port_t;
+ RPT
+ requestor: mach_port_send_t;
+ argv: data_t);
+
+/* Return the options describing the operation of the receiving
+ filesystem (sutiable for fsys_set_options). */
+routine fsys_get_options (
+ server: fsys_t;
+ RPT
+ out options: data_t);