jvmtiManageCapabilities.cpp revision 1213
2362N/A * Copyright 2003-2010 Sun Microsystems, Inc. All Rights Reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. 2362N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 0N/A * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 0N/A * CA 95054 USA or visit www.sun.com if you need additional information or 0N/A#
include "incls/_precompiled.incl" 0N/A // capabilities which are always potentially available 0N/A // capabilities which are potentially available during OnLoad 0N/A // capabilities which are always potentially available 0N/A // but to only one environment 0N/A // capabilities which are potentially available during OnLoad 0N/A // but to only one environment 0N/A // remaining capabilities which are always potentially available 0N/A // but to only one environment 0N/A // remaining capabilities which are potentially available during OnLoad 0N/A // but to only one environment 0N/A // all capabilities ever acquired 0N/A// if the capability sets are initialized in the onload phase then 0N/A// it happens before class data sharing (CDS) is initialized. If it 0N/A// turns out that CDS gets disabled then we must adjust the always 0N/A// capabilities. To ensure a consistent view of the capabililties 0N/A// anything we add here should already be in the onload set. 0N/A// corresponding init functions 0N/A // exclude prohibited capabilities, must be before adding current 0N/A // must include current since it may possess solo capabilities and now prohibited 0N/A // add other remaining 0N/A // if this is during OnLoad more capabilities are available 0N/A // check that the capabilities being added are potential capabilities 0N/A // add to the set of ever acquired capabilities 0N/A // onload capabilities that got added are now permanent - so, also remove from onload 0N/A // same for solo capabilities (transferred capabilities in the remaining sets handled as part of standard grab - below) 0N/A // remove solo capabilities that are now taken 0N/A // return the result 0N/A // can't give up what you don't have 0N/A // restore solo capabilities but only those that belong 0N/A // return the result 0N/A // If can_redefine_classes is enabled in the onload phase then we know that the 0N/A // dependency information recorded by the compiler is complete.