diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/log.h | 26 | 
1 files changed, 26 insertions, 0 deletions
| diff --git a/kernel/log.h b/kernel/log.h index 28baf9886..c0be23b08 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -230,6 +230,32 @@ static inline void log_dump_args_worker(const char *p YS_ATTRIBUTE(unused)) { lo  void log_dump_val_worker(RTLIL::IdString v);  void log_dump_val_worker(RTLIL::SigSpec v); +template<typename K, typename T, typename OPS> +static inline void log_dump_val_worker(dict<K, T, OPS> &v) { +	log("{"); +	bool first = true; +	for (auto &it : v) { +		log(first ? " " : ", "); +		log_dump_val_worker(it.first); +		log(": "); +		log_dump_val_worker(it.second); +		first = false; +	} +	log(" }"); +} + +template<typename K, typename OPS> +static inline void log_dump_val_worker(pool<K, OPS> &v) { +	log("{"); +	bool first = true; +	for (auto &it : v) { +		log(first ? " " : ", "); +		log_dump_val_worker(it); +		first = false; +	} +	log(" }"); +} +  template<typename T>  static inline void log_dump_val_worker(T *ptr) { log("%p", ptr); } | 
