summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2019-03-14 09:48:47 +0100
committerNicolai Hähnle <[email protected]>2019-04-25 12:35:24 +0200
commitfea3dcb844af03231f7aa6d1ede93a7733733641 (patch)
treeb2d97f6ba6ae8ed480c50bbac23ceb6dd94141dc /src
parentac0b60fa475278db78d937947b75e82a15a6d4bb (diff)
ddebug: expose some helper functions as non-inline
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/auxiliary/driver_ddebug/dd_draw.c63
-rw-r--r--src/gallium/auxiliary/driver_ddebug/dd_util.h66
2 files changed, 70 insertions, 59 deletions
diff --git a/src/gallium/auxiliary/driver_ddebug/dd_draw.c b/src/gallium/auxiliary/driver_ddebug/dd_draw.c
index 98e7a6bb99f..eef44a7c348 100644
--- a/src/gallium/auxiliary/driver_ddebug/dd_draw.c
+++ b/src/gallium/auxiliary/driver_ddebug/dd_draw.c
@@ -40,8 +40,69 @@
#include <inttypes.h>
#include "pipe/p_config.h"
+void
+dd_get_debug_filename_and_mkdir(char *buf, size_t buflen, bool verbose)
+{
+ static unsigned index;
+ char proc_name[128], dir[256];
-static void
+ if (!os_get_process_name(proc_name, sizeof(proc_name))) {
+ fprintf(stderr, "dd: can't get the process name\n");
+ strcpy(proc_name, "unknown");
+ }
+
+ util_snprintf(dir, sizeof(dir), "%s/"DD_DIR, debug_get_option("HOME", "."));
+
+ if (mkdir(dir, 0774) && errno != EEXIST)
+ fprintf(stderr, "dd: can't create a directory (%i)\n", errno);
+
+ util_snprintf(buf, buflen, "%s/%s_%u_%08u", dir, proc_name, getpid(),
+ p_atomic_inc_return(&index) - 1);
+
+ if (verbose)
+ fprintf(stderr, "dd: dumping to file %s\n", buf);
+}
+
+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;
+ }
+
+ return f;
+}
+
+void
+dd_parse_apitrace_marker(const char *string, int len, unsigned *call_number)
+{
+ unsigned num;
+ char *s;
+
+ if (len <= 0)
+ return;
+
+ /* Make it zero-terminated. */
+ s = alloca(len + 1);
+ memcpy(s, string, len);
+ s[len] = 0;
+
+ /* Parse the number. */
+ errno = 0;
+ num = strtol(s, NULL, 10);
+ if (errno)
+ return;
+
+ *call_number = num;
+}
+
+void
dd_write_header(FILE *f, struct pipe_screen *screen, unsigned apitrace_call_number)
{
char cmd_line[4096];
diff --git a/src/gallium/auxiliary/driver_ddebug/dd_util.h b/src/gallium/auxiliary/driver_ddebug/dd_util.h
index 20aca94cc67..d3a1a36af62 100644
--- a/src/gallium/auxiliary/driver_ddebug/dd_util.h
+++ b/src/gallium/auxiliary/driver_ddebug/dd_util.h
@@ -51,66 +51,16 @@
/* name of the directory in home */
#define DD_DIR "ddebug_dumps"
-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];
+void
+dd_get_debug_filename_and_mkdir(char *buf, size_t buflen, bool verbose);
- if (!os_get_process_name(proc_name, sizeof(proc_name))) {
- fprintf(stderr, "dd: can't get the process name\n");
- strcpy(proc_name, "unknown");
- }
+FILE *
+dd_get_debug_file(bool verbose);
- util_snprintf(dir, sizeof(dir), "%s/"DD_DIR, debug_get_option("HOME", "."));
+void
+dd_parse_apitrace_marker(const char *string, int len, unsigned *call_number);
- if (mkdir(dir, 0774) && errno != EEXIST)
- fprintf(stderr, "dd: can't create a directory (%i)\n", errno);
-
- util_snprintf(buf, buflen, "%s/%s_%u_%08u", dir, proc_name, getpid(),
- p_atomic_inc_return(&index) - 1);
-
- 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;
- }
-
- return f;
-}
-
-static inline void
-dd_parse_apitrace_marker(const char *string, int len, unsigned *call_number)
-{
- unsigned num;
- char *s;
-
- if (len <= 0)
- return;
-
- /* Make it zero-terminated. */
- s = alloca(len + 1);
- memcpy(s, string, len);
- s[len] = 0;
-
- /* Parse the number. */
- errno = 0;
- num = strtol(s, NULL, 10);
- if (errno)
- return;
-
- *call_number = num;
-}
+void
+dd_write_header(FILE *f, struct pipe_screen *screen, unsigned apitrace_call_number);
#endif /* DD_UTIL_H */