mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-01-11 17:35:27 +00:00
82 lines
3.3 KiB
C
82 lines
3.3 KiB
C
|
// Copyright 2019, Collabora, Ltd.
|
||
|
// SPDX-License-Identifier: BSL-1.0
|
||
|
/*!
|
||
|
* @file
|
||
|
* @brief Small debug helpers.
|
||
|
* @author Jakob Bornecrantz <jakob@collabora.com>
|
||
|
*
|
||
|
* Debug get option helpers heavily inspired from mesa ones.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "xrt/xrt_compiler.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
|
||
|
const char *
|
||
|
debug_get_option(const char *name, const char *_default);
|
||
|
|
||
|
bool
|
||
|
debug_get_bool_option(const char *name, bool _default);
|
||
|
|
||
|
long
|
||
|
debug_get_num_option(const char *name, long _default);
|
||
|
|
||
|
float
|
||
|
debug_get_float_option(const char *name, float _default);
|
||
|
|
||
|
#define DEBUG_GET_ONCE_OPTION(suffix, name, _default) \
|
||
|
static const char *debug_get_option_##suffix() \
|
||
|
{ \
|
||
|
static bool gotten = false; \
|
||
|
static const char *stored; \
|
||
|
if (!gotten) { \
|
||
|
gotten = true; \
|
||
|
stored = debug_get_option(name, _default); \
|
||
|
} \
|
||
|
return stored; \
|
||
|
}
|
||
|
|
||
|
#define DEBUG_GET_ONCE_BOOL_OPTION(suffix, name, _default) \
|
||
|
static bool debug_get_bool_option_##suffix() \
|
||
|
{ \
|
||
|
static bool gotten = false; \
|
||
|
static bool stored; \
|
||
|
if (!gotten) { \
|
||
|
gotten = true; \
|
||
|
stored = debug_get_bool_option(name, _default); \
|
||
|
} \
|
||
|
return stored; \
|
||
|
}
|
||
|
|
||
|
#define DEBUG_GET_ONCE_NUM_OPTION(suffix, name, _default) \
|
||
|
static long debug_get_num_option_##suffix() \
|
||
|
{ \
|
||
|
static long gotten = false; \
|
||
|
static long stored; \
|
||
|
if (!gotten) { \
|
||
|
gotten = true; \
|
||
|
stored = debug_get_num_option(name, _default); \
|
||
|
} \
|
||
|
return stored; \
|
||
|
}
|
||
|
|
||
|
#define DEBUG_GET_ONCE_FLOAT_OPTION(suffix, name, _default) \
|
||
|
static long debug_get_float_option_##suffix() \
|
||
|
{ \
|
||
|
static long gotten = false; \
|
||
|
static long stored; \
|
||
|
if (!gotten) { \
|
||
|
gotten = true; \
|
||
|
stored = debug_get_float_option(name, _default); \
|
||
|
} \
|
||
|
return stored; \
|
||
|
}
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|