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 import <dice/dice-corba-types.h> 00016 00020 library l4vfs 00021 { 00025 [uuid(1001), abstract] 00026 interface name_space_provider 00027 { 00028 /* Register a server thread at the name server for a specific 00029 * volume_id in the given object_id. Additionally, the 00030 * server's root's local object_id is given for the first 00031 * resolve, used to determine the oject_id of the 00032 * mounted_point. This could be called several times with 00033 * different volume_ids if a server wants to. 00034 * 00035 * This call might fail, in case someone already registered 00036 * for the given volume_id. 00037 * 00038 * A return value of 0 means ok, in all other cases an error 00039 * occured. 00040 */ 00041 int register_volume([in] CORBA_Object server, 00042 [in] object_id_t object_id); 00043 00044 /* Unregister a thread-volume-mapping at the name server. 00045 * This could be called several times with different 00046 * volume_ids if a server has registered for different 00047 * volume_ids. 00048 * 00049 * Note that for unregistering the root's object_id is not 00050 * necessary. 00051 * 00052 * This might fail, if no one was registered for the given 00053 * volume_id. 00054 * 00055 * A return value of 0 means ok, in all other cases an error 00056 * occured. 00057 */ 00058 int unregister_volume([in] CORBA_Object server, 00059 [in] volume_id_t volume_id); 00060 }; 00061 };