CloudKit.m
1 /* 2 This file is part of Darling. 3 4 Copyright (C) 2019 Lubos Dolezel 5 6 Darling is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 Darling is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with Darling. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 21 #include <CloudKit/CloudKit.h> 22 #include <stdlib.h> 23 #include <stdio.h> 24 25 static int verbose = 0; 26 27 __attribute__((constructor)) 28 static void initme(void) { 29 verbose = getenv("STUB_VERBOSE") != NULL; 30 } 31 32 void* CKAbsoluteHostTime(void) 33 { 34 if (verbose) puts("STUB: CKAbsoluteHostTime called"); 35 return NULL; 36 } 37 38 void* CKAcceptablePredicateValueClasses(void) 39 { 40 if (verbose) puts("STUB: CKAcceptablePredicateValueClasses called"); 41 return NULL; 42 } 43 44 void* CKAcceptableValueClasses(void) 45 { 46 if (verbose) puts("STUB: CKAcceptableValueClasses called"); 47 return NULL; 48 } 49 50 void* CKAllClientEntitlementKeys(void) 51 { 52 if (verbose) puts("STUB: CKAllClientEntitlementKeys called"); 53 return NULL; 54 } 55 56 void* CKAppIdentifierFromTeamAppTuple(void) 57 { 58 if (verbose) puts("STUB: CKAppIdentifierFromTeamAppTuple called"); 59 return NULL; 60 } 61 62 void* CKAutoBugCaptureReasonToString(void) 63 { 64 if (verbose) puts("STUB: CKAutoBugCaptureReasonToString called"); 65 return NULL; 66 } 67 68 void* CKBoolFromCKTernary(void) 69 { 70 if (verbose) puts("STUB: CKBoolFromCKTernary called"); 71 return NULL; 72 } 73 74 void* CKBuildVersion(void) 75 { 76 if (verbose) puts("STUB: CKBuildVersion called"); 77 return NULL; 78 } 79 80 void* CKCFArrayForEach(void) 81 { 82 if (verbose) puts("STUB: CKCFArrayForEach called"); 83 return NULL; 84 } 85 86 void* CKCFDictionaryForEach(void) 87 { 88 if (verbose) puts("STUB: CKCFDictionaryForEach called"); 89 return NULL; 90 } 91 92 void* CKCanRetryForError(void) 93 { 94 if (verbose) puts("STUB: CKCanRetryForError called"); 95 return NULL; 96 } 97 98 void* CKContainerEnvironmentFromString(void) 99 { 100 if (verbose) puts("STUB: CKContainerEnvironmentFromString called"); 101 return NULL; 102 } 103 104 void* CKContainerEnvironmentString(void) 105 { 106 if (verbose) puts("STUB: CKContainerEnvironmentString called"); 107 return NULL; 108 } 109 110 void* CKContainerIdentifierIsAppleInternal(void) 111 { 112 if (verbose) puts("STUB: CKContainerIdentifierIsAppleInternal called"); 113 return NULL; 114 } 115 116 void* CKCreateDirectoryAtPath(void) 117 { 118 if (verbose) puts("STUB: CKCreateDirectoryAtPath called"); 119 return NULL; 120 } 121 122 void* CKCreateDirectoryAtPathWithAttributes(void) 123 { 124 if (verbose) puts("STUB: CKCreateDirectoryAtPathWithAttributes called"); 125 return NULL; 126 } 127 128 void* CKCreateGUID(void) 129 { 130 if (verbose) puts("STUB: CKCreateGUID called"); 131 return NULL; 132 } 133 134 void* CKCurrentProcessIsDaemon(void) 135 { 136 if (verbose) puts("STUB: CKCurrentProcessIsDaemon called"); 137 return NULL; 138 } 139 140 void* CKCurrentQueueIsMainQueue(void) 141 { 142 if (verbose) puts("STUB: CKCurrentQueueIsMainQueue called"); 143 return NULL; 144 } 145 146 void* CKCurrentQueueQualityOfService(void) 147 { 148 if (verbose) puts("STUB: CKCurrentQueueQualityOfService called"); 149 return NULL; 150 } 151 152 void* CKCurrentThreadQualityOfService(void) 153 { 154 if (verbose) puts("STUB: CKCurrentThreadQualityOfService called"); 155 return NULL; 156 } 157 158 void* CKDPDateReadFrom(void) 159 { 160 if (verbose) puts("STUB: CKDPDateReadFrom called"); 161 return NULL; 162 } 163 164 void* CKDPIdentifierReadFrom(void) 165 { 166 if (verbose) puts("STUB: CKDPIdentifierReadFrom called"); 167 return NULL; 168 } 169 170 void* CKDPLocationCoordinateReadFrom(void) 171 { 172 if (verbose) puts("STUB: CKDPLocationCoordinateReadFrom called"); 173 return NULL; 174 } 175 176 void* CKDPRecordFieldValueEncryptedValueReadFrom(void) 177 { 178 if (verbose) puts("STUB: CKDPRecordFieldValueEncryptedValueReadFrom called"); 179 return NULL; 180 } 181 182 void* CKDPRecordIdentifierReadFrom(void) 183 { 184 if (verbose) puts("STUB: CKDPRecordIdentifierReadFrom called"); 185 return NULL; 186 } 187 188 void* CKDPRecordReferenceReadFrom(void) 189 { 190 if (verbose) puts("STUB: CKDPRecordReferenceReadFrom called"); 191 return NULL; 192 } 193 194 void* CKDPRecordZoneIdentifierReadFrom(void) 195 { 196 if (verbose) puts("STUB: CKDPRecordZoneIdentifierReadFrom called"); 197 return NULL; 198 } 199 200 void* CKDatabaseScopeFromString(void) 201 { 202 if (verbose) puts("STUB: CKDatabaseScopeFromString called"); 203 return NULL; 204 } 205 206 void* CKDatabaseScopeString(void) 207 { 208 if (verbose) puts("STUB: CKDatabaseScopeString called"); 209 return NULL; 210 } 211 212 void* CKDatasAreBothNilOrEqual(void) 213 { 214 if (verbose) puts("STUB: CKDatasAreBothNilOrEqual called"); 215 return NULL; 216 } 217 218 void* CKDeviceID(void) 219 { 220 if (verbose) puts("STUB: CKDeviceID called"); 221 return NULL; 222 } 223 224 void* CKEarliestStartDateAfterError(void) 225 { 226 if (verbose) puts("STUB: CKEarliestStartDateAfterError called"); 227 return NULL; 228 } 229 230 void* CKErrorChainFromError(void) 231 { 232 if (verbose) puts("STUB: CKErrorChainFromError called"); 233 return NULL; 234 } 235 236 void* CKErrorChainStringFromError(void) 237 { 238 if (verbose) puts("STUB: CKErrorChainStringFromError called"); 239 return NULL; 240 } 241 242 void* CKErrorCodeForInternalErrorCode(void) 243 { 244 if (verbose) puts("STUB: CKErrorCodeForInternalErrorCode called"); 245 return NULL; 246 } 247 248 void* CKErrorCodeForNSURLErrorCode(void) 249 { 250 if (verbose) puts("STUB: CKErrorCodeForNSURLErrorCode called"); 251 return NULL; 252 } 253 254 void* CKErrorIsCode(void) 255 { 256 if (verbose) puts("STUB: CKErrorIsCode called"); 257 return NULL; 258 } 259 260 void* CKFetchAPSEnvironmentFromServerOrEntitlements(void) 261 { 262 if (verbose) puts("STUB: CKFetchAPSEnvironmentFromServerOrEntitlements called"); 263 return NULL; 264 } 265 266 void* CKGetCurrentActivities(void) 267 { 268 if (verbose) puts("STUB: CKGetCurrentActivities called"); 269 return NULL; 270 } 271 272 void* CKGetGlobalQueue(void) 273 { 274 if (verbose) puts("STUB: CKGetGlobalQueue called"); 275 return NULL; 276 } 277 278 void* CKGetHomeDir(void) 279 { 280 if (verbose) puts("STUB: CKGetHomeDir called"); 281 return NULL; 282 } 283 284 void* CKGetHomeDirRealPath(void) 285 { 286 if (verbose) puts("STUB: CKGetHomeDirRealPath called"); 287 return NULL; 288 } 289 290 void* CKGetRealPath(void) 291 { 292 if (verbose) puts("STUB: CKGetRealPath called"); 293 return NULL; 294 } 295 296 void* CKHexCharFromBytes(void) 297 { 298 if (verbose) puts("STUB: CKHexCharFromBytes called"); 299 return NULL; 300 } 301 302 void* CKIndexedArrayKey(void) 303 { 304 if (verbose) puts("STUB: CKIndexedArrayKey called"); 305 return NULL; 306 } 307 308 void* CKIsPCSError(void) 309 { 310 if (verbose) puts("STUB: CKIsPCSError called"); 311 return NULL; 312 } 313 314 void* CKIsRunningInCloudD(void) 315 { 316 if (verbose) puts("STUB: CKIsRunningInCloudD called"); 317 return NULL; 318 } 319 320 void* CKIsRunningInTestHost(void) 321 { 322 if (verbose) puts("STUB: CKIsRunningInTestHost called"); 323 return NULL; 324 } 325 326 void* CKIsValidOperationForScope(void) 327 { 328 if (verbose) puts("STUB: CKIsValidOperationForScope called"); 329 return NULL; 330 } 331 332 void* CKLinkCheck0fd6bdf95f2efb6e65813fd4cd0f5d9af656d08a(void) 333 { 334 if (verbose) puts("STUB: CKLinkCheck0fd6bdf95f2efb6e65813fd4cd0f5d9af656d08a called"); 335 return NULL; 336 } 337 338 void* CKLinkCheck5dbf91c3fd1d871f0bcfe60afeb451e3e708d350(void) 339 { 340 if (verbose) puts("STUB: CKLinkCheck5dbf91c3fd1d871f0bcfe60afeb451e3e708d350 called"); 341 return NULL; 342 } 343 344 void* CKLinkCheck908c3403f5370f9fc0f790c790ce4de0669132c0(void) 345 { 346 if (verbose) puts("STUB: CKLinkCheck908c3403f5370f9fc0f790c790ce4de0669132c0 called"); 347 return NULL; 348 } 349 350 void* CKLinkCheck92e3e8f8ec1a906754afb22d87eb36301b4f6760(void) 351 { 352 if (verbose) puts("STUB: CKLinkCheck92e3e8f8ec1a906754afb22d87eb36301b4f6760 called"); 353 return NULL; 354 } 355 356 void* CKMainBundleIsAppleExecutable(void) 357 { 358 if (verbose) puts("STUB: CKMainBundleIsAppleExecutable called"); 359 return NULL; 360 } 361 362 void* CKNSIndexSet_enumerateInverseRangesInRange_options_usingBlock(void) 363 { 364 if (verbose) puts("STUB: CKNSIndexSet_enumerateInverseRangesInRange_options_usingBlock called"); 365 return NULL; 366 } 367 368 void* CKNSIndexSet_indexSetWithInverseIndexSet(void) 369 { 370 if (verbose) puts("STUB: CKNSIndexSet_indexSetWithInverseIndexSet called"); 371 return NULL; 372 } 373 374 void* CKNSQualityOfServiceFromQoSClass(void) 375 { 376 if (verbose) puts("STUB: CKNSQualityOfServiceFromQoSClass called"); 377 return NULL; 378 } 379 380 void* CKOperationGroupTransferSizeForBytes(void) 381 { 382 if (verbose) puts("STUB: CKOperationGroupTransferSizeForBytes called"); 383 return NULL; 384 } 385 386 void* CKOperationLoggableProgressArguments(void) 387 { 388 if (verbose) puts("STUB: CKOperationLoggableProgressArguments called"); 389 return NULL; 390 } 391 392 void* CKOperationProgressCallbackClasses(void) 393 { 394 if (verbose) puts("STUB: CKOperationProgressCallbackClasses called"); 395 return NULL; 396 } 397 398 void* CKPIDIsStillAlive(void) 399 { 400 if (verbose) puts("STUB: CKPIDIsStillAlive called"); 401 return NULL; 402 } 403 404 void* CKProcessIndexedArrayKey(void) 405 { 406 if (verbose) puts("STUB: CKProcessIndexedArrayKey called"); 407 return NULL; 408 } 409 410 void* CKProductName(void) 411 { 412 if (verbose) puts("STUB: CKProductName called"); 413 return NULL; 414 } 415 416 void* CKProductType(void) 417 { 418 if (verbose) puts("STUB: CKProductType called"); 419 return NULL; 420 } 421 422 void* CKProductVersion(void) 423 { 424 if (verbose) puts("STUB: CKProductVersion called"); 425 return NULL; 426 } 427 428 void* CKQoSClassFromNSQualityOfService(void) 429 { 430 if (verbose) puts("STUB: CKQoSClassFromNSQualityOfService called"); 431 return NULL; 432 } 433 434 void* CKQoSIsBackground(void) 435 { 436 if (verbose) puts("STUB: CKQoSIsBackground called"); 437 return NULL; 438 } 439 440 void* CKQualityOfServiceOrdering(void) 441 { 442 if (verbose) puts("STUB: CKQualityOfServiceOrdering called"); 443 return NULL; 444 } 445 446 void* CKRetryAfterSecondsForError(void) 447 { 448 if (verbose) puts("STUB: CKRetryAfterSecondsForError called"); 449 return NULL; 450 } 451 452 void* CKSDKVersion(void) 453 { 454 if (verbose) puts("STUB: CKSDKVersion called"); 455 return NULL; 456 } 457 458 void* CKSQLiteJournalSuffixes(void) 459 { 460 if (verbose) puts("STUB: CKSQLiteJournalSuffixes called"); 461 return NULL; 462 } 463 464 void* CKServerEnvironmentFromString(void) 465 { 466 if (verbose) puts("STUB: CKServerEnvironmentFromString called"); 467 return NULL; 468 } 469 470 void* CKShareURLSlugForiWorkShareTitle(void) 471 { 472 if (verbose) puts("STUB: CKShareURLSlugForiWorkShareTitle called"); 473 return NULL; 474 } 475 476 void* CKSharingContainerSlugForContainerID(void) 477 { 478 if (verbose) puts("STUB: CKSharingContainerSlugForContainerID called"); 479 return NULL; 480 } 481 482 void* CKShortRandomID(void) 483 { 484 if (verbose) puts("STUB: CKShortRandomID called"); 485 return NULL; 486 } 487 488 void* CKShouldUseNewPredicateValidation(void) 489 { 490 if (verbose) puts("STUB: CKShouldUseNewPredicateValidation called"); 491 return NULL; 492 } 493 494 void* CKShouldWrapErrorFetchingRecords(void) 495 { 496 if (verbose) puts("STUB: CKShouldWrapErrorFetchingRecords called"); 497 return NULL; 498 } 499 500 void* CKStringForDiscretionaryNetworkBehavior(void) 501 { 502 if (verbose) puts("STUB: CKStringForDiscretionaryNetworkBehavior called"); 503 return NULL; 504 } 505 506 void* CKStringForNetworkServiceType(void) 507 { 508 if (verbose) puts("STUB: CKStringForNetworkServiceType called"); 509 return NULL; 510 } 511 512 void* CKStringForQOS(void) 513 { 514 if (verbose) puts("STUB: CKStringForQOS called"); 515 return NULL; 516 } 517 518 void* CKStringForTransferSize(void) 519 { 520 if (verbose) puts("STUB: CKStringForTransferSize called"); 521 return NULL; 522 } 523 524 void* CKStringForXPCActivityState(void) 525 { 526 if (verbose) puts("STUB: CKStringForXPCActivityState called"); 527 return NULL; 528 } 529 530 void* CKStringFromAccountChangeType(void) 531 { 532 if (verbose) puts("STUB: CKStringFromAccountChangeType called"); 533 return NULL; 534 } 535 536 void* CKStringFromAccountStatus(void) 537 { 538 if (verbose) puts("STUB: CKStringFromAccountStatus called"); 539 return NULL; 540 } 541 542 void* CKStringFromApplicationPermissionStatus(void) 543 { 544 if (verbose) puts("STUB: CKStringFromApplicationPermissionStatus called"); 545 return NULL; 546 } 547 548 void* CKStringFromCKMMCSEncryptionSupport(void) 549 { 550 if (verbose) puts("STUB: CKStringFromCKMMCSEncryptionSupport called"); 551 return NULL; 552 } 553 554 void* CKStringFromCapabilities(void) 555 { 556 if (verbose) puts("STUB: CKStringFromCapabilities called"); 557 return NULL; 558 } 559 560 void* CKStringFromDeviceToDeviceEncryptionStatus(void) 561 { 562 if (verbose) puts("STUB: CKStringFromDeviceToDeviceEncryptionStatus called"); 563 return NULL; 564 } 565 566 void* CKStringFromParticipantAcceptanceStatus(void) 567 { 568 if (verbose) puts("STUB: CKStringFromParticipantAcceptanceStatus called"); 569 return NULL; 570 } 571 572 void* CKStringFromParticipantInvitationTokenStatus(void) 573 { 574 if (verbose) puts("STUB: CKStringFromParticipantInvitationTokenStatus called"); 575 return NULL; 576 } 577 578 void* CKStringFromParticipantPermission(void) 579 { 580 if (verbose) puts("STUB: CKStringFromParticipantPermission called"); 581 return NULL; 582 } 583 584 void* CKStringFromParticipantRole(void) 585 { 586 if (verbose) puts("STUB: CKStringFromParticipantRole called"); 587 return NULL; 588 } 589 590 void* CKStringFromPartition(void) 591 { 592 if (verbose) puts("STUB: CKStringFromPartition called"); 593 return NULL; 594 } 595 596 void* CKStringFromServerEnvironment(void) 597 { 598 if (verbose) puts("STUB: CKStringFromServerEnvironment called"); 599 return NULL; 600 } 601 602 void* CKStringFromShareParticipantVisibility(void) 603 { 604 if (verbose) puts("STUB: CKStringFromShareParticipantVisibility called"); 605 return NULL; 606 } 607 608 void* CKStringWithArray(void) 609 { 610 if (verbose) puts("STUB: CKStringWithArray called"); 611 return NULL; 612 } 613 614 void* CKStringWithBytes(void) 615 { 616 if (verbose) puts("STUB: CKStringWithBytes called"); 617 return NULL; 618 } 619 620 void* CKStringWithData(void) 621 { 622 if (verbose) puts("STUB: CKStringWithData called"); 623 return NULL; 624 } 625 626 void* CKStringWithDate(void) 627 { 628 if (verbose) puts("STUB: CKStringWithDate called"); 629 return NULL; 630 } 631 632 void* CKStringWithDictionary(void) 633 { 634 if (verbose) puts("STUB: CKStringWithDictionary called"); 635 return NULL; 636 } 637 638 void* CKStringWithLimitedArray(void) 639 { 640 if (verbose) puts("STUB: CKStringWithLimitedArray called"); 641 return NULL; 642 } 643 644 void* CKStringWithNibbles(void) 645 { 646 if (verbose) puts("STUB: CKStringWithNibbles called"); 647 return NULL; 648 } 649 650 void* CKStringWithObject(void) 651 { 652 if (verbose) puts("STUB: CKStringWithObject called"); 653 return NULL; 654 } 655 656 void* CKStringWithSet(void) 657 { 658 if (verbose) puts("STUB: CKStringWithSet called"); 659 return NULL; 660 } 661 662 void* CKStringsAreBothNilOrEqual(void) 663 { 664 if (verbose) puts("STUB: CKStringsAreBothNilOrEqual called"); 665 return NULL; 666 } 667 668 void* CKSyncEngineRecordModificationTypeOpposite(void) 669 { 670 if (verbose) puts("STUB: CKSyncEngineRecordModificationTypeOpposite called"); 671 return NULL; 672 } 673 674 void* CKTabIndentAtDepth(void) 675 { 676 if (verbose) puts("STUB: CKTabIndentAtDepth called"); 677 return NULL; 678 } 679 680 void* CKTernaryFromBOOL(void) 681 { 682 if (verbose) puts("STUB: CKTernaryFromBOOL called"); 683 return NULL; 684 } 685 686 void* CKTopLevelUnderlyingErrorCodes(void) 687 { 688 if (verbose) puts("STUB: CKTopLevelUnderlyingErrorCodes called"); 689 return NULL; 690 } 691 692 void* CKTriggerAutoBugCaptureWithFormatSignature(void) 693 { 694 if (verbose) puts("STUB: CKTriggerAutoBugCaptureWithFormatSignature called"); 695 return NULL; 696 } 697 698 void* CKTriggerClientSideAutoBugCaptureWithFormatSignature(void) 699 { 700 if (verbose) puts("STUB: CKTriggerClientSideAutoBugCaptureWithFormatSignature called"); 701 return NULL; 702 } 703 704 void* CKValidSharingURLHostnames(void) 705 { 706 if (verbose) puts("STUB: CKValidSharingURLHostnames called"); 707 return NULL; 708 } 709 710 void* CKValidateIndexedArrayKeys(void) 711 { 712 if (verbose) puts("STUB: CKValidateIndexedArrayKeys called"); 713 return NULL; 714 } 715 716 void* CKValidateKeyName(void) 717 { 718 if (verbose) puts("STUB: CKValidateKeyName called"); 719 return NULL; 720 } 721 722 void* CKValidateRecordArrayValue(void) 723 { 724 if (verbose) puts("STUB: CKValidateRecordArrayValue called"); 725 return NULL; 726 } 727 728 void* CKValueIsAcceptableClass(void) 729 { 730 if (verbose) puts("STUB: CKValueIsAcceptableClass called"); 731 return NULL; 732 } 733 734 void* CKValueIsAcceptablePredicateClass(void) 735 { 736 if (verbose) puts("STUB: CKValueIsAcceptablePredicateClass called"); 737 return NULL; 738 } 739 740 void* CKWarnForIncorrectServiceIdentity(void) 741 { 742 if (verbose) puts("STUB: CKWarnForIncorrectServiceIdentity called"); 743 return NULL; 744 } 745 746 void* CKWarnForInvalidApplicationIdentifier(void) 747 { 748 if (verbose) puts("STUB: CKWarnForInvalidApplicationIdentifier called"); 749 return NULL; 750 } 751 752 void* CKWeakLinkClass(void) 753 { 754 if (verbose) puts("STUB: CKWeakLinkClass called"); 755 return NULL; 756 } 757 758 void* CKWeakLinkSymbol(void) 759 { 760 if (verbose) puts("STUB: CKWeakLinkSymbol called"); 761 return NULL; 762 } 763 764 void* CKXPCSuitableError(void) 765 { 766 if (verbose) puts("STUB: CKXPCSuitableError called"); 767 return NULL; 768 } 769 770 void* NSTimeIntervalToClosestXPCActivityInterval(void) 771 { 772 if (verbose) puts("STUB: NSTimeIntervalToClosestXPCActivityInterval called"); 773 return NULL; 774 } 775 776 void* _CKCheckArgument(void) 777 { 778 if (verbose) puts("STUB: _CKCheckArgument called"); 779 return NULL; 780 } 781 782 void* _CKSimulateCrash(void) 783 { 784 if (verbose) puts("STUB: _CKSimulateCrash called"); 785 return NULL; 786 } 787 788 void* ck_call_or_dispatch_async_if_not_key(void) 789 { 790 if (verbose) puts("STUB: ck_call_or_dispatch_async_if_not_key called"); 791 return NULL; 792 } 793 794 void* ck_call_or_dispatch_sync_if_not_key(void) 795 { 796 if (verbose) puts("STUB: ck_call_or_dispatch_sync_if_not_key called"); 797 return NULL; 798 } 799 800 void* ck_log_asl_level_to_type(void) 801 { 802 if (verbose) puts("STUB: ck_log_asl_level_to_type called"); 803 return NULL; 804 } 805 806 void* ck_log_facilities_initailize_static(void) 807 { 808 if (verbose) puts("STUB: ck_log_facilities_initailize_static called"); 809 return NULL; 810 } 811 812 void* ck_log_get_asl_level(void) 813 { 814 if (verbose) puts("STUB: ck_log_get_asl_level called"); 815 return NULL; 816 } 817 818 void* mmapFileAtPath(void) 819 { 820 if (verbose) puts("STUB: mmapFileAtPath called"); 821 return NULL; 822 } 823 824 void* mmapFileDescriptor(void) 825 { 826 if (verbose) puts("STUB: mmapFileDescriptor called"); 827 return NULL; 828 } 829 830 void* setCKIsRunningInCloudD(void) 831 { 832 if (verbose) puts("STUB: setCKIsRunningInCloudD called"); 833 return NULL; 834 } 835 836 void* setCKIsRunningInTestHost(void) 837 { 838 if (verbose) puts("STUB: setCKIsRunningInTestHost called"); 839 return NULL; 840 } 841 842 void* stringForCKErrorCode(void) 843 { 844 if (verbose) puts("STUB: stringForCKErrorCode called"); 845 return NULL; 846 }