Changeset cf2af94 in mainline for uspace/srv/fs
- Timestamp:
- 2011-02-09T11:46:47Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/fix-logger-deadlock, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- cb15135a
- Parents:
- a49c4002 (diff), 0b37882 (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. - Location:
- uspace/srv/fs
- Files:
-
- 15 edited
-
devfs/devfs.c (modified) (6 diffs)
-
devfs/devfs_ops.c (modified) (31 diffs)
-
devfs/devfs_ops.h (modified) (1 diff)
-
ext2/ext2.c (modified) (5 diffs)
-
ext2/ext2.h (modified) (1 diff)
-
ext2/ext2_ops.c (modified) (8 diffs)
-
fat/fat.c (modified) (6 diffs)
-
fat/fat.h (modified) (1 diff)
-
fat/fat_ops.c (modified) (39 diffs)
-
pipefs/pipefs.c (modified) (5 diffs)
-
pipefs/pipefs.h (modified) (1 diff)
-
pipefs/pipefs_ops.c (modified) (23 diffs)
-
tmpfs/tmpfs.c (modified) (6 diffs)
-
tmpfs/tmpfs.h (modified) (1 diff)
-
tmpfs/tmpfs_ops.c (modified) (22 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/devfs/devfs.c
ra49c4002 rcf2af94 40 40 41 41 #include <stdio.h> 42 #include <ipc/ipc.h>43 42 #include <ipc/services.h> 43 #include <ipc/ns.h> 44 44 #include <async.h> 45 45 #include <errno.h> … … 53 53 static vfs_info_t devfs_vfs_info = { 54 54 .name = NAME, 55 .concurrent_read_write = false, 56 .write_retains_size = false, 55 57 }; 56 58 … … 60 62 { 61 63 if (iid) 62 ipc_answer_0(iid, EOK);64 async_answer_0(iid, EOK); 63 65 64 66 while (true) { … … 66 68 ipc_callid_t callid = async_get_call(&call); 67 69 68 switch (IPC_GET_ METHOD(call)) {70 switch (IPC_GET_IMETHOD(call)) { 69 71 case IPC_M_PHONE_HUNGUP: 70 72 return; … … 109 111 break; 110 112 default: 111 ipc_answer_0(callid, ENOTSUP);113 async_answer_0(callid, ENOTSUP); 112 114 break; 113 115 } … … 124 126 } 125 127 126 int vfs_phone = ipc_connect_me_to_blocking(PHONE_NS,SERVICE_VFS, 0, 0);128 int vfs_phone = service_connect_blocking(SERVICE_VFS, 0, 0); 127 129 if (vfs_phone < EOK) { 128 130 printf(NAME ": Unable to connect to VFS\n"); -
uspace/srv/fs/devfs/devfs_ops.c
ra49c4002 rcf2af94 36 36 */ 37 37 38 #include <ipc/ipc.h>39 38 #include <macros.h> 40 39 #include <bool.h> … … 60 59 typedef struct { 61 60 devmap_handle_t handle; 62 int phone; 61 int phone; /**< When < 0, the structure is incomplete. */ 63 62 size_t refcount; 64 63 link_t link; 64 fibril_condvar_t cv; /**< Broadcast when completed. */ 65 65 } device_t; 66 66 … … 130 130 { 131 131 devfs_node_t *node = (devfs_node_t *) pfn->data; 132 int ret; 132 133 133 134 if (node->handle == 0) { … … 145 146 146 147 if (str_cmp(devs[pos].name, component) == 0) { 148 ret = devfs_node_get_internal(rfn, DEV_HANDLE_NAMESPACE, devs[pos].handle); 147 149 free(devs); 148 return devfs_node_get_internal(rfn, DEV_HANDLE_NAMESPACE, devs[pos].handle);150 return ret; 149 151 } 150 152 } … … 162 164 for (pos = 0; pos < count; pos++) { 163 165 if (str_cmp(devs[pos].name, component) == 0) { 166 ret = devfs_node_get_internal(rfn, DEV_HANDLE_DEVICE, devs[pos].handle); 164 167 free(devs); 165 return devfs_node_get_internal(rfn, DEV_HANDLE_DEVICE, devs[pos].handle);168 return ret; 166 169 } 167 170 } … … 184 187 for (pos = 0; pos < count; pos++) { 185 188 if (str_cmp(devs[pos].name, component) == 0) { 189 ret = devfs_node_get_internal(rfn, DEV_HANDLE_DEVICE, devs[pos].handle); 186 190 free(devs); 187 return devfs_node_get_internal(rfn, DEV_HANDLE_DEVICE, devs[pos].handle);191 return ret; 188 192 } 189 193 } … … 227 231 [DEVICES_KEY_HANDLE] = (unsigned long) node->handle 228 232 }; 229 233 link_t *lnk; 234 230 235 fibril_mutex_lock(&devices_mutex); 231 link_t *lnk = hash_table_find(&devices, key); 236 restart: 237 lnk = hash_table_find(&devices, key); 232 238 if (lnk == NULL) { 233 239 device_t *dev = (device_t *) malloc(sizeof(device_t)); … … 237 243 } 238 244 245 dev->handle = node->handle; 246 dev->phone = -1; /* mark as incomplete */ 247 dev->refcount = 1; 248 fibril_condvar_initialize(&dev->cv); 249 250 /* 251 * Insert the incomplete device structure so that other 252 * fibrils will not race with us when we drop the mutex 253 * below. 254 */ 255 hash_table_insert(&devices, key, &dev->link); 256 257 /* 258 * Drop the mutex to allow recursive devfs requests. 259 */ 260 fibril_mutex_unlock(&devices_mutex); 261 239 262 int phone = devmap_device_connect(node->handle, 0); 263 264 fibril_mutex_lock(&devices_mutex); 265 266 /* 267 * Notify possible waiters about this device structure 268 * being completed (or destroyed). 269 */ 270 fibril_condvar_broadcast(&dev->cv); 271 240 272 if (phone < 0) { 273 /* 274 * Connecting failed, need to remove the 275 * entry and free the device structure. 276 */ 277 hash_table_remove(&devices, key, DEVICES_KEYS); 241 278 fibril_mutex_unlock(&devices_mutex); 279 242 280 free(dev); 243 281 return ENOENT; 244 282 } 245 283 246 dev->handle = node->handle;284 /* Set the correct phone. */ 247 285 dev->phone = phone; 248 dev->refcount = 1;249 250 hash_table_insert(&devices, key, &dev->link);251 286 } else { 252 287 device_t *dev = hash_table_get_instance(lnk, device_t, link); 288 289 if (dev->phone < 0) { 290 /* 291 * Wait until the device structure is completed 292 * and start from the beginning as the device 293 * structure might have entirely disappeared 294 * while we were not holding the mutex in 295 * fibril_condvar_wait(). 296 */ 297 fibril_condvar_wait(&dev->cv, &devices_mutex); 298 goto restart; 299 } 300 253 301 dev->refcount++; 254 302 } … … 409 457 return false; 410 458 411 if (devmap_get_phone(DEVMAP_CLIENT, IPC_FLAG_BLOCKING) < 0)412 return false;413 414 459 return true; 415 460 } … … 420 465 421 466 /* Accept the mount options */ 422 ipcarg_t retval = async_data_write_accept((void **) &opts, true, 0, 0,467 sysarg_t retval = async_data_write_accept((void **) &opts, true, 0, 0, 423 468 0, NULL); 424 469 if (retval != EOK) { 425 ipc_answer_0(rid, retval);470 async_answer_0(rid, retval); 426 471 return; 427 472 } 428 473 429 474 free(opts); 430 ipc_answer_3(rid, EOK, 0, 0, 0);475 async_answer_3(rid, EOK, 0, 0, 0); 431 476 } 432 477 … … 438 483 void devfs_unmounted(ipc_callid_t rid, ipc_call_t *request) 439 484 { 440 ipc_answer_0(rid, ENOTSUP);485 async_answer_0(rid, ENOTSUP); 441 486 } 442 487 … … 471 516 size_t size; 472 517 if (!async_data_read_receive(&callid, &size)) { 473 ipc_answer_0(callid, EINVAL);474 ipc_answer_0(rid, EINVAL);518 async_answer_0(callid, EINVAL); 519 async_answer_0(rid, EINVAL); 475 520 return; 476 521 } … … 493 538 async_data_read_finalize(callid, desc[pos].name, str_size(desc[pos].name) + 1); 494 539 free(desc); 495 ipc_answer_1(rid, EOK, 1);540 async_answer_1(rid, EOK, 1); 496 541 return; 497 542 } … … 508 553 async_data_read_finalize(callid, desc[pos].name, str_size(desc[pos].name) + 1); 509 554 free(desc); 510 ipc_answer_1(rid, EOK, 1);555 async_answer_1(rid, EOK, 1); 511 556 return; 512 557 } … … 515 560 } 516 561 517 ipc_answer_0(callid, ENOENT);518 ipc_answer_1(rid, ENOENT, 0);562 async_answer_0(callid, ENOENT); 563 async_answer_1(rid, ENOENT, 0); 519 564 return; 520 565 } … … 527 572 size_t size; 528 573 if (!async_data_read_receive(&callid, &size)) { 529 ipc_answer_0(callid, EINVAL);530 ipc_answer_0(rid, EINVAL);574 async_answer_0(callid, EINVAL); 575 async_answer_0(rid, EINVAL); 531 576 return; 532 577 } … … 538 583 async_data_read_finalize(callid, desc[pos].name, str_size(desc[pos].name) + 1); 539 584 free(desc); 540 ipc_answer_1(rid, EOK, 1);585 async_answer_1(rid, EOK, 1); 541 586 return; 542 587 } 543 588 544 589 free(desc); 545 ipc_answer_0(callid, ENOENT);546 ipc_answer_1(rid, ENOENT, 0);590 async_answer_0(callid, ENOENT); 591 async_answer_1(rid, ENOENT, 0); 547 592 return; 548 593 } … … 559 604 if (lnk == NULL) { 560 605 fibril_mutex_unlock(&devices_mutex); 561 ipc_answer_0(rid, ENOENT);606 async_answer_0(rid, ENOENT); 562 607 return; 563 608 } 564 609 565 610 device_t *dev = hash_table_get_instance(lnk, device_t, link); 611 assert(dev->phone >= 0); 566 612 567 613 ipc_callid_t callid; 568 614 if (!async_data_read_receive(&callid, NULL)) { 569 615 fibril_mutex_unlock(&devices_mutex); 570 ipc_answer_0(callid, EINVAL);571 ipc_answer_0(rid, EINVAL);616 async_answer_0(callid, EINVAL); 617 async_answer_0(rid, EINVAL); 572 618 return; 573 619 } … … 575 621 /* Make a request at the driver */ 576 622 ipc_call_t answer; 577 aid_t msg = async_send_3(dev->phone, IPC_GET_ METHOD(*request),623 aid_t msg = async_send_3(dev->phone, IPC_GET_IMETHOD(*request), 578 624 IPC_GET_ARG1(*request), IPC_GET_ARG2(*request), 579 625 IPC_GET_ARG3(*request), &answer); 580 626 581 627 /* Forward the IPC_M_DATA_READ request to the driver */ 582 ipc_forward_fast(callid, dev->phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);628 async_forward_fast(callid, dev->phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME); 583 629 fibril_mutex_unlock(&devices_mutex); 584 630 585 631 /* Wait for reply from the driver. */ 586 ipcarg_t rc;632 sysarg_t rc; 587 633 async_wait_for(msg, &rc); 588 634 size_t bytes = IPC_GET_ARG1(answer); 589 635 590 636 /* Driver reply is the final result of the whole operation */ 591 ipc_answer_1(rid, rc, bytes);592 return; 593 } 594 595 ipc_answer_0(rid, ENOENT);637 async_answer_1(rid, rc, bytes); 638 return; 639 } 640 641 async_answer_0(rid, ENOENT); 596 642 } 597 643 … … 600 646 fs_index_t index = (fs_index_t) IPC_GET_ARG2(*request); 601 647 if (index == 0) { 602 ipc_answer_0(rid, ENOTSUP);648 async_answer_0(rid, ENOTSUP); 603 649 return; 604 650 } … … 608 654 if (type == DEV_HANDLE_NAMESPACE) { 609 655 /* Namespace directory */ 610 ipc_answer_0(rid, ENOTSUP);656 async_answer_0(rid, ENOTSUP); 611 657 return; 612 658 } … … 622 668 if (lnk == NULL) { 623 669 fibril_mutex_unlock(&devices_mutex); 624 ipc_answer_0(rid, ENOENT);670 async_answer_0(rid, ENOENT); 625 671 return; 626 672 } 627 673 628 674 device_t *dev = hash_table_get_instance(lnk, device_t, link); 675 assert(dev->phone >= 0); 629 676 630 677 ipc_callid_t callid; 631 678 if (!async_data_write_receive(&callid, NULL)) { 632 679 fibril_mutex_unlock(&devices_mutex); 633 ipc_answer_0(callid, EINVAL);634 ipc_answer_0(rid, EINVAL);680 async_answer_0(callid, EINVAL); 681 async_answer_0(rid, EINVAL); 635 682 return; 636 683 } … … 638 685 /* Make a request at the driver */ 639 686 ipc_call_t answer; 640 aid_t msg = async_send_3(dev->phone, IPC_GET_ METHOD(*request),687 aid_t msg = async_send_3(dev->phone, IPC_GET_IMETHOD(*request), 641 688 IPC_GET_ARG1(*request), IPC_GET_ARG2(*request), 642 689 IPC_GET_ARG3(*request), &answer); 643 690 644 691 /* Forward the IPC_M_DATA_WRITE request to the driver */ 645 ipc_forward_fast(callid, dev->phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME);692 async_forward_fast(callid, dev->phone, 0, 0, 0, IPC_FF_ROUTE_FROM_ME); 646 693 647 694 fibril_mutex_unlock(&devices_mutex); 648 695 649 696 /* Wait for reply from the driver. */ 650 ipcarg_t rc;697 sysarg_t rc; 651 698 async_wait_for(msg, &rc); 652 699 size_t bytes = IPC_GET_ARG1(answer); 653 700 654 701 /* Driver reply is the final result of the whole operation */ 655 ipc_answer_1(rid, rc, bytes);656 return; 657 } 658 659 ipc_answer_0(rid, ENOENT);702 async_answer_1(rid, rc, bytes); 703 return; 704 } 705 706 async_answer_0(rid, ENOENT); 660 707 } 661 708 662 709 void devfs_truncate(ipc_callid_t rid, ipc_call_t *request) 663 710 { 664 ipc_answer_0(rid, ENOTSUP);711 async_answer_0(rid, ENOTSUP); 665 712 } 666 713 … … 670 717 671 718 if (index == 0) { 672 ipc_answer_0(rid, EOK);719 async_answer_0(rid, EOK); 673 720 return; 674 721 } … … 678 725 if (type == DEV_HANDLE_NAMESPACE) { 679 726 /* Namespace directory */ 680 ipc_answer_0(rid, EOK);727 async_answer_0(rid, EOK); 681 728 return; 682 729 } … … 691 738 if (lnk == NULL) { 692 739 fibril_mutex_unlock(&devices_mutex); 693 ipc_answer_0(rid, ENOENT);740 async_answer_0(rid, ENOENT); 694 741 return; 695 742 } 696 743 697 744 device_t *dev = hash_table_get_instance(lnk, device_t, link); 745 assert(dev->phone >= 0); 698 746 dev->refcount--; 699 747 700 748 if (dev->refcount == 0) { 701 ipc_hangup(dev->phone);749 async_hangup(dev->phone); 702 750 hash_table_remove(&devices, key, DEVICES_KEYS); 703 751 } … … 705 753 fibril_mutex_unlock(&devices_mutex); 706 754 707 ipc_answer_0(rid, EOK);708 return; 709 } 710 711 ipc_answer_0(rid, ENOENT);755 async_answer_0(rid, EOK); 756 return; 757 } 758 759 async_answer_0(rid, ENOENT); 712 760 } 713 761 … … 717 765 718 766 if (index == 0) { 719 ipc_answer_0(rid, EOK);767 async_answer_0(rid, EOK); 720 768 return; 721 769 } … … 725 773 if (type == DEV_HANDLE_NAMESPACE) { 726 774 /* Namespace directory */ 727 ipc_answer_0(rid, EOK);775 async_answer_0(rid, EOK); 728 776 return; 729 777 } … … 738 786 if (lnk == NULL) { 739 787 fibril_mutex_unlock(&devices_mutex); 740 ipc_answer_0(rid, ENOENT);788 async_answer_0(rid, ENOENT); 741 789 return; 742 790 } 743 791 744 792 device_t *dev = hash_table_get_instance(lnk, device_t, link); 793 assert(dev->phone >= 0); 745 794 746 795 /* Make a request at the driver */ 747 796 ipc_call_t answer; 748 aid_t msg = async_send_2(dev->phone, IPC_GET_ METHOD(*request),797 aid_t msg = async_send_2(dev->phone, IPC_GET_IMETHOD(*request), 749 798 IPC_GET_ARG1(*request), IPC_GET_ARG2(*request), &answer); 750 799 … … 752 801 753 802 /* Wait for reply from the driver */ 754 ipcarg_t rc;803 sysarg_t rc; 755 804 async_wait_for(msg, &rc); 756 805 757 806 /* Driver reply is the final result of the whole operation */ 758 ipc_answer_0(rid, rc);759 return; 760 } 761 762 ipc_answer_0(rid, ENOENT);807 async_answer_0(rid, rc); 808 return; 809 } 810 811 async_answer_0(rid, ENOENT); 763 812 } 764 813 765 814 void devfs_destroy(ipc_callid_t rid, ipc_call_t *request) 766 815 { 767 ipc_answer_0(rid, ENOTSUP);816 async_answer_0(rid, ENOTSUP); 768 817 } 769 818 -
uspace/srv/fs/devfs/devfs_ops.h
ra49c4002 rcf2af94 34 34 #define DEVFS_DEVFS_OPS_H_ 35 35 36 #include <ipc/ ipc.h>36 #include <ipc/common.h> 37 37 #include <bool.h> 38 38 -
uspace/srv/fs/ext2/ext2.c
ra49c4002 rcf2af94 38 38 39 39 #include "ext2.h" 40 #include <ipc/ipc.h>41 40 #include <ipc/services.h> 41 #include <ipc/ns.h> 42 42 #include <async.h> 43 43 #include <errno.h> … … 82 82 * created by IPC_M_CONNECT_TO_ME. 83 83 */ 84 ipc_answer_0(iid, EOK);84 async_answer_0(iid, EOK); 85 85 } 86 86 … … 91 91 92 92 callid = async_get_call(&call); 93 switch (IPC_GET_ METHOD(call)) {93 switch (IPC_GET_IMETHOD(call)) { 94 94 case IPC_M_PHONE_HUNGUP: 95 95 return; … … 134 134 break; 135 135 default: 136 ipc_answer_0(callid, ENOTSUP);136 async_answer_0(callid, ENOTSUP); 137 137 break; 138 138 } … … 147 147 printf(NAME ": HelenOS EXT2 file system server\n"); 148 148 149 vfs_phone = ipc_connect_me_to_blocking(PHONE_NS,SERVICE_VFS, 0, 0);149 vfs_phone = service_connect_blocking(SERVICE_VFS, 0, 0); 150 150 if (vfs_phone < EOK) { 151 151 printf(NAME ": failed to connect to VFS\n"); -
uspace/srv/fs/ext2/ext2.h
ra49c4002 rcf2af94 35 35 36 36 #include <libext2.h> 37 #include <ipc/ipc.h>38 37 #include <fibril_synch.h> 39 38 #include <libfs.h> -
uspace/srv/fs/ext2/ext2_ops.c
ra49c4002 rcf2af94 41 41 #include <libblock.h> 42 42 #include <libext2.h> 43 #include <ipc/ipc.h>44 43 #include <ipc/services.h> 45 44 #include <ipc/devmap.h> … … 219 218 // devmap_handle_t devmap_handle = (devmap_handle_t) IPC_GET_ARG1(*request); 220 219 // TODO 221 ipc_answer_0(rid, ENOTSUP);220 async_answer_0(rid, ENOTSUP); 222 221 } 223 222 … … 231 230 // devmap_handle_t devmap_handle = (devmap_handle_t) IPC_GET_ARG1(*request); 232 231 // TODO 233 ipc_answer_0(rid, ENOTSUP);232 async_answer_0(rid, ENOTSUP); 234 233 } 235 234 … … 252 251 253 252 // TODO 254 ipc_answer_0(rid, ENOTSUP);253 async_answer_0(rid, ENOTSUP); 255 254 } 256 255 … … 263 262 264 263 // TODO 265 ipc_answer_0(rid, ENOTSUP);264 async_answer_0(rid, ENOTSUP); 266 265 } 267 266 … … 274 273 275 274 // TODO 276 ipc_answer_0(rid, ENOTSUP);275 async_answer_0(rid, ENOTSUP); 277 276 } 278 277 279 278 void ext2_close(ipc_callid_t rid, ipc_call_t *request) 280 279 { 281 ipc_answer_0(rid, EOK);280 async_answer_0(rid, EOK); 282 281 } 283 282 … … 288 287 289 288 // TODO 290 ipc_answer_0(rid, ENOTSUP);289 async_answer_0(rid, ENOTSUP); 291 290 } 292 291 … … 307 306 308 307 // TODO 309 ipc_answer_0(rid, ENOTSUP);308 async_answer_0(rid, ENOTSUP); 310 309 } 311 310 -
uspace/srv/fs/fat/fat.c
ra49c4002 rcf2af94 38 38 39 39 #include "fat.h" 40 #include <ipc/ipc.h>41 40 #include <ipc/services.h> 41 #include <ipc/ns.h> 42 42 #include <async.h> 43 43 #include <errno.h> … … 52 52 vfs_info_t fat_vfs_info = { 53 53 .name = NAME, 54 .concurrent_read_write = false, 55 .write_retains_size = false, 54 56 }; 55 57 … … 82 84 * created by IPC_M_CONNECT_TO_ME. 83 85 */ 84 ipc_answer_0(iid, EOK);86 async_answer_0(iid, EOK); 85 87 } 86 88 … … 91 93 92 94 callid = async_get_call(&call); 93 switch (IPC_GET_ METHOD(call)) {95 switch (IPC_GET_IMETHOD(call)) { 94 96 case IPC_M_PHONE_HUNGUP: 95 97 return; … … 134 136 break; 135 137 default: 136 ipc_answer_0(callid, ENOTSUP);138 async_answer_0(callid, ENOTSUP); 137 139 break; 138 140 } … … 151 153 goto err; 152 154 153 vfs_phone = ipc_connect_me_to_blocking(PHONE_NS,SERVICE_VFS, 0, 0);155 vfs_phone = service_connect_blocking(SERVICE_VFS, 0, 0); 154 156 if (vfs_phone < EOK) { 155 157 printf(NAME ": failed to connect to VFS\n"); -
uspace/srv/fs/fat/fat.h
ra49c4002 rcf2af94 35 35 36 36 #include "fat_fat.h" 37 #include <ipc/ipc.h>38 37 #include <fibril_synch.h> 39 38 #include <libfs.h> -
uspace/srv/fs/fat/fat_ops.c
ra49c4002 rcf2af94 42 42 #include <libfs.h> 43 43 #include <libblock.h> 44 #include <ipc/ipc.h>45 44 #include <ipc/services.h> 46 45 #include <ipc/devmap.h> … … 955 954 956 955 if (rc != EOK) { 957 ipc_answer_0(rid, rc);956 async_answer_0(rid, rc); 958 957 return; 959 958 } … … 970 969 rc = block_init(devmap_handle, BS_SIZE); 971 970 if (rc != EOK) { 972 ipc_answer_0(rid, rc);971 async_answer_0(rid, rc); 973 972 return; 974 973 } … … 978 977 if (rc != EOK) { 979 978 block_fini(devmap_handle); 980 ipc_answer_0(rid, rc);979 async_answer_0(rid, rc); 981 980 return; 982 981 } … … 987 986 if (BPS(bs) != BS_SIZE) { 988 987 block_fini(devmap_handle); 989 ipc_answer_0(rid, ENOTSUP);988 async_answer_0(rid, ENOTSUP); 990 989 return; 991 990 } … … 995 994 if (rc != EOK) { 996 995 block_fini(devmap_handle); 997 ipc_answer_0(rid, rc);996 async_answer_0(rid, rc); 998 997 return; 999 998 } … … 1004 1003 (void) block_cache_fini(devmap_handle); 1005 1004 block_fini(devmap_handle); 1006 ipc_answer_0(rid, rc);1005 async_answer_0(rid, rc); 1007 1006 return; 1008 1007 } … … 1012 1011 (void) block_cache_fini(devmap_handle); 1013 1012 block_fini(devmap_handle); 1014 ipc_answer_0(rid, rc);1013 async_answer_0(rid, rc); 1015 1014 return; 1016 1015 } … … 1022 1021 block_fini(devmap_handle); 1023 1022 fat_idx_fini_by_devmap_handle(devmap_handle); 1024 ipc_answer_0(rid, ENOMEM);1023 async_answer_0(rid, ENOMEM); 1025 1024 return; 1026 1025 } … … 1032 1031 block_fini(devmap_handle); 1033 1032 fat_idx_fini_by_devmap_handle(devmap_handle); 1034 ipc_answer_0(rid, ENOMEM);1033 async_answer_0(rid, ENOMEM); 1035 1034 return; 1036 1035 } … … 1044 1043 block_fini(devmap_handle); 1045 1044 fat_idx_fini_by_devmap_handle(devmap_handle); 1046 ipc_answer_0(rid, ENOMEM);1045 async_answer_0(rid, ENOMEM); 1047 1046 return; 1048 1047 } … … 1062 1061 fibril_mutex_unlock(&ridxp->lock); 1063 1062 1064 ipc_answer_3(rid, EOK, ridxp->index, rootp->size, rootp->lnkcnt);1063 async_answer_3(rid, EOK, ridxp->index, rootp->size, rootp->lnkcnt); 1065 1064 } 1066 1065 … … 1079 1078 rc = fat_root_get(&fn, devmap_handle); 1080 1079 if (rc != EOK) { 1081 ipc_answer_0(rid, rc);1080 async_answer_0(rid, rc); 1082 1081 return; 1083 1082 } … … 1090 1089 if (nodep->refcnt != 2) { 1091 1090 (void) fat_node_put(fn); 1092 ipc_answer_0(rid, EBUSY);1091 async_answer_0(rid, EBUSY); 1093 1092 return; 1094 1093 } … … 1110 1109 block_fini(devmap_handle); 1111 1110 1112 ipc_answer_0(rid, EOK);1111 async_answer_0(rid, EOK); 1113 1112 } 1114 1113 … … 1138 1137 rc = fat_node_get(&fn, devmap_handle, index); 1139 1138 if (rc != EOK) { 1140 ipc_answer_0(rid, rc);1139 async_answer_0(rid, rc); 1141 1140 return; 1142 1141 } 1143 1142 if (!fn) { 1144 ipc_answer_0(rid, ENOENT);1143 async_answer_0(rid, ENOENT); 1145 1144 return; 1146 1145 } … … 1151 1150 if (!async_data_read_receive(&callid, &len)) { 1152 1151 fat_node_put(fn); 1153 ipc_answer_0(callid, EINVAL);1154 ipc_answer_0(rid, EINVAL);1152 async_answer_0(callid, EINVAL); 1153 async_answer_0(rid, EINVAL); 1155 1154 return; 1156 1155 } … … 1175 1174 if (rc != EOK) { 1176 1175 fat_node_put(fn); 1177 ipc_answer_0(callid, rc);1178 ipc_answer_0(rid, rc);1176 async_answer_0(callid, rc); 1177 async_answer_0(rid, rc); 1179 1178 return; 1180 1179 } … … 1184 1183 if (rc != EOK) { 1185 1184 fat_node_put(fn); 1186 ipc_answer_0(rid, rc);1185 async_answer_0(rid, rc); 1187 1186 return; 1188 1187 } … … 1241 1240 miss: 1242 1241 rc = fat_node_put(fn); 1243 ipc_answer_0(callid, rc != EOK ? rc : ENOENT);1244 ipc_answer_1(rid, rc != EOK ? rc : ENOENT, 0);1242 async_answer_0(callid, rc != EOK ? rc : ENOENT); 1243 async_answer_1(rid, rc != EOK ? rc : ENOENT, 0); 1245 1244 return; 1246 1245 1247 1246 err: 1248 1247 (void) fat_node_put(fn); 1249 ipc_answer_0(callid, rc);1250 ipc_answer_0(rid, rc);1248 async_answer_0(callid, rc); 1249 async_answer_0(rid, rc); 1251 1250 return; 1252 1251 … … 1257 1256 1258 1257 rc = fat_node_put(fn); 1259 ipc_answer_1(rid, rc, (ipcarg_t)bytes);1258 async_answer_1(rid, rc, (sysarg_t)bytes); 1260 1259 } 1261 1260 … … 1277 1276 rc = fat_node_get(&fn, devmap_handle, index); 1278 1277 if (rc != EOK) { 1279 ipc_answer_0(rid, rc);1278 async_answer_0(rid, rc); 1280 1279 return; 1281 1280 } 1282 1281 if (!fn) { 1283 ipc_answer_0(rid, ENOENT);1282 async_answer_0(rid, ENOENT); 1284 1283 return; 1285 1284 } … … 1290 1289 if (!async_data_write_receive(&callid, &len)) { 1291 1290 (void) fat_node_put(fn); 1292 ipc_answer_0(callid, EINVAL);1293 ipc_answer_0(rid, EINVAL);1291 async_answer_0(callid, EINVAL); 1292 async_answer_0(rid, EINVAL); 1294 1293 return; 1295 1294 } … … 1319 1318 if (rc != EOK) { 1320 1319 (void) fat_node_put(fn); 1321 ipc_answer_0(callid, rc);1322 ipc_answer_0(rid, rc);1320 async_answer_0(callid, rc); 1321 async_answer_0(rid, rc); 1323 1322 return; 1324 1323 } … … 1326 1325 if (rc != EOK) { 1327 1326 (void) fat_node_put(fn); 1328 ipc_answer_0(callid, rc);1329 ipc_answer_0(rid, rc);1327 async_answer_0(callid, rc); 1328 async_answer_0(rid, rc); 1330 1329 return; 1331 1330 } … … 1336 1335 if (rc != EOK) { 1337 1336 (void) fat_node_put(fn); 1338 ipc_answer_0(rid, rc);1337 async_answer_0(rid, rc); 1339 1338 return; 1340 1339 } … … 1345 1344 size = nodep->size; 1346 1345 rc = fat_node_put(fn); 1347 ipc_answer_2(rid, rc, bytes, nodep->size);1346 async_answer_2(rid, rc, bytes, nodep->size); 1348 1347 return; 1349 1348 } else { … … 1361 1360 /* could not allocate a chain of nclsts clusters */ 1362 1361 (void) fat_node_put(fn); 1363 ipc_answer_0(callid, rc);1364 ipc_answer_0(rid, rc);1362 async_answer_0(callid, rc); 1363 async_answer_0(rid, rc); 1365 1364 return; 1366 1365 } … … 1370 1369 (void) fat_free_clusters(bs, devmap_handle, mcl); 1371 1370 (void) fat_node_put(fn); 1372 ipc_answer_0(callid, rc);1373 ipc_answer_0(rid, rc);1371 async_answer_0(callid, rc); 1372 async_answer_0(rid, rc); 1374 1373 return; 1375 1374 } … … 1379 1378 (void) fat_free_clusters(bs, devmap_handle, mcl); 1380 1379 (void) fat_node_put(fn); 1381 ipc_answer_0(callid, rc);1382 ipc_answer_0(rid, rc);1380 async_answer_0(callid, rc); 1381 async_answer_0(rid, rc); 1383 1382 return; 1384 1383 } … … 1390 1389 (void) fat_free_clusters(bs, devmap_handle, mcl); 1391 1390 (void) fat_node_put(fn); 1392 ipc_answer_0(rid, rc);1391 async_answer_0(rid, rc); 1393 1392 return; 1394 1393 } … … 1401 1400 (void) fat_free_clusters(bs, devmap_handle, mcl); 1402 1401 (void) fat_node_put(fn); 1403 ipc_answer_0(rid, rc);1402 async_answer_0(rid, rc); 1404 1403 return; 1405 1404 } … … 1407 1406 nodep->dirty = true; /* need to sync node */ 1408 1407 rc = fat_node_put(fn); 1409 ipc_answer_2(rid, rc, bytes, size);1408 async_answer_2(rid, rc, bytes, size); 1410 1409 return; 1411 1410 } … … 1425 1424 rc = fat_node_get(&fn, devmap_handle, index); 1426 1425 if (rc != EOK) { 1427 ipc_answer_0(rid, rc);1426 async_answer_0(rid, rc); 1428 1427 return; 1429 1428 } 1430 1429 if (!fn) { 1431 ipc_answer_0(rid, ENOENT);1430 async_answer_0(rid, ENOENT); 1432 1431 return; 1433 1432 } … … 1475 1474 out: 1476 1475 fat_node_put(fn); 1477 ipc_answer_0(rid, rc);1476 async_answer_0(rid, rc); 1478 1477 return; 1479 1478 } … … 1481 1480 void fat_close(ipc_callid_t rid, ipc_call_t *request) 1482 1481 { 1483 ipc_answer_0(rid, EOK);1482 async_answer_0(rid, EOK); 1484 1483 } 1485 1484 … … 1493 1492 rc = fat_node_get(&fn, devmap_handle, index); 1494 1493 if (rc != EOK) { 1495 ipc_answer_0(rid, rc);1494 async_answer_0(rid, rc); 1496 1495 return; 1497 1496 } 1498 1497 if (!fn) { 1499 ipc_answer_0(rid, ENOENT);1498 async_answer_0(rid, ENOENT); 1500 1499 return; 1501 1500 } 1502 1501 1503 1502 rc = fat_destroy_node(fn); 1504 ipc_answer_0(rid, rc);1503 async_answer_0(rid, rc); 1505 1504 } 1506 1505 … … 1523 1522 int rc = fat_node_get(&fn, devmap_handle, index); 1524 1523 if (rc != EOK) { 1525 ipc_answer_0(rid, rc);1524 async_answer_0(rid, rc); 1526 1525 return; 1527 1526 } 1528 1527 if (!fn) { 1529 ipc_answer_0(rid, ENOENT);1528 async_answer_0(rid, ENOENT); 1530 1529 return; 1531 1530 } … … 1537 1536 1538 1537 fat_node_put(fn); 1539 ipc_answer_0(rid, rc);1538 async_answer_0(rid, rc); 1540 1539 } 1541 1540 -
uspace/srv/fs/pipefs/pipefs.c
ra49c4002 rcf2af94 42 42 43 43 #include "pipefs.h" 44 #include <ipc/ipc.h>45 44 #include <ipc/services.h> 45 #include <ipc/ns.h> 46 46 #include <async.h> 47 47 #include <errno.h> … … 88 88 * created by IPC_M_CONNECT_TO_ME. 89 89 */ 90 ipc_answer_0(iid, EOK);90 async_answer_0(iid, EOK); 91 91 } 92 92 … … 97 97 98 98 callid = async_get_call(&call); 99 switch (IPC_GET_ METHOD(call)) {99 switch (IPC_GET_IMETHOD(call)) { 100 100 case IPC_M_PHONE_HUNGUP: 101 101 return; … … 140 140 break; 141 141 default: 142 ipc_answer_0(callid, ENOTSUP);142 async_answer_0(callid, ENOTSUP); 143 143 break; 144 144 } … … 155 155 } 156 156 157 int vfs_phone = ipc_connect_me_to_blocking(PHONE_NS,SERVICE_VFS, 0, 0);157 int vfs_phone = service_connect_blocking(SERVICE_VFS, 0, 0); 158 158 if (vfs_phone < EOK) { 159 159 printf(NAME ": Unable to connect to VFS\n"); -
uspace/srv/fs/pipefs/pipefs.h
ra49c4002 rcf2af94 34 34 #define PIPEFS_PIPEFS_H_ 35 35 36 #include <ipc/ipc.h>37 36 #include <libfs.h> 38 37 #include <atomic.h> -
uspace/srv/fs/pipefs/pipefs_ops.c
ra49c4002 rcf2af94 39 39 #include "pipefs.h" 40 40 #include "../../vfs/vfs.h" 41 #include <ipc/ipc.h>42 41 #include <macros.h> 43 42 #include <stdint.h> … … 457 456 rc = async_data_write_accept((void **) &opts, true, 0, 0, 0, NULL); 458 457 if (rc != EOK) { 459 ipc_answer_0(rid, rc);458 async_answer_0(rid, rc); 460 459 return; 461 460 } … … 466 465 (void) pipefs_node_put(rootfn); 467 466 free(opts); 468 ipc_answer_0(rid, EEXIST);467 async_answer_0(rid, EEXIST); 469 468 return; 470 469 } … … 473 472 if (!pipefs_instance_init(devmap_handle)) { 474 473 free(opts); 475 ipc_answer_0(rid, ENOMEM);474 async_answer_0(rid, ENOMEM); 476 475 return; 477 476 } … … 480 479 assert(rc == EOK); 481 480 pipefs_node_t *rootp = PIPEFS_NODE(rootfn); 482 ipc_answer_3(rid, EOK, rootp->index, rootp->size, rootp->lnkcnt);481 async_answer_3(rid, EOK, rootp->index, rootp->size, rootp->lnkcnt); 483 482 free(opts); 484 483 } … … 494 493 495 494 pipefs_instance_done(devmap_handle); 496 ipc_answer_0(rid, EOK);495 async_answer_0(rid, EOK); 497 496 } 498 497 … … 524 523 hlp = hash_table_find(&nodes, key); 525 524 if (!hlp) { 526 ipc_answer_0(rid, ENOENT);525 async_answer_0(rid, ENOENT); 527 526 return; 528 527 } … … 536 535 size_t size; 537 536 if (!async_data_read_receive(&callid, &size)) { 538 ipc_answer_0(callid, EINVAL);539 ipc_answer_0(rid, EINVAL);537 async_answer_0(callid, EINVAL); 538 async_answer_0(rid, EINVAL); 540 539 return; 541 540 } … … 548 547 */ 549 548 if (pos < nodep->start) { 550 ipc_answer_0(callid, ENOTSUP);551 ipc_answer_0(rid, ENOTSUP);549 async_answer_0(callid, ENOTSUP); 550 async_answer_0(rid, ENOTSUP); 552 551 return; 553 552 } … … 606 605 * and remove this else clause 607 606 */ 608 ipc_answer_0(callid, ENOTSUP);609 ipc_answer_1(rid, ENOTSUP, 0);607 async_answer_0(callid, ENOTSUP); 608 async_answer_1(rid, ENOTSUP, 0); 610 609 return; 611 610 } … … 628 627 629 628 if (lnk == &nodep->cs_head) { 630 ipc_answer_0(callid, ENOENT);631 ipc_answer_1(rid, ENOENT, 0);629 async_answer_0(callid, ENOENT); 630 async_answer_1(rid, ENOENT, 0); 632 631 return; 633 632 } … … 643 642 * Answer the VFS_READ call. 644 643 */ 645 ipc_answer_1(rid, EOK, bytes);644 async_answer_1(rid, EOK, bytes); 646 645 } 647 646 … … 663 662 hlp = hash_table_find(&nodes, key); 664 663 if (!hlp) { 665 ipc_answer_0(rid, ENOENT);664 async_answer_0(rid, ENOENT); 666 665 return; 667 666 } … … 675 674 size_t size; 676 675 if (!async_data_write_receive(&callid, &size)) { 677 ipc_answer_0(callid, EINVAL);678 ipc_answer_0(rid, EINVAL);676 async_answer_0(callid, EINVAL); 677 async_answer_0(rid, EINVAL); 679 678 return; 680 679 } … … 684 683 */ 685 684 if (pos != nodep->size) { 686 ipc_answer_0(callid, ENOTSUP);687 ipc_answer_2(rid, EOK, 0, nodep->size);685 async_answer_0(callid, ENOTSUP); 686 async_answer_2(rid, EOK, 0, nodep->size); 688 687 return; 689 688 } … … 696 695 void *newdata = malloc(size); 697 696 if (!newdata) { 698 ipc_answer_0(callid, ENOMEM);699 ipc_answer_2(rid, EOK, 0, nodep->size);697 async_answer_0(callid, ENOMEM); 698 async_answer_2(rid, EOK, 0, nodep->size); 700 699 return; 701 700 } … … 705 704 if (!newblock) { 706 705 free(newdata); 707 ipc_answer_0(callid, ENOMEM);708 ipc_answer_2(rid, EOK, 0, nodep->size);706 async_answer_0(callid, ENOMEM); 707 async_answer_2(rid, EOK, 0, nodep->size); 709 708 return; 710 709 } … … 715 714 free(newblock); 716 715 free(newdata); 717 ipc_answer_0(callid, rc);718 ipc_answer_2(rid, EOK, 0, nodep->size);716 async_answer_0(callid, rc); 717 async_answer_2(rid, EOK, 0, nodep->size); 719 718 return; 720 719 } … … 727 726 nodep->size += size; 728 727 729 ipc_answer_2(rid, EOK, size, nodep->size);728 async_answer_2(rid, EOK, size, nodep->size); 730 729 } 731 730 … … 735 734 * PIPEFS does not support resizing of files 736 735 */ 737 ipc_answer_0(rid, ENOTSUP);736 async_answer_0(rid, ENOTSUP); 738 737 } 739 738 740 739 void pipefs_close(ipc_callid_t rid, ipc_call_t *request) 741 740 { 742 ipc_answer_0(rid, EOK);741 async_answer_0(rid, EOK); 743 742 } 744 743 … … 756 755 hlp = hash_table_find(&nodes, key); 757 756 if (!hlp) { 758 ipc_answer_0(rid, ENOENT);757 async_answer_0(rid, ENOENT); 759 758 return; 760 759 } … … 762 761 nh_link); 763 762 rc = pipefs_destroy_node(FS_NODE(nodep)); 764 ipc_answer_0(rid, rc);763 async_answer_0(rid, rc); 765 764 } 766 765 … … 781 780 * thus the sync operation is a no-op. 782 781 */ 783 ipc_answer_0(rid, EOK);782 async_answer_0(rid, EOK); 784 783 } 785 784 -
uspace/srv/fs/tmpfs/tmpfs.c
ra49c4002 rcf2af94 42 42 43 43 #include "tmpfs.h" 44 #include <ipc/ipc.h>45 44 #include <ipc/services.h> 45 #include <ipc/ns.h> 46 46 #include <async.h> 47 47 #include <errno.h> … … 57 57 vfs_info_t tmpfs_vfs_info = { 58 58 .name = NAME, 59 .concurrent_read_write = false, 60 .write_retains_size = false, 59 61 }; 60 62 … … 88 90 * created by IPC_M_CONNECT_TO_ME. 89 91 */ 90 ipc_answer_0(iid, EOK);92 async_answer_0(iid, EOK); 91 93 } 92 94 … … 97 99 98 100 callid = async_get_call(&call); 99 switch (IPC_GET_ METHOD(call)) {101 switch (IPC_GET_IMETHOD(call)) { 100 102 case IPC_M_PHONE_HUNGUP: 101 103 return; … … 140 142 break; 141 143 default: 142 ipc_answer_0(callid, ENOTSUP);144 async_answer_0(callid, ENOTSUP); 143 145 break; 144 146 } … … 155 157 } 156 158 157 int vfs_phone = ipc_connect_me_to_blocking(PHONE_NS,SERVICE_VFS, 0, 0);159 int vfs_phone = service_connect_blocking(SERVICE_VFS, 0, 0); 158 160 if (vfs_phone < EOK) { 159 161 printf(NAME ": Unable to connect to VFS\n"); -
uspace/srv/fs/tmpfs/tmpfs.h
ra49c4002 rcf2af94 34 34 #define TMPFS_TMPFS_H_ 35 35 36 #include <ipc/ipc.h>37 36 #include <libfs.h> 38 37 #include <atomic.h> -
uspace/srv/fs/tmpfs/tmpfs_ops.c
ra49c4002 rcf2af94 39 39 #include "tmpfs.h" 40 40 #include "../../vfs/vfs.h" 41 #include <ipc/ipc.h>42 41 #include <macros.h> 43 42 #include <stdint.h> … … 450 449 rc = async_data_write_accept((void **) &opts, true, 0, 0, 0, NULL); 451 450 if (rc != EOK) { 452 ipc_answer_0(rid, rc);451 async_answer_0(rid, rc); 453 452 return; 454 453 } … … 459 458 (void) tmpfs_node_put(rootfn); 460 459 free(opts); 461 ipc_answer_0(rid, EEXIST);460 async_answer_0(rid, EEXIST); 462 461 return; 463 462 } … … 466 465 if (!tmpfs_instance_init(devmap_handle)) { 467 466 free(opts); 468 ipc_answer_0(rid, ENOMEM);467 async_answer_0(rid, ENOMEM); 469 468 return; 470 469 } … … 475 474 if (str_cmp(opts, "restore") == 0) { 476 475 if (tmpfs_restore(devmap_handle)) 477 ipc_answer_3(rid, EOK, rootp->index, rootp->size,476 async_answer_3(rid, EOK, rootp->index, rootp->size, 478 477 rootp->lnkcnt); 479 478 else 480 ipc_answer_0(rid, ELIMIT);479 async_answer_0(rid, ELIMIT); 481 480 } else { 482 ipc_answer_3(rid, EOK, rootp->index, rootp->size,481 async_answer_3(rid, EOK, rootp->index, rootp->size, 483 482 rootp->lnkcnt); 484 483 } … … 496 495 497 496 tmpfs_instance_done(devmap_handle); 498 ipc_answer_0(rid, EOK);497 async_answer_0(rid, EOK); 499 498 } 500 499 … … 526 525 hlp = hash_table_find(&nodes, key); 527 526 if (!hlp) { 528 ipc_answer_0(rid, ENOENT);527 async_answer_0(rid, ENOENT); 529 528 return; 530 529 } … … 538 537 size_t size; 539 538 if (!async_data_read_receive(&callid, &size)) { 540 ipc_answer_0(callid, EINVAL);541 ipc_answer_0(rid, EINVAL);539 async_answer_0(callid, EINVAL); 540 async_answer_0(rid, EINVAL); 542 541 return; 543 542 } … … 566 565 567 566 if (lnk == &nodep->cs_head) { 568 ipc_answer_0(callid, ENOENT);569 ipc_answer_1(rid, ENOENT, 0);567 async_answer_0(callid, ENOENT); 568 async_answer_1(rid, ENOENT, 0); 570 569 return; 571 570 } … … 581 580 * Answer the VFS_READ call. 582 581 */ 583 ipc_answer_1(rid, EOK, bytes);582 async_answer_1(rid, EOK, bytes); 584 583 } 585 584 … … 601 600 hlp = hash_table_find(&nodes, key); 602 601 if (!hlp) { 603 ipc_answer_0(rid, ENOENT);602 async_answer_0(rid, ENOENT); 604 603 return; 605 604 } … … 613 612 size_t size; 614 613 if (!async_data_write_receive(&callid, &size)) { 615 ipc_answer_0(callid, EINVAL);616 ipc_answer_0(rid, EINVAL);614 async_answer_0(callid, EINVAL); 615 async_answer_0(rid, EINVAL); 617 616 return; 618 617 } … … 624 623 /* The file size is not changing. */ 625 624 (void) async_data_write_finalize(callid, nodep->data + pos, size); 626 ipc_answer_2(rid, EOK, size, nodep->size);625 async_answer_2(rid, EOK, size, nodep->size); 627 626 return; 628 627 } … … 637 636 void *newdata = realloc(nodep->data, nodep->size + delta); 638 637 if (!newdata) { 639 ipc_answer_0(callid, ENOMEM);640 ipc_answer_2(rid, EOK, 0, nodep->size);638 async_answer_0(callid, ENOMEM); 639 async_answer_2(rid, EOK, 0, nodep->size); 641 640 return; 642 641 } … … 646 645 nodep->data = newdata; 647 646 (void) async_data_write_finalize(callid, nodep->data + pos, size); 648 ipc_answer_2(rid, EOK, size, nodep->size);647 async_answer_2(rid, EOK, size, nodep->size); 649 648 } 650 649 … … 665 664 link_t *hlp = hash_table_find(&nodes, key); 666 665 if (!hlp) { 667 ipc_answer_0(rid, ENOENT);666 async_answer_0(rid, ENOENT); 668 667 return; 669 668 } … … 672 671 673 672 if (size == nodep->size) { 674 ipc_answer_0(rid, EOK);673 async_answer_0(rid, EOK); 675 674 return; 676 675 } 677 676 678 677 if (size > SIZE_MAX) { 679 ipc_answer_0(rid, ENOMEM);678 async_answer_0(rid, ENOMEM); 680 679 return; 681 680 } … … 683 682 void *newdata = realloc(nodep->data, size); 684 683 if (!newdata) { 685 ipc_answer_0(rid, ENOMEM);684 async_answer_0(rid, ENOMEM); 686 685 return; 687 686 } … … 694 693 nodep->size = size; 695 694 nodep->data = newdata; 696 ipc_answer_0(rid, EOK);695 async_answer_0(rid, EOK); 697 696 } 698 697 699 698 void tmpfs_close(ipc_callid_t rid, ipc_call_t *request) 700 699 { 701 ipc_answer_0(rid, EOK);700 async_answer_0(rid, EOK); 702 701 } 703 702 … … 715 714 hlp = hash_table_find(&nodes, key); 716 715 if (!hlp) { 717 ipc_answer_0(rid, ENOENT);716 async_answer_0(rid, ENOENT); 718 717 return; 719 718 } … … 721 720 nh_link); 722 721 rc = tmpfs_destroy_node(FS_NODE(nodep)); 723 ipc_answer_0(rid, rc);722 async_answer_0(rid, rc); 724 723 } 725 724 … … 740 739 * thus the sync operation is a no-op. 741 740 */ 742 ipc_answer_0(rid, EOK);741 async_answer_0(rid, EOK); 743 742 } 744 743
Note:
See TracChangeset
for help on using the changeset viewer.
