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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
*/
#ifndef DEBUG_H
#define DEBUG_H
/************************** START OF MODULE PROLOGUE ***************************
*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
*
*-------------------------------------------------------------------------------
*
* FUNCTION NAME: di_debug
*
* FUNCTION TITLE: Display debug information
*
* TASK/PROCESS NAME: Encryption
*
* MODULE DESCRIPTION: Define globals and prototypes for displaying debug
* information.
*
* HISTORY:
* -------
* 05/13/10 JHD xxxxxxx Added Prologue and prototype for log_cond_printf().
*
***************************** END OF MODULE PROLOGUE **************************/
#ifdef DEBUG
#warn "DEBUG is on"
#endif
#ifdef DEBUG
#define START_STACK_CHECK \
volatile unsigned long check1 = 0xDEADBABE; \
volatile unsigned long check2 = 0xFEEDF00D;
#define END_STACK_CHECK \
{ \
if (check1 != 0xDEADBABE) \
log_printf("stack check 1 failed at %s %c\n", __FILE__, __LINE__); \
if (check2 != 0xFEEDF00D) \
log_printf("stack check 2 failed at %s %c\n", __FILE__, __LINE__); \
}
#else
#define START_STACK_CHECK
#define END_STACK_CHECK
#endif
#ifdef __cplusplus
extern "C"
{
#endif
#define OUTMSG_SIZE 256
/*-------------------------------------------------------------------
* Use the following to define whether memory is actually
* going to be allocated for these definitions.
*------------------------------------------------------------------*/
#undef EXTERNAL
#ifdef ALLOCATE_ECPT_TRACE /* This set means we are allocating */
#define EXTERNAL
#else
#define EXTERNAL extern
#endif
#define ECPT_MAX_TRACE 2048
#define ECPT_TRACE_CHAR 111
typedef struct
{
int task; /* which thread */
int tod; /* Time of Day Stamp */
int function; /* Function name */
int len; /* num chars in buffer */
char buf[ ECPT_TRACE_CHAR + 1 ]; /* trace message buffer */
} ECPT_TRACE_ENTRY;
typedef struct
{
int index; /* Index to next entry */
int tx_wait;
int tx_ds_main;
int tx_rsv1; /* unused */
int tx_rsv2; /* unused */
int tx_rsv3; /* unused */
int tx_rsv4; /* unused */
int tx_rsv5; /* unused */
ECPT_TRACE_ENTRY entry[ ECPT_MAX_TRACE ]; /* Telnet trace entries */
} ECPT_TRACE_STRUCT;
EXTERNAL ECPT_TRACE_STRUCT Ecpt_trace_table;
/*--------------------------------------------------------------------------
* Define ECPT KMS Agent communications to include in log to telnet clients.
*-------------------------------------------------------------------------*/
EXTERNAL int Ecpt_log_to_telnet;
#define ECPT_LOG_SSL_CB 0x0001
#define ECPT_LOG_TCP_CONNECT 0x0002
#define ECPT_LOG_TCP_DISCONNECT 0x0004
#define ECPT_LOG_TCP_SHUTDOWN 0x0008
#define ECPT_LOG_TCP_SEND 0x0010
#define ECPT_LOG_TCP_FRECV 0x0020
#define ECPT_LOG_TCP_CLOSE 0x0040
#define ECPT_LOG_SSL_CLIENT 0x0080
#define ECPT_LOG_AGENT 0x0100
extern char outmsg[OUTMSG_SIZE];
void serial_debug_msg(char*, int);
int log_fprintf(FILE *, const char *, ...);
int log_sprintf(char*, const char *, ...);
int log_printf(const char *, ...);
int log_error_printf(const char *, ...);
void log_cond_printf(int, const char *, ...);
ECPT_TRACE_ENTRY *ecpt_trace( int function,
char *func );
#define ECPT_TRACE( trace, func ) trace = ecpt_trace( (int)func, #func );
#ifdef __cplusplus
}
#endif
#endif
|