Changeset d5a89a3 in mainline for uspace/lib/c/generic
- Timestamp:
- 2019-02-11T22:31:04Z (6 years ago)
- Children:
- aaf9789c
- Parents:
- e3272101 (diff), 4805495 (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/lib/c/generic
- Files:
-
- 1 added
- 30 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async/client.c
re3272101 rd5a89a3 95 95 */ 96 96 97 #define LIBC_ASYNC_C_97 #define _LIBC_ASYNC_C_ 98 98 #include <ipc/ipc.h> 99 99 #include <async.h> 100 100 #include "../private/async.h" 101 101 #include "../private/ns.h" 102 #undef LIBC_ASYNC_C_102 #undef _LIBC_ASYNC_C_ 103 103 104 104 #include <ipc/irq.h> … … 249 249 * 250 250 */ 251 aid_t async_send_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,251 static aid_t async_send_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 252 252 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, ipc_call_t *dataptr) 253 253 { … … 289 289 * 290 290 */ 291 aid_t async_send_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,291 static aid_t async_send_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 292 292 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, 293 293 ipc_call_t *dataptr) … … 310 310 311 311 return (aid_t) msg; 312 } 313 314 aid_t async_send_0(async_exch_t *exch, sysarg_t imethod, ipc_call_t *dataptr) 315 { 316 return async_send_fast(exch, imethod, 0, 0, 0, 0, dataptr); 317 } 318 319 aid_t async_send_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 320 ipc_call_t *dataptr) 321 { 322 return async_send_fast(exch, imethod, arg1, 0, 0, 0, dataptr); 323 } 324 325 aid_t async_send_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 326 sysarg_t arg2, ipc_call_t *dataptr) 327 { 328 return async_send_fast(exch, imethod, arg1, arg2, 0, 0, dataptr); 329 } 330 331 aid_t async_send_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 332 sysarg_t arg2, sysarg_t arg3, ipc_call_t *dataptr) 333 { 334 return async_send_fast(exch, imethod, arg1, arg2, arg3, 0, dataptr); 335 } 336 337 aid_t async_send_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 338 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, ipc_call_t *dataptr) 339 { 340 return async_send_fast(exch, imethod, arg1, arg2, arg3, arg4, dataptr); 341 } 342 343 aid_t async_send_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 344 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, 345 ipc_call_t *dataptr) 346 { 347 return async_send_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, 348 dataptr); 312 349 } 313 350 … … 434 471 * 435 472 */ 436 errno_t async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,437 sysarg_t arg 2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2,438 sysarg_t *r 3, sysarg_t *r4, sysarg_t *r5)473 static errno_t async_req_fast(async_exch_t *exch, sysarg_t imethod, 474 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 475 sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 439 476 { 440 477 if (exch == NULL) … … 486 523 * 487 524 */ 488 errno_t async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,489 sysarg_t arg 2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1,490 sysarg_t *r 2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)525 static errno_t async_req_slow(async_exch_t *exch, sysarg_t imethod, 526 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, 527 sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 491 528 { 492 529 if (exch == NULL) … … 516 553 517 554 return rc; 555 } 556 557 errno_t async_req_0_0(async_exch_t *exch, sysarg_t imethod) 558 { 559 return async_req_fast(exch, imethod, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL); 560 } 561 562 errno_t async_req_0_1(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1) 563 { 564 return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, NULL, NULL, NULL, NULL); 565 } 566 567 errno_t async_req_0_2(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2) 568 { 569 return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, NULL, NULL, NULL); 570 } 571 572 errno_t async_req_0_3(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3) 573 { 574 return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, r3, NULL, NULL); 575 } 576 577 errno_t async_req_0_4(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4) 578 { 579 return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, r3, r4, NULL); 580 } 581 582 errno_t async_req_0_5(async_exch_t *exch, sysarg_t imethod, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 583 { 584 return async_req_fast(exch, imethod, 0, 0, 0, 0, r1, r2, r3, r4, r5); 585 } 586 587 errno_t async_req_1_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1) 588 { 589 return async_req_fast(exch, imethod, arg1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL); 590 } 591 592 errno_t async_req_1_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1) 593 { 594 return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, NULL, NULL, NULL, NULL); 595 } 596 597 errno_t async_req_1_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2) 598 { 599 return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, NULL, NULL, NULL); 600 } 601 602 errno_t async_req_1_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3) 603 { 604 return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, r3, NULL, NULL); 605 } 606 607 errno_t async_req_1_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4) 608 { 609 return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, r3, r4, NULL); 610 } 611 612 errno_t async_req_1_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 613 { 614 return async_req_fast(exch, imethod, arg1, 0, 0, 0, r1, r2, r3, r4, r5); 615 } 616 617 errno_t async_req_2_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2) 618 { 619 return async_req_fast(exch, imethod, arg1, arg2, 0, 0, NULL, NULL, NULL, NULL, NULL); 620 } 621 622 errno_t async_req_2_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1) 623 { 624 return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, NULL, NULL, NULL, NULL); 625 } 626 627 errno_t async_req_2_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2) 628 { 629 return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, NULL, NULL, NULL); 630 } 631 632 errno_t async_req_2_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3) 633 { 634 return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, r3, NULL, NULL); 635 } 636 637 errno_t async_req_2_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4) 638 { 639 return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, r3, r4, NULL); 640 } 641 642 errno_t async_req_2_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 643 { 644 return async_req_fast(exch, imethod, arg1, arg2, 0, 0, r1, r2, r3, r4, r5); 645 } 646 647 errno_t async_req_3_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3) 648 { 649 return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, NULL, NULL, NULL, NULL, NULL); 650 } 651 652 errno_t async_req_3_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1) 653 { 654 return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, NULL, NULL, NULL, NULL); 655 } 656 657 errno_t async_req_3_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2) 658 { 659 return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, NULL, NULL, NULL); 660 } 661 662 errno_t async_req_3_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3) 663 { 664 return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, r3, NULL, NULL); 665 } 666 667 errno_t async_req_3_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4) 668 { 669 return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, r3, r4, NULL); 670 } 671 672 errno_t async_req_3_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 673 { 674 return async_req_fast(exch, imethod, arg1, arg2, arg3, 0, r1, r2, r3, r4, r5); 675 } 676 677 errno_t async_req_4_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4) 678 { 679 return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, NULL, NULL, NULL, NULL, NULL); 680 } 681 682 errno_t async_req_4_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1) 683 { 684 return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, NULL, NULL, NULL, NULL); 685 } 686 687 errno_t async_req_4_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2) 688 { 689 return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, NULL, NULL, NULL); 690 } 691 692 errno_t async_req_4_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3) 693 { 694 return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, r3, NULL, NULL); 695 } 696 697 errno_t async_req_4_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4) 698 { 699 return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, r3, r4, NULL); 700 } 701 702 errno_t async_req_4_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 703 { 704 return async_req_fast(exch, imethod, arg1, arg2, arg3, arg4, r1, r2, r3, r4, r5); 705 } 706 707 errno_t async_req_5_0(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5) 708 { 709 return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, NULL, NULL, NULL, NULL, NULL); 710 } 711 712 errno_t async_req_5_1(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1) 713 { 714 return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, NULL, NULL, NULL, NULL); 715 } 716 717 errno_t async_req_5_2(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2) 718 { 719 return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, NULL, NULL, NULL); 720 } 721 722 errno_t async_req_5_3(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3) 723 { 724 return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, r3, NULL, NULL); 725 } 726 727 errno_t async_req_5_4(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4) 728 { 729 return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, r3, r4, NULL); 730 } 731 732 errno_t async_req_5_5(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) 733 { 734 return async_req_slow(exch, imethod, arg1, arg2, arg3, arg4, arg5, r1, r2, r3, r4, r5); 518 735 } 519 736 … … 926 1143 * 927 1144 */ 928 errno_t async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg,929 unsigned int *flags, void **dst)1145 static errno_t async_share_in_start(async_exch_t *exch, size_t size, 1146 sysarg_t arg, unsigned int *flags, void **dst) 930 1147 { 931 1148 if (exch == NULL) … … 943 1160 *dst = (void *) _dst; 944 1161 return res; 1162 } 1163 1164 errno_t async_share_in_start_0_0(async_exch_t *exch, size_t size, void **dst) 1165 { 1166 return async_share_in_start(exch, size, 0, NULL, dst); 1167 } 1168 1169 errno_t async_share_in_start_0_1(async_exch_t *exch, size_t size, 1170 unsigned int *flags, void **dst) 1171 { 1172 return async_share_in_start(exch, size, 0, flags, dst); 1173 } 1174 1175 errno_t async_share_in_start_1_0(async_exch_t *exch, size_t size, sysarg_t arg, 1176 void **dst) 1177 { 1178 return async_share_in_start(exch, size, arg, NULL, dst); 1179 } 1180 1181 errno_t async_share_in_start_1_1(async_exch_t *exch, size_t size, sysarg_t arg, 1182 unsigned int *flags, void **dst) 1183 { 1184 return async_share_in_start(exch, size, arg, flags, dst); 945 1185 } 946 1186 -
uspace/lib/c/generic/async/ports.c
re3272101 rd5a89a3 27 27 */ 28 28 29 #define LIBC_ASYNC_C_29 #define _LIBC_ASYNC_C_ 30 30 #include <ipc/ipc.h> 31 31 #include <async.h> 32 32 #include "../private/async.h" 33 #undef LIBC_ASYNC_C_33 #undef _LIBC_ASYNC_C_ 34 34 35 35 #include <ipc/irq.h> -
uspace/lib/c/generic/async/server.c
re3272101 rd5a89a3 96 96 */ 97 97 98 #define LIBC_ASYNC_C_98 #define _LIBC_ASYNC_C_ 99 99 #include <ipc/ipc.h> 100 100 #include <async.h> 101 101 #include "../private/async.h" 102 #undef LIBC_ASYNC_C_102 #undef _LIBC_ASYNC_C_ 103 103 104 104 #include <ipc/irq.h> … … 878 878 } 879 879 880 bool async_get_call(ipc_call_t *call) 881 { 882 return async_get_call_timeout(call, 0); 883 } 884 880 885 void *async_get_client_data(void) 881 886 { … … 1003 1008 1004 1009 /** Add one manager to manager list. */ 1005 fid_t async_create_manager(void)1010 static fid_t async_create_manager(void) 1006 1011 { 1007 1012 fid_t fid = fibril_create_generic(async_manager_fibril, NULL, PAGE_SIZE); … … 1096 1101 } 1097 1102 1098 errno_t async_forward_fast(ipc_call_t *call, async_exch_t *exch,1103 static errno_t async_forward_fast(ipc_call_t *call, async_exch_t *exch, 1099 1104 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode) 1100 1105 { … … 1112 1117 } 1113 1118 1114 errno_t async_forward_slow(ipc_call_t *call, async_exch_t *exch,1119 static errno_t async_forward_slow(ipc_call_t *call, async_exch_t *exch, 1115 1120 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, 1116 1121 sysarg_t arg4, sysarg_t arg5, unsigned int mode) … … 1127 1132 return ipc_forward_slow(chandle, exch->phone, imethod, arg1, arg2, arg3, 1128 1133 arg4, arg5, mode); 1134 } 1135 1136 errno_t async_forward_0(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod, 1137 unsigned int mode) 1138 { 1139 return async_forward_fast(call, exch, imethod, 0, 0, mode); 1140 } 1141 1142 errno_t async_forward_1(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod, 1143 sysarg_t arg1, unsigned int mode) 1144 { 1145 return async_forward_fast(call, exch, imethod, arg1, 0, mode); 1146 } 1147 1148 errno_t async_forward_2(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod, 1149 sysarg_t arg1, sysarg_t arg2, unsigned int mode) 1150 { 1151 return async_forward_fast(call, exch, imethod, arg1, arg2, mode); 1152 } 1153 1154 errno_t async_forward_3(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod, 1155 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, unsigned int mode) 1156 { 1157 return async_forward_slow(call, exch, imethod, arg1, arg2, arg3, 0, 0, 1158 mode); 1159 } 1160 1161 errno_t async_forward_4(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod, 1162 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 1163 unsigned int mode) 1164 { 1165 return async_forward_slow(call, exch, imethod, arg1, arg2, arg3, arg4, 1166 0, mode); 1167 } 1168 1169 errno_t async_forward_5(ipc_call_t *call, async_exch_t *exch, sysarg_t imethod, 1170 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, 1171 unsigned int mode) 1172 { 1173 return async_forward_slow(call, exch, imethod, arg1, arg2, arg3, arg4, 1174 arg5, mode); 1129 1175 } 1130 1176 … … 1320 1366 * 1321 1367 */ 1322 errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,1368 static errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod, 1323 1369 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 1324 1370 ipc_call_t *dataptr) … … 1333 1379 } 1334 1380 1335 aid_t msg = async_send_ fast(exch, imethod, arg1, arg2, arg3, arg4,1381 aid_t msg = async_send_4(exch, imethod, arg1, arg2, arg3, arg4, 1336 1382 dataptr); 1337 1383 if (msg == 0) { … … 1352 1398 1353 1399 return (errno_t) rc; 1400 } 1401 1402 errno_t async_data_read_forward_0_0(async_exch_t *exch, sysarg_t imethod) 1403 { 1404 return async_data_read_forward_fast(exch, imethod, 0, 0, 0, 0, NULL); 1405 } 1406 1407 errno_t async_data_read_forward_1_0(async_exch_t *exch, sysarg_t imethod, 1408 sysarg_t arg1) 1409 { 1410 return async_data_read_forward_fast(exch, imethod, arg1, 0, 0, 0, NULL); 1411 } 1412 1413 errno_t async_data_read_forward_2_0(async_exch_t *exch, sysarg_t imethod, 1414 sysarg_t arg1, sysarg_t arg2) 1415 { 1416 return async_data_read_forward_fast(exch, imethod, arg1, arg2, 0, 1417 0, NULL); 1418 } 1419 1420 errno_t async_data_read_forward_3_0(async_exch_t *exch, sysarg_t imethod, 1421 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3) 1422 { 1423 return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3, 1424 0, NULL); 1425 } 1426 1427 errno_t async_data_read_forward_4_0(async_exch_t *exch, sysarg_t imethod, 1428 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4) 1429 { 1430 return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3, 1431 arg4, NULL); 1432 } 1433 1434 errno_t async_data_read_forward_0_1(async_exch_t *exch, sysarg_t imethod, 1435 ipc_call_t *dataptr) 1436 { 1437 return async_data_read_forward_fast(exch, imethod, 0, 0, 0, 1438 0, dataptr); 1439 } 1440 1441 errno_t async_data_read_forward_1_1(async_exch_t *exch, sysarg_t imethod, 1442 sysarg_t arg1, ipc_call_t *dataptr) 1443 { 1444 return async_data_read_forward_fast(exch, imethod, arg1, 0, 0, 1445 0, dataptr); 1446 } 1447 1448 errno_t async_data_read_forward_2_1(async_exch_t *exch, sysarg_t imethod, 1449 sysarg_t arg1, sysarg_t arg2, ipc_call_t *dataptr) 1450 { 1451 return async_data_read_forward_fast(exch, imethod, arg1, arg2, 0, 1452 0, dataptr); 1453 } 1454 1455 errno_t async_data_read_forward_3_1(async_exch_t *exch, sysarg_t imethod, 1456 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, ipc_call_t *dataptr) 1457 { 1458 return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3, 1459 0, dataptr); 1460 } 1461 1462 errno_t async_data_read_forward_4_1(async_exch_t *exch, sysarg_t imethod, 1463 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 1464 ipc_call_t *dataptr) 1465 { 1466 return async_data_read_forward_fast(exch, imethod, arg1, arg2, arg3, 1467 arg4, dataptr); 1354 1468 } 1355 1469 … … 1497 1611 * 1498 1612 */ 1499 errno_t async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod,1500 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,1501 ipc_call_t *dataptr)1613 static errno_t async_data_write_forward_fast(async_exch_t *exch, 1614 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, 1615 sysarg_t arg4, ipc_call_t *dataptr) 1502 1616 { 1503 1617 if (exch == NULL) … … 1510 1624 } 1511 1625 1512 aid_t msg = async_send_ fast(exch, imethod, arg1, arg2, arg3, arg4,1626 aid_t msg = async_send_4(exch, imethod, arg1, arg2, arg3, arg4, 1513 1627 dataptr); 1514 1628 if (msg == 0) { … … 1531 1645 } 1532 1646 1647 errno_t async_data_write_forward_0_0(async_exch_t *exch, sysarg_t imethod) 1648 { 1649 return async_data_write_forward_fast(exch, imethod, 0, 0, 0, 1650 0, NULL); 1651 } 1652 1653 errno_t async_data_write_forward_1_0(async_exch_t *exch, sysarg_t imethod, 1654 sysarg_t arg1) 1655 { 1656 return async_data_write_forward_fast(exch, imethod, arg1, 0, 0, 1657 0, NULL); 1658 } 1659 1660 errno_t async_data_write_forward_2_0(async_exch_t *exch, sysarg_t imethod, 1661 sysarg_t arg1, sysarg_t arg2) 1662 { 1663 return async_data_write_forward_fast(exch, imethod, arg1, arg2, 0, 1664 0, NULL); 1665 } 1666 1667 errno_t async_data_write_forward_3_0(async_exch_t *exch, sysarg_t imethod, 1668 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3) 1669 { 1670 return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3, 1671 0, NULL); 1672 } 1673 1674 errno_t async_data_write_forward_4_0(async_exch_t *exch, sysarg_t imethod, 1675 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4) 1676 { 1677 return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3, 1678 arg4, NULL); 1679 } 1680 1681 errno_t async_data_write_forward_0_1(async_exch_t *exch, sysarg_t imethod, 1682 ipc_call_t *dataptr) 1683 { 1684 return async_data_write_forward_fast(exch, imethod, 0, 0, 0, 1685 0, dataptr); 1686 } 1687 1688 errno_t async_data_write_forward_1_1(async_exch_t *exch, sysarg_t imethod, 1689 sysarg_t arg1, ipc_call_t *dataptr) 1690 { 1691 return async_data_write_forward_fast(exch, imethod, arg1, 0, 0, 1692 0, dataptr); 1693 } 1694 1695 errno_t async_data_write_forward_2_1(async_exch_t *exch, sysarg_t imethod, 1696 sysarg_t arg1, sysarg_t arg2, ipc_call_t *dataptr) 1697 { 1698 return async_data_write_forward_fast(exch, imethod, arg1, arg2, 0, 1699 0, dataptr); 1700 } 1701 1702 errno_t async_data_write_forward_3_1(async_exch_t *exch, sysarg_t imethod, 1703 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, ipc_call_t *dataptr) 1704 { 1705 return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3, 1706 0, dataptr); 1707 } 1708 1709 errno_t async_data_write_forward_4_1(async_exch_t *exch, sysarg_t imethod, 1710 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 1711 ipc_call_t *dataptr) 1712 { 1713 return async_data_write_forward_fast(exch, imethod, arg1, arg2, arg3, 1714 arg4, dataptr); 1715 } 1716 1533 1717 /** Wrapper for receiving the IPC_M_CONNECT_TO_ME calls. 1534 1718 * -
uspace/lib/c/generic/context.c
re3272101 rd5a89a3 43 43 void context_swap(context_t *self, context_t *other) 44 44 { 45 if (!__ setjmp(self))46 __ longjmp(other, 1);45 if (!__context_save(self)) 46 __context_restore(other, 1); 47 47 } 48 48 49 49 void context_create(context_t *context, const context_create_t *arg) 50 50 { 51 __ setjmp(context);51 __context_save(context); 52 52 context_set(context, FADDR(arg->fn), arg->stack_base, 53 53 arg->stack_size, arg->tls); -
uspace/lib/c/generic/dirent.c
re3272101 rd5a89a3 39 39 #include <errno.h> 40 40 #include <assert.h> 41 42 struct __dirstream { 43 int fd; 44 struct dirent res; 45 aoff64_t pos; 46 }; 41 47 42 48 /** Open directory. -
uspace/lib/c/generic/double_to_str.c
re3272101 rd5a89a3 503 503 { 504 504 /* The whole computation assumes 64bit significand. */ 505 static_assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t) );505 static_assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t), ""); 506 506 507 507 if (ieee_val.is_special) { … … 754 754 { 755 755 /* The whole computation assumes 64bit significand. */ 756 static_assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t) );756 static_assert(sizeof(ieee_val.pos_val.significand) == sizeof(uint64_t), ""); 757 757 758 758 if (ieee_val.is_special) { -
uspace/lib/c/generic/elf/elf_mod.c
re3272101 rd5a89a3 420 420 seg_ptr = (void *) seg_addr; 421 421 422 DPRINTF("Load segment at addr %p, size 0x%zx\n", (void *) seg_addr, 423 entry->p_memsz); 422 DPRINTF("Load segment v_addr=0x%zx at addr %p, size 0x%zx, flags %c%c%c\n", 423 entry->p_vaddr, 424 (void *) seg_addr, 425 entry->p_memsz, 426 (entry->p_flags & PF_R) ? 'r' : '-', 427 (entry->p_flags & PF_W) ? 'w' : '-', 428 (entry->p_flags & PF_X) ? 'x' : '-'); 424 429 425 430 if (entry->p_align > 1) { … … 427 432 (seg_addr % entry->p_align)) { 428 433 DPRINTF("Align check 1 failed offset%%align=0x%zx, " 429 "vaddr%%align=0x%zx \n",434 "vaddr%%align=0x%zx align=0x%zx\n", 430 435 entry->p_offset % entry->p_align, 431 seg_addr % entry->p_align );436 seg_addr % entry->p_align, entry->p_align); 432 437 return EE_INVALID; 433 438 } … … 484 489 return EE_OK; 485 490 486 rc = as_area_change_flags(seg_ptr, flags); 491 DPRINTF("as_area_change_flags(%p, %x)\n", 492 (uint8_t *) base + bias, flags); 493 rc = as_area_change_flags((uint8_t *) base + bias, flags); 487 494 if (rc != EOK) { 488 495 DPRINTF("Failed to set memory area flags.\n"); -
uspace/lib/c/generic/ieee_double.c
re3272101 rd5a89a3 45 45 const int exponent_bias = 1075; 46 46 47 static_assert(sizeof(val) == sizeof(uint64_t) );47 static_assert(sizeof(val) == sizeof(uint64_t), ""); 48 48 49 49 union { -
uspace/lib/c/generic/io/asprintf.c
re3272101 rd5a89a3 51 51 } 52 52 53 int vprintf_ size(const char *fmt, va_list args)53 int vprintf_length(const char *fmt, va_list args) 54 54 { 55 55 printf_spec_t ps = { … … 62 62 } 63 63 64 int printf_ size(const char *fmt, ...)64 int printf_length(const char *fmt, ...) 65 65 { 66 66 va_list args; 67 67 va_start(args, fmt); 68 int ret = vprintf_ size(fmt, args);68 int ret = vprintf_length(fmt, args); 69 69 va_end(args); 70 70 … … 86 86 va_list args2; 87 87 va_copy(args2, args); 88 int ret = v printf_size(fmt, args2);88 int ret = vsnprintf(NULL, 0, fmt, args2); 89 89 va_end(args2); 90 90 91 91 if (ret > 0) { 92 *strp = malloc( STR_BOUNDS(ret)+ 1);92 *strp = malloc(ret + 1); 93 93 if (*strp == NULL) 94 94 return -1; 95 95 96 vsnprintf(*strp, STR_BOUNDS(ret)+ 1, fmt, args);96 vsnprintf(*strp, ret + 1, fmt, args); 97 97 } 98 98 -
uspace/lib/c/generic/irc.c
re3272101 rd5a89a3 36 36 #include <async.h> 37 37 #include <errno.h> 38 #include <fibril.h> 38 39 #include <ipc/irc.h> 39 40 #include <ipc/services.h> -
uspace/lib/c/generic/mem.c
re3272101 rd5a89a3 38 38 #include <stddef.h> 39 39 #include <stdint.h> 40 #include "private/cc.h" 40 41 41 42 /** Fill memory block with a constant value. */ 42 void *memset(void *dest, int b, size_t n) 43 ATTRIBUTE_OPTIMIZE_NO_TLDP 44 void *memset(void *dest, int b, size_t n) 43 45 { 44 46 char *pb; … … 114 116 115 117 /** Copy memory block. */ 116 void *memcpy(void *dst, const void *src, size_t n) 118 ATTRIBUTE_OPTIMIZE_NO_TLDP 119 void *memcpy(void *dst, const void *src, size_t n) 117 120 { 118 121 size_t i; -
uspace/lib/c/generic/pio_trace.c
re3272101 rd5a89a3 81 81 { 82 82 static pio_regions_t regions = { 83 .list = { 84 .head = { ®ions.list.head, ®ions.list.head }, 85 }, 83 .list = LIST_INITIALIZER(regions.list), 86 84 .guard = FIBRIL_RWLOCK_INITIALIZER(regions.guard), 87 85 }; -
uspace/lib/c/generic/private/async.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_ASYNC_H_36 #define LIBC_PRIVATE_ASYNC_H_35 #ifndef _LIBC_PRIVATE_ASYNC_H_ 36 #define _LIBC_PRIVATE_ASYNC_H_ 37 37 38 38 #include <async.h> -
uspace/lib/c/generic/private/cc.h
re3272101 rd5a89a3 34 34 */ 35 35 36 #ifndef LIBC_CC_H_37 #define LIBC_CC_H_36 #ifndef _LIBC_CC_H_ 37 #define _LIBC_CC_H_ 38 38 39 39 #ifndef __clang__ 40 40 #define ATTRIBUTE_OPTIMIZE(opt) \ 41 41 __attribute__ ((optimize(opt))) 42 42 #else 43 43 #define ATTRIBUTE_OPTIMIZE(opt) 44 44 #endif 45 46 #define ATTRIBUTE_OPTIMIZE_NO_TLDP \ 47 ATTRIBUTE_OPTIMIZE("-fno-tree-loop-distribute-patterns") 45 48 46 49 #endif -
uspace/lib/c/generic/private/fibril.h
re3272101 rd5a89a3 27 27 */ 28 28 29 #ifndef LIBC_PRIVATE_FIBRIL_H_30 #define LIBC_PRIVATE_FIBRIL_H_29 #ifndef _LIBC_PRIVATE_FIBRIL_H_ 30 #define _LIBC_PRIVATE_FIBRIL_H_ 31 31 32 32 #include <adt/list.h> … … 35 35 #include <abi/proc/uarg.h> 36 36 #include <fibril.h> 37 #include <ipc/common.h> 37 38 38 39 #include "./futex.h" -
uspace/lib/c/generic/private/futex.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_FUTEX_H_36 #define LIBC_FUTEX_H_35 #ifndef _LIBC_FUTEX_H_ 36 #define _LIBC_FUTEX_H_ 37 37 38 38 #include <assert.h> -
uspace/lib/c/generic/private/io.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_IO_H_36 #define LIBC_PRIVATE_IO_H_35 #ifndef _LIBC_PRIVATE_IO_H_ 36 #define _LIBC_PRIVATE_IO_H_ 37 37 38 38 #include <loader/pcb.h> -
uspace/lib/c/generic/private/libc.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_LIBC_H_36 #define LIBC_PRIVATE_LIBC_H_35 #ifndef _LIBC_PRIVATE_LIBC_H_ 36 #define _LIBC_PRIVATE_LIBC_H_ 37 37 38 38 #include <types/common.h> -
uspace/lib/c/generic/private/loader.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_LOADER_H_36 #define LIBC_PRIVATE_LOADER_H_35 #ifndef _LIBC_PRIVATE_LOADER_H_ 36 #define _LIBC_PRIVATE_LOADER_H_ 37 37 38 38 #include <loader/loader.h> -
uspace/lib/c/generic/private/malloc.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_MALLOC_H_36 #define LIBC_PRIVATE_MALLOC_H_35 #ifndef _LIBC_PRIVATE_MALLOC_H_ 36 #define _LIBC_PRIVATE_MALLOC_H_ 37 37 38 38 extern void __malloc_init(void); -
uspace/lib/c/generic/private/ns.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_NS_H_36 #define LIBC_PRIVATE_NS_H_35 #ifndef _LIBC_PRIVATE_NS_H_ 36 #define _LIBC_PRIVATE_NS_H_ 37 37 38 38 #include <async.h> -
uspace/lib/c/generic/private/scanf.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_SCANF_H_36 #define LIBC_PRIVATE_SCANF_H_35 #ifndef _LIBC_PRIVATE_SCANF_H_ 36 #define _LIBC_PRIVATE_SCANF_H_ 37 37 38 38 #include <stddef.h> -
uspace/lib/c/generic/private/sstream.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_SSTREAM_H_36 #define LIBC_PRIVATE_SSTREAM_H_35 #ifndef _LIBC_PRIVATE_SSTREAM_H_ 36 #define _LIBC_PRIVATE_SSTREAM_H_ 37 37 38 38 #include <stdio.h> -
uspace/lib/c/generic/private/stdio.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_STDIO_H_36 #define LIBC_PRIVATE_STDIO_H_35 #ifndef _LIBC_PRIVATE_STDIO_H_ 36 #define _LIBC_PRIVATE_STDIO_H_ 37 37 38 38 #include <adt/list.h> -
uspace/lib/c/generic/private/stdlib.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_STDLIB_H_36 #define LIBC_PRIVATE_STDLIB_H_35 #ifndef _LIBC_PRIVATE_STDLIB_H_ 36 #define _LIBC_PRIVATE_STDLIB_H_ 37 37 38 38 #include <adt/list.h> -
uspace/lib/c/generic/private/thread.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_PRIVATE_THREAD_H_36 #define LIBC_PRIVATE_THREAD_H_35 #ifndef _LIBC_PRIVATE_THREAD_H_ 36 #define _LIBC_PRIVATE_THREAD_H_ 37 37 38 38 #include <time.h> -
uspace/lib/c/generic/rtld/module.c
re3272101 rd5a89a3 50 50 #include <rtld/rtld_arch.h> 51 51 #include <rtld/module.h> 52 #include <libarch/rtld/module.h> 52 53 53 54 #include "../private/libc.h" … … 206 207 DPRINTF("filename:'%s'\n", name_buf); 207 208 208 rc = elf_load_file_name(name_buf, ELDF_RW, &info);209 rc = elf_load_file_name(name_buf, RTLD_MODULE_LDF, &info); 209 210 if (rc != EE_OK) { 210 211 printf("Failed to load '%s'\n", name_buf); -
uspace/lib/c/generic/setjmp.c
re3272101 rd5a89a3 38 38 void longjmp(jmp_buf env, int val) 39 39 { 40 /* __longjmp defined in assembly doesn't "correct" the value. */ 41 __longjmp(env, val == 0 ? 1 : val); 40 /* 41 * The standard requires that longjmp() ensures that val is not zero. 42 * __context_restore doesn't do that, so we do it here. 43 */ 44 __context_restore(env, val == 0 ? 1 : val); 42 45 } 43 46 -
uspace/lib/c/generic/str.c
re3272101 rd5a89a3 1 1 /* 2 * Copyright (c) 2001-2004 Jakub Jermar 2 3 * Copyright (c) 2005 Martin Decky 3 4 * Copyright (c) 2008 Jiri Svoboda … … 33 34 * @{ 34 35 */ 35 /** @file 36 37 /** 38 * @file 39 * @brief String functions. 40 * 41 * Strings and characters use the Universal Character Set (UCS). The standard 42 * strings, called just strings are encoded in UTF-8. Wide strings (encoded 43 * in UTF-32) are supported to a limited degree. A single character is 44 * represented as wchar_t.@n 45 * 46 * Overview of the terminology:@n 47 * 48 * Term Meaning 49 * -------------------- ---------------------------------------------------- 50 * byte 8 bits stored in uint8_t (unsigned 8 bit integer) 51 * 52 * character UTF-32 encoded Unicode character, stored in wchar_t 53 * (signed 32 bit integer), code points 0 .. 1114111 54 * are valid 55 * 56 * ASCII character 7 bit encoded ASCII character, stored in char 57 * (usually signed 8 bit integer), code points 0 .. 127 58 * are valid 59 * 60 * string UTF-8 encoded NULL-terminated Unicode string, char * 61 * 62 * wide string UTF-32 encoded NULL-terminated Unicode string, 63 * wchar_t * 64 * 65 * [wide] string size number of BYTES in a [wide] string (excluding 66 * the NULL-terminator), size_t 67 * 68 * [wide] string length number of CHARACTERS in a [wide] string (excluding 69 * the NULL-terminator), size_t 70 * 71 * [wide] string width number of display cells on a monospace display taken 72 * by a [wide] string, size_t 73 * 74 * 75 * Overview of string metrics:@n 76 * 77 * Metric Abbrev. Type Meaning 78 * ------ ------ ------ ------------------------------------------------- 79 * size n size_t number of BYTES in a string (excluding the 80 * NULL-terminator) 81 * 82 * length l size_t number of CHARACTERS in a string (excluding the 83 * null terminator) 84 * 85 * width w size_t number of display cells on a monospace display 86 * taken by a string 87 * 88 * 89 * Function naming prefixes:@n 90 * 91 * chr_ operate on characters 92 * ascii_ operate on ASCII characters 93 * str_ operate on strings 94 * wstr_ operate on wide strings 95 * 96 * [w]str_[n|l|w] operate on a prefix limited by size, length 97 * or width 98 * 99 * 100 * A specific character inside a [wide] string can be referred to by:@n 101 * 102 * pointer (char *, wchar_t *) 103 * byte offset (size_t) 104 * character index (size_t) 105 * 36 106 */ 37 107 38 108 #include <str.h> 109 110 #include <assert.h> 111 #include <ctype.h> 112 #include <errno.h> 113 #include <stdbool.h> 39 114 #include <stddef.h> 40 115 #include <stdint.h> 41 116 #include <stdlib.h> 42 #include <assert.h> 43 #include <ctype.h> 44 #include <errno.h> 117 45 118 #include <align.h> 46 119 #include <mem.h> 47 #include <limits.h>48 120 49 121 /** Check the condition if wchar_t is signed */ … … 747 819 /* There must be space for a null terminator in the buffer. */ 748 820 assert(size > 0); 821 assert(src != NULL); 749 822 750 823 size_t src_off = 0; … … 1311 1384 { 1312 1385 size_t size = str_size(src) + 1; 1313 char *dest = (char *)malloc(size);1314 if ( dest == NULL)1315 return (char *)NULL;1386 char *dest = malloc(size); 1387 if (!dest) 1388 return NULL; 1316 1389 1317 1390 str_cpy(dest, size, src); … … 1345 1418 size = n; 1346 1419 1347 char *dest = (char *)malloc(size + 1);1348 if ( dest == NULL)1349 return (char *)NULL;1420 char *dest = malloc(size + 1); 1421 if (!dest) 1422 return NULL; 1350 1423 1351 1424 str_ncpy(dest, size + 1, src, size); -
uspace/lib/c/generic/thread/fibril.c
re3272101 rd5a89a3 550 550 return 0; 551 551 552 fibril->stack_size = (stksz == FIBRIL_DFLT_STK_SIZE) ? 553 stack_size_get() : stksz; 552 fibril->stack_size = stksz; 554 553 fibril->stack = as_area_create(AS_AREA_ANY, fibril->stack_size, 555 554 AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD | … … 572 571 context_create(&fibril->ctx, &sctx); 573 572 return (fid_t) fibril; 573 } 574 575 fid_t fibril_create(errno_t (*func)(void *), void *arg) 576 { 577 return fibril_create_generic(func, arg, stack_size_get()); 574 578 } 575 579 -
uspace/lib/c/generic/time.c
re3272101 rd5a89a3 79 79 clock_t clock(void) 80 80 { 81 static_assert(CLOCKS_PER_SEC == 1000000 );81 static_assert(CLOCKS_PER_SEC == 1000000, ""); 82 82 83 83 size_t count;
Note:
See TracChangeset
for help on using the changeset viewer.