Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of azure_c_shared_utility by
Revision 22:10640b226104, committed 2017-03-10
- Comitter:
- AzureIoTClient
- Date:
- Fri Mar 10 11:48:28 2017 -0800
- Parent:
- 21:b92006c5b9ff
- Child:
- 23:ba126c6eb699
- Commit message:
- 1.1.9
Changed in this revision
--- a/azure_c_shared_utility/macro_utils.h Fri Feb 24 14:01:41 2017 -0800 +++ b/azure_c_shared_utility/macro_utils.h Fri Mar 10 11:48:28 2017 -0800 @@ -3,15 +3,22 @@ /*THIS FILE IS GENERATED*/ /*DO NOT EDIT BY HAND!!!*/ -/*instead edit macro_utils.tt */ +/*instead edit macro_utils.tt here: http://www.github.com/azure/azure-macro-utils-c.git */ +/*and then copy the generated file overwriting this one*/ + #ifndef MACRO_UTILS_H #define MACRO_UTILS_H #include <string.h> -#include "azure_c_shared_utility/optimize_size.h" - -/*"pointer or NULL" macro - because when printf-ing arguments NULL is not valid for %p or %s (section 7.1.4 of C11 standard) */ + +#if (defined OPTIMIZE_RETURN_CODES) + #define __FAILURE__ 1 +#else + #define __FAILURE__ __LINE__ +#endif + +/*"pointer or NULL" macro - because when printf-ing arguments NULL is not valid for %s (section 7.1.4 of C11 standard) */ #define P_OR_NULL(p) (((p)!=NULL)?(p):"NULL") #define TOSTRING_(x) #x @@ -3289,6 +3296,1033 @@ #define DIV2_1 0 #define DIV2_0 0 +#define MOD2(x) C2(MOD2_,x) +#define MOD2_1024 0 +#define MOD2_1023 1 +#define MOD2_1022 0 +#define MOD2_1021 1 +#define MOD2_1020 0 +#define MOD2_1019 1 +#define MOD2_1018 0 +#define MOD2_1017 1 +#define MOD2_1016 0 +#define MOD2_1015 1 +#define MOD2_1014 0 +#define MOD2_1013 1 +#define MOD2_1012 0 +#define MOD2_1011 1 +#define MOD2_1010 0 +#define MOD2_1009 1 +#define MOD2_1008 0 +#define MOD2_1007 1 +#define MOD2_1006 0 +#define MOD2_1005 1 +#define MOD2_1004 0 +#define MOD2_1003 1 +#define MOD2_1002 0 +#define MOD2_1001 1 +#define MOD2_1000 0 +#define MOD2_999 1 +#define MOD2_998 0 +#define MOD2_997 1 +#define MOD2_996 0 +#define MOD2_995 1 +#define MOD2_994 0 +#define MOD2_993 1 +#define MOD2_992 0 +#define MOD2_991 1 +#define MOD2_990 0 +#define MOD2_989 1 +#define MOD2_988 0 +#define MOD2_987 1 +#define MOD2_986 0 +#define MOD2_985 1 +#define MOD2_984 0 +#define MOD2_983 1 +#define MOD2_982 0 +#define MOD2_981 1 +#define MOD2_980 0 +#define MOD2_979 1 +#define MOD2_978 0 +#define MOD2_977 1 +#define MOD2_976 0 +#define MOD2_975 1 +#define MOD2_974 0 +#define MOD2_973 1 +#define MOD2_972 0 +#define MOD2_971 1 +#define MOD2_970 0 +#define MOD2_969 1 +#define MOD2_968 0 +#define MOD2_967 1 +#define MOD2_966 0 +#define MOD2_965 1 +#define MOD2_964 0 +#define MOD2_963 1 +#define MOD2_962 0 +#define MOD2_961 1 +#define MOD2_960 0 +#define MOD2_959 1 +#define MOD2_958 0 +#define MOD2_957 1 +#define MOD2_956 0 +#define MOD2_955 1 +#define MOD2_954 0 +#define MOD2_953 1 +#define MOD2_952 0 +#define MOD2_951 1 +#define MOD2_950 0 +#define MOD2_949 1 +#define MOD2_948 0 +#define MOD2_947 1 +#define MOD2_946 0 +#define MOD2_945 1 +#define MOD2_944 0 +#define MOD2_943 1 +#define MOD2_942 0 +#define MOD2_941 1 +#define MOD2_940 0 +#define MOD2_939 1 +#define MOD2_938 0 +#define MOD2_937 1 +#define MOD2_936 0 +#define MOD2_935 1 +#define MOD2_934 0 +#define MOD2_933 1 +#define MOD2_932 0 +#define MOD2_931 1 +#define MOD2_930 0 +#define MOD2_929 1 +#define MOD2_928 0 +#define MOD2_927 1 +#define MOD2_926 0 +#define MOD2_925 1 +#define MOD2_924 0 +#define MOD2_923 1 +#define MOD2_922 0 +#define MOD2_921 1 +#define MOD2_920 0 +#define MOD2_919 1 +#define MOD2_918 0 +#define MOD2_917 1 +#define MOD2_916 0 +#define MOD2_915 1 +#define MOD2_914 0 +#define MOD2_913 1 +#define MOD2_912 0 +#define MOD2_911 1 +#define MOD2_910 0 +#define MOD2_909 1 +#define MOD2_908 0 +#define MOD2_907 1 +#define MOD2_906 0 +#define MOD2_905 1 +#define MOD2_904 0 +#define MOD2_903 1 +#define MOD2_902 0 +#define MOD2_901 1 +#define MOD2_900 0 +#define MOD2_899 1 +#define MOD2_898 0 +#define MOD2_897 1 +#define MOD2_896 0 +#define MOD2_895 1 +#define MOD2_894 0 +#define MOD2_893 1 +#define MOD2_892 0 +#define MOD2_891 1 +#define MOD2_890 0 +#define MOD2_889 1 +#define MOD2_888 0 +#define MOD2_887 1 +#define MOD2_886 0 +#define MOD2_885 1 +#define MOD2_884 0 +#define MOD2_883 1 +#define MOD2_882 0 +#define MOD2_881 1 +#define MOD2_880 0 +#define MOD2_879 1 +#define MOD2_878 0 +#define MOD2_877 1 +#define MOD2_876 0 +#define MOD2_875 1 +#define MOD2_874 0 +#define MOD2_873 1 +#define MOD2_872 0 +#define MOD2_871 1 +#define MOD2_870 0 +#define MOD2_869 1 +#define MOD2_868 0 +#define MOD2_867 1 +#define MOD2_866 0 +#define MOD2_865 1 +#define MOD2_864 0 +#define MOD2_863 1 +#define MOD2_862 0 +#define MOD2_861 1 +#define MOD2_860 0 +#define MOD2_859 1 +#define MOD2_858 0 +#define MOD2_857 1 +#define MOD2_856 0 +#define MOD2_855 1 +#define MOD2_854 0 +#define MOD2_853 1 +#define MOD2_852 0 +#define MOD2_851 1 +#define MOD2_850 0 +#define MOD2_849 1 +#define MOD2_848 0 +#define MOD2_847 1 +#define MOD2_846 0 +#define MOD2_845 1 +#define MOD2_844 0 +#define MOD2_843 1 +#define MOD2_842 0 +#define MOD2_841 1 +#define MOD2_840 0 +#define MOD2_839 1 +#define MOD2_838 0 +#define MOD2_837 1 +#define MOD2_836 0 +#define MOD2_835 1 +#define MOD2_834 0 +#define MOD2_833 1 +#define MOD2_832 0 +#define MOD2_831 1 +#define MOD2_830 0 +#define MOD2_829 1 +#define MOD2_828 0 +#define MOD2_827 1 +#define MOD2_826 0 +#define MOD2_825 1 +#define MOD2_824 0 +#define MOD2_823 1 +#define MOD2_822 0 +#define MOD2_821 1 +#define MOD2_820 0 +#define MOD2_819 1 +#define MOD2_818 0 +#define MOD2_817 1 +#define MOD2_816 0 +#define MOD2_815 1 +#define MOD2_814 0 +#define MOD2_813 1 +#define MOD2_812 0 +#define MOD2_811 1 +#define MOD2_810 0 +#define MOD2_809 1 +#define MOD2_808 0 +#define MOD2_807 1 +#define MOD2_806 0 +#define MOD2_805 1 +#define MOD2_804 0 +#define MOD2_803 1 +#define MOD2_802 0 +#define MOD2_801 1 +#define MOD2_800 0 +#define MOD2_799 1 +#define MOD2_798 0 +#define MOD2_797 1 +#define MOD2_796 0 +#define MOD2_795 1 +#define MOD2_794 0 +#define MOD2_793 1 +#define MOD2_792 0 +#define MOD2_791 1 +#define MOD2_790 0 +#define MOD2_789 1 +#define MOD2_788 0 +#define MOD2_787 1 +#define MOD2_786 0 +#define MOD2_785 1 +#define MOD2_784 0 +#define MOD2_783 1 +#define MOD2_782 0 +#define MOD2_781 1 +#define MOD2_780 0 +#define MOD2_779 1 +#define MOD2_778 0 +#define MOD2_777 1 +#define MOD2_776 0 +#define MOD2_775 1 +#define MOD2_774 0 +#define MOD2_773 1 +#define MOD2_772 0 +#define MOD2_771 1 +#define MOD2_770 0 +#define MOD2_769 1 +#define MOD2_768 0 +#define MOD2_767 1 +#define MOD2_766 0 +#define MOD2_765 1 +#define MOD2_764 0 +#define MOD2_763 1 +#define MOD2_762 0 +#define MOD2_761 1 +#define MOD2_760 0 +#define MOD2_759 1 +#define MOD2_758 0 +#define MOD2_757 1 +#define MOD2_756 0 +#define MOD2_755 1 +#define MOD2_754 0 +#define MOD2_753 1 +#define MOD2_752 0 +#define MOD2_751 1 +#define MOD2_750 0 +#define MOD2_749 1 +#define MOD2_748 0 +#define MOD2_747 1 +#define MOD2_746 0 +#define MOD2_745 1 +#define MOD2_744 0 +#define MOD2_743 1 +#define MOD2_742 0 +#define MOD2_741 1 +#define MOD2_740 0 +#define MOD2_739 1 +#define MOD2_738 0 +#define MOD2_737 1 +#define MOD2_736 0 +#define MOD2_735 1 +#define MOD2_734 0 +#define MOD2_733 1 +#define MOD2_732 0 +#define MOD2_731 1 +#define MOD2_730 0 +#define MOD2_729 1 +#define MOD2_728 0 +#define MOD2_727 1 +#define MOD2_726 0 +#define MOD2_725 1 +#define MOD2_724 0 +#define MOD2_723 1 +#define MOD2_722 0 +#define MOD2_721 1 +#define MOD2_720 0 +#define MOD2_719 1 +#define MOD2_718 0 +#define MOD2_717 1 +#define MOD2_716 0 +#define MOD2_715 1 +#define MOD2_714 0 +#define MOD2_713 1 +#define MOD2_712 0 +#define MOD2_711 1 +#define MOD2_710 0 +#define MOD2_709 1 +#define MOD2_708 0 +#define MOD2_707 1 +#define MOD2_706 0 +#define MOD2_705 1 +#define MOD2_704 0 +#define MOD2_703 1 +#define MOD2_702 0 +#define MOD2_701 1 +#define MOD2_700 0 +#define MOD2_699 1 +#define MOD2_698 0 +#define MOD2_697 1 +#define MOD2_696 0 +#define MOD2_695 1 +#define MOD2_694 0 +#define MOD2_693 1 +#define MOD2_692 0 +#define MOD2_691 1 +#define MOD2_690 0 +#define MOD2_689 1 +#define MOD2_688 0 +#define MOD2_687 1 +#define MOD2_686 0 +#define MOD2_685 1 +#define MOD2_684 0 +#define MOD2_683 1 +#define MOD2_682 0 +#define MOD2_681 1 +#define MOD2_680 0 +#define MOD2_679 1 +#define MOD2_678 0 +#define MOD2_677 1 +#define MOD2_676 0 +#define MOD2_675 1 +#define MOD2_674 0 +#define MOD2_673 1 +#define MOD2_672 0 +#define MOD2_671 1 +#define MOD2_670 0 +#define MOD2_669 1 +#define MOD2_668 0 +#define MOD2_667 1 +#define MOD2_666 0 +#define MOD2_665 1 +#define MOD2_664 0 +#define MOD2_663 1 +#define MOD2_662 0 +#define MOD2_661 1 +#define MOD2_660 0 +#define MOD2_659 1 +#define MOD2_658 0 +#define MOD2_657 1 +#define MOD2_656 0 +#define MOD2_655 1 +#define MOD2_654 0 +#define MOD2_653 1 +#define MOD2_652 0 +#define MOD2_651 1 +#define MOD2_650 0 +#define MOD2_649 1 +#define MOD2_648 0 +#define MOD2_647 1 +#define MOD2_646 0 +#define MOD2_645 1 +#define MOD2_644 0 +#define MOD2_643 1 +#define MOD2_642 0 +#define MOD2_641 1 +#define MOD2_640 0 +#define MOD2_639 1 +#define MOD2_638 0 +#define MOD2_637 1 +#define MOD2_636 0 +#define MOD2_635 1 +#define MOD2_634 0 +#define MOD2_633 1 +#define MOD2_632 0 +#define MOD2_631 1 +#define MOD2_630 0 +#define MOD2_629 1 +#define MOD2_628 0 +#define MOD2_627 1 +#define MOD2_626 0 +#define MOD2_625 1 +#define MOD2_624 0 +#define MOD2_623 1 +#define MOD2_622 0 +#define MOD2_621 1 +#define MOD2_620 0 +#define MOD2_619 1 +#define MOD2_618 0 +#define MOD2_617 1 +#define MOD2_616 0 +#define MOD2_615 1 +#define MOD2_614 0 +#define MOD2_613 1 +#define MOD2_612 0 +#define MOD2_611 1 +#define MOD2_610 0 +#define MOD2_609 1 +#define MOD2_608 0 +#define MOD2_607 1 +#define MOD2_606 0 +#define MOD2_605 1 +#define MOD2_604 0 +#define MOD2_603 1 +#define MOD2_602 0 +#define MOD2_601 1 +#define MOD2_600 0 +#define MOD2_599 1 +#define MOD2_598 0 +#define MOD2_597 1 +#define MOD2_596 0 +#define MOD2_595 1 +#define MOD2_594 0 +#define MOD2_593 1 +#define MOD2_592 0 +#define MOD2_591 1 +#define MOD2_590 0 +#define MOD2_589 1 +#define MOD2_588 0 +#define MOD2_587 1 +#define MOD2_586 0 +#define MOD2_585 1 +#define MOD2_584 0 +#define MOD2_583 1 +#define MOD2_582 0 +#define MOD2_581 1 +#define MOD2_580 0 +#define MOD2_579 1 +#define MOD2_578 0 +#define MOD2_577 1 +#define MOD2_576 0 +#define MOD2_575 1 +#define MOD2_574 0 +#define MOD2_573 1 +#define MOD2_572 0 +#define MOD2_571 1 +#define MOD2_570 0 +#define MOD2_569 1 +#define MOD2_568 0 +#define MOD2_567 1 +#define MOD2_566 0 +#define MOD2_565 1 +#define MOD2_564 0 +#define MOD2_563 1 +#define MOD2_562 0 +#define MOD2_561 1 +#define MOD2_560 0 +#define MOD2_559 1 +#define MOD2_558 0 +#define MOD2_557 1 +#define MOD2_556 0 +#define MOD2_555 1 +#define MOD2_554 0 +#define MOD2_553 1 +#define MOD2_552 0 +#define MOD2_551 1 +#define MOD2_550 0 +#define MOD2_549 1 +#define MOD2_548 0 +#define MOD2_547 1 +#define MOD2_546 0 +#define MOD2_545 1 +#define MOD2_544 0 +#define MOD2_543 1 +#define MOD2_542 0 +#define MOD2_541 1 +#define MOD2_540 0 +#define MOD2_539 1 +#define MOD2_538 0 +#define MOD2_537 1 +#define MOD2_536 0 +#define MOD2_535 1 +#define MOD2_534 0 +#define MOD2_533 1 +#define MOD2_532 0 +#define MOD2_531 1 +#define MOD2_530 0 +#define MOD2_529 1 +#define MOD2_528 0 +#define MOD2_527 1 +#define MOD2_526 0 +#define MOD2_525 1 +#define MOD2_524 0 +#define MOD2_523 1 +#define MOD2_522 0 +#define MOD2_521 1 +#define MOD2_520 0 +#define MOD2_519 1 +#define MOD2_518 0 +#define MOD2_517 1 +#define MOD2_516 0 +#define MOD2_515 1 +#define MOD2_514 0 +#define MOD2_513 1 +#define MOD2_512 0 +#define MOD2_511 1 +#define MOD2_510 0 +#define MOD2_509 1 +#define MOD2_508 0 +#define MOD2_507 1 +#define MOD2_506 0 +#define MOD2_505 1 +#define MOD2_504 0 +#define MOD2_503 1 +#define MOD2_502 0 +#define MOD2_501 1 +#define MOD2_500 0 +#define MOD2_499 1 +#define MOD2_498 0 +#define MOD2_497 1 +#define MOD2_496 0 +#define MOD2_495 1 +#define MOD2_494 0 +#define MOD2_493 1 +#define MOD2_492 0 +#define MOD2_491 1 +#define MOD2_490 0 +#define MOD2_489 1 +#define MOD2_488 0 +#define MOD2_487 1 +#define MOD2_486 0 +#define MOD2_485 1 +#define MOD2_484 0 +#define MOD2_483 1 +#define MOD2_482 0 +#define MOD2_481 1 +#define MOD2_480 0 +#define MOD2_479 1 +#define MOD2_478 0 +#define MOD2_477 1 +#define MOD2_476 0 +#define MOD2_475 1 +#define MOD2_474 0 +#define MOD2_473 1 +#define MOD2_472 0 +#define MOD2_471 1 +#define MOD2_470 0 +#define MOD2_469 1 +#define MOD2_468 0 +#define MOD2_467 1 +#define MOD2_466 0 +#define MOD2_465 1 +#define MOD2_464 0 +#define MOD2_463 1 +#define MOD2_462 0 +#define MOD2_461 1 +#define MOD2_460 0 +#define MOD2_459 1 +#define MOD2_458 0 +#define MOD2_457 1 +#define MOD2_456 0 +#define MOD2_455 1 +#define MOD2_454 0 +#define MOD2_453 1 +#define MOD2_452 0 +#define MOD2_451 1 +#define MOD2_450 0 +#define MOD2_449 1 +#define MOD2_448 0 +#define MOD2_447 1 +#define MOD2_446 0 +#define MOD2_445 1 +#define MOD2_444 0 +#define MOD2_443 1 +#define MOD2_442 0 +#define MOD2_441 1 +#define MOD2_440 0 +#define MOD2_439 1 +#define MOD2_438 0 +#define MOD2_437 1 +#define MOD2_436 0 +#define MOD2_435 1 +#define MOD2_434 0 +#define MOD2_433 1 +#define MOD2_432 0 +#define MOD2_431 1 +#define MOD2_430 0 +#define MOD2_429 1 +#define MOD2_428 0 +#define MOD2_427 1 +#define MOD2_426 0 +#define MOD2_425 1 +#define MOD2_424 0 +#define MOD2_423 1 +#define MOD2_422 0 +#define MOD2_421 1 +#define MOD2_420 0 +#define MOD2_419 1 +#define MOD2_418 0 +#define MOD2_417 1 +#define MOD2_416 0 +#define MOD2_415 1 +#define MOD2_414 0 +#define MOD2_413 1 +#define MOD2_412 0 +#define MOD2_411 1 +#define MOD2_410 0 +#define MOD2_409 1 +#define MOD2_408 0 +#define MOD2_407 1 +#define MOD2_406 0 +#define MOD2_405 1 +#define MOD2_404 0 +#define MOD2_403 1 +#define MOD2_402 0 +#define MOD2_401 1 +#define MOD2_400 0 +#define MOD2_399 1 +#define MOD2_398 0 +#define MOD2_397 1 +#define MOD2_396 0 +#define MOD2_395 1 +#define MOD2_394 0 +#define MOD2_393 1 +#define MOD2_392 0 +#define MOD2_391 1 +#define MOD2_390 0 +#define MOD2_389 1 +#define MOD2_388 0 +#define MOD2_387 1 +#define MOD2_386 0 +#define MOD2_385 1 +#define MOD2_384 0 +#define MOD2_383 1 +#define MOD2_382 0 +#define MOD2_381 1 +#define MOD2_380 0 +#define MOD2_379 1 +#define MOD2_378 0 +#define MOD2_377 1 +#define MOD2_376 0 +#define MOD2_375 1 +#define MOD2_374 0 +#define MOD2_373 1 +#define MOD2_372 0 +#define MOD2_371 1 +#define MOD2_370 0 +#define MOD2_369 1 +#define MOD2_368 0 +#define MOD2_367 1 +#define MOD2_366 0 +#define MOD2_365 1 +#define MOD2_364 0 +#define MOD2_363 1 +#define MOD2_362 0 +#define MOD2_361 1 +#define MOD2_360 0 +#define MOD2_359 1 +#define MOD2_358 0 +#define MOD2_357 1 +#define MOD2_356 0 +#define MOD2_355 1 +#define MOD2_354 0 +#define MOD2_353 1 +#define MOD2_352 0 +#define MOD2_351 1 +#define MOD2_350 0 +#define MOD2_349 1 +#define MOD2_348 0 +#define MOD2_347 1 +#define MOD2_346 0 +#define MOD2_345 1 +#define MOD2_344 0 +#define MOD2_343 1 +#define MOD2_342 0 +#define MOD2_341 1 +#define MOD2_340 0 +#define MOD2_339 1 +#define MOD2_338 0 +#define MOD2_337 1 +#define MOD2_336 0 +#define MOD2_335 1 +#define MOD2_334 0 +#define MOD2_333 1 +#define MOD2_332 0 +#define MOD2_331 1 +#define MOD2_330 0 +#define MOD2_329 1 +#define MOD2_328 0 +#define MOD2_327 1 +#define MOD2_326 0 +#define MOD2_325 1 +#define MOD2_324 0 +#define MOD2_323 1 +#define MOD2_322 0 +#define MOD2_321 1 +#define MOD2_320 0 +#define MOD2_319 1 +#define MOD2_318 0 +#define MOD2_317 1 +#define MOD2_316 0 +#define MOD2_315 1 +#define MOD2_314 0 +#define MOD2_313 1 +#define MOD2_312 0 +#define MOD2_311 1 +#define MOD2_310 0 +#define MOD2_309 1 +#define MOD2_308 0 +#define MOD2_307 1 +#define MOD2_306 0 +#define MOD2_305 1 +#define MOD2_304 0 +#define MOD2_303 1 +#define MOD2_302 0 +#define MOD2_301 1 +#define MOD2_300 0 +#define MOD2_299 1 +#define MOD2_298 0 +#define MOD2_297 1 +#define MOD2_296 0 +#define MOD2_295 1 +#define MOD2_294 0 +#define MOD2_293 1 +#define MOD2_292 0 +#define MOD2_291 1 +#define MOD2_290 0 +#define MOD2_289 1 +#define MOD2_288 0 +#define MOD2_287 1 +#define MOD2_286 0 +#define MOD2_285 1 +#define MOD2_284 0 +#define MOD2_283 1 +#define MOD2_282 0 +#define MOD2_281 1 +#define MOD2_280 0 +#define MOD2_279 1 +#define MOD2_278 0 +#define MOD2_277 1 +#define MOD2_276 0 +#define MOD2_275 1 +#define MOD2_274 0 +#define MOD2_273 1 +#define MOD2_272 0 +#define MOD2_271 1 +#define MOD2_270 0 +#define MOD2_269 1 +#define MOD2_268 0 +#define MOD2_267 1 +#define MOD2_266 0 +#define MOD2_265 1 +#define MOD2_264 0 +#define MOD2_263 1 +#define MOD2_262 0 +#define MOD2_261 1 +#define MOD2_260 0 +#define MOD2_259 1 +#define MOD2_258 0 +#define MOD2_257 1 +#define MOD2_256 0 +#define MOD2_255 1 +#define MOD2_254 0 +#define MOD2_253 1 +#define MOD2_252 0 +#define MOD2_251 1 +#define MOD2_250 0 +#define MOD2_249 1 +#define MOD2_248 0 +#define MOD2_247 1 +#define MOD2_246 0 +#define MOD2_245 1 +#define MOD2_244 0 +#define MOD2_243 1 +#define MOD2_242 0 +#define MOD2_241 1 +#define MOD2_240 0 +#define MOD2_239 1 +#define MOD2_238 0 +#define MOD2_237 1 +#define MOD2_236 0 +#define MOD2_235 1 +#define MOD2_234 0 +#define MOD2_233 1 +#define MOD2_232 0 +#define MOD2_231 1 +#define MOD2_230 0 +#define MOD2_229 1 +#define MOD2_228 0 +#define MOD2_227 1 +#define MOD2_226 0 +#define MOD2_225 1 +#define MOD2_224 0 +#define MOD2_223 1 +#define MOD2_222 0 +#define MOD2_221 1 +#define MOD2_220 0 +#define MOD2_219 1 +#define MOD2_218 0 +#define MOD2_217 1 +#define MOD2_216 0 +#define MOD2_215 1 +#define MOD2_214 0 +#define MOD2_213 1 +#define MOD2_212 0 +#define MOD2_211 1 +#define MOD2_210 0 +#define MOD2_209 1 +#define MOD2_208 0 +#define MOD2_207 1 +#define MOD2_206 0 +#define MOD2_205 1 +#define MOD2_204 0 +#define MOD2_203 1 +#define MOD2_202 0 +#define MOD2_201 1 +#define MOD2_200 0 +#define MOD2_199 1 +#define MOD2_198 0 +#define MOD2_197 1 +#define MOD2_196 0 +#define MOD2_195 1 +#define MOD2_194 0 +#define MOD2_193 1 +#define MOD2_192 0 +#define MOD2_191 1 +#define MOD2_190 0 +#define MOD2_189 1 +#define MOD2_188 0 +#define MOD2_187 1 +#define MOD2_186 0 +#define MOD2_185 1 +#define MOD2_184 0 +#define MOD2_183 1 +#define MOD2_182 0 +#define MOD2_181 1 +#define MOD2_180 0 +#define MOD2_179 1 +#define MOD2_178 0 +#define MOD2_177 1 +#define MOD2_176 0 +#define MOD2_175 1 +#define MOD2_174 0 +#define MOD2_173 1 +#define MOD2_172 0 +#define MOD2_171 1 +#define MOD2_170 0 +#define MOD2_169 1 +#define MOD2_168 0 +#define MOD2_167 1 +#define MOD2_166 0 +#define MOD2_165 1 +#define MOD2_164 0 +#define MOD2_163 1 +#define MOD2_162 0 +#define MOD2_161 1 +#define MOD2_160 0 +#define MOD2_159 1 +#define MOD2_158 0 +#define MOD2_157 1 +#define MOD2_156 0 +#define MOD2_155 1 +#define MOD2_154 0 +#define MOD2_153 1 +#define MOD2_152 0 +#define MOD2_151 1 +#define MOD2_150 0 +#define MOD2_149 1 +#define MOD2_148 0 +#define MOD2_147 1 +#define MOD2_146 0 +#define MOD2_145 1 +#define MOD2_144 0 +#define MOD2_143 1 +#define MOD2_142 0 +#define MOD2_141 1 +#define MOD2_140 0 +#define MOD2_139 1 +#define MOD2_138 0 +#define MOD2_137 1 +#define MOD2_136 0 +#define MOD2_135 1 +#define MOD2_134 0 +#define MOD2_133 1 +#define MOD2_132 0 +#define MOD2_131 1 +#define MOD2_130 0 +#define MOD2_129 1 +#define MOD2_128 0 +#define MOD2_127 1 +#define MOD2_126 0 +#define MOD2_125 1 +#define MOD2_124 0 +#define MOD2_123 1 +#define MOD2_122 0 +#define MOD2_121 1 +#define MOD2_120 0 +#define MOD2_119 1 +#define MOD2_118 0 +#define MOD2_117 1 +#define MOD2_116 0 +#define MOD2_115 1 +#define MOD2_114 0 +#define MOD2_113 1 +#define MOD2_112 0 +#define MOD2_111 1 +#define MOD2_110 0 +#define MOD2_109 1 +#define MOD2_108 0 +#define MOD2_107 1 +#define MOD2_106 0 +#define MOD2_105 1 +#define MOD2_104 0 +#define MOD2_103 1 +#define MOD2_102 0 +#define MOD2_101 1 +#define MOD2_100 0 +#define MOD2_99 1 +#define MOD2_98 0 +#define MOD2_97 1 +#define MOD2_96 0 +#define MOD2_95 1 +#define MOD2_94 0 +#define MOD2_93 1 +#define MOD2_92 0 +#define MOD2_91 1 +#define MOD2_90 0 +#define MOD2_89 1 +#define MOD2_88 0 +#define MOD2_87 1 +#define MOD2_86 0 +#define MOD2_85 1 +#define MOD2_84 0 +#define MOD2_83 1 +#define MOD2_82 0 +#define MOD2_81 1 +#define MOD2_80 0 +#define MOD2_79 1 +#define MOD2_78 0 +#define MOD2_77 1 +#define MOD2_76 0 +#define MOD2_75 1 +#define MOD2_74 0 +#define MOD2_73 1 +#define MOD2_72 0 +#define MOD2_71 1 +#define MOD2_70 0 +#define MOD2_69 1 +#define MOD2_68 0 +#define MOD2_67 1 +#define MOD2_66 0 +#define MOD2_65 1 +#define MOD2_64 0 +#define MOD2_63 1 +#define MOD2_62 0 +#define MOD2_61 1 +#define MOD2_60 0 +#define MOD2_59 1 +#define MOD2_58 0 +#define MOD2_57 1 +#define MOD2_56 0 +#define MOD2_55 1 +#define MOD2_54 0 +#define MOD2_53 1 +#define MOD2_52 0 +#define MOD2_51 1 +#define MOD2_50 0 +#define MOD2_49 1 +#define MOD2_48 0 +#define MOD2_47 1 +#define MOD2_46 0 +#define MOD2_45 1 +#define MOD2_44 0 +#define MOD2_43 1 +#define MOD2_42 0 +#define MOD2_41 1 +#define MOD2_40 0 +#define MOD2_39 1 +#define MOD2_38 0 +#define MOD2_37 1 +#define MOD2_36 0 +#define MOD2_35 1 +#define MOD2_34 0 +#define MOD2_33 1 +#define MOD2_32 0 +#define MOD2_31 1 +#define MOD2_30 0 +#define MOD2_29 1 +#define MOD2_28 0 +#define MOD2_27 1 +#define MOD2_26 0 +#define MOD2_25 1 +#define MOD2_24 0 +#define MOD2_23 1 +#define MOD2_22 0 +#define MOD2_21 1 +#define MOD2_20 0 +#define MOD2_19 1 +#define MOD2_18 0 +#define MOD2_17 1 +#define MOD2_16 0 +#define MOD2_15 1 +#define MOD2_14 0 +#define MOD2_13 1 +#define MOD2_12 0 +#define MOD2_11 1 +#define MOD2_10 0 +#define MOD2_9 1 +#define MOD2_8 0 +#define MOD2_7 1 +#define MOD2_6 0 +#define MOD2_5 1 +#define MOD2_4 0 +#define MOD2_3 1 +#define MOD2_2 0 +#define MOD2_1 1 +#define MOD2_0 0 + #define THE_NTH_ARG(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22, P23, P24, P25, P26, P27, P28, P29, P30, P31, P32, P33, P34, P35, P36, P37, P38, P39, P40, P41, P42, P43, P44, P45, P46, P47, P48, P49, P50, P51, P52, P53, P54, P55, P56, P57, P58, P59, P60, P61, P62, P63, P64, P65, P66, P67, P68, P69, P70, P71, P72, P73, P74, P75, P76, P77, P78, P79, P80, P81, P82, P83, P84, P85, P86, P87, P88, P89, P90, P91, P92, P93, P94, P95, P96, P97, P98, P99, P100, P101, P102, P103, P104, P105, P106, P107, P108, P109, P110, P111, P112, P113, P114, P115, P116, P117, P118, P119, P120, P121, P122, P123, P124, ... ) P124 #define _TRIGGER_PARENTHESIS_(...) ,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/azure_c_shared_utility/tcpsocketconnection_c.h Fri Mar 10 11:48:28 2017 -0800
@@ -0,0 +1,28 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+#ifndef TCPSOCKETCONNECTION_C_H
+#define TCPSOCKETCONNECTION_C_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef void* TCPSOCKETCONNECTION_HANDLE;
+
+ TCPSOCKETCONNECTION_HANDLE tcpsocketconnection_create(void);
+ void tcpsocketconnection_set_blocking(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, bool blocking, unsigned int timeout);
+ void tcpsocketconnection_destroy(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle);
+ int tcpsocketconnection_connect(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, const char* host, const int port);
+ bool tcpsocketconnection_is_connected(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle);
+ void tcpsocketconnection_close(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle);
+ int tcpsocketconnection_send(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, const char* data, int length);
+ int tcpsocketconnection_send_all(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, const char* data, int length);
+ int tcpsocketconnection_receive(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, char* data, int length);
+ int tcpsocketconnection_receive_all(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, char* data, int length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TCPSOCKETCONNECTION_C_H */
--- a/azure_c_shared_utility/tlsio.h Fri Feb 24 14:01:41 2017 -0800
+++ b/azure_c_shared_utility/tlsio.h Fri Mar 10 11:48:28 2017 -0800
@@ -8,11 +8,14 @@
extern "C" {
#endif /* __cplusplus */
+#include "xio.h"
typedef struct TLSIO_CONFIG_TAG
{
- const char* hostname;
- int port;
+ const char* hostname;
+ int port;
+ const IO_INTERFACE_DESCRIPTION* underlying_io_interface;
+ void* underlying_io_parameters;
} TLSIO_CONFIG;
#ifdef __cplusplus
--- a/httpapi_compact.c Fri Feb 24 14:01:41 2017 -0800
+++ b/httpapi_compact.c Fri Mar 10 11:48:28 2017 -0800
@@ -218,6 +218,8 @@
{
tlsio_config.hostname = hostName;
tlsio_config.port = 443;
+ tlsio_config.underlying_io_interface = NULL;
+ tlsio_config.underlying_io_parameters = NULL;
http_instance->xio_handle = xio_create(platform_get_default_tlsio(), (void*)&tlsio_config);
--- a/lock_rtx_mbed.cpp Fri Feb 24 14:01:41 2017 -0800
+++ b/lock_rtx_mbed.cpp Fri Mar 10 11:48:28 2017 -0800
@@ -5,84 +5,91 @@
#include "azure_c_shared_utility/xlogging.h"
#include "rtos.h"
-DEFINE_ENUM_STRINGS(LOCK_RESULT, LOCK_RESULT_VALUES);
-/*Tests_SRS_LOCK_99_002:[ This API on success will return a valid lock handle which should be a non NULL value]*/
LOCK_HANDLE Lock_Init(void)
{
- Mutex* lock_mtx = new Mutex();
-
- return (LOCK_HANDLE)lock_mtx;
+ /* Codes_SRS_LOCK_10_002: [Lock_Init on success shall return a valid lock handle which should be a non NULL value] */
+ /* Codes_SRS_LOCK_10_003: [Lock_Init on error shall return NULL] */
+ Mutex* result = new Mutex();
+ if (result == NULL)
+ {
+ LogError("Failed to instantiate a new Mutex object.");
+ }
+
+ return (LOCK_HANDLE)result;
}
-
LOCK_RESULT Lock(LOCK_HANDLE handle)
{
LOCK_RESULT result;
if (handle == NULL)
{
- /*Tests_SRS_LOCK_99_007:[ This API on NULL handle passed returns LOCK_ERROR]*/
+ /* Codes_SRS_LOCK_10_007: [Lock on NULL handle passed returns LOCK_ERROR] */
+ LogError("Invalid argument; handle is NULL.");
result = LOCK_ERROR;
- LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
}
else
{
Mutex* lock_mtx = (Mutex*)handle;
if (lock_mtx->lock() == osOK)
{
- /*Tests_SRS_LOCK_99_005:[ This API on success should return LOCK_OK]*/
+ /* Codes_SRS_LOCK_10_005: [Lock on success shall return LOCK_OK] */
result = LOCK_OK;
}
else
{
- /*Tests_SRS_LOCK_99_006:[ This API on error should return LOCK_ERROR]*/
+ /* Codes_SRS_LOCK_10_006: [Lock on error shall return LOCK_ERROR] */
+ LogError("Mutex(%p)->lock() failed.", handle);
result = LOCK_ERROR;
- LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
}
}
+
return result;
}
+
LOCK_RESULT Unlock(LOCK_HANDLE handle)
{
LOCK_RESULT result;
if (handle == NULL)
{
- /*Tests_SRS_LOCK_99_011:[ This API on NULL handle passed returns LOCK_ERROR]*/
+ /* Codes_SRS_LOCK_10_007: [Unlock on NULL handle passed returns LOCK_ERROR] */
+ LogError("Invalid argument; handle is NULL.");
result = LOCK_ERROR;
- LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
}
else
{
Mutex* lock_mtx = (Mutex*)handle;
if (lock_mtx->unlock() == osOK)
{
- /*Tests_SRS_LOCK_99_009:[ This API on success should return LOCK_OK]*/
+ /* Codes_SRS_LOCK_10_009: [Unlock on success shall return LOCK_OK] */
result = LOCK_OK;
}
else
{
- /*Tests_SRS_LOCK_99_010:[ This API on error should return LOCK_ERROR]*/
+ /* Codes_SRS_LOCK_10_010: [Unlock on error shall return LOCK_ERROR] */
+ LogError("Mutex(%p)->unlock() failed.", handle);
result = LOCK_ERROR;
- LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
}
}
+
return result;
}
LOCK_RESULT Lock_Deinit(LOCK_HANDLE handle)
{
- LOCK_RESULT result=LOCK_OK ;
+ LOCK_RESULT result;
if (NULL == handle)
{
- /*Tests_SRS_LOCK_99_013:[ This API on NULL handle passed returns LOCK_ERROR]*/
+ /* Codes_SRS_LOCK_10_007: [Lock_Deinit on NULL handle passed returns LOCK_ERROR] */
+ LogError("Invalid argument; handle is NULL.");
result = LOCK_ERROR;
- LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
}
else
{
- /*Tests_SRS_LOCK_99_012:[ This API frees the memory pointed by handle]*/
+ /* Codes_SRS_LOCK_10_012: [Lock_Deinit frees the memory pointed by handle] */
Mutex* lock_mtx = (Mutex*)handle;
delete lock_mtx;
+ result = LOCK_OK;
}
return result;
--- a/tcpsocketconnection_c.h Fri Feb 24 14:01:41 2017 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-#ifndef TCPSOCKETCONNECTION_C_H
-#define TCPSOCKETCONNECTION_C_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- typedef void* TCPSOCKETCONNECTION_HANDLE;
-
- TCPSOCKETCONNECTION_HANDLE tcpsocketconnection_create(void);
- void tcpsocketconnection_set_blocking(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, bool blocking, unsigned int timeout);
- void tcpsocketconnection_destroy(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle);
- int tcpsocketconnection_connect(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, const char* host, const int port);
- bool tcpsocketconnection_is_connected(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle);
- void tcpsocketconnection_close(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle);
- int tcpsocketconnection_send(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, const char* data, int length);
- int tcpsocketconnection_send_all(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, const char* data, int length);
- int tcpsocketconnection_receive(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, char* data, int length);
- int tcpsocketconnection_receive_all(TCPSOCKETCONNECTION_HANDLE tcpSocketConnectionHandle, char* data, int length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* TCPSOCKETCONNECTION_C_H */
--- a/tlsio_wolfssl.c Fri Feb 24 14:01:41 2017 -0800
+++ b/tlsio_wolfssl.c Fri Mar 10 11:48:28 2017 -0800
@@ -15,7 +15,6 @@
#include "azure_c_shared_utility/xlogging.h"
#include "azure_c_shared_utility/shared_util_options.h"
-
typedef enum TLSIO_STATE_ENUM_TAG
{
TLSIO_STATE_NOT_OPEN,
@@ -47,8 +46,6 @@
char* certificate;
char* x509certificate;
char* x509privatekey;
- char* hostname;
- int port;
} TLS_IO_INSTANCE;
/*this function will clone an option given by name and value*/
@@ -548,77 +545,83 @@
TLSIO_CONFIG* tls_io_config = io_create_parameters;
result = (TLS_IO_INSTANCE*)malloc(sizeof(TLS_IO_INSTANCE));
- if (result != NULL)
+ if (result == NULL)
+ {
+ LogError("Failed allocating memory for the TLS IO instance.");
+ }
+ else
{
- memset(result, 0, sizeof(TLS_IO_INSTANCE));
- if (mallocAndStrcpy_s(&result->hostname, tls_io_config->hostname) != 0)
+ (void)memset(result, 0, sizeof(TLS_IO_INSTANCE));
+
+ result->socket_io_read_bytes = 0;
+ result->socket_io_read_byte_count = 0;
+ result->socket_io = NULL;
+
+ result->ssl = NULL;
+ result->certificate = NULL;
+ result->x509certificate = NULL;
+ result->x509privatekey = NULL;
+
+ result->on_bytes_received = NULL;
+ result->on_bytes_received_context = NULL;
+
+ result->on_io_open_complete = NULL;
+ result->on_io_open_complete_context = NULL;
+
+ result->on_io_close_complete = NULL;
+ result->on_io_close_complete_context = NULL;
+
+ result->on_io_error = NULL;
+ result->on_io_error_context = NULL;
+
+ result->tlsio_state = TLSIO_STATE_NOT_OPEN;
+
+ result->ssl_context = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
+ if (result->ssl_context == NULL)
{
- LogError("Cannot copy the hostname");
+ LogError("Cannot create the wolfSSL context");
free(result);
result = NULL;
}
else
{
- result->port = tls_io_config->port;
-
- result->socket_io_read_bytes = 0;
- result->socket_io_read_byte_count = 0;
- result->socket_io = NULL;
+ const IO_INTERFACE_DESCRIPTION* underlying_io_interface;
+ void* io_interface_parameters;
- result->ssl = NULL;
- result->certificate = NULL;
- result->x509certificate = NULL;
- result->x509privatekey = NULL;
-
- result->on_bytes_received = NULL;
- result->on_bytes_received_context = NULL;
+ if (tls_io_config->underlying_io_interface != NULL)
+ {
+ underlying_io_interface = tls_io_config->underlying_io_interface;
+ io_interface_parameters = tls_io_config->underlying_io_parameters;
+ }
+ else
+ {
+ SOCKETIO_CONFIG socketio_config;
- result->on_io_open_complete = NULL;
- result->on_io_open_complete_context = NULL;
-
- result->on_io_close_complete = NULL;
- result->on_io_close_complete_context = NULL;
+ socketio_config.hostname = tls_io_config->hostname;
+ socketio_config.port = tls_io_config->port;
+ socketio_config.accepted_socket = NULL;
- result->on_io_error = NULL;
- result->on_io_error_context = NULL;
-
- result->tlsio_state = TLSIO_STATE_NOT_OPEN;
+ underlying_io_interface = socketio_get_interface_description();
+ io_interface_parameters = &socketio_config;
+ }
- result->ssl_context = wolfSSL_CTX_new(wolfTLSv1_client_method());
- if (result->ssl_context == NULL)
+ if (underlying_io_interface == NULL)
{
- LogError("Cannot create the wolfSSL context");
- free(result->hostname);
+ LogError("Failed getting socket IO interface description.");
+ wolfSSL_CTX_free(result->ssl_context);
free(result);
result = NULL;
}
else
{
- const IO_INTERFACE_DESCRIPTION* socket_io_interface = socketio_get_interface_description();
- if (socket_io_interface == NULL)
+ result->socket_io = xio_create(underlying_io_interface, io_interface_parameters);
+ if (result->socket_io == NULL)
{
+ LogError("Failure connecting to underlying socket_io");
wolfSSL_CTX_free(result->ssl_context);
- free(result->hostname);
free(result);
result = NULL;
}
- else
- {
- SOCKETIO_CONFIG socketio_config;
- socketio_config.hostname = result->hostname;
- socketio_config.port = result->port;
- socketio_config.accepted_socket = NULL;
-
- result->socket_io = xio_create(socket_io_interface, &socketio_config);
- if (result->socket_io == NULL)
- {
- LogError("Failure connecting to underlying socket_io");
- wolfSSL_CTX_free(result->ssl_context);
- free(result->hostname);
- free(result);
- result = NULL;
- }
- }
}
}
}
@@ -649,10 +652,6 @@
{
free(tls_io_instance->x509privatekey);
}
- if (tls_io_instance->hostname != NULL)
- {
- free(tls_io_instance->hostname);
- }
wolfSSL_CTX_free(tls_io_instance->ssl_context);
xio_destroy(tls_io_instance->socket_io);
