Changeset 984a9ba in mainline for uspace/srv/locsrv/locsrv.c
- Timestamp:
- 2018-07-05T09:34:09Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 63d46341
- Parents:
- 76f566d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/locsrv/locsrv.c
r76f566d r984a9ba 341 341 { 342 342 ipc_call_t icall; 343 cap_call_handle_t icall_handle =async_get_call(&icall);343 async_get_call(&icall); 344 344 345 345 if (IPC_GET_IMETHOD(icall) != LOC_SERVER_REGISTER) { 346 async_answer_0( icall_handle, EREFUSED);346 async_answer_0(&icall, EREFUSED); 347 347 return NULL; 348 348 } … … 351 351 (loc_server_t *) malloc(sizeof(loc_server_t)); 352 352 if (server == NULL) { 353 async_answer_0( icall_handle, ENOMEM);353 async_answer_0(&icall, ENOMEM); 354 354 return NULL; 355 355 } … … 362 362 if (rc != EOK) { 363 363 free(server); 364 async_answer_0( icall_handle, rc);364 async_answer_0(&icall, rc); 365 365 return NULL; 366 366 } … … 373 373 free(server->name); 374 374 free(server); 375 async_answer_0( icall_handle, ENOTSUP);375 async_answer_0(&icall, ENOTSUP); 376 376 return NULL; 377 377 } … … 403 403 fibril_mutex_unlock(&servers_list_mutex); 404 404 405 async_answer_0( icall_handle, EOK);405 async_answer_0(&icall, EOK); 406 406 407 407 return server; … … 456 456 * 457 457 */ 458 static void loc_service_register(cap_call_handle_t icall_handle, ipc_call_t *icall, 459 loc_server_t *server) 458 static void loc_service_register(ipc_call_t *icall, loc_server_t *server) 460 459 { 461 460 if (server == NULL) { 462 async_answer_0(icall _handle, EREFUSED);461 async_answer_0(icall, EREFUSED); 463 462 return; 464 463 } … … 468 467 (loc_service_t *) malloc(sizeof(loc_service_t)); 469 468 if (service == NULL) { 470 async_answer_0(icall _handle, ENOMEM);469 async_answer_0(icall, ENOMEM); 471 470 return; 472 471 } … … 478 477 if (rc != EOK) { 479 478 free(service); 480 async_answer_0(icall _handle, rc);479 async_answer_0(icall, rc); 481 480 return; 482 481 } … … 486 485 free(fqsn); 487 486 free(service); 488 async_answer_0(icall _handle, EINVAL);487 async_answer_0(icall, EINVAL); 489 488 return; 490 489 } … … 500 499 free(service->name); 501 500 free(service); 502 async_answer_0(icall _handle, ENOMEM);501 async_answer_0(icall, ENOMEM); 503 502 return; 504 503 } … … 516 515 free(service->name); 517 516 free(service); 518 async_answer_0(icall _handle, EEXIST);517 async_answer_0(icall, EEXIST); 519 518 return; 520 519 } … … 538 537 fibril_mutex_unlock(&services_list_mutex); 539 538 540 async_answer_1(icall _handle, EOK, service->id);539 async_answer_1(icall, EOK, service->id); 541 540 } 542 541 … … 544 543 * 545 544 */ 546 static void loc_service_unregister(cap_call_handle_t icall_handle, ipc_call_t *icall, 547 loc_server_t *server) 545 static void loc_service_unregister(ipc_call_t *icall, loc_server_t *server) 548 546 { 549 547 loc_service_t *svc; … … 553 551 if (svc == NULL) { 554 552 fibril_mutex_unlock(&services_list_mutex); 555 async_answer_0(icall _handle, ENOENT);553 async_answer_0(icall, ENOENT); 556 554 return; 557 555 } … … 568 566 */ 569 567 loc_category_change_event(); 570 async_answer_0(icall _handle, EOK);571 } 572 573 static void loc_category_get_name( cap_call_handle_t icall_handle,ipc_call_t *icall)574 { 575 cap_call_handle_t chandle;568 async_answer_0(icall, EOK); 569 } 570 571 static void loc_category_get_name(ipc_call_t *icall) 572 { 573 ipc_call_t call; 576 574 size_t size; 577 575 size_t act_size; 578 576 category_t *cat; 579 577 580 if (!async_data_read_receive(&c handle, &size)) {581 async_answer_0( chandle, EREFUSED);582 async_answer_0(icall _handle, EREFUSED);578 if (!async_data_read_receive(&call, &size)) { 579 async_answer_0(&call, EREFUSED); 580 async_answer_0(icall, EREFUSED); 583 581 return; 584 582 } … … 589 587 if (cat == NULL) { 590 588 fibril_mutex_unlock(&cdir.mutex); 591 async_answer_0( chandle, ENOENT);592 async_answer_0(icall _handle, ENOENT);589 async_answer_0(&call, ENOENT); 590 async_answer_0(icall, ENOENT); 593 591 return; 594 592 } … … 597 595 if (act_size > size) { 598 596 fibril_mutex_unlock(&cdir.mutex); 599 async_answer_0( chandle, EOVERFLOW);600 async_answer_0(icall _handle, EOVERFLOW);601 return; 602 } 603 604 errno_t retval = async_data_read_finalize( chandle, cat->name,597 async_answer_0(&call, EOVERFLOW); 598 async_answer_0(icall, EOVERFLOW); 599 return; 600 } 601 602 errno_t retval = async_data_read_finalize(&call, cat->name, 605 603 min(size, act_size)); 606 604 607 605 fibril_mutex_unlock(&cdir.mutex); 608 606 609 async_answer_0(icall _handle, retval);610 } 611 612 static void loc_service_get_name( cap_call_handle_t icall_handle,ipc_call_t *icall)613 { 614 cap_call_handle_t chandle;607 async_answer_0(icall, retval); 608 } 609 610 static void loc_service_get_name(ipc_call_t *icall) 611 { 612 ipc_call_t call; 615 613 size_t size; 616 614 size_t act_size; … … 618 616 char *fqn; 619 617 620 if (!async_data_read_receive(&c handle, &size)) {621 async_answer_0( chandle, EREFUSED);622 async_answer_0(icall _handle, EREFUSED);618 if (!async_data_read_receive(&call, &size)) { 619 async_answer_0(&call, EREFUSED); 620 async_answer_0(icall, EREFUSED); 623 621 return; 624 622 } … … 629 627 if (svc == NULL) { 630 628 fibril_mutex_unlock(&services_list_mutex); 631 async_answer_0( chandle, ENOENT);632 async_answer_0(icall _handle, ENOENT);629 async_answer_0(&call, ENOENT); 630 async_answer_0(icall, ENOENT); 633 631 return; 634 632 } … … 636 634 if (asprintf(&fqn, "%s/%s", svc->namespace->name, svc->name) < 0) { 637 635 fibril_mutex_unlock(&services_list_mutex); 638 async_answer_0( chandle, ENOMEM);639 async_answer_0(icall _handle, ENOMEM);636 async_answer_0(&call, ENOMEM); 637 async_answer_0(icall, ENOMEM); 640 638 return; 641 639 } … … 645 643 free(fqn); 646 644 fibril_mutex_unlock(&services_list_mutex); 647 async_answer_0( chandle, EOVERFLOW);648 async_answer_0(icall _handle, EOVERFLOW);649 return; 650 } 651 652 errno_t retval = async_data_read_finalize( chandle, fqn,645 async_answer_0(&call, EOVERFLOW); 646 async_answer_0(icall, EOVERFLOW); 647 return; 648 } 649 650 errno_t retval = async_data_read_finalize(&call, fqn, 653 651 min(size, act_size)); 654 652 free(fqn); … … 656 654 fibril_mutex_unlock(&services_list_mutex); 657 655 658 async_answer_0(icall _handle, retval);659 } 660 661 static void loc_service_get_server_name( cap_call_handle_t icall_handle,ipc_call_t *icall)662 { 663 cap_call_handle_t chandle;656 async_answer_0(icall, retval); 657 } 658 659 static void loc_service_get_server_name(ipc_call_t *icall) 660 { 661 ipc_call_t call; 664 662 size_t size; 665 663 size_t act_size; 666 664 loc_service_t *svc; 667 665 668 if (!async_data_read_receive(&c handle, &size)) {669 async_answer_0( chandle, EREFUSED);670 async_answer_0(icall _handle, EREFUSED);666 if (!async_data_read_receive(&call, &size)) { 667 async_answer_0(&call, EREFUSED); 668 async_answer_0(icall, EREFUSED); 671 669 return; 672 670 } … … 677 675 if (svc == NULL) { 678 676 fibril_mutex_unlock(&services_list_mutex); 679 async_answer_0( chandle, ENOENT);680 async_answer_0(icall _handle, ENOENT);677 async_answer_0(&call, ENOENT); 678 async_answer_0(icall, ENOENT); 681 679 return; 682 680 } … … 684 682 if (svc->server == NULL) { 685 683 fibril_mutex_unlock(&services_list_mutex); 686 async_answer_0( chandle, EINVAL);687 async_answer_0(icall _handle, EINVAL);684 async_answer_0(&call, EINVAL); 685 async_answer_0(icall, EINVAL); 688 686 return; 689 687 } … … 692 690 if (act_size > size) { 693 691 fibril_mutex_unlock(&services_list_mutex); 694 async_answer_0( chandle, EOVERFLOW);695 async_answer_0(icall _handle, EOVERFLOW);696 return; 697 } 698 699 errno_t retval = async_data_read_finalize( chandle, svc->server->name,692 async_answer_0(&call, EOVERFLOW); 693 async_answer_0(icall, EOVERFLOW); 694 return; 695 } 696 697 errno_t retval = async_data_read_finalize(&call, svc->server->name, 700 698 min(size, act_size)); 701 699 702 700 fibril_mutex_unlock(&services_list_mutex); 703 701 704 async_answer_0(icall _handle, retval);702 async_answer_0(icall, retval); 705 703 } 706 704 … … 711 709 * 712 710 */ 713 static void loc_forward( cap_call_handle_t chandle,ipc_call_t *call, void *arg)711 static void loc_forward(ipc_call_t *call, void *arg) 714 712 { 715 713 fibril_mutex_lock(&services_list_mutex); … … 724 722 if ((svc == NULL) || (svc->server == NULL) || (!svc->server->sess)) { 725 723 fibril_mutex_unlock(&services_list_mutex); 726 async_answer_0(c handle, ENOENT);724 async_answer_0(call, ENOENT); 727 725 return; 728 726 } 729 727 730 728 async_exch_t *exch = async_exchange_begin(svc->server->sess); 731 async_forward_fast(c handle, exch, iface, svc->id, 0, IPC_FF_NONE);729 async_forward_fast(call, exch, iface, svc->id, 0, IPC_FF_NONE); 732 730 async_exchange_end(exch); 733 731 … … 741 739 * 742 740 */ 743 static void loc_service_get_id( cap_call_handle_t icall_handle,ipc_call_t *icall)741 static void loc_service_get_id(ipc_call_t *icall) 744 742 { 745 743 char *fqsn; … … 749 747 LOC_NAME_MAXLEN, 0, NULL); 750 748 if (rc != EOK) { 751 async_answer_0(icall _handle, rc);749 async_answer_0(icall, rc); 752 750 return; 753 751 } … … 757 755 if (!loc_fqsn_split(fqsn, &ns_name, &name)) { 758 756 free(fqsn); 759 async_answer_0(icall _handle, EINVAL);757 async_answer_0(icall, EINVAL); 760 758 return; 761 759 } … … 784 782 } 785 783 786 async_answer_0(icall _handle, ENOENT);784 async_answer_0(icall, ENOENT); 787 785 free(ns_name); 788 786 free(name); … … 791 789 } 792 790 793 async_answer_1(icall _handle, EOK, svc->id);791 async_answer_1(icall, EOK, svc->id); 794 792 795 793 fibril_mutex_unlock(&services_list_mutex); … … 804 802 * 805 803 */ 806 static void loc_namespace_get_id( cap_call_handle_t icall_handle,ipc_call_t *icall)804 static void loc_namespace_get_id(ipc_call_t *icall) 807 805 { 808 806 char *name; … … 812 810 LOC_NAME_MAXLEN, 0, NULL); 813 811 if (rc != EOK) { 814 async_answer_0(icall _handle, rc);812 async_answer_0(icall, rc); 815 813 return; 816 814 } … … 837 835 } 838 836 839 async_answer_0(icall _handle, ENOENT);837 async_answer_0(icall, ENOENT); 840 838 free(name); 841 839 fibril_mutex_unlock(&services_list_mutex); … … 843 841 } 844 842 845 async_answer_1(icall _handle, EOK, namespace->id);843 async_answer_1(icall, EOK, namespace->id); 846 844 847 845 fibril_mutex_unlock(&services_list_mutex); … … 858 856 * 859 857 */ 860 static void loc_callback_create( cap_call_handle_t icall_handle,ipc_call_t *icall)858 static void loc_callback_create(ipc_call_t *icall) 861 859 { 862 860 cb_sess_t *cb_sess = calloc(1, sizeof(cb_sess_t)); 863 861 if (cb_sess == NULL) { 864 async_answer_0(icall _handle, ENOMEM);862 async_answer_0(icall, ENOMEM); 865 863 return; 866 864 } … … 869 867 if (sess == NULL) { 870 868 free(cb_sess); 871 async_answer_0(icall _handle, ENOMEM);869 async_answer_0(icall, ENOMEM); 872 870 return; 873 871 } … … 880 878 fibril_mutex_unlock(&callback_sess_mutex); 881 879 882 async_answer_0(icall _handle, EOK);880 async_answer_0(icall, EOK); 883 881 } 884 882 … … 902 900 * 903 901 */ 904 static void loc_category_get_id( cap_call_handle_t icall_handle,ipc_call_t *icall)902 static void loc_category_get_id(ipc_call_t *icall) 905 903 { 906 904 char *name; … … 911 909 LOC_NAME_MAXLEN, 0, NULL); 912 910 if (rc != EOK) { 913 async_answer_0(icall _handle, rc);911 async_answer_0(icall, rc); 914 912 return; 915 913 } … … 920 918 if (cat == NULL) { 921 919 /* Category not found */ 922 async_answer_0(icall _handle, ENOENT);920 async_answer_0(icall, ENOENT); 923 921 goto cleanup; 924 922 } 925 923 926 async_answer_1(icall _handle, EOK, cat->id);924 async_answer_1(icall, EOK, cat->id); 927 925 cleanup: 928 926 fibril_mutex_unlock(&cdir.mutex); … … 930 928 } 931 929 932 static void loc_id_probe( cap_call_handle_t icall_handle,ipc_call_t *icall)930 static void loc_id_probe(ipc_call_t *icall) 933 931 { 934 932 fibril_mutex_lock(&services_list_mutex); … … 940 938 loc_service_find_id(IPC_GET_ARG1(*icall)); 941 939 if (svc == NULL) 942 async_answer_1(icall _handle, EOK, LOC_OBJECT_NONE);940 async_answer_1(icall, EOK, LOC_OBJECT_NONE); 943 941 else 944 async_answer_1(icall _handle, EOK, LOC_OBJECT_SERVICE);942 async_answer_1(icall, EOK, LOC_OBJECT_SERVICE); 945 943 } else 946 async_answer_1(icall _handle, EOK, LOC_OBJECT_NAMESPACE);944 async_answer_1(icall, EOK, LOC_OBJECT_NAMESPACE); 947 945 948 946 fibril_mutex_unlock(&services_list_mutex); 949 947 } 950 948 951 static void loc_get_namespace_count( cap_call_handle_t icall_handle,ipc_call_t *icall)949 static void loc_get_namespace_count(ipc_call_t *icall) 952 950 { 953 951 fibril_mutex_lock(&services_list_mutex); 954 async_answer_1(icall _handle, EOK, list_count(&namespaces_list));952 async_answer_1(icall, EOK, list_count(&namespaces_list)); 955 953 fibril_mutex_unlock(&services_list_mutex); 956 954 } 957 955 958 static void loc_get_service_count( cap_call_handle_t icall_handle,ipc_call_t *icall)956 static void loc_get_service_count(ipc_call_t *icall) 959 957 { 960 958 fibril_mutex_lock(&services_list_mutex); … … 963 961 loc_namespace_find_id(IPC_GET_ARG1(*icall)); 964 962 if (namespace == NULL) 965 async_answer_0(icall _handle, EEXIST);963 async_answer_0(icall, EEXIST); 966 964 else 967 async_answer_1(icall _handle, EOK, namespace->refcnt);965 async_answer_1(icall, EOK, namespace->refcnt); 968 966 969 967 fibril_mutex_unlock(&services_list_mutex); 970 968 } 971 969 972 static void loc_get_categories( cap_call_handle_t icall_handle,ipc_call_t *icall)973 { 974 cap_call_handle_t chandle;970 static void loc_get_categories(ipc_call_t *icall) 971 { 972 ipc_call_t call; 975 973 size_t size; 976 974 size_t act_size; 977 975 errno_t rc; 978 976 979 if (!async_data_read_receive(&c handle, &size)) {980 async_answer_0( chandle, EREFUSED);981 async_answer_0(icall _handle, EREFUSED);977 if (!async_data_read_receive(&call, &size)) { 978 async_answer_0(&call, EREFUSED); 979 async_answer_0(icall, EREFUSED); 982 980 return; 983 981 } … … 986 984 if (id_buf == NULL) { 987 985 fibril_mutex_unlock(&cdir.mutex); 988 async_answer_0( chandle, ENOMEM);989 async_answer_0(icall _handle, ENOMEM);986 async_answer_0(&call, ENOMEM); 987 async_answer_0(icall, ENOMEM); 990 988 return; 991 989 } … … 996 994 if (rc != EOK) { 997 995 fibril_mutex_unlock(&cdir.mutex); 998 async_answer_0( chandle, rc);999 async_answer_0(icall _handle, rc);996 async_answer_0(&call, rc); 997 async_answer_0(icall, rc); 1000 998 return; 1001 999 } … … 1003 1001 fibril_mutex_unlock(&cdir.mutex); 1004 1002 1005 errno_t retval = async_data_read_finalize( chandle, id_buf, size);1003 errno_t retval = async_data_read_finalize(&call, id_buf, size); 1006 1004 free(id_buf); 1007 1005 1008 async_answer_1(icall _handle, retval, act_size);1009 } 1010 1011 static void loc_get_namespaces( cap_call_handle_t icall_handle,ipc_call_t *icall)1012 { 1013 cap_call_handle_t chandle;1006 async_answer_1(icall, retval, act_size); 1007 } 1008 1009 static void loc_get_namespaces(ipc_call_t *icall) 1010 { 1011 ipc_call_t call; 1014 1012 size_t size; 1015 if (!async_data_read_receive(&c handle, &size)) {1016 async_answer_0( chandle, EREFUSED);1017 async_answer_0(icall _handle, EREFUSED);1013 if (!async_data_read_receive(&call, &size)) { 1014 async_answer_0(&call, EREFUSED); 1015 async_answer_0(icall, EREFUSED); 1018 1016 return; 1019 1017 } 1020 1018 1021 1019 if ((size % sizeof(loc_sdesc_t)) != 0) { 1022 async_answer_0( chandle, EINVAL);1023 async_answer_0(icall _handle, EINVAL);1020 async_answer_0(&call, EINVAL); 1021 async_answer_0(icall, EINVAL); 1024 1022 return; 1025 1023 } … … 1030 1028 if (count != list_count(&namespaces_list)) { 1031 1029 fibril_mutex_unlock(&services_list_mutex); 1032 async_answer_0( chandle, EOVERFLOW);1033 async_answer_0(icall _handle, EOVERFLOW);1030 async_answer_0(&call, EOVERFLOW); 1031 async_answer_0(icall, EOVERFLOW); 1034 1032 return; 1035 1033 } … … 1038 1036 if (desc == NULL) { 1039 1037 fibril_mutex_unlock(&services_list_mutex); 1040 async_answer_0( chandle, ENOMEM);1041 async_answer_0(icall _handle, ENOMEM);1038 async_answer_0(&call, ENOMEM); 1039 async_answer_0(icall, ENOMEM); 1042 1040 return; 1043 1041 } … … 1050 1048 } 1051 1049 1052 errno_t retval = async_data_read_finalize( chandle, desc, size);1050 errno_t retval = async_data_read_finalize(&call, desc, size); 1053 1051 1054 1052 free(desc); 1055 1053 fibril_mutex_unlock(&services_list_mutex); 1056 1054 1057 async_answer_0(icall _handle, retval);1058 } 1059 1060 static void loc_get_services( cap_call_handle_t icall_handle,ipc_call_t *icall)1055 async_answer_0(icall, retval); 1056 } 1057 1058 static void loc_get_services(ipc_call_t *icall) 1061 1059 { 1062 1060 /* … … 1065 1063 */ 1066 1064 1067 cap_call_handle_t chandle;1065 ipc_call_t call; 1068 1066 size_t size; 1069 if (!async_data_read_receive(&c handle, &size)) {1070 async_answer_0( chandle, EREFUSED);1071 async_answer_0(icall _handle, EREFUSED);1067 if (!async_data_read_receive(&call, &size)) { 1068 async_answer_0(&call, EREFUSED); 1069 async_answer_0(icall, EREFUSED); 1072 1070 return; 1073 1071 } 1074 1072 1075 1073 if ((size % sizeof(loc_sdesc_t)) != 0) { 1076 async_answer_0( chandle, EINVAL);1077 async_answer_0(icall _handle, EINVAL);1074 async_answer_0(&call, EINVAL); 1075 async_answer_0(icall, EINVAL); 1078 1076 return; 1079 1077 } … … 1085 1083 if (namespace == NULL) { 1086 1084 fibril_mutex_unlock(&services_list_mutex); 1087 async_answer_0( chandle, ENOENT);1088 async_answer_0(icall _handle, ENOENT);1085 async_answer_0(&call, ENOENT); 1086 async_answer_0(icall, ENOENT); 1089 1087 return; 1090 1088 } … … 1093 1091 if (count != namespace->refcnt) { 1094 1092 fibril_mutex_unlock(&services_list_mutex); 1095 async_answer_0( chandle, EOVERFLOW);1096 async_answer_0(icall _handle, EOVERFLOW);1093 async_answer_0(&call, EOVERFLOW); 1094 async_answer_0(icall, EOVERFLOW); 1097 1095 return; 1098 1096 } … … 1101 1099 if (desc == NULL) { 1102 1100 fibril_mutex_unlock(&services_list_mutex); 1103 async_answer_0( chandle, ENOMEM);1104 async_answer_0(icall _handle, EREFUSED);1101 async_answer_0(&call, ENOMEM); 1102 async_answer_0(icall, EREFUSED); 1105 1103 return; 1106 1104 } … … 1115 1113 } 1116 1114 1117 errno_t retval = async_data_read_finalize( chandle, desc, size);1115 errno_t retval = async_data_read_finalize(&call, desc, size); 1118 1116 1119 1117 free(desc); 1120 1118 fibril_mutex_unlock(&services_list_mutex); 1121 1119 1122 async_answer_0(icall _handle, retval);1123 } 1124 1125 static void loc_category_get_svcs( cap_call_handle_t icall_handle,ipc_call_t *icall)1126 { 1127 cap_call_handle_t chandle;1120 async_answer_0(icall, retval); 1121 } 1122 1123 static void loc_category_get_svcs(ipc_call_t *icall) 1124 { 1125 ipc_call_t call; 1128 1126 size_t size; 1129 1127 size_t act_size; 1130 1128 errno_t rc; 1131 1129 1132 if (!async_data_read_receive(&c handle, &size)) {1133 async_answer_0( chandle, EREFUSED);1134 async_answer_0(icall _handle, EREFUSED);1130 if (!async_data_read_receive(&call, &size)) { 1131 async_answer_0(&call, EREFUSED); 1132 async_answer_0(icall, EREFUSED); 1135 1133 return; 1136 1134 } … … 1141 1139 if (cat == NULL) { 1142 1140 fibril_mutex_unlock(&cdir.mutex); 1143 async_answer_0( chandle, ENOENT);1144 async_answer_0(icall _handle, ENOENT);1141 async_answer_0(&call, ENOENT); 1142 async_answer_0(icall, ENOENT); 1145 1143 return; 1146 1144 } … … 1149 1147 if (id_buf == NULL) { 1150 1148 fibril_mutex_unlock(&cdir.mutex); 1151 async_answer_0( chandle, ENOMEM);1152 async_answer_0(icall _handle, ENOMEM);1149 async_answer_0(&call, ENOMEM); 1150 async_answer_0(icall, ENOMEM); 1153 1151 return; 1154 1152 } … … 1160 1158 fibril_mutex_unlock(&cat->mutex); 1161 1159 fibril_mutex_unlock(&cdir.mutex); 1162 async_answer_0( chandle, rc);1163 async_answer_0(icall _handle, rc);1160 async_answer_0(&call, rc); 1161 async_answer_0(icall, rc); 1164 1162 return; 1165 1163 } … … 1168 1166 fibril_mutex_unlock(&cdir.mutex); 1169 1167 1170 errno_t retval = async_data_read_finalize( chandle, id_buf, size);1168 errno_t retval = async_data_read_finalize(&call, id_buf, size); 1171 1169 free(id_buf); 1172 1170 1173 async_answer_1(icall _handle, retval, act_size);1174 } 1175 1176 1177 static void loc_null_create( cap_call_handle_t icall_handle,ipc_call_t *icall)1171 async_answer_1(icall, retval, act_size); 1172 } 1173 1174 1175 static void loc_null_create(ipc_call_t *icall) 1178 1176 { 1179 1177 fibril_mutex_lock(&null_services_mutex); … … 1191 1189 if (!fnd) { 1192 1190 fibril_mutex_unlock(&null_services_mutex); 1193 async_answer_0(icall _handle, ENOMEM);1191 async_answer_0(icall, ENOMEM); 1194 1192 return; 1195 1193 } … … 1201 1199 if (dev_name == NULL) { 1202 1200 fibril_mutex_unlock(&null_services_mutex); 1203 async_answer_0(icall _handle, ENOMEM);1201 async_answer_0(icall, ENOMEM); 1204 1202 return; 1205 1203 } … … 1209 1207 if (service == NULL) { 1210 1208 fibril_mutex_unlock(&null_services_mutex); 1211 async_answer_0(icall _handle, ENOMEM);1209 async_answer_0(icall, ENOMEM); 1212 1210 return; 1213 1211 } … … 1219 1217 fibril_mutex_lock(&services_list_mutex); 1220 1218 fibril_mutex_unlock(&null_services_mutex); 1221 async_answer_0(icall _handle, ENOMEM);1219 async_answer_0(icall, ENOMEM); 1222 1220 return; 1223 1221 } … … 1246 1244 fibril_mutex_unlock(&null_services_mutex); 1247 1245 1248 async_answer_1(icall _handle, EOK, (sysarg_t) i);1249 } 1250 1251 static void loc_null_destroy( cap_call_handle_t icall_handle,ipc_call_t *icall)1246 async_answer_1(icall, EOK, (sysarg_t) i); 1247 } 1248 1249 static void loc_null_destroy(ipc_call_t *icall) 1252 1250 { 1253 1251 sysarg_t i = IPC_GET_ARG1(*icall); 1254 1252 if (i >= NULL_SERVICES) { 1255 async_answer_0(icall _handle, ELIMIT);1253 async_answer_0(icall, ELIMIT); 1256 1254 return; 1257 1255 } … … 1261 1259 if (null_services[i] == NULL) { 1262 1260 fibril_mutex_unlock(&null_services_mutex); 1263 async_answer_0(icall _handle, ENOENT);1261 async_answer_0(icall, ENOENT); 1264 1262 return; 1265 1263 } … … 1274 1272 1275 1273 fibril_mutex_unlock(&null_services_mutex); 1276 async_answer_0(icall _handle, EOK);1277 } 1278 1279 static void loc_service_add_to_cat( cap_call_handle_t icall_handle,ipc_call_t *icall)1274 async_answer_0(icall, EOK); 1275 } 1276 1277 static void loc_service_add_to_cat(ipc_call_t *icall) 1280 1278 { 1281 1279 category_t *cat; … … 1297 1295 fibril_mutex_unlock(&cdir.mutex); 1298 1296 fibril_mutex_unlock(&services_list_mutex); 1299 async_answer_0(icall _handle, ENOENT);1297 async_answer_0(icall, ENOENT); 1300 1298 return; 1301 1299 } … … 1314 1312 */ 1315 1313 loc_category_change_event(); 1316 async_answer_0(icall _handle, retval);1314 async_answer_0(icall, retval); 1317 1315 } 1318 1316 … … 1398 1396 * 1399 1397 */ 1400 static void loc_connection_supplier( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)1398 static void loc_connection_supplier(ipc_call_t *icall, void *arg) 1401 1399 { 1402 1400 /* Accept connection */ 1403 async_answer_0(icall _handle, EOK);1401 async_answer_0(icall, EOK); 1404 1402 1405 1403 loc_server_t *server = loc_server_register(); … … 1409 1407 while (true) { 1410 1408 ipc_call_t call; 1411 cap_call_handle_t chandle =async_get_call(&call);1409 async_get_call(&call); 1412 1410 1413 1411 if (!IPC_GET_IMETHOD(call)) … … 1417 1415 case LOC_SERVER_UNREGISTER: 1418 1416 if (server == NULL) 1419 async_answer_0( chandle, ENOENT);1417 async_answer_0(&call, ENOENT); 1420 1418 else 1421 async_answer_0( chandle, EOK);1419 async_answer_0(&call, EOK); 1422 1420 break; 1423 1421 case LOC_SERVICE_ADD_TO_CAT: 1424 1422 /* Add service to category */ 1425 loc_service_add_to_cat( chandle,&call);1423 loc_service_add_to_cat(&call); 1426 1424 break; 1427 1425 case LOC_SERVICE_REGISTER: 1428 1426 /* Register one service */ 1429 loc_service_register( chandle,&call, server);1427 loc_service_register(&call, server); 1430 1428 break; 1431 1429 case LOC_SERVICE_UNREGISTER: 1432 1430 /* Remove one service */ 1433 loc_service_unregister( chandle,&call, server);1431 loc_service_unregister(&call, server); 1434 1432 break; 1435 1433 case LOC_SERVICE_GET_ID: 1436 loc_service_get_id( chandle,&call);1434 loc_service_get_id(&call); 1437 1435 break; 1438 1436 case LOC_NAMESPACE_GET_ID: 1439 loc_namespace_get_id( chandle,&call);1437 loc_namespace_get_id(&call); 1440 1438 break; 1441 1439 default: 1442 async_answer_0( chandle, ENOENT);1440 async_answer_0(&call, ENOENT); 1443 1441 } 1444 1442 } … … 1456 1454 * 1457 1455 */ 1458 static void loc_connection_consumer( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)1456 static void loc_connection_consumer(ipc_call_t *icall, void *arg) 1459 1457 { 1460 1458 /* Accept connection */ 1461 async_answer_0(icall _handle, EOK);1459 async_answer_0(icall, EOK); 1462 1460 1463 1461 while (true) { 1464 1462 ipc_call_t call; 1465 cap_call_handle_t chandle =async_get_call(&call);1463 async_get_call(&call); 1466 1464 1467 1465 if (!IPC_GET_IMETHOD(call)) … … 1470 1468 switch (IPC_GET_IMETHOD(call)) { 1471 1469 case LOC_SERVICE_GET_ID: 1472 loc_service_get_id( chandle,&call);1470 loc_service_get_id(&call); 1473 1471 break; 1474 1472 case LOC_SERVICE_GET_NAME: 1475 loc_service_get_name( chandle,&call);1473 loc_service_get_name(&call); 1476 1474 break; 1477 1475 case LOC_SERVICE_GET_SERVER_NAME: 1478 loc_service_get_server_name( chandle,&call);1476 loc_service_get_server_name(&call); 1479 1477 break; 1480 1478 case LOC_NAMESPACE_GET_ID: 1481 loc_namespace_get_id( chandle,&call);1479 loc_namespace_get_id(&call); 1482 1480 break; 1483 1481 case LOC_CALLBACK_CREATE: 1484 loc_callback_create( chandle,&call);1482 loc_callback_create(&call); 1485 1483 break; 1486 1484 case LOC_CATEGORY_GET_ID: 1487 loc_category_get_id( chandle,&call);1485 loc_category_get_id(&call); 1488 1486 break; 1489 1487 case LOC_CATEGORY_GET_NAME: 1490 loc_category_get_name( chandle,&call);1488 loc_category_get_name(&call); 1491 1489 break; 1492 1490 case LOC_CATEGORY_GET_SVCS: 1493 loc_category_get_svcs( chandle,&call);1491 loc_category_get_svcs(&call); 1494 1492 break; 1495 1493 case LOC_ID_PROBE: 1496 loc_id_probe( chandle,&call);1494 loc_id_probe(&call); 1497 1495 break; 1498 1496 case LOC_NULL_CREATE: 1499 loc_null_create( chandle,&call);1497 loc_null_create(&call); 1500 1498 break; 1501 1499 case LOC_NULL_DESTROY: 1502 loc_null_destroy( chandle,&call);1500 loc_null_destroy(&call); 1503 1501 break; 1504 1502 case LOC_GET_NAMESPACE_COUNT: 1505 loc_get_namespace_count( chandle,&call);1503 loc_get_namespace_count(&call); 1506 1504 break; 1507 1505 case LOC_GET_SERVICE_COUNT: 1508 loc_get_service_count( chandle,&call);1506 loc_get_service_count(&call); 1509 1507 break; 1510 1508 case LOC_GET_CATEGORIES: 1511 loc_get_categories( chandle,&call);1509 loc_get_categories(&call); 1512 1510 break; 1513 1511 case LOC_GET_NAMESPACES: 1514 loc_get_namespaces( chandle,&call);1512 loc_get_namespaces(&call); 1515 1513 break; 1516 1514 case LOC_GET_SERVICES: 1517 loc_get_services( chandle,&call);1515 loc_get_services(&call); 1518 1516 break; 1519 1517 default: 1520 async_answer_0( chandle, ENOENT);1518 async_answer_0(&call, ENOENT); 1521 1519 } 1522 1520 }
Note:
See TracChangeset
for help on using the changeset viewer.