functions.c
1 /* 2 This file is part of Darling. 3 4 Copyright (C) 2017 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 #include <stdio.h> 21 #include <stdlib.h> 22 static int verbose = 0; 23 __attribute__((constructor)) static void initme(void) { 24 verbose = getenv("STUB_VERBOSE") != NULL; 25 } 26 void* MachToNano(void) { if (verbose) puts("STUB: MachToNano called"); return NULL; } 27 void* PACFBundleCopyStringForKey(void) { if (verbose) puts("STUB: PACFBundleCopyStringForKey called"); return NULL; } 28 void* PACancelOperation(void) { if (verbose) puts("STUB: PACancelOperation called"); return NULL; } 29 void* PACommonAverageFromArray(void) { if (verbose) puts("STUB: PACommonAverageFromArray called"); return NULL; } 30 void* PACommonStandardDeviationFromArray(void) { if (verbose) puts("STUB: PACommonStandardDeviationFromArray called"); return NULL; } 31 void* PACurrentRealTimeInSeconds(void) { if (verbose) puts("STUB: PACurrentRealTimeInSeconds called"); return NULL; } 32 void* PADetailedPerfLoggingIsEnabled(void) { if (verbose) puts("STUB: PADetailedPerfLoggingIsEnabled called"); return NULL; } 33 void* PADetailedPerfLoggingWhiteListAddEntry(void) { if (verbose) puts("STUB: PADetailedPerfLoggingWhiteListAddEntry called"); return NULL; } 34 void* PADetailedPerfLoggingWhiteListClearList(void) { if (verbose) puts("STUB: PADetailedPerfLoggingWhiteListClearList called"); return NULL; } 35 void* PADetailedPerfLoggingWhiteListRemoveEntry(void) { if (verbose) puts("STUB: PADetailedPerfLoggingWhiteListRemoveEntry called"); return NULL; } 36 void* PAMachTimeForMachAbsTime(void) { if (verbose) puts("STUB: PAMachTimeForMachAbsTime called"); return NULL; } 37 void* PAMachTimeForMachAbsTimeWithTimebase(void) { if (verbose) puts("STUB: PAMachTimeForMachAbsTimeWithTimebase called"); return NULL; } 38 void* PAMachTimeForNSNumberOfMachAbsTime(void) { if (verbose) puts("STUB: PAMachTimeForNSNumberOfMachAbsTime called"); return NULL; } 39 void* PAMachTimeGetCurrent(void) { if (verbose) puts("STUB: PAMachTimeGetCurrent called"); return NULL; } 40 void* PAMachTimeToMachAbsTimeWithTimebase(void) { if (verbose) puts("STUB: PAMachTimeToMachAbsTimeWithTimebase called"); return NULL; } 41 void* PAMarkOperationEnd(void) { if (verbose) puts("STUB: PAMarkOperationEnd called"); return NULL; } 42 void* PAMarkOperationEndAndGetIntervalStats(void) { if (verbose) puts("STUB: PAMarkOperationEndAndGetIntervalStats called"); return NULL; } 43 void* PAMarkOperationEndAndTruncateByDurationInSec(void) { if (verbose) puts("STUB: PAMarkOperationEndAndTruncateByDurationInSec called"); return NULL; } 44 void* PAMarkOperationEndAndTruncateByDurationInSecAndGetIntervalStats(void) { if (verbose) puts("STUB: PAMarkOperationEndAndTruncateByDurationInSecAndGetIntervalStats called"); return NULL; } 45 void* PAMarkOperationEvent(void) { if (verbose) puts("STUB: PAMarkOperationEvent called"); return NULL; } 46 void* PAMarkOperationIntervalEnd(void) { if (verbose) puts("STUB: PAMarkOperationIntervalEnd called"); return NULL; } 47 void* PAMarkOperationIntervalEndAndStart(void) { if (verbose) puts("STUB: PAMarkOperationIntervalEndAndStart called"); return NULL; } 48 void* PAMarkOperationIntervalStart(void) { if (verbose) puts("STUB: PAMarkOperationIntervalStart called"); return NULL; } 49 void* PAMarkOperationStart(void) { if (verbose) puts("STUB: PAMarkOperationStart called"); return NULL; } 50 void* PAMarkOperationStartAndSetContextProcessingConfiguration(void) { if (verbose) puts("STUB: PAMarkOperationStartAndSetContextProcessingConfiguration called"); return NULL; } 51 void* PANSDictionaryCopyStringForKey(void) { if (verbose) puts("STUB: PANSDictionaryCopyStringForKey called"); return NULL; } 52 void* PAPerfLoggingGetLogHandle(void) { if (verbose) puts("STUB: PAPerfLoggingGetLogHandle called"); return NULL; } 53 void* PAPerfLoggingIntervalPrintHeader(void) { if (verbose) puts("STUB: PAPerfLoggingIntervalPrintHeader called"); return NULL; } 54 void* PAPerfLoggingIsEnabled(void) { if (verbose) puts("STUB: PAPerfLoggingIsEnabled called"); return NULL; } 55 void* PAPerfLoggingMachAbsoluteTimeToSeconds(void) { if (verbose) puts("STUB: PAPerfLoggingMachAbsoluteTimeToSeconds called"); return NULL; } 56 void* PAPerfLoggingOnlyReportFramerate(void) { if (verbose) puts("STUB: PAPerfLoggingOnlyReportFramerate called"); return NULL; } 57 void* PAPerfLoggingProcessWSUpdateInfoDictionary(void) { if (verbose) puts("STUB: PAPerfLoggingProcessWSUpdateInfoDictionary called"); return NULL; } 58 void* PAPerfLoggingSecondsToMachAbsoluteTime(void) { if (verbose) puts("STUB: PAPerfLoggingSecondsToMachAbsoluteTime called"); return NULL; } 59 void* PAPerfLoggingSetDataGatheringEnabled(void) { if (verbose) puts("STUB: PAPerfLoggingSetDataGatheringEnabled called"); return NULL; } 60 void* PAPerfLoggingTimeoutIsEnabled(void) { if (verbose) puts("STUB: PAPerfLoggingTimeoutIsEnabled called"); return NULL; } 61 void* PASetContextProcessingConfigurationForOperation(void) { if (verbose) puts("STUB: PASetContextProcessingConfigurationForOperation called"); return NULL; } 62 void* PASetContextProcessingConfigurationForOperationIntervalType(void) { if (verbose) puts("STUB: PASetContextProcessingConfigurationForOperationIntervalType called"); return NULL; } 63 void* PAXPCCancelOperation(void) { if (verbose) puts("STUB: PAXPCCancelOperation called"); return NULL; } 64 void* PAXPCGetAPDConnection(void) { if (verbose) puts("STUB: PAXPCGetAPDConnection called"); return NULL; } 65 void* PAXPCMarkOperationEnd(void) { if (verbose) puts("STUB: PAXPCMarkOperationEnd called"); return NULL; } 66 void* PAXPCMarkOperationEndAndTruncateByDurationInSec(void) { if (verbose) puts("STUB: PAXPCMarkOperationEndAndTruncateByDurationInSec called"); return NULL; } 67 void* PAXPCMarkOperationEndAndTruncateByDurationInSecNoSysLogLogging(void) { if (verbose) puts("STUB: PAXPCMarkOperationEndAndTruncateByDurationInSecNoSysLogLogging called"); return NULL; } 68 void* PAXPCMarkOperationEndNoSysLogLogging(void) { if (verbose) puts("STUB: PAXPCMarkOperationEndNoSysLogLogging called"); return NULL; } 69 void* PAXPCMarkOperationEvent(void) { if (verbose) puts("STUB: PAXPCMarkOperationEvent called"); return NULL; } 70 void* PAXPCMarkOperationIntervalEnd(void) { if (verbose) puts("STUB: PAXPCMarkOperationIntervalEnd called"); return NULL; } 71 void* PAXPCMarkOperationIntervalEndAndStart(void) { if (verbose) puts("STUB: PAXPCMarkOperationIntervalEndAndStart called"); return NULL; } 72 void* PAXPCMarkOperationIntervalStart(void) { if (verbose) puts("STUB: PAXPCMarkOperationIntervalStart called"); return NULL; } 73 void* PAXPCMarkOperationStart(void) { if (verbose) puts("STUB: PAXPCMarkOperationStart called"); return NULL; } 74 void* PAXPCMarkOperationStartAndForceDetailedLogging(void) { if (verbose) puts("STUB: PAXPCMarkOperationStartAndForceDetailedLogging called"); return NULL; } 75 void* PA_MachAbsTimeToNanosecondsWithTimebase(void) { if (verbose) puts("STUB: PA_MachAbsTimeToNanosecondsWithTimebase called"); return NULL; } 76 void* PA_NanosecondsToMachAbsTimeWithTimebase(void) { if (verbose) puts("STUB: PA_NanosecondsToMachAbsTimeWithTimebase called"); return NULL; } 77 void* _PALogTimestamp(void) { if (verbose) puts("STUB: _PALogTimestamp called"); return NULL; } 78 void* _PAPrintToMutableData(void) { if (verbose) puts("STUB: _PAPrintToMutableData called"); return NULL; } 79 void* formattedAddress(void) { if (verbose) puts("STUB: formattedAddress called"); return NULL; } 80 void* formattedBytes(void) { if (verbose) puts("STUB: formattedBytes called"); return NULL; } 81 void* formattedBytesDouble(void) { if (verbose) puts("STUB: formattedBytesDouble called"); return NULL; } 82 void* formattedSignedBytes(void) { if (verbose) puts("STUB: formattedSignedBytes called"); return NULL; } 83 void* levelFormattedString(void) { if (verbose) puts("STUB: levelFormattedString called"); return NULL; } 84 void* nameForProcInfo(void) { if (verbose) puts("STUB: nameForProcInfo called"); return NULL; } 85 void* newProcessStructures(void) { if (verbose) puts("STUB: newProcessStructures called"); return NULL; } 86 void* pagesToBytes(void) { if (verbose) puts("STUB: pagesToBytes called"); return NULL; } 87 void* pagesToBytesDefault(void) { if (verbose) puts("STUB: pagesToBytesDefault called"); return NULL; } 88 void* pointerForIndex(void) { if (verbose) puts("STUB: pointerForIndex called"); return NULL; } 89 void* sizeOfRAM(void) { if (verbose) puts("STUB: sizeOfRAM called"); return NULL; } 90 void* stringForIndex(void) { if (verbose) puts("STUB: stringForIndex called"); return NULL; } 91 void* stringIndexForNSString(void) { if (verbose) puts("STUB: stringIndexForNSString called"); return NULL; } 92 void* stringNameForPAInternalTransitionType(void) { if (verbose) puts("STUB: stringNameForPAInternalTransitionType called"); return NULL; } 93 void* uuidForBytes(void) { if (verbose) puts("STUB: uuidForBytes called"); return NULL; } 94 void* uuidForString(void) { if (verbose) puts("STUB: uuidForString called"); return NULL; }