Added log_cell()
authorClifford Wolf <clifford@clifford.at>
Sun, 20 Jul 2014 08:35:47 +0000 (10:35 +0200)
committerClifford Wolf <clifford@clifford.at>
Sun, 20 Jul 2014 08:35:47 +0000 (10:35 +0200)
kernel/log.cc
kernel/log.h

index 3108bddfe21d31c12e01c9254745ca8cfe4105cb..949bf43275fd1c5e56937317acb50acc2bf57bca 100644 (file)
@@ -213,3 +213,18 @@ const char *log_id(std::string str)
                string_buf.push_back(str);
        return string_buf.back().c_str();
 }
+
+void log_cell(RTLIL::Cell *cell, std::string indent)
+{
+       char *ptr;
+       size_t size;
+
+       FILE *f = open_memstream(&ptr, &size);
+       ILANG_BACKEND::dump_cell(f, indent, cell);
+       fputc(0, f);
+       fclose(f);
+
+       log("%s", ptr);
+       free(ptr);
+}
+
index 2c3597c9af4dca5035d027b486cb1a94c7f8bfcb..f6dcc0ac2017558aeeb9d7cbedcbb426b11180df 100644 (file)
@@ -57,6 +57,8 @@ template<typename T> static inline const char *log_id(T *obj) {
        return log_id(obj->name);
 }
 
+void log_cell(RTLIL::Cell *cell, std::string indent = "");
+
 #define log_abort() log_error("Abort in %s:%d.\n", __FILE__, __LINE__)
 #define log_assert(_assert_expr_) do { if (_assert_expr_) break; log_error("Assert `%s' failed in %s:%d.\n", #_assert_expr_, __FILE__, __LINE__); } while (0)