From: Clifford Wolf Date: Sun, 20 Jul 2014 08:35:47 +0000 (+0200) Subject: Added log_cell() X-Git-Tag: yosys-0.4~531 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a6174aaf5eec37f1d1713afa978ae16286fc0b74;p=yosys.git Added log_cell() --- diff --git a/kernel/log.cc b/kernel/log.cc index 3108bddfe..949bf4327 100644 --- a/kernel/log.cc +++ b/kernel/log.cc @@ -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); +} + diff --git a/kernel/log.h b/kernel/log.h index 2c3597c9a..f6dcc0ac2 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -57,6 +57,8 @@ template 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)