radeonsi: stop using TGSI_PROPERTY_CS_LOCAL_SIZE
[mesa.git] / src / gallium / auxiliary / driver_ddebug / dd_util.h
index bdfb7cc91638346cfdd07675f5f6d905d9fed1ef..4c77cbcc1637d95158846479bd99ca5de276998f 100644 (file)
 
 #include <stdio.h>
 #include <errno.h>
-#include <unistd.h>
-#include <sys/stat.h>
 
 #include "c99_alloca.h"
 #include "os/os_process.h"
 #include "util/u_atomic.h"
 #include "util/u_debug.h"
+#include "util/u_string.h"
 
-/* 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];
-
-   if (!os_get_process_name(proc_name, sizeof(proc_name))) {
-      fprintf(stderr, "dd: can't get the process name\n");
-      strcpy(proc_name, "unknown");
-   }
-
-   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);
-
-   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;
-   }
+#include "pipe/p_config.h"
+#if defined(PIPE_OS_UNIX)
+#include <unistd.h>
+#include <sys/stat.h>
+#elif defined(PIPE_OS_WINDOWS)
+#include <direct.h>
+#include <process.h>
+#define mkdir(dir, mode) _mkdir(dir)
+#endif
 
-   return f;
-}
+struct pipe_screen;
 
-static inline void
-dd_parse_apitrace_marker(const char *string, int len, unsigned *call_number)
-{
-   unsigned num;
-   char *s;
+/* name of the directory in home */
+#define DD_DIR "ddebug_dumps"
 
-   if (len <= 0)
-      return;
+void
+dd_get_debug_filename_and_mkdir(char *buf, size_t buflen, bool verbose);
 
-   /* Make it zero-terminated. */
-   s = alloca(len + 1);
-   memcpy(s, string, len);
-   s[len] = 0;
+FILE *
+dd_get_debug_file(bool verbose);
 
-   /* Parse the number. */
-   errno = 0;
-   num = strtol(s, NULL, 10);
-   if (errno)
-      return;
+void
+dd_parse_apitrace_marker(const char *string, int len, unsigned *call_number);
 
-   *call_number = num;
-}
+void
+dd_write_header(FILE *f, struct pipe_screen *screen, unsigned apitrace_call_number);
 
 #endif /* DD_UTIL_H */