Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: e79de6f590b3982841e5ca150ef8082649f88f85 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*******************************************************************************
 * Copyright (c) 2007, 2012 Wind River Systems, Inc. and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Eclipse Distribution License v1.0 which accompany this distribution.
 * The Eclipse Public License is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 * You may elect to redistribute this code under either of these licenses.
 *
 * Contributors:
 *     Wind River Systems - initial API and implementation
 *******************************************************************************/

/*
 * Log file and tracing.
 */

#ifndef D_trace
#define D_trace

#include <tcf/config.h>
#include <stdio.h>

/* Always update trace.c when adding or removing predefined log levels */
#define LOG_ALWAYS      0x0
#define LOG_ALLOC       0x1
#define LOG_EVENTCORE   0x2
#define LOG_WAITPID     0x4
#define LOG_EVENTS      0x8
#define LOG_CHILD       0x10
#define LOG_PROTOCOL    0x20
#define LOG_CONTEXT     0x40
#define LOG_DISCOVERY   0x80
#define LOG_ASYNCREQ    0x100
#define LOG_PROXY       0x200
#define LOG_TCFLOG      0x400
#define LOG_ELF         0x800
#define LOG_LUA         0x1000
#define LOG_STACK       0x2000
#define LOG_PLUGIN      0x4000
#define LOG_SHUTDOWN    0x8000

#define LOG_NAME_STDERR "-"

extern int log_mode;

#if ENABLE_Trace

/*
 * Print a trace message into log file.
 * Use macro 'trace' instead of calling this function directly.
 */
extern int print_trace(int mode, const char * fmt, ...);

extern FILE * log_file;

#define trace log_file == NULL ? 0 : print_trace

#else /* not ENABLE_Trace */

#if _MSC_VER >= 1400 || __GNUC__
#  define trace(...) ((void)0)
#else
#  define trace 0 &&
#endif

#endif /* ENABLE_Trace */

struct trace_mode {
    int mode;
    const char * name;
    const char * description;
};

extern struct trace_mode trace_mode_table[];

extern int parse_trace_mode(const char * mode, int * result);

extern int add_trace_mode(int mode, const char * name, const char * description);

extern void ini_trace(void);

extern void open_log_file(const char * name);

#endif /* D_trace */

Back to the top