1 /*
2 * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_CDS_CDS_GLOBALS_HPP
26 #define SHARE_CDS_CDS_GLOBALS_HPP
27
28 #include "runtime/globals_shared.hpp"
29
30 //
31 // Defines all globals flags used by CDS.
32 //
33
34 #define CDS_FLAGS(develop, \
35 develop_pd, \
36 product, \
37 product_pd, \
38 range, \
39 constraint) \
40 /* Shared spaces */ \
41 \
42 product(bool, VerifySharedSpaces, false, \
43 "Verify integrity of shared spaces") \
44 \
45 product(bool, RecordDynamicDumpInfo, false, \
46 "Record class info for jcmd VM.cds dynamic_dump") \
47 \
48 product(bool, AutoCreateSharedArchive, false, \
49 "Create shared archive at exit if cds mapping failed") \
50 \
51 product(bool, PrintSharedArchiveAndExit, false, \
52 "Print shared archive file contents") \
53 \
54 product(size_t, SharedBaseAddress, LP64_ONLY(32*G) \
55 NOT_LP64(LINUX_ONLY(2*G) NOT_LINUX(0)), \
56 "Address to allocate shared memory region for class data") \
57 range(0, SIZE_MAX) \
58 \
59 product(ccstr, SharedArchiveConfigFile, nullptr, \
60 "Data to add to the CDS archive file") \
61 \
62 product(uint, SharedSymbolTableBucketSize, 4, \
63 "Average number of symbols per bucket in shared table") \
64 range(2, 246) \
65 \
66 product(bool, AllowArchivingWithJavaAgent, false, DIAGNOSTIC, \
67 "Allow Java agent to be run with CDS dumping") \
68 \
69 develop(ccstr, ArchiveHeapTestClass, nullptr, \
70 "For JVM internal testing only. The static field named " \
71 "\"archivedObjects\" of the specified class is stored in the " \
72 "CDS archive heap") \
73 \
74 product(ccstr, DumpLoadedClassList, nullptr, \
75 "Dump the names all loaded classes, that could be stored into " \
76 "the CDS archive, in the specified file") \
77 \
78 product(ccstr, SharedClassListFile, nullptr, \
79 "Override the default CDS class list") \
80 \
81 product(ccstr, SharedArchiveFile, nullptr, \
82 "Override the default location of the CDS archive file") \
83 \
84 product(ccstr, ArchiveClassesAtExit, nullptr, \
85 "The path and name of the dynamic archive file") \
86 \
87 product(ccstr, ExtraSharedClassListFile, nullptr, \
88 "Extra classlist for building the CDS archive file") \
89 \
90 product(int, ArchiveRelocationMode, 1, DIAGNOSTIC, \
91 "(0) first map at preferred address, and if " \
92 "unsuccessful, map at alternative address; " \
93 "(1) always map at alternative address (default); " \
94 "(2) always map at preferred address, and if unsuccessful, " \
95 "do not map the archive") \
96 range(0, 2) \
97 \
98 /*========== New "AOT" flags =========================================*/ \
99 /* The following 3 flags are aliases of -Xshare:dump, */ \
100 /* -XX:SharedArchiveFile=..., etc. See CDSConfig::check_flag_aliases()*/ \
101 \
102 product(ccstr, AOTMode, nullptr, \
103 "Specifies how AOTCache should be created or used. Valid values " \
104 "are: off, record, create, auto, on; the default is auto") \
105 constraint(AOTModeConstraintFunc, AtParse) \
106 \
107 product(ccstr, AOTConfiguration, nullptr, \
108 "Configuration information used by CreateAOTCache") \
109 \
110 product(ccstr, AOTCache, nullptr, \
111 "Cache for improving start up and warm up") \
112 \
113 product(bool, AOTInvokeDynamicLinking, false, DIAGNOSTIC, \
114 "AOT-link JVM_CONSTANT_InvokeDynamic entries in cached " \
115 "ConstantPools") \
116 \
117 product(bool, AOTClassLinking, false, \
118 "Load/link all archived classes for the boot/platform/app " \
119 "loaders before application main") \
120 \
121 product(bool, AOTCacheParallelRelocation, true, DIAGNOSTIC, \
122 "Use parallel relocation code to speed up startup.") \
123 \
124 // end of CDS_FLAGS
125
126 DECLARE_FLAGS(CDS_FLAGS)
127
128 #endif // SHARE_CDS_CDS_GLOBALS_HPP
--- EOF ---