/* Definitions for the filesystem control interface Copyright (C) 1992, 1993, 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. */ subsystem fsys 22000; #include #ifdef FSYS_IMPORTS FSYS_IMPORTS #endif /* Sent by filesystem on its bootstrap port upon startup. REALNODE is the node this filesystem is the translator for, with all permissions. */ routine fsys_startup ( bootstrap: mach_port_t; RPT 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_t; out device_master: mach_port_t; out fstask: task_t); routine fsys_init ( fsys: fsys_t; sreplyport reply_port: sreply_port_t; proc_server: mach_port_send_t; auth_handle: auth_t);