blob: 52f99ec2b8ecb3f2a69f3dac31178127627447ef [file] [log] [blame]
sewardjde4a1d02002-03-22 01:27:54 +00001
2/*--------------------------------------------------------------------*/
njnc7561b92005-06-19 01:24:32 +00003/*--- Header included by every core C file. pub_core_basics.h ---*/
sewardjde4a1d02002-03-22 01:27:54 +00004/*--------------------------------------------------------------------*/
njnc7561b92005-06-19 01:24:32 +00005
sewardjde4a1d02002-03-22 01:27:54 +00006/*
njnb9c427c2004-12-01 14:14:42 +00007 This file is part of Valgrind, a dynamic binary instrumentation
8 framework.
sewardjde4a1d02002-03-22 01:27:54 +00009
sewardj9ebd6e02007-01-08 06:01:59 +000010 Copyright (C) 2000-2007 Julian Seward
sewardjde4a1d02002-03-22 01:27:54 +000011 jseward@acm.org
sewardjde4a1d02002-03-22 01:27:54 +000012
13 This program is free software; you can redistribute it and/or
14 modify it under the terms of the GNU General Public License as
15 published by the Free Software Foundation; either version 2 of the
16 License, or (at your option) any later version.
17
18 This program is distributed in the hope that it will be useful, but
19 WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software
25 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
26 02111-1307, USA.
27
njn25e49d8e72002-09-23 09:36:25 +000028 The GNU General Public License is contained in the file COPYING.
sewardjde4a1d02002-03-22 01:27:54 +000029*/
30
njnc7561b92005-06-19 01:24:32 +000031#ifndef __PUB_CORE_BASICS_H
32#define __PUB_CORE_BASICS_H
sewardjde4a1d02002-03-22 01:27:54 +000033
njnc7561b92005-06-19 01:24:32 +000034//--------------------------------------------------------------------
35// PURPOSE: This header should be imported by every single C file
36// in the core. It contains the basic types and other things needed
37// everywhere.
38//--------------------------------------------------------------------
39
sewardj45f4e7c2005-09-27 19:20:21 +000040#include "pub_core_basics_asm.h"
njnc7561b92005-06-19 01:24:32 +000041#include "pub_tool_basics.h"
42
43/* ---------------------------------------------------------------------
44 Other headers to include
45 ------------------------------------------------------------------ */
46
47// Might as well have the following two in here, their contents are used so
48// broadly (eg. in pub_core_threadstate.h).
njn767eb422005-06-10 23:09:45 +000049
50#include "libvex.h"
njnf536bbb2005-06-13 04:21:38 +000051
njn767eb422005-06-10 23:09:45 +000052#if defined(VGA_x86)
sewardjefe0f922005-06-11 10:32:57 +000053# include "libvex_guest_x86.h"
njn767eb422005-06-10 23:09:45 +000054#elif defined(VGA_amd64)
sewardjefe0f922005-06-11 10:32:57 +000055# include "libvex_guest_amd64.h"
cerion85665ca2005-06-20 15:51:07 +000056#elif defined(VGA_ppc32)
57# include "libvex_guest_ppc32.h"
sewardj2c48c7b2005-11-29 13:05:56 +000058#elif defined(VGA_ppc64)
59# include "libvex_guest_ppc64.h"
njn767eb422005-06-10 23:09:45 +000060#else
61# error Unknown arch
62#endif
63
njnf38dad92005-07-20 13:18:23 +000064// For jmp_buf
njnc7561b92005-06-19 01:24:32 +000065#include <setjmp.h>
njnd01fef72005-03-25 23:35:48 +000066
njnc7561b92005-06-19 01:24:32 +000067#endif // __PUB_CORE_BASICS_H
nethercotec06e2132004-09-03 13:45:29 +000068
sewardjde4a1d02002-03-22 01:27:54 +000069/*--------------------------------------------------------------------*/
nethercote109d0df2004-09-02 08:10:13 +000070/*--- end ---*/
sewardjde4a1d02002-03-22 01:27:54 +000071/*--------------------------------------------------------------------*/