13f33c0a925fe562be368be9ec723478e16328fd9Alex Light/* Copyright (C) 2017 The Android Open Source Project
23f33c0a925fe562be368be9ec723478e16328fd9Alex Light * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
33f33c0a925fe562be368be9ec723478e16328fd9Alex Light *
43f33c0a925fe562be368be9ec723478e16328fd9Alex Light * This file implements interfaces from the file jvmti.h. This implementation
53f33c0a925fe562be368be9ec723478e16328fd9Alex Light * is licensed under the same terms as the file jvmti.h.  The
63f33c0a925fe562be368be9ec723478e16328fd9Alex Light * copyright and license information for the file jvmti.h follows.
73f33c0a925fe562be368be9ec723478e16328fd9Alex Light *
83f33c0a925fe562be368be9ec723478e16328fd9Alex Light * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
93f33c0a925fe562be368be9ec723478e16328fd9Alex Light * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
103f33c0a925fe562be368be9ec723478e16328fd9Alex Light *
113f33c0a925fe562be368be9ec723478e16328fd9Alex Light * This code is free software; you can redistribute it and/or modify it
123f33c0a925fe562be368be9ec723478e16328fd9Alex Light * under the terms of the GNU General Public License version 2 only, as
133f33c0a925fe562be368be9ec723478e16328fd9Alex Light * published by the Free Software Foundation.  Oracle designates this
143f33c0a925fe562be368be9ec723478e16328fd9Alex Light * particular file as subject to the "Classpath" exception as provided
153f33c0a925fe562be368be9ec723478e16328fd9Alex Light * by Oracle in the LICENSE file that accompanied this code.
163f33c0a925fe562be368be9ec723478e16328fd9Alex Light *
173f33c0a925fe562be368be9ec723478e16328fd9Alex Light * This code is distributed in the hope that it will be useful, but WITHOUT
183f33c0a925fe562be368be9ec723478e16328fd9Alex Light * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
193f33c0a925fe562be368be9ec723478e16328fd9Alex Light * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
203f33c0a925fe562be368be9ec723478e16328fd9Alex Light * version 2 for more details (a copy is included in the LICENSE file that
213f33c0a925fe562be368be9ec723478e16328fd9Alex Light * accompanied this code).
223f33c0a925fe562be368be9ec723478e16328fd9Alex Light *
233f33c0a925fe562be368be9ec723478e16328fd9Alex Light * You should have received a copy of the GNU General Public License version
243f33c0a925fe562be368be9ec723478e16328fd9Alex Light * 2 along with this work; if not, write to the Free Software Foundation,
253f33c0a925fe562be368be9ec723478e16328fd9Alex Light * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
263f33c0a925fe562be368be9ec723478e16328fd9Alex Light *
273f33c0a925fe562be368be9ec723478e16328fd9Alex Light * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
283f33c0a925fe562be368be9ec723478e16328fd9Alex Light * or visit www.oracle.com if you need additional information or have any
293f33c0a925fe562be368be9ec723478e16328fd9Alex Light * questions.
303f33c0a925fe562be368be9ec723478e16328fd9Alex Light */
313f33c0a925fe562be368be9ec723478e16328fd9Alex Light
323f33c0a925fe562be368be9ec723478e16328fd9Alex Light#ifndef ART_OPENJDKJVMTI_TI_EXTENSION_H_
333f33c0a925fe562be368be9ec723478e16328fd9Alex Light#define ART_OPENJDKJVMTI_TI_EXTENSION_H_
343f33c0a925fe562be368be9ec723478e16328fd9Alex Light
353f33c0a925fe562be368be9ec723478e16328fd9Alex Light#include "jni.h"
363f33c0a925fe562be368be9ec723478e16328fd9Alex Light#include "jvmti.h"
373f33c0a925fe562be368be9ec723478e16328fd9Alex Light
383f33c0a925fe562be368be9ec723478e16328fd9Alex Lightnamespace openjdkjvmti {
393f33c0a925fe562be368be9ec723478e16328fd9Alex Light
408c2b929696cac235e8fd8bf4cae0ca751603b570Alex Lightclass EventHandler;
418c2b929696cac235e8fd8bf4cae0ca751603b570Alex Light
423f33c0a925fe562be368be9ec723478e16328fd9Alex Lightclass ExtensionUtil {
433f33c0a925fe562be368be9ec723478e16328fd9Alex Light public:
443f33c0a925fe562be368be9ec723478e16328fd9Alex Light  static jvmtiError GetExtensionFunctions(jvmtiEnv* env,
453f33c0a925fe562be368be9ec723478e16328fd9Alex Light                                          jint* extension_count_ptr,
463f33c0a925fe562be368be9ec723478e16328fd9Alex Light                                          jvmtiExtensionFunctionInfo** extensions);
473f33c0a925fe562be368be9ec723478e16328fd9Alex Light
483f33c0a925fe562be368be9ec723478e16328fd9Alex Light  static jvmtiError GetExtensionEvents(jvmtiEnv* env,
493f33c0a925fe562be368be9ec723478e16328fd9Alex Light                                       jint* extension_count_ptr,
503f33c0a925fe562be368be9ec723478e16328fd9Alex Light                                       jvmtiExtensionEventInfo** extensions);
513f33c0a925fe562be368be9ec723478e16328fd9Alex Light
523f33c0a925fe562be368be9ec723478e16328fd9Alex Light  static jvmtiError SetExtensionEventCallback(jvmtiEnv* env,
533f33c0a925fe562be368be9ec723478e16328fd9Alex Light                                              jint extension_event_index,
548c2b929696cac235e8fd8bf4cae0ca751603b570Alex Light                                              jvmtiExtensionEvent callback,
558c2b929696cac235e8fd8bf4cae0ca751603b570Alex Light                                              EventHandler* event_handler);
563f33c0a925fe562be368be9ec723478e16328fd9Alex Light};
573f33c0a925fe562be368be9ec723478e16328fd9Alex Light
583f33c0a925fe562be368be9ec723478e16328fd9Alex Light}  // namespace openjdkjvmti
593f33c0a925fe562be368be9ec723478e16328fd9Alex Light
603f33c0a925fe562be368be9ec723478e16328fd9Alex Light#endif  // ART_OPENJDKJVMTI_TI_EXTENSION_H_
61