1e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org/*
2e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   This file is provided under a dual BSD/GPLv2 license.  When using or
3e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   redistributing this file, you may do so under either license.
45c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
5e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   GPL LICENSE SUMMARY
65c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
7e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   Copyright(c) 2005-2012 Intel Corporation. All rights reserved.
85c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
9e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   This program is free software; you can redistribute it and/or modify
10e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   it under the terms of version 2 of the GNU General Public License as
11e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   published by the Free Software Foundation.
125c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
13e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   This program is distributed in the hope that it will be useful, but
14e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   WITHOUT ANY WARRANTY; without even the implied warranty of
15e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   General Public License for more details.
175c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
18e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   You should have received a copy of the GNU General Public License
19e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   along with this program; if not, write to the Free Software
20e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
21e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   The full GNU General Public License is included in this distribution
22e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   in the file called LICENSE.GPL.
235c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
24e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   Contact Information:
25e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/
265c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
27e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   BSD LICENSE
285c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
29e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   Copyright(c) 2005-2012 Intel Corporation. All rights reserved.
30e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   All rights reserved.
315c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
32e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   Redistribution and use in source and binary forms, with or without
33e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   modification, are permitted provided that the following conditions
34e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   are met:
355c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
36e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org     * Redistributions of source code must retain the above copyright
37e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org       notice, this list of conditions and the following disclaimer.
38e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org     * Redistributions in binary form must reproduce the above copyright
39e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org       notice, this list of conditions and the following disclaimer in
40e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org       the documentation and/or other materials provided with the
41e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org       distribution.
42e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org     * Neither the name of Intel Corporation nor the names of its
43e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org       contributors may be used to endorse or promote products derived
44e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org       from this software without specific prior written permission.
455c88bc39690cc94affe78cf5777eb8180c4af8a4machenbach@chromium.org
46e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
47e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
48e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
49e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
50e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
51e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
52e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
53e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
54e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
55e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
56e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
57e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org */
58e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org#ifndef VTUNE_VTUNE_JIT_H_
59e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org#define VTUNE_VTUNE_JIT_H_
60e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
61e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org#include "jitprofiling.h"
62e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org#include "../../../include/v8.h"
63e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
64e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org#define VTUNERUNNING (iJIT_IsProfilingActive() == iJIT_SAMPLING_ON)
65e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
66e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgnamespace vTune {
67e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgnamespace internal {
68e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgusing namespace v8;
69e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgclass VTUNEJITInterface {
70e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org public:
71e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  static void event_handler(const v8::JitCodeEvent* event);
72e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
73e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org private:
74e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org  //static Mutex* vtunemutex_;
75e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org};
76e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
77e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
78e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org} }  // namespace vTune::internal
79e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
80e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
81e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org#endif  // VTUNE_VTUNE_JIT_H_
82e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org
83