blob: 362a361f102ed98228c28c663248bb6d235b928b [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
Rudolf Marek4b14e822012-09-11 15:06:17 +020028#if CONFIG_TRACE && !defined(__SMM__)
Rudolf Marek7f0e9302011-09-02 23:23:41 +020029
30void __cyg_profile_func_enter( void *, void * )
31 __attribute__ ((no_instrument_function));
32
33void __cyg_profile_func_exit( void *, void * )
34 __attribute__ ((no_instrument_function));
35
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);
40#define DISABLE_TRACE_ON_FUNCTION __attribute__ ((no_instrument_function));
41
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