aboutsummaryrefslogtreecommitdiffstats
path: root/cache-utils.c
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@android.com>2010-05-10 23:26:01 -0700
committerDavid 'Digit' Turner <digit@android.com>2010-05-11 17:56:30 -0700
commit9251866320b5f8329a043bb56b3a794f78d12849 (patch)
treeca005574fbc5833f93d55ce72881780aa7e78aaf /cache-utils.c
parent1da50d3beb2a75f619fa56278cb195703361e261 (diff)
downloadexternal_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.c21
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)
{