Changeset ad7a6c9 in mainline for uspace/srv/vfs/vfs.c
- Timestamp:
- 2011-03-30T13:10:24Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4ae90f9
- Parents:
- 6e50466 (diff), d6b81941 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs.c
r6e50466 rad7a6c9 36 36 */ 37 37 38 #include <ipc/ipc.h>39 38 #include <ipc/services.h> 39 #include <ipc/ns.h> 40 40 #include <async.h> 41 41 #include <errno.h> … … 47 47 #include "vfs.h" 48 48 49 #define NAME "vfs"49 #define NAME "vfs" 50 50 51 51 static void vfs_connection(ipc_callid_t iid, ipc_call_t *icall) … … 57 57 * This call needs to be answered. 58 58 */ 59 ipc_answer_0(iid, EOK);59 async_answer_0(iid, EOK); 60 60 61 /*62 * Here we enter the main connection fibril loop.63 * The logic behind this loop and the protocol is that we'd like to keep64 * each connection open until the client hangs up. When the client hangs65 * up, we will free its VFS state. The act of hanging up the connection66 * by the client is equivalent to client termination because we cannot67 * distinguish one from the other. On the other hand, the client can68 * hang up arbitrarily if it has no open files and reestablish the69 * connection later.70 */71 61 while (keep_on_going) { 72 62 ipc_call_t call; … … 129 119 vfs_dup(callid, &call); 130 120 default: 131 ipc_answer_0(callid, ENOTSUP);121 async_answer_0(callid, ENOTSUP); 132 122 break; 133 123 } 134 124 } 135 136 vfs_files_done(); 125 126 /* 127 * Open files for this client will be cleaned up when its last 128 * connection fibril terminates. 129 */ 137 130 } 138 131 … … 166 159 167 160 /* 161 * Set client data constructor and destructor. 162 */ 163 async_set_client_data_constructor(vfs_client_data_create); 164 async_set_client_data_destructor(vfs_client_data_destroy); 165 166 /* 168 167 * Set a connection handling function/fibril. 169 168 */ … … 173 172 * Register at the naming service. 174 173 */ 175 sysarg_t phonead; 176 ipc_connect_to_me(PHONE_NS, SERVICE_VFS, 0, 0, &phonead); 174 if (service_register(SERVICE_VFS) != EOK) { 175 printf("%s: Cannot register VFS service\n", NAME); 176 return EINVAL; 177 } 177 178 178 179 /*
Note:
See TracChangeset
for help on using the changeset viewer.