exec: Use fprintf_function for dump_exec_info (format checking)
fprintf_function uses format checking with GCC_FMT_ATTR. It is declared in qemu-common.h and used in cpu-all.h (which is included from cpu.h), so qemu-common.h must be included earlier. Some redundant include statements for standard include files were removed. Fix also two format errors (ptrdiff_t needs %td). Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
405cf9ff00
commit
055403b2a7
@ -959,8 +959,7 @@ int cpu_physical_memory_get_dirty_tracking(void);
|
||||
int cpu_physical_sync_dirty_bitmap(target_phys_addr_t start_addr,
|
||||
target_phys_addr_t end_addr);
|
||||
|
||||
void dump_exec_info(FILE *f,
|
||||
int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
|
||||
void dump_exec_info(FILE *f, fprintf_function cpu_fprintf);
|
||||
#endif /* !CONFIG_USER_ONLY */
|
||||
|
||||
int cpu_memory_rw_debug(CPUState *env, target_ulong addr,
|
||||
|
16
exec.c
16
exec.c
@ -23,17 +23,10 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu.h"
|
||||
#include "exec-all.h"
|
||||
#include "qemu-common.h"
|
||||
#include "tcg.h"
|
||||
#include "hw/hw.h"
|
||||
#include "hw/qdev.h"
|
||||
@ -4096,8 +4089,7 @@ void cpu_io_recompile(CPUState *env, void *retaddr)
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
|
||||
void dump_exec_info(FILE *f,
|
||||
int (*cpu_fprintf)(FILE *f, const char *fmt, ...))
|
||||
void dump_exec_info(FILE *f, fprintf_function cpu_fprintf)
|
||||
{
|
||||
int i, target_code_size, max_target_code_size;
|
||||
int direct_jmp_count, direct_jmp2_count, cross_page;
|
||||
@ -4124,14 +4116,14 @@ void dump_exec_info(FILE *f,
|
||||
}
|
||||
/* XXX: avoid using doubles ? */
|
||||
cpu_fprintf(f, "Translation buffer state:\n");
|
||||
cpu_fprintf(f, "gen code size %ld/%ld\n",
|
||||
cpu_fprintf(f, "gen code size %td/%ld\n",
|
||||
code_gen_ptr - code_gen_buffer, code_gen_buffer_max_size);
|
||||
cpu_fprintf(f, "TB count %d/%d\n",
|
||||
nb_tbs, code_gen_max_blocks);
|
||||
cpu_fprintf(f, "TB avg target size %d max=%d bytes\n",
|
||||
nb_tbs ? target_code_size / nb_tbs : 0,
|
||||
max_target_code_size);
|
||||
cpu_fprintf(f, "TB avg host size %d bytes (expansion ratio: %0.1f)\n",
|
||||
cpu_fprintf(f, "TB avg host size %td bytes (expansion ratio: %0.1f)\n",
|
||||
nb_tbs ? (code_gen_ptr - code_gen_buffer) / nb_tbs : 0,
|
||||
target_code_size ? (double) (code_gen_ptr - code_gen_buffer) / target_code_size : 0);
|
||||
cpu_fprintf(f, "cross page TB count %d (%d%%)\n",
|
||||
|
Loading…
Reference in New Issue
Block a user