Changeset 15f3c3f in mainline for uspace/lib/fs
- Timestamp:
- 2011-06-22T22:00:52Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 86ffa27f
- Parents:
- ef09a7a
- Location:
- uspace/lib/fs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fs/libfs.c
ref09a7a r15f3c3f 153 153 ipc_call_t *request) 154 154 { 155 devmap_handle_t mp_devmap_handle = (devmap_handle_t) IPC_GET_ARG1(*request);155 service_id_t mp_service_id = (service_id_t) IPC_GET_ARG1(*request); 156 156 fs_index_t mp_fs_index = (fs_index_t) IPC_GET_ARG2(*request); 157 157 fs_handle_t mr_fs_handle = (fs_handle_t) IPC_GET_ARG3(*request); 158 devmap_handle_t mr_devmap_handle = (devmap_handle_t) IPC_GET_ARG4(*request);158 service_id_t mr_service_id = (service_id_t) IPC_GET_ARG4(*request); 159 159 160 160 async_sess_t *mountee_sess = async_clone_receive(EXCHANGE_PARALLEL); … … 165 165 166 166 fs_node_t *fn; 167 int res = ops->node_get(&fn, mp_ devmap_handle, mp_fs_index);167 int res = ops->node_get(&fn, mp_service_id, mp_fs_index); 168 168 if ((res != EOK) || (!fn)) { 169 169 async_hangup(mountee_sess); … … 195 195 ipc_call_t answer; 196 196 int rc = async_data_write_forward_1_1(exch, VFS_OUT_MOUNTED, 197 mr_ devmap_handle, &answer);197 mr_service_id, &answer); 198 198 async_exchange_end(exch); 199 199 … … 201 201 fn->mp_data.mp_active = true; 202 202 fn->mp_data.fs_handle = mr_fs_handle; 203 fn->mp_data. devmap_handle = mr_devmap_handle;203 fn->mp_data.service_id = mr_service_id; 204 204 fn->mp_data.sess = mountee_sess; 205 205 } … … 214 214 void libfs_unmount(libfs_ops_t *ops, ipc_callid_t rid, ipc_call_t *request) 215 215 { 216 devmap_handle_t mp_devmap_handle = (devmap_handle_t) IPC_GET_ARG1(*request);216 service_id_t mp_service_id = (service_id_t) IPC_GET_ARG1(*request); 217 217 fs_index_t mp_fs_index = (fs_index_t) IPC_GET_ARG2(*request); 218 218 fs_node_t *fn; 219 219 int res; 220 220 221 res = ops->node_get(&fn, mp_ devmap_handle, mp_fs_index);221 res = ops->node_get(&fn, mp_service_id, mp_fs_index); 222 222 if ((res != EOK) || (!fn)) { 223 223 async_answer_0(rid, combine_rc(res, ENOENT)); … … 238 238 */ 239 239 async_exch_t *exch = async_exchange_begin(fn->mp_data.sess); 240 res = async_req_1_0(exch, VFS_OUT_UNMOUNTED, fn->mp_data. devmap_handle);240 res = async_req_1_0(exch, VFS_OUT_UNMOUNTED, fn->mp_data.service_id); 241 241 async_exchange_end(exch); 242 242 … … 248 248 fn->mp_data.mp_active = false; 249 249 fn->mp_data.fs_handle = 0; 250 fn->mp_data. devmap_handle= 0;250 fn->mp_data.service_id = 0; 251 251 fn->mp_data.sess = NULL; 252 252 … … 278 278 unsigned int last = IPC_GET_ARG2(*request); 279 279 unsigned int next = first; 280 devmap_handle_t devmap_handle= IPC_GET_ARG3(*request);280 service_id_t service_id = IPC_GET_ARG3(*request); 281 281 int lflag = IPC_GET_ARG4(*request); 282 282 fs_index_t index = IPC_GET_ARG5(*request); … … 292 292 fs_node_t *tmp = NULL; 293 293 294 rc = ops->root_get(&cur, devmap_handle);294 rc = ops->root_get(&cur, service_id); 295 295 on_error(rc, goto out_with_answer); 296 296 … … 298 298 async_exch_t *exch = async_exchange_begin(cur->mp_data.sess); 299 299 async_forward_slow(rid, exch, VFS_OUT_LOOKUP, next, last, 300 cur->mp_data. devmap_handle, lflag, index, IPC_FF_ROUTE_FROM_ME);300 cur->mp_data.service_id, lflag, index, IPC_FF_ROUTE_FROM_ME); 301 301 async_exchange_end(exch); 302 302 … … 358 358 async_exch_t *exch = async_exchange_begin(tmp->mp_data.sess); 359 359 async_forward_slow(rid, exch, VFS_OUT_LOOKUP, next, last, 360 tmp->mp_data. devmap_handle, lflag, index,360 tmp->mp_data.service_id, lflag, index, 361 361 IPC_FF_ROUTE_FROM_ME); 362 362 async_exchange_end(exch); … … 387 387 fs_node_t *fn; 388 388 if (lflag & L_CREATE) 389 rc = ops->create(&fn, devmap_handle,389 rc = ops->create(&fn, service_id, 390 390 lflag); 391 391 else 392 rc = ops->node_get(&fn, devmap_handle,392 rc = ops->node_get(&fn, service_id, 393 393 index); 394 394 on_error(rc, goto out_with_answer); … … 405 405 aoff64_t size = ops->size_get(fn); 406 406 async_answer_5(rid, fs_handle, 407 devmap_handle,407 service_id, 408 408 ops->index_get(fn), 409 409 LOWER32(size), … … 473 473 fs_node_t *fn; 474 474 if (lflag & L_CREATE) 475 rc = ops->create(&fn, devmap_handle, lflag);475 rc = ops->create(&fn, service_id, lflag); 476 476 else 477 rc = ops->node_get(&fn, devmap_handle, index);477 rc = ops->node_get(&fn, service_id, index); 478 478 on_error(rc, goto out_with_answer); 479 479 … … 489 489 aoff64_t size = ops->size_get(fn); 490 490 async_answer_5(rid, fs_handle, 491 devmap_handle,491 service_id, 492 492 ops->index_get(fn), 493 493 LOWER32(size), … … 515 515 if (rc == EOK) { 516 516 aoff64_t size = ops->size_get(cur); 517 async_answer_5(rid, fs_handle, devmap_handle,517 async_answer_5(rid, fs_handle, service_id, 518 518 ops->index_get(cur), LOWER32(size), UPPER32(size), 519 519 old_lnkcnt); … … 553 553 if (rc == EOK) { 554 554 aoff64_t size = ops->size_get(cur); 555 async_answer_5(rid, fs_handle, devmap_handle,555 async_answer_5(rid, fs_handle, service_id, 556 556 ops->index_get(cur), LOWER32(size), UPPER32(size), 557 557 ops->lnkcnt_get(cur)); … … 577 577 ipc_call_t *request) 578 578 { 579 devmap_handle_t devmap_handle = (devmap_handle_t) IPC_GET_ARG1(*request);579 service_id_t service_id = (service_id_t) IPC_GET_ARG1(*request); 580 580 fs_index_t index = (fs_index_t) IPC_GET_ARG2(*request); 581 581 582 582 fs_node_t *fn; 583 int rc = ops->node_get(&fn, devmap_handle, index);583 int rc = ops->node_get(&fn, service_id, index); 584 584 on_error(rc, answer_and_return(rid, rc)); 585 585 … … 598 598 599 599 stat.fs_handle = fs_handle; 600 stat. devmap_handle = devmap_handle;600 stat.service_id = service_id; 601 601 stat.index = index; 602 602 stat.lnkcnt = ops->lnkcnt_get(fn); … … 604 604 stat.is_directory = ops->is_directory(fn); 605 605 stat.size = ops->size_get(fn); 606 stat. device = ops->device_get(fn);606 stat.service = ops->device_get(fn); 607 607 608 608 ops->node_put(fn); … … 623 623 ipc_call_t *request) 624 624 { 625 devmap_handle_t devmap_handle= IPC_GET_ARG1(*request);625 service_id_t service_id = IPC_GET_ARG1(*request); 626 626 fs_index_t index = IPC_GET_ARG2(*request); 627 627 628 628 fs_node_t *fn; 629 int rc = ops->node_get(&fn, devmap_handle, index);629 int rc = ops->node_get(&fn, service_id, index); 630 630 on_error(rc, answer_and_return(rid, rc)); 631 631 -
uspace/lib/fs/libfs.h
ref09a7a r15f3c3f 40 40 #include <stdint.h> 41 41 #include <async.h> 42 #include < devmap.h>42 #include <loc.h> 43 43 44 44 typedef struct { … … 46 46 async_sess_t *sess; 47 47 fs_handle_t fs_handle; 48 devmap_handle_t devmap_handle;48 service_id_t service_id; 49 49 } mp_data_t; 50 50 … … 60 60 * argument holds the output argument. 61 61 */ 62 int (* root_get)(fs_node_t **, devmap_handle_t);62 int (* root_get)(fs_node_t **, service_id_t); 63 63 int (* match)(fs_node_t **, fs_node_t *, const char *); 64 int (* node_get)(fs_node_t **, devmap_handle_t, fs_index_t);64 int (* node_get)(fs_node_t **, service_id_t, fs_index_t); 65 65 int (* node_open)(fs_node_t *); 66 66 int (* node_put)(fs_node_t *); 67 int (* create)(fs_node_t **, devmap_handle_t, int);67 int (* create)(fs_node_t **, service_id_t, int); 68 68 int (* destroy)(fs_node_t *); 69 69 int (* link)(fs_node_t *, fs_node_t *, const char *); … … 80 80 bool (* is_directory)(fs_node_t *); 81 81 bool (* is_file)(fs_node_t *); 82 devmap_handle_t (* device_get)(fs_node_t *);82 service_id_t (* device_get)(fs_node_t *); 83 83 } libfs_ops_t; 84 84
Note:
See TracChangeset
for help on using the changeset viewer.