Followup to r14600. Copy the contents of pub_core_guest.h to pub_tool_guest.h
to make it available to tools. This allows to remove quite a bit of
ifdeffery from memcheck's mc_machine.c


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14601 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/pub_core_guest.h b/coregrind/pub_core_guest.h
index 3e12d41..46a7d05 100644
--- a/coregrind/pub_core_guest.h
+++ b/coregrind/pub_core_guest.h
@@ -37,36 +37,11 @@
 #ifndef __PUB_CORE_GUEST_H
 #define __PUB_CORE_GUEST_H
 
-#if defined(VGA_x86)
-#  include "libvex_guest_x86.h"
-   typedef VexGuestX86State   VexGuestArchState;
-#elif defined(VGA_amd64)
-#  include "libvex_guest_amd64.h"
-   typedef VexGuestAMD64State VexGuestArchState;
-#elif defined(VGA_ppc32)
-#  include "libvex_guest_ppc32.h"
-   typedef VexGuestPPC32State VexGuestArchState;
-#elif defined(VGA_ppc64be) || defined(VGA_ppc64le)
-#  include "libvex_guest_ppc64.h"
-   typedef VexGuestPPC64State VexGuestArchState;
-#elif defined(VGA_arm)
-#  include "libvex_guest_arm.h"
-   typedef VexGuestARMState   VexGuestArchState;
-#elif defined(VGA_arm64)
-#  include "libvex_guest_arm64.h"
-   typedef VexGuestARM64State VexGuestArchState;
-#elif defined(VGA_s390x)
-#  include "libvex_guest_s390x.h"
-   typedef VexGuestS390XState VexGuestArchState;
-#elif defined(VGA_mips32)
-#  include "libvex_guest_mips32.h"
-   typedef VexGuestMIPS32State VexGuestArchState;
-#elif defined(VGA_mips64)
-#  include "libvex_guest_mips64.h"
-   typedef VexGuestMIPS64State VexGuestArchState;
-#else
-#  error Unknown arch
-#endif
+#include "pub_tool_guest.h"
+
+// No core-only exports;  everything in this module is visible to both
+// the core and tools.
+
 
 #endif   // __PUB_CORE_GUEST_H
 
diff --git a/include/Makefile.am b/include/Makefile.am
index 2aef15c..520b718 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -14,6 +14,7 @@
 	pub_tool_errormgr.h 		\
 	pub_tool_execontext.h 		\
 	pub_tool_gdbserver.h 		\
+	pub_tool_guest.h 		\
 	pub_tool_poolalloc.h 		\
 	pub_tool_hashtable.h 		\
 	pub_tool_libcbase.h 		\
diff --git a/include/pub_tool_guest.h b/include/pub_tool_guest.h
new file mode 100644
index 0000000..436afe0
--- /dev/null
+++ b/include/pub_tool_guest.h
@@ -0,0 +1,75 @@
+/* -*- mode: C; c-basic-offset: 3; -*- */
+
+/*---------------------------------------------------------------*/
+/*--- Provides guest state definition.       pub_tool_guest.h ---*/
+/*---------------------------------------------------------------*/
+
+/*
+   This file is part of Valgrind, a dynamic binary instrumentation
+   framework.
+
+   Copyright (C) 2014-2014 OpenWorks LLP
+      info@open-works.net
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
+
+   The GNU General Public License is contained in the file COPYING.
+
+   Neither the names of the U.S. Department of Energy nor the
+   University of California nor the names of its contributors may be
+   used to endorse or promote products derived from this software
+   without prior written permission.
+*/
+
+#ifndef __PUB_TOOL_GUEST_H
+#define __PUB_TOOL_GUEST_H
+
+#if defined(VGA_x86)
+#  include "libvex_guest_x86.h"
+   typedef VexGuestX86State   VexGuestArchState;
+#elif defined(VGA_amd64)
+#  include "libvex_guest_amd64.h"
+   typedef VexGuestAMD64State VexGuestArchState;
+#elif defined(VGA_ppc32)
+#  include "libvex_guest_ppc32.h"
+   typedef VexGuestPPC32State VexGuestArchState;
+#elif defined(VGA_ppc64be) || defined(VGA_ppc64le)
+#  include "libvex_guest_ppc64.h"
+   typedef VexGuestPPC64State VexGuestArchState;
+#elif defined(VGA_arm)
+#  include "libvex_guest_arm.h"
+   typedef VexGuestARMState   VexGuestArchState;
+#elif defined(VGA_arm64)
+#  include "libvex_guest_arm64.h"
+   typedef VexGuestARM64State VexGuestArchState;
+#elif defined(VGA_s390x)
+#  include "libvex_guest_s390x.h"
+   typedef VexGuestS390XState VexGuestArchState;
+#elif defined(VGA_mips32)
+#  include "libvex_guest_mips32.h"
+   typedef VexGuestMIPS32State VexGuestArchState;
+#elif defined(VGA_mips64)
+#  include "libvex_guest_mips64.h"
+   typedef VexGuestMIPS64State VexGuestArchState;
+#else
+#  error Unknown arch
+#endif
+
+#endif   // __PUB_TOOL_GUEST_H
+
+/*--------------------------------------------------------------------*/
+/*--- end                                                          ---*/
+/*--------------------------------------------------------------------*/
diff --git a/memcheck/mc_machine.c b/memcheck/mc_machine.c
index ed46eba..7328357 100644
--- a/memcheck/mc_machine.c
+++ b/memcheck/mc_machine.c
@@ -41,55 +41,12 @@
 #include "pub_tool_libcassert.h"
 #include "pub_tool_libcprint.h"
 #include "pub_tool_tooliface.h"
+#include "pub_tool_guest.h"         // VexGuestArchState
 
 #include "mc_include.h"
 
-#undef MC_SIZEOF_GUEST_STATE
+#define MC_SIZEOF_GUEST_STATE  sizeof(VexGuestArchState)
 
-#if defined(VGA_x86)
-# include "libvex_guest_x86.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestX86State)
-#endif
-
-#if defined(VGA_amd64)
-# include "libvex_guest_amd64.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestAMD64State)
-#endif
-
-#if defined(VGA_ppc32)
-# include "libvex_guest_ppc32.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestPPC32State)
-#endif
-
-#if defined(VGA_ppc64be) || defined(VGA_ppc64le)
-# include "libvex_guest_ppc64.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestPPC64State)
-#endif
-
-#if defined(VGA_s390x)
-# include "libvex_guest_s390x.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestS390XState)
-#endif
-
-#if defined(VGA_arm)
-# include "libvex_guest_arm.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestARMState)
-#endif
-
-#if defined(VGA_arm64)
-# include "libvex_guest_arm64.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestARM64State)
-#endif
-
-#if defined(VGA_mips32)
-# include "libvex_guest_mips32.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestMIPS32State)
-#endif
-
-#if defined(VGA_mips64)
-# include "libvex_guest_mips64.h"
-# define MC_SIZEOF_GUEST_STATE sizeof(VexGuestMIPS64State)
-#endif
 
 static inline Bool host_is_big_endian ( void ) {
    UInt x = 0x11223344;