Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/src/share/vm/ci/ciClassList.hpp
32285 views
/*1* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*22*/2324#ifndef SHARE_VM_CI_CICLASSLIST_HPP25#define SHARE_VM_CI_CICLASSLIST_HPP2627class ciEnv;28class ciObjectFactory;29class ciConstantPoolCache;3031class ciField;32class ciConstant;33class ciFlags;34class ciExceptionHandler;35class ciCallProfile;36class ciSignature;3738class ciBytecodeStream;39class ciSignatureStream;40class ciExceptionHandlerStream;4142class ciTypeFlow;4344class ciBaseObject;45class ciObject;46class ciNullObject;47class ciInstance;48class ciCallSite;49class ciMemberName;50class ciMethodHandle;51class ciMethodType;52class ciArray;53class ciObjArray;54class ciTypeArray;55class ciSymbol;56class ciMetadata;57class ciMethod;58class ciMethodData;59class ciReceiverTypeData; // part of ciMethodData60class ciType;61class ciReturnAddress;62class ciKlass;63class ciInstanceKlass;64class ciArrayKlass;65class ciObjArrayKlass;66class ciTypeArrayKlass;6768// Simulate Java Language style package-private access with69// friend declarations.70// This is a great idea but gcc and other C++ compilers give an71// error for being friends with yourself, so this macro does not72// compile on some platforms.7374// Everyone gives access to ciObjectFactory75#define CI_PACKAGE_ACCESS \76friend class ciObjectFactory; \77friend class VMStructs;7879// These are the packages that have access to ciEnv80// Any more access must be given explicitly.81#define CI_PACKAGE_ACCESS_TO \82friend class ciObjectFactory; \83friend class VMStructs; \84friend class ciCallSite; \85friend class ciConstantPoolCache; \86friend class ciField; \87friend class ciConstant; \88friend class ciFlags; \89friend class ciExceptionHandler; \90friend class ciCallProfile; \91friend class ciSignature; \92friend class ciBytecodeStream; \93friend class ciSignatureStream; \94friend class ciExceptionHandlerStream; \95friend class ciObject; \96friend class ciNullObject; \97friend class ciInstance; \98friend class ciMemberName; \99friend class ciMethod; \100friend class ciMethodData; \101friend class ciMethodHandle; \102friend class ciMethodType; \103friend class ciReceiverTypeData; \104friend class ciTypeEntries; \105friend class ciSpeculativeTrapData; \106friend class ciSymbol; \107friend class ciArray; \108friend class ciObjArray; \109friend class ciMetadata; \110friend class ciReplay; \111friend class ciTypeArray; \112friend class ciType; \113friend class ciReturnAddress; \114friend class ciKlass; \115friend class ciInstanceKlass; \116friend class ciArrayKlass; \117friend class ciObjArrayKlass; \118friend class ciTypeArrayKlass; \119120#endif // SHARE_VM_CI_CICLASSLIST_HPP121122123