1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ipc/chromium/src/base/third_party/purify/pure_api.c Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,152 @@ 1.4 +/* 1.5 + * Header file of Pure API function declarations. 1.6 + * 1.7 + * Explicitly no copyright. 1.8 + * You may recompile and redistribute these definitions as required. 1.9 + * 1.10 + * NOTE1: In some situations when compiling with MFC, you should 1.11 + * enable the setting 'Not using precompiled headers' in Visual C++ 1.12 + * to avoid a compiler diagnostic. 1.13 + * 1.14 + * NOTE2: This file works through the use of deep magic. Calls to functions 1.15 + * in this file are replaced with calls into the OCI runtime system 1.16 + * when an instrumented version of this program is run. 1.17 + * 1.18 + * NOTE3: The static vars avoidGy_n (where n is a unique number) are used 1.19 + * to prevent optimizing the functions away when compiler option 1.20 + * /Gy is set. This is needed so that NOTE2 works properly. 1.21 + */ 1.22 + 1.23 +// Chromium note: We used to only compile this code if PURIFY was defined, 1.24 +// because we did special builds with all optimizations turned off for Purify. 1.25 +// However, for profiling with Quantify, we want most/all optimizations turned 1.26 +// on so that we measure something closer to real execution. 1.27 + 1.28 +#ifdef _WINDOWS // we only use Purify/Quantify on Windows 1.29 + 1.30 +#pragma once 1.31 + extern int errno; 1.32 +typedef int ptrdiff_t; 1.33 +typedef unsigned int size_t; 1.34 +typedef unsigned short wchar_t; 1.35 +static int avoidGy_1 = 0; 1.36 +static int avoidGy_2 = 0; 1.37 +static int avoidGy_3 = 0; 1.38 +static int avoidGy_4 = 0; 1.39 +static int avoidGy_5 = 0; 1.40 +static int avoidGy_6 = 0; 1.41 +static int avoidGy_7 = 0; 1.42 +static int avoidGy_8 = 0; 1.43 +static int avoidGy_9 = 0; 1.44 +static int avoidGy_10 = 0; 1.45 +static int avoidGy_11 = 0; 1.46 +static int avoidGy_12 = 0; 1.47 +static int avoidGy_13 = 0; 1.48 +static int avoidGy_14 = 0; 1.49 +static int avoidGy_15 = 0; 1.50 +static int avoidGy_16 = 0; 1.51 +static int avoidGy_17 = 0; 1.52 +static int avoidGy_18 = 0; 1.53 +static int avoidGy_19 = 0; 1.54 +static int avoidGy_20 = 0; 1.55 +static int avoidGy_21 = 0; 1.56 +static int avoidGy_22 = 0; 1.57 +static int avoidGy_23 = 0; 1.58 +static int avoidGy_24 = 0; 1.59 +static int avoidGy_25 = 0; 1.60 +static int avoidGy_26 = 0; 1.61 +static int avoidGy_27 = 0; 1.62 +static int avoidGy_28 = 0; 1.63 +static int avoidGy_29 = 0; 1.64 +static int avoidGy_30 = 0; 1.65 +static int avoidGy_31 = 0; 1.66 +static int avoidGy_32 = 0; 1.67 +static int avoidGy_33 = 0; 1.68 +static int avoidGy_34 = 0; 1.69 +static int avoidGy_35 = 0; 1.70 +static int avoidGy_36 = 0; 1.71 +static int avoidGy_37 = 0; 1.72 +static int avoidGy_38 = 0; 1.73 +static int avoidGy_39 = 0; 1.74 +static int avoidGy_40 = 0; 1.75 +static int avoidGy_41 = 0; 1.76 +static int avoidGy_42 = 0; 1.77 +static int avoidGy_43 = 0; 1.78 +static int avoidGy_44 = 0; 1.79 +static int avoidGy_45 = 0; 1.80 +static int avoidGy_46 = 0; 1.81 +static int avoidGy_47 = 0; 1.82 +static int avoidGy_48 = 0; 1.83 +static int avoidGy_49 = 0; 1.84 +static int avoidGy_50 = 0; 1.85 +static int avoidGy_51 = 0; 1.86 +static int avoidGy_52 = 0; 1.87 +static int avoidGy_53 = 0; 1.88 +static int avoidGy_54 = 0; 1.89 +static int avoidGy_55 = 0; 1.90 +static int avoidGy_56 = 0; 1.91 +static int avoidGy_57 = 0; 1.92 +static int avoidGy_58 = 0; 1.93 +static int avoidGy_59 = 0; 1.94 +static int avoidGy_60 = 0; 1.95 +static int avoidGy_61 = 0; 1.96 +static int avoidGy_62 = 0; 1.97 +static int avoidGy_63 = 0; 1.98 +static int avoidGy_64 = 0; 1.99 +static int avoidGy_65 = 0; 1.100 +static int avoidGy_PL_01 = 0; 1.101 +static int avoidGy_PL_02 = 0; 1.102 +__declspec(dllexport) int __cdecl PurePrintf(const char *fmt, ...) { if(!++avoidGy_1); fmt; return 0; } 1.103 +__declspec(dllexport) int __cdecl PurifyIsRunning(void) { if(!++avoidGy_2); return 0; } 1.104 +__declspec(dllexport) int __cdecl PurifyPrintf(const char *fmt, ...) { if(!++avoidGy_3); fmt; return 0; } 1.105 +__declspec(dllexport) size_t __cdecl PurifyNewInuse(void) { if(!++avoidGy_4); return 0; } 1.106 +__declspec(dllexport) size_t __cdecl PurifyAllInuse(void) { if(!++avoidGy_5); return 0; } 1.107 +__declspec(dllexport) size_t __cdecl PurifyClearInuse(void) { if(!++avoidGy_6); return 0; } 1.108 +__declspec(dllexport) size_t __cdecl PurifyNewLeaks(void) { if(!++avoidGy_7); return 0; } 1.109 +__declspec(dllexport) size_t __cdecl PurifyAllLeaks(void) { if(!++avoidGy_8); return 0; } 1.110 +__declspec(dllexport) size_t __cdecl PurifyClearLeaks(void) { if(!++avoidGy_9); return 0; } 1.111 +__declspec(dllexport) size_t __cdecl PurifyAllHandlesInuse(void) { if(!++avoidGy_10); return 0; } 1.112 +__declspec(dllexport) size_t __cdecl PurifyNewHandlesInuse(void) { if(!++avoidGy_11); return 0; } 1.113 +__declspec(dllexport) size_t __cdecl PurifyDescribe(void *addr) { if(!++avoidGy_12); addr; return 0; } 1.114 +__declspec(dllexport) int __cdecl PurifyWhatColors(void *addr, size_t size) { if(!++avoidGy_13); addr; size; return 0; } 1.115 +__declspec(dllexport) int __cdecl PurifyAssertIsReadable(const void *addr, size_t size) { if(!++avoidGy_14); addr; size; return 1; } 1.116 +__declspec(dllexport) int __cdecl PurifyAssertIsWritable(const void *addr, size_t size) { if(!++avoidGy_15); addr; size; return 1; } 1.117 +__declspec(dllexport) int __cdecl PurifyIsReadable(const void *addr, size_t size) { if(!++avoidGy_16); addr; size; return 1; } 1.118 +__declspec(dllexport) int __cdecl PurifyIsWritable(const void *addr, size_t size) { if(!++avoidGy_17); addr; size; return 1; } 1.119 +__declspec(dllexport) int __cdecl PurifyIsInitialized(const void *addr, size_t size) { if(!++avoidGy_18); addr; size; return 1; } 1.120 +__declspec(dllexport) int __cdecl PurifyRed(void *addr, size_t size) { if(!++avoidGy_19); addr; size; return 0; } 1.121 +__declspec(dllexport) int __cdecl PurifyGreen(void *addr, size_t size) { if(!++avoidGy_20); addr; size; return 0; } 1.122 +__declspec(dllexport) int __cdecl PurifyYellow(void *addr, size_t size) { if(!++avoidGy_21); addr; size; return 0; } 1.123 +__declspec(dllexport) int __cdecl PurifyBlue(void *addr, size_t size) { if(!++avoidGy_22); addr; size; return 0; } 1.124 +__declspec(dllexport) int __cdecl PurifyMarkAsInitialized(void *addr, size_t size) { if(!++avoidGy_23); addr; size; return 0; } 1.125 +__declspec(dllexport) int __cdecl PurifyMarkAsUninitialized(void *addr, size_t size) { if(!++avoidGy_24); addr; size; return 0; } 1.126 +__declspec(dllexport) int __cdecl PurifyMarkForTrap(void *addr, size_t size) { if(!++avoidGy_25); addr; size; return 0; } 1.127 +__declspec(dllexport) int __cdecl PurifyMarkForNoTrap(void *addr, size_t size) { if(!++avoidGy_26); addr; size; return 0; } 1.128 +__declspec(dllexport) int __cdecl PurifyHeapValidate(unsigned int hHeap, unsigned int dwFlags, const void *addr) 1.129 + { if(!++avoidGy_27); hHeap; dwFlags; addr; return 1; } 1.130 +__declspec(dllexport) int __cdecl PurifySetLateDetectScanCounter(int counter) { if(!++avoidGy_28); counter; return 0; }; 1.131 +__declspec(dllexport) int __cdecl PurifySetLateDetectScanInterval(int seconds) { if(!++avoidGy_29); seconds; return 0; }; 1.132 +__declspec(dllexport) void __cdecl PurifySetPoolId(const void *mem, int id) { if(!++avoidGy_61); mem; id; return; }; 1.133 +__declspec(dllexport) int __cdecl PurifyGetPoolId(const void *mem) { if(!++avoidGy_62); mem; return 0; }; 1.134 +__declspec(dllexport) void __cdecl PurifySetUserData(const void *mem, void *data) { if(!++avoidGy_63); mem; data; return; }; 1.135 +__declspec(dllexport) void * __cdecl PurifyGetUserData(const void *mem) { if(!++avoidGy_64); mem; return 0; }; 1.136 +__declspec(dllexport) void __cdecl PurifyMapPool(int id, void(*fn)()) { if(!++avoidGy_65); id; fn; return; }; 1.137 +__declspec(dllexport) int __cdecl CoverageIsRunning(void) { if(!++avoidGy_30); return 0; } 1.138 +__declspec(dllexport) int __cdecl CoverageDisableRecordingData(void) { if(!++avoidGy_31); return 0; } 1.139 +__declspec(dllexport) int __cdecl CoverageStartRecordingData(void) { if(!++avoidGy_32); return 0; } 1.140 +__declspec(dllexport) int __cdecl CoverageStopRecordingData(void) { if(!++avoidGy_33); return 0; } 1.141 +__declspec(dllexport) int __cdecl CoverageClearData(void) { if(!++avoidGy_34); return 0; } 1.142 +__declspec(dllexport) int __cdecl CoverageIsRecordingData(void) { if(!++avoidGy_35); return 0; } 1.143 +__declspec(dllexport) int __cdecl CoverageAddAnnotation(char *str) { if(!++avoidGy_36); str; return 0; } 1.144 +__declspec(dllexport) int __cdecl CoverageSaveData(void) { if(!++avoidGy_37); return 0; } 1.145 +__declspec(dllexport) int __cdecl QuantifyIsRunning(void) { if(!++avoidGy_42); return 0; } 1.146 +__declspec(dllexport) int __cdecl QuantifyDisableRecordingData(void) { if(!++avoidGy_43); return 0; } 1.147 +__declspec(dllexport) int __cdecl QuantifyStartRecordingData(void) { if(!++avoidGy_44); return 0; } 1.148 +__declspec(dllexport) int __cdecl QuantifyStopRecordingData(void) { if(!++avoidGy_45); return 0; } 1.149 +__declspec(dllexport) int __cdecl QuantifyClearData(void) { if(!++avoidGy_46); return 0; } 1.150 +__declspec(dllexport) int __cdecl QuantifyIsRecordingData(void) { if(!++avoidGy_47); return 0; } 1.151 +__declspec(dllexport) int __cdecl QuantifyAddAnnotation(char *str) { if(!++avoidGy_48); str; return 0; } 1.152 +__declspec(dllexport) int __cdecl QuantifySaveData(void) { if(!++avoidGy_49); return 0; } 1.153 +__declspec(dllexport) int __cdecl QuantifySetThreadName(const char *szName) { if(!++avoidGy_50) ; szName; return 0; } 1.154 + 1.155 +#endif // _WINDOWS