This file is indexed.

/usr/include/diagnostics/platform_config.hpp is in libdiagnostics-dev 0.3.3-12.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
/*
 * Diagnostics - a unified framework for code annotation, logging,
 * program monitoring, and unit-testing.
 *
 * Copyright (C) 2009 Christian Schallhart <christian@schallhart.net>,
 *                    Michael Tautschnig <tautschnig@forsyte.de>
 *               2008 model.in.tum.de group, FORSYTE group
 *               2006-2007 model.in.tum.de group
 *               2002-2005 Christian Schallhart
 *  
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */


/**
 * @file diagnostics/frame/platform_config.hpp
 *
 * $Id: platform_config.hpp,v 1.4 2005/06/23 09:54:20 esdentem Exp $
 *
 * @author Christian Schallhart
 *
 * @brief [LEVEL: beta] Platform Configuration for the logging
 * framework: There are several switches:
 *
 * @arg @ref DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED
 * @arg @ref DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED
 * @arg @ref DIAGNOSTICS_SWITCH_MEMORY_ANALYSIS_ENABLED
 * @arg @ref DIAGNOSTICS_SWITCH_CHECK_FOR_NESTING
 *
 * Based on these swtiches and based on the available platform, this
 * file determines the which libraries to use and how to use them.
 *
 * @test none
 */

#ifndef DIAGNOSTICS__FRAME__PLATFORM_CONFIG_HPP__INCLUDE_GUARD
#define DIAGNOSTICS__FRAME__PLATFORM_CONFIG_HPP__INCLUDE_GUARD

#include <diagnostics/frame/namespace.hpp>

#ifndef WIN32
/** 
 * @brief the following header file is constructed 
 * dynamically and is not available in win32
 */
#	include <diagnostics/features.hpp>
#endif

////////////////////////////////////////////////////////////////////////////////
//
// System Features
// 

/**
 * @brief Switches for compatibility with Windows 
 * (ignored in non-win32 environments)
 */
#ifdef WIN32
#  ifndef DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED
#    define DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED 0
#  endif
#  ifndef DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED
#    define DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED 0
#  endif
#  ifndef DIAGNOSTICS_HAVE_ACE
#    define DIAGNOSTICS_HAVE_ACE 0
#  endif
#endif
// @}

/**
 * @brief set to 1 to use ACE
 */
#ifndef DIAGNOSTICS_HAVE_ACE
#  define DIAGNOSTICS_HAVE_ACE 1
#endif
// @}


////////////////////////////////////////////////////////////////////////////////
//
// Switches and Parameters
// 

/**
 * @brief set to 1 for memory analysis, i.e., providing primitives
 * which allow to monitor the memory allocation behavior of the
 * application.
 *
 * On some systems, memory analysis does not work properly. In this
 * case, use this switch to switch off memory analysis. 
 *
 * Also, switching on memory analysis might degrade the performance of
 * @ref ::diagnostics::Logging_Facility::log to a certain degree since
 * recursive mutexing will be required (if
 * DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED ==1).
 */
#ifndef DIAGNOSTICS_SWITCH_MEMORY_ANALYSIS_ENABLED
#  define DIAGNOSTICS_SWITCH_MEMORY_ANALYSIS_ENABLED 1
#endif

/**
 * @brief set to 1 to check against nested logging, i.e., whehter
 * there is a recursive call to @ref
 * ::diagnostics::Logging_Facility::log. This feature requires a
 * recursive mutex, if @ref DIAGNOSTICS_SWITCH_MEMORY_ANALYSIS_ENABLED
 * ==1.
 */
#ifndef DIAGNOSTICS_SWITCH_CHECK_FOR_NESTING
#  define DIAGNOSTICS_SWITCH_CHECK_FOR_NESTING 1
#endif

#if DIAGNOSTICS_SWITCH_CHECK_FOR_NESTING == 0 && DIAGNOSTICS_SWITCH_MEMORY_ANALYSIS_ENABLED == 1
#  error Check for nested logging is necessary for memory analysis.
#endif


/**
 * @brief set to 1 for platform support, i.e. process, thread, timing,
 * and host information. 
 */
#ifndef DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED
#  if DIAGNOSTICS_HAVE_ACE == 1
#    define DIAGNOSTICS_INTERNAL_SWITCH_USE_ACE 1
#    define DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED 1
#  else
#    define DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED 0
#  endif
#else
#  if DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED == 1
#    if DIAGNOSTICS_HAVE_ACE == 0
#      error some portability library is necessary to support system calls!
#    endif
#  endif
#endif

/**
 * @brief set to 1 to enable multithreading (require @ref
 * DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED set to 1)
 */
#ifndef DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED 
#  if DIAGNOSTICS_HAVE_ACE == 1
#    define DIAGNOSTICS_INTERNAL_SWITCH_USE_ACE 1
#    define DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED 1
#  else
#    define DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED 0
#  endif
#else
#  if DIAGNOSTICS_SWITCH_SYSTEM_CALLS_ENABLED == 1
#    if DIAGNOSTICS_HAVE_ACE == 0
#      error some portability library is necessary to support multithreading!
#    endif
#  endif
#endif



////////////////////////////////////////////////////////////////////////////////
//
// Derived Configuration (Features matching up the Switches and Parameters)
//

#ifndef DIAGNOSTICS_INTERNAL_SWITCH_USE_ACE 
#  define DIAGNOSTICS_INTERNAL_SWITCH_USE_ACE 0
#endif

#if DIAGNOSTICS_INTERNAL_SWITCH_USE_ACE == 1
#  define _REENTRANT 1 // ACE requires _REENTRANT to be defined
#endif

#if DIAGNOSTICS_SWITCH_MULTITHREADING_ENABLED == 0
#  if DIAGNOSTICS_SWITCH_CHECK_FOR_NESTING == 1
#    define DIAGNOSTICS_INTERNAL_SWITCH_MUTEX 3 // recursion check
#  else
#    define DIAGNOSTICS_INTERNAL_SWITCH_MUTEX 0 // no mutex
#  endif
#else
#  if DIAGNOSTICS_SWITCH_CHECK_FOR_NESTING == 1
#    define DIAGNOSTICS_INTERNAL_SWITCH_MUTEX 2 // recursive mutex
#  else 
#    define DIAGNOSTICS_INTERNAL_SWITCH_MUTEX 1 // non-recursive mutex
#  endif
#endif


// DIAGNOSTICS_INTERNAL_SWITCH_USE_ACE set to 1 if ACE is used

// DIAGNOSTICS_INTERNAL_SWITCH_MUTEX set to 0,1,2,3 for no mutex,
// non-recursive mutex, recursive mutex, recursion check (without a
// mutex), respectively


#endif

// vim:ts=4:sw=4