/*
* Header file of Pure API function declarations.
*
* Explicitly no copyright.
* You may recompile and redistribute these definitions as required.
*
* NOTE1: In some situations when compiling with MFC, you should
* enable the setting 'Not using precompiled headers' in Visual C++
* to avoid a compiler diagnostic.
*
* NOTE2: This file works through the use of deep magic. Calls to functions
* in this file are replaced with calls into the OCI runtime system
* when an instrumented version of this program is run.
*
* NOTE3: The static vars avoidGy_n (where n is a unique number) are used
* to prevent optimizing the functions away when compiler option
* /Gy is set. This is needed so that NOTE2 works properly.
*/
static int avoidGy_1;
static int avoidGy_2;
static int avoidGy_3;
static int avoidGy_4;
static int avoidGy_5;
static int avoidGy_6;
static int avoidGy_7;
static int avoidGy_8;
static int avoidGy_9;
static int avoidGy_10;
static int avoidGy_11;
static int avoidGy_12;
static int avoidGy_13;
static int avoidGy_14;
static int avoidGy_15;
static int avoidGy_16;
static int avoidGy_17;
static int avoidGy_18;
static int avoidGy_19;
static int avoidGy_20;
static int avoidGy_21;
static int avoidGy_22;
static int avoidGy_23;
static int avoidGy_24;
static int avoidGy_25;
static int avoidGy_26;
static int avoidGy_27;
static int avoidGy_28;
static int avoidGy_29;
static int avoidGy_30;
static int avoidGy_31;
static int avoidGy_32;
static int avoidGy_33;
static int avoidGy_34;
static int avoidGy_35;
static int avoidGy_36;
static int avoidGy_37;
static int avoidGy_38;
static int avoidGy_39;
static int avoidGy_40;
static int avoidGy_41;
static int avoidGy_42;
static int avoidGy_43;
static int avoidGy_44;
static int avoidGy_45;
static int avoidGy_46;
static int avoidGy_47;
static int avoidGy_48;
static int avoidGy_49;
static int avoidGy_50;
static int avoidGy_51;
static int avoidGy_52;
static int avoidGy_53;
static int avoidGy_54;
static int avoidGy_55;
static int avoidGy_56;
static int avoidGy_57;
static int avoidGy_58;
static int avoidGy_59;
static int avoidGy_60;
static int avoidGy_PL_01;
__declspec(dllexport) int __cdecl PurifyPrintf(const char *fmt, ...) { avoidGy_3++; fmt; return 0; }
__declspec(dllexport) int __cdecl PurifyWhatColors(void *addr, int size) { avoidGy_13++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyAssertIsReadable(const void *addr, int size) { avoidGy_14++; addr; size; return 1; }
__declspec(dllexport) int __cdecl PurifyAssertIsWritable(const void *addr, int size) { avoidGy_15++; addr; size; return 1; }
__declspec(dllexport) int __cdecl PurifyIsReadable(const void *addr, int size) { avoidGy_16++; addr; size; return 1; }
__declspec(dllexport) int __cdecl PurifyIsWritable(const void *addr, int size) { avoidGy_17++; addr; size; return 1; }
__declspec(dllexport) int __cdecl PurifyIsInitialized(const void *addr, int size) { avoidGy_18++; addr; size; return 1; }
__declspec(dllexport) int __cdecl PurifyRed(void *addr, int size) { avoidGy_19++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyGreen(void *addr, int size) { avoidGy_20++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyYellow(void *addr, int size) { avoidGy_21++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyBlue(void *addr, int size) { avoidGy_22++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyMarkAsInitialized(void *addr, int size) { avoidGy_23++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyMarkAsUninitialized(void *addr, int size) { avoidGy_24++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyMarkForTrap(void *addr, int size) { avoidGy_25++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyMarkForNoTrap(void *addr, int size) { avoidGy_26++; addr; size; return 0; }
__declspec(dllexport) int __cdecl PurifyHeapValidate(unsigned int hHeap, unsigned int dwFlags, const void *addr)
__declspec(dllexport) int __cdecl PurifySetLateDetectScanCounter(int counter) { avoidGy_28++; counter; return 0; };
__declspec(dllexport) int __cdecl PurifySetLateDetectScanInterval(int seconds) { avoidGy_29++; seconds; return 0; };