mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Add ability for user plugin to add new verific log callback
This commit is contained in:
		
							parent
							
								
									236e15f3b0
								
							
						
					
					
						commit
						75cf79588e
					
				
					 3 changed files with 20 additions and 5 deletions
				
			
		|  | @ -112,15 +112,26 @@ void msg_func(msg_type_t msg_type, const char *message_id, linefile_type linefil | ||||||
| 	string message = linefile ? stringf("%s:%d: ", LineFile::GetFileName(linefile), LineFile::GetLineNo(linefile)) : ""; | 	string message = linefile ? stringf("%s:%d: ", LineFile::GetFileName(linefile), LineFile::GetLineNo(linefile)) : ""; | ||||||
| 	message += vstringf(msg, args); | 	message += vstringf(msg, args); | ||||||
| 
 | 
 | ||||||
| 	if (msg_type == VERIFIC_ERROR || msg_type == VERIFIC_WARNING || msg_type == VERIFIC_PROGRAM_ERROR) | 	if (log_verific_callback) { | ||||||
| 		log_warning_noprefix("%s%s\n", message_prefix.c_str(), message.c_str()); | 		string full_message = stringf("%s%s\n", message_prefix.c_str(), message.c_str()); | ||||||
| 	else | 		log_verific_callback(int(msg_type), message_id, LineFile::GetFileName(linefile), LineFile::GetLineNo(linefile), full_message.c_str()); | ||||||
| 		log("%s%s\n", message_prefix.c_str(), message.c_str()); | 	} else { | ||||||
| 
 | 		if (msg_type == VERIFIC_ERROR || msg_type == VERIFIC_WARNING || msg_type == VERIFIC_PROGRAM_ERROR) | ||||||
|  | 			log_warning_noprefix("%s%s\n", message_prefix.c_str(), message.c_str()); | ||||||
|  | 		else | ||||||
|  | 			log("%s%s\n", message_prefix.c_str(), message.c_str()); | ||||||
|  | 	} | ||||||
| 	if (verific_error_msg.empty() && (msg_type == VERIFIC_ERROR || msg_type == VERIFIC_PROGRAM_ERROR)) | 	if (verific_error_msg.empty() && (msg_type == VERIFIC_ERROR || msg_type == VERIFIC_PROGRAM_ERROR)) | ||||||
| 		verific_error_msg = message; | 		verific_error_msg = message; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void set_verific_logging(void (*cb)(int msg_type, const char *message_id, const char* file_path, unsigned int line_no, const char *msg)) | ||||||
|  | { | ||||||
|  | 	Message::SetConsoleOutput(0); | ||||||
|  | 	Message::RegisterCallBackMsg(msg_func); | ||||||
|  | 	log_verific_callback = cb; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| string get_full_netlist_name(Netlist *nl) | string get_full_netlist_name(Netlist *nl) | ||||||
| { | { | ||||||
| 	if (nl->NumOfRefs() == 1) { | 	if (nl->NumOfRefs() == 1) { | ||||||
|  |  | ||||||
|  | @ -59,6 +59,7 @@ bool log_quiet_warnings = false; | ||||||
| int log_verbose_level; | int log_verbose_level; | ||||||
| string log_last_error; | string log_last_error; | ||||||
| void (*log_error_atexit)() = NULL; | void (*log_error_atexit)() = NULL; | ||||||
|  | void (*log_verific_callback)(int msg_type, const char *message_id, const char* file_path, unsigned int line_no, const char *msg) = NULL; | ||||||
| 
 | 
 | ||||||
| int log_make_debug = 0; | int log_make_debug = 0; | ||||||
| int log_force_debug = 0; | int log_force_debug = 0; | ||||||
|  |  | ||||||
|  | @ -130,6 +130,9 @@ void log_header(RTLIL::Design *design, const char *format, ...) YS_ATTRIBUTE(for | ||||||
| void log_warning(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | void log_warning(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | ||||||
| void log_experimental(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | void log_experimental(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); | ||||||
| 
 | 
 | ||||||
|  | void set_verific_logging(void (*cb)(int msg_type, const char *message_id, const char* file_path, unsigned int line_no, const char *msg)); | ||||||
|  | extern void (*log_verific_callback)(int msg_type, const char *message_id, const char* file_path, unsigned int line_no, const char *msg); | ||||||
|  | 
 | ||||||
| // Log with filename to report a problem in a source file.
 | // Log with filename to report a problem in a source file.
 | ||||||
| void log_file_warning(const std::string &filename, int lineno, const char *format, ...) YS_ATTRIBUTE(format(printf, 3, 4)); | void log_file_warning(const std::string &filename, int lineno, const char *format, ...) YS_ATTRIBUTE(format(printf, 3, 4)); | ||||||
| void log_file_info(const std::string &filename, int lineno, const char *format, ...) YS_ATTRIBUTE(format(printf, 3, 4)); | void log_file_info(const std::string &filename, int lineno, const char *format, ...) YS_ATTRIBUTE(format(printf, 3, 4)); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue