Path: blob/master/runtime/gc_realtime/HeapRegionDescriptorRealtime.cpp
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*******************************************************************************/2122#include "omr.h"23#include "omrcfg.h"2425#include "EnvironmentBase.hpp"2627#include "HeapRegionDescriptorRealtime.hpp"2829#if defined(OMR_GC_REALTIME)3031MM_HeapRegionDescriptorRealtime::MM_HeapRegionDescriptorRealtime(MM_EnvironmentBase *env, void *lowAddress, void *highAddress)32: MM_HeapRegionDescriptorSegregated(env, lowAddress, highAddress)33{34_arrayletBackPointers = ((uintptr_t **)(this + 1));35_typeId = __FUNCTION__;36}3738bool39MM_HeapRegionDescriptorRealtime::initialize(MM_EnvironmentBase *env, MM_HeapRegionManager *regionManager)40{41if (!MM_HeapRegionDescriptorSegregated::initialize(env, regionManager)) {42return false;43}4445_nextOverflowedRegion = NULL;4647return true;48}4950bool51MM_HeapRegionDescriptorRealtime::initializer(MM_EnvironmentBase *env, MM_HeapRegionManager *regionManager, MM_HeapRegionDescriptor *descriptor, void *lowAddress, void *highAddress)52{53new((MM_HeapRegionDescriptorRealtime*)descriptor) MM_HeapRegionDescriptorRealtime(env, lowAddress, highAddress);54return ((MM_HeapRegionDescriptorRealtime*)descriptor)->initialize(env, regionManager);55}5657void58MM_HeapRegionDescriptorRealtime::destructor(MM_EnvironmentBase *env, MM_HeapRegionManager *regionManager, MM_HeapRegionDescriptor *descriptor)59{60((MM_HeapRegionDescriptorRealtime*)descriptor)->tearDown(env);61}6263#endif /* OMR_GC_REALTIME */646566