diff options
Diffstat (limited to 'mount/mount.defs')
-rw-r--r-- | mount/mount.defs | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/mount/mount.defs b/mount/mount.defs new file mode 100644 index 00000000..7e97bb9b --- /dev/null +++ b/mount/mount.defs @@ -0,0 +1,109 @@ +/* A server for keeping track of filesystems + + Copyright (C) 1996 Free Software Foundation, Inc. + + Written by Miles Bader <miles@gnu.ai.mit.edu> + + This program 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. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#include <hurd/hurd_types.defs> + +subsystem mount 37000; + +import <hurd/mount_defs.h>; + +type mount_t = mach_port_t +#ifdef MOUNT_INTRAN +intran: MOUNT_INTRAN +#endif +#ifdef MOUNT_OUTTRAN +outtran: MOUNT_OUTTRAN +#endif +#ifdef MOUNT_DESTRUCTOR +destructor: MOUNT_DESTRUCTOR +#endif +; +type mount_server_t = mach_port_t +#ifdef MOUNT_SERVER_INTRAN +intran: MOUNT_SERVER_INTRAN +#endif +#ifdef MOUNT_SERVER_OUTTRAN +outtran: MOUNT_SERVER_OUTTRAN +#endif +#ifdef MOUNT_SERVER_DESTRUCTOR +destructor: MOUNT_SERVER_DESTRUCTOR +#endif +; + +type mount_state_t = int ctype: mount_state_t; +type mount_key_class_t = int ctype: mount_key_class_t; +type mount_excl_t = int ctype: mount_excl_t; + +#ifdef MOUNT_IMPORTS +MOUNT_IMPORTS +#endif + +INTR_INTERFACE + +/* RPCs */ + +/* Begin mounting the filesystem designated by KEY & KEY_CLASS; the mount is + initially assumed to have a mode of 0 (see mount_set_mode). EXCL is the + mount exclusion mode which applies to KEY (only the first EXCL argument + for a particular KEY is used). A mount reference is returned in MOUNT, + and the current state of that filesystem is returned in STATE (and may be + used to, e.g., cause the mount to be read-only if STATE is SUSPICIOUS). */ +routine mount_begin ( + server : mount_server_t; + key : string_t; + key_class : mount_key_class_t; + excl : mount_excl_t; + out mount : mount_t; + out state : mount_state_t); + +/* Assert that MOUNT is no longer active. If CLEAN is true, then the state + of the filesystem should be changed to CLEAN; however if the state was + previously SUSPICIOUS, this is only done if CHECKED is true. */ +routine mount_end ( + mount : mount_t; + clean : boolean_t; + checked : boolean_t); + +/* Indicate that MOUNT is a real mount. TRANSLATOR and MPOINT should be the + filesystem control port and the node which is being translated. TIMESTAMP + is used to validate this mount if a reconnection to the mount server + becomes necessary. */ +routine mount_set_translator ( + mount : mount_t; + translator : fsys_t; + mpoint : file_t; + timestamp : time_spec_t); + +/* If CLEAN is true, then the state of the filesystem should be changed to + CLEAN; however if the state was previously SUSPICIOUS, this is only done + if CHECKED is true. */ +routine mount_set_clean ( + mount : mount_t + clean : boolean_t; + checked : boolean_t); + +/* Change the current writable state of MOUNT to MODE, which should be a + bitmask containg MOUNT_READ and/or MOUNT_WRITE. If other current mounts + preclude this, then EBUSY is returned. If MODE contains MOUNT_FORCE and + there are conflicting mounts, an attempt is made to use the --suspend + option on the other filesystems in order to force the issue. */ +routine mount_set_mode ( + mount : mount_t + mode : int); |