error: New error_printf() and error_vprintf()
This commit is contained in:
		
							parent
							
								
									2f7920166d
								
							
						
					
					
						commit
						ba0fe87acd
					
				
							
								
								
									
										51
									
								
								qemu-error.c
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								qemu-error.c
									
									
									
									
									
								
							@ -1,18 +1,53 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Error reporting
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2010 Red Hat Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Authors:
 | 
				
			||||||
 | 
					 *  Markus Armbruster <armbru@redhat.com>,
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This work is licensed under the terms of the GNU GPL, version 2 or later.
 | 
				
			||||||
 | 
					 * See the COPYING file in the top-level directory.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include "monitor.h"
 | 
					#include "monitor.h"
 | 
				
			||||||
#include "sysemu.h"
 | 
					#include "sysemu.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Print to current monitor if we have one, else to stderr.
 | 
				
			||||||
 | 
					 * TODO should return int, so callers can calculate width, but that
 | 
				
			||||||
 | 
					 * requires surgery to monitor_vprintf().  Left for another day.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void error_vprintf(const char *fmt, va_list ap)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (cur_mon) {
 | 
				
			||||||
 | 
					        monitor_vprintf(cur_mon, fmt, ap);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        vfprintf(stderr, fmt, ap);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Print to current monitor if we have one, else to stderr.
 | 
				
			||||||
 | 
					 * TODO just like error_vprintf()
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					void error_printf(const char *fmt, ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    va_list ap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    va_start(ap, fmt);
 | 
				
			||||||
 | 
					    error_vprintf(fmt, ap);
 | 
				
			||||||
 | 
					    va_end(ap);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void qemu_error(const char *fmt, ...)
 | 
					void qemu_error(const char *fmt, ...)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    va_list args;
 | 
					    va_list ap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    va_start(args, fmt);
 | 
					    va_start(ap, fmt);
 | 
				
			||||||
    if (cur_mon) {
 | 
					    error_vprintf(fmt, ap);
 | 
				
			||||||
        monitor_vprintf(cur_mon, fmt, args);
 | 
					    va_end(ap);
 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        vfprintf(stderr, fmt, args);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    va_end(args);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void qemu_error_internal(const char *file, int linenr, const char *func,
 | 
					void qemu_error_internal(const char *file, int linenr, const char *func,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								qemu-error.h
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								qemu-error.h
									
									
									
									
									
								
							@ -1,6 +1,20 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Error reporting
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2010 Red Hat Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Authors:
 | 
				
			||||||
 | 
					 *  Markus Armbruster <armbru@redhat.com>,
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This work is licensed under the terms of the GNU GPL, version 2 or later.
 | 
				
			||||||
 | 
					 * See the COPYING file in the top-level directory.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef QEMU_ERROR_H
 | 
					#ifndef QEMU_ERROR_H
 | 
				
			||||||
#define QEMU_ERROR_H
 | 
					#define QEMU_ERROR_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void error_vprintf(const char *fmt, va_list ap);
 | 
				
			||||||
 | 
					void error_printf(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
 | 
				
			||||||
void qemu_error(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
 | 
					void qemu_error(const char *fmt, ...) __attribute__ ((format(printf, 1, 2)));
 | 
				
			||||||
void qemu_error_internal(const char *file, int linenr, const char *func,
 | 
					void qemu_error_internal(const char *file, int linenr, const char *func,
 | 
				
			||||||
                         const char *fmt, ...)
 | 
					                         const char *fmt, ...)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user