Add FreeBSD/ppc host ppc_init_cacheline_sizes() implementation.

New version after malc's comments.  (Added error handling.)

Submitted by: Andreas Tobler <andreast@fgznet.ch>

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>
Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
Juergen Lock 2010-02-19 19:28:23 +01:00 committed by malc
parent 584771e6b6
commit e4ee916d3f

View file

@ -57,6 +57,27 @@ static void ppc_init_cacheline_sizes(void)
}
#endif
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
#include <stdio.h>
#include <sys/types.h>
#include <sys/sysctl.h>
static void ppc_init_cacheline_sizes(void)
{
size_t len = 4;
unsigned cacheline;
if (sysctlbyname ("machdep.cacheline_size", &cacheline, &len, NULL, 0)) {
fprintf(stderr, "sysctlbyname machdep.cacheline_size failed: %s\n",
strerror(errno));
exit(1);
}
qemu_cache_conf.dcache_bsize = cacheline;
qemu_cache_conf.icache_bsize = cacheline;
}
#endif
#ifdef __linux__
void qemu_cache_utils_init(char **envp)
{