/* Definitions for the filesystem interface.
   Copyright (C) 1994,95,96,97,98,99,2002 Free Software Foundation, Inc.

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.  */


/* All these objects also implement the generic IO facilities. */

subsystem fs_experimental 444242;

#include <hurd/hurd_types.defs>

#ifdef FILE_IMPORTS
FILE_IMPORTS
#endif

/* Operations supported on all files */

INTR_INTERFACE

/* Overlay a task with a file.  Necessary initialization, including
   authentication changes associated with set[ug]id execution must be
   handled by the filesystem.  Filesystems normally implement this by
   using exec_newtask or exec_loadtask as appropriate.  */
routine file_exec_file_name (
	exec_file: file_t;
	RPT
	exec_task: task_t;
	flags: int;
	filename: string_t;
	argv: data_t SCP;
	envp: data_t SCP;
	fdarray: portarray_t SCP;
	portarray: portarray_t SCP;
	intarray: intarray_t SCP;
	deallocnames: mach_port_name_array_t SCP;
	destroynames: mach_port_name_array_t SCP);
