Path: blob/master/runtime/jcl/common/mgmtinit.h
6000 views
/*******************************************************************************1* Copyright (c) 1998, 2018 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*******************************************************************************/21#ifndef mgmtinit_h22#define mgmtinit_h2324#include "omrgcconsts.h"25#include "j9modron.h"2627#define THRESHOLD_EXCEEDED 128#define COLLECTION_THRESHOLD_EXCEEDED 229#define END_OF_GARBAGE_COLLECTION 330#define NOTIFIER_SHUTDOWN_REQUEST 43132/* these constants have to match the logic in com.ibm.lang.management.OperatingSystemNotificationThread */33#define DLPAR_NOTIFIER_SHUTDOWN_REQUEST 034#define DLPAR_NUMBER_OF_CPUS_CHANGE 135#define DLPAR_PROCESSING_CAPACITY_CHANGE 236#define DLPAR_TOTAL_PHYSICAL_MEMORY_CHANGE 33738#define NOTIFICATION_QUEUE_MAX 103940#define J9VM_MANAGEMENT_POOL_NONHEAP 041#define J9VM_MANAGEMENT_POOL_NONHEAP_SEG 242#define J9VM_MANAGEMENT_POOL_NONHEAP_SEG_CLASSES J9VM_MANAGEMENT_POOL_NONHEAP_SEG43#define J9VM_MANAGEMENT_POOL_NONHEAP_SEG_MISC (J9VM_MANAGEMENT_POOL_NONHEAP_SEG_CLASSES + 1)44#define J9VM_MANAGEMENT_POOL_NONHEAP_SEG_JIT_CODE (J9VM_MANAGEMENT_POOL_NONHEAP_SEG_MISC + 1)45#define J9VM_MANAGEMENT_POOL_NONHEAP_SEG_JIT_DATA (J9VM_MANAGEMENT_POOL_NONHEAP_SEG_JIT_CODE + 1)4647#define J9VM_MANAGEMENT_POOL_HEAP 0x1000048#define J9VM_MANAGEMENT_POOL_HEAP_ID_MASK 0xffff4950#define J9VM_MANAGEMENT_POOL_HEAP_JAVAHEAP (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_JAVAHEAP)5152#define J9VM_MANAGEMENT_POOL_HEAP_TENURED (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_TENURED)53#define J9VM_MANAGEMENT_POOL_HEAP_TENURED_SOA (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_TENURED_SOA)54#define J9VM_MANAGEMENT_POOL_HEAP_TENURED_LOA (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_TENURED_LOA)55#define J9VM_MANAGEMENT_POOL_HEAP_NURSERY_ALLOCATE (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_NURSERY_ALLOCATE)56#define J9VM_MANAGEMENT_POOL_HEAP_NURSERY_SURVIVOR (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_NURSERY_SURVIVOR)5758#define J9VM_MANAGEMENT_POOL_HEAP_REGION_OLD (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_REGION_OLD)59#define J9VM_MANAGEMENT_POOL_HEAP_REGION_EDEN (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_REGION_EDEN)60#define J9VM_MANAGEMENT_POOL_HEAP_REGION_SURVIVOR (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_REGION_SURVIVOR)61#define J9VM_MANAGEMENT_POOL_HEAP_REGION_RESERVED (J9VM_MANAGEMENT_POOL_HEAP + J9_GC_MANAGEMENT_POOL_REGION_RESERVED)6263#define J9VM_MANAGEMENT_GC_HEAP 0x1000064#define J9VM_MANAGEMENT_GC_LOCAL 0x10065#define J9VM_MANAGEMENT_GC_HEAP_ID_MASK 0xff6667#define J9VM_MANAGEMENT_GC_ID_GLOBAL (J9VM_MANAGEMENT_GC_HEAP + J9_GC_MANAGEMENT_COLLECTOR_GLOBAL)68#define J9VM_MANAGEMENT_GC_ID_SCAVENGE (J9VM_MANAGEMENT_GC_HEAP + J9VM_MANAGEMENT_GC_LOCAL + J9_GC_MANAGEMENT_COLLECTOR_SCAVENGE)69#define J9VM_MANAGEMENT_GC_ID_PGC (J9VM_MANAGEMENT_GC_HEAP + J9VM_MANAGEMENT_GC_LOCAL + J9_GC_MANAGEMENT_COLLECTOR_PGC)70#define J9VM_MANAGEMENT_GC_ID_GGC (J9VM_MANAGEMENT_GC_HEAP + J9_GC_MANAGEMENT_COLLECTOR_GGC)71#define J9VM_MANAGEMENT_GC_ID_EPSILON (J9VM_MANAGEMENT_GC_HEAP + J9_GC_MANAGEMENT_COLLECTOR_EPSILON)7273#define J9VM_MANAGEMENT_NONHEAPPOOL_NAME_CLASSES "class storage"74#define J9VM_MANAGEMENT_NONHEAPPOOL_NAME_MISC "miscellaneous non-heap storage"75#define J9VM_MANAGEMENT_NONHEAPPOOL_NAME_JITCODE "JIT code cache"76#define J9VM_MANAGEMENT_NONHEAPPOOL_NAME_JITDATA "JIT data cache"7778typedef struct memoryPoolUsageThreshold {79U_32 poolID;80U_64 usedSize;81U_64 totalSize;82U_64 maxSize;83U_64 thresholdCrossingCount;84} memoryPoolUsageThreshold;8586typedef struct J9MemoryNotification {87UDATA type;88U_64 sequenceNumber;89struct J9MemoryNotification *next;90memoryPoolUsageThreshold *usageThreshold;91J9GarbageCollectionInfo *gcInfo;92} J9MemoryNotification;93949596typedef struct J9DLPARNotification {97UDATA type;98struct J9DLPARNotification *next;99U_64 data;100U_64 sequenceNumber;101} J9DLPARNotification;102jint managementInit(J9JavaVM *vm);103void managementTerminate(J9JavaVM *vm);104105106#define MEMORY_SEGMENT_LIST_DO(segmentList, imageSegment) {\107J9MemorySegment *imageSegment, *i2; \108imageSegment = segmentList->nextSegment; \109while(imageSegment) { \110i2 = (J9MemorySegment *)(imageSegment->nextSegment);111#define END_MEMORY_SEGMENT_LIST_DO(imageSegment) \112imageSegment = i2; }}113114#endif /* mgmtinit_h */115116117118119