00001 /* -*- c -*- */ 00009 /* (c) 2004 Technische Universitaet Dresden 00010 * This file is part of DROPS, which is distributed under the terms of the 00011 * GNU General Public License 2. Please see the COPYING file for details. 00012 */ 00013 import <l4/sys/types.h> 00014 import <l4/l4vfs/types.h> 00015 00016 import <l4/l4vfs/basic_name_server.idl> 00017 import <l4/l4vfs/name_space_provider.idl> 00018 import <l4/l4vfs/extendable.idl> 00019 import <l4/l4vfs/basic_io.idl> 00020 import <l4/l4vfs/container_io.idl> 00021 00025 library l4vfs 00026 { 00030 [uuid(1003)] 00031 interface name_server : extendable, name_space_provider, 00032 basic_name_server, basic_io, container_io 00033 { 00034 /* Mount a single object in another namespace. 00035 * 00036 * This has to be supported by the name space provider. 00037 * Currently only the name_server does so. 00038 * 00039 * The idea is to enable more light-weight server, as servers 00040 * providing the object don't have to implement all the 00041 * directory handling, but only the operation working directly 00042 * on an object. 00043 * 00044 * Note that also the base (which is the directory, the new 00045 * object has to be located in) has to be a full object_id_t 00046 * including a volume_id as the destination server may serve 00047 * several volumes. It needS to be able to locate the base. 00048 */ 00049 int attach_object([in] object_id_t base, [in, string] char * name, 00050 [in] object_id_t object); 00051 }; 00052 };