Rev 4563 | Rev 4584 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4563 | Rev 4566 | ||
|---|---|---|---|
| Line 41... | Line 41... | ||
| 41 | #include <errno.h> |
41 | #include <errno.h> |
| 42 | #include <stdio.h> |
42 | #include <stdio.h> |
| 43 | #include <bool.h> |
43 | #include <bool.h> |
| 44 | #include <string.h> |
44 | #include <string.h> |
| 45 | #include <as.h> |
45 | #include <as.h> |
| 46 | #include <adt/list.h> |
- | |
| 47 | #include <atomic.h> |
46 | #include <atomic.h> |
| 48 | #include <assert.h> |
- | |
| 49 | #include "vfs.h" |
47 | #include "vfs.h" |
| 50 | 48 | ||
| 51 | #define NAME "vfs" |
49 | #define NAME "vfs" |
| 52 | 50 | ||
| 53 | static void vfs_connection(ipc_callid_t iid, ipc_call_t *icall) |
51 | static void vfs_connection(ipc_callid_t iid, ipc_call_t *icall) |
| Line 139... | Line 137... | ||
| 139 | int main(int argc, char **argv) |
137 | int main(int argc, char **argv) |
| 140 | { |
138 | { |
| 141 | printf(NAME ": HelenOS VFS server\n"); |
139 | printf(NAME ": HelenOS VFS server\n"); |
| 142 | 140 | ||
| 143 | /* |
141 | /* |
| 144 | * Initialize the list of registered file systems. |
- | |
| 145 | */ |
- | |
| 146 | list_initialize(&fs_head); |
- | |
| 147 | - | ||
| 148 | /* |
- | |
| 149 | * Initialize VFS node hash table. |
142 | * Initialize VFS node hash table. |
| 150 | */ |
143 | */ |
| 151 | if (!vfs_nodes_init()) { |
144 | if (!vfs_nodes_init()) { |
| 152 | printf(NAME ": Failed to initialize VFS node hash table\n"); |
145 | printf(NAME ": Failed to initialize VFS node hash table\n"); |
| 153 | return ENOMEM; |
146 | return ENOMEM; |
| 154 | } |
147 | } |
| 155 | 148 | ||
| 156 | /* |
149 | /* |
| 157 | * Allocate and initialize the Path Lookup Buffer. |
150 | * Allocate and initialize the Path Lookup Buffer. |
| 158 | */ |
151 | */ |
| 159 | list_initialize(&plb_head); |
- | |
| 160 | plb = as_get_mappable_page(PLB_SIZE); |
152 | plb = as_get_mappable_page(PLB_SIZE); |
| 161 | if (!plb) { |
153 | if (!plb) { |
| 162 | printf(NAME ": Cannot allocate a mappable piece of address space\n"); |
154 | printf(NAME ": Cannot allocate a mappable piece of address space\n"); |
| 163 | return ENOMEM; |
155 | return ENOMEM; |
| 164 | } |
156 | } |
| Line 174... | Line 166... | ||
| 174 | * Set a connection handling function/fibril. |
166 | * Set a connection handling function/fibril. |
| 175 | */ |
167 | */ |
| 176 | async_set_client_connection(vfs_connection); |
168 | async_set_client_connection(vfs_connection); |
| 177 | 169 | ||
| 178 | /* |
170 | /* |
| 179 | * Add a fibril for handling pending mounts. |
- | |
| 180 | */ |
- | |
| 181 | fid_t fid = fibril_create(vfs_process_pending_mount, NULL); |
- | |
| 182 | assert(fid); |
- | |
| 183 | fibril_add_ready(fid); |
- | |
| 184 | - | ||
| 185 | /* |
- | |
| 186 | * Register at the naming service. |
171 | * Register at the naming service. |
| 187 | */ |
172 | */ |
| 188 | ipcarg_t phonead; |
173 | ipcarg_t phonead; |
| 189 | ipc_connect_to_me(PHONE_NS, SERVICE_VFS, 0, 0, &phonead); |
174 | ipc_connect_to_me(PHONE_NS, SERVICE_VFS, 0, 0, &phonead); |
| 190 | 175 | ||