blob: 76553ac87bd732a8bf3281389f0190962967287e [file] [log] [blame]
Rudolf Marek7f0e9302011-09-02 23:23:41 +02001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2011 Rudolf Marek <r.marek@assembler.cz>
5 *
6 * This program 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; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
Rudolf Marek7f0e9302011-09-02 23:23:41 +020014 */
15
16#ifndef __TRACE_H
17#define __TRACE_H
18
19
20#ifdef __PRE_RAM__
21
22#define DISABLE_TRACE
23#define ENABLE_TRACE
24#define DISABLE_TRACE_ON_FUNCTION
25
26#else /* !__PRE_RAM__ */
27
Martin Roth96345472017-06-24 14:13:53 -060028#if IS_ENABLED(CONFIG_TRACE) && !defined(__SMM__)
Rudolf Marek7f0e9302011-09-02 23:23:41 +020029
Lee Leahy91d1e762017-03-07 14:31:19 -080030void __cyg_profile_func_enter(void *, void *)
Stefan Reinauer6a001132017-07-13 02:20:27 +020031 __attribute__((no_instrument_function));
Rudolf Marek7f0e9302011-09-02 23:23:41 +020032
Lee Leahy91d1e762017-03-07 14:31:19 -080033void __cyg_profile_func_exit(void *, void *)
Stefan Reinauer6a001132017-07-13 02:20:27 +020034 __attribute__((no_instrument_function));
Rudolf Marek7f0e9302011-09-02 23:23:41 +020035
36extern volatile int trace_dis;
37
38#define DISABLE_TRACE do { trace_dis = 1; } while (0);
39#define ENABLE_TRACE do { trace_dis = 0; } while (0);
Stefan Reinauer6a001132017-07-13 02:20:27 +020040#define DISABLE_TRACE_ON_FUNCTION __attribute__((no_instrument_function));
Rudolf Marek7f0e9302011-09-02 23:23:41 +020041
42#else /* !CONFIG_TRACE */
43
44#define DISABLE_TRACE
45#define ENABLE_TRACE
46#define DISABLE_TRACE_ON_FUNCTION
47
48#endif
49#endif
50#endif