| Index: base/debug/profiler.h | 
| diff --git a/base/debug/profiler.h b/base/debug/profiler.h | 
| index d703876b4df5d0151bf0c05ca021de33cc66c12a..e1dda89742620ff85e75f558c900ae1ecad09029 100644 | 
| --- a/base/debug/profiler.h | 
| +++ b/base/debug/profiler.h | 
| @@ -55,11 +55,34 @@ BASE_EXPORT bool IsBinaryInstrumented(); | 
| typedef uintptr_t (*ReturnAddressLocationResolver)( | 
| uintptr_t return_addr_location); | 
|  | 
| -// If this binary is instrumented and the instrumentation supplies a return | 
| -// address resolution function, finds and returns the address resolution | 
| -// function. Otherwise returns NULL. | 
| -BASE_EXPORT ReturnAddressLocationResolver | 
| -    GetProfilerReturnAddrResolutionFunc(); | 
| +// This type declaration must match V8's FunctionEntryHook. | 
| +typedef void (*DynamicFunctionEntryHook)(uintptr_t function, | 
| +                                         uintptr_t return_addr_location); | 
| + | 
| +// The functions below here are to support profiling V8-generated code. | 
| +// V8 has provisions for generating a call to an entry hook for newly generated | 
| +// JIT code, and it can push symbol information on code generation and advise | 
| +// when the garbage collector moves code. The functions declarations below here | 
| +// make glue between V8's facilities and a profiler. | 
| + | 
| +// This type declaration must match V8's FunctionEntryHook. | 
| +typedef void (*DynamicFunctionEntryHook)(uintptr_t function, | 
| +                                         uintptr_t return_addr_location); | 
| + | 
| +typedef void (*AddDynamicSymbol)(const void* address, | 
| +                                 size_t length, | 
| +                                 const char* name, | 
| +                                 size_t name_len); | 
| +typedef void (*MoveDynamicSymbol)(const void* address, const void* new_address); | 
| + | 
| + | 
| +// If this binary is instrumented and the instrumentation supplies a function | 
| +// for each of those purposes, find and return the function in question. | 
| +// Otherwise returns NULL. | 
| +BASE_EXPORT ReturnAddressLocationResolver GetProfilerReturnAddrResolutionFunc(); | 
| +BASE_EXPORT DynamicFunctionEntryHook GetProfilerDynamicFunctionEntryHookFunc(); | 
| +BASE_EXPORT AddDynamicSymbol GetProfilerAddDynamicSymbolFunc(); | 
| +BASE_EXPORT MoveDynamicSymbol GetProfilerMoveDynamicSymbolFunc(); | 
|  | 
| }  // namespace debug | 
| }  // namespace base | 
|  |