Matthew Fernandez | 6bd0116 | 2015-02-07 14:05:37 +1100 | [diff] [blame] | 1 | /* |
Gerwin Klein | 600fe15 | 2021-02-10 19:19:17 +1100 | [diff] [blame] | 2 | * Copyright 2017, Data61, CSIRO (ABN 41 687 119 230) |
Matthew Fernandez | 6bd0116 | 2015-02-07 14:05:37 +1100 | [diff] [blame] | 3 | * |
Gerwin Klein | 600fe15 | 2021-02-10 19:19:17 +1100 | [diff] [blame] | 4 | * SPDX-License-Identifier: BSD-2-Clause |
Matthew Fernandez | 6bd0116 | 2015-02-07 14:05:37 +1100 | [diff] [blame] | 5 | */ |
| 6 | |
Anna Lyons | 135c651 | 2017-09-28 12:16:03 +1000 | [diff] [blame] | 7 | #pragma once |
Matthew Fernandez | 6bd0116 | 2015-02-07 14:05:37 +1100 | [diff] [blame] | 8 | |
| 9 | /* Instrumentation functions that are optionally provided by this library. |
| 10 | * These need to be explicitly tagged as no_instrument_function or GCC will |
| 11 | * instrument the instrumentation functions themselves causing infinite |
| 12 | * recursion. Why it would ever be desirable to instrument your instrumentation |
| 13 | * is left as an exercise to the reader. |
| 14 | */ |
| 15 | |
| 16 | void __cyg_profile_func_enter(void *func, void *caller) |
| 17 | __attribute__((no_instrument_function)); |
| 18 | |
| 19 | void __cyg_profile_func_exit(void *func, void *caller) |
| 20 | __attribute__((no_instrument_function)); |
| 21 | |