/* 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 type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic ctype: mach_port_t; /* 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; control_port: mach_port_send_t; out realnode: mach_port_send_t; out dotdot_node: mach_port_send_t); /* Filesystem should go away. Bye. */ routine fsys_goaway ( fsys: fsys_t; flags: int); /* Return a file to the root of the filesystem. FLAGS are as for dir_pathtrans. */ routine fsys_getroot ( fsys: fsys_t; #ifdef FSYS_GETROOT_UREPLY ureplyport ureply: mig_reply_port_t; #endif flags: int; gen_uids: idarray_t; gen_gids: idarray_t; out file: mach_port_send_t); /* Get a file given a file handle (see file_getfh). */ routine fsys_getfile ( fsys: fsys_t; gen_uids: idarray_t; gen_gids: idarray_t; filehandle: data_t; out file: mach_port_send_t); /* The following two calls are only implemented by bootstrap filesystems. */ routine fsys_getpriv ( fsys: fsys_t; 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: reply_port_t; proc_server: mach_port_send_t; auth_handle: auth_t);