From d6710fe874cce4c01d48279e25210279a06c7543 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Sun, 22 Oct 2017 17:38:58 +0200 Subject: [PATCH] dd/util: extract dd_get_debug_filename_and_mkdir MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák --- src/gallium/drivers/ddebug/dd_util.h | 30 +++++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/ddebug/dd_util.h b/src/gallium/drivers/ddebug/dd_util.h index 4e1a945c57d..cfc0fb0ccce 100644 --- a/src/gallium/drivers/ddebug/dd_util.h +++ b/src/gallium/drivers/ddebug/dd_util.h @@ -40,35 +40,41 @@ /* name of the directory in home */ #define DD_DIR "ddebug_dumps" -static inline FILE * -dd_get_debug_file(bool verbose) +static inline void +dd_get_debug_filename_and_mkdir(char *buf, size_t buflen, bool verbose) { static unsigned index; - char proc_name[128], dir[256], name[512]; - FILE *f; + char proc_name[128], dir[256]; if (!os_get_process_name(proc_name, sizeof(proc_name))) { fprintf(stderr, "dd: can't get the process name\n"); - return NULL; + strcpy(proc_name, "unknown"); } snprintf(dir, sizeof(dir), "%s/"DD_DIR, debug_get_option("HOME", ".")); - if (mkdir(dir, 0774) && errno != EEXIST) { + if (mkdir(dir, 0774) && errno != EEXIST) fprintf(stderr, "dd: can't create a directory (%i)\n", errno); - return NULL; - } - snprintf(name, sizeof(name), "%s/%s_%u_%08u", dir, proc_name, getpid(), index++); + snprintf(buf, buflen, "%s/%s_%u_%08u", dir, proc_name, getpid(), index++); + + if (verbose) + fprintf(stderr, "dd: dumping to file %s\n", buf); +} + +static inline FILE * +dd_get_debug_file(bool verbose) +{ + char name[512]; + FILE *f; + + dd_get_debug_filename_and_mkdir(name, sizeof(name), verbose); f = fopen(name, "w"); if (!f) { fprintf(stderr, "dd: can't open file %s\n", name); return NULL; } - if (verbose) - fprintf(stderr, "dd: dumping to file %s\n", name); - return f; } -- 2.30.2