Entire-Metadata: .entire/metadata/fb87247f-2a75-407e-b336-cbc8c20ba5a6 Entire-Session: fb87247f-2a75-407e-b336-cbc8c20ba5a6 Entire-Strategy: manual-commit
108 lines
3.1 KiB
C
108 lines
3.1 KiB
C
/*
|
|
* (c) Copyright, Real-Time Innovations, 2002-2024.
|
|
* All rights reserved.
|
|
*
|
|
* No duplications, whole or partial, manual or electronic, may be made
|
|
* without express written permission. Any such copies, or
|
|
* revisions thereof, must display this notice unaltered.
|
|
* This code contains trade secrets of Real-Time Innovations, Inc.
|
|
*/
|
|
|
|
#ifndef clock_log_h
|
|
#define clock_log_h
|
|
|
|
#include "log/log_common.h"
|
|
#include "clock/clock_dll.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** @internal \file
|
|
* \brief clock module documentation top level
|
|
*/
|
|
|
|
/** @internal \mainpage
|
|
*
|
|
* An application may use multiple clocks if they are synchronized so that
|
|
* MT safe monotonicity (but NOT strict monotonicity) can be guaranteed.
|
|
*
|
|
* RTI supplies clocks that conform to this \ref RTIClockClass interface:
|
|
* <UL>
|
|
* <LI>\ref RTISystemClockClass and
|
|
* <LI>\ref RTIHighResolutionClockClass
|
|
* </UL>
|
|
*/
|
|
|
|
/** @internal \defgroup RTIClockModule Clock
|
|
* \ingroup RTI
|
|
* @brief pluggable clock interface and RTI provided clocks.
|
|
*/
|
|
|
|
/** @internal \defgroup RTIClockLogClass RTIClockLog
|
|
* \ingroup RTIClockModule
|
|
*/
|
|
|
|
/** @internal NOTE: When a new submodule is added to clock module, it must be
|
|
* given a number and entered here. Because of the use of this id for logging,
|
|
* there are 16 submodule id's: 0x1000, 0x2000,...
|
|
* ..., 0xF000.
|
|
* It is suggested we put the modules here in an order that
|
|
* respects their dependencies: modules with a lower number
|
|
* cannot depend on modules with a higher number.
|
|
*/
|
|
#define SUBMODULE_CLOCK_SYSTEM (0x1000)
|
|
#define SUBMODULE_CLOCK_HIGH_RESOLUTION (0x2000)
|
|
#define SUBMODULE_CLOCK_MONOTONIC (0x3000)
|
|
#define SUBMODULE_INFRASTRUCTURE (0x4000)
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief turn on logging for only the system clock.
|
|
*/
|
|
#define RTI_CLOCK_SUBMODULE_MASK_SYSTEM (0x0001)
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief turn on logging for only the high resolution clock.
|
|
*/
|
|
#define RTI_CLOCK_SUBMODULE_MASK_HIGH_RESOLUTION (0x0002)
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief turn on logging for only the monotonic clock.
|
|
*/
|
|
#define RTI_CLOCK_SUBMODULE_MASK_MONOTONIC (0x0004)
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief turn on logging for only infrastructure
|
|
*/
|
|
#define RTI_CLOCK_SUBMODULE_MASK_INFRASTRUCTURE (0x0008)
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief turn on logging for all clock submodules.
|
|
*/
|
|
#define RTI_CLOCK_SUBMODULE_MASK_ALL RTI_LOG_SUBMODULE_MASK_ALL
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief clock->getTime() failed.
|
|
* @see RTIClockTimeGetFunction
|
|
*/
|
|
extern RTIClockDllVariable const struct RTILogMessage
|
|
RTI_CLOCK_LOG_GET_TIME_FAILURE;
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief RTIClock_getTimeOverhead() failed.
|
|
*/
|
|
extern RTIClockDllVariable const struct RTILogMessage
|
|
RTI_CLOCK_LOG_GET_TIME_OVERHEAD_FAILURE;
|
|
|
|
/** @internal \ingroup RTIClockLogClass
|
|
* @brief RTIClock_getSpinPerMicrosecond() fail.
|
|
*/
|
|
extern RTIClockDllVariable const struct RTILogMessage
|
|
RTI_CLOCK_LOG_GET_SPIN_PER_MICROSECOND_FAILURE;
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* clock_log_h */
|