[Mesa-dev] [PATCH 02/12] util: Move DRI parse_debug_string() to util
Pohjolainen, Topi
topi.pohjolainen at intel.com
Thu Oct 8 00:03:37 PDT 2015
On Wed, Oct 07, 2015 at 07:11:42AM -0700, Kristian H?gsberg Kristensen wrote:
> We want to use intel_debug.c in code that doesn't link to dri common.
>
> Signed-off-by: Kristian Høgsberg Kristensen <krh at bitplanet.net>
> ---
> src/mesa/drivers/dri/i965/intel_debug.c | 5 ++--
> src/util/Makefile.sources | 2 ++
> src/util/debug.c | 53 +++++++++++++++++++++++++++++++++
> src/util/debug.h | 47 +++++++++++++++++++++++++++++
> 4 files changed, 105 insertions(+), 2 deletions(-)
> create mode 100644 src/util/debug.c
> create mode 100644 src/util/debug.h
>
> diff --git a/src/mesa/drivers/dri/i965/intel_debug.c b/src/mesa/drivers/dri/i965/intel_debug.c
> index 5a9c953..3120189 100644
> --- a/src/mesa/drivers/dri/i965/intel_debug.c
> +++ b/src/mesa/drivers/dri/i965/intel_debug.c
> @@ -33,10 +33,11 @@
> #include "intel_debug.h"
> #include "utils.h"
> #include "util/u_atomic.h" /* for p_atomic_cmpxchg */
> +#include "util/debug.h"
>
> uint64_t INTEL_DEBUG = 0;
>
> -static const struct dri_debug_control debug_control[] = {
> +static const struct debug_control debug_control[] = {
> { "tex", DEBUG_TEXTURE},
> { "state", DEBUG_STATE},
> { "blit", DEBUG_BLIT},
> @@ -93,7 +94,7 @@ intel_debug_flag_for_shader_stage(gl_shader_stage stage)
> void
> brw_process_intel_debug_variable(struct intel_screen *screen)
> {
> - uint64_t intel_debug = driParseDebugString(getenv("INTEL_DEBUG"), debug_control);
> + uint64_t intel_debug = parse_debug_string(getenv("INTEL_DEBUG"), debug_control);
> (void) p_atomic_cmpxchg(&INTEL_DEBUG, 0, intel_debug);
>
> if (INTEL_DEBUG & DEBUG_BUFMGR)
> diff --git a/src/util/Makefile.sources b/src/util/Makefile.sources
> index ef38b5a..e45431d 100644
> --- a/src/util/Makefile.sources
> +++ b/src/util/Makefile.sources
> @@ -1,5 +1,7 @@
> MESA_UTIL_FILES := \
> bitset.h \
> + debug.c \
> + debug.h \
> format_srgb.h \
> hash_table.c \
> hash_table.h \
> diff --git a/src/util/debug.c b/src/util/debug.c
> new file mode 100644
> index 0000000..3729ce8
> --- /dev/null
> +++ b/src/util/debug.c
> @@ -0,0 +1,53 @@
> +/*
> + * Copyright © 2015 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + */
> +
> +#include <string.h>
> +#include "main/macros.h"
> +#include "debug.h"
> +
> +uint64_t
> +parse_debug_string(const char *debug,
> + const struct debug_control *control)
> +{
> + uint64_t flag = 0;
> +
> + if (debug != NULL) {
> + for (; control->string != NULL; control++) {
> + if (!strcmp(debug, "all")) {
> + flag |= control->flag;
> +
> + } else {
> + const char *s = debug;
> + unsigned n;
> +
> + for (; n = strcspn(s, ", "), *s; s += MAX2(1, n)) {
> + if (strlen(control->string) == n &&
> + !strncmp(control->string, s, n))
> + flag |= control->flag;
> + }
> + }
> + }
> + }
> +
> + return flag;
> +}
> diff --git a/src/util/debug.h b/src/util/debug.h
> new file mode 100644
> index 0000000..929cebb
> --- /dev/null
> +++ b/src/util/debug.h
> @@ -0,0 +1,47 @@
> +/*
> + * Copyright © 2015 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + */
> +
> +#ifndef _DEBUG_H
> +#define _DEBUG_H
> +
> +#include <stdint.h>
> +#include <stddef.h>
Do we really need the second include here?
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +struct debug_control {
> + const char * string;
> + uint64_t flag;
> +};
> +
> +uint64_t
> +parse_debug_string(const char *debug,
> + const struct debug_control *control);
> +
> +#ifdef __cplusplus
> +} /* extern C */
> +#endif
> +
> +#endif /* _DEBUG_H */
> --
> 2.4.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list