Path: blob/master/runtime/gc_modron_standard/RootScannerReadBarrierVerifier.hpp
5986 views
/*******************************************************************************1* Copyright (c) 1991, 2019 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/212223#if !defined(RootScannerReadBarrierVerifier_HPP_)24#define RootScannerReadBarrierVerifier_HPP_2526#include "j9.h"27#include "RootScanner.hpp"2829#if defined(OMR_ENV_DATA64) && defined(OMR_GC_FULL_POINTERS)3031class MM_RootScannerReadBarrierVerifier : public MM_RootScanner32{33private:34bool _poison;35protected:3637public:38MM_RootScannerReadBarrierVerifier(MM_EnvironmentBase *env, bool singleThread = false, bool poison = false) :39MM_RootScanner(env, singleThread)40{41_poison = poison; /* Toggle between poisoning and healing */42}4344virtual void doMonitorReference(J9ObjectMonitor *objectMonitor, GC_HashTableIterator *monitorReferenceIterator);45virtual void doJNIWeakGlobalReference(omrobjectptr_t *slotPtr);4647virtual void scanClass(MM_EnvironmentBase *env);48virtual void doClassVerify(omrobjectptr_t *slotPtr);4950virtual void doSlot(J9Object** slotPtr) {};51virtual void doClass(J9Class *clazz) {};52virtual void doFinalizableObject(J9Object *objectPtr) {};5354};5556#endif /* defined(OMR_ENV_DATA64) && defined(OMR_GC_FULL_POINTERS) */5758#endif /* RootScannerReadBarrierVerifier_HPP_ */59606162