/** * \file * Hardware feature detection * * Authors: * Alex Rønne Petersen (alexrp@xamarin.com) * Elijah Taylor (elijahtaylor@google.com) * Miguel de Icaza (miguel@xamarin.com) * Neale Ferguson (Neale.Ferguson@SoftwareAG-usa.com) * Paolo Molaro (lupus@xamarin.com) * Rodrigo Kumpera (kumpera@gmail.com) * Sebastien Pouliot (sebastien@xamarin.com) * Zoltan Varga (vargaz@xamarin.com) * * Copyright 2003 Ximian, Inc. * Copyright 2003-2011 Novell, Inc * Copyright 2006 Broadcom * Copyright 2007-2008 Andreas Faerber * Copyright 2011-2013 Xamarin Inc * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #include #include #include "mono/utils/mono-hwcap.h" #define MONO_HWCAP_VAR(NAME) gboolean mono_hwcap_ ## NAME = FALSE; #include "mono/utils/mono-hwcap-vars.h" #undef MONO_HWCAP_VAR static gboolean hwcap_inited = FALSE; void mono_hwcap_init (void) { char *verbose = g_getenv ("MONO_VERBOSE_HWCAP"); char *conservative = g_getenv ("MONO_CONSERVATIVE_HWCAP"); if (hwcap_inited) return; if (!conservative || strncmp (conservative, "1", 1)) mono_hwcap_arch_init (); if (verbose && !strncmp (verbose, "1", 1)) mono_hwcap_print (); g_free (verbose); g_free (conservative); } void mono_hwcap_print (void) { g_print ("[mono-hwcap] Detected following hardware capabilities:\n\n"); #define MONO_HWCAP_VAR(NAME) g_print ("\t" #NAME " = %s\n", mono_hwcap_ ## NAME ? "yes" : "no"); #include "mono/utils/mono-hwcap-vars.h" #undef MONO_HWCAP_VAR g_print ("\n"); }