diff options
author | David 'Digit' Turner <digit@android.com> | 2010-05-10 23:26:01 -0700 |
---|---|---|
committer | David 'Digit' Turner <digit@android.com> | 2010-05-11 17:56:30 -0700 |
commit | 9251866320b5f8329a043bb56b3a794f78d12849 (patch) | |
tree | ca005574fbc5833f93d55ce72881780aa7e78aaf /cache-utils.c | |
parent | 1da50d3beb2a75f619fa56278cb195703361e261 (diff) | |
download | external_qemu-9251866320b5f8329a043bb56b3a794f78d12849.zip external_qemu-9251866320b5f8329a043bb56b3a794f78d12849.tar.gz external_qemu-9251866320b5f8329a043bb56b3a794f78d12849.tar.bz2 |
Upstream: integrate various misc. minor changes
Change-Id: I7d3eca1350f980d93f9f3198fa5250fb776de729
Diffstat (limited to 'cache-utils.c')
-rw-r--r-- | cache-utils.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/cache-utils.c b/cache-utils.c index 45d62c9..8bbd680 100644 --- a/cache-utils.c +++ b/cache-utils.c @@ -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) { |