1 /*
2 * Copyright (c) 2002, 2023, 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_GC_SHARED_GCNAME_HPP
26 #define SHARE_GC_SHARED_GCNAME_HPP
27
28 #include "utilities/debug.hpp"
29
30 enum GCName {
31 ParallelOld,
32 SerialOld,
33 ParallelScavenge,
34 DefNew,
35 G1New,
36 G1Old,
37 G1Full,
38 ZMinor,
39 ZMajor,
40 Z, // Support for the legacy, single-gen mode
41 Shenandoah,
42 ShenandoahYoung,
43 ShenandoahOld,
44 NA,
45 GCNameEndSentinel
46 };
47
48 class GCNameHelper {
49 public:
50 static const char* to_string(GCName name) {
51 switch(name) {
52 case ParallelOld: return "ParallelOld";
53 case SerialOld: return "SerialOld";
54 case ParallelScavenge: return "ParallelScavenge";
55 case DefNew: return "DefNew";
56 case G1New: return "G1New";
57 case G1Old: return "G1Old";
58 case G1Full: return "G1Full";
59 case ZMinor: return "ZGC Minor";
60 case ZMajor: return "ZGC Major";
61 case Z: return "Z";
62 case Shenandoah: return "Shenandoah";
63 case ShenandoahYoung: return "Shenandoah Young";
64 case ShenandoahOld: return "Shenandoah Old";
65 case NA: return "N/A";
66 default: ShouldNotReachHere(); return nullptr;
67 }
68 }
69 };
70
71 #endif // SHARE_GC_SHARED_GCNAME_HPP